This is a simplified interface to the stronglyStableIdeals function.
For example, the following are all of the strongly stable ideals with degree 7, and their Betti tables.
i1 : S = ZZ/101[a..d]; |
i2 : Bs = nondegenerateBorels(7, S); |
i3 : netList Bs +---------------------------------------+ | 2 2 5 | o3 = |ideal (b*c, a*c, b , a*b, a , c ) | +---------------------------------------+ | 2 2 2 4 | |ideal (a*c, b , a*b, a , b*c , c ) | +---------------------------------------+ | 2 3 2 2 3 | |ideal (a*c, a*b, a , c , b*c , b c, b )| +---------------------------------------+ | 2 2 3 2 2 | |ideal (b , a*b, a , c , b*c , a*c ) | +---------------------------------------+ |
i4 : netList pack(4, Bs/minimalBetti) +--------------+--------------+---------------+--------------+ | 0 1 2 3| 0 1 2 3| 0 1 2 3| 0 1 2 3| o4 = |total: 1 6 8 3|total: 1 6 8 3|total: 1 7 10 4|total: 1 6 8 3| | 0: 1 . . .| 0: 1 . . .| 0: 1 . . .| 0: 1 . . .| | 1: . 5 6 2| 1: . 4 4 1| 1: . 3 3 1| 1: . 3 2 .| | 2: . . . .| 2: . 1 2 1| 2: . 4 7 3| 2: . 3 6 3| | 3: . . . .| 3: . 1 2 1| | | | 4: . 1 2 1| | | | +--------------+--------------+---------------+--------------+ |
Using the Sort option as follows gives a somewhat more natural ordering. Sometimes computations involving the groebnerSratum ideal will be either much faster or slower with this option. But it is often worth trying it both ways, if your computations are slow.
i5 : Bs2 = nondegenerateBorels(7, S, Sort => true); |
i6 : netList Bs2 +---------------------------------------+ | 2 2 5 | o6 = |ideal (a , a*b, b , a*c, b*c, c ) | +---------------------------------------+ | 2 2 2 4 | |ideal (a , a*b, b , a*c, b*c , c ) | +---------------------------------------+ | 2 3 2 2 3 | |ideal (a , a*b, a*c, b , b c, b*c , c )| +---------------------------------------+ | 2 2 2 2 3 | |ideal (a , a*b, b , a*c , b*c , c ) | +---------------------------------------+ |
This is a convenience function. Here is the simple code:
i7 : code methods nondegenerateBorels o7 = -- code for method: nondegenerateBorels(ZZ,Ring) /usr/share/Macaulay2/QuaternaryQuartics.m2:116:47-122:5: --source code: nondegenerateBorels(ZZ, Ring) := List => opts -> (d, S) -> ( Bs := stronglyStableIdeals(d, S); Bs = select(Bs, i -> all(i_*, f -> degree f =!= {1})); if opts.Sort then Bs = Bs/(i -> ideal sort(gens i, MonomialOrder => Descending, DegreeOrder => Ascending)); Bs ) |
The object nondegenerateBorels is a method function with options.