|
7.5.18.0. extendedTensor
Procedure from library ncpreim.lib (see ncpreim_lib).
- Usage:
- extendedTensor(A,I); A ring, I ideal
- Return:
- ring, A+B (where B denotes the basering) extended with non-
commutative relations between the vars of A and B, which arise from
the homomorphism A -> B induced by I in the usual sense, i.e. if the
vars of A are named x(i) and the vars of B y(j), then putting
q(i)(j) = leadcoef(y(j)*I[i])/leadcoef(I[i]*y(j)) and
r(i)(j) = y(j)*I[i] - q(i)(j)*I[i]*y(j) yields the relation
y(j)*x(i) = q(i)(j)*x(i)*y(j)+r(i)(j).
- Remark:
- Reference: (Lev)
Example:
| LIB "ncpreim.lib";
def A = makeWeyl(2);
setring A; A;
==> // coefficients: QQ
==> // number of vars : 4
==> // block 1 : ordering dp
==> // : names x(1) x(2) D(1) D(2)
==> // block 2 : ordering C
==> // noncommutative relations:
==> // D(1)x(1)=x(1)*D(1)+1
==> // D(2)x(2)=x(2)*D(2)+1
def B = makeUgl(2);
setring B; B;
==> // coefficients: QQ
==> // number of vars : 4
==> // block 1 : ordering dp
==> // : names e_1_1 e_1_2 e_2_1 e_2_2
==> // block 2 : ordering C
==> // noncommutative relations:
==> // e_1_2e_1_1=e_1_1*e_1_2-e_1_2
==> // e_2_1e_1_1=e_1_1*e_2_1+e_2_1
==> // e_2_1e_1_2=e_1_2*e_2_1-e_1_1+e_2_2
==> // e_2_2e_1_2=e_1_2*e_2_2-e_1_2
==> // e_2_2e_2_1=e_2_1*e_2_2+e_2_1
ideal I = var(1)*var(3), var(1)*var(4), var(2)*var(3), var(2)*var(4);
I;
==> I[1]=e_1_1*e_2_1
==> I[2]=e_1_1*e_2_2
==> I[3]=e_1_2*e_2_1
==> I[4]=e_1_2*e_2_2
def C = extendedTensor(A,I);
setring C; C;
==> // coefficients: QQ
==> // number of vars : 8
==> // block 1 : ordering dp
==> // : names x(1) x(2) D(1) D(2)
==> // block 2 : ordering dp
==> // : names e_1_1 e_1_2 e_2_1 e_2_2
==> // block 3 : ordering C
==> // noncommutative relations:
==> // D(1)x(1)=x(1)*D(1)+1
==> // e_1_1x(1)=x(1)*e_1_1-e_1_1*e_2_1
==> // e_1_2x(1)=x(1)*e_1_2+e_1_1^2-e_1_2*e_2_1-e_1_1*e_2_2
==> // e_2_1x(1)=x(1)*e_2_1+e_2_1^2
==> // e_2_2x(1)=x(1)*e_2_2+e_1_1*e_2_1
==> // D(2)x(2)=x(2)*D(2)+1
==> // e_1_2x(2)=x(2)*e_1_2+e_1_1*e_1_2-e_1_2*e_2_2
==> // e_2_1x(2)=x(2)*e_2_1-e_1_1*e_2_1+e_2_1*e_2_2
==> // e_1_2D(1)=D(1)*e_1_2+e_1_1*e_1_2-e_1_2*e_2_2-e_1_2
==> // e_2_1D(1)=D(1)*e_2_1-e_1_1*e_2_1+e_2_1*e_2_2+e_2_1
==> // e_1_1D(2)=D(2)*e_1_1+e_1_2*e_2_2
==> // e_1_2D(2)=D(2)*e_1_2+e_1_2^2
==> // e_2_1D(2)=D(2)*e_2_1-e_1_2*e_2_1-e_1_1*e_2_2+e_2_2^2
==> // e_2_2D(2)=D(2)*e_2_2-e_1_2*e_2_2
==> // e_1_2e_1_1=e_1_1*e_1_2-e_1_2
==> // e_2_1e_1_1=e_1_1*e_2_1+e_2_1
==> // e_2_1e_1_2=e_1_2*e_2_1-e_1_1+e_2_2
==> // e_2_2e_1_2=e_1_2*e_2_2-e_1_2
==> // e_2_2e_2_1=e_2_1*e_2_2+e_2_1
|
|