# CASA Function: msolveSP

Compute a basis for the module of syzygies.

### Calling Sequence:

- S := msolveSP(F, b, X)
- S := msolveSP(F, b, X, torder1)
- S := msolveSP(F, b, X, torder1, torder2)

### Parameters:

- F : list(list(polynom(rational)))
- A list of polynomial tuples.

- b : list(polynom(rational))
- A polynomial tuple. (The right-hand-side of the linear system.)

- X : list(name)
- A list of indeterminates.

- torder1 : name
- A power-product-tuple ordering. Either term (for term first) or index (for index first - default).

- torder2 : name
- A power-product ordering. Either plex (for pure lexicographic) or tdeg (for total degree - default).

### Result:

- S : [list(polynom(rational)), list(list(polynom(rational)))]
- A particular solution and a basis for the module of syzygies of the linear system F * x = b.

### Description:

- The command msolveSP(F, b, X, torder1, torder2) computes a basis for the module of syzygies. This procedure is based on Thm.16 and Thm.11 in [2]. The procedure returns a list with two elements: the first element is a particular solution, the second one is a basis for the module of syzygies (represented as a list).
- The polynomial tuples in F are represented as lists of polynomials.
- The variable F is interpreted as a matrix, e.g. F := [[f11,f21],[f12,f22],[f13,f23]] is a matrix with two rows and three columns.
- If X has the form [x1, x2, ..., xn], then using the pure lexicographic ordering this is interpreted as x1 > x2 > ... > xn. Within the total degree ordering, ties are broken by inverse lexicographic order.

### Examples:

`> ` **F := [[x^3-y,-x+y],[x*y-1,x^3-1],[-x+y^2,y-1]]:**

`> ` **S:=msolveGB(F,[0,0],[x,y]):**

`> ` **nops(S[2]);**

`> ` **mgbasis(S[2],[x,y]);**

`> ` **msolveGB(F,[x*y^2-y^2,-x^5+x^2-x+y^2],[x,y],term,tdeg);**

### See Also:

[CASA]
[mgbasis]
[mgbasisx]
[mnormalf]
[msolveGB]
[msolveSP]