next | previous | forward | backward | up | top | index | toc | Macaulay2 website
Complexes :: HH ComplexMap

HH ComplexMap -- induced map on homology or cohomology

Synopsis

Description

Homology defines a functor from the category of chain complexes to itself. Given a map of chain complexes $f : C \to D$, this method returns the induced map $HH f : HH C \to HH D$.

To directly obtain the $n$-th map in $h$, use HH_n f or HH^n f. By definition HH^n f === HH_(-n) f. This can be more efficient, as it will compute only the desired induced map.

If $f$ commutes with the differentials, then these induced maps are well defined.

i1 : S = ZZ/101[a..d]

o1 = S

o1 : PolynomialRing
i2 : I = ideal(a*b, a*d, c*b, c*d)

o2 = ideal (a*b, a*d, b*c, c*d)

o2 : Ideal of S
i3 : C = (dual freeResolution I)[1]

      1      4      4      1
o3 = S  <-- S  <-- S  <-- S
                           
     -4     -3     -2     -1

o3 : Complex
i4 : D = dual complex for i from 0 to 4 list koszul(i,gens I)

      1      4      6      4      1
o4 = S  <-- S  <-- S  <-- S  <-- S  <-- 0
                                         
     -5     -4     -3     -2     -1     0

o4 : Complex
i5 : assert isWellDefined D
i6 : f = randomComplexMap(D, C, Cycle => true)

           4                                1
o6 = -4 : S  <---------------------------- S  : -4
                {-6} | -30ab+24bc-36ad |
                {-6} | -29ab-10ad+24cd |
                {-6} | 19ab+19bc+36cd  |
                {-6} | 29bc+19ad-cd    |

           6                                                    4
     -3 : S  <------------------------------------------------ S  : -3
                {-4} | -24d     -29a+24c 24b      -24a     |
                {-4} | -29b-36d 36c      36b      -36a     |
                {-4} | d        -c       -30b     30a      |
                {-4} | -10d     -19c     -19b     -10a     |
                {-4} | 29d      -29c     -29b-29d 29a      |
                {-4} | -19d     19c      19b      -19a-29c |

           4                            4
     -2 : S  <------------------------ S  : -2
                {-2} | 29 0  0  0  |
                {-2} | 0  0  29 0  |
                {-2} | 0  29 0  0  |
                {-2} | 0  0  0  29 |

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

o6 : ComplexMap
i7 : assert isCommutative f
i8 : h = HH f

o8 = -4 : subquotient ({-6} | b a  0 0  |, {-6} | bc -ad ab 0   0   0  |) <----------------- cokernel {-4} | -d c b -a | : -4
                       {-6} | d 0  0 a  |  {-6} | cd 0   0  -ad ab  0  |     {-5} | 0    |
                       {-6} | 0 -c b 0  |  {-6} | 0  cd  0  -bc 0   ab |     {-5} | 0    |
                       {-6} | 0 0  d -c |  {-6} | 0  0   cd 0   -bc ad |     {-5} | 0    |
                                                                             {-5} | -29d |

     -3 : subquotient ({-4} | ad 0  ab  0   a2  0  |, {-4} | -ad ab  0   0  |) <---------------------------- subquotient ({-3} | c b 0  a  0 0 |, {-3} | c -a 0  0  |) : -3
                       {-4} | bc b2 0   ab  0   0  |  {-4} | -bc 0   ab  0  |     {-2} | 0 0   0 0 0   0 |                {-3} | d 0 b  0  a 0 |  {-3} | d 0  -b 0  |
                       {-4} | 0  bd -bc ad  -ac 0  |  {-4} | 0   -bc ad  0  |     {-2} | 0 -29 0 0 0   0 |                {-3} | 0 d -c 0  0 a |  {-3} | 0 0  c  -a |
                       {-4} | cd bd 0   0   ac  ab |  {-4} | -cd 0   0   ab |     {-2} | 0 0   0 0 0   0 |                {-3} | 0 0 0  -d c b |  {-3} | 0 d  0  -b |
                       {-4} | 0  d2 -cd 0   0   ad |  {-4} | 0   -cd 0   ad |     {-2} | 0 0   0 0 0   0 |
                       {-4} | 0  0  0   -cd c2  bc |  {-4} | 0   0   -cd bc |     {-2} | 0 0   0 0 -29 0 |
                                                                                  {-2} | 0 0   0 0 0   0 |

     -2 : subquotient ({-2} | ab |, {-2} | ab |) <----- subquotient ({-2} | ab |, {-2} | -ab |) : -2
                       {-2} | ad |  {-2} | ad |     0                {-2} | bc |  {-2} | -bc |
                       {-2} | bc |  {-2} | bc |                      {-2} | ad |  {-2} | -ad |
                       {-2} | cd |  {-2} | cd |                      {-2} | cd |  {-2} | -cd |

     -1 : image 0 <----- image 0 : -1
                     0

o8 : ComplexMap
i9 : assert isWellDefined h
i10 : prune h

o10 = -4 : cokernel {-5} | c 0 0 a  0  0 0 | <----------------- cokernel {-4} | d c b a | : -4
                    {-5} | 0 d 0 0  b  0 0 |    {-5} | 0    |
                    {-5} | 0 0 a 0  0  c 0 |    {-5} | 0    |
                    {-5} | 0 0 0 -d -d d b |    {-5} | 0    |
                                                {-5} | -29d |

      -3 : cokernel {-2} | c a 0 0 | <-------------------- cokernel {-2} | c a 0 0 | : -3
                    {-2} | 0 0 d b |    {-2} | -29 0   |            {-2} | 0 0 d b |
                                        {-2} | 0   -29 |

o10 : ComplexMap
i11 : assert(source h == HH C)
i12 : assert(target h == HH D)
i13 : f2 = randomComplexMap(D, C, Cycle => true, Degree => -1)

            1                                                                                                                                                                                      1
o13 = -5 : S  <---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- S  : -4
                 {-8} | 19a3b-47a2b2-13ab3-42a2bc-21ab2c-23b3c+26abc2-7b2c2+29bc3-29a3d-26a2bd-39ab2d-20a2cd+32abcd+47b2cd-40ac2d+20bc2d-47c3d-29a2d2+22abd2+21acd2-33bcd2+47c2d2+34ad3+19cd3 |

            4                                                                                                                                                                                                                                                                                                                                                                                               4
      -4 : S  <------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- S  : -3
                 {-6} | 48a2b-26ab2-5b3+13abc-8b2c-2bc2-22a2d+33abd+38b2d+40acd+16bcd+47c2d+36ad2-15bd2-47cd2-19d3 -37a3-13a2b-18ab2-8a2c+13abc+23b2c+49ac2+37bc2-47c3+30a2d+39abd-22acd-7bcd+47c2d+32ad2+19cd2 46a2b-26ab2+44b3+15abc+15b2c+42bc2-41a2d+4abd+11b2d-13acd-20bcd+4ad2+5bd2                  -16a3+7a2b+39ab2+15a2c-9abc-35b2c-17ac2+6bc2-23a2d+43abd-11acd+40bcd+48ad2                  |
                 {-6} | -26a2b+22ab2-49abc+20a2d-22abd-28b2d-26acd-15bcd+27c2d-26ad2-16bd2+36cd2-48d3              -9a3-32a2b-30ab2-17a2c+31abc+23b2c-15ac2+7bc2-29c3+24a2d-15abd-3acd-24bcd+17c2d+33ad2+26cd2  3a2b-22ab2+23b3+47abc+7b2c-29bc2+14a2d+5abd-3b2d-34acd-5bcd-12c2d-8ad2+44bd2+34cd2-14d3    36a3+35a2b+33ab2+11a2c+40abc+46ac2-38a2d+11abd-37acd-35bcd+6c2d+ad2+40cd2                   |
                 {-6} | -17a2b-12ab2+14b3-abc-7b2c-39bc2+29a2d-25abd+42acd-13bcd+29ad2+3bd2+44cd2-34d3             16a2b-28ab2+8a2c+48abc-24b2c-12ac2+4bc2+12c3+35abd+42acd-32bcd+43c2d+2cd2                    45a2b-30ab2-34b3+45abc-20b2c-29bc2+10abd-7b2d+41acd+12bcd+13c2d-15bd2-4cd2                 29a3+8a2b+24ab2+36a2c+15abc+17b2c+25ac2+34bc2-37c3+29a2d+16abd+2acd+5bcd-36c2d-34ad2+34cd2  |
                 {-6} | 26abc-22b2c+49bc2+2a2d+42abd+b2d-15acd-32bcd+26c2d+50ad2-39bd2-23cd2+25d3                  -10a2c-22abc+43b2c-42ac2-10bc2-11c3+16a2d-28abd+37acd+12bcd-12c2d+35ad2-48cd2                -19a2b+47ab2+13b3+39abc+43b2c+28bc2-27a2d-4abd+5b2d-4acd+18bcd-41c2d+39ad2-29bd2+3cd2-49d3 19a3-47a2b-13ab2+23a2c+45abc+45b2c+15ac2-47bc2-17c3-18a2d-15abd-9acd-9bcd-19c2d+38ad2+14cd2 |

            6                                                                                                                                                                                                                          4
      -3 : S  <---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- S  : -2
                 {-4} | 4a2+12ab+5b2+2ac+8bc+2c2-8ad+40bd+48cd+22d2        -49a2-33ab-19ac+26ad+35bd-6cd-40d2                 -27a2-5ab-21b2-7ac+22bc+12c2+16ad-18bd-34cd+14d2  3a2-40ab-35b2+25ac+6bc-2ad+40bd                   |
                 {-4} | -37a2+31ab+29b2-30ac-28bc-12c2+30ad-39bd+14cd+32d2 6a2+50ab+20b2-25ac+20bc+37c2+42ad+44bd+36cd-34d2   -7ab-30b2-41ac+39bc-13c2+17bd+4cd                 41a2-21ab+48b2+13ac+29bc-4ad+48bd                 |
                 {-4} | 49ac+14bc-15c2+44ad+47bd+35cd+23d2                 48a2-26ab-5b2-39ac+25bc+17c2-25ad+19bd+19cd-14d2   -37a2-13ab-18b2-27ac+44bc+41c2+23ad+9bd-3cd+49d2  30a2-19ab-18b2+27ac+46bc-40ad+bd                  |
                 {-4} | -9a2+46ab+14b2+7ac-7bc-39c2+24ad+5bd-37cd+33d2     16a2+46ab-12ac-12ad+37bd-47cd+49d2                 -49ab-10b2-13ac-24bc-41c2-5bd+8cd                 -14a2+23ab-17b2+37ac-34bc+37c2+8ad+43bd-36cd+14d2 |
                 {-4} | 26ac-22bc+49c2-23ad+44bd-28cd+20d2                 -26a2+22ab-49ac-11ad+40bd-22cd+10d2                -9a2-32ab-30b2-20ac-48bc+39c2-25ad-25bd-27cd+28d2 39a2+13ab-45b2-43ac+47bc+17c2-10ad-9bd-36cd-13d2  |
                 {-4} | 8ac-43bc+8c2-16ad+28bd-30cd-35d2                   -17a2-12ab+14b2+15ac+39bc+50c2-33ad-24bd+11cd-13d2 16ab-28b2-37ac+29bc+31c2+35bd+39cd                -27a2-22ab-10b2-34ac+18bc+33c2+39ad+9bd+43cd-49d2 |

            4                                                                  1
      -2 : S  <-------------------------------------------------------------- S  : -1
                 {-2} | 27a2+4ab-20b2+4ac-20bc-37c2-16ad+9bd+36cd-14d2    |
                 {-2} | 4a2+12ab+5b2-47ac-25bc-17c2-9ad-bd+36cd+13d2      |
                 {-2} | -37a2+31ab+29b2+3ac+26bc-33c2+23ad+32bd-43cd+49d2 |
                 {-2} | -9a2+46ab+14b2+23ac+39bc+50c2-25ad-5bd-46cd+28d2  |

o13 : ComplexMap
i14 : h2 = HH f2

o14 = -5 : cokernel {-8} | -cd bc -ad ab | <----- cokernel {-4} | -d c b -a | : -4
                                              0

      -4 : subquotient ({-6} | b a  0 0  |, {-6} | bc -ad ab 0   0   0  |) <---------------------------------------------------------------- subquotient ({-3} | c b 0  a  0 0 |, {-3} | c -a 0  0  |) : -3
                        {-6} | d 0  0 a  |  {-6} | cd 0   0  -ad ab  0  |     {-5} | 0 -5b3-19b2d-4bd2-14d3 0 0 0                      0 |                {-3} | d 0 b  0  a 0 |  {-3} | d 0  -b 0  |
                        {-6} | 0 -c b 0  |  {-6} | 0  cd  0  -bc 0   ab |     {-5} | 0 0                    0 0 -37a3-24a2c-37ac2+37c3 0 |                {-3} | 0 d -c 0  0 a |  {-3} | 0 0  c  -a |
                        {-6} | 0 0  d -c |  {-6} | 0  0   cd 0   -bc ad |     {-5} | 0 14b3-34b2d-4bd2-49d3 0 0 0                      0 |                {-3} | 0 0 0  -d c b |  {-3} | 0 d  0  -b |
                                                                              {-5} | 0 0                    0 0 -9a3+19a2c-4ac2+17c3   0 |

      -3 : subquotient ({-4} | ad 0  ab  0   a2  0  |, {-4} | -ad ab  0   0  |) <----- subquotient ({-2} | ab |, {-2} | -ab |) : -2
                        {-4} | bc b2 0   ab  0   0  |  {-4} | -bc 0   ab  0  |     0                {-2} | bc |  {-2} | -bc |
                        {-4} | 0  bd -bc ad  -ac 0  |  {-4} | 0   -bc ad  0  |                      {-2} | ad |  {-2} | -ad |
                        {-4} | cd bd 0   0   ac  ab |  {-4} | -cd 0   0   ab |                      {-2} | cd |  {-2} | -cd |
                        {-4} | 0  d2 -cd 0   0   ad |  {-4} | 0   -cd 0   ad |
                        {-4} | 0  0  0   -cd c2  bc |  {-4} | 0   0   -cd bc |

      -2 : subquotient ({-2} | ab |, {-2} | ab |) <----- image 0 : -1
                        {-2} | ad |  {-2} | ad |     0
                        {-2} | bc |  {-2} | bc |
                        {-2} | cd |  {-2} | cd |

o14 : ComplexMap
i15 : assert isWellDefined h2
i16 : prune h2

o16 = -4 : cokernel {-5} | c 0 0 a  0  0 0 | <-------------------------------------------------------- cokernel {-2} | c a 0 0 | : -3
                    {-5} | 0 d 0 0  b  0 0 |    {-5} | -5b3-19b2d-4bd2-14d3 0                      |            {-2} | 0 0 d b |
                    {-5} | 0 0 a 0  0  c 0 |    {-5} | 0                    -37a3-24a2c-37ac2+37c3 |
                    {-5} | 0 0 0 -d -d d b |    {-5} | 14b3-34b2d-4bd2-49d3 0                      |
                                                {-5} | 0                    -9a3+19a2c-4ac2+17c3   |

o16 : ComplexMap

A boundary will always induce the zero map.

i17 : f3 = randomComplexMap(D, C, Boundary => true)

            4                                1
o17 = -4 : S  <---------------------------- S  : -4
                 {-6} | -47ab+19bc      |
                 {-6} | 47ab+28ad+19cd  |
                 {-6} | -28ab+28bc      |
                 {-6} | -47bc-28ad-47cd |

            6                                    4
      -3 : S  <-------------------------------- S  : -3
                 {-4} | -19d 19c  19b  -19a |
                 {-4} | 0    0    0    0    |
                 {-4} | 47d  -47c -47b 47a  |
                 {-4} | 28d  -28c -28b 28a  |
                 {-4} | -47d 47c  47b  -47a |
                 {-4} | 28d  -28c -28b 28a  |

            4         4
      -2 : S  <----- S  : -2
                 0

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

o17 : ComplexMap
i18 : h3 = HH f3

o18 = -4 : subquotient ({-6} | b a  0 0  |, {-6} | bc -ad ab 0   0   0  |) <----- cokernel {-4} | -d c b -a | : -4
                        {-6} | d 0  0 a  |  {-6} | cd 0   0  -ad ab  0  |     0
                        {-6} | 0 -c b 0  |  {-6} | 0  cd  0  -bc 0   ab |
                        {-6} | 0 0  d -c |  {-6} | 0  0   cd 0   -bc ad |

      -3 : subquotient ({-4} | ad 0  ab  0   a2  0  |, {-4} | -ad ab  0   0  |) <----- subquotient ({-3} | c b 0  a  0 0 |, {-3} | c -a 0  0  |) : -3
                        {-4} | bc b2 0   ab  0   0  |  {-4} | -bc 0   ab  0  |     0                {-3} | d 0 b  0  a 0 |  {-3} | d 0  -b 0  |
                        {-4} | 0  bd -bc ad  -ac 0  |  {-4} | 0   -bc ad  0  |                      {-3} | 0 d -c 0  0 a |  {-3} | 0 0  c  -a |
                        {-4} | cd bd 0   0   ac  ab |  {-4} | -cd 0   0   ab |                      {-3} | 0 0 0  -d c b |  {-3} | 0 d  0  -b |
                        {-4} | 0  d2 -cd 0   0   ad |  {-4} | 0   -cd 0   ad |
                        {-4} | 0  0  0   -cd c2  bc |  {-4} | 0   0   -cd bc |

      -2 : subquotient ({-2} | ab |, {-2} | ab |) <----- subquotient ({-2} | ab |, {-2} | -ab |) : -2
                        {-2} | ad |  {-2} | ad |     0                {-2} | bc |  {-2} | -bc |
                        {-2} | bc |  {-2} | bc |                      {-2} | ad |  {-2} | -ad |
                        {-2} | cd |  {-2} | cd |                      {-2} | cd |  {-2} | -cd |

      -1 : image 0 <----- image 0 : -1
                      0

o18 : ComplexMap
i19 : assert isWellDefined h3
i20 : assert(h3 == 0)

See also