Macaulay2 » Documentation
Packages » MatrixFactorizations :: directSum(ZZdFactorization)
next | previous | forward | backward | up | index | toc

# directSum(ZZdFactorization) -- direct sum of ZZ/d-graded factorizations

- Function: directSum
- Usage:
    `D = C1 ++ C2`
    `D = directSum(C1,C2,...)`
    `D = directSum(name1 => C1, name2 => C2, ...)`
- Inputs:
  - Ci, a ZZ/d graded factorization,
- Outputs:
  - D, a ZZ/d graded factorization, the direct sum of the input ZZ/d-graded factorizations

## Description

The direct sum of two factorizations is another factorization, assuming the inputs factor the same ring element. The differentials are simply the direct sum of the constituent differentials.

    i1 : S = ZZ/101[x,y];

    i2 : C1 = randomLinearMF(2,S)

          4      4      4
    o2 = S  <-- S  <-- S

         0      1      0

    o2 : ZZdFactorization

    i3 : C2 = randomLinearMF(2,S)

          4      4      4
    o3 = S  <-- S  <-- S

         0      1      0

    o3 : ZZdFactorization

    i4 : C12 = C1 ++ C2

          8      8      8
    o4 = S  <-- S  <-- S

         0      1      0

    o4 : ZZdFactorization

    i5 : potential(C1) == potential(C2)

    o5 = false

    i6 : isdFactorization(C12)

    o6 = (false, no potential)

    o6 : Sequence

    i7 : C12.dd^2

              8                                                                                                                                           8
    o7 = 0 : S  <--------------------------------------------------------------------------------------------------------------------------------------- S  : 0
                   {3} | 24x2-36xy-30y2 0              0              0              0               0               0               0               |
                   {3} | 0              24x2-36xy-30y2 0              0              0               0               0               0               |
                   {3} | 0              0              24x2-36xy-30y2 0              0               0               0               0               |
                   {3} | 0              0              0              24x2-36xy-30y2 0               0               0               0               |
                   {3} | 0              0              0              0              -29x2+19xy+19y2 0               0               0               |
                   {3} | 0              0              0              0              0               -29x2+19xy+19y2 0               0               |
                   {3} | 0              0              0              0              0               0               -29x2+19xy+19y2 0               |
                   {3} | 0              0              0              0              0               0               0               -29x2+19xy+19y2 |

              8                                                                                                                                           8
         1 : S  <--------------------------------------------------------------------------------------------------------------------------------------- S  : 1
                   {3} | 24x2-36xy-30y2 0              0              0              0               0               0               0               |
                   {3} | 0              24x2-36xy-30y2 0              0              0               0               0               0               |
                   {3} | 0              0              24x2-36xy-30y2 0              0               0               0               0               |
                   {3} | 0              0              0              24x2-36xy-30y2 0               0               0               0               |
                   {3} | 0              0              0              0              -29x2+19xy+19y2 0               0               0               |
                   {3} | 0              0              0              0              0               -29x2+19xy+19y2 0               0               |
                   {3} | 0              0              0              0              0               0               -29x2+19xy+19y2 0               |
                   {3} | 0              0              0              0              0               0               0               -29x2+19xy+19y2 |

    o7 : ZZdFactorizationMap

As we can see in the above example, the problem stems from the fact that the direct sum of matrix factorizations with different potentials is no longer a matrix factorization. Constructing factorizations with the same potential will solve this:

    i8 : Q = ZZ/101[x,y]

    o8 = Q

    o8 : PolynomialRing

    i9 : f = x^3+y^3;

    i10 : R = Q/(f)

    o10 = R

    o10 : QuotientRing

    i11 : m = ideal vars R

    o11 = ideal (x, y)

    o11 : Ideal of R

    i12 : F1 = tailMF m

           2      2      2
    o12 = Q  <-- Q  <-- Q

          0      1      0

    o12 : ZZdFactorization

    i13 : F2 = tailMF (m^2)

           3      3      3
    o13 = Q  <-- Q  <-- Q

          0      1      0

    o13 : ZZdFactorization

    i14 : potential(F1) == potential(F2)

    o14 = true

    i15 : F12 = F1++ F2

           5      5      5
    o15 = Q  <-- Q  <-- Q

          0      1      0

    o15 : ZZdFactorization

    i16 : isdFactorization F12

                  3    3
    o16 = (true, x  + y )

    o16 : Sequence

The direct sum is an n-ary operator with projection and inclusion maps from each component satisfying appropriate identities.

    i17 : C4 = directSum(first => F1, second => F2)

           5      5      5
    o17 = Q  <-- Q  <-- Q

          0      1      0

    o17 : ZZdFactorization

    i18 : C4_[first] -- inclusion map C1 --> C4

               5                   2
    o18 = 0 : Q  <--------------- Q  : 0
                    {2} | 1 0 |
                    {3} | 0 1 |
                    {3} | 0 0 |
                    {3} | 0 0 |
                    {3} | 0 0 |

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

    o18 : ZZdFactorizationMap

    i19 : C4^[first] -- projection map C4 --> C1

               2                         5
    o19 = 0 : Q  <--------------------- Q  : 0
                    {2} | 1 0 0 0 0 |
                    {3} | 0 1 0 0 0 |

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

    o19 : ZZdFactorizationMap

    i20 : C4^[first] * C4_[first] == 1

    o20 = true

    i21 : C4^[second] * C4_[second] == 1

    o21 = true

    i22 : C4^[first] * C4_[second] == 0

    o22 = true

    i23 : C4^[second] * C4_[first] == 0

    o23 = true

    i24 : C4_[first] * C4^[first] + C4_[second] * C4^[second] == 1

    o24 = true

There are two short exact sequences associated to a direct sum.

    i25 : isShortExactSequence(C4^[first], C4_[second])

    o25 = true

    i26 : isShortExactSequence(C4^[second], C4_[first])

    o26 = true

Given a factorization which is a direct sum, we obtain the component complexes and their names (indices) as follows (even if the resulting factorization is not well-defined, we can still obtain the components).

    i27 : components C12

            4      4      4   4      4      4
    o27 = {S  <-- S  <-- S , S  <-- S  <-- S }

           0      1      0   0      1      0

    o27 : List

    i28 : indices C12

    o28 = {0, 1}

    o28 : List

    i29 : components C4

            2      2      2   3      3      3
    o29 = {Q  <-- Q  <-- Q , Q  <-- Q  <-- Q }

           0      1      0   0      1      0

    o29 : List

    i30 : indices C4

    o30 = {first, second}

    o30 : List

## See also

- components(ZZdFactorization) -- list the components of a direct sum
- indices -- indices of a polynomial; also components for a direct sum
- ZZdFactorization ^ Array -- the canonical inclusion or projection map of a direct sum
- ZZdFactorization _ Array -- the canonical inclusion or projection map of a direct sum
- isShortExactSequence(ZZdFactorizationMap,ZZdFactorizationMap) -- whether a pair of ZZ/d-graded factorization maps forms a short exact sequence
- sum(Complex) -- make the direct sum of all terms

## Ways to use this method:

- directSum(ZZdFactorization) -- direct sum of ZZ/d-graded factorizations

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/MatrixFactorizations/MatrixFactorizationsDOC.m2:1195:0.