Macaulay2 » Documentation
Packages » Complexes :: yonedaProduct(Matrix,Matrix)
next | previous | forward | backward | up | index | toc

# yonedaProduct(Matrix,Matrix) -- make the product of two elements in Ext modules

- Function: yonedaProduct
- Usage:
    `h = yonedaProduct(f,g)`
- Inputs:
  - f, a matrix, of the form $f \colon R \to \operatorname{Ext}_R^d(L,M)$
  - g, a matrix, of the form $g \colon R \to \operatorname{Ext}_R^e(M,N)$
- Outputs:
  - h, a matrix, of the form $h \colon R \to \operatorname{Ext}_R^{d+e}(L,N)$

## Description

Given a triple $(L, M, N)$ of $R$-modules, the Yoneda product is a pairing between $\operatorname{Ext}$-modules

$\phantom{WWWW} \operatorname{Ext}_R^d(L,M) \otimes \operatorname{Ext}_R^e(M,N) \to \operatorname{Ext}_R^{d+e}(L,N). $

For an element of $\operatorname{Ext}_R^{e}(M,N)$, thought of as an extension

$\phantom{WWWW} 0 \leftarrow M \leftarrow F_{0} \leftarrow F_{1} \leftarrow \dotsb \leftarrow F_{e-2} \leftarrow P \leftarrow N \leftarrow 0, $

and for an element of $\operatorname{Ext}_R^{d}(L,M)$, thought of as an extension

$\phantom{WWWW} 0 \leftarrow L \leftarrow G_{0} \leftarrow G_1 \leftarrow \dotsb \leftarrow G_{d-2} \leftarrow Q \leftarrow M \leftarrow 0, $

the Yoneda product corresponds to

$\phantom{WWWW} 0 \leftarrow L \leftarrow G_{0} \leftarrow G_{1} \leftarrow \dotsb \leftarrow Q \leftarrow F_{0} \leftarrow F_{1} \leftarrow \dotsb \leftarrow P \leftarrow N \leftarrow 0, $

where the map from $F_0$ to $Q$ factors through $M$. For more information about extensions, see yonedaExtension.

Alternatively, the module $\operatorname{Ext}^d_R(L,M)$ is constructed from a free resolution $G$ of $L$,

$\phantom{WWWW} 0 \leftarrow L \leftarrow G_0 \leftarrow G_1 \leftarrow \dotsb \leftarrow G_d \leftarrow \dotsb, $

by taking the homology of the complex $\operatorname{Hom}_R(G, M)$. An element of $\operatorname{Ext}^d_R(L,M)$ is represented by an element of $\operatorname{Hom}_R(G_d, M)$. This map extends to a complex map having degree $-d$ from $G$ to the free resolution $F$ of $M$. The Yoneda product is the composition of the map of chain complexes from $G$ to $F$ with the map of chain complexes having degree $-e$ from $F$ to a free resolution of $N$. For more information about these maps, see yonedaMap.

As an example, we take two distinct elements of an $\operatorname{Ext}^1$-module to obtain a non-zero element of the $\operatorname{Ext}^2$-module.

    i1 : S = ZZ/101[x_0..x_3];

    i2 : I = borel monomialIdeal(x_1*x_2)

                         2         2
    o2 = monomialIdeal (x , x x , x , x x , x x )
                         0   0 1   1   0 2   1 2

    o2 : MonomialIdeal of S

    i3 : E1 = Ext^1(S^1/I, S^1/I)

    o3 = subquotient ({-2} | x_1 x_0 0   0   0   0   0   0   0   0   0   0   |, {-2} | 0 x_1x_2 x_0x_2 x_1^2 x_0x_1 x_0^2 0      0      0     0      0     0      0      0     0      0     0      0      0     0      0     0      0      0     0      0     |)
                      {-2} | 0   0   x_1 x_0 0   0   0   0   0   0   0   0   |  {-2} | 0 0      0      0     0      0     x_1x_2 x_0x_2 x_1^2 x_0x_1 x_0^2 0      0      0     0      0     0      0      0     0      0     0      0      0     0      0     |
                      {-2} | 0   0   0   0   x_1 x_0 0   0   0   0   0   0   |  {-2} | 0 0      0      0     0      0     0      0      0     0      0     x_1x_2 x_0x_2 x_1^2 x_0x_1 x_0^2 0      0      0     0      0     0      0      0     0      0     |
                      {-2} | 0   0   0   0   0   0   x_2 x_1 x_0 0   0   0   |  {-2} | 0 0      0      0     0      0     0      0      0     0      0     0      0      0     0      0     x_1x_2 x_0x_2 x_1^2 x_0x_1 x_0^2 0      0      0     0      0     |
                      {-2} | 0   0   0   0   0   0   0   0   0   x_2 x_1 x_0 |  {-2} | 0 0      0      0     0      0     0      0      0     0      0     0      0      0     0      0     0      0      0     0      0     x_1x_2 x_0x_2 x_1^2 x_0x_1 x_0^2 |

                                   5
    o3 : S-module, subquotient of S

    i4 : (f, g) = (E1_{6}, E1_{9})

    o4 = ({-1} | 0 |, {-1} | 0 |)
          {-1} | 0 |  {-1} | 0 |
          {-1} | 0 |  {-1} | 0 |
          {-1} | 0 |  {-1} | 0 |
          {-1} | 0 |  {-1} | 0 |
          {-1} | 0 |  {-1} | 0 |
          {-1} | 1 |  {-1} | 0 |
          {-1} | 0 |  {-1} | 0 |
          {-1} | 0 |  {-1} | 0 |
          {-1} | 0 |  {-1} | 1 |
          {-1} | 0 |  {-1} | 0 |
          {-1} | 0 |  {-1} | 0 |

    o4 : Sequence

    i5 : h = yonedaProduct(f, g)

    o5 = {-2} | 0  |
         {-2} | -1 |
         {-2} | 1  |
         {-2} | 0  |
         {-2} | 0  |
         {-2} | 0  |
         {-2} | 0  |
         {-2} | 0  |
         {-2} | 0  |
         {-2} | 0  |
         {-2} | 1  |
         {-2} | 0  |
         {-2} | 0  |
         {-2} | 0  |
         {-2} | 0  |
         {-2} | 0  |

    o5 : Matrix

    i6 : assert isWellDefined h

    i7 : assert(target h == Ext^2(S^1/I, S^1/I))

    i8 : C = yonedaExtension h

                                                            1
    o8 = cokernel | x_0^2 x_0x_1 x_1^2 x_0x_2 x_1x_2 | <-- S  <-- cokernel {2} | -x_1 0    -x_2 0    0    0    0     0      0     0      0      | <-- cokernel | x_0^2 x_0x_1 x_1^2 x_0x_2 x_1x_2 |
                                                                           {2} | x_0  -x_1 0    -x_2 0    0    0     0      0     0      0      |
         0                                                 1               {2} | 0    x_0  0    0    0    -x_2 0     0      0     0      0      |     3
                                                                           {2} | 0    0    x_0  x_1  -x_1 0    0     0      0     0      0      |
                                                                           {2} | 0    0    0    0    x_0  x_1  0     0      0     0      0      |
                                                                           {2} | -x_0 x_1  0    0    x_2  0    x_0^2 x_0x_1 x_1^2 x_0x_2 x_1x_2 |

                                                                  2

    o8 : Complex

    i9 : assert isWellDefined C

    i10 : assert isHomogeneous C

    i11 : assert(HH C == 0)

    i12 : assert(coker yonedaProduct(E1,E1) == 0)

In our second example, all three modules in the triple are distinct and the image of the Yoneda product is not surjective.

    i13 : R = S/(x_0*x_1, x_2*x_3);

    i14 : E1 = Ext^1(R^1/(x_0, x_2), R^1/(x_0, x_2, x_3))

    o14 = subquotient ({-1} | 0 x_3 x_2 x_0 |, {-1} | 0 x_3 x_2 x_0 0   0   0   |)
                       {-1} | 1 0   0   0   |  {-1} | 0 0   0   0   x_3 x_2 x_0 |

                                    2
    o14 : R-module, subquotient of R

    i15 : E2 = Ext^2(R^1/(x_0, x_2, x_3), R^1/(x_0, x_1, x_2, x_3))

    o15 = cokernel {-2} | 0 0 0 x_3 x_2 x_1 x_0 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   |
                   {-2} | 0 0 0 0   0   0   0   x_3 x_2 x_1 x_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   x_3 x_2 x_1 x_0 0   0   0   0   0   0   0   0   |
                   {-2} | 0 0 0 0   0   0   0   0   0   0   0   0   0   0   0   x_3 x_2 x_1 x_0 0   0   0   0   |
                   {-2} | 0 0 0 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   x_3 x_2 x_1 x_0 |

                                 5
    o15 : R-module, quotient of R

    i16 : E3 = Ext^3(R^1/(x_0, x_2), R^1/(x_0, x_1, x_2, x_3))

    o16 = cokernel {-3} | 0 0 0 x_3 x_2 x_1 x_0 0   0   0   0   0   0   0   0   0   0   0   0   |
                   {-3} | 0 0 0 0   0   0   0   x_3 x_2 x_1 x_0 0   0   0   0   0   0   0   0   |
                   {-3} | 0 0 0 0   0   0   0   0   0   0   0   x_3 x_2 x_1 x_0 0   0   0   0   |
                   {-3} | 0 0 0 0   0   0   0   0   0   0   0   0   0   0   0   x_3 x_2 x_1 x_0 |

                                 4
    o16 : R-module, quotient of R

    i17 : h = yonedaProduct(E1_{0}, E2_{1})

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

                         1
    o17 : Matrix E3 <-- R

    i18 : assert isWellDefined h

    i19 : assert(target h == E3)

    i20 : C = yonedaExtension h

                                    1      2
    o20 = cokernel | x_0 x_2 | <-- R  <-- R  <-- cokernel {2} | x_2 -x_0 0   0   0   0   0   0   | <-- cokernel | x_0 x_1 x_2 x_3 |
                                                          {2} | 0   x_3  x_1 0   0   0   0   0   |
          0                        1      2               {2} | 0   0    x_2 x_0 0   0   0   0   |     4
                                                          {3} | 1   0    0   0   x_0 x_1 x_2 x_3 |

                                                 3

    o20 : Complex

    i21 : assert isWellDefined C

    i22 : assert isHomogeneous C

    i23 : assert(HH C == 0)

    i24 : assert(coker yonedaProduct(E1, E2) != 0)

## See also

- Working with Ext -- information about functorial properties
- yonedaProduct(Module,Module) -- make the product map between Ext modules

## Ways to use this method:

- yonedaProduct(Matrix,Matrix) -- make the product of two elements in Ext modules

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/Complexes/ChainComplexDoc.m2:4040:0.