-- -*- M2-comint -*- hash: 2977324344305119159

i1 : S = ZZ/101[a,b,c]

o1 = S

o1 : PolynomialRing

i2 : kRes = res coker vars S

      1      3      3      1
o2 = S  <-- S  <-- S  <-- S  <-- 0
                                  
     0      1      2      3      4

o2 : ChainComplex

i3 : multBya = extend(kRes,kRes,matrix{{a}})

          1             1
o3 = 0 : S  <--------- S  : 0
               | a |

          3                     3
     1 : S  <----------------- S  : 1
               {1} | a b c |
               {1} | 0 0 0 |
               {1} | 0 0 0 |

          3         3
     2 : S  <----- S  : 2
               0

          1         1
     3 : S  <----- S  : 3
               0

     4 : 0 <----- 0 : 4
              0

o3 : ChainComplexMap

i4 : isChainComplexMap(multBya)

o4 = true

i5 : T = chainComplex(map(S^1,S^1,a))

      1      1
o5 = S  <-- S
             
     0      1

o5 : ChainComplex

i6 : T' = chainComplex{map(S^1/(ideal a),S^1, 1), map(S^1,S^1, -a)}[1]

                         1      1
o6 = cokernel | a | <-- S  <-- S
                                
     -1                 0      1

o6 : ChainComplex

i7 : phi = chainComplexMap(T',T,apply(toList(min T..max T), i->id_(T_i)))

          1             1
o7 = 0 : S  <--------- S  : 0
               | 1 |

          1             1
     1 : S  <--------- S  : 1
               | 1 |

o7 : ChainComplexMap

i8 : isChainComplexMap phi

o8 = true

i9 : 
