dualComplex -- Dualize a chain complex

Synopsis

• Usage:
dualComplex(cc)
• Inputs:
• cc,
• Outputs:
• dc,

Description

Dualizes the chain complex cc, i.e., dc is the chain complex with modules dcp = (dual cc(-p)) and differentials dcp →dcp-1 the transpose of cc-p+1 →ccp

Other than the M2 method (dual,ChainComplex) we do not introduce an alternating sign.

 ```i1 : R = QQ[x_1..x_4,z_1..z_4, T] o1 = R o1 : PolynomialRing``` ```i2 : I = ideal(z_2*z_3-z_1*z_4,x_4*z_3-x_3*z_4,x_2*z_2-x_1*z_4,x_4*z_1-x_3*z_2,x_2*z_1-x_1*z_3) o2 = ideal (z z - z z , x z - x z , x z - x z , x z - x z , x z - x z ) 2 3 1 4 4 3 3 4 2 2 1 4 4 1 3 2 2 1 1 3 o2 : Ideal of R``` ```i3 : cc = res I 1 5 5 1 o3 = R <-- R <-- R <-- R <-- 0 0 1 2 3 4 o3 : ChainComplex``` ```i4 : betti cc 0 1 2 3 o4 = total: 1 5 5 1 0: 1 . . . 1: . 5 5 . 2: . . . 1 o4 : BettiTally``` ```i5 : dc=dualComplex(cc) 1 5 5 1 o5 = 0 <-- R <-- R <-- R <-- R -4 -3 -2 -1 0 o5 : ChainComplex``` ```i6 : betti dc -3 -2 -1 0 o6 = total: 1 5 5 1 0: . . . 1 1: . . . . 2: . . . . 3: . . 5 . 4: . . . . 5: . 5 . . 6: . . . . 7: . . . . 8: 1 . . . o6 : BettiTally```