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

pruneFamily -- Present the family with fewest number of variables

Description

If a generator of J has a variable as lead term then this variable can be removed from the presentation of (ring J/J). At the same time we remove this variable from the equations of the family.

i1 : L={5,6,8,9}

o1 = {5, 6, 8, 9}

o1 : List
i2 : genus L

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

                ZZ
o3 : Ideal of -----[x ..x , x ..x ]
              10007  0   1   3   4
i4 : (A,unfolding)=makeUnfolding I;
i5 : b = genus L-1;
i6 : as=apply(numgens I,i->a=drop(support unfolding_{i},#L));
i7 : rL=apply(#as,i->select(as_i,m->(degree m)_0> b));
i8 : restrictionList=apply(flatten rL,m->sub(m,A));
i9 : elapsedTime (J,family)=getFlatFamily(I,A,unfolding,restrictionList);
 -- .18856s elapsed
i10 : leadTerm J

o10 = ideal (a      a      , a      a      , a      a      , a      a      ,
              {1, 4} {2, 6}   {2, 4} {1, 4}   {2, 3} {1, 4}   {2, 4} {1, 3} 
      -----------------------------------------------------------------------
      a      a      , a      a      )
       {2, 3} {1, 3}   {1, 2} {2, 3}

o10 : Ideal of A
i11 : (J1,family1)=pruneFamily(I,J,family);
i12 : leadTerm J1

o12 = ideal (a      a      , a      a      , a      a      , a      a      ,
              {1, 4} {2, 6}   {2, 4} {1, 4}   {2, 3} {1, 4}   {2, 4} {1, 3} 
      -----------------------------------------------------------------------
      a      a      , a      a      )
       {2, 3} {1, 3}   {1, 2} {2, 3}

                 ZZ
o12 : Ideal of -----[a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      , a      ]
               10007  {1, 1}   {1, 2}   {0, 1}   {2, 3}   {0, 2}   {2, 4}   {1, 3}   {2, 5}   {1, 4}   {0, 3}   {2, 6}   {1, 5}   {0, 4}

See also

Ways to use pruneFamily:

  • pruneFamily(Ideal,Ideal,Matrix)

For the programmer

The object pruneFamily is a method function with options.


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