Macaulay2 » Documentation
Packages » SimplicialModules :: map(SimplicialModule,SimplicialModule,HashTable)
next | previous | forward | backward | up | index | toc

map(SimplicialModule,SimplicialModule,HashTable) -- make a map of simplicial modules

Description

A map of simplicial modules $f : C \rightarrow D$ of degree $d$ is a sequence of maps $f_i : C_i \rightarrow D_{d+i}$. No relationship between the maps $f_i$ and the face/degeneracy maps of either $C$ or $D$ is assumed.

We construct a map of simplicial modules by specifying the individual maps between the terms. Note that this constructor is typically used more behind the scenes, and using the simplicialModule or basic map constructors is typically much more efficient than typing the maps by hand.

i1 : R = ZZ/101[a,b,c];
i2 : C = simplicialModule(F = freeResolution coker matrix{{a^2-b^2,b^3-c^3,c^4}}, Degeneracy => true)

      1      4      10      20
o2 = R  <-- R  <-- R   <-- R  <-- ...
                            
     0      1      2       3

o2 : SimplicialModule
i3 : D = simplicialModule(G = freeResolution coker vars R, Degeneracy => true)

      1      4      10      20
o3 = R  <-- R  <-- R   <-- R  <-- ...
                            
     0      1      2       3

o3 : SimplicialModule
i4 : H = hashTable { 0 => map(D_0, C_0, 1),
         1 => map(D_1, C_1, {{1, 0, 0, 0}, {0, a, 0, 0}, {0, -b, b^2, 0}, {0, 0, -c^2, c^3}}),
         2 => map(D_2, C_2, {{1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                              {0, a, 0, 0, 0, 0,0, 0, 0, 0},
                              {0, -b, b^2, 0, 0, 0, 0, 0, 0, 0},
                              {0, 0,-c^2, c^3, 0, 0, 0, 0, 0, 0},
                              {0, 0, 0, 0, a, 0, 0, 0, 0,0},
                              {0, 0, 0, 0, -b, b^2, 0, 0, 0, 0},
                              {0, 0, 0, 0, 0,-c^2, c^3, 0, 0, 0},
                              {0, 0, 0, 0, 0, 0, 0, a*b^2, 0, 0},
                              {0, 0, 0, 0, 0, 0, 0, -a*c^2, a*c^3, 0},
                              {0, 0, 0, 0, 0, 0, 0, b*c^2, -b*c^3, b^2*c^3}}),
         3 => map(D_3, C_3, {{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0},
                             {0, a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0},
                             {0, -b, b^2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0},
                             {0, 0, -c^2, c^3, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                             {0, 0, 0, 0, a, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                             {0, 0, 0, 0, -b, b^2, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                             {0, 0, 0, 0, 0,-c^2, c^3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                             {0, 0,0, 0, 0, 0, 0, a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                             {0,0, 0, 0, 0, 0, 0, -b, b^2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0},
                             {0, 0, 0, 0, 0, 0, 0, 0, -c^2, c^3, 0, 0, 0, 0, 0, 0,0, 0, 0, 0},
                             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, a*b^2, 0, 0,0, 0, 0, 0, 0, 0, 0},
                             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-a*c^2, a*c^3, 0, 0, 0, 0, 0, 0, 0,0},
                             {0, 0, 0, 0, 0, 0,0, 0, 0, 0, b*c^2, -b*c^3, b^2*c^3, 0, 0, 0, 0, 0, 0, 0},
                             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, a*b^2, 0, 0, 0, 0,0, 0},
                             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -a*c^2,a*c^3, 0, 0, 0, 0, 0},
                             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, b*c^2, -b*c^3, b^2*c^3, 0, 0, 0, 0},
                             {0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, a*b^2, 0, 0, 0},
                             {0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -a*c^2, a*c^3,0, 0},
                             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, b*c^2, -b*c^3, b^2*c^3, 0},
                             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, a*b^2*c^3}})
                     }

o4 = HashTable{0 => | 1 |                                                                                     }
               1 => {0} | 1 0  0   0  |
                    {1} | 0 a  0   0  |
                    {1} | 0 -b b2  0  |
                    {1} | 0 0  -c2 c3 |
               2 => {0} | 1 0  0   0  0  0   0  0    0    0    |
                    {1} | 0 a  0   0  0  0   0  0    0    0    |
                    {1} | 0 -b b2  0  0  0   0  0    0    0    |
                    {1} | 0 0  -c2 c3 0  0   0  0    0    0    |
                    {1} | 0 0  0   0  a  0   0  0    0    0    |
                    {1} | 0 0  0   0  -b b2  0  0    0    0    |
                    {1} | 0 0  0   0  0  -c2 c3 0    0    0    |
                    {2} | 0 0  0   0  0  0   0  ab2  0    0    |
                    {2} | 0 0  0   0  0  0   0  -ac2 ac3  0    |
                    {2} | 0 0  0   0  0  0   0  bc2  -bc3 b2c3 |
               3 => {0} | 1 0  0   0  0  0   0  0  0   0  0    0    0    0    0    0    0    0    0    0     |
                    {1} | 0 a  0   0  0  0   0  0  0   0  0    0    0    0    0    0    0    0    0    0     |
                    {1} | 0 -b b2  0  0  0   0  0  0   0  0    0    0    0    0    0    0    0    0    0     |
                    {1} | 0 0  -c2 c3 0  0   0  0  0   0  0    0    0    0    0    0    0    0    0    0     |
                    {1} | 0 0  0   0  a  0   0  0  0   0  0    0    0    0    0    0    0    0    0    0     |
                    {1} | 0 0  0   0  -b b2  0  0  0   0  0    0    0    0    0    0    0    0    0    0     |
                    {1} | 0 0  0   0  0  -c2 c3 0  0   0  0    0    0    0    0    0    0    0    0    0     |
                    {1} | 0 0  0   0  0  0   0  a  0   0  0    0    0    0    0    0    0    0    0    0     |
                    {1} | 0 0  0   0  0  0   0  -b b2  0  0    0    0    0    0    0    0    0    0    0     |
                    {1} | 0 0  0   0  0  0   0  0  -c2 c3 0    0    0    0    0    0    0    0    0    0     |
                    {2} | 0 0  0   0  0  0   0  0  0   0  ab2  0    0    0    0    0    0    0    0    0     |
                    {2} | 0 0  0   0  0  0   0  0  0   0  -ac2 ac3  0    0    0    0    0    0    0    0     |
                    {2} | 0 0  0   0  0  0   0  0  0   0  bc2  -bc3 b2c3 0    0    0    0    0    0    0     |
                    {2} | 0 0  0   0  0  0   0  0  0   0  0    0    0    ab2  0    0    0    0    0    0     |
                    {2} | 0 0  0   0  0  0   0  0  0   0  0    0    0    -ac2 ac3  0    0    0    0    0     |
                    {2} | 0 0  0   0  0  0   0  0  0   0  0    0    0    bc2  -bc3 b2c3 0    0    0    0     |
                    {2} | 0 0  0   0  0  0   0  0  0   0  0    0    0    0    0    0    ab2  0    0    0     |
                    {2} | 0 0  0   0  0  0   0  0  0   0  0    0    0    0    0    0    -ac2 ac3  0    0     |
                    {2} | 0 0  0   0  0  0   0  0  0   0  0    0    0    0    0    0    bc2  -bc3 b2c3 0     |
                    {3} | 0 0  0   0  0  0   0  0  0   0  0    0    0    0    0    0    0    0    0    ab2c3 |

o4 : HashTable
i5 : f = map(D, C, H)

          1             1
o5 = 0 : R  <--------- R  : 0
               | 1 |

          4                           4
     1 : R  <----------------------- R  : 1
               {0} | 1 0  0   0  |
               {1} | 0 a  0   0  |
               {1} | 0 -b b2  0  |
               {1} | 0 0  -c2 c3 |

          10                                                    10
     2 : R   <------------------------------------------------ R   : 2
                {0} | 1 0  0   0  0  0   0  0    0    0    |
                {1} | 0 a  0   0  0  0   0  0    0    0    |
                {1} | 0 -b b2  0  0  0   0  0    0    0    |
                {1} | 0 0  -c2 c3 0  0   0  0    0    0    |
                {1} | 0 0  0   0  a  0   0  0    0    0    |
                {1} | 0 0  0   0  -b b2  0  0    0    0    |
                {1} | 0 0  0   0  0  -c2 c3 0    0    0    |
                {2} | 0 0  0   0  0  0   0  ab2  0    0    |
                {2} | 0 0  0   0  0  0   0  -ac2 ac3  0    |
                {2} | 0 0  0   0  0  0   0  bc2  -bc3 b2c3 |

          20                                                                                                  20
     3 : R   <---------------------------------------------------------------------------------------------- R   : 3
                {0} | 1 0  0   0  0  0   0  0  0   0  0    0    0    0    0    0    0    0    0    0     |
                {1} | 0 a  0   0  0  0   0  0  0   0  0    0    0    0    0    0    0    0    0    0     |
                {1} | 0 -b b2  0  0  0   0  0  0   0  0    0    0    0    0    0    0    0    0    0     |
                {1} | 0 0  -c2 c3 0  0   0  0  0   0  0    0    0    0    0    0    0    0    0    0     |
                {1} | 0 0  0   0  a  0   0  0  0   0  0    0    0    0    0    0    0    0    0    0     |
                {1} | 0 0  0   0  -b b2  0  0  0   0  0    0    0    0    0    0    0    0    0    0     |
                {1} | 0 0  0   0  0  -c2 c3 0  0   0  0    0    0    0    0    0    0    0    0    0     |
                {1} | 0 0  0   0  0  0   0  a  0   0  0    0    0    0    0    0    0    0    0    0     |
                {1} | 0 0  0   0  0  0   0  -b b2  0  0    0    0    0    0    0    0    0    0    0     |
                {1} | 0 0  0   0  0  0   0  0  -c2 c3 0    0    0    0    0    0    0    0    0    0     |
                {2} | 0 0  0   0  0  0   0  0  0   0  ab2  0    0    0    0    0    0    0    0    0     |
                {2} | 0 0  0   0  0  0   0  0  0   0  -ac2 ac3  0    0    0    0    0    0    0    0     |
                {2} | 0 0  0   0  0  0   0  0  0   0  bc2  -bc3 b2c3 0    0    0    0    0    0    0     |
                {2} | 0 0  0   0  0  0   0  0  0   0  0    0    0    ab2  0    0    0    0    0    0     |
                {2} | 0 0  0   0  0  0   0  0  0   0  0    0    0    -ac2 ac3  0    0    0    0    0     |
                {2} | 0 0  0   0  0  0   0  0  0   0  0    0    0    bc2  -bc3 b2c3 0    0    0    0     |
                {2} | 0 0  0   0  0  0   0  0  0   0  0    0    0    0    0    0    ab2  0    0    0     |
                {2} | 0 0  0   0  0  0   0  0  0   0  0    0    0    0    0    0    -ac2 ac3  0    0     |
                {2} | 0 0  0   0  0  0   0  0  0   0  0    0    0    0    0    0    bc2  -bc3 b2c3 0     |
                {3} | 0 0  0   0  0  0   0  0  0   0  0    0    0    0    0    0    0    0    0    ab2c3 |

o5 : SimplicialModuleMap
i6 : assert isWellDefined f
i7 : assert isHomogeneous f
i8 : assert(degree f == 0)
i9 : assert isSimplicialMorphism f

The keys in the hash table index the terms in the source of the map. If a key is missing, that map is taken to be the zero map. We illustrate this by constructing the 0 map as follows:

i10 : h = map(C, C, hashTable {})

o10 = 0

o10 : SimplicialModuleMap
i11 : h == 0

o11 = true

This is the primary constructor used by all of the more user friendly methods for constructing a simplicial module map.

Caveat

This constructor minimizes computation and does very little error checking. To verify that a simplicial module map is well constructed, use isWellDefined(SimplicialModuleMap).

See also

Ways to use this method:


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