Singular Manual: GKZsystem

| ##### 7.7.11.0. GKZsystem Procedure from library `ncalg.lib` (see ncalg_lib). Usage: GKZsystem(A, sord, alg, [,v]); A intmat, sord, alg string, v intvec Return: ring Purpose: define a ring (Weyl algebra) and create a Gelfand-Kapranov-Zelevinsky (GKZ) system of equations in a ring from the following data: `A` is an intmat, defining the system, `sord` is a string with desired term ordering, `alg` is a string, saying which algorithm to use (exactly like in toric_lib), `v` is an optional intvec. In addition, the ideal called `GKZid` containing actual equations is calculated and exported to the ring. Note: activate the output ring with the `setring` command. This procedure is elaborated by Oleksandr Iena Assume: This procedure uses toric_lib and therefore inherits its input requirements: possible values for input variable `alg` are: "ect","pt","blr", "hs", "du". As for the term ordering, it should be a string `sord` in Singular format like "lp","dp", etc. Please consult the toric_lib for allowed orderings and more details. Example:
    LIB "ncalg.lib";
    // example 3.1.4 from the [SST] without the vector w
    intmat A[2][4]=3,2,1,0,0,1,2,3;
    print(A);
    ==>      3     2     1     0
    ==>      0     1     2     3
    def D1 = GKZsystem(A,"lp","ect");
    setring D1;
    D1;
    ==> // coefficients: QQ(b(1), b(2))
    ==> // number of vars : 8
    ==> //        block   1 : ordering a
    ==> //                  : names    x(1) x(2) x(3) x(4)
    ==> //                  : weights     0    0    0    0
    ==> //        block   2 : ordering lp
    ==> //                  : names    x(1) x(2) x(3) x(4) d(1) d(2) d(3) d(4)
    ==> //        block   3 : ordering C
    ==> // noncommutative relations:
    ==> //    d(1)x(1)=x(1)*d(1)+1
    ==> //    d(2)x(2)=x(2)*d(2)+1
    ==> //    d(3)x(3)=x(3)*d(3)+1
    ==> //    d(4)x(4)=x(4)*d(4)+1
    print(GKZid);
    ==> 3*x(1)*d(1)+2*x(2)*d(2)+x(3)*d(3)+(-b(1)),
    ==> x(2)*d(2)+2*x(3)*d(3)+3*x(4)*d(4)+(-b(2)),
    ==> d(2)*d(4)-d(3)^2,
    ==> d(1)*d(4)-d(2)*d(3),
    ==> d(1)*d(3)-d(2)^2
    // now, consider A with the vector w=1,1,1,1
    intvec v=1,1,1,1;
    def D2 = GKZsystem(A,"lp","blr",v);
    setring D2;
    print(GKZid);
    ==> 3*x(1)*d(1)+2*x(2)*d(2)+x(3)*d(3)+(-b(1)),
    ==> x(2)*d(2)+2*x(3)*d(3)+3*x(4)*d(4)+(-b(2)),
    ==> d(2)*d(4)-d(3)^2,
    ==> d(1)*d(4)-d(2)*d(3),
    ==> d(1)*d(3)-d(2)^2
See also: toric_lib.

User manual for Singular version 4-1-0p2, 2017, generated by texi2html.