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.00132073 seconds Computing generators in degree 2 : -- used 0.00910844 seconds Computing generators in degree 3 : -- used 0.00856813 seconds Computing generators in degree 4 : -- used 0.00796348 seconds Finding easy relations : -- used 0.0326622 seconds Computing relations in degree 1 : -- used 0.00195241 seconds Computing relations in degree 2 : -- used 0.00193294 seconds Computing relations in degree 3 : -- used 0.00190063 seconds Computing relations in degree 4 : -- used 0.00188194 seconds Computing relations in degree 5 : -- used 0.001731 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.00131862 seconds Computing generators in degree 2 : -- used 0.0101087 seconds Computing generators in degree 3 : -- used 0.0107325 seconds Computing generators in degree 4 : -- used 0.0113503 seconds Finding easy relations : -- used 0.112885 seconds Computing relations in degree 1 : -- used 0.0111715 seconds Computing relations in degree 2 : -- used 0.011182 seconds Computing relations in degree 3 : -- used 0.0110051 seconds Computing relations in degree 4 : -- used 0.0108618 seconds Computing relations in degree 5 : -- used 0.0111484 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.0013165 seconds Computing generators in degree 2 : -- used 0.0105839 seconds Computing generators in degree 3 : -- used 0.0117973 seconds Finding easy relations : -- used 0.0560592 seconds Computing relations in degree 1 : -- used 0.00715584 seconds Computing relations in degree 2 : -- used 0.020115 seconds Computing relations in degree 3 : -- used 0.00722563 seconds Computing relations in degree 4 : -- used 0.00707363 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.00623856 seconds Computing generators in degree 2 : -- used 0.0142699 seconds Computing generators in degree 3 : -- used 0.0135194 seconds Computing generators in degree 4 : -- used 0.00815312 seconds Computing generators in degree 5 : -- used 0.00103034 seconds Computing generators in degree 6 : -- used 0.00103967 seconds Computing generators in degree 7 : -- used 0.00102801 seconds Finding easy relations : -- used 0.0155884 seconds Computing relations in degree 1 : -- used 0.00188654 seconds Computing relations in degree 2 : -- used 0.00190856 seconds Computing relations in degree 3 : -- used 0.00188205 seconds Computing relations in degree 4 : -- used 0.00186106 seconds Computing relations in degree 5 : -- used 0.00173562 seconds Computing relations in degree 6 : -- used 0.00170375 seconds Computing relations in degree 7 : -- used 0.00169919 seconds Computing relations in degree 8 : -- used 0.00170636 seconds Computing relations in degree 9 : -- used 0.00169981 seconds Computing relations in degree 10 : -- used 0.00171169 seconds Computing relations in degree 11 : -- used 0.00170119 seconds Computing relations in degree 12 : -- used 0.00170888 seconds Computing relations in degree 13 : -- used 0.00170531 seconds Computing relations in degree 14 : -- used 0.00177818 seconds o21 = HB o21 : PolynomialRing |