#### D.15.14.12 createGradedRingHomomorphism

Procedure from library `multigrading.lib` (see multigrading_lib).

Usage:
  createGradedRingHomomorphism(R, f, A); ring R, ideal f, group homomorphism A

Purpose:
  create 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:
  graded ring homorphism

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 considered as a field
    ==> // 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

User manual for Singular version 4.4.1, 2025, generated by texi2html.