# Reduce

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.

# Details and Options    • The statement expr can be any logical combination of:
•  lhs==rhs equations lhs!=rhs inequations lhs>rhs or lhs>=rhs inequalities expr∈dom domain specifications {x,y,…}∈reg region 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:
•  Backsubstitution False whether to give results unwound by backsubstitution  » Cubics False whether to use explicit radicals to solve all cubics  » GeneratedParameters C how to name parameters that are generated  » Modulus 0 modulus to assume for integers  » Quartics False whether 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 . »

# Examples

open all close all

## Basic Examples(4)

Reduce equations and inequalities:

 In:= Out= In:= Out= Use specific domains:

 In:= Out= In:= Out= Reduce a quantified expression:

 In:= Out= Reduce with geometric region constraints:

 In:= Out= In:= Out= ## Neat Examples(1)

Introduced in 1988
(1.0)
|
Updated in 2014
(10.0)