This is documentation for Mathematica 6, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.2)


Reduce[expr, vars]
reduces the statement expr by solving equations or inequalities for vars and eliminating quantifiers.
Reduce[expr, vars, dom]
does the reduction over the domain dom. Common choices of dom are Reals, Integers and Complexes.
  • The statement expr can be any logical combination of:
lhs>rhs or lhs>=rhs inequalities
exprdomdomain specifications
ForAll[x,cond,expr]universal quantifiers
Exists[x,cond,expr]existential quantifiers
  • The result of Reduce[expr, vars] always describes exactly the same mathematical set as expr.
  • Reduce[{expr1, expr2, ...}, vars] is equivalent to Reduce[expr1&&expr2&&..., vars].
  • Reduce[expr, vars] assumes by default that quantities appearing algebraically in inequalities are real, while all other quantities are complex.
  • Reduce[expr, vars, dom] restricts all variables and parameters to belong to the domain dom.
  • If dom is Reals, or a subset such as Integers or Rationals, then all constants and function values are also restricted to be real.
  • Reduce[expr&&varsReals, vars, Complexes] performs reductions with variables assumed real, but function values allowed to be complex.
  • Reduce[expr, vars, Integers] reduces Diophantine equations over the integers.
  • Reduce[expr, {x1, x2, ...}, ...] effectively writes expr as a combination of conditions on x_1,x_2,… , where each condition involves only the earlier x_i.
  • Algebraic variables in expr free of the x_i and of each other are treated as independent parameters.
  • Applying LogicalExpand to the results of Reduce[expr, ...] yields an expression of the form e_1||e_2||…, where each of the e_i can be thought of as representing a separate component in the set defined by expr.
  • The e_i may not be disjoint, and may have different dimensions. After LogicalExpand, each of the e_i have the form e&&e&&….
  • Without LogicalExpand, Reduce by default returns a nested collection of conditions on the x_i, combined alternately by Or and And on successive levels.
  • When expr involves only polynomial equations and inequalities over real or complex domains then Reduce can always in principle solve directly for all the x_i.
  • When expr involves transcendental conditions or integer domains Reduce will often introduce additional parameters in its results.
  • When expr involves only polynomial conditions, Reduce[expr, vars, Reals] gives a cylindrical algebraic decomposition of expr.
  • Reduce can give explicit representations for solutions to all linear equations and inequalities over the integers, and can solve a large fraction of Diophantine equations described in the literature.
  • When expr involves only polynomial conditions over real or complex domains, Reduce[expr, vars] will always eliminate quantifiers, so that quantified variables do not appear in the result.
  • The following options can be given:
BacksubstitutionFalsewhether to give results unwound by backsubstitution  »
CubicsFalsewhether to use explicit radicals to solve all cubics  »
GeneratedParametersChow to name parameters that are generated  »
Modulus0modulus to assume for integers  »
QuarticsFalsewhether to use explicit radicals to solve all quartics  »
  • Reduce[expr, {x1, x2, ...}, Backsubstitution->True] yields a form in which values from equations generated for earlier x_i are backsubstituted so that the conditions for a particular x_i have only minimal dependence on earlier x_i.  »
New in 1 | Last modified in 5