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

simplicialTensor -- compute the simplicial tensor product and cache direct sum indices for easy access

Description

This function computes the simplicial tensor product of a list T, which can consist of simplicial modules or complexes. It caches direct sum indices using tensorwithComponents so that the user can easily access components of the resulting face/degeneracy maps on particular direct summands of the tensor product.

The simplicial tensor product of complexes is built as the Dold-Kan extension of the tensor product functor on the category of R-modules. In general, this complex looks quite different from the standard tensor product of complexes. In fact, the simplicial tensor product is always homotopy equivalent to the classically defined tensor product.

i1 : Q = ZZ/101[x_1,x_2];
i2 : K1 = complex {matrix{{x_1}}};
i3 : K2 = complex {matrix{{x_2}}};
i4 : T1 = K1**K2

      1      2      1
o4 = Q  <-- Q  <-- Q
                    
     0      1      2

o4 : Complex
i5 : T1.dd

          1                   2
o5 = 0 : Q  <--------------- Q  : 1
               | x_2 x_1 |

          2                    1
     1 : Q  <---------------- Q  : 2
               {1} | x_1  |
               {1} | -x_2 |

o5 : ComplexMap
i6 : T2 = prune simplicialTensor({K1,K2})

      1      3      2
o6 = Q  <-- Q  <-- Q
                    
     0      1      2

o6 : Complex
i7 : T2.dd

          1                          3
o7 = 0 : Q  <---------------------- Q  : 1
               | x_2 x_1 x_1x_2 |

          3                         2
     1 : Q  <--------------------- Q  : 2
               {1} | -x_1 -x_1 |
               {1} | x_2  0    |
               {2} | 0    1    |

o7 : ComplexMap
i8 : phi1 = extend(T1,T2,id_(T1_0))

          1             1
o8 = 0 : Q  <--------- Q  : 0
               | 1 |

          2                       3
     1 : Q  <------------------- Q  : 1
               {1} | 1 0 0   |
               {1} | 0 1 x_2 |

          1                     2
     2 : Q  <----------------- Q  : 2
               {2} | -1 -1 |

o8 : ComplexMap
i9 : phi2 = extend(T2,T1,id_(T1_0))

          1             1
o9 = 0 : Q  <--------- Q  : 0
               | 1 |

          3                   2
     1 : Q  <--------------- Q  : 1
               {1} | 1 0 |
               {1} | 0 1 |
               {2} | 0 0 |

          2                  1
     2 : Q  <-------------- Q  : 2
               {2} | -1 |
               {2} | 0  |

o9 : ComplexMap
i10 : phi1*phi2 == id_T1

o10 = true
i11 : isNullHomotopic(phi2*phi1 - id_T2)

o11 = true

Here is how to access specific components of the face maps for a tensor product of simplicial modules:

i12 : S1 = simplicialModule(K1, 4)

       1      2      3      4      5
o12 = Q  <-- Q  <-- Q  <-- Q  <-- Q <-- ...
                                   
      0      1      2      3      4

o12 : SimplicialModule
i13 : S2 = simplicialModule(K2, 4)

       1      2      3      4      5
o13 = Q  <-- Q  <-- Q  <-- Q  <-- Q <-- ...
                                   
      0      1      2      3      4

o13 : SimplicialModule
i14 : S12 = S1**S2

       1      4      9      16      25
o14 = Q  <-- Q  <-- Q  <-- Q   <-- Q  <-- ...
                                    
      0      1      2      3       4

o14 : SimplicialModule
i15 : indices S12_4 --lists the indices of the summands

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

o15 : List
i16 : netList flatten for i in indices S12_4 list (
          for j in indices S12_3 list ( if (dd^S12_(4,0))_[i]^[j]==0 then continue else
              horizontalJoin {net (dd^S12_(4,0))_[i]^[j], " : ", net i, " --> " , net j} ))

      +-------------------------------+
o16 = || 1 | : {0, 0} --> {0, 0}      |
      +-------------------------------+
      || x_2 | : {0, 1} --> {0, 0}    |
      +-------------------------------+
      |{1} | 1 | : {0, 2} --> {0, 1}  |
      +-------------------------------+
      |{1} | 1 | : {0, 3} --> {0, 2}  |
      +-------------------------------+
      |{1} | 1 | : {0, 4} --> {0, 3}  |
      +-------------------------------+
      || x_1 | : {1, 0} --> {0, 0}    |
      +-------------------------------+
      || x_1x_2 | : {1, 1} --> {0, 0} |
      +-------------------------------+
      |{1} | x_1 | : {1, 2} --> {0, 1}|
      +-------------------------------+
      |{1} | x_1 | : {1, 3} --> {0, 2}|
      +-------------------------------+
      |{1} | x_1 | : {1, 4} --> {0, 3}|
      +-------------------------------+
      |{1} | 1 | : {2, 0} --> {1, 0}  |
      +-------------------------------+
      |{1} | x_2 | : {2, 1} --> {1, 0}|
      +-------------------------------+
      |{2} | 1 | : {2, 2} --> {1, 1}  |
      +-------------------------------+
      |{2} | 1 | : {2, 3} --> {1, 2}  |
      +-------------------------------+
      |{2} | 1 | : {2, 4} --> {1, 3}  |
      +-------------------------------+
      |{1} | 1 | : {3, 0} --> {2, 0}  |
      +-------------------------------+
      |{1} | x_2 | : {3, 1} --> {2, 0}|
      +-------------------------------+
      |{2} | 1 | : {3, 2} --> {2, 1}  |
      +-------------------------------+
      |{2} | 1 | : {3, 3} --> {2, 2}  |
      +-------------------------------+
      |{2} | 1 | : {3, 4} --> {2, 3}  |
      +-------------------------------+
      |{1} | 1 | : {4, 0} --> {3, 0}  |
      +-------------------------------+
      |{1} | x_2 | : {4, 1} --> {3, 0}|
      +-------------------------------+
      |{2} | 1 | : {4, 2} --> {3, 1}  |
      +-------------------------------+
      |{2} | 1 | : {4, 3} --> {3, 2}  |
      +-------------------------------+
      |{2} | 1 | : {4, 4} --> {3, 3}  |
      +-------------------------------+

One reason for using the simplicial tensor product is that its components as a simplicial module are more canonically built, and thus naturally extend functorial maps on the category of R-modules to the category of chain complexes.

We can see actually see this in an example. The exterior power functor admits a canonical comultiplication map $$\bigwedge^{i+j} \to \bigwedge^i \otimes \bigwedge^j.$$ This means that for any chain complex $C$ there is a canonical inclusion of complexes $$\bigwedge^{i+j} C \hookrightarrow \bigwedge^i C \otimes \bigwedge^j C.$$ Constructing this inclusion directly using the naive definition of the exterior power functor on complexes would be extremely unnatural, but filtering through the simplicial category makes this a very easy task:

i17 : Q = ZZ/101[a,b];
i18 : K = koszulComplex vars Q

       1      2      1
o18 = Q  <-- Q  <-- Q
                     
      0      1      2

o18 : Complex
i19 : SK = simplicialModule(K,6) --want top degree 6 since the resulting complexes should have length 6

       1      3      6      10      15      21      28
o19 = Q  <-- Q  <-- Q  <-- Q   <-- Q   <-- Q   <-- Q  <-- ...
                                                    
      0      1      2      3       4       5       6

o19 : SimplicialModule
i20 : w21K = extPower(2, SK) ** SK

             9      90      450      1575      4410      10584
o20 = 0 <-- Q  <-- Q   <-- Q    <-- Q     <-- Q     <-- Q     <-- ...
                                                         
      0     1      2       3        4         5         6

o20 : SimplicialModule
i21 : w3K = extPower(3, SK)

             1      20      120      455      1330      3276
o21 = 0 <-- Q  <-- Q   <-- Q    <-- Q    <-- Q     <-- Q    <-- ...
                                                        
      0     1      2       3        4        5         6

o21 : SimplicialModule
i22 : H = hashTable for i from 0 to 6 list i => dual wedgeProduct(2,1, dual SK_i);
i23 : inclusion = map(w21K, w3K, H);
i24 : isWellDefined inclusion

o24 = true
i25 : isCommutative inclusion

o25 = true
i26 : prune ker inclusion --should be 0 since it is an inclusion

o26 = 0 <-- 0 <-- 0 <-- 0 <-- 0 <-- 0 <-- 0<-- ...
                                           
      0     1     2     3     4     5     6

o26 : SimplicialModule
i27 : S21' = complex { matrix {{a, b, 0, 0, -b}, {0, 0, a, b, a}}, matrix {{-b, b, 0, 0,
                                       b, 0}, {a, -a, 0, 0, 0, b}, {0, 0, -b, b, -a, 0}, {0, 0, a, -a, 0, -a}, {0, 0, 0, 0, a, b}},
                                      matrix {{a, b, 0, -b, -b}, {a, b, 0, 0, -2*b}, {0, a, b, a, 0}, {0, a, b, 0, a}, {0, 0, 0,
                                        -b, b}, {0, 0, 0, a, -a}}, matrix {{3*b, 0}, {-a, 2*b}, {0, -3*a}, {a, b}, {a, b}}}

       2      5      6      5      2
o27 = Q  <-- Q  <-- Q  <-- Q  <-- Q
                                   
      0      1      2      3      4

o27 : Complex
i28 : S21 = S21'[-1]  --this is the S^(2,1) schur functor; note the ranks

       2      5      6      5      2
o28 = Q  <-- Q  <-- Q  <-- Q  <-- Q
                                   
      1      2      3      4      5

o28 : Complex
i29 : prune HH S21 --note the homology

o29 = cokernel | b a 0 0 | <-- cokernel {1} | b a | <-- cokernel {2} | b a 0 0 |
               | 0 0 b a |                                       {2} | 0 0 b a |
                               2                         
      1                                                 3

o29 : Complex

Just for sake of illustration, let us see how the above example changes in the modular setting; note that the only characteristic for which the inclusion $$\bigwedge^3 \hookrightarrow \bigwedge^2 \otimes \bigwedge^1$$ is not canonically split is for characteristic 3, so we should expect the Dold-Kan extension of the Schur functor $\mathbb{S}^{(2,1)} (K)$ to look different in characteristic 3. (the resulting minimization of $\mathbb{S}^{(2,1)} (K)$ should not have coefficients, for instance).

i30 : Q = ZZ/3[a,b];
i31 : K = koszulComplex vars Q

       1      2      1
o31 = Q  <-- Q  <-- Q
                     
      0      1      2

o31 : Complex
i32 : SK = simplicialModule(K,6) --want top degree 6 since the resulting complexes should have length 6

       1      3      6      10      15      21      28
o32 = Q  <-- Q  <-- Q  <-- Q   <-- Q   <-- Q   <-- Q  <-- ...
                                                    
      0      1      2      3       4       5       6

o32 : SimplicialModule
i33 : w21K = extPower(2, SK) ** SK

             9      90      450      1575      4410      10584
o33 = 0 <-- Q  <-- Q   <-- Q    <-- Q     <-- Q     <-- Q     <-- ...
                                                         
      0     1      2       3        4         5         6

o33 : SimplicialModule
i34 : w3K = extPower(3, SK)

             1      20      120      455      1330      3276
o34 = 0 <-- Q  <-- Q   <-- Q    <-- Q    <-- Q     <-- Q    <-- ...
                                                        
      0     1      2       3        4        5         6

o34 : SimplicialModule
i35 : H = hashTable for i from 0 to 6 list i => dual wedgeProduct(2,1, dual SK_i);
i36 : inclusion = map(w21K, w3K, H);

Note that the above method of computing the Schur functor $\mathbb{S}^{(2,1)} (K)$ is significantly faster than the schurMap command.

This method is also implemented functorially, so it can be applied to simplicial maps and complex maps.

i37 : F = freeResolution( (ideal vars Q)^2)

       1      3      2
o37 = Q  <-- Q  <-- Q
                     
      0      1      2

o37 : Complex
i38 : phi = extend(K, F, id_(K_0))

           1             1
o38 = 0 : Q  <--------- Q  : 0
                | 1 |

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

           1                   2
      2 : Q  <--------------- Q  : 2
                {2} | 0 b |

o38 : ComplexMap
i39 : prune simplicialTensor(phi, phi)

           1             1
o39 = 0 : Q  <--------- Q  : 0
                | 1 |

           8                                                      15
      1 : Q  <-------------------------------------------------- Q   : 1
                {1} | a b 0 0 0 0 0  0  0  0  0  0  0  0  0  |
                {1} | 0 0 b 0 0 0 0  0  0  0  0  0  0  0  0  |
                {1} | 0 0 0 a b 0 0  0  0  0  0  0  0  0  0  |
                {1} | 0 0 0 0 0 b 0  0  0  0  0  0  0  0  0  |
                {2} | 0 0 0 0 0 0 a2 ab 0  ab b2 0  0  0  0  |
                {2} | 0 0 0 0 0 0 0  0  ab 0  0  b2 0  0  0  |
                {2} | 0 0 0 0 0 0 0  0  0  0  0  0  ab b2 0  |
                {2} | 0 0 0 0 0 0 0  0  0  0  0  0  0  0  b2 |

           19                                                                                                                                                  50
      2 : Q   <---------------------------------------------------------------------------------------------------------------------------------------------- Q   : 2
                 {2} | 0 b 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 0 0 0 0 0 0  0  0  0  0  0  0 0 0 0  |
                 {2} | 0 0 0 0 a2 ab 0  0  0  0  ab b2 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  0  0 0 0 0  |
                 {2} | 0 0 0 0 0  0  ab 0  0  0  0  0  b2 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  0 0 0 0  |
                 {2} | 0 0 0 0 0  0  0  a2 ab 0  0  0  0  ab b2 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 0 0  |
                 {2} | 0 0 0 0 0  0  0  0  0  ab 0  0  0  0  0  b2 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 0  |
                 {2} | 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  ab b2 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  |
                 {2} | 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  b2 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  |
                 {2} | 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  ab b2 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  |
                 {2} | 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  b2 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  |
                 {2} | 0 0 0 b 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 0 0 0 0  0  0  0  0  0  0 0 0 0  |
                 {3} | 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 ab 0 b2 0 0  0 0  0 0  0 0  0 0 0 0 0 0 0  0  0  0  0  0  0 0 0 0  |
                 {3} | 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 b2 0 0  0 0  0 0  0 0 0 0 0 0 0  0  0  0  0  0  0 0 0 0  |
                 {3} | 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 ab 0 b2 0 0  0 0 0 0 0 0 0  0  0  0  0  0  0 0 0 0  |
                 {3} | 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 b2 0 0 0 0 0 0 0  0  0  0  0  0  0 0 0 0  |
                 {3} | 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 0  0 0 0 0 0 0 ab b2 0  0  0  0  0 0 0 0  |
                 {3} | 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 0  0 0 0 0 0 0 0  0  b2 0  0  0  0 0 0 0  |
                 {3} | 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 0  0 0 0 0 0 0 0  0  0  ab b2 0  0 0 0 0  |
                 {3} | 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 0  0 0 0 0 0 0 0  0  0  0  0  b2 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  0 0  0 0  0 0 0 0 0 0 0  0  0  0  0  0  0 0 0 b2 |

           18                                                                                                                                                               60
      3 : Q   <----------------------------------------------------------------------------------------------------------------------------------------------------------- Q   : 3
                 {3} | 0 ab 0 b2 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 0 0 0  0 0 0 0 0 0  0 0  0 0 0 0 0 0 0 0  0 0  0 0  |
                 {3} | 0 0  0 0  0 b2 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 0  0 0 0 0 0 0  0 0  0 0 0 0 0 0 0 0  0 0  0 0  |
                 {3} | 0 0  0 0  0 0  0 ab 0 0  0 b2 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 0  0 0  0 0 0 0 0 0 0 0  0 0  0 0  |
                 {3} | 0 0  0 0  0 0  0 0  0 ab 0 0  0 b2 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 0  0 0 0 0 0 0 0 0  0 0  0 0  |
                 {3} | 0 0  0 0  0 0  0 0  0 0  0 0  0 0  0 b2 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 0 0 0 0 0 0 0  0 0  0 0  |
                 {3} | 0 0  0 0  0 0  0 0  0 0  0 0  0 0  0 0  0 b2 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 0 0 0 0 0  0 0  0 0  |
                 {3} | 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 ab b2 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  |
                 {3} | 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  b2 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  |
                 {3} | 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  ab b2 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  |
                 {3} | 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  b2 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  |
                 {3} | 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  ab b2 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  |
                 {3} | 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  0  0  b2 0 0 0 0  0 0 0 0 0 0  0 0  0 0 0 0 0 0 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  0  0  0  0  0  0  0 0 0 b2 0 0 0 0 0 0  0 0  0 0 0 0 0 0 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  0  0  0  0  0  0  0 0 0 0  0 0 0 0 0 b2 0 0  0 0 0 0 0 0 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  0  0  0  0  0  0  0 0 0 0  0 0 0 0 0 0  0 b2 0 0 0 0 0 0 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  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 b2 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  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 b2 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  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 b2 |

           6                                                                     24
      4 : Q  <----------------------------------------------------------------- Q   : 4
                {4} | 0 0 0 b2 0 0 0 0 0 0  0 0  0 0 0 0 0 0 0 0  0 0  0 0  |
                {4} | 0 0 0 0  0 0 0 0 0 b2 0 0  0 0 0 0 0 0 0 0  0 0  0 0  |
                {4} | 0 0 0 0  0 0 0 0 0 0  0 b2 0 0 0 0 0 0 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 b2 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 b2 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 b2 |

o39 : ComplexMap

Caveat

The user should remember to prune the output upon normalizing a simplicial tensor product.

See also

Ways to use simplicialTensor:

  • simplicialTensor(Complex,Complex)
  • simplicialTensor(ComplexMap,ComplexMap)
  • simplicialTensor(List)
  • simplicialTensor(ZZ,Complex)
  • simplicialTensor(ZZ,SimplicialModule)
  • simplicialTensor(SimplicialModule,SimplicialModule) (missing documentation)

For the programmer

The object simplicialTensor is a method function with options.


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