1 | // paper: Ihsen Yengui, "Dynamical Groebner Bases" (2006), Journal of Algebra |
---|
2 | // EX.6 |
---|
3 | |
---|
4 | ring r = (integer, 3,3), (x,y), lp; |
---|
5 | ring r = (integer, 27), (x,y), lp; |
---|
6 | poly g1 = 9; |
---|
7 | poly g2 = x+1; |
---|
8 | poly g3 = 3*y^2; |
---|
9 | poly g4 = y^3+13*y^2-12; |
---|
10 | ideal I = g1,g2,g3,g4; |
---|
11 | ideal J = std(I); // is GB, correct |
---|
12 | |
---|
13 | // Ex 7 |
---|
14 | ring r = (integer, 4), (x,y), lp; |
---|
15 | poly f1 = x^4-x; |
---|
16 | poly f2 = y^3-1; |
---|
17 | poly f3 = 2*x*y; |
---|
18 | ideal I = f1,f2,f3; |
---|
19 | ideal J = std(I); // correct: 2x instead of 2xy |
---|
20 | |
---|
21 | // Ex. section 2.2 p.456 |
---|
22 | ring r = (integer), (x,y), lp; |
---|
23 | poly f1 = 10*x*y+1; |
---|
24 | poly f2 = 6*x^2+3; |
---|
25 | ideal I = f1,f2; |
---|
26 | ideal J = std(I); |
---|
27 | poly F = 62*x^3*y + 11*x^2 + 10*x*y^2 + 56*x*y + y + 8; |
---|
28 | NF(F,J); // 0, correct |
---|
29 | //cofactors: |
---|
30 | matrix L = lift(I,F); |
---|
31 | module S = syz(I); |
---|
32 | L = NF(L,S); |
---|
33 | (11*x^2+y+8)*f1 + (-8*x*y)*f2 - F; // 0 => even shorter presentation |
---|
34 | L[1][1]*f1 + L[1][2]*f2 - F; |
---|
35 | |
---|
36 | // paper 2: A. Hadj Kacem and Ihsen Yengui, "Dynamical Groebner Bases over Dedekind rings" (2006), Journal of Algebra (submitted) |
---|
37 | |
---|
38 | // ex 9, page 7 |
---|
39 | ring r = (integer, 4), (x,y), lp; |
---|
40 | poly f1 = 2*x*y; |
---|
41 | poly f2 = 3*y^3+3; |
---|
42 | poly f3 = x^2-3*x; |
---|
43 | ideal I = f1,f2,f3; |
---|
44 | ideal J = std(I); // correct: 2x instead of 2xy, leadcoeffs simplified |
---|
45 | module S = syz(I); |
---|
46 | module Y = [-x*y^2-y^2,2*x^2+2*x,2], [-y^5-y^2, 4*x+2*x*y^3,0],[0,x^2-3*x,-3*y^3-3],[1-y^3,2*x*y,0]; |
---|
47 | print(NF(Y,S)); // 0 |
---|
48 | print(std(Y)-S); // 0 |
---|
49 | |
---|
50 | // section 4, pp. 8-11 |
---|
51 | ring r = (integer), (x,y,T), lp; // eliminating T |
---|
52 | ideal I = 3*x*y+1, (4+2*T)*y + 9, T^2+5; |
---|
53 | // a) GB |
---|
54 | ideal J = std(I); |
---|
55 | // b) syzygies |
---|
56 | module S = syz(I); // longer |
---|
57 | // todo: TRY with his approach via lifts ? |
---|
58 | module Y = [-(4+2*T)*y - 9, 3*x*y+1], [27*x*y - 9 - (4+2*T)*y + 3*(4+2*T)*x*y^2, 1- 9*x^2*y^2]; |
---|
59 | module Z = [-(4+2*T)*y - 9, 3*x*y+1]; // the only generator; correct |
---|
60 | NF(Y,std(Z)); // 0 |
---|
61 | // c) ideal membership |
---|
62 | poly F = (4*T-1)*x^2*y + 6*T*x*y^2 + 9*T*x^2 + 3*x - 4*y -9; |
---|
63 | NF(F,J); // 0, ok |
---|
64 | list D = division(F,J); |
---|
65 | print(transpose(D[1])*transpose(J) + F); // 0 => correct cofactors |
---|
66 | print(lift(I,F)); // |
---|
67 | matrix L1 = lift(I,J); |
---|
68 | matrix L; ideal K = liftstd(I,L); // fast |
---|
69 | matrix ZZ = L*D[1]; // total lift matrix |
---|
70 | transpose(ZZ)*transpose(I) + F; // 0 |
---|