Macaulay2 » Documentation
Packages » WeierstrassSemigroups :: getFlatFamily
next | previous | forward | backward | up | index | toc

getFlatFamily -- Compute the flat family depending on a subset of parameters of the universal unfolding

Description

We compute the flattening relations.

i1 : L = {4,5,6}

o1 = {4, 5, 6}

o1 : List
i2 : genus L

o2 = 4
i3 : I=ideal semigroupRing(L,"BaseField"=>ZZ/nextPrime 10^4)

             2          3    2
o3 = ideal (x  - x x , x  - x )
             1    0 2   0    2

                ZZ
o3 : Ideal of -----[x ..x ]
              10007  0   2
i4 : (A,unfolding)=makeUnfolding I;
i5 : (J,family)=getFlatFamily(I,A,unfolding);
i6 : betti J

            0
o6 = total: 1
         0: 1

o6 : BettiTally
i7 : support unfolding

o7 = {x , x , x , a      , a      , a      , a      , a      , a      , a   
       0   1   2   {1, 0}   {0, 0}   {1, 1}   {1, 2}   {1, 3}   {0, 1}   {0,
     ------------------------------------------------------------------------
       , a      , a      , a      , a      , a      , a      , a      }
     2}   {1, 4}   {0, 3}   {1, 5}   {1, 6}   {0, 4}   {1, 7}   {0, 5}

o7 : List
i8 : support family

o8 = {x , x , x , a      , a      , a      , a      , a      , a      , a   
       0   1   2   {1, 0}   {0, 0}   {1, 1}   {1, 2}   {1, 3}   {0, 1}   {0,
     ------------------------------------------------------------------------
       , a      , a      , a      , a      , a      , a      , a      }
     2}   {1, 4}   {0, 3}   {1, 5}   {1, 6}   {0, 4}   {1, 7}   {0, 5}

o8 : List
i9 : family_(0,0)

      2                                                         2
o9 = x  - x x  + a       + x a       + x a       + x a       + x a       +
      1    0 2    {0, 0}    0 {0, 1}    1 {0, 2}    2 {0, 3}    0 {0, 4}  
     ------------------------------------------------------------------------
     x x a
      0 1 {0, 5}

       ZZ
o9 : -----[x ..x , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      ]
     10007  0   2   {1, 0}   {0, 0}   {1, 1}   {1, 2}   {1, 3}   {0, 1}   {0, 2}   {1, 4}   {0, 3}   {1, 5}   {1, 6}   {0, 4}   {1, 7}   {0, 5}
i10 : gens ring family

o10 = {x , x , x , a      , a      , a      , a      , a      , a      , a   
        0   1   2   {1, 0}   {0, 0}   {1, 1}   {1, 2}   {1, 3}   {0, 1}   {0,
      -----------------------------------------------------------------------
        , a      , a      , a      , a      , a      , a      , a      }
      2}   {1, 4}   {0, 3}   {1, 5}   {1, 6}   {0, 4}   {1, 7}   {0, 5}

o10 : List
i11 : support family

o11 = {x , x , x , a      , a      , a      , a      , a      , a      , a   
        0   1   2   {1, 0}   {0, 0}   {1, 1}   {1, 2}   {1, 3}   {0, 1}   {0,
      -----------------------------------------------------------------------
        , a      , a      , a      , a      , a      , a      , a      }
      2}   {1, 4}   {0, 3}   {1, 5}   {1, 6}   {0, 4}   {1, 7}   {0, 5}

o11 : List
i12 : support family /degree

o12 = {{4}, {5}, {6}, {12}, {10}, {8}, {7}, {6}, {6}, {5}, {4}, {4}, {3},
      -----------------------------------------------------------------------
      {2}, {2}, {1}, {1}}

o12 : List

In the second version we restrict to a subset of the variables

i13 : b=5

o13 = 5
i14 : initialList=prepareInitialPositionList(L,b)

o14 = {0, 1, 6, 7, 8, 9}

o14 : List
i15 : as = apply(numgens I,i-> drop(support unfolding_{i},#L))

o15 = {{a      , a      , a      , a      , a      , a      }, {a      , a   
         {0, 0}   {0, 1}   {0, 2}   {0, 3}   {0, 4}   {0, 5}     {1, 0}   {1,
      -----------------------------------------------------------------------
        , a      , a      , a      , a      , a      , a      }}
      1}   {1, 2}   {1, 3}   {1, 4}   {1, 5}   {1, 6}   {1, 7}

o15 : List
i16 : as1=apply(flatten as,m->sub(m,A))

o16 = {a      , a      , a      , a      , a      , a      , a      , a   
        {0, 0}   {0, 1}   {0, 2}   {0, 3}   {0, 4}   {0, 5}   {1, 0}   {1,
      -----------------------------------------------------------------------
        , a      , a      , a      , a      , a      , a      }
      1}   {1, 2}   {1, 3}   {1, 4}   {1, 5}   {1, 6}   {1, 7}

o16 : List
i17 : restrictionList=as1_initialList

o17 = {a      , a      , a      , a      , a      , a      }
        {0, 0}   {0, 1}   {1, 0}   {1, 1}   {1, 2}   {1, 3}

o17 : List
i18 : (J1,family1)=getFlatFamily(I,A,unfolding,restrictionList)

o18 = (ideal (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), |
      -----------------------------------------------------------------------
      x_1^2-x_0x_2+a_{0, 0}+x_0a_{0, 1} x_0^3-x_2^2+a_{1, 0}+x_0a_{1,
      -----------------------------------------------------------------------
      1}+x_1a_{1, 2}+x_2a_{1, 3} |)

o18 : Sequence
i19 : (J2,family2)=pruneFamily(I,J1,family1)

o19 = (ideal (), | x_1^2-x_0x_2+a_{0, 0}+x_0a_{0, 1} x_0^3-x_2^2+a_{1,
      -----------------------------------------------------------------------
      0}+x_0a_{1, 1}+x_1a_{1, 2}+x_2a_{1, 3} |)

o19 : Sequence

See also

Ways to use getFlatFamily:

  • getFlatFamily(Ideal,Ring,Matrix)
  • getFlatFamily(Ideal,Ring,Matrix,List)

For the programmer

The object getFlatFamily is a method function with options.


The source of this document is in WeierstrassSemigroups.m2:1656:0.