solve equations in Z mod m
msolve(eqns, vars, m)
set of equations or a single equation
(optional) set of names or a name which must not appear among the indeterminates in eqns
The procedure msolve solves the equations in eqns over the integers mod⁢m. It solves for all of the indeterminates occurring in the equations.
If the solution is indeterminate, and if it is possible, a family of solutions is expressed in terms of the names given in vars (or the global names _Z1, _Z2, _Z3 if vars is omitted). These names (which must not coincide with any indeterminates) are then allowed to take any integer values.
Unlike solve, but like isolve, the second, optional argument does not specify variables to solve for, but instead may be used to specify names for parameters of indeterminate solutions. The msolve command always solves for all the indeterminates in eqns.
The msolve command returns NULL if there are no solutions over the integers mod⁢m.
In some cases, a partial solution may be returned. If msolve is able to detect that a partial solution may be incomplete, then it sets the global variable _SolutionsMayBeLost to true.
If msolve is unable to solve eqns, but is not able to prove there are no solutions, then FAIL is returned.
The procedure msolve has special code for efficiently handling large systems of equations mod 2.
If you want to solve a single univariate polynomial mod⁢m where m is not necessarily prime, see the Roots function.
For solving linear systems of equations mod⁢m, use Linsolve, which is known to mod.
In the next example, a family of solutions is found.
In this example, the option vars is used to specify that n should be used in the specification of the family of solutions.
Download Help Document