# toComplexMap -- Construct the ChainComplexMap associated to a DGAlgebraMap

## Synopsis

• Usage:
psi = toComplexMap phi
• Inputs:
• Optional inputs:
• AssertWellDefined => ..., default value true
• EndDegree => ..., default value -1
• Outputs:
• psi, ,

## Description

 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

## Ways to use toComplexMap :

• "toComplexMap(DGAlgebraMap)"
• "toComplexMap(DGAlgebraMap,ZZ)"

## For the programmer

The object toComplexMap is .