Macaulay2 » Documentation
Packages » SimplicialModules :: SimplicialModule ** SimplicialModule
next | previous | forward | backward | up | index | toc

SimplicialModule ** SimplicialModule -- tensor product of simplicial modules

Description

The tensor product is a simplicial module $D$ whose $i$th component is the tensor product of the degree i components of $C1$ and $C2$. The face/degeneracy maps are given by the tensor products of the face and degeneracy maps of the original objects.

As the next example illustrates, the simplicial tensor product in general does not normalize to give an object that is isomorphic to the classically defined tensor product of complexes.

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

o1 = S

o1 : PolynomialRing
i2 : Ca = simplicialModule(complex {matrix{{a}}}, 3)

      1      2      3      4
o2 = S  <-- S  <-- S  <-- S <-- ...
                           
     0      1      2      3

o2 : SimplicialModule
i3 : Cb = simplicialModule(complex {matrix{{b}}}, 3)

      1      2      3      4
o3 = S  <-- S  <-- S  <-- S <-- ...
                           
     0      1      2      3

o3 : SimplicialModule
i4 : Cc = simplicialModule(complex {matrix{{c}}}, 3)

      1      2      3      4
o4 = S  <-- S  <-- S  <-- S <-- ...
                           
     0      1      2      3

o4 : SimplicialModule
i5 : Cab = Cb ** Ca

      1      4      9      16
o5 = S  <-- S  <-- S  <-- S  <-- ...
                           
     0      1      2      3

o5 : SimplicialModule
i6 : dd^Cab

               1                    4
o6 = (0, 0) : S  <---------------- S  : (1, 0)
                    | 1 a b ab |

               1                   4
     (0, 1) : S  <--------------- S  : (1, 1)
                    | 1 0 0 0 |

               4                                  9
     (1, 0) : S  <------------------------------ S  : (2, 0)
                    {0} | 1 a 0 b ab 0 0 0 0 |
                    {1} | 0 0 1 0 0  b 0 0 0 |
                    {1} | 0 0 0 0 0  0 1 a 0 |
                    {2} | 0 0 0 0 0  0 0 0 1 |

               4                                 9
     (1, 1) : S  <----------------------------- S  : (2, 1)
                    {0} | 1 0 0 0 0 0 0 0 0 |
                    {1} | 0 1 1 0 0 0 0 0 0 |
                    {1} | 0 0 0 1 0 0 1 0 0 |
                    {2} | 0 0 0 0 1 1 0 1 1 |

               4                                 9
     (1, 2) : S  <----------------------------- S  : (2, 2)
                    {0} | 1 0 0 0 0 0 0 0 0 |
                    {1} | 0 1 0 0 0 0 0 0 0 |
                    {1} | 0 0 0 1 0 0 0 0 0 |
                    {2} | 0 0 0 0 1 0 0 0 0 |

               9                                                16
     (2, 0) : S  <-------------------------------------------- S   : (3, 0)
                    {0} | 1 a 0 0 b ab 0 0 0 0 0 0 0 0 0 0 |
                    {1} | 0 0 1 0 0 0  b 0 0 0 0 0 0 0 0 0 |
                    {1} | 0 0 0 1 0 0  0 b 0 0 0 0 0 0 0 0 |
                    {1} | 0 0 0 0 0 0  0 0 1 a 0 0 0 0 0 0 |
                    {2} | 0 0 0 0 0 0  0 0 0 0 1 0 0 0 0 0 |
                    {2} | 0 0 0 0 0 0  0 0 0 0 0 1 0 0 0 0 |
                    {1} | 0 0 0 0 0 0  0 0 0 0 0 0 1 a 0 0 |
                    {2} | 0 0 0 0 0 0  0 0 0 0 0 0 0 0 1 0 |
                    {2} | 0 0 0 0 0 0  0 0 0 0 0 0 0 0 0 1 |

               9                                               16
     (2, 1) : S  <------------------------------------------- S   : (3, 1)
                    {0} | 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
                    {1} | 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 |
                    {1} | 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 |
                    {1} | 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 |
                    {2} | 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 |
                    {2} | 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 |
                    {1} | 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 |
                    {2} | 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 |
                    {2} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 |

               9                                               16
     (2, 2) : S  <------------------------------------------- S   : (3, 2)
                    {0} | 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
                    {1} | 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
                    {1} | 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 |
                    {1} | 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 |
                    {2} | 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 |
                    {2} | 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 |
                    {1} | 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 |
                    {2} | 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 |
                    {2} | 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 |

               9                                               16
     (2, 3) : S  <------------------------------------------- S   : (3, 3)
                    {0} | 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
                    {1} | 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
                    {1} | 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 |
                    {1} | 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 |
                    {2} | 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 |
                    {2} | 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 |
                    {1} | 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 |
                    {2} | 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 |
                    {2} | 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 |

o6 : SimplicialModuleMap
i7 : (prune normalize Cab).dd

          1                  3
o7 = 0 : S  <-------------- S  : 1
               | a b ab |

          3                     2
     1 : S  <----------------- S  : 2
               {1} | -b -b |
               {1} | a  0  |
               {2} | 0  1  |

o7 : ComplexMap
i8 : assert isWellDefined Cab
i9 : Cabc = Cc ** Cab

      1      8      27      64
o9 = S  <-- S  <-- S   <-- S  <-- ...
                            
     0      1      2       3

o9 : SimplicialModule
i10 : Cc ** Cb ** Ca

       1      8      27      64
o10 = S  <-- S  <-- S   <-- S  <-- ...
                             
      0      1      2       3

o10 : SimplicialModule
i11 : dd^(nC = prune normalize Cabc)

           1                              7
o11 = 0 : S  <-------------------------- S  : 1
                | a b c ab ac bc abc |

           7                                                         12
      1 : S  <----------------------------------------------------- S   : 2
                {1} | -b -b -c -c 0  0  -bc -bc -bc -bc -bc -bc |
                {1} | a  0  0  0  -c -c ac  0   0   0   0   0   |
                {1} | 0  0  a  0  b  0  0   0   ab  0   0   0   |
                {2} | 0  1  0  0  0  0  0   c   0   0   0   0   |
                {2} | 0  0  0  1  0  0  0   0   0   b   0   0   |
                {2} | 0  0  0  0  0  1  0   0   0   0   a   0   |
                {3} | 0  0  0  0  0  0  0   0   0   0   0   1   |

           12                                 6
      2 : S   <----------------------------- S  : 3
                 {2} | -c 0  c  0  0  -c |
                 {2} | 0  -c 0  0  0  0  |
                 {2} | 0  0  -b -b 0  0  |
                 {2} | 0  0  0  0  -b 0  |
                 {2} | 0  0  a  0  0  0  |
                 {2} | 0  0  0  0  0  -a |
                 {3} | 1  0  0  0  0  0  |
                 {3} | 0  1  0  0  0  0  |
                 {3} | 0  0  0  1  0  0  |
                 {3} | 0  0  0  0  1  0  |
                 {3} | 0  0  0  0  0  1  |
                 {3} | 0  0  0  0  0  0  |

o11 : ComplexMap
i12 : assert isWellDefined nC

If one of the arguments is a module, it is considered as a complex concentrated in homological degree 0.

i13 : Cabc ** (S^1/(a,b,c));
i14 : S^2 ** Cabc

       2      16      54      128
o14 = S  <-- S   <-- S   <-- S   <-- ...
                              
      0      1       2       3

o14 : SimplicialModule

Because the tensor product can be regarded as the total complex of a double complex, each term of the tensor product comes with pairs of indices, labelling the summands.

i15 : indices Cabc_1

o15 = {{0, 0}, {0, 1}, {0, 2}, {0, 3}, {1, 0}, {1, 1}, {1, 2}, {1, 3}}

o15 : List
i16 : components Cabc_1

        1   1   1   1   1   1   1   1
o16 = {S , S , S , S , S , S , S , S }

o16 : List
i17 : Cabc_1_[{1,0}]

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

              8      1
o17 : Matrix S  <-- S
i18 : indices Cabc_2

o18 = {{0, 0}, {0, 1}, {0, 2}, {0, 3}, {0, 4}, {0, 5}, {0, 6}, {0, 7}, {0,
      -----------------------------------------------------------------------
      8}, {1, 0}, {1, 1}, {1, 2}, {1, 3}, {1, 4}, {1, 5}, {1, 6}, {1, 7}, {1,
      -----------------------------------------------------------------------
      8}, {2, 0}, {2, 1}, {2, 2}, {2, 3}, {2, 4}, {2, 5}, {2, 6}, {2, 7}, {2,
      -----------------------------------------------------------------------
      8}}

o18 : List
i19 : components Cabc_2

        1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1 
o19 = {S , S , S , S , S , S , S , S , S , S , S , S , S , S , S , S , S ,
      -----------------------------------------------------------------------
       1   1   1   1   1   1   1   1   1   1
      S , S , S , S , S , S , S , S , S , S }

o19 : List
i20 : Cabc_2_[{0,2}]

o20 = {0} | 0 |
      {1} | 0 |
      {1} | 1 |
      {1} | 0 |
      {2} | 0 |
      {2} | 0 |
      {1} | 0 |
      {2} | 0 |
      {2} | 0 |
      {1} | 0 |
      {2} | 0 |
      {2} | 0 |
      {2} | 0 |
      {3} | 0 |
      {3} | 0 |
      {2} | 0 |
      {3} | 0 |
      {3} | 0 |
      {1} | 0 |
      {2} | 0 |
      {2} | 0 |
      {2} | 0 |
      {3} | 0 |
      {3} | 0 |
      {2} | 0 |
      {3} | 0 |
      {3} | 0 |

              27      1
o20 : Matrix S   <-- S

See also

Ways to use this method:

  • Complex ** SimplicialModule
  • Module ** SimplicialModule
  • SimplicialModule ** Complex
  • SimplicialModule ** Module
  • SimplicialModule ** SimplicialModule -- tensor product of simplicial modules

The source of this document is in /build/reproducible-path/macaulay2-1.26.05+ds/M2/Macaulay2/packages/SimplicialModules/SimplicialModuleDOC.m2:976:0.