Scroll to navigation

MSOLVE(1) User Commands MSOLVE(1)

NAME

msolve - computer algebra algorithms for solving polynomial systems

DESCRIPTION

msolve library for polynomial system solving, version 0.11.0 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 File name (mandatory).

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

1
- one thread (default).
THR > 1 - THR threads.

-v, --verbose VERB Level of verbosity, 0 - 2

0 - no output (default).
1 - global information at the start and
2 - detailed output for each step of the
algorithm, e.g. matrix sizes, #pairs, ...

Input file format:

(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, --groebner-basis GB Prints reduced Groebner bases of input system for

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

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

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:

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

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

lexicographical monomial order. ELIM has to be a number between 1 and #variables-1, and gives the number of eliminated variables. The basis with the first block of ELIM variables eliminated is then computed.

-I, --isolate ISOL Isolates the real roots (provided some univariate data)

0 - no (default). 1 - yes.

-l, --linear-algebra 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.

0 - unlimited (default).

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

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, --precision PRE Precision (in bits) on the output of real root isolation.

128 (default).

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

0 (default). For a detailed description of the output
format please see the general output data format section above.

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

0 - no lifting (default).
1 - matrices are lifted. Warning: when activated, this option may cause higher memory consumption.

-q Q Uses signature-based algorithms.

0 - no (default).
1 - yes.
SEED Random seed to initialize the pseudo random generator -1 - time(0) will be used (default) SEED ??? 0 - use at your own risks;
debug purposes only

-r, --reduce-gb RED Reduce Groebner basis.

0 - no.
1 - yes (default).

-s HTS Initial hash table size given

17 (default).

-S Use f4sat saturation algorithm:

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

0 - no update (default).

-V, --version Prints msolve's version

October 2026 msolve 0.11.0