reduces the statement expr by solving equations or inequalities for vars and eliminating quantifiers.


does the reduction over the domain dom. Common choices of dom are Reals, Integers, and Complexes.

Details and Options

  • The statement expr can be any logical combination of:
  • lhs==rhsequations
    lhs>rhs or lhs>=rhs inequalities
    exprdomdomain specifications
    {x,y,}regregion specification
    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[,xreg,Reals] constrains x to be in the region reg. The different coordinates for x can be referred to using Indexed[x,i].
  • Reduce[expr,{x1,x2,},] effectively writes expr as a combination of conditions on x1, x2, where each condition involves only the earlier .
  • Algebraic variables in expr free of the and of each other are treated as independent parameters.
  • Applying LogicalExpand to the results of Reduce[expr,] yields an expression of the form , where each of the can be thought of as representing a separate component in the set defined by expr.
  • The may not be disjoint and may have different dimensions. After LogicalExpand, each of the has the form .
  • Without LogicalExpand, Reduce by default returns a nested collection of conditions on the , 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 .
  • 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 are backsubstituted so that the conditions for a particular have only minimal dependence on earlier . »


open all close all

Basic Examples  (4)

Reduce equations and inequalities:

Click for copyable input
Click for copyable input

Use specific domains:

Click for copyable input
Click for copyable input

Reduce a quantified expression:

Click for copyable input

Reduce with geometric region constraints:

Click for copyable input
Click for copyable input

Scope  (74)

Options  (6)

Applications  (9)

Properties & Relations  (11)

Possible Issues  (2)

Neat Examples  (1)

Introduced in 1988
Updated in 2014