next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
Complexes :: RingMap ** Complex

RingMap ** Complex -- tensor a complex along a ring map

Synopsis

Description

We illustrate the tensor product of a complex along a ring map.

i1 : R = QQ[x,y,z]

o1 = R

o1 : PolynomialRing
i2 : S = QQ[s,t]

o2 = S

o2 : PolynomialRing
i3 : phi = map(S, R, {s, s+t, t})

o3 = map(S,R,{s, s + t, t})

o3 : RingMap S <--- R
i4 : I = ideal(x^3, x^2*y, x*y^4, y*z^5)

             3   2      4     5
o4 = ideal (x , x y, x*y , y*z )

o4 : Ideal of R
i5 : C = freeResolution I

      1      4      4      1
o5 = R  <-- R  <-- R  <-- R
                           
     0      1      2      3

o5 : Complex
i6 : D = phi ** C

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

o6 : Complex
i7 : assert isWellDefined D
i8 : dd^D

          1                                                    4
o8 = 0 : S  <------------------------------------------------ S  : 1
               | s3 s3+s2t s5+4s4t+6s3t2+4s2t3+st4 st5+t6 |

          4                                                           4
     1 : S  <------------------------------------------------------- S  : 2
               {3} | -s-t 0                0   0                 |
               {3} | s    -s3-3s2t-3st2-t3 -t5 0                 |
               {5} | 0    s                0   -t5               |
               {6} | 0    0                s2  s4+3s3t+3s2t2+st3 |

          4                                 1
     2 : S  <----------------------------- S  : 3
               {4}  | 0                |
               {6}  | t5               |
               {8}  | -s3-3s2t-3st2-t3 |
               {10} | s                |

o8 : ComplexMap
i9 : prune HH D

o9 = cokernel | s2t s3 st4 t6 | <-- cokernel {7} | s t3 |
                                     
     0                              1

o9 : Complex

When the modules in the complex are not free modules, this is different than the image of a complex under a ring map.

i10 : I = ideal(x*y, x*z, y*z);

o10 : Ideal of R
i11 : J = I + ideal(x^2, y^2);

o11 : Ideal of R
i12 : g = inducedMap(module J, module I)

o12 = {2} | 1 0 0 |
      {2} | 0 1 0 |
      {2} | 0 0 1 |
      {2} | 0 0 0 |
      {2} | 0 0 0 |

o12 : Matrix
i13 : assert isWellDefined g
i14 : C = complex {g}

o14 = image | xy xz yz x2 y2 | <-- image | xy xz yz |
                                    
      0                            1

o14 : Complex
i15 : D1 = phi C

o15 = image | s2+st st st+t2 s2 s2+2st+t2 | <-- image | s2+st st st+t2 |
                                                 
      0                                         1

o15 : Complex
i16 : assert isWellDefined D1
i17 : D2 = phi ** C

o17 = cokernel {2} | -t  -t 0  s    0   -s-t | <-- cokernel {2} | -t  -t |
               {2} | s+t 0  s  0    0   0    |              {2} | s+t 0  |
               {2} | 0   s  0  0    s+t 0    |              {2} | 0   s  |
               {2} | 0   0  -t -s-t 0   0    |      
               {2} | 0   0  0  0    -t  s    |     1
       
      0

o17 : Complex
i18 : assert isWellDefined D2
i19 : prune D1

o19 = cokernel {2} | s+t t    | <-- cokernel {2} | -t  -t |
               {2} | 0   -s-t |              {2} | s+t 0  |
               {2} | -t  s-t  |              {2} | 0   s  |
                                     
      0                             1

o19 : Complex
i20 : prune D2

o20 = cokernel {2} | -t  -t -t -s+t -t -s-t | <-- cokernel {2} | -t  -t |
               {2} | s+t 0  t  -t   0  0    |              {2} | s+t 0  |
               {2} | 0   s  0  0    -t 0    |              {2} | 0   s  |
               {2} | 0   0  t  s    0  0    |      
               {2} | 0   0  0  0    t  s    |     1
       
      0

o20 : Complex

When the ring map doesn’t preserve homogeneity, the DegreeMap option is needed to determine the degrees of the image free modules in the complex.

i21 : R = ZZ/101[a..d]

o21 = R

o21 : PolynomialRing
i22 : S = ZZ/101[s,t]

o22 = S

o22 : PolynomialRing
i23 : f = map(S, R, {s^4, s^3*t, s*t^3, t^4}, DegreeMap => i -> 4*i)

                4   3      3   4
o23 = map(S,R,{s , s t, s*t , t })

o23 : RingMap S <--- R
i24 : C = freeResolution coker vars R

       1      4      6      4      1
o24 = R  <-- R  <-- R  <-- R  <-- R
                                   
      0      1      2      3      4

o24 : Complex
i25 : D = f ** C

       1      4      6      4      1
o25 = S  <-- S  <-- S  <-- S  <-- S
                                   
      0      1      2      3      4

o25 : Complex
i26 : D == f C

o26 = true
i27 : assert isWellDefined D
i28 : assert isHomogeneous D
i29 : prune HH D

o29 = cokernel | t4 st3 s3t s4 | <-- cokernel {5} | s3 0  t3 0   0  st2 | <-- cokernel {10} | s2 0 0 t2 |
                                              {5} | 0  t3 s3 s2t 0  0   |              {11} | t  s 0 0  |
      0                                       {6} | 0  0  0  t2  st s2  |              {11} | 0  0 t s  |
                                                                               
                                     1                                        2

o29 : Complex
i30 : C1 = Hom(C, image vars R)

o30 = image {-4} | d c b a | <-- image {-3} | d c b a 0 0 0 0 0 0 0 0 0 0 0 0 | <-- image {-2} | d c b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | <-- image {-1} | d c b a 0 0 0 0 0 0 0 0 0 0 0 0 | <-- image | d c b a |
                                       {-3} | 0 0 0 0 d c b a 0 0 0 0 0 0 0 0 |           {-2} | 0 0 0 0 d c b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |           {-1} | 0 0 0 0 d c b a 0 0 0 0 0 0 0 0 |      
      -4                               {-3} | 0 0 0 0 0 0 0 0 d c b a 0 0 0 0 |           {-2} | 0 0 0 0 0 0 0 0 d c b a 0 0 0 0 0 0 0 0 0 0 0 0 |           {-1} | 0 0 0 0 0 0 0 0 d c b a 0 0 0 0 |     0
                                       {-3} | 0 0 0 0 0 0 0 0 0 0 0 0 d c b a |           {-2} | 0 0 0 0 0 0 0 0 0 0 0 0 d c b a 0 0 0 0 0 0 0 0 |           {-1} | 0 0 0 0 0 0 0 0 0 0 0 0 d c b a |
                                                                                          {-2} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 d c b a 0 0 0 0 |      
                                 -3                                                       {-2} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 d c b a |     -1
                                                                                     
                                                                                    -2

o30 : Complex
i31 : D1 = f ** C1

o31 = cokernel {-12} | st3 s3t 0    s4  0    0    | <-- cokernel {-8} | st3 s3t 0    s4  0    0    0   0   0    0   0    0    0   0   0    0   0    0    0   0   0    0   0    0    | <-- cokernel {-4} | st3 s3t 0    s4  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    0    0   0   0    0   0    0    | <-- cokernel | st3 s3t 0    s4  0    0    0   0   0    0   0    0    0   0   0    0   0    0    0   0   0    0   0    0    | <-- cokernel {4} | st3 s3t 0    s4  0    0    |
               {-12} | -t4 0   s3t  0   s4   0    |              {-8} | -t4 0   s3t  0   s4   0    0   0   0    0   0    0    0   0   0    0   0    0    0   0   0    0   0    0    |              {-4} | -t4 0   s3t  0   s4   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    0   0   0    0   0    0    |              | -t4 0   s3t  0   s4   0    0   0   0    0   0    0    0   0   0    0   0    0    0   0   0    0   0    0    |              {4} | -t4 0   s3t  0   s4   0    |
               {-12} | 0   -t4 -st3 0   0    s4   |              {-8} | 0   -t4 -st3 0   0    s4   0   0   0    0   0    0    0   0   0    0   0    0    0   0   0    0   0    0    |              {-4} | 0   -t4 -st3 0   0    s4   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   0   0    0   0    0    |              | 0   -t4 -st3 0   0    s4   0   0   0    0   0    0    0   0   0    0   0    0    0   0   0    0   0    0    |              {4} | 0   -t4 -st3 0   0    s4   |
               {-12} | 0   0   0    -t4 -st3 -s3t |              {-8} | 0   0   0    -t4 -st3 -s3t 0   0   0    0   0    0    0   0   0    0   0    0    0   0   0    0   0    0    |              {-4} | 0   0   0    -t4 -st3 -s3t 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   0   0    0   0    0    |              | 0   0   0    -t4 -st3 -s3t 0   0   0    0   0    0    0   0   0    0   0    0    0   0   0    0   0    0    |              {4} | 0   0   0    -t4 -st3 -s3t |
                                                                 {-8} | 0   0   0    0   0    0    st3 s3t 0    s4  0    0    0   0   0    0   0    0    0   0   0    0   0    0    |              {-4} | 0   0   0    0   0    0    st3 s3t 0    s4  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    0    |              | 0   0   0    0   0    0    st3 s3t 0    s4  0    0    0   0   0    0   0    0    0   0   0    0   0    0    |      
      -4                                                         {-8} | 0   0   0    0   0    0    -t4 0   s3t  0   s4   0    0   0   0    0   0    0    0   0   0    0   0    0    |              {-4} | 0   0   0    0   0    0    -t4 0   s3t  0   s4   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    |              | 0   0   0    0   0    0    -t4 0   s3t  0   s4   0    0   0   0    0   0    0    0   0   0    0   0    0    |     0
                                                                 {-8} | 0   0   0    0   0    0    0   -t4 -st3 0   0    s4   0   0   0    0   0    0    0   0   0    0   0    0    |              {-4} | 0   0   0    0   0    0    0   -t4 -st3 0   0    s4   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   0   0    0   0    0    0   -t4 -st3 0   0    s4   0   0   0    0   0    0    0   0   0    0   0    0    |
                                                                 {-8} | 0   0   0    0   0    0    0   0   0    -t4 -st3 -s3t 0   0   0    0   0    0    0   0   0    0   0    0    |              {-4} | 0   0   0    0   0    0    0   0   0    -t4 -st3 -s3t 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   0   0    0   0    0    0   0   0    -t4 -st3 -s3t 0   0   0    0   0    0    0   0   0    0   0    0    |
                                                                 {-8} | 0   0   0    0   0    0    0   0   0    0   0    0    st3 s3t 0    s4  0    0    0   0   0    0   0    0    |              {-4} | 0   0   0    0   0    0    0   0   0    0   0    0    st3 s3t 0    s4  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    0    0   0   0    0   0    0    st3 s3t 0    s4  0    0    0   0   0    0   0    0    |
                                                                 {-8} | 0   0   0    0   0    0    0   0   0    0   0    0    -t4 0   s3t  0   s4   0    0   0   0    0   0    0    |              {-4} | 0   0   0    0   0    0    0   0   0    0   0    0    -t4 0   s3t  0   s4   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    0   0   0    0   0    0    -t4 0   s3t  0   s4   0    0   0   0    0   0    0    |
                                                                 {-8} | 0   0   0    0   0    0    0   0   0    0   0    0    0   -t4 -st3 0   0    s4   0   0   0    0   0    0    |              {-4} | 0   0   0    0   0    0    0   0   0    0   0    0    0   -t4 -st3 0   0    s4   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   0   0    0   0    0    0   -t4 -st3 0   0    s4   0   0   0    0   0    0    |
                                                                 {-8} | 0   0   0    0   0    0    0   0   0    0   0    0    0   0   0    -t4 -st3 -s3t 0   0   0    0   0    0    |              {-4} | 0   0   0    0   0    0    0   0   0    0   0    0    0   0   0    -t4 -st3 -s3t 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   0   0    0   0    0    0   0   0    -t4 -st3 -s3t 0   0   0    0   0    0    |
                                                                 {-8} | 0   0   0    0   0    0    0   0   0    0   0    0    0   0   0    0   0    0    st3 s3t 0    s4  0    0    |              {-4} | 0   0   0    0   0    0    0   0   0    0   0    0    0   0   0    0   0    0    st3 s3t 0    s4  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    0    0   0   0    0   0    0    st3 s3t 0    s4  0    0    |
                                                                 {-8} | 0   0   0    0   0    0    0   0   0    0   0    0    0   0   0    0   0    0    -t4 0   s3t  0   s4   0    |              {-4} | 0   0   0    0   0    0    0   0   0    0   0    0    0   0   0    0   0    0    -t4 0   s3t  0   s4   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    0   0   0    0   0    0    -t4 0   s3t  0   s4   0    |
                                                                 {-8} | 0   0   0    0   0    0    0   0   0    0   0    0    0   0   0    0   0    0    0   -t4 -st3 0   0    s4   |              {-4} | 0   0   0    0   0    0    0   0   0    0   0    0    0   0   0    0   0    0    0   -t4 -st3 0   0    s4   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   0   0    0   0    0    0   -t4 -st3 0   0    s4   |
                                                                 {-8} | 0   0   0    0   0    0    0   0   0    0   0    0    0   0   0    0   0    0    0   0   0    -t4 -st3 -s3t |              {-4} | 0   0   0    0   0    0    0   0   0    0   0    0    0   0   0    0   0    0    0   0   0    -t4 -st3 -s3t 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   0   0    0   0    0    0   0   0    -t4 -st3 -s3t |
                                                                                                                                                                                                   {-4} | 0   0   0    0   0    0    0   0   0    0   0    0    0   0   0    0   0    0    0   0   0    0   0    0    st3 s3t 0    s4  0    0    0   0   0    0   0    0    |      
                                                        -3                                                                                                                                         {-4} | 0   0   0    0   0    0    0   0   0    0   0    0    0   0   0    0   0    0    0   0   0    0   0    0    -t4 0   s3t  0   s4   0    0   0   0    0   0    0    |     -1
                                                                                                                                                                                                   {-4} | 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   -t4 -st3 0   0    s4   0   0   0    0   0    0    |
                                                                                                                                                                                                   {-4} | 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   0   0    -t4 -st3 -s3t 0   0   0    0   0    0    |
                                                                                                                                                                                                   {-4} | 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   0   0    0   0    0    st3 s3t 0    s4  0    0    |
                                                                                                                                                                                                   {-4} | 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   0   0    0   0    0    -t4 0   s3t  0   s4   0    |
                                                                                                                                                                                                   {-4} | 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   0   0    0   0    0    0   -t4 -st3 0   0    s4   |
                                                                                                                                                                                                   {-4} | 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   0   0    0   0    0    0   0   0    -t4 -st3 -s3t |
                                                                                                                                                                                           
                                                                                                                                                                                          -2

o31 : Complex
i32 : isWellDefined D1

o32 = true
i33 : assert isHomogeneous D1

See also