next | previous | forward | backward | up | top | index | toc | Macaulay2 website
ExactCouples :: contravariantExtCouple

contravariantExtCouple -- the exact couple obtained by applying Ext(-,Y) to a filtered module

Synopsis

Description

For notational convenience, set $X = A_m$, and extend the sequence $A_i$ to all $i \in \ZZ$ by setting $A_i = 0$ for $i < 0$, and $A_i = X$ for $i > m$.

The returned couple $M$ is a module for the ring R[e_1,f_1,Degrees=>{{1,1},{0,-2}}]. We describe the module $M$ in every bidegree $(s,t)$. The description depends on the parity of $s$ and $t$.

If $s$ and $t$ are both even, say $(s,t) = (2p, 2q)$, then

$M_{s,t} = Ext^p(A_q / A_{q-1}, Y)$;

if $s$ and $t$ are both odd, say $(s,t) = (2p-1,2q-1)$, then

$M_{s,t} = Ext^p(X / A_{q-1}, Y)$;

and otherwise, if $s$ and $t$ sum to an odd number, then $M_{s,t} = 0$.

The variables $e_1$ and $f_1$ act by the maps in the various long exact sequences

$Ext^p((X / A_q), Y) \to Ext^p((X / A_{q-1}), Y) \to Ext^p((A_q / A_{q-1}), Y) \to Ext^{p+1}((X / A_q), Y)$.

Associated spectral sequence

The spectral sequence associated to this couple converges to $Ext^p(X,Y)$. The differential on page $r$ has bidegree $(1,r)$. The first page has

$E^{p,q}_1 = Ext^p(A_q/A_{q-1},Y)$.

Setting $F^p_q = image(Ext^p((X/A_q),Y) \to Ext^p(X,Y))$, the infinity page has

$E^{p,q}_{\infty} = F^p_{q-1} / F^p_q$.

i1 : R = QQ[x]

o1 = R

o1 : PolynomialRing
i2 : X = R^1 / x^9

o2 = cokernel | x9 |

                            1
o2 : R-module, quotient of R
i3 : submods = apply(5,k->image map(X,,{{x^(8-2*k)}}));
i4 : for m in submods do print m;
subquotient (| x8 |, | x9 |)
subquotient (| x6 |, | x9 |)
subquotient (| x4 |, | x9 |)
subquotient (| x2 |, | x9 |)
subquotient (| 1 |, | x9 |)
i5 : Y = coker map(R^1,,{{x^3}})

o5 = cokernel | x3 |

                            1
o5 : R-module, quotient of R
i6 : couple = prune contravariantExtCouple(submods,Y)
warning: clearing value of symbol f to allow access to subscripted variables based on it
       : debug with expression   debug 3406   or with command line option   --debug 3406

o6 = cokernel {-1, 7, 1}  | x2 e_1^2 0   0   0   f_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   0      |
              {1, 1, -8}  | 0  0     0   0   0   0   0   e_1^2 -x2 0     0  0   0   0     0  0   0  0   0     0  0   f_1 0 -x2 x2e_1 0     0     0    0     0   0      |
              {1, 3, -6}  | 0  0     -x  0   0   0   0   0     f_1 e_1^2 0  0   -x2 0     0  0   0  0   0     0  0   0   0 0   0     x2e_1 0     0    0     0   0      |
              {0, 2, -5}  | 0  0     e_1 0   0   0   0   0     0   0     x2 f_1 0   0     0  0   0  0   0     0  0   0   0 0   0     0     0     0    0     0   0      |
              {1, 5, -4}  | 0  0     0   -x  0   0   0   0     0   0     0  0   f_1 e_1^2 0  0   0  -x2 0     0  0   0   0 0   0     0     x2e_1 0    0     0   0      |
              {0, 4, -3}  | 0  0     0   e_1 0   0   0   0     0   0     0  0   0   0     x2 f_1 0  0   0     0  0   0   0 0   0     0     0     0    0     0   0      |
              {1, 7, -2}  | 0  0     0   0   -x  0   0   0     0   0     0  0   0   0     0  0   x2 f_1 e_1^2 0  0   0   0 0   0     0     0     0    0     0   0      |
              {0, 6, -1}  | 0  0     0   0   e_1 0   -x  0     0   0     0  0   0   0     0  0   0  0   0     x2 f_1 0   0 0   0     0     0     0    0     0   0      |
              {-1, 5, 0}  | 0  0     0   0   0   -x  e_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, -1, -9} | 0  0     0   0   0   0   0   0     0   0     0  0   0   0     0  0   0  0   0     0  0   -x  0 0   0     0     0     xe_1 e_1^2 0   e_1f_1 |
              {0, 0, -6}  | 0  0     0   0   0   0   0   0     0   0     0  0   0   0     0  0   0  0   0     0  0   0   x e_1 0     0     0     0    0     f_1 0      |

                                              11
o6 : R[e , f ]-module, quotient of (R[e , f ])
        1   1                          1   1
i7 : expectExactCouple couple
i8 : plotPages((-1..2,-1..5,1..3), prune @@ evaluateInDegree, couple)
warning: clearing value of symbol e to allow access to subscripted variables based on it
       : debug with expression   debug 3903   or with command line option   --debug 3903
warning: clearing value of symbol f to allow access to subscripted variables based on it
       : debug with expression   debug 3406   or with command line option   --debug 3406
page 1, with differential of degree {1, 1}:
+----++----+--------------------+--------------------+---+
|q=5 ||0   |0                   |0                   |0  |
+----++----+--------------------+--------------------+---+
|q=4 ||0   |cokernel {1} | x2 | |cokernel {-2} | x2 ||0  |
+----++----+--------------------+--------------------+---+
|q=3 ||0   |cokernel {-1} | x2 ||cokernel {-4} | x2 ||0  |
+----++----+--------------------+--------------------+---+
|q=2 ||0   |cokernel {-3} | x2 ||cokernel {-6} | x2 ||0  |
+----++----+--------------------+--------------------+---+
|q=1 ||0   |cokernel {-5} | x2 ||cokernel {-8} | x2 ||0  |
+----++----+--------------------+--------------------+---+
|q=0 ||0   |cokernel {-6} | x | |cokernel {-9} | x | |0  |
+----++----+--------------------+--------------------+---+
|q=-1||0   |0                   |0                   |0  |
+----++----+--------------------+--------------------+---+
|    ||p=-1|p=0                 |p=1                 |p=2|
+----++----+--------------------+--------------------+---+

page 2, with differential of degree {1, 2}:
+----++----+-------------------+--------------------+---+
|q=5 ||0   |0                  |0                   |0  |
+----++----+-------------------+--------------------+---+
|q=4 ||0   |cokernel {1} | x2 ||cokernel {-2} | x | |0  |
+----++----+-------------------+--------------------+---+
|q=3 ||0   |cokernel | x |     |cokernel {-4} | x | |0  |
+----++----+-------------------+--------------------+---+
|q=2 ||0   |cokernel {-2} | x ||cokernel {-6} | x | |0  |
+----++----+-------------------+--------------------+---+
|q=1 ||0   |cokernel {-4} | x ||cokernel {-8} | x2 ||0  |
+----++----+-------------------+--------------------+---+
|q=0 ||0   |cokernel {-6} | x ||cokernel {-9} | x | |0  |
+----++----+-------------------+--------------------+---+
|q=-1||0   |0                  |0                   |0  |
+----++----+-------------------+--------------------+---+
|    ||p=-1|p=0                |p=1                 |p=2|
+----++----+-------------------+--------------------+---+

page 3, with differential of degree {1, 3}:
+----++----+-------------------+--------------------+---+
|q=5 ||0   |0                  |0                   |0  |
+----++----+-------------------+--------------------+---+
|q=4 ||0   |cokernel {1} | x2 ||0                   |0  |
+----++----+-------------------+--------------------+---+
|q=3 ||0   |cokernel | x |     |0                   |0  |
+----++----+-------------------+--------------------+---+
|q=2 ||0   |0                  |0                   |0  |
+----++----+-------------------+--------------------+---+
|q=1 ||0   |0                  |cokernel {-8} | x2 ||0  |
+----++----+-------------------+--------------------+---+
|q=0 ||0   |0                  |cokernel {-9} | x | |0  |
+----++----+-------------------+--------------------+---+
|q=-1||0   |0                  |0                   |0  |
+----++----+-------------------+--------------------+---+
|    ||p=-1|p=0                |p=1                 |p=2|
+----++----+-------------------+--------------------+---+
i9 : A = i -> if i < 0 then image(0*id_X) else if i >= #submods then X else submods#i;
i10 : E1 = (q,p) -> prune Ext^p(A(q)/A(q-1),Y);
i11 : netList reverse table(5,2,E1)

      +--------------------+--------------------+
o11 = |cokernel {1} | x2 | |cokernel {-2} | x2 ||
      +--------------------+--------------------+
      |cokernel {-1} | x2 ||cokernel {-4} | x2 ||
      +--------------------+--------------------+
      |cokernel {-3} | x2 ||cokernel {-6} | x2 ||
      +--------------------+--------------------+
      |cokernel {-5} | x2 ||cokernel {-8} | x2 ||
      +--------------------+--------------------+
      |cokernel {-6} | x | |cokernel {-9} | x | |
      +--------------------+--------------------+
i12 : proj = q -> inducedMap(X/A(q),X);
i13 : filt = (p,q) -> image Ext^p(proj q,Y);
i14 : Einfty = (q,p) -> prune(filt(p,q-1)/filt(p,q));
i15 : netList reverse table(5,2,Einfty)

      +-------------------+--------------------+
o15 = |cokernel {1} | x2 ||0                   |
      +-------------------+--------------------+
      |cokernel | x |     |0                   |
      +-------------------+--------------------+
      |0                  |0                   |
      +-------------------+--------------------+
      |0                  |cokernel {-8} | x2 ||
      +-------------------+--------------------+
      |0                  |cokernel {-9} | x | |
      +-------------------+--------------------+

It seems to me that this is the same spectral sequence as the one you would get from the couple

$Ext^p((A_q), Y) \to Ext^p((A_{q-1}), Y) \to Ext^p((A_q / A_{q-1}), Y) \to Ext^{p+1}((A_q), Y)$;

If I learn of a proof of this fact, then I will put the reference here.

See also

Ways to use contravariantExtCouple:

For the programmer

The object contravariantExtCouple is a method function.