The LazardSetSolvingPackage package constructor solves polynomial systems by means of Lazard triangular sets. However one condition is relaxed: Regular triangular sets whose saturated ideals have positive dimension are not necessarily normalized.
The decompositions are computed in two steps. First the algorithm of Moreno Maza (implemented in the RegularTriangularSet domain constructor) is called. Then the resulting decompositions are converted into lists of square-free regular triangular sets and the redundant components are removed. Moreover, zero-dimensional regular triangular sets are normalized.
Note that the way of understanding triangular decompositions is detailed in the example of the RegularTriangularSet constructor.
The LazardSetSolvingPackage constructor takes six arguments. The first one, R, is the coefficient ring of the polynomials; it must belong to the category GcdDomain. The second one, E, is the exponent monoid of the polynomials; it must belong to the category OrderedAbelianMonoidSup. the third one, V, is the ordered set of variables; it must belong to the category OrderedSet. The fourth one is the polynomial ring; it must belong to the category RecursivePolynomialCategory(R,E,V). The fifth one is a domain of the category RegularTriangularSetCategory(R,E,V,P) and the last one is a domain of the category SquareFreeRegularTriangularSetCategory(R,E,V,P). The abbreviation for LazardSetSolvingPackage is LAZM3PK.
For the purpose of solving zero-dimensional algebraic systems, see also LexTriangularPackage and ZeroDimensionalSolvePackage. These packages are easier to call than LAZM3PK. Moreover, the ZeroDimensionalSolvePackage package provides operations to compute either the complex roots or the real roots.
We illustrate now the use of the LazardSetSolvingPackage package constructor with two examples (Butcher and Vermeer).
Define the coefficient ring.
R := Integer
Integer
Define the list of variables,
ls : List Symbol := [b1,x,y,z,t,v,u,w]
[b1,x,y,z,t,v,u,w]
and make it an ordered set:
V := OVAR(ls)
OrderedVariableList [b1,x,y,z,t,v,u,w]
then define the exponent monoid.
E := IndexedExponents V
Define the polynomial ring.
P := NSMP(R, V)
Let the variables be polynomial.
b1: P := 'b1
x: P := 'x
y: P := 'y
z: P := 'z
t: P := 't
u: P := 'u
v: P := 'v
w: P := 'w
Now call the RegularTriangularSet domain constructor.
T := REGSET(R,E,V,P)
Define a polynomial system (the Butcher example).
p0 := b1 + y + z - t - w
p1 := 2*z*u + 2*y*v + 2*t*w - 2*w**2 - w - 1
p2 := 3*z*u**2 + 3*y*v**2 - 3*t*w**2 + 3*w**3 + 3*w**2 - t + 4*w
p3 := 6*x*z*v - 6*t*w**2 + 6*w**3 - 3*t*w + 6*w**2 - t + 4*w
p4 := 4*z*u**3+ 4*y*v**3+ 4*t*w**3- 4*w**4 - 6*w**3+ 4*t*w- 10*w**2- w- 1
p5 := 8*x*z*u*v +8*t*w**3 -8*w**4 +4*t*w**2 -12*w**3 +4*t*w -14*w**2 -3*w -1
p6 := 12*x*z*v**2+12*t*w**3 -12*w**4 +12*t*w**2 -18*w**3 +8*t*w -14*w**2 -w -1
p7 := -24*t*w**3 + 24*w**4 - 24*t*w**2 + 36*w**3 - 8*t*w + 26*w**2 + 7*w + 1
lp := [p0, p1, p2, p3, p4, p5, p6, p7]
[b1 + y + z - t - w, 2v y + 2u z + 2w t - 2w - w - 1,
2 2 2 3 2
3v y + 3u z + (- 3w - 1)t + 3w + 3w + 4w,
2 3 2
6v z x + (- 6w - 3w - 1)t + 6w + 6w + 4w,
3 3 3 4 3 2
4v y + 4u z + (4w + 4w)t - 4w - 6w - 10w - w - 1,
3 2 4 3 2
8u v z x + (8w + 4w + 4w)t - 8w - 12w - 14w - 3w - 1,
2 3 2 4 3 2
12v z x + (12w + 12w + 8w)t - 12w - 18w - 14w - w - 1,
3 2 4 3 2
(- 24w - 24w - 8w)t + 24w + 36w + 26w + 7w + 1]
First of all, let us solve this system in the sense of Lazard by means of the REGSET constructor:
lts := zeroSetSplit(lp,false)$T
[{w + 1,u,v,t + 1,b1 + y + z + 2}, {w + 1,v,t + 1,z,b1 + y + 2},
{w + 1,t + 1,z,y,b1 + 2}, {w + 1,v - u,t + 1,y + z,x,b1 + 2},
{w + 1,u,t + 1,y,x,b1 + z + 2},
5 4 3 2
{144w + 216w + 96w + 6w - 11w - 1,
2 5 4 3 2
(12w + 9w + 1)u - 72w - 108w - 42w - 9w - 3w,
2 4 3 2
(12w + 9w + 1)v + 36w + 54w + 18w ,
3 2 4 3 2
(24w + 24w + 8w)t - 24w - 36w - 26w - 7w - 1,
2 2 4 3 2
(12u v - 12u )z + (12w v + 12w + 4)t + (3w - 5)v + 36w + 42w + 6w
+
- 16w
,
2
2v y + 2u z + 2w t - 2w - w - 1,
2 3 2
6v z x + (- 6w - 3w - 1)t + 6w + 6w + 4w, b1 + y + z - t - w}
]
We can get the dimensions of each component of a decomposition as follows.
[coHeight(ts) for ts in lts]
[3,3,3,2,2,0]
The first five sets have a simple shape. However, the last one, which has dimension zero, can be simplified by using Lazard triangular sets.
Thus we call the SquareFreeRegularTriangularSet domain constructor,
ST := SREGSET(R,E,V,P)
and set the LAZM3PK package constructor to our situation.
pack := LAZM3PK(R,E,V,P,T,ST)
We are ready to solve the system by means of Lazard triangular sets:
zeroSetSplit(lp,false)$pack
[{w + 1,t + 1,z,y,b1 + 2}, {w + 1,v,t + 1,z,b1 + y + 2},
{w + 1,u,v,t + 1,b1 + y + z + 2}, {w + 1,v - u,t + 1,y + z,x,b1 + 2},
{w + 1,u,t + 1,y,x,b1 + z + 2},
5 4 3 2 4 3 2
{144w + 216w + 96w + 6w - 11w - 1, u - 24w - 36w - 14w + w + 1,
4 3 2 4 3 2
3v - 48w - 60w - 10w + 8w + 2, t - 24w - 36w - 14w - w + 1,
4 3 2
486z - 2772w - 4662w - 2055w + 30w + 127,
4 3 2
2916y - 22752w - 30312w - 8220w + 2064w + 1561,
4 3 2
356x - 3696w - 4536w - 968w + 822w + 371,
4 3 2
2916b1 - 30600w - 46692w - 20274w - 8076w + 593}
]
We see the sixth triangular set is nicer now: each one of its polynomials has a constant initial.
We follow with the Vermeer example. The ordering is the usual one for this system.
Define the polynomial system.
f0 := (w - v) ** 2 + (u - t) ** 2 - 1
2 2 2 2
t - 2u t + v - 2w v + u + w - 1
f1 := t ** 2 - v ** 3
2 3
t - v
f2 := 2 * t * (w - v) + 3 * v ** 2 * (u - t)
2 2
(- 3v - 2v + 2w)t + 3u v
f3 := (3 * z * v ** 2 - 1) * (2 * z * t - 1)
2 2 2
6v t z + (- 2t - 3v )z + 1
lf := [f0, f1, f2, f3]
2 2 2 2 2 3 2 2
[t - 2u t + v - 2w v + u + w - 1, t - v , (- 3v - 2v + 2w)t + 3u v ,
2 2 2
6v t z + (- 2t - 3v )z + 1]
First of all, let us solve this system in the sense of Kalkbrener by means of the REGSET constructor:
zeroSetSplit(lf,true)$T
[
{
6 3 2 4
729u + (- 1458w + 729w - 4158w - 1685)u
+
6 5 4 3 2 2 8
(729w - 1458w - 2619w - 4892w - 297w + 5814w + 427)u + 729w
+
7 6 5 4 3 2
216w - 2900w - 2376w + 3870w + 4072w - 1188w - 1656w + 529
,
4 3 2 2 6 5
2187u + (- 4374w - 972w - 12474w - 2868)u + 2187w - 1944w
+
4 3 2
- 10125w - 4800w + 2501w + 4968w - 1587
*
v
+
3 2 2 6 5 4 3 2
(1944w - 108w )u + 972w + 3024w - 1080w + 496w + 1116w
,
2 2 2 2 2
(3v + 2v - 2w)t - 3u v , ((4v - 4w)t - 6u v )z + (2t + 3v )z - 1}
]
We have obtained one regular chain (i.e. regular triangular set) with dimension 1. This set is in fact a characterist set of the (radical of) of the ideal generated by the input system lf. Thus we have only the generic points of the variety associated with lf (for the elimination ordering given by ls).
So let us get now a full description of this variety.
Hence, we solve this system in the sense of Lazard by means of the REGSET constructor:
zeroSetSplit(lf,false)$T
[
{
6 3 2 4
729u + (- 1458w + 729w - 4158w - 1685)u
+
6 5 4 3 2 2 8
(729w - 1458w - 2619w - 4892w - 297w + 5814w + 427)u + 729w
+
7 6 5 4 3 2
216w - 2900w - 2376w + 3870w + 4072w - 1188w - 1656w + 529
,
4 3 2 2 6 5
2187u + (- 4374w - 972w - 12474w - 2868)u + 2187w - 1944w
+
4 3 2
- 10125w - 4800w + 2501w + 4968w - 1587
*
v
+
3 2 2 6 5 4 3 2
(1944w - 108w )u + 972w + 3024w - 1080w + 496w + 1116w
,
2 2 2 2 2
(3v + 2v - 2w)t - 3u v , ((4v - 4w)t - 6u v )z + (2t + 3v )z - 1}
,
4 3 2 2
{27w + 4w - 54w - 36w + 23, u, (12w + 2)v - 9w - 2w + 9,
2 2
6t - 2v - 3w + 2w + 3, 2t z - 1}
,
6 5 4 3 2
{59049w + 91854w - 45198w + 145152w + 63549w + 60922w + 21420,
5 4 3
31484448266904w - 18316865522574w + 23676995746098w
+
2
6657857188965w + 8904703998546w + 3890631403260
*
2
u
+
5 4 3
94262810316408w - 82887296576616w + 89801831438784w
+
2
28141734167208w + 38070359425432w + 16003865949120
,
2 2 2 3 2 3 2
(243w + 36w + 85)v + (- 81u - 162w + 36w + 154w + 72)v - 72w + 4w ,
2 2 2 2 2
(3v + 2v - 2w)t - 3u v , ((4v - 4w)t - 6u v )z + (2t + 3v )z - 1}
,
4 3 2 2
{27w + 4w - 54w - 36w + 23, u, (12w + 2)v - 9w - 2w + 9,
2 2 2
6t - 2v - 3w + 2w + 3, 3v z - 1}
]
We retrieve our regular chain of dimension 1 and we get three regular chains of dimension 0 corresponding to the degenerated cases. We want now to simplify these zero-dimensional regular chains by using Lazard triangular sets. Moreover, this will allow us to prove that the above decomposition has no redundant component.
Generally, decompositions computed by the REGSET constructor do not have redundant components. However, to be sure that no redundant component occurs one needs to use the SREGSET or LAZM3PK constructors.
So let us solve the input system in the sense of Lazard by means of the LAZM3PK constructor:
zeroSetSplit(lf,false)$pack
[
{
6 3 2 4
729u + (- 1458w + 729w - 4158w - 1685)u
+
6 5 4 3 2 2 8
(729w - 1458w - 2619w - 4892w - 297w + 5814w + 427)u + 729w
+
7 6 5 4 3 2
216w - 2900w - 2376w + 3870w + 4072w - 1188w - 1656w + 529
,
4 3 2 2 6 5
2187u + (- 4374w - 972w - 12474w - 2868)u + 2187w - 1944w
+
4 3 2
- 10125w - 4800w + 2501w + 4968w - 1587
*
v
+
3 2 2 6 5 4 3 2
(1944w - 108w )u + 972w + 3024w - 1080w + 496w + 1116w
,
2 2 2 2 2
(3v + 2v - 2w)t - 3u v , ((4v - 4w)t - 6u v )z + (2t + 3v )z - 1}
,
2 2 2
{81w + 18w + 28, 729u - 1890w - 533, 81v + (- 162w + 27)v - 72w - 112,
11881t + (972w + 2997)u v + (- 11448w - 11536)u,
2
641237934604288z
+
(78614584763904w + 26785578742272)u + 236143618655616w
+
70221988585728
*
v
+
(358520253138432w + 101922133759488)u + 142598803536000w
+
54166419595008
*
z
+
(32655103844499w - 44224572465882)u v
+
(43213900115457w - 32432039102070)u
}
,
4 3 2 3 2
{27w + 4w - 54w - 36w + 23, u, 218v - 162w + 3w + 160w + 153,
2 3 2 3 2
109t - 27w - 54w + 63w + 80, 1744z + (- 1458w + 27w + 1440w + 505)t}
,
4 3 2 3 2
{27w + 4w - 54w - 36w + 23, u, 218v - 162w + 3w + 160w + 153,
2 3 2 3 2
109t - 27w - 54w + 63w + 80, 1308z + 162w - 3w - 814w - 153}
,
4 3 2 2 2
{729w + 972w - 1026w + 1684w + 765, 81u + 72w + 16w - 72,
3 2
702v - 162w - 225w + 40w - 99,
3 2
11336t + (324w - 603w - 1718w - 1557)u,
2
595003968z
+
3 2
(- 963325386w - 898607682w + 1516286466w - 3239166186)u
+
3 2
- 1579048992w - 1796454288w + 2428328160w - 4368495024
*
z
+
3 2
(9713133306w + 9678670317w - 16726834476w + 28144233593)u
}
]
Due to square-free factorization, we obtained now four zero-dimensional regular chains. Moreover, each of them is normalized (the initials are constant). Note that these zero-dimensional components may be investigated further with the ZeroDimensionalSolvePackage package constructor.
See also: