Singular Manual: testLift

| #### 7.10.4.12 testLift Procedure from library `freegb.lib` (see freegb_lib). Usage: testLift(M,T); module M, matrix T Return: module Purpose: assembles the result of the lift procedure Assume: T is the lift matrix of a submodule of M Note: the inverse of the lift procedure Example:
    LIB "freegb.lib";
    LIB "freegb.lib";
    ==> // ** redefining tstfreegb (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining tstfreegb (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining setLetterplaceAttributes (LIB "freegb.lib";) ./examples/\
       testLift.sing:2
    ==> // ** redefining setLetterplaceAttributes (LIB "freegb.lib";) ./examples/\
       testLift.sing:2
    ==> // ** redefining lst2str (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining mod2str (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining vct2str (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining isVar (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining letplaceGBasis (LIB "freegb.lib";) ./examples/testLift.s\
       ing:2
    ==> // ** redefining letplaceGBasis (LIB "freegb.lib";) ./examples/testLift.s\
       ing:2
    ==> // ** redefining lieBracket (LIB "freegb.lib";) ./examples/testLift.sing:\
       2
    ==> // ** redefining lieBracket (LIB "freegb.lib";) ./examples/testLift.sing:\
       2
    ==> // ** redefining lpPrint (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining lpPrint (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining freeGBasis (LIB "freegb.lib";) ./examples/testLift.sing:\
       2
    ==> // ** redefining freeGBasis (LIB "freegb.lib";) ./examples/testLift.sing:\
       2
    ==> // ** redefining crs (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining polylen (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining lpDegBound (LIB "freegb.lib";) ./examples/testLift.sing:\
       2
    ==> // ** redefining lpDegBound (LIB "freegb.lib";) ./examples/testLift.sing:\
       2
    ==> // ** redefining lpVarBlockSize (LIB "freegb.lib";) ./examples/testLift.s\
       ing:2
    ==> // ** redefining lpVarBlockSize (LIB "freegb.lib";) ./examples/testLift.s\
       ing:2
    ==> // ** redefining isFreeAlgebra (LIB "freegb.lib";) ./examples/testLift.si\
       ng:2
    ==> // ** redefining isFreeAlgebra (LIB "freegb.lib";) ./examples/testLift.si\
       ng:2
    ==> // ** redefining lpNcgenCount (LIB "freegb.lib";) ./examples/testLift.sin\
       g:2
    ==> // ** redefining lpNcgenCount (LIB "freegb.lib";) ./examples/testLift.sin\
       g:2
    ==> // ** redefining makeLetterplaceRing (LIB "freegb.lib";) ./examples/testL\
       ift.sing:2
    ==> // ** redefining makeLetterplaceRing (LIB "freegb.lib";) ./examples/testL\
       ift.sing:2
    ==> // ** redefining makeLetterplaceRing1 (LIB "freegb.lib";) ./examples/test\
       Lift.sing:2
    ==> // ** redefining makeLetterplaceRing2 (LIB "freegb.lib";) ./examples/test\
       Lift.sing:2
    ==> // ** redefining makeLetterplaceRing4 (LIB "freegb.lib";) ./examples/test\
       Lift.sing:2
    ==> // ** redefining makeLetterplaceRing3 (LIB "freegb.lib";) ./examples/test\
       Lift.sing:2
    ==> // ** redefining freegbold (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining stringpoly2lplace (LIB "freegb.lib";) ./examples/testLif\
       t.sing:2
    ==> // ** redefining addplaces (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining sent2lplace (LIB "freegb.lib";) ./examples/testLift.sing\
       :2
    ==> // ** redefining testnumber (LIB "freegb.lib";) ./examples/testLift.sing:\
       2
    ==> // ** redefining str2lplace (LIB "freegb.lib";) ./examples/testLift.sing:\
       2
    ==> // ** redefining strpower2rep (LIB "freegb.lib";) ./examples/testLift.sin\
       g:2
    ==> // ** redefining shiftPoly (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining lastBlock (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining test_shift (LIB "freegb.lib";) ./examples/testLift.sing:\
       2
    ==> // ** redefining lp2lstr (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining lp2lstr (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining strList2poly (LIB "freegb.lib";) ./examples/testLift.sin\
       g:2
    ==> // ** redefining file2lplace (LIB "freegb.lib";) ./examples/testLift.sing\
       :2
    ==> // ** redefining lpPower (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining lpNF (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining lpNF (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining lpDivision (LIB "freegb.lib";) ./examples/testLift.sing:\
       2
    ==> // ** redefining lpDivision (LIB "freegb.lib";) ./examples/testLift.sing:\
       2
    ==> // ** redefining lpGBPres2Poly (LIB "freegb.lib";) ./examples/testLift.si\
       ng:2
    ==> // ** redefining lpGBPres2Poly (LIB "freegb.lib";) ./examples/testLift.si\
       ng:2
    ==> // ** redefining getExpVecs (LIB "freegb.lib";) ./examples/testLift.sing:\
       2
    ==> // ** redefining delSupZero (LIB "freegb.lib";) ./examples/testLift.sing:\
       2
    ==> // ** redefining delSupZeroList (LIB "freegb.lib";) ./examples/testLift.s\
       ing:2
    ==> // ** redefining makeDVec (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining makeDVecL (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining makeDVecI (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining dShiftDiv (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining lpNormalForm1 (LIB "freegb.lib";) ./examples/testLift.si\
       ng:2
    ==> // ** redefining lpNormalForm2 (LIB "freegb.lib";) ./examples/testLift.si\
       ng:2
    ==> // ** redefining isOrderingShiftInvariant (LIB "freegb.lib";) ./examples/\
       testLift.sing:2
    ==> // ** redefining isOrderingShiftInvariant (LIB "freegb.lib";) ./examples/\
       testLift.sing:2
    ==> // ** redefining lpMonomialsWithHoles (LIB "freegb.lib";) ./examples/test\
       Lift.sing:2
    ==> // ** redefining getlpCoeffs (LIB "freegb.lib";) ./examples/testLift.sing\
       :2
    ==> // ** redefining lpReduce (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining entryViolation (LIB "freegb.lib";) ./examples/testLift.s\
       ing:2
    ==> // ** redefining checkAssumptionsLPIV (LIB "freegb.lib";) ./examples/test\
       Lift.sing:2
    ==> // ** redefining checkAssumptions (LIB "freegb.lib";) ./examples/testLift\
       .sing:2
    ==> // ** redefining checkLPRing (LIB "freegb.lib";) ./examples/testLift.sing\
       :2
    ==> // ** redefining checkAssumptionIdeal (LIB "freegb.lib";) ./examples/test\
       Lift.sing:2
    ==> // ** redefining checkAssumptionPoly (LIB "freegb.lib";) ./examples/testL\
       ift.sing:2
    ==> // ** redefining isContainedInVp (LIB "freegb.lib";) ./examples/testLift.\
       sing:2
    ==> // ** redefining extractLinearPart (LIB "freegb.lib";) ./examples/testLif\
       t.sing:2
    ==> // ** redefining isLinearVector (LIB "freegb.lib";) ./examples/testLift.s\
       ing:2
    ==> // ** redefining lpAssumeViolation (LIB "freegb.lib";) ./examples/testLif\
       t.sing:2
    ==> // ** redefining skip0 (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining ivL2lpI (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining ivL2lpI (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining iv2lp (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining iv2lp (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining iv2lpList (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining iv2lpList (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining iv2lpMat (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining iv2lpMat (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining lpId2ivLi (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining lpId2ivLi (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining lp2iv (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining lp2iv (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining lp2ivId (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining lp2ivId (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining testLift (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining testLift (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining testSyz (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining testSyz (LIB "freegb.lib";) ./examples/testLift.sing:2
    ==> // ** redefining mod_init (LIB "freegb.lib";) ./examples/testLift.sing:2
    ring r = 0,(x,y),(c,Dp);
    ring R = freeAlgebra(r, 7, 2);
    ideal I = std(x*y*x + 1);
    print(matrix(I)); // finite two-sided Groebner basis
    ==> x*y-y*x,y*x*x+1
    ideal SI = x*I[1]*y + y*x*I[2], I[1]*y*x + I[2]*y;
    matrix T = lift(I, SI); // T is the lifting matrix of SI wrt I
    print(T); //
    ==> y*ncgen(1)*x*x+x*ncgen(1)*y,y*x*ncgen(1)+y*ncgen(1)*x+ncgen(1)*y*x,
    ==> y*ncgen(2)*x,               y*ncgen(2)
    print(matrix(SI)); // the original generators of SI as a matrix
    ==> y*x*y*x*x+x*x*y*y-x*y*x*y+y*x,x*y*y*x+y*x*x*y-y*x*y*x+y
    print(matrix(testLift(I,T))); // and the result of testLift
    ==> y*x*y*x*x+x*x*y*y-x*y*x*y+y*x,x*y*y*x+y*x*x*y-y*x*y*x+y

User manual for Singular version 4-1-3, 2020, generated by texi2html.