next | previous | forward | backward | up | top | index | toc | Macaulay2 website
Complexes :: liftMapAlongQuasiIsomorphism(ComplexMap,ComplexMap)

liftMapAlongQuasiIsomorphism(ComplexMap,ComplexMap) -- lift a map of chain complexes along a quasi-isomorphism

Synopsis

Description

Let $f \colon P \to C$ be a morphism of chain complexes, where each term in $P$ is a free module. Given a quasi-isomorphism $g \colon B \to C$, this method produces a morphism $f' \colon P \to B$ such that there exists a map $h \colon P \to C$ of chain complexes having degree $1$ satisfying

$f - g \circ f' = h \circ \operatorname{dd}^P + \operatorname{dd}^C \circ h$.

Given a morphism between complexes, we can construct the corresponding map between their free resolutions using this method.

To be more precise, given a morphism $\phi \colon B \to C$ of complexes, let $\alpha \colon P \to B$ and $\beta \colon F \to C$ denote the free resolutions of the source and target complexes. Lifting the composite map $\phi \circ \alpha$ along the quasi-isomorphism $\beta$ gives a commutative diagram $\phantom{WWWW} \begin{array}{ccc} P & \!\!\rightarrow\!\! & F \\ \downarrow \, {\scriptstyle \alpha} & & \downarrow \, {\scriptstyle \beta} \\ B & \xrightarrow{\phi} & C \end{array} $

i1 : S = ZZ/101[a,b,c,d];
i2 : J = ideal(a*b, a*d, b*c);

o2 : Ideal of S
i3 : I = J + ideal(c^3);

o3 : Ideal of S
i4 : C = prune Hom(S^{2} ** freeResolution I, S^1/I)

o4 = cokernel {-4} | ad bc ab c3 | <-- cokernel {-1} | 0  0  0  0  0  0  0  ad bc ab 0  0  0  0  c3 0  | <-- cokernel {0}  | 0  0  0  ad bc ab 0  0  0  0  0  0  0  c3 0  0  | <-- cokernel {2} | ad bc ab c3 |
                                                {-1} | 0  0  0  0  0  0  0  0  0  0  ad bc ab 0  0  c3 |              {0}  | 0  0  0  0  0  0  ad bc ab 0  0  0  0  0  c3 0  |      
     -3                                         {-2} | 0  0  0  ad bc ab 0  0  0  0  0  0  0  c3 0  0  |              {0}  | 0  0  0  0  0  0  0  0  0  ad bc ab 0  0  0  c3 |     0
                                                {-3} | ad bc ab 0  0  0  c3 0  0  0  0  0  0  0  0  0  |              {-1} | ad bc ab 0  0  0  0  0  0  0  0  0  c3 0  0  0  |
                                                                                                              
                                       -2                                                                    -1

o4 : Complex
i5 : D = prune Hom(freeResolution J, S^1/J)

o5 = cokernel {-3} | ad bc ab 0  0  0  | <-- cokernel {-2} | ad bc ab 0  0  0  0  0  0  | <-- cokernel | ad bc ab |
              {-3} | 0  0  0  ad bc ab |              {-2} | 0  0  0  ad bc ab 0  0  0  |      
                                                      {-2} | 0  0  0  0  0  0  ad bc ab |     0
     -2                                       
                                             -1

o5 : Complex
i6 : r = randomComplexMap(D,C,Cycle=>true)

o6 = -3 : 0 <----- cokernel {-4} | ad bc ab c3 | : -3
               0

     -2 : cokernel {-3} | ad bc ab 0  0  0  | <----------------------------------------- cokernel {-1} | 0  0  0  0  0  0  0  ad bc ab 0  0  0  0  c3 0  | : -2
                   {-3} | 0  0  0  ad bc ab |    {-3} | 24b2-36bd  0          0    0 |            {-1} | 0  0  0  0  0  0  0  0  0  0  ad bc ab 0  0  c3 |
                                                 {-3} | -30b2-29bd -29b2+43bd -47b 0 |            {-2} | 0  0  0  ad bc ab 0  0  0  0  0  0  0  c3 0  0  |
                                                                                                  {-3} | ad bc ab 0  0  0  c3 0  0  0  0  0  0  0  0  0  |

     -1 : cokernel {-2} | ad bc ab 0  0  0  0  0  0  | <------------------------------------------------- cokernel {0}  | 0  0  0  ad bc ab 0  0  0  0  0  0  0  c3 0  0  | : -1
                   {-2} | 0  0  0  ad bc ab 0  0  0  |    {-2} | 10b2+43bd 21b2       34b2       0    |            {0}  | 0  0  0  0  0  0  ad bc ab 0  0  0  0  0  c3 0  |
                   {-2} | 0  0  0  0  0  0  ad bc ab |    {-2} | 19b2+19bd -10b2-29bd -8b2-22bd  19b  |            {0}  | 0  0  0  0  0  0  0  0  0  ad bc ab 0  0  0  c3 |
                                                          {-2} | 39bd      21bd       -29b2-24bd -47b |            {-1} | ad bc ab 0  0  0  0  0  0  0  0  0  c3 0  0  0  |

     0 : cokernel | ad bc ab | <------------------ cokernel {2} | ad bc ab c3 | : 0
                                  | -38b2-16bd |

o6 : ComplexMap
i7 : f = r * resolutionMap C

                                                                                                8
o7 = -2 : cokernel {-3} | ad bc ab 0  0  0  | <----------------------------------------------- S  : -2
                   {-3} | 0  0  0  ad bc ab |    {-3} | 0 0 0   0 0 0 24b2-36bd  0         |
                                                 {-3} | 0 0 47b 0 0 0 -30b2-29bd 29b2-43bd |

                                                                                                                                                                            24
     -1 : cokernel {-2} | ad bc ab 0  0  0  0  0  0  | <------------------------------------------------------------------------------------------------------------------ S   : -1
                   {-2} | 0  0  0  ad bc ab 0  0  0  |    {-2} | 0 0 0 0 0 0    0 0 0 -10b2-43bd 21b2       -34b2     0 0 0 0 0 0 -21b3      -10b3+24b2d       0 0 0 0 |
                   {-2} | 0  0  0  0  0  0  ad bc ab |    {-2} | 0 0 0 0 0 -19b 0 0 0 -19b2-19bd -10b2-29bd 8b2+22bd  0 0 0 0 0 0 10b3+29b2d -19b3-11b2d+22bd2 0 0 0 0 |
                                                          {-2} | 0 0 0 0 0 47b  0 0 0 -39bd      21bd       29b2+24bd 0 0 0 0 0 0 -21b2d     -10b2d+24bd2      0 0 0 0 |

                                                                                                                     34
     0 : cokernel | ad bc ab | <----------------------------------------------------------------------------------- S   : 0
                                  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 38b2+16bd 0 0 0 0 0 0 0 0 |

o7 : ComplexMap
i8 : g = resolutionMap D

                                                                   2
o8 = -2 : cokernel {-3} | ad bc ab 0  0  0  | <------------------ S  : -2
                   {-3} | 0  0  0  ad bc ab |    {-3} | -1 0  |
                                                 {-3} | 0  -1 |

                                                                                                9
     -1 : cokernel {-2} | ad bc ab 0  0  0  0  0  0  | <-------------------------------------- S  : -1
                   {-2} | 0  0  0  ad bc ab 0  0  0  |    {-2} | 1 0  0  0  -a 0  -b 0  0  |
                   {-2} | 0  0  0  0  0  0  ad bc ab |    {-2} | 0 -1 0  -d -c -b 0  0  0  |
                                                          {-2} | 0 0  -1 0  0  0  -d -c -a |

                                                                      14
     0 : cokernel | ad bc ab | <------------------------------------ S   : 0
                                  | 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 |

o8 : ComplexMap
i9 : assert isQuasiIsomorphism g
i10 : f' = liftMapAlongQuasiIsomorphism(f, g)

                     1
o10 = -3 : 0 <----- S  : -3
                0

            2                                                     8
      -2 : S  <------------------------------------------------- S  : -2
                 {-3} | 0 0 0    0 0 0 -24b2+36bd 0          |
                 {-3} | 0 0 -47b 0 0 0 30b2+29bd  -29b2+43bd |

            9                                                                                                                                                                         24
      -1 : S  <--------------------------------------------------------------------------------------------------------------------------------------------------------------------- S   : -1
                 {-2} | 0 0 0 0 0 0    0     0 0 -24b2+36bd          0              0          0 0 0 0            0            0 0     0         0 0 0            0              |
                 {-2} | 0 0 0 0 0 0    0     0 0 0                   -24b2+36bd     0          0 0 0 24b2d-36bd2  0            0 0     0         0 0 0            0              |
                 {-2} | 0 0 0 0 0 -47b -47ad 0 0 30bc-48bd+29cd+22d2 30ab-47c2+29ad -29b2+43bd 0 0 0 -30abd-29ad2 -29abd+43ad2 0 0     0         0 0 -29bc3+43c3d -29bc2d+43c2d2 |
                 {-1} | 0 0 0 0 0 0    0     0 0 19b                 -7b            -22b       0 0 0 -24b2+36bd   0            0 -29b2 11b2-22bd 0 0 0            0              |
                 {-1} | 0 0 0 0 0 0    0     0 0 0                   0              0          0 0 0 0            0            0 0     0         0 0 0            0              |
                 {-1} | 0 0 0 0 0 19   0     0 0 19b                 34b            -8b        0 0 0 0            0            0 -10b2 19b2      0 0 0            0              |
                 {-1} | 0 0 0 0 0 0    0     0 0 -14b-22d            -21b           34b        0 0 0 0            0            0 21b2  10b2-24bd 0 0 0            0              |
                 {-1} | 0 0 0 0 0 0    0     0 0 -30b-29d            47c            0          0 0 0 0            0            0 0     0         0 0 29bc2-43c2d  29bcd-43cd2    |
                 {-1} | 0 0 0 0 0 0    47d   0 0 0                   -30b-29d       0          0 0 0 30bd+29d2    29bd-43d2    0 0     0         0 0 0            0              |

           14                                                                                                                                                                                                                                       34
      0 : S   <----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- S   : 0
                 | 0 0 0    0 0 0 0 0 0 0 0 0          -24bd+36d2     0          -24b2+36bd           0 0     0     0          0              0         0 0 0 0 0          0 0 0            0 0            0      0              0             |
                 | 0 0 0    0 0 0 0 0 0 0 0 0          0              0          0                    0 0     0     0          0              0         0 0 0 0 0          0 0 0            0 0            0      0              0             |
                 | 0 0 0    0 0 0 0 0 0 0 0 0          -24b2+36bd     0          7b2                  0 0     -29b2 0          0              11b2-22bd 0 0 0 0 0          0 0 -22bc2       0 -22bcd       0      0              0             |
                 | 0 0 0    0 0 0 0 0 0 0 0 0          -24bd+36d2     0          7bd                  0 0     -29bd 0          0              11bd-22d2 0 0 0 0 0          0 0 -22c2d       0 -22cd2       0      0              0             |
                 | 0 0 0    0 0 0 0 0 0 0 0 24ab-29ad  19ad           -22ad      19ab                 0 24b2  0     -29ab      11ab-22ad      0         0 0 0 0 0          0 0 0            0 0            0      0              0             |
                 | 0 0 0    0 0 0 0 0 0 0 0 0          0              0          -34b2+19c2           0 19cd  -10b2 0          0              19b2      0 0 0 0 0          0 0 -8bc2        0 -8bcd        0      0              0             |
                 | 0 0 19d  0 0 0 0 0 0 0 0 -10bd-29d2 19bd+19d2      -8bd-22d2  19b2+19bd            0 0     0     -10b2-29bd 19b2+11bd-22d2 0         0 0 0 0 0          0 0 0            0 0            0      0              0             |
                 | 0 0 0    0 0 0 0 0 0 0 0 21bd       -14bd-22d2     34bd       -14b2-22bd           0 0     0     21b2       10b2-24bd      0         0 0 0 0 0          0 0 0            0 0            0      0              0             |
                 | 0 0 0    0 0 0 0 0 0 0 0 0          0              0          21b2                 0 0     21b2  0          0              10b2-24bd 0 0 0 0 0          0 0 34bc2        0 34bcd        0      0              0             |
                 | 0 0 0    0 0 0 0 0 0 0 0 0          -30ad          0          -30ab-47c2-29ad+21bd 0 -47cd 21bd  0          0              10bd-24d2 0 0 0 0 0          0 0 -29bc2-24c2d 0 -29bcd-24cd2 29acd  0              0             |
                 | 0 0 -47b 0 0 0 0 0 0 0 0 0          30bc+29bd-43d2 -29b2+43bd 29b2+29bc-43bd       0 0     0     0          0              0         0 0 0 0 0          0 0 0            0 0            -29bc2 0              0             |
                 | 0 0 0    0 0 0 0 0 0 0 0 -47cd      -29d2          0          0                    0 0     0     0          0              0         0 0 0 0 0          0 0 0            0 0            -43cd2 -29bc2d+43c2d2 -29bcd2+43cd3 |
                 | 0 0 0    0 0 0 0 0 0 0 0 0          0              0          30bc                 0 0     0     0          0              0         0 0 0 0 0          0 0 0            0 0            0      0              0             |
                 | 0 0 0    0 0 0 0 0 0 0 0 0          0              0          0                    0 0     0     0          0              0         0 0 0 0 -38b2-16bd 0 0 0            0 0            0      0              0             |

           9                                                                                                                                                                                    24
      1 : S  <-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- S   : 1
                {1} | 0 0 0 0 -24b2     0     -29ab      11ab-22ad      0 0 0      0          0          0          0 0 0 -22acd      0            0       22ac2d        0 0       0       |
                {1} | 0 0 0 0 0         0     0          0              0 0 0      0          0          0          0 0 0 0           0            0       0             0 0       0       |
                {1} | 0 0 0 0 0         19cd  -10b2-29bd 19b2+11bd-22d2 0 0 -19c2d 0          0          0          0 0 0 -8bcd-22cd2 0            0       8bc2d+22c2d2  0 0       0       |
                {1} | 0 0 0 0 0         0     21b2       10b2-24bd      0 0 0      0          0          0          0 0 0 34bcd       0            0       -34bc2d       0 0       0       |
                {1} | 0 0 0 0 30bc-29cd 47c2  -21bc      -10bc+24cd     0 0 -47c3  0          0          0          0 0 0 24c2d       0            29bc3   -29bc3-24c3d  0 29bc2d  29ac2d  |
                {1} | 0 0 0 0 29d2      -47cd 21bd       10bd-24d2      0 0 47c2d  0          0          0          0 0 0 -24cd2      0            -29bc2d 29bc2d+24c2d2 0 -29bcd2 -29acd2 |
                {2} | 0 0 0 0 0         0     0          0              0 0 0      -38b2-16bd 0          0          0 0 0 0           0            0       0             0 0       0       |
                {2} | 0 0 0 0 0         0     0          0              0 0 0      0          -38b2-16bd 0          0 0 0 0           -38bc2-16c2d 0       0             0 0       0       |
                {2} | 0 0 0 0 0         0     0          0              0 0 0      0          0          -38b2-16bd 0 0 0 0           0            0       0             0 0       0       |

           2                                                             8
      2 : S  <--------------------------------------------------------- S  : 2
                {3} | 0 -38b2-16bd 0          0 0 0 0 -38bc3-16c3d  |
                {3} | 0 0          -38b2-16bd 0 0 0 0 38bc2d+16c2d2 |

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

o10 : ComplexMap
i11 : assert(f' == f//g)
i12 : assert isWellDefined f'
i13 : assert isComplexMorphism f'
i14 : h = homotopyMap f'

                                                       1
o14 = -2 : cokernel {-3} | ad bc ab 0  0  0  | <----- S  : -3
                    {-3} | 0  0  0  ad bc ab |    0

                                                                8
      -1 : cokernel {-2} | ad bc ab 0  0  0  0  0  0  | <----- S  : -2
                    {-2} | 0  0  0  ad bc ab 0  0  0  |    0
                    {-2} | 0  0  0  0  0  0  ad bc ab |

                                        24
      0 : cokernel | ad bc ab | <----- S   : -1
                                   0

                    34
      1 : 0 <----- S   : 0
               0

                    24
      2 : 0 <----- S   : 1
               0

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

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

o14 : ComplexMap
i15 : isNullHomotopyOf(h, g * (f//g) - f)

o15 = true

Caveat

The following three assumptions are not checked: $f$ is a morphism, the source of $f$ is semifree, and $g$ is a quasi-isomorphism.

See also