---
name: "msolve"
section: "1"
platform: "linux"
package: "msolve"
version: "0.7.5-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/msolve"
---

# msolve(1)

computer algebra algorithms for solving polynomial systems

## NAME

msolve - computer algebra algorithms for solving polynomial systems

## DESCRIPTION

msolve library for polynomial system solving, version 0.7.5 implemented by J. Berthomieu, C. Eder, M. Safey El Din

### Basic call:

-

  ./msolve **-f** \[FILE1\] **-o** \[FILE2\]

FILE1 and FILE2 are respectively the input and output files

Standard options

**-f** FILE  File name (mandatory).

**-h**       Prints this help. **-o** FILE  Name of output file. **-t** THR   Number of threads to be used.

-

  Default: 1.

**-v** n     Level of verbosity, 0 - 2

-

  0 - no output (default). 1 - global information at the start and

-

  end of the computation.

-

  2 - detailed output for each step of the

-

  algorithm, e.g. matrix sizes, #pairs, ...

### Input file format:

- \- first line: variables separated by a comma

  (no comma at end of line)

-

  \- second line: characteristic of the field - next lines provide the polynomials (one per line),

-

  separated by a comma (no comma after the last polynomial)

Output file format: When there is no solution in an algebraic closure of the base field \[-1\]: Where there are infinitely many solutions in an algebraic closure of the base field: \[1, nvars, **-1**,\[\]\]: Else: Over prime fields: a rational parametrization of the solutions When input coefficients are rational numbers: real solutions to the input system (see the **-P** flag to recover a parametrization of the solutions) See the msolve tutorial for more details (https://msolve.lip6.fr)

Advanced options:

**-F** FILE  File name encoding parametrizations in binary format.

**-g** GB    Prints reduced Groebner bases of input system for

-

  first prime characteristic w.r.t. grevlex ordering. One element per line is printed, commata separated. 0 - Nothing is printed. (default) 1 - Leading ideal is printed. 2 - Full reduced Groebner basis is printed.

**-c** GEN   Handling genericity: If the staircase is not generic

-

  enough, msolve can automatically try to fix this situation via first trying a change of the order of variables and finally adding a random linear form with a new variable (smallest w.r.t. DRL) 0 - Nothing is done, msolve quits. 1 - Change order of variables. 2 - Change order of variables, then try adding a

-

  random linear form. (default)

**-d** GEN   Handling genericity further: If the staircase is not generic

-

  enough, msolve can still try to perform the full computation by computing some normal forms and build the multiplication matrix, before fixing the situation via option **-c** 0 - No normal forms are computed. 1 - Few normal forms are computed. 2 - Some normal forms are computed. (default) 3 - Lots of normal forms are computed. 4 - All the normal forms are computed.

### -C Use sparse-FGLM-col algorithm:

-

  Given an input file with k polynomials compute the quotient of the ideal generated by the first k-1 polynomials with respect to the kth polynomial.

**-e** ELIM  Define an elimination order: msolve supports two

-

  blocks, each block using degree reverse lexicographical monomial order. ELIM has to be a number between 1 and #variables-1. The basis the first block eliminated is then computed.

**-I**       Isolates the real roots (provided some univariate data)

-

  without re-computing a Gr??bner basis Default: 0 (no).

### -l LIN Linear algebra variant to be applied:

-

  1 - exact sparse / dense 2 - exact sparse (default)

-

  42 - sparse / dense linearization (probabilistic) 44 - sparse linearization (probabilistic)

**-m** MPR   Maximal number of pairs used per matrix.

-

  Default: 0 (unlimited).

**-n** NF    Given n input generators compute normal form of the last NF

-

  elements of the input w.r.t. a degree reverse lexicographical Gr??bner basis of the first (n - NF) input elements. At the moment this only works for prime field computations. Combining this option with the "-i" option assumes that the first (n - NF) elements generate already a degree reverse lexicographical Gr??bner basis.

**-p** PRE   Precision of the real root isolation.

-

  Default is 32.

**-P** PAR   Get also rational parametrization of solution set.

-

  Default is 0. For a detailed description of the output format please see the general output data format section above.

**-L** LIF   Controls lifting of multplication matrices over the rationals.

-

  Default is 0 (no lifting). Matrices are lifted when LIF is 1. Warning: when activated, this option may cause higher memory consumption.

**-q** Q     Uses signature-based algorithms.

-

  Default: 0 (no).

**-r** RED   Reduce Groebner basis.

-

  Default: 1 (yes).

**-s** HTS   Initial hash table size given

-

  as power of two. Default: 17.

### -S Use f4sat saturation algorithm:

-

  Given an input file with k polynomials compute the saturation of the ideal generated by the first k-1 polynomials with respect to the kth polynomial. Note: At the moment restricted to 32 bit prime fields.

**-u** UHT   Number of steps after which the

-

  hash table is newly generated. Default: 0, i.e. no update.

**-V**       Prints msolve's version

msolve library for polynomial system solving, version 0.7.5 implemented by J. Berthomieu, C. Eder, M. Safey El Din

### Basic call:

-

  ./msolve **-f** \[FILE1\] **-o** \[FILE2\]

FILE1 and FILE2 are respectively the input and output files

Standard options

**-f** FILE  File name (mandatory).

**-h**       Prints this help. **-o** FILE  Name of output file. **-t** THR   Number of threads to be used.

-

  Default: 1.

**-v** n     Level of verbosity, 0 - 2

-

  0 - no output (default). 1 - global information at the start and

-

  end of the computation.

-

  2 - detailed output for each step of the

-

  algorithm, e.g. matrix sizes, #pairs, ...

### Input file format:

- \- first line: variables separated by a comma

  (no comma at end of line)

-

  \- second line: characteristic of the field - next lines provide the polynomials (one per line),

-

  separated by a comma (no comma after the last polynomial)

Output file format: When there is no solution in an algebraic closure of the base field \[-1\]: Where there are infinitely many solutions in an algebraic closure of the base field: \[1, nvars, **-1**,\[\]\]: Else: Over prime fields: a rational parametrization of the solutions When input coefficients are rational numbers: real solutions to the input system (see the **-P** flag to recover a parametrization of the solutions) See the msolve tutorial for more details (https://msolve.lip6.fr)

Advanced options:

**-F** FILE  File name encoding parametrizations in binary format.

**-g** GB    Prints reduced Groebner bases of input system for

-

  first prime characteristic w.r.t. grevlex ordering. One element per line is printed, commata separated. 0 - Nothing is printed. (default) 1 - Leading ideal is printed. 2 - Full reduced Groebner basis is printed.

**-c** GEN   Handling genericity: If the staircase is not generic

-

  enough, msolve can automatically try to fix this situation via first trying a change of the order of variables and finally adding a random linear form with a new variable (smallest w.r.t. DRL) 0 - Nothing is done, msolve quits. 1 - Change order of variables. 2 - Change order of variables, then try adding a

-

  random linear form. (default)

**-d** GEN   Handling genericity further: If the staircase is not generic

-

  enough, msolve can still try to perform the full computation by computing some normal forms and build the multiplication matrix, before fixing the situation via option **-c** 0 - No normal forms are computed. 1 - Few normal forms are computed. 2 - Some normal forms are computed. (default) 3 - Lots of normal forms are computed. 4 - All the normal forms are computed.

### -C Use sparse-FGLM-col algorithm:

-

  Given an input file with k polynomials compute the quotient of the ideal generated by the first k-1 polynomials with respect to the kth polynomial.

**-e** ELIM  Define an elimination order: msolve supports two

-

  blocks, each block using degree reverse lexicographical monomial order. ELIM has to be a number between 1 and #variables-1. The basis the first block eliminated is then computed.

**-I**       Isolates the real roots (provided some univariate data)

-

  without re-computing a Gr??bner basis Default: 0 (no).

### -l LIN Linear algebra variant to be applied:

-

  1 - exact sparse / dense 2 - exact sparse (default)

-

  42 - sparse / dense linearization (probabilistic) 44 - sparse linearization (probabilistic)

**-m** MPR   Maximal number of pairs used per matrix.

-

  Default: 0 (unlimited).

**-n** NF    Given n input generators compute normal form of the last NF

-

  elements of the input w.r.t. a degree reverse lexicographical Gr??bner basis of the first (n - NF) input elements. At the moment this only works for prime field computations. Combining this option with the "-i" option assumes that the first (n - NF) elements generate already a degree reverse lexicographical Gr??bner basis.

**-p** PRE   Precision of the real root isolation.

-

  Default is 32.

**-P** PAR   Get also rational parametrization of solution set.

-

  Default is 0. For a detailed description of the output format please see the general output data format section above.

**-L** LIF   Controls lifting of multplication matrices over the rationals.

-

  Default is 0 (no lifting). Matrices are lifted when LIF is 1. Warning: when activated, this option may cause higher memory consumption.

**-q** Q     Uses signature-based algorithms.

-

  Default: 0 (no).

**-r** RED   Reduce Groebner basis.

-

  Default: 1 (yes).

**-s** HTS   Initial hash table size given

-

  as power of two. Default: 17.

### -S Use f4sat saturation algorithm:

-

  Given an input file with k polynomials compute the saturation of the ideal generated by the first k-1 polynomials with respect to the kth polynomial. Note: At the moment restricted to 32 bit prime fields.

**-u** UHT   Number of steps after which the

-

  hash table is newly generated. Default: 0, i.e. no update.

**-V**       Prints msolve's version
