Macaulay2 » Documentation
Packages » MatrixFactorizations :: arithmetic with ZZ/d-graded factorization maps
next | previous | forward | backward | up | index | toc

arithmetic with ZZ/d-graded factorization maps -- perform arithmetic operations on ZZ/d-graded factorization maps

The set of ZZ/d-graded factorizations maps forms a module over the underlying ring. These methods implement the basic operations of addition, subtraction, and scalar multiplication.

i1 : S = ZZ/101[a,b];
i2 : R = S/(a^3+b^3);
i3 : m = ideal vars R

o3 = ideal (a, b)

o3 : Ideal of R
i4 : C = tailMF m

      2      2      2
o4 = S  <-- S  <-- S
                    
     0      1      0

o4 : ZZdFactorization
i5 : D = tailMF (m^2)

      3      3      3
o5 = S  <-- S  <-- S
                    
     0      1      0

o5 : ZZdFactorization
i6 : f = randomFactorizationMap(D, C, Cycle => true, InternalDegree => 1)

          3                           2
o6 = 0 : S  <----------------------- S  : 0
               {3} | 36 24a-30b  |
               {3} | 30 36a+24b  |
               {3} | 24 -30a-36b |

          3                       2
     1 : S  <------------------- S  : 1
               {5} | 36  24  |
               {5} | -30 -36 |
               {5} | 24  -30 |

o6 : ZZdFactorizationMap
i7 : g = randomFactorizationMap(D, C, Boundary => true)

          3                                      2
o7 = 0 : S  <---------------------------------- S  : 0
               {3} | -29ab+10b2 -10a2b-29b3 |
               {3} | 19ab+29b2  -29a2b+19b3 |
               {3} | 19ab+8b2   -8a2b+19b3  |

          3                                    2
     1 : S  <-------------------------------- S  : 1
               {5} | -29ab-19b2 -10ab+8b2 |
               {5} | -19ab-29b2 29ab-10b2 |
               {5} | 19ab+19b2  -8ab-29b2 |

o7 : ZZdFactorizationMap
i8 : use S;
i9 : f+g

          3                                                 2
o9 = 0 : S  <--------------------------------------------- S  : 0
               {3} | -29ab+10b2+36 -10a2b-29b3+24a-30b |
               {3} | 19ab+29b2+30  -29a2b+19b3+36a+24b |
               {3} | 19ab+8b2+24   -8a2b+19b3-30a-36b  |

          3                                          2
     1 : S  <-------------------------------------- S  : 1
               {5} | -29ab-19b2+36 -10ab+8b2+24 |
               {5} | -19ab-29b2-30 29ab-10b2-36 |
               {5} | 19ab+19b2+24  -8ab-29b2-30 |

o9 : ZZdFactorizationMap
i10 : f-g

           3                                                2
o10 = 0 : S  <-------------------------------------------- S  : 0
                {3} | 29ab-10b2+36  10a2b+29b3+24a-30b |
                {3} | -19ab-29b2+30 29a2b-19b3+36a+24b |
                {3} | -19ab-8b2+24  8a2b-19b3-30a-36b  |

           3                                           2
      1 : S  <--------------------------------------- S  : 1
                {5} | 29ab+19b2+36  10ab-8b2+24   |
                {5} | 19ab+29b2-30  -29ab+10b2-36 |
                {5} | -19ab-19b2+24 8ab+29b2-30   |

o10 : ZZdFactorizationMap
i11 : -f

           3                            2
o11 = 0 : S  <------------------------ S  : 0
                {3} | -36 -24a+30b |
                {3} | -30 -36a-24b |
                {3} | -24 30a+36b  |

           3                       2
      1 : S  <------------------- S  : 1
                {5} | -36 -24 |
                {5} | 30  36  |
                {5} | -24 30  |

o11 : ZZdFactorizationMap
i12 : 3*f

           3                            2
o12 = 0 : S  <------------------------ S  : 0
                {3} | 7   -29a+11b |
                {3} | -11 7a-29b   |
                {3} | -29 11a-7b   |

           3                       2
      1 : S  <------------------- S  : 1
                {5} | 7   -29 |
                {5} | 11  -7  |
                {5} | -29 11  |

o12 : ZZdFactorizationMap
i13 : 0*f

o13 = 0

o13 : ZZdFactorizationMap
i14 : a*f

           3                              2
o14 = 0 : S  <-------------------------- S  : 0
                {3} | 36a 24a2-30ab  |
                {3} | 30a 36a2+24ab  |
                {3} | 24a -30a2-36ab |

           3                         2
      1 : S  <--------------------- S  : 1
                {5} | 36a  24a  |
                {5} | -30a -36a |
                {5} | 24a  -30a |

o14 : ZZdFactorizationMap
i15 : assert(0*f == 0)
i16 : assert(1*f == f)
i17 : assert((-1)*f == -f)
i18 : assert(-(f-g) == g-f)
i19 : assert((a+b)*f == a*f + b*f)
i20 : assert(a*(f+g) == a*f + a*g)

Adding or subtracting a scalar is the same as adding or subtracting the scalar multiple of the identity. In particular, the source and target must be equal.

See also


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