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

dual(ZZdFactorization) -- make the dual of a ZZ/d-graded factorization

Description

The dual of a ZZ/d-graded factorization $C$ is by definition $Hom(C, R)$, where $R$ is the ring of $C$. If $C$ is a factorization of $f$, then the dual of $C$ is a factorization of $-f$.

i1 : S = ZZ/101[a..d];
i2 : f = a^2+b^2+c^2+d^2;
i3 : R = S/(f)

o3 = R

o3 : QuotientRing
i4 : C1 = tailMF ideal vars R

      8      8      8
o4 = S  <-- S  <-- S
                    
     0      1      0

o4 : ZZdFactorization
i5 : C2 = dual C1

      8      8      8
o5 = S  <-- S  <-- S
                    
     0      1      0

o5 : ZZdFactorization
i6 : isdFactorization C2

               2    2    2    2
o6 = (true, - a  - b  - c  - d )

o6 : Sequence
i7 : potential C1

      2    2    2    2
o7 = a  + b  + c  + d

o7 : S
i8 : potential C2

        2    2    2    2
o8 = - a  - b  - c  - d

o8 : S

The double dual of a ZZ/2-graded factorization is isomorphic to the original factorization. If the period of the factorization is $>2$, then one should adjoin a root of unity to the underlying ring or factorization. This can be done in a few different ways:

i9 : Q = ZZ/101[a..c];
i10 : f = a^3+b^3+c^3

       3    3    3
o10 = a  + b  + c

o10 : Q
i11 : F = linearMF(f,t) --this syntax automatically adjoins a root

      /   Q[t]   \9     /   Q[t]   \9     /   Q[t]   \9     /   Q[t]   \9
o11 = |----------|  <-- |----------|  <-- |----------|  <-- |----------|
      | 2        |      | 2        |      | 2        |      | 2        |
      \t  + t + 1/      \t  + t + 1/      \t  + t + 1/      \t  + t + 1/
                                                             
      0                 1                 2                 0

o11 : ZZdFactorization
i12 : Fd = dual F

      /   Q[t]   \9     /   Q[t]   \9     /   Q[t]   \9     /   Q[t]   \9
o12 = |----------|  <-- |----------|  <-- |----------|  <-- |----------|
      | 2        |      | 2        |      | 2        |      | 2        |
      \t  + t + 1/      \t  + t + 1/      \t  + t + 1/      \t  + t + 1/
                                                             
      0                 1                 2                 0

o12 : ZZdFactorization
i13 : Fd.dd

          /   Q[t]   \9                                                               /   Q[t]   \9
o13 = 2 : |----------|  <------------------------------------------------------------ |----------|  : 0
          | 2        |     {0, -3} | ct+c 0    0    0    0    0    bt+b 0    at+a |   | 2        |
          \t  + t + 1/     {0, -3} | 0    ct+c 0    0    0    0    at+a -b   0    |   \t  + t + 1/
                           {0, -3} | 0    0    ct+c 0    0    0    0    at+a -bt  |
                           {0, -3} | bt+b 0    at+a -c   0    0    0    0    0    |
                           {0, -3} | at+a -b   0    0    -c   0    0    0    0    |
                           {0, -3} | 0    at+a -bt  0    0    -c   0    0    0    |
                           {0, -3} | 0    0    0    bt+b 0    at+a -ct  0    0    |
                           {0, -3} | 0    0    0    at+a -b   0    0    -ct  0    |
                           {0, -3} | 0    0    0    0    at+a -bt  0    0    -ct  |

          /   Q[t]   \9                                                          /   Q[t]   \9
      0 : |----------|  <------------------------------------------------------- |----------|  : 1
          | 2        |     {0, -3} | -c 0   0    0   0   0    -b   0    -a   |   | 2        |
          \t  + t + 1/     {0, -3} | 0  -c  0    0   0   0    -a   -bt  0    |   \t  + t + 1/
                           {0, -3} | 0  0   -c   0   0   0    0    -a   bt+b |
                           {0, -3} | -b 0   -a   -ct 0   0    0    0    0    |
                           {0, -3} | -a -bt 0    0   -ct 0    0    0    0    |
                           {0, -3} | 0  -a  bt+b 0   0   -ct  0    0    0    |
                           {0, -3} | 0  0   0    -b  0   -a   ct+c 0    0    |
                           {0, -3} | 0  0   0    -a  -bt 0    0    ct+c 0    |
                           {0, -3} | 0  0   0    0   -a  bt+b 0    0    ct+c |

          /   Q[t]   \9                                                           /   Q[t]   \9
      1 : |----------|  <-------------------------------------------------------- |----------|  : 2
          | 2        |     {0, -3} | -ct 0    0   0    0    0    -bt 0    -at |   | 2        |
          \t  + t + 1/     {0, -3} | 0   -ct  0   0    0    0    -at bt+b 0   |   \t  + t + 1/
                           {0, -3} | 0   0    -ct 0    0    0    0   -at  -b  |
                           {0, -3} | -bt 0    -at ct+c 0    0    0   0    0   |
                           {0, -3} | -at bt+b 0   0    ct+c 0    0   0    0   |
                           {0, -3} | 0   -at  -b  0    0    ct+c 0   0    0   |
                           {0, -3} | 0   0    0   -bt  0    -at  -c  0    0   |
                           {0, -3} | 0   0    0   -at  bt+b 0    0   -c   0   |
                           {0, -3} | 0   0    0   0    -at  -b   0   0    -c  |

o13 : ZZdFactorizationMap
i14 : potential F

       3    3    3
o14 = a  + b  + c

         Q[t]
o14 : ----------
       2
      t  + t + 1
i15 : potential dual F

         3    3    3
o15 = - a  - b  - c

         Q[t]
o15 : ----------
       2
      t  + t + 1
i16 : F' = ZZdfactorization {a,a,a} --no root of unity in this case

       1      1      1      1
o16 = Q  <-- Q  <-- Q  <-- Q
                            
      0      1      2      0

o16 : ZZdFactorization
i17 : Ft = adjoinRoot(F',t)

      /   Q[t]   \1     /   Q[t]   \1     /   Q[t]   \1     /   Q[t]   \1
o17 = |----------|  <-- |----------|  <-- |----------|  <-- |----------|
      | 2        |      | 2        |      | 2        |      | 2        |
      \t  + t + 1/      \t  + t + 1/      \t  + t + 1/      \t  + t + 1/
                                                             
      0                 1                 2                 0

o17 : ZZdFactorization
i18 : dual Ft

      /   Q[t]   \1     /   Q[t]   \1     /   Q[t]   \1     /   Q[t]   \1
o18 = |----------|  <-- |----------|  <-- |----------|  <-- |----------|
      | 2        |      | 2        |      | 2        |      | 2        |
      \t  + t + 1/      \t  + t + 1/      \t  + t + 1/      \t  + t + 1/
                                                             
      0                 1                 2                 0

o18 : ZZdFactorization
i19 : Fd' = dual(F', t) --this syntax adjoins the root for the user

      /   Q[t]   \1     /   Q[t]   \1     /   Q[t]   \1     /   Q[t]   \1
o19 = |----------|  <-- |----------|  <-- |----------|  <-- |----------|
      | 2        |      | 2        |      | 2        |      | 2        |
      \t  + t + 1/      \t  + t + 1/      \t  + t + 1/      \t  + t + 1/
                                                             
      0                 1                 2                 0

o19 : ZZdFactorization
i20 : Fd'.dd

          /   Q[t]   \1               /   Q[t]   \1
o20 = 2 : |----------|  <------------ |----------|  : 0
          | 2        |     | at+a |   | 2        |
          \t  + t + 1/                \t  + t + 1/

          /   Q[t]   \1             /   Q[t]   \1
      0 : |----------|  <---------- |----------|  : 1
          | 2        |     | -a |   | 2        |
          \t  + t + 1/              \t  + t + 1/

          /   Q[t]   \1              /   Q[t]   \1
      1 : |----------|  <----------- |----------|  : 2
          | 2        |     | -at |   | 2        |
          \t  + t + 1/               \t  + t + 1/

o20 : ZZdFactorizationMap

See also

Ways to use this method:

  • dual(ZZdFactorization) -- make the dual of a ZZ/d-graded factorization
  • dual(ZZdFactorization,RingElement)
  • dual(ZZdFactorization,Symbol)

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