i1 : R = ZZ/101[a,b,c,d]/ideal{a^4,b^4,c^4,d^4}
o1 = R
o1 : QuotientRing
|
i2 : A = koszulComplexDGA(R)
o2 = {Ring => R }
Underlying algebra => R[T , T , T , T ]
1 2 3 4
Differential => {a, b, c, d}
isHomogeneous => true
o2 : DGAlgebra
|
i3 : apply(maxDegree A + 1, i -> numgens prune homology(i,A))
o3 = {1, 4, 6, 4, 1}
o3 : List
|
i4 : HA = homologyAlgebra(A) Computing generators in degree 1 : -- used 0.00167679 seconds Computing generators in degree 2 : -- used 0.0115583 seconds Computing generators in degree 3 : -- used 0.0108075 seconds Computing generators in degree 4 : -- used 0.00991491 seconds Finding easy relations : -- used 0.0332518 seconds Computing relations in degree 1 : -- used 0.00266737 seconds Computing relations in degree 2 : -- used 0.0024465 seconds Computing relations in degree 3 : -- used 0.00238259 seconds Computing relations in degree 4 : -- used 0.00233502 seconds Computing relations in degree 5 : -- used 0.00217619 seconds o4 = HA o4 : PolynomialRing |
Note that HA is a graded commutative polynomial ring (i.e. an exterior algebra) since R is a complete intersection.
i5 : R = ZZ/101[a,b,c,d]/ideal{a^4,b^4,c^4,d^4,a^3*b^3*c^3*d^3}
o5 = R
o5 : QuotientRing
|
i6 : A = koszulComplexDGA(R)
o6 = {Ring => R }
Underlying algebra => R[T , T , T , T ]
1 2 3 4
Differential => {a, b, c, d}
isHomogeneous => true
o6 : DGAlgebra
|
i7 : apply(maxDegree A + 1, i -> numgens prune homology(i,A))
o7 = {1, 5, 10, 10, 4}
o7 : List
|
i8 : HA = homologyAlgebra(A) Computing generators in degree 1 : -- used 0.00168511 seconds Computing generators in degree 2 : -- used 0.0129877 seconds Computing generators in degree 3 : -- used 0.0139531 seconds Computing generators in degree 4 : -- used 0.0147186 seconds Finding easy relations : -- used 0.136867 seconds Computing relations in degree 1 : -- used 0.0138234 seconds Computing relations in degree 2 : -- used 0.0143349 seconds Computing relations in degree 3 : -- used 0.014064 seconds Computing relations in degree 4 : -- used 0.0137643 seconds Computing relations in degree 5 : -- used 0.0134647 seconds o8 = HA o8 : QuotientRing |
i9 : numgens HA o9 = 19 |
i10 : HA.cache.cycles
3 3 3 3 2 3 3 3 2 3 3 3 3 2 3 3
o10 = {a T , b T , c T , d T , a b c d T , a b c d T T , a b c d T T ,
1 2 3 4 1 1 2 1 2
-----------------------------------------------------------------------
2 3 3 3 2 3 3 3 2 3 3 3 3 2 3 3
a b c d T T , a b c d T T , a b c d T T T , a b c d T T T ,
1 3 1 4 1 2 3 1 2 3
-----------------------------------------------------------------------
3 3 2 3 2 3 3 3 3 2 3 3 2 3 3 3
a b c d T T T , a b c d T T T , a b c d T T T , a b c d T T T ,
1 2 3 1 2 4 1 2 4 1 3 4
-----------------------------------------------------------------------
2 3 3 3 3 2 3 3 3 3 2 3 3 3 3 2
a b c d T T T T , a b c d T T T T , a b c d T T T T , a b c d T T T T }
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
o10 : List
|
i11 : Q = ZZ/101[x,y,z] o11 = Q o11 : PolynomialRing |
i12 : I = ideal{y^3,z*x^2,y*(z^2+y*x),z^3+2*x*y*z,x*(z^2+y*x),z*y^2,x^3,z*(z^2+2*x*y)}
3 2 2 2 3 2 2 2 3
o12 = ideal (y , x z, x*y + y*z , 2x*y*z + z , x y + x*z , y z, x , 2x*y*z +
-----------------------------------------------------------------------
3
z )
o12 : Ideal of Q
|
i13 : R = Q/I o13 = R o13 : QuotientRing |
i14 : A = koszulComplexDGA(R)
o14 = {Ring => R }
Underlying algebra => R[T , T , T ]
1 2 3
Differential => {x, y, z}
isHomogeneous => true
o14 : DGAlgebra
|
i15 : apply(maxDegree A + 1, i -> numgens prune homology(i,A))
o15 = {1, 7, 7, 1}
o15 : List
|
i16 : HA = homologyAlgebra(A) Computing generators in degree 1 : -- used 0.00168658 seconds Computing generators in degree 2 : -- used 0.0139622 seconds Computing generators in degree 3 : -- used 0.0147276 seconds Finding easy relations : -- used 0.06993 seconds Computing relations in degree 1 : -- used 0.00902679 seconds Computing relations in degree 2 : -- used 0.0432923 seconds Computing relations in degree 3 : -- used 0.0093621 seconds Computing relations in degree 4 : -- used 0.00920898 seconds o16 = HA o16 : QuotientRing |
One can check that HA has Poincare duality since R is Gorenstein.
If your DGAlgebra has generators in even degrees, then one must specify the options GenDegreeLimit and RelDegreeLimit.
i17 : R = ZZ/101[a,b,c,d] o17 = R o17 : PolynomialRing |
i18 : S = R/ideal{a^4,b^4,c^4,d^4}
o18 = S
o18 : QuotientRing
|
i19 : A = acyclicClosure(R,EndDegree=>3)
o19 = {Ring => R }
Underlying algebra => R[T , T , T , T ]
1 2 3 4
Differential => {a, b, c, d}
isHomogeneous => true
o19 : DGAlgebra
|
i20 : B = A ** S
o20 = {Ring => S }
Underlying algebra => S[T , T , T , T ]
1 2 3 4
Differential => {a, b, c, d}
isHomogeneous => true
o20 : DGAlgebra
|
i21 : HB = homologyAlgebra(B,GenDegreeLimit=>7,RelDegreeLimit=>14) Computing generators in degree 1 : -- used 0.00808858 seconds Computing generators in degree 2 : -- used 0.0189213 seconds Computing generators in degree 3 : -- used 0.0173603 seconds Computing generators in degree 4 : -- used 0.00991134 seconds Computing generators in degree 5 : -- used 0.00126349 seconds Computing generators in degree 6 : -- used 0.00128326 seconds Computing generators in degree 7 : -- used 0.00125048 seconds Finding easy relations : -- used 0.0198425 seconds Computing relations in degree 1 : -- used 0.00238722 seconds Computing relations in degree 2 : -- used 0.00240913 seconds Computing relations in degree 3 : -- used 0.00238859 seconds Computing relations in degree 4 : -- used 0.00230941 seconds Computing relations in degree 5 : -- used 0.00213923 seconds Computing relations in degree 6 : -- used 0.00216022 seconds Computing relations in degree 7 : -- used 0.00213159 seconds Computing relations in degree 8 : -- used 0.00214157 seconds Computing relations in degree 9 : -- used 0.00212392 seconds Computing relations in degree 10 : -- used 0.00214655 seconds Computing relations in degree 11 : -- used 0.0149114 seconds Computing relations in degree 12 : -- used 0.00218053 seconds Computing relations in degree 13 : -- used 0.0021666 seconds Computing relations in degree 14 : -- used 0.00213867 seconds o21 = HB o21 : PolynomialRing |