A quasi-isomorphism is a chain map that is an isomorphism in homology. Mapping cones currently do not work properly for complexes concentrated in one degree, so isQuasiIsomorphism could return bad information in that case.
i1 : R = ZZ/101[a,b,c]
o1 = R
o1 : PolynomialRing
|
i2 : kRes = res coker vars R
1 3 3 1
o2 = R <-- R <-- R <-- R <-- 0
0 1 2 3 4
o2 : ChainComplex
|
i3 : multBya = extend(kRes,kRes,matrix{{a}})
1 1
o3 = 0 : R <--------- R : 0
| a |
3 3
1 : R <----------------- R : 1
{1} | a b c |
{1} | 0 0 0 |
{1} | 0 0 0 |
3 3
2 : R <----- R : 2
0
1 1
3 : R <----- R : 3
0
4 : 0 <----- 0 : 4
0
o3 : ChainComplexMap
|
i4 : isQuasiIsomorphism(multBya)
o4 = false
|
i5 : F = extend(kRes,kRes,matrix{{1_R}})
1 1
o5 = 0 : R <--------- R : 0
| 1 |
3 3
1 : R <----------------- R : 1
{1} | 1 0 0 |
{1} | 0 1 0 |
{1} | 0 0 1 |
3 3
2 : R <----------------- R : 2
{2} | 1 0 0 |
{2} | 0 1 0 |
{2} | 0 0 1 |
1 1
3 : R <------------- R : 3
{3} | 1 |
4 : 0 <----- 0 : 4
0
o5 : ChainComplexMap
|
i6 : isQuasiIsomorphism(F)
o6 = true
|