next | previous | forward | backward | up | top | index | toc | Macaulay2 website
Complexes :: yonedaMap(Matrix)

yonedaMap(Matrix) -- creates a chain complex map representing an extension of modules

Synopsis

Description

The module $\operatorname{Ext}^d_R(M,N)$ is constructed from a free resolution $F$ of $M$, \[ 0 \leftarrow M \leftarrow F_0 \leftarrow F_1 \leftarrow \dots \leftarrow F_d \leftarrow \ldots, \] by taking the homology of the complex $\operatorname{Hom}_R(F, N)$. An element of $\operatorname{Ext}^d_R(M,N)$ is represented by an element of $\operatorname{Hom}_R(F_d, N)$. This map extends to a map of degree $-d$ from $F$ to the free resolution of $N$.

We illustrate this method by choosing a random element in an Ext module. This particular Ext module may be regarded as a possible obstruction space for deformations of the ideal $I$.

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

o1 = S

o1 : PolynomialRing
i2 : I = ideal"a2,ab,ac,b3"

             2             3
o2 = ideal (a , a*b, a*c, b )

o2 : Ideal of S
i3 : E = Ext^1(I, S^1/I)

o3 = subquotient ({-3} | 0 a b 0 0 0 0 0  |, {-3} | -b a  0 0  0  0  0  ac ab a2 0  0  0  0  0  0  0  b3 0  0  |)
                  {-3} | 0 0 c a 0 0 0 b2 |  {-3} | -c 0  a 0  0  0  0  0  0  0  ac ab a2 0  0  0  0  0  b3 0  |
                  {-3} | 0 0 0 0 c b a 0  |  {-3} | 0  -c b 0  0  0  0  0  0  0  0  0  0  ac ab a2 0  0  0  b3 |
                  {-4} | 1 0 0 0 0 0 0 0  |  {-4} | 0  b2 0 -a ac ab a2 0  0  0  0  0  0  0  0  0  b3 0  0  0  |

                               4
o3 : S-module, subquotient of S
i4 : B = basis(0, E)

o4 = {-4} | bc3 bc2d bcd2 bd3 c4 c3d c2d2 cd3 d4 0  0  0  0  0  0  0 |
     {-2} | 0   0    0    0   0  0   0    0   0  d2 0  0  0  0  0  0 |
     {-2} | 0   0    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  d2 0  0  0  0  0 |
     {-2} | 0   0    0    0   0  0   0    0   0  0  0  c2 cd d2 0  0 |
     {-2} | 0   0    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  0  0  0  0  d2 0 |
     {-1} | 0   0    0    0   0  0   0    0   0  0  0  0  0  0  0  d |

o4 : Matrix
i5 : f = B * random(S^16, S^1)

o5 = {-4} | 24bc3+19c4-36bc2d+19c3d-30bcd2-10c2d2-29bd3-29cd3-8d4 |
     {-2} | -22d2                                                 |
     {-2} | 0                                                     |
     {-2} | -29d2                                                 |
     {-2} | -24c2-38cd-16d2                                       |
     {-2} | 0                                                     |
     {-2} | 39d2                                                  |
     {-1} | 21d                                                   |

o5 : Matrix
i6 : g = yonedaMap f

          1                                                                                                            4
o6 = 0 : S  <-------------------------------------------------------------------------------------------------------- S  : 1
               | -22ad2 21b2d-29ad2 -24c3-38c2d+39ad2-16cd2 24bc3+19c4-36bc2d+19c3d-30bcd2-10c2d2-29bd3-29cd3-8d4 |

          4                              1
     1 : S  <-------------------------- S  : 2
               {2} | -39d2          |
               {2} | -29d2          |
               {2} | 24c2+38cd+38d2 |
               {3} | 21d            |

o6 : ComplexMap
i7 : assert isWellDefined g
i8 : assert(degree g === -1)
i9 : assert isCommutative g
i10 : assert isHomogeneous g
i11 : source g -- free resolution of I

       4      4      1
o11 = S  <-- S  <-- S
                     
      0      1      2

o11 : Complex
i12 : target g -- free resolution of S/I

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

o12 : Complex
i13 : assert(yonedaMap' g == f)

If the free resolutions are not finite in length, one needs to choose a truncation via the optional argument LengthLimit.

i14 : R = ZZ/101[x,y,z]/(y^2*z-x*(x-z)*(x-2*z));
i15 : M = truncate(1,R^1)

o15 = image | z y x |

                              1
o15 : R-module, submodule of R
i16 : prune Ext^3(M, M)

o16 = cokernel {-4} | z y x 0 0 0 0 0 0 0 0 0 |
               {-4} | 0 0 0 z y x 0 0 0 0 0 0 |
               {-4} | 0 0 0 0 0 0 z y x 0 0 0 |
               {-3} | 0 0 0 0 0 0 0 0 0 z y x |

                             4
o16 : R-module, quotient of R
i17 : B = basis(-4, Ext^3(M, M))

o17 = {-4} | 0 0 0 |
      {-4} | 1 0 0 |
      {-4} | 0 1 0 |
      {-4} | 0 0 0 |
      {-4} | 0 0 1 |
      {-4} | 0 0 0 |
      {-3} | 0 0 0 |
      {-3} | 0 0 0 |
      {-3} | 0 0 0 |
      {-3} | 0 0 0 |
      {-3} | 0 0 0 |
      {-3} | 0 0 0 |
      {-3} | 0 0 0 |
      {-3} | 0 0 0 |
      {-3} | 0 0 0 |
      {-3} | 0 0 0 |

o17 : Matrix
i18 : f = B_{2}

o18 = {-4} | 0 |
      {-4} | 0 |
      {-4} | 0 |
      {-4} | 0 |
      {-4} | 1 |
      {-4} | 0 |
      {-3} | 0 |
      {-3} | 0 |
      {-3} | 0 |
      {-3} | 0 |
      {-3} | 0 |
      {-3} | 0 |
      {-3} | 0 |
      {-3} | 0 |
      {-3} | 0 |
      {-3} | 0 |

o18 : Matrix
i19 : g = yonedaMap(f, LengthLimit => 8)

           3                             4
o19 = 0 : R  <------------------------- R  : 3
                {1} | -49 0   0   0 |
                {1} | 0   -49 -50 0 |
                {1} | 50  0   0   z |

           4                                       4
      1 : R  <----------------------------------- R  : 4
                {2} | 49 0    -46x-3z 0       |
                {2} | 0  -49x 0       -46x-3z |
                {2} | 50 0    -49x    0       |
                {3} | 0  50   0       49      |

           4                                   4
      2 : R  <------------------------------- R  : 5
                {3} | 0   -46x-3z -49x yz |
                {4} | -49 0       0    x  |
                {4} | 0   -49     -50  0  |
                {4} | 50  0       0    0  |

           4                                 4
      3 : R  <----------------------------- R  : 6
                {5} | 0   0  0       x  |
                {5} | -50 0  49x+z   0  |
                {5} | 49  0  -47x-3z 0  |
                {6} | 0   50 0       49 |

           4                                    4
      4 : R  <-------------------------------- R  : 7
                {6} | 0   -47x-3z -49x-z 0 |
                {7} | -49 0       0      x |
                {7} | 0   -49     -50    0 |
                {7} | 50  0       0      0 |

           4                                 4
      5 : R  <----------------------------- R  : 8
                {8} | 0   0  0       x  |
                {8} | -50 0  49x+z   0  |
                {8} | 49  0  -47x-3z 0  |
                {9} | 0   50 0       49 |

o19 : ComplexMap
i20 : assert isHomogeneous g
i21 : assert isWellDefined g
i22 : assert isCommutative g
i23 : assert(degree g === -3)
i24 : assert(yonedaMap' g == map(target f, R^1, f, Degree => -4))
i25 : assert(isHomogeneous yonedaMap' g)

See also