i1 : R = ZZ/101[a,b,c]/ideal{a^3+b^3+c^3,a*b*c} o1 = R o1 : QuotientRing |
i2 : K1 = koszulComplexDGA(ideal vars R,Variable=>"Y") o2 = {Ring => R } Underlying algebra => R[Y ..Y ] 1 3 Differential => {a, b, c} o2 : DGAlgebra |
i3 : K2 = koszulComplexDGA(ideal {b,c},Variable=>"T") o3 = {Ring => R } Underlying algebra => R[T ..T ] 1 2 Differential => {b, c} o3 : DGAlgebra |
i4 : g = dgAlgebraMap(K1,K2,matrix{{Y_2,Y_3}}) o4 = map(R[Y ..Y ],R[T ..T ],{Y , Y , a, b, c}) 1 3 1 2 2 3 o4 : DGAlgebraMap |
i5 : g' = toComplexMap g 1 1 o5 = 0 : R <--------- R : 0 | 1 | 3 2 1 : R <--------------- R : 1 {1} | 0 0 | {1} | 1 0 | {1} | 0 1 | 3 1 2 : R <------------- R : 2 {2} | 0 | {2} | 0 | {2} | 1 | o5 : ChainComplexMap |
The option EndDegree must be specified if the source of phi has any algebra generators of even degree. The option AssertWellDefined is used if one wishes to assert that the result of this computation is indeed a chain map. One can construct just the nth map in the chain map by providing the second ZZ parameter.
This function also works when working over different rings, such as the case when the DGAlgebraMap is produced via liftToDGMap and in the next example. In this case, the target module is produced via pushForward.
i6 : R = ZZ/101[a,b,c]/ideal{a^3,b^3,c^3} o6 = R o6 : QuotientRing |
i7 : S = R/ideal{a^2*b^2*c^2} o7 = S o7 : QuotientRing |
i8 : f = map(S,R) o8 = map(S,R,{a, b, c}) o8 : RingMap S <--- R |
i9 : A = acyclicClosure(R,EndDegree=>3) o9 = {Ring => R } Underlying algebra => R[T ..T ] 1 6 2 2 2 Differential => {a, b, c, a T , b T , c T } 1 2 3 o9 : DGAlgebra |
i10 : B = acyclicClosure(S,EndDegree=>3) o10 = {Ring => S } Underlying algebra => S[T ..T ] 1 16 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 Differential => {a, b, c, a T , b T , c T , a*b c T , b c T , -a b T , -a c T , b c T T , -a c T T , b c T T , -a T T , c T T , b T T } 1 2 3 1 4 6 5 3 4 3 5 2 4 1 7 3 7 2 7 o10 : DGAlgebra |
i11 : phi = liftToDGMap(B,A,f) o11 = map(S[T ..T ],R[T ..T ],{T , T , T , T , T , T , a, b, c}) 1 16 1 6 1 2 3 4 5 6 o11 : DGAlgebraMap |
i12 : toComplexMap(phi,EndDegree=>3) 1 o12 = 0 : cokernel | a2b2c2 | <--------- R : 0 | 1 | 3 1 : cokernel {1} | a2b2c2 0 0 | <----------------- R : 1 {1} | 0 a2b2c2 0 | {1} | 1 0 0 | {1} | 0 0 a2b2c2 | {1} | 0 1 0 | {1} | 0 0 1 | 6 2 : cokernel {2} | a2b2c2 0 0 0 0 0 0 | <----------------------- R : 2 {2} | 0 a2b2c2 0 0 0 0 0 | {2} | 1 0 0 0 0 0 | {2} | 0 0 a2b2c2 0 0 0 0 | {2} | 0 1 0 0 0 0 | {3} | 0 0 0 a2b2c2 0 0 0 | {2} | 0 0 1 0 0 0 | {3} | 0 0 0 0 a2b2c2 0 0 | {3} | 0 0 0 1 0 0 | {3} | 0 0 0 0 0 a2b2c2 0 | {3} | 0 0 0 0 1 0 | {6} | 0 0 0 0 0 0 a2b2c2 | {3} | 0 0 0 0 0 1 | {6} | 0 0 0 0 0 0 | 10 3 : cokernel {3} | a2b2c2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | <------------------------------- R : 3 {4} | 0 a2b2c2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {3} | 1 0 0 0 0 0 0 0 0 0 | {4} | 0 0 a2b2c2 0 0 0 0 0 0 0 0 0 0 0 0 0 | {4} | 0 1 0 0 0 0 0 0 0 0 | {4} | 0 0 0 a2b2c2 0 0 0 0 0 0 0 0 0 0 0 0 | {4} | 0 0 1 0 0 0 0 0 0 0 | {4} | 0 0 0 0 a2b2c2 0 0 0 0 0 0 0 0 0 0 0 | {4} | 0 0 0 1 0 0 0 0 0 0 | {4} | 0 0 0 0 0 a2b2c2 0 0 0 0 0 0 0 0 0 0 | {4} | 0 0 0 0 1 0 0 0 0 0 | {4} | 0 0 0 0 0 0 a2b2c2 0 0 0 0 0 0 0 0 0 | {4} | 0 0 0 0 0 1 0 0 0 0 | {4} | 0 0 0 0 0 0 0 a2b2c2 0 0 0 0 0 0 0 0 | {4} | 0 0 0 0 0 0 1 0 0 0 | {4} | 0 0 0 0 0 0 0 0 a2b2c2 0 0 0 0 0 0 0 | {4} | 0 0 0 0 0 0 0 1 0 0 | {4} | 0 0 0 0 0 0 0 0 0 a2b2c2 0 0 0 0 0 0 | {4} | 0 0 0 0 0 0 0 0 1 0 | {7} | 0 0 0 0 0 0 0 0 0 0 a2b2c2 0 0 0 0 0 | {4} | 0 0 0 0 0 0 0 0 0 1 | {7} | 0 0 0 0 0 0 0 0 0 0 0 a2b2c2 0 0 0 0 | {7} | 0 0 0 0 0 0 0 0 0 0 | {7} | 0 0 0 0 0 0 0 0 0 0 0 0 a2b2c2 0 0 0 | {7} | 0 0 0 0 0 0 0 0 0 0 | {7} | 0 0 0 0 0 0 0 0 0 0 0 0 0 a2b2c2 0 0 | {7} | 0 0 0 0 0 0 0 0 0 0 | {7} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a2b2c2 0 | {7} | 0 0 0 0 0 0 0 0 0 0 | {7} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a2b2c2 | {7} | 0 0 0 0 0 0 0 0 0 0 | {7} | 0 0 0 0 0 0 0 0 0 0 | o12 : ChainComplexMap |
The object toComplexMap is a method function with options.