# Singular

##### 7.7.15.0. makeHeisenberg
Procedure from library nctools.lib (see nctools_lib).

Usage:
makeHeisenberg(n, [p,d]); int n (setting 2n+1 variables), optional int p (field characteristic), optional int d (power of h in the commutator)

Return:
ring

Purpose:
create the n-th Heisenberg algebra in the variables x(1),y(1),...,x(n),y(n),h over the rationals Q or F_p with the relations \forall\;i\in\{1,2,\ldots,n\}\;\;y(j)x(i) = x(i)y(j)+h^d.

Note:
activate this ring with the setring command
If p is not prime, the next larger prime number will be used.

Example:
 LIB "nctools.lib"; def a = makeHeisenberg(2); setring a; a; ==> // characteristic : 0 ==> // number of vars : 5 ==> // block 1 : ordering lp ==> // : names x(1) x(2) y(1) y(2) h ==> // block 2 : ordering C ==> // noncommutative relations: ==> // y(1)x(1)=x(1)*y(1)+h ==> // y(2)x(2)=x(2)*y(2)+h def H3 = makeHeisenberg(3, 7, 2); setring H3; H3; ==> // characteristic : 7 ==> // number of vars : 7 ==> // block 1 : ordering lp ==> // : names x(1) x(2) x(3) y(1) y(2) y(3) h ==> // block 2 : ordering C ==> // noncommutative relations: ==> // y(1)x(1)=x(1)*y(1)+h^2 ==> // y(2)x(2)=x(2)*y(2)+h^2 ==> // y(3)x(3)=x(3)*y(3)+h^2