Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 7ebd25ac536d248d499a3ce2acda963a > files > 4720

Macaulay2-1.3.1-8.fc15.i686.rpm

<?xml version="1.0" encoding="utf-8" ?>  <!-- for emacs: -*- coding: utf-8 -*- -->
<!-- Apache may like this line in the file .htaccess: AddCharset utf-8 .html -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN"	 "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd" >
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head><title>maps between chain complexes</title>
<link rel="stylesheet" type="text/css" href="../../../../Macaulay2/Style/doc.css"/>
</head>
<body>
<table class="buttons">
  <tr>
    <td><div><a href="_varieties.html">next</a> | <a href="_manipulating_spchain_spcomplexes.html">previous</a> | forward | <a href="_manipulating_spchain_spcomplexes.html">backward</a> | <a href="_chain_spcomplexes.html">up</a> | <a href="index.html">top</a> | <a href="master.html">index</a> | <a href="toc.html">toc</a> | <a href="http://www.math.uiuc.edu/Macaulay2/">Macaulay2 web site</a></div>

    </td>
  </tr>
</table>
<div><a href="index.html" title="">Macaulay2Doc</a> > <a href="_chain_spcomplexes.html" title="">chain complexes</a> > <a href="_maps_spbetween_spchain_spcomplexes.html" title="">maps between chain complexes</a></div>
<hr/>
<div><h1>maps between chain complexes</h1>
<div>One way to make maps between chain complexes is by lifting maps between modules to resolutions of those modules.  First we make some modules.<table class="examples"><tr><td><pre>i1 : R = QQ[x,y];</pre>
</td></tr>
<tr><td><pre>i2 : M = coker vars R

o2 = cokernel | x y |

                            1
o2 : R-module, quotient of R</pre>
</td></tr>
<tr><td><pre>i3 : N = coker matrix {{x}}

o3 = cokernel | x |

                            1
o3 : R-module, quotient of R</pre>
</td></tr>
</table>
Let's construct the natural map from <tt>N</tt> to <tt>M</tt>.<table class="examples"><tr><td><pre>i4 : f = inducedMap(M,N)

o4 = | 1 |

o4 : Matrix</pre>
</td></tr>
</table>
Let's lift the map to a map of free resolutions.<table class="examples"><tr><td><pre>i5 : g = res f

          1             1
o5 = 0 : R  &lt;--------- R  : 0
               | 1 |

          2                 1
     1 : R  &lt;------------- R  : 1
               {1} | 1 |
               {1} | 0 |

          1
     2 : R  &lt;----- 0 : 2
               0

o5 : ChainComplexMap</pre>
</td></tr>
</table>
We can check that it's a map of chain complexes this way.<table class="examples"><tr><td><pre>i6 : g * (source g).dd == (target g).dd * g

o6 = true</pre>
</td></tr>
</table>
We can form the mapping cone of <tt>g</tt>.<table class="examples"><tr><td><pre>i7 : F = cone g

      1      3      2
o7 = R  &lt;-- R  &lt;-- R  &lt;-- 0
                           
     0      1      2      3

o7 : ChainComplex</pre>
</td></tr>
</table>
Since <tt>f</tt> is surjective, we know that <tt>F</tt> is quasi-isomorphic to <tt>(kernel f)[-1]</tt>.  Let's check that.<table class="examples"><tr><td><pre>i8 : prune HH_0 F

o8 = 0

o8 : R-module</pre>
</td></tr>
<tr><td><pre>i9 : prune HH_1 F

o9 = cokernel {1} | x |

                            1
o9 : R-module, quotient of R</pre>
</td></tr>
<tr><td><pre>i10 : prune kernel f

o10 = cokernel {1} | x |

                             1
o10 : R-module, quotient of R</pre>
</td></tr>
</table>
There are more elementary ways to make maps between chain complexes.  The identity map is available from <a href="_id.html" title="identity map">id</a>.<table class="examples"><tr><td><pre>i11 : C = res M

       1      2      1
o11 = R  &lt;-- R  &lt;-- R  &lt;-- 0
                            
      0      1      2      3

o11 : ChainComplex</pre>
</td></tr>
<tr><td><pre>i12 : id_C

           1             1
o12 = 0 : R  &lt;--------- R  : 0
                | 1 |

           2                   2
      1 : R  &lt;--------------- R  : 1
                {1} | 1 0 |
                {1} | 0 1 |

           1                 1
      2 : R  &lt;------------- R  : 2
                {2} | 1 |

      3 : 0 &lt;----- 0 : 3
               0

o12 : ChainComplexMap</pre>
</td></tr>
<tr><td><pre>i13 : x * id_C

           1             1
o13 = 0 : R  &lt;--------- R  : 0
                | x |

           2                   2
      1 : R  &lt;--------------- R  : 1
                {1} | x 0 |
                {1} | 0 x |

           1                 1
      2 : R  &lt;------------- R  : 2
                {2} | x |

      3 : 0 &lt;----- 0 : 3
               0

o13 : ChainComplexMap</pre>
</td></tr>
</table>
We can use <a href="_induced__Map.html" title="compute an induced map">inducedMap</a> or <tt>**</tt> to construct natural maps between chain complexes.<table class="examples"><tr><td><pre>i14 : inducedMap(C ** R^1/x,C)

                                     1
o14 = 0 : cokernel | x | &lt;--------- R  : 0
                            | 1 |

                                                 2
      1 : cokernel {1} | x 0 | &lt;--------------- R  : 1
                   {1} | 0 x |    {1} | 1 0 |
                                  {1} | 0 1 |

                                             1
      2 : cokernel {2} | x | &lt;------------- R  : 2
                                {2} | 1 |

o14 : ChainComplexMap</pre>
</td></tr>
<tr><td><pre>i15 : g ** R^1/x

o15 = 0 : cokernel | x | &lt;--------- cokernel | x | : 0
                            | 1 |

      1 : cokernel {1} | x 0 | &lt;------------- cokernel {1} | x | : 1
                   {1} | 0 x |    {1} | 1 |
                                  {1} | 0 |

o15 : ChainComplexMap</pre>
</td></tr>
</table>
There is a way to make a chain complex map by calling a function for each spot that needs a map.<table class="examples"><tr><td><pre>i16 : q = map(C,C,i -> (i+1) * id_(C_i))

           1             1
o16 = 0 : R  &lt;--------- R  : 0
                | 1 |

           2                   2
      1 : R  &lt;--------------- R  : 1
                {1} | 2 0 |
                {1} | 0 2 |

           1                 1
      2 : R  &lt;------------- R  : 2
                {2} | 3 |

      3 : 0 &lt;----- 0 : 3
               0

o16 : ChainComplexMap</pre>
</td></tr>
</table>
Of course, the formula we used doesn't yield a map of chain complexes.<table class="examples"><tr><td><pre>i17 : C.dd * q == q * C.dd

o17 = false</pre>
</td></tr>
</table>
</div>
</div>
</body>
</html>