Macaulay2 » Documentation
Packages » MatrixFactorizations :: period
next | previous | forward | backward | up | index | toc

period -- the period of a ZZ/d-graded factorization or map

Description

In this package, each factorization has a period d. This function is mainly used in programming, to loop over all non-zero modules or maps in the factorization. This should not be confused with the support of a factorization (that is, all spots with a nonzero module).

i1 : S = ZZ/101[a..c];
i2 : F = ZZdfactorization(S^0, 2)

o2 = 0 <-- 0 <-- 0
                  
     0     1     0

o2 : ZZdFactorization
i3 : period F -- even though all modules are 0, period is unchanged.

o3 = 2
i4 : F == 0

o4 = true
i5 : C = tailMF ideal vars (S/(a^2+b^2+c^2))

      4      4      4
o5 = S  <-- S  <-- S
                    
     0      1      0

o5 : ZZdFactorization
i6 : period C

o6 = 2
i7 : D = C ++ C[5]

      8      8      8
o7 = S  <-- S  <-- S
                    
     0      1      0

o7 : ZZdFactorization
i8 : period D

o8 = 2

Unlike the "concentration" command for complexes, indices outside the period are taken modulo the period, and all of the standard operations on factorizations leave the period unchanged. If you want to change the period of a factorization, try using TO (unfold, ZZdFactorization, List) instead.

i9 : C_-1

      4
o9 = S

o9 : S-module, free, degrees {4:4}
i10 : D_4

       8
o10 = S

o10 : S-module, free, degrees {4:3, 4:4}

The function period does no computation. Use prune to obtain the pruned outputs.

i11 : f1 = a*id_C

           4                       4
o11 = 0 : S  <------------------- S  : 0
                {3} | a 0 0 0 |
                {3} | 0 a 0 0 |
                {3} | 0 0 a 0 |
                {3} | 0 0 0 a |

           4                       4
      1 : S  <------------------- S  : 1
                {4} | a 0 0 0 |
                {4} | 0 a 0 0 |
                {4} | 0 0 a 0 |
                {4} | 0 0 0 a |

o11 : ZZdFactorizationMap
i12 : E = coker f1

o12 = cokernel {3} | a 0 0 0 | <-- cokernel {4} | a 0 0 0 | <-- cokernel {3} | a 0 0 0 |
               {3} | 0 a 0 0 |              {4} | 0 a 0 0 |              {3} | 0 a 0 0 |
               {3} | 0 0 a 0 |              {4} | 0 0 a 0 |              {3} | 0 0 a 0 |
               {3} | 0 0 0 a |              {4} | 0 0 0 a |              {3} | 0 0 0 a |
                                                                 
      0                            1                            0

o12 : ZZdFactorization
i13 : Z = coker id_C

o13 = cokernel {3} | 1 0 0 0 | <-- cokernel {4} | 1 0 0 0 | <-- cokernel {3} | 1 0 0 0 |
               {3} | 0 1 0 0 |              {4} | 0 1 0 0 |              {3} | 0 1 0 0 |
               {3} | 0 0 1 0 |              {4} | 0 0 1 0 |              {3} | 0 0 1 0 |
               {3} | 0 0 0 1 |              {4} | 0 0 0 1 |              {3} | 0 0 0 1 |
                                                                 
      0                            1                            0

o13 : ZZdFactorization
i14 : Z == 0

o14 = true
i15 : period prune Z

o15 = 2

A module may be viewed as a ZZ/d-graded factorization with any period. We can construct this factorization as follows. We can specify the base homological degree using the option Base.

i16 : C0 = ZZdfactorization(coker vars S, 2)

o16 = cokernel | a b c | <-- 0 <-- cokernel | a b c |
                                    
      0                      1     0

o16 : ZZdFactorization
i17 : C1 = ZZdfactorization(coker vars S, 2, Base => 1)

o17 = 0 <-- cokernel | a b c | <-- 0
                                    
      0     1                      0

o17 : ZZdFactorization
i18 : period C0

o18 = 2
i19 : period C1

o19 = 2
i20 : prune C0 == (prune C1)[1]

o20 = true

See also

Ways to use period:

  • period(ZZdFactorization)
  • period(ZZdFactorizationMap)

For the programmer

The object period is a method function.


The source of this document is in MatrixFactorizations/MatrixFactorizationsDOC.m2:490:0.