Reduce¶
Simplifies a logical condition, e.g. a polynomial equation, to an equivalent form describing all solutions.
Woxi keeps specialized built-in paths for polynomial equations, integer intervals, complex algebra, and common transcendental forms. Exact linear formulas over the reals and rationals use Woxi's self-contained exact Fourier-Motzkin engine, including nested quantifiers:
Exact linear integer formulas use Woxi's self-contained Presburger engine. Unbounded solution sets are represented symbolically rather than searched up to an arbitrary cap, and a residue class is reported as a parametrization:
A bound on the variable becomes a bound on the parameter:
$ wo 'Reduce[Mod[x, 6] == 4 && x > 10, x, Integers]'
Element[C[1], Integers] && C[1] >= 2 && x == 4 + 6*C[1]
Neither engine invokes Wolfram, an SMT solver, or another subprocess. Inputs outside the documented exact-linear fragment continue to use Woxi's specialized internal fallback routes.
The systematic fragment accepts exact rational affine terms (constants,
variables, constant multiples, sums, and differences); ==, !=, <, <=,
>, and >=; arbitrary And, Or, Not, and Xor; and nested Exists and
ForAll. Integer formulas additionally accept Divisible and
Mod[affine, positiveInteger] == residue (or its negation). Target domains are
explicit Reals, Rationals, or Integers. Nonlinear products/powers,
approximate coefficients, mixed integer/real theories, algebraic-number
coefficients, and transcendental atoms are outside this systematic fragment;
some retain separate specialized Woxi behavior.