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:
The result of Reduce[expr, vars] always describes exactly the same mathematical set as expr.
Reduce[, , ... , vars] is equivalent to Reduce[ && && ... , 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 && vars Reals, 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, , , ... , ... ] effectively writes expr as a combination of conditions on , , ... , where each condition involves only the earlier .
Algebraic variables in expr free of the 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 have the form e && e && ... .
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:
Reduce[expr, , , ... , 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 .
See Section 1.5.7, Section 1.5.8, Section 3.4.5 and Section 3.4.9.
Implementation Notes: see Section A.9.5.
See also: Solve, FindInstance, Roots, Eliminate, Resolve, LogicalExpand, ToRules, GroebnerBasis, Simplify.
New in Version 1; modified in 5.0.