|
D.15.11.11 isGradedRingHomomorphism
Procedure from library multigrading.lib (see multigrading_lib).
- Usage:
- isGradedRingHomomorphism(R, f, A); ring R, ideal f, group homomorphism A
- Purpose:
- test a multigraded group ring homomorphism defined by
a ring map from R to the current ring, given by generators images f
and a group homomorphism A between grading groups
- Return:
- int, 1 for TRUE, 0 otherwise
Example:
| LIB "multigrading.lib";
ring r = 0, (x, y, z), dp;
intmat S1[3][3] =
1, 0, 0,
0, 1, 0,
0, 0, 1;
intmat L1[3][1] =
0,
0,
0;
def G1 = createGroup(S1, L1); // (S1 + L1)/L1
printGroup(G1);
==> Generators:
==> 1 0 0
==> 0 1 0
==> 0 0 1
==> Relations:
==> 0
==> 0
==> 0
setBaseMultigrading(S1, L1); // to change...
ring R = 0, (a, b, c), dp;
intmat S2[2][3] =
1, 0,
0, 1;
intmat L2[2][1] =
0,
2;
def G2 = createGroup(S2, L2);
printGroup(G2);
==> Generators:
==> 1 0 0
==> 1 0 0
==> Relations:
==> 0
==> 2
setBaseMultigrading(S2, L2); // to change...
map F = r, a, b, c;
intmat A[nrows(L2)][nrows(L1)] =
1, 0, 0,
3, 2, -6;
// graded ring homomorphism is given by (compatible):
print(F);
==> F[1]=a
==> F[2]=b
==> F[3]=c
print(A);
==> 1 0 0
==> 3 2 -6
isGradedRingHomomorphism(r, ideal(F), A);
==> 1
def h = createGradedRingHomomorphism(r, ideal(F), A);
print(h);
==> [1]:
==> // coefficients: QQ
==> // number of vars : 3
==> // block 1 : ordering dp
==> // : names x y z
==> // block 2 : ordering C
==> [2]:
==> _[1]=a
==> _[2]=b
==> _[3]=c
==> [3]:
==> 1,0,0,
==> 3,2,-6
// not a homo..
intmat B[nrows(L2)][nrows(L1)] =
1, 1, 1,
0, 0, 0;
print(B);
==> 1 1 1
==> 0 0 0
isGradedRingHomomorphism(r, ideal(F), B); // FALSE: there is no such homomorphism!
==> 0
// Therefore: the following command should return an error
// createGradedRingHomomorphism(r, ideal(F), B);
|
|