---
title: "Reduce"
language: "en"
type: "Symbol"
summary: "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."
keywords: 
- algebraic equations
- algebraic inequalities
- chinese remainder theorem
- complex variables
- cylindrical decomposition
- Diophantine equations
- domains
- equations
- Groebner basis
- Hardy-Muskat-Williams methods
- inequalities
- integer equations
- linear equations
- linear inequalities
- modular equations
- Pell equations
- polynomial equations
- polynomial inequalities
- reducing inequalities
- regions
- semi-algebraic sets
- solutions
- Thue equations
- transcendental equations
- transcendental inequalities
- isolve
canonical_url: "https://reference.wolfram.com/language/ref/Reduce.html"
source: "Wolfram Language Documentation"
related_guides: 
  - 
    title: "Manipulating Equations"
    link: "https://reference.wolfram.com/language/guide/ManipulatingEquations.en.md"
  - 
    title: "Formula Manipulation"
    link: "https://reference.wolfram.com/language/guide/FormulaManipulation.en.md"
  - 
    title: "Number Theory"
    link: "https://reference.wolfram.com/language/guide/NumberTheory.en.md"
  - 
    title: "Computational Geometry"
    link: "https://reference.wolfram.com/language/guide/ComputationalGeometry.en.md"
  - 
    title: "Polynomial Algebra"
    link: "https://reference.wolfram.com/language/guide/PolynomialAlgebra.en.md"
  - 
    title: "Polynomial Equations"
    link: "https://reference.wolfram.com/language/guide/PolynomialEquations.en.md"
  - 
    title: "Diophantine Equations"
    link: "https://reference.wolfram.com/language/guide/DiophantineEquations.en.md"
  - 
    title: "Polynomial Systems"
    link: "https://reference.wolfram.com/language/guide/PolynomialSystems.en.md"
  - 
    title: "Equation Solving"
    link: "https://reference.wolfram.com/language/guide/EquationSolving.en.md"
  - 
    title: "Theorem Proving"
    link: "https://reference.wolfram.com/language/guide/TheoremProving.en.md"
  - 
    title: "Inequalities"
    link: "https://reference.wolfram.com/language/guide/Inequalities.en.md"
  - 
    title: "Solvers over Regions"
    link: "https://reference.wolfram.com/language/guide/GeometricSolvers.en.md"
  - 
    title: "Solid Geometry"
    link: "https://reference.wolfram.com/language/guide/SolidGeometry.en.md"
  - 
    title: "Plane Geometry"
    link: "https://reference.wolfram.com/language/guide/PlaneGeometry.en.md"
  - 
    title: "Finite Fields"
    link: "https://reference.wolfram.com/language/guide/FiniteFields.en.md"
  - 
    title: "Finite Mathematics"
    link: "https://reference.wolfram.com/language/guide/FiniteMathematics.en.md"
  - 
    title: "Polygons"
    link: "https://reference.wolfram.com/language/guide/Polygons.en.md"
  - 
    title: "Polyhedra"
    link: "https://reference.wolfram.com/language/guide/Polyhedra.en.md"
  - 
    title: "Symbolic Vectors, Matrices and Arrays"
    link: "https://reference.wolfram.com/language/guide/SymbolicArrays.en.md"
related_functions: 
  - 
    title: "Solve"
    link: "https://reference.wolfram.com/language/ref/Solve.en.md"
  - 
    title: "FindInstance"
    link: "https://reference.wolfram.com/language/ref/FindInstance.en.md"
  - 
    title: "AsymptoticSolve"
    link: "https://reference.wolfram.com/language/ref/AsymptoticSolve.en.md"
  - 
    title: "SolveValues"
    link: "https://reference.wolfram.com/language/ref/SolveValues.en.md"
  - 
    title: "Eliminate"
    link: "https://reference.wolfram.com/language/ref/Eliminate.en.md"
  - 
    title: "Resolve"
    link: "https://reference.wolfram.com/language/ref/Resolve.en.md"
  - 
    title: "LogicalExpand"
    link: "https://reference.wolfram.com/language/ref/LogicalExpand.en.md"
  - 
    title: "ToRules"
    link: "https://reference.wolfram.com/language/ref/ToRules.en.md"
  - 
    title: "GroebnerBasis"
    link: "https://reference.wolfram.com/language/ref/GroebnerBasis.en.md"
  - 
    title: "CylindricalDecomposition"
    link: "https://reference.wolfram.com/language/ref/CylindricalDecomposition.en.md"
  - 
    title: "SemialgebraicComponentInstances"
    link: "https://reference.wolfram.com/language/ref/SemialgebraicComponentInstances.en.md"
  - 
    title: "RowReduce"
    link: "https://reference.wolfram.com/language/ref/RowReduce.en.md"
  - 
    title: "ChineseRemainder"
    link: "https://reference.wolfram.com/language/ref/ChineseRemainder.en.md"
  - 
    title: "HermiteDecomposition"
    link: "https://reference.wolfram.com/language/ref/HermiteDecomposition.en.md"
  - 
    title: "Simplify"
    link: "https://reference.wolfram.com/language/ref/Simplify.en.md"
  - 
    title: "SolveAlways"
    link: "https://reference.wolfram.com/language/ref/SolveAlways.en.md"
  - 
    title: "RegionPlot"
    link: "https://reference.wolfram.com/language/ref/RegionPlot.en.md"
  - 
    title: "RegionPlot3D"
    link: "https://reference.wolfram.com/language/ref/RegionPlot3D.en.md"
  - 
    title: "GeometricScene"
    link: "https://reference.wolfram.com/language/ref/GeometricScene.en.md"
related_tutorials: 
  - 
    title: "Solving Equations"
    link: "https://reference.wolfram.com/language/tutorial/ManipulatingEquationsAndInequalities.en.md#30806"
  - 
    title: "Inequalities"
    link: "https://reference.wolfram.com/language/tutorial/ManipulatingEquationsAndInequalities.en.md#9389"
  - 
    title: "Generic and Non‐Generic Solutions"
    link: "https://reference.wolfram.com/language/tutorial/ManipulatingEquationsAndInequalities.en.md#1205"
  - 
    title: "Equations and Inequalities over Domains"
    link: "https://reference.wolfram.com/language/tutorial/ManipulatingEquationsAndInequalities.en.md#18990"
  - 
    title: "Solving Logical Combinations of Equations"
    link: "https://reference.wolfram.com/language/tutorial/ManipulatingEquationsAndInequalities.en.md#243533986"
  - 
    title: "The Representation of Solution Sets"
    link: "https://reference.wolfram.com/language/tutorial/ManipulatingEquationsAndInequalities.en.md#25167"
  - 
    title: "Complex Polynomial Systems"
    link: "https://reference.wolfram.com/language/tutorial/ComplexPolynomialSystems.en.md"
  - 
    title: "Real Polynomial Systems"
    link: "https://reference.wolfram.com/language/tutorial/RealPolynomialSystems.en.md"
  - 
    title: "Diophantine Polynomial Systems"
    link: "https://reference.wolfram.com/language/tutorial/DiophantineReduce.en.md"
  - 
    title: "Implementation notes: Algebra and Calculus"
    link: "https://reference.wolfram.com/language/tutorial/SomeNotesOnInternalImplementation.en.md#25734"
---
# 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 && 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[…, x∈reg, 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 $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\left\|e_2\right\|\ldots$, 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$ has the form $e\&\&e\&\&\ldots$.

* 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:

|                      |       |                                                           |
| :------------------- | :---- | :-------------------------------------------------------- |
| 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 $x_i$ are backsubstituted so that the conditions for a particular $x_i$ have only minimal dependence on earlier $x_i$. »

---

## Examples (116)

### Basic Examples (4)

Reduce equations and inequalities:

```wl
In[1]:= Reduce[x ^ 2 - y ^ 3 == 1, {x, y}]

Out[1]= y == (-1 + x^2)^1 / 3 || y == -(-1)^1 / 3 (-1 + x^2)^1 / 3 || y == (-1)^2 / 3 (-1 + x^2)^1 / 3

In[2]:= Reduce[x ^ 2 + y ^ 2 < 1, {x, y}]

Out[2]= -1 < x < 1 && -Sqrt[1 - x^2] < y < Sqrt[1 - x^2]
```

---

Use specific domains:

```wl
In[1]:= Reduce[x ^ 2 - 7y ^ 2 == 1 && x > 0 && y > 0, {x, y}, Integers]

Out[1]= C[1]∈ℤ && C[1] ≥ 1 && x == (1/2) ((8 - 3 Sqrt[7])^C[1] + (8 + 3 Sqrt[7])^C[1]) && y == -((8 - 3 Sqrt[7])^C[1] - (8 + 3 Sqrt[7])^C[1]/2 Sqrt[7])

In[2]:= Reduce[x ^ 2 - 7y ^ 2 == 1 && x > 0 && y > 0, {x, y}, Reals]

Out[2]= x > 1 && y == (Sqrt[-1 + x^2]/Sqrt[7])
```

---

Reduce a quantified expression:

```wl
In[1]:= Reduce[Exists[{x, y}, x ^ 2 + a y ^ 2 ≤ 1  && x - y ≥ 2], a]

Out[1]= a ≤ (1/3)
```

---

Reduce with geometric region constraints:

```wl
In[1]:= Reduce[{x, y}∈InfiniteLine[{{0, 0}, {2, 2}}] && {x, y}∈Circle[], {x, y}]

Out[1]= (x == -(1/Sqrt[2]) || x == (1/Sqrt[2])) && y == x

In[2]:= Graphics[{Blue, Circle[], InfiniteLine[{{0, 0}, {2, 2}}], {Red, Point[{x, y}] //. {ToRules[%]}}}]

Out[2]= [image]
```

### Scope (83)

#### Basic Uses (5)

Find an explicit description of the solution set of a system of equations:

```wl
In[1]:= Reduce[x ^ 2 + y ^ 2 == 2 && x - y == 1, {x, y}]

Out[1]= (x == (1/2) (1 - Sqrt[3]) || x == (1/2) (1 + Sqrt[3])) && y == -1 + x
```

Use ``ToRules`` and ``ReplaceRepeated`` (`` //. ``) to list the solutions:

```wl
In[2]:= {x, y} //. {ToRules[%]}

Out[2]= {{(1/2) (1 - Sqrt[3]), -1 + (1/2) (1 - Sqrt[3])}, {(1/2) (1 + Sqrt[3]), -1 + (1/2) (1 + Sqrt[3])}}
```

---

Find an explicit description of the solution set of a system of inequalities:

```wl
In[1]:= Reduce[x ^ 2 + y ^ 2 < 2 && x - y ≥ 1, {x, y}]

Out[1]= ((1/2) (1 - Sqrt[3]) < x < (1/2) (1 + Sqrt[3]) && -Sqrt[2 - x^2] < y ≤ -1 + x) || (x == (1/2) (1 + Sqrt[3]) && -Sqrt[2 - (1/4) (1 + Sqrt[3])^2] < y < -1 + (1/2) (1 + Sqrt[3])) || ((1/2) (1 + Sqrt[3]) < x < Sqrt[2] && -Sqrt[2 - x^2] < y < Sqrt[2 - x^2])
```

---

Find solutions over specified domains:

```wl
In[1]:= Reduce[(x ^ 4 - 1)(x ^ 4 - 4) == 0, x, Complexes]

Out[1]= x == -1 || x == -I || x == I || x == 1 || x == -Sqrt[2] || x == -I Sqrt[2] || x == I Sqrt[2] || x == Sqrt[2]

In[2]:= Reduce[(x ^ 4 - 1)(x ^ 4 - 4) == 0, x, Reals]

Out[2]= x == -1 || x == 1 || x == -Sqrt[2] || x == Sqrt[2]

In[3]:= Reduce[(x ^ 4 - 1)(x ^ 4 - 4) == 0, x, Integers]

Out[3]= x == -1 || x == 1
```

---

The solution set may depend on symbolic parameters:

```wl
In[1]:= Reduce[a x ^ 2 + b x + c == 0, x]

Out[1]= (a ≠ 0 && (x == (-b - Sqrt[b^2 - 4 a c]/2 a) || x == (-b + Sqrt[b^2 - 4 a c]/2 a))) || (a == 0 && b ≠ 0 && x == -(c/b)) || (c == 0 && b == 0 && a == 0)
```

---

Representing solutions may require introduction of new parameters:

```wl
In[1]:= Reduce[Sin[x] == 1 / 2, x]

Out[1]= C[1]∈ℤ && (x == (π/6) + 2 π C[1] || x == (5 π/6) + 2 π C[1])

In[2]:= Reduce[x ^ 2 - 2y ^ 2 == 1 && x > 0 && y > 0, {x, y}, Integers]

Out[2]= C[1]∈ℤ && C[1] ≥ 1 && x == (1/2) ((3 - 2 Sqrt[2])^C[1] + (3 + 2 Sqrt[2])^C[1]) && y == -((3 - 2 Sqrt[2])^C[1] - (3 + 2 Sqrt[2])^C[1]/2 Sqrt[2])
```

List the first 10 solutions:

```wl
In[3]:= % /. Table[{C[1] -> i}, {i, 10}]//Simplify

Out[3]= {x == 3 && y == 2, x == 17 && y == 12, x == 99 && y == 70, x == 577 && y == 408, x == 3363 && y == 2378, x == 19601 && y == 13860, x == 114243 && y == 80782, x == 665857 && y == 470832, x == 3880899 && y == 2744210, x == 22619537 && y == 15994428}
```

#### Complex Domain (16)

A linear system:

```wl
In[1]:= Reduce[2 x + 3y - 5z == 1 && 3x - 4y + 7z == 3, {x, y, z}]

Out[1]= y == 22 - 29 x && z == 13 - 17 x
```

---

A univariate polynomial equation:

```wl
In[1]:= Reduce[x ^ 3 - 2x + 1 == 0, x]

Out[1]= x == 1 || x == (1/2) (-1 - Sqrt[5]) || x == (1/2) (-1 + Sqrt[5])
```

---

A multivariate polynomial equation:

```wl
In[1]:= Reduce[x ^ 2 - y z == 1, {x, y, z}]

Out[1]= ((x == -1 || x == 1) && y == 0) || (y ≠ 0 && z == (-1 + x^2/y))
```

---

Systems of polynomial equations and inequations can always be reduced:

```wl
In[1]:= Reduce[x ^ 2 + y ^ 3 == z && x + 2y == 3z + 1 && x y z ≠ 0, {x, y, z}]

Out[1]= (y == Root[1 - x + 3 x^2 - 2 #1 + 3 #1^3&, 1] || y == Root[1 - x + 3 x^2 - 2 #1 + 3 #1^3&, 2] || y == Root[1 - x + 3 x^2 - 2 #1 + 3 #1^3&, 3]) && z == (1/3) (-1 + x + 2 y) && -x y + x^2 y + 2 x y^2 ≠ 0
```

---

A quantified polynomial system:

```wl
In[1]:= Reduce[ForAll[x, Exists[y, a x ^ 2 + b y ^ 2 - 3y == 1 && y ≠ 0]], {a, b}]

Out[1]= a == 0 || b ≠ 0
```

---

An algebraic system:

```wl
In[1]:= Reduce[Sqrt[x + 2y] - 3x + 4y == 5 && x + y ^ (1 / 3) == 1, {x, y}]

Out[1]= x == Root[-1 + 35*#1 + 195*#1^2 - 350*#1^3 + 264*#1^4 - 96*#1^5 + 16*#1^6 & , 2, 0] && y == -(-1 + Root[-1 + 35*#1 + 195*#1^2 - 350*#1^3 + 264*#1^4 - 96*#1^5 + 16*#1^6 & , 2, 0])^3
```

---

Transcendental equations solvable in terms of inverse functions:

```wl
In[1]:= Reduce[Sin[x] == 1 / 3, x]

Out[1]= C[1]∈ℤ && (x == π - ArcSin[(1/3)] + 2 π C[1] || x == ArcSin[(1/3)] + 2 π C[1])

In[2]:= Reduce[ 4 ^ (x ^ 2)2 ^ x == 8, x]

Out[2]= C[1]∈ℤ && (x == (1/4) (-1 - Sqrt[1 + 8 (3 + (2 I π C[1]/Log[2]))]) || x == (1/4) (-1 + Sqrt[1 + 8 (3 + (2 I π C[1]/Log[2]))]))
```

In this case there is no solution:

```wl
In[3]:= Reduce[Log[x] == 75 / 11 I Pi + 17, x]

Out[3]= False
```

---

Equations involving elliptic functions:

```wl
In[1]:= Reduce[JacobiSN[x, y] == 1, x]

Out[1]= (C[1] | C[2])∈ℤ && x == 2 I C[2] EllipticK[1 - y] + EllipticK[y] + 4 C[1] EllipticK[y]
```

---

Equations solvable using special function zeros:

```wl
In[1]:= Reduce[Zeta[x] == 0, x]
```

Reduce::rhyp: Warning: Reduce assumed the Riemann hypothesis in order to prove the solution set found is complete.

```wl
Out[1]= C[1]∈ℤ && ((C[1] ≥ 1 && x == -2 C[1]) || (C[1] ≠ 0 && x == ZetaZero[C[1]]))
```

Solving this system does not require the Riemann hypothesis:

```wl
In[2]:= Reduce[Zeta[x] == 0 && Re[x] == 1 / 2 && Im[x] ^ 2 < 500, x]

Out[2]= x == ZetaZero[-2] || x == ZetaZero[-1] || x == ZetaZero[1] || x == ZetaZero[2]
```

---

Elementary function equation in a bounded region:

```wl
In[1]:= Reduce[Sin[E ^ x] - Cos[2 x] == 1 && -1 ≤ Re[x] ≤ 1 && -1 ≤ Im[x] ≤ 1, x]

Out[1]=
x == Root[{1 + Cos[2*#1] - Sin[E^#1] & , 
  Complex[
   0.91522690836028880198724645281790281719887702528943998179119313426007856987235`58.8155990315639\
6, 
   -0.20167483871637634359063029271774708352916635086021575541478734763837440506015`58.158 ... os[2*#1] - Sin[E^#1] & , 
  Complex[
   0.91522690836028880198724645281790281719887702528943998179119313426007856987235`58.8155990315639\
6, 
   0.20167483871637634359063029271774708352916635086021575541478734763837440506015`58.15872196964319\
]}]
```

---

Holomorphic function equation in a bounded region:

```wl
In[1]:= Reduce[Gamma[x] - Log[x] == I / 2 && Abs[x - 2] < 3 / 2, x]

Out[1]=
x == Root[{Complex[0, Rational[-1, 2]] + Gamma[#1] - Log[#1] & , 
  Complex[1.493287494648014655`7.572094478427584, -0.9848501142802653661`7.3913211899015065]}] || x == Root[{Complex[0, Rational[-1, 2]] + Gamma[#1] - Log[#1] & , 
  Complex[2.6710090236442717056`7.630976491888216, 0.8195706036072192531`7.11788750937477]}]
```

---

Here ``Reduce`` finds some solutions but is not able to prove there are no other solutions:

```wl
In[1]:= Reduce[x == E ^ (1 / x) && Abs[x] < 5, x]
```

Reduce::incs: Warning: Reduce was unable to prove that the solution set found is complete.

```wl
Out[1]=
x == Root[{-E^#1^(-1) + #1 & , 
  Complex[-0.0713609524104686271268493308976822333202769310017664544503`29.77314529240078, 
   -0.2035430395354122741519498119407811380296093172001320137195`30.228340910341707]}] || x == Root[{-E^#1^(-1) + #1 & , 
   ... 614468198818357750614`29.591017386687437, 
   0.0884055104145994833579432476273843963692828430287453579616`30.242989059014153]}] || x == Root[{-E^#1^(-1) + #1 & , 
  1.7632228343518967102252017769517070804360179866674736345704`30.253514564230112}]
```

---

Equation with a purely imaginary period over a vertical stripe in the complex plane:

```wl
In[1]:= Reduce[Cos[Exp[x]] == 3 Exp[-x] + 1 && 0 ≤ Re[x] ≤ 1, x]

Out[1]=
C[1]∈ℤ && (x == 2 I π C[1] + Root[{-3 - E^#1 + E^#1*Cos[E^#1] & , 
  Complex[
   0.54654078399745257519594160231420425668927967249193030442621707480841563744749`58.7461919676217\
9, 
   1.111148642496702393763733735248688743015445748211717465965838 ... #1 + E^#1*Cos[E^#1] & , 
  Complex[
   0.71855337755730528052908657677924093651358201829820244479573852824255152072348`58.7078231874334\
8, 
   3.14159265358979323846264338327950288419716939937510582097493949969622417488586`59.34851402500246\
]}])
```

---

Doubly periodic transcendental equation:

```wl
In[1]:= Reduce[JacobiCS[x, 3] == 1 + I, x]

Out[1]= (C[1] | C[2])∈ℤ && (x == 2 I EllipticK[-2] + 4 I C[2] EllipticK[-2] + 2 C[1] EllipticK[3] - InverseJacobiCS[1 + I, 3] || x == 4 I C[2] EllipticK[-2] + 2 C[1] EllipticK[3] + InverseJacobiCS[1 + I, 3])
```

---

A system of transcendental equations solvable using inverse functions:

```wl
In[1]:= Reduce[Sin[x + y] == 1 / 2 && E ^ x - y == 1, {x, y}]

Out[1]= (C[1] | C[2])∈ℤ && (x == 1 - (7 π/6) - 2 π C[2] - ProductLog[C[1], E^1 - (7 π/6) - 2 π C[2]] || x == 1 + (π/6) - 2 π C[2] - ProductLog[C[1], E^1 + (π/6) - 2 π C[2]]) && y == -1 + E^x
```

---

A square system of analytic equations over a bounded box:

```wl
In[1]:= Reduce[FresnelS[x - y] - AiryAi[x] + y == (3 + I) / 2 && CosIntegral[x] y - Sin[x y] == -5(1 - I) / 4 && 1 ≤ Re[x] ≤ 2 && 0 ≤ Im[x] ≤ 1 && 1 ≤ Re[y] ≤ 2 && 0 ≤ Im[y] ≤ 1, {x, y}]

Out[1]=
x == Root[{{(Complex[Rational[-3, 2], Rational[-1, 2]]) - AiryAi[#1] + FresnelS[#1 - #2] + #2 & , 
   (Complex[Rational[5, 4], Rational[-5, 4]]) - Sin[#1*#2] + CosIntegral[#1]*#2 & }, 
  {Complex[1.46557437163216805274047415673624896424`18., 
    0 ... osIntegral[#1]*#2 & }, 
  {Complex[1.46557437163216805274047415673624896424`18., 
    0.55646995410827623659902709467197086923`18.], 
   Complex[1.55658601138382419251343576215125582985`18., 
    0.44519414919885091920837107817596581916`18.]}}, 2]
```

#### Real Domain (26)

A linear system:

```wl
In[1]:= Reduce[2 x + 3y - 5z == 1 && 3x - 4y + 7z == 3, {x, y, z}, Reals]

Out[1]= y == 22 - 29 x && z == 13 - 17 x
```

---

A univariate polynomial equation:

```wl
In[1]:= Reduce[x ^ 5 - 2x + 1 == 0, x, Reals]

Out[1]= x == 1 || x == Root[-1 + #1 + #1^2 + #1^3 + #1^4 & , 1, 0] || x == Root[-1 + #1 + #1^2 + #1^3 + #1^4 & , 2, 0]
```

---

A univariate polynomial inequality:

```wl
In[1]:= Reduce[x ^ 5 - 2x + 1 < 0, x, Reals]

Out[1]= x < Root[-1 + #1 + #1^2 + #1^3 + #1^4 & , 1, 0] || Root[-1 + #1 + #1^2 + #1^3 + #1^4 & , 2, 0] < x < 1
```

---

A multivariate polynomial equation:

```wl
In[1]:= Reduce[x ^ 2 - y z == 1, {x, y, z}, Reals]

Out[1]= (x == -1 && y == 0) || (x == 1 && y == 0) || ((y < 0 || y > 0) && z == -(1 - x^2/y))
```

---

A multivariate polynomial inequality:

```wl
In[1]:= Reduce[x ^ 2 - 2y  + z ^ 2 ≤ 1, {x, y, z}, Reals]

Out[1]= (y == (1/2) (-1 + x^2) && z == 0) || (y > (1/2) (-1 + x^2) && -Sqrt[1 - x^2 + 2 y] ≤ z ≤ Sqrt[1 - x^2 + 2 y])
```

---

Systems of polynomial equations and inequalities can always be reduced:

```wl
In[1]:= Reduce[x ^ 2 + y z == 1 && x + 2y ≤ 3z + 1 && x y z > 7, {x, y, z}, Reals]

Out[1]= x < Root[7 - #1 + #1^3 & , 1, 0] && y < 0 && z == (1 - x^2/y)
```

---

A quantified polynomial system:

```wl
In[1]:= Reduce[ForAll[x, Exists[y, a x ^ 2 + b y ^ 2 - 3y == 1 && y < 0]], {a, b}, Reals]

Out[1]= (a < 0 && b ≥ 0) || (a == 0 && b ≥ -(9/4)) || (a > 0 && -(9/4) ≤ b < 0)
```

---

An algebraic system:

```wl
In[1]:= Reduce[Sqrt[x + 2y] - 3x + 4y ≥ 5 && x + y ^ (1 / 3) == 1, {x, y}, Reals]

Out[1]= x ≤ Root[-1 + 35*#1 + 195*#1^2 - 350*#1^3 + 264*#1^4 - 96*#1^5 + 16*#1^6 & , 2, 0] && y == 1 - 3 x + 3 x^2 - x^3
```

---

Piecewise equations:

```wl
In[1]:= Reduce[Abs[(x + Abs[x + 2]) ^ 2 - 1] ^ 2 == 9, x, Reals]

Out[1]= x ≤ -2 || x == 0

In[2]:= Reduce[Max[x, y] == Min[y ^ 2 - x, x], {x, y}]

Out[2]= (x ≤ 0 && y ≤ x) || (0 < x < 2 && y ≤ -Sqrt[2] Sqrt[x]) || (x == 2 && (y ≤ -2 || y == 2)) || (x > 2 && (y ≤ -Sqrt[2] Sqrt[x] || Sqrt[2] Sqrt[x] ≤ y ≤ x))
```

---

Piecewise inequalities:

```wl
In[1]:= Reduce[Abs[3x ^ 2 - 7x - 6] < Abs[x ^ 2 + x], x, Reals]

Out[1]= (1/4) (3 - Sqrt[33]) < x < 2 - Sqrt[7] || (1/4) (3 + Sqrt[33]) < x < 2 + Sqrt[7]

In[2]:= Reduce[Floor[x ^ 2 + Ceiling[x ^ 2]] < 10, x, Reals]

Out[2]= -Sqrt[5] < x < Sqrt[5]
```

---

Transcendental equations, solvable using inverse functions:

```wl
In[1]:= Reduce[E ^ x - x == 7, x, Reals]

Out[1]= x == -7 - ProductLog[-(1/E^7)] || x == -7 - ProductLog[-1, -(1/E^7)]

In[2]:= Reduce[ 27^2x - 1^(1/(x)) == Sqrt[9^2x - 1], x, Reals]

Out[2]= x == (1/2) || x == 3
```

---

Transcendental inequalities, solvable using inverse functions:

```wl
In[1]:= Reduce[Sin[x] < 1 / 3, x, Reals]

Out[1]= C[1]∈ℤ && -π - ArcSin[(1/3)] + 2 π C[1] < x < ArcSin[(1/3)] + 2 π C[1]

In[2]:= Reduce[ (1/2^x - 1) > (1/1 - 2^x - 1), x, Reals]

Out[2]= 0 < x < (2 Log[2] - Log[3]/Log[2]) || x > 1
```

---

Inequalities involving elliptic functions:

```wl
In[1]:= Reduce[1 < JacobiNC[x, 3] ≤ 2, x, Reals]

Out[1]= C[1]∈ℤ && (2 C[1] EllipticK[(1/3)]/Sqrt[3]) < x < (1/3) (2 Sqrt[3] EllipticK[(1/3)] + 2 Sqrt[3] C[1] EllipticK[(1/3)])
```

---

Transcendental equation, solvable using special function zeros:

```wl
In[1]:= Reduce[AiryBi[1 - x ^ 2] == 0 && 99 < x < 100, x, Reals]

Out[1]= C[1]∈ℤ && 205874 ≤ C[1] ≤ 212175 && x == Sqrt[1 - AiryBiZero[C[1]]]
```

---

Transcendental inequality, solvable using special function zeros:

```wl
In[1]:= Reduce[900 < AiryAiZero[2t + 1] ^ 2 < 1000, t, Reals]

Out[1]= t == (35/2) || t == 18
```

---

Exp-log equations:

```wl
In[1]:= Reduce[E ^ (2E ^ x) - Log[x ^ 2 + 1] - 20x == 11, x, Reals]

Out[1]=
x == Root[{-11 + E^(2*E^#1) - Log[1 + #1^2] - 20*#1 & , 
  -0.35162712906759649655982158013106106679`20.6020599826903}] || x == Root[{-11 + E^(2*E^#1) - Log[1 + #1^2] - 20*#1 & , 
  0.38318251567919077710873209163936202845`20.601892248868715}]
```

High-degree sparse polynomial equation:

```wl
In[2]:= Reduce[x ^ 1000000 - 2x ^ 777777 + 3x ^ 12345 + 9x ^ 67 - 10 == 0, x, Reals]

Out[2]=
x == Root[{-10 + 9*#1^67 + 3*#1^12345 - 2*#1^777777 + #1^1000000 & , 
  -1.00000230766910114255097141722217202187`15.954590772397804}] || x == Root[{-10 + 9*#1^67 + 3*#1^12345 - 2*#1^777777 + #1^1000000 & , 
  0.999915046876402868747391039505600929 ... 67 + 3*#1^12345 - 2*#1^777777 + #1^1000000 & , 
  1.00000183939111342290573247737484052777`15.352530577699717}] || x == Root[{-10 + 9*#1^67 + 3*#1^12345 - 2*#1^777777 + #1^1000000 & , 
  1.0000020798897295559726217106799595058`15.653560677810717}]
```

Algebraic equation involving high-degree radicals:

```wl
In[3]:= Reduce[2x ^ (123451 / 67890) - x ^ 2 + 4Sqrt[x] - 4x - 9 / 8 == 0, x, Reals]

Out[3]=
x == Root[{-9 + 32*#1^33945 - 32*#1^67890 + 16*#1^123451 - 8*#1^135780 & , 
  0.99998228037417591362867597126751206815`16.255612070251086}]^67890 || x == Root[{-9 + 32*#1^33945 - 32*#1^67890 + 16*#1^123451 - 8*#1^135780 & , 
  0.9999928313897782361 ... #1^123451 - 8*#1^135780 & , 
  1.00002270254939096272295273593044839799`15.778508370615333}]^67890 || x == Root[{-9 + 32*#1^33945 - 32*#1^67890 + 16*#1^123451 - 8*#1^135780 & , 
  1.00004467068914015825953356397803872824`15.954609169991503}]^67890
```

Equation involving irrational real powers:

```wl
In[4]:= Reduce[x ^ Pi - x ^ x ^ Sqrt[2] - Sqrt[3]x + 2 ^ (1 / 3) == 0, x, Reals]

Out[4]=
x == Root[{-2^(Rational[1, 3]) + Sqrt[3]*#1 - #1^Pi + #1^#1^Sqrt[2] & , 
  0.26507981443817577672172625802127646291`20.301029995663956}] || x == Root[{-2^(Rational[1, 3]) + Sqrt[3]*#1 - #1^Pi + #1^#1^Sqrt[2] & , 
  1.40311791090208202828996361665333910855`20.58048490617094}] || x == Root[{-2^(Rational[1, 3]) + Sqrt[3]*#1 - #1^Pi + #1^#1^Sqrt[2] & , 
  2.04927189313232635652411159539368089433`20.602059991327817}]
```

---

Exp-log inequality:

```wl
In[1]:= Reduce[E ^ (2E ^ x) - Log[x ^ 2 + 1] - 20x < 11, x, Reals]

Out[1]=
Root[{-11 + E^(2*E^#1) - Log[1 + #1^2] - 20*#1 & , 
  -0.35162712906759649655982158013106106679`20.6020599826903}] < x < Root[{-11 + E^(2*E^#1) - Log[1 + #1^2] - 20*#1 & , 
  0.38318251567919077710873209163936202845`20.601892248868715}]
```

---

Elementary function equation in a bounded interval:

```wl
In[1]:= Reduce[2Sin[Exp[x]] - Cos[Pi x] == 3 / 2 && -1 < x < 1, x, Reals]

Out[1]=
x == Root[{Rational[3, 2] + Cos[Pi*#1] - 2*Sin[E^#1] & , 
  -0.67646667791447829009829066540353259551`20.30028611369073}] || x == Root[{Rational[3, 2] + Cos[Pi*#1] - 2*Sin[E^#1] & , 
  0.34285718598548197856246903380411650275`20.306182957142376}]
```

---

Holomorphic function equation in a bounded interval:

```wl
In[1]:= Reduce[Cos[x] - BesselJ[5, x] == 1 / 2 && 0 ≤ x ≤ 10, x]

Out[1]= x == Root[{Rational[1, 2] + BesselJ[5, #1] - Cos[#1] & , 1.04683640588411028782586265115460371518`18.}] || x == Root[{Rational[1, 2] + BesselJ[5, #1] - Cos[#1] & , 5.7121829598610068621083066591610626983`15.}] || x == Root[{Rational[1, 2] + BesselJ[5, #1] - Cos[#1] & , 6.81481204168040522792580617544281052997`18.}]
```

---

Meromorphic function inequality in a bounded interval:

```wl
In[1]:= Reduce[Gamma[x] ≤ 2x && -2 ≤ x ≤ 2, x, Reals]
```

Reduce::nint: Warning: Reduce used numeric integration to show that the solution set found is complete.

```wl
Out[1]=
Gamma[x]∈ℝ && (-1 < x < 0 || Root[{-Gamma[#1] + 2*#1 & , 
  0.6721838388271695755195722337026983753183608751487410445684`30.102999566398122}] ≤ x ≤ 2)
```

---

Periodic elementary function equation over the reals:

```wl
In[1]:= Reduce[Exp[Sin[x]] - Sin[3 Cos[x]] == 0, x, Reals]

Out[1]= C[1]∈ℤ && (x == 2 π C[1] + Root[{E^Sin[#1] - Sin[3*Cos[#1]] & , 4.83937256745685573269575502231839648007`20.300855023292772}] || x == 2 π C[1] + Root[{E^Sin[#1] - Sin[3*Cos[#1]] & , 5.71027259426199462845172937976330734128`20.300885070998653}])
```

---

Transcendental systems solvable using inverse functions:

```wl
In[1]:= Reduce[Sin[x + y] == 1 / 2 && E ^ x - y ≤ 1, {x, y}, Reals]

Out[1]= C[1]∈ℤ && ((C[1] ≥ 0 && x == 0 && (y == (1/6) (π + 12 π C[1]) || y == (1/6) (5 π + 12 π C[1]))) || (x ≤ (1/6) (6 + π + 12 π C[1] - 6 ProductLog[E^1 + (π/6) + 2 π C[1]]) && y == (1/6) (π - 6 x + 12 π C[1])) || (x ≤ (1/6) (6 + 5 π + 12 π C[1] - 6 ProductLog[E^1 + (5 π/6) + 2 π C[1]]) && y == (1/6) (5 π - 6 x + 12 π C[1])))

In[2]:= Reduce[ 3^x - 2^2y == 77 && Sqrt[3^x] - 2^y == 7, {x, y}, Reals]

Out[2]= x == 4 && y == 1
```

---

Systems exp-log in the first variable and polynomial in the other variables:

```wl
In[1]:= Reduce[E ^ x y ^ 3 + Log[x]y == 1 && x y + E ^ x / x ≥ 2, {x, y}, Reals]

Out[1]= (0 < x < Root[{27*E^#1 + 4*Log[#1]^3 & , 0.13820947441659004791592172385161600701`20.30281414226687}] && (y == Root[-1 + Log[x] #1 + E^x #1^3&, 1] || y == Root[-1 + Log[x] #1 + E^x #1^3&, 2] || y == Root[-1 + Log[x] #1 + E^x #1^3&, 3])) || (x == Ro ... 14226687}] && (y == Root[-1 + Log[x] #1 + E^x #1^3&, 1] || y == Root[-1 + Log[x] #1 + E^x #1^3&, 3])) || (x > Root[{27*E^#1 + 4*Log[#1]^3 & , 0.13820947441659004791592172385161600701`20.30281414226687}] && y == Root[-1 + Log[x] #1 + E^x #1^3&, 1])

In[2]:= Reduce[E ^ x y ^ 3 + Log[x] y > 3x, {x, y}, Reals]

Out[2]= (0 < x < Root[{4*Log[#1]^3 + (243*E^#1)*#1^2 & , 0.21718426299867846073019679627795057334`20.60205947962875}] && (Root[-3 x + Log[x] #1 + E^x #1^3&, 1] < y < Root[-3 x + Log[x] #1 + E^x #1^3&, 2] || y > Root[-3 x + Log[x] #1 + E^x #1^3&, 3])) || (x ... 67846073019679627795057334`20.60205947962875}] && y > Root[-3 x + Log[x] #1 + E^x #1^3&, 3]) || (x > Root[{4*Log[#1]^3 + (243*E^#1)*#1^2 & , 0.21718426299867846073019679627795057334`20.60205947962875}] && y > Root[-3 x + Log[x] #1 + E^x #1^3&, 1])
```

Quantified system:

```wl
In[3]:= Reduce[Exists[a, a x ^ 2 + Sinh[x ^ 2 + 1]a ^ 2 ≥ 1 && x ^ 2 + a ^ 2 ≤ 1], x, Reals]

Out[3]=
Root[{2 + Sqrt[-#1^4/(-1 + #1^2)]*(-2 + 2*#1^2) + (E^(-1) - #1^2/E)/E^#1^2 + 
    E^#1^2*(-E + E*#1^2) & , -0.88308503118764556785589812160344107099`20.301186355490426}] ≤ x ≤ Root[{2 + Sqrt[-#1^4/(-1 + #1^2)]*(-2 + 2*#1^2) + (E^(-1) - #1^2/E)/E^#1^2 + 
    E^#1^2*(-E + E*#1^2) & , 0.88308503118764556785589812160344107099`20.301186355490426}]
```

---

Systems elementary and bounded in the first variable and polynomial in the other variables:

```wl
In[1]:= Reduce[Sin[x - Cos[x]] y ^ 3 - x == 1 && x ^ 2 + y ^ 2 ≤ 1, {x, y}, Reals]

Out[1]=
(x == -1 && y == 0) || (Root[{-Sin[Cos[#1] - #1] + Sqrt[-(-1 + #1)^(-3)/(1 + #1)] & , 
  -0.83839775310251167778397405412958807037`20.30101315264349}] ≤ x ≤ Root[{-Sin[Cos[#1] - #1] + Sqrt[-(-1 + #1)^(-3)/(1 + #1)] & , 
  -0.12223534929360626218861906627302459976`20.602059991195688}] && y == Root[-1 - x + Sin[x - Cos[x]] #1^3&, 1])
```

Quantified system:

```wl
In[2]:= Reduce[Exists[y, y ^ 3 - Cos[x] y + 2 x ^ 2 Sin[x ^ 2 - 1] > 0 && x ^ 2 + Cos[x] ^ 2 ≤ 2], x, Reals]

Out[2]= Root[{-Cos[#1] + Sqrt[2 - #1^2] & , -1.40449164821534122603508681779902534162`20.301030306937502}] ≤ x ≤ Root[{-Cos[#1] + Sqrt[2 - #1^2] & , 1.40449164821534122603508681779902534162`20.301030306937502}]
```

---

Systems analytic and bounded in the first variable and polynomial in the other variables:

```wl
In[1]:= Reduce[y ^ 3 - BesselJ[2, x + 2] y - y - 3 x == -2 && y < 0  && x ^ 2 < 2, {x, y}, Reals]

Out[1]=
(-Sqrt[2] < x < (2/3) && y == Root[2 - 3 x + (-1 - BesselJ[2, 2 + x]) #1 + #1^3&, 1]) || (x == (2/3) && y == -Sqrt[1 + BesselJ[2, (8/3)]]) || ((2/3) < x < Root[{104 - 12*BesselJ[2, 2 + #1] - 12*BesselJ[2, 2 + #1]^2 - 4*BesselJ[2, 2 + #1]^3 - 324*#1 ... + #1^3&, 2])) || (x == Root[{104 - 12*BesselJ[2, 2 + #1] - 12*BesselJ[2, 2 + #1]^2 - 4*BesselJ[2, 2 + #1]^3 - 324*#1 + 
    243*#1^2 & , 0.89841079175928558934162445778916752524`18.}] && y == Root[2 - 3 x + (-1 - BesselJ[2, 2 + x]) #1 + #1^3&, 1])
```

Quantified system:

```wl
In[2]:= Reduce[Exists[y, y ^ 4 - Gamma[x + 2] y - y - 3 ArcSin[x / 3] == 1 && y < -1 / 2 && 0 < x < 2], x, Reals]

Out[2]=
Gamma[2 + x]∈ℝ && Root[{Rational[7, 8] + 6*ArcSin[Rational[1, 3]*#1] - Gamma[2 + #1] & , 
  0.08098309191462575367099887237875008295`18.}] < x < Root[{Rational[7, 8] + 6*ArcSin[Rational[1, 3]*#1] - Gamma[2 + #1] & , 
  1.81319187807250568986646888763654738319`18.}]
```

---

Square systems of analytic equations over bounded regions:

```wl
In[1]:= Reduce[Gamma[x + y + 1] - Sin[x y] == 1 && Erf[x ^ 2 - y] - E ^ y - x + 4 == 0 && 0 < x < 3 && 0 < y < 3, {x, y}, Reals]

Out[1]=
(x == Root[{{-4 + E^#2 - Erf[#1^2 - #2] + #1 & , -1 + Gamma[1 + #1 + #2] - Sin[#1*#2] & }, 
  {0.0919858694001521714875641578999861463`18., 1.10790153036910970558148302622964826034`18.}}, 1] && y == Root[{{-4 + E^#2 - Erf[#1^2 - #2] + #1 & , -1 + G ... , 1.02794667692865555268380949332229784662`26.}}, 1] && y == Root[{{-4 + E^#2 - Erf[#1^2 - #2] + #1 & , -1 + Gamma[1 + #1 + #2] - Sin[#1*#2] & }, 
  {0.82036209458524326346110067158241175925`26., 1.02794667692865555268380949332229784662`26.}}, 2])
```

#### Integer Domain (13)

Linear system of equations:

```wl
In[1]:= Reduce[2 x + 3y - 5z == 1 && 3x - 4y + 7z == 3, {x, y, z}, Integers]

Out[1]= C[1]∈ℤ && x == C[1] && y == 22 - 29 C[1] && z == 13 - 17 C[1]
```

---

A linear system of equations and inequalities:

```wl
In[1]:= Reduce[2 x + 3y == 4 && 3x - 4y ≤ 5 && x - 2y > -21, {x, y, z}, Integers]

Out[1]= z∈ℤ && ((x == -7 && y == 6) || (x == -4 && y == 4) || (x == -1 && y == 2))
```

---

A univariate polynomial equation:

```wl
In[1]:= Reduce[x ^ 1000 - 2x ^ 777 + 1 == 0, x, Integers]

Out[1]= x == 1
```

---

A univariate polynomial inequality:

```wl
In[1]:= Reduce[x ^ 5 - 2x + 1 < 0, x, Integers]

Out[1]= x∈ℤ && x ≤ -2
```

---

Binary quadratic equations:

```wl
In[1]:= Reduce[x ^ 2 + x y + y ^ 2 == 109, {x, y}, Integers]

Out[1]= (x == -12 && y == 5) || (x == -12 && y == 7) || (x == -7 && y == -5) || (x == -7 && y == 12) || (x == -5 && y == -7) || (x == -5 && y == 12) || (x == 5 && y == -12) || (x == 5 && y == 7) || (x == 7 && y == -12) || (x == 7 && y == 5) || (x == 12 && y == -7) || (x == 12 && y == -5)

In[2]:= Reduce[x ^ 2 - 3y ^ 2 == 22 && x > 0 && y > 0, {x, y}, Integers]

Out[2]= (x == 5 && y == 1) || (C[1]∈ℤ && C[1] ≥ 0 && x == (1/2) (5 (2 - Sqrt[3])^C[1] - Sqrt[3] (2 - Sqrt[3])^C[1] + 5 (2 + Sqrt[3])^C[1] + Sqrt[3] (2 + Sqrt[3])^C[1]) && y == (1/6) (3 (2 - Sqrt[3])^C[1] - 5 Sqrt[3] (2 - Sqrt[3])^C[1] + 3 (2 + Sqrt[3])^C[1 ... ] ≥ 1 && x == (1/2) (5 (2 - Sqrt[3])^C[1] + Sqrt[3] (2 - Sqrt[3])^C[1] + 5 (2 + Sqrt[3])^C[1] - Sqrt[3] (2 + Sqrt[3])^C[1]) && y == (1/6) (-3 (2 - Sqrt[3])^C[1] - 5 Sqrt[3] (2 - Sqrt[3])^C[1] - 3 (2 + Sqrt[3])^C[1] + 5 Sqrt[3] (2 + Sqrt[3])^C[1]))

In[3]:= Reduce[x ^ 2 - 6 x y + 9y ^ 2 - x + 2y == 1, {x, y}, Integers]

Out[3]= C[1]∈ℤ && x == -3 - 2 C[1] + 3 C[1]^2 && y == -1 - C[1] + C[1]^2
```

---

A Thue equation:

```wl
In[1]:= Reduce[x ^ 3 - 2x ^ 2 y + y ^ 3 == 2, {x, y}, Integers]

Out[1]= (x == 1 && y == -1) || (x == 5 && y == 3)
```

---

A sum of squares equation:

```wl
In[1]:= Reduce[x ^ 2 + 4y ^ 2 + 9z ^ 2 + 16t ^ 2 == 354 && x > 0 && y > 0 && z > 0 && t > 0, {x, y, z, t}, Integers]

Out[1]= (x == 1 && y == 2 && z == 3 && t == 4) || (x == 1 && y == 4 && z == 5 && t == 2) || (x == 1 && y == 8 && z == 3 && t == 1) || (x == 5 && y == 4 && z == 1 && t == 4) || (x == 5 && y == 8 && z == 1 && t == 2) || (x == 7 && y == 2 && z == 5 && t == 2) || (x == 7 && y == 4 && z == 5 && t == 1)
```

---

The Pythagorean equation:

```wl
In[1]:= Reduce[x ^ 2 + y ^ 2 == z ^ 2, {x, y, z}, Integers]

Out[1]= (C[1] | C[2] | C[3])∈ℤ && C[3] ≥ 0 && ((x == C[1] (C[2]^2 - C[3]^2) && y == 2 C[1] C[2] C[3] && z == C[1] (C[2]^2 + C[3]^2)) || (x == 2 C[1] C[2] C[3] && y == C[1] (C[2]^2 - C[3]^2) && z == C[1] (C[2]^2 + C[3]^2)))
```

---

A bounded system of equations and inequalities:

```wl
In[1]:= Reduce[x ^ 4 + y ^ 4 + z ^ 4 ≤ 500 && x + y ^ 2 + z ^ 3 == 32, {x, y, z}, Integers]

Out[1]= (x == -4 && y == -3 && z == 3) || (x == -4 && y == 3 && z == 3) || (x == 1 && y == -2 && z == 3) || (x == 1 && y == 2 && z == 3) || (x == 4 && y == -1 && z == 3) || (x == 4 && y == 1 && z == 3)
```

---

A high-degree system with no solution:

```wl
In[1]:= Reduce[2x ^ 7 + 8y ^ 15 + 14 x y z == 3, {x, y, z}, Integers]

Out[1]= False
```

---

Transcendental Diophantine systems:

```wl
In[1]:= Reduce[Exp[y ^ 2] < x && Abs[x] < 5 && Abs[y] < 5, {x, y}, Integers]

Out[1]= (x == 2 && y == 0) || (x == 3 && (y == -1 || y == 0 || y == 1)) || (x == 4 && (y == -1 || y == 0 || y == 1))

In[2]:= Reduce[Exp[x ^ 2 - 5y ^ 2 + 1] + x ^ 2 - 5y ^ 2 == 0 && x > 0 && y > 0, {x, y}, Integers]

Out[2]= (x == 2 && y == 1) || (C[1]∈ℤ && C[1] ≥ 1 && x == (1/2) (-2 (9 - 4 Sqrt[5])^C[1] - Sqrt[5] (9 - 4 Sqrt[5])^C[1] - 2 (9 + 4 Sqrt[5])^C[1] + Sqrt[5] (9 + 4 Sqrt[5])^C[1]) && y == (1/10) (5 (9 - 4 Sqrt[5])^C[1] + 2 Sqrt[5] (9 - 4 Sqrt[5])^C[1] + 5 (9 + 4 Sqrt[5])^C[1] - 2 Sqrt[5] (9 + 4 Sqrt[5])^C[1]))
```

---

A polynomial system of congruences:

```wl
In[1]:= Reduce[Mod[x ^ 2 + y ^ 2, 2] == 1 && Mod[x - 2y, 3] == 2, {x, y}, Integers]

Out[1]= (C[1] | C[2])∈ℤ && ((x == 6 C[1] && y == 5 + 6 C[2]) || (x == 4 + 6 C[1] && y == 1 + 6 C[2]) || (x == 2 + 6 C[1] && y == 3 + 6 C[2]) || (x == 3 + 6 C[1] && y == 2 + 6 C[2]) || (x == 1 + 6 C[1] && y == 4 + 6 C[2]) || (x == 5 + 6 C[1] && y == 6 C[2]))
```

---

Diophantine equations with irrational coefficients:

```wl
In[1]:= Reduce[GoldenRatio x ^ 2 - Sqrt[5] y ^ 2 - z == Sqrt[5], {x, y, z}, PositiveIntegers]

Out[1]= (x == 2 && y == 1 && z == 2) || (C[1]∈ℤ && C[1] ≥ 1 && x == (1/2) (2 (3 - 2 Sqrt[2])^C[1] + Sqrt[2] (3 - 2 Sqrt[2])^C[1] + 2 (3 + 2 Sqrt[2])^C[1] - Sqrt[2] (3 + 2 Sqrt[2])^C[1]) && y == (1/2) (-(3 - 2 Sqrt[2])^C[1] - Sqrt[2] (3 - 2 Sqrt[2])^C[1] - (3 + 2 Sqrt[2])^C[1] + Sqrt[2] (3 + 2 Sqrt[2])^C[1]) && z == (1/8) (2 (3 - 2 Sqrt[2])^C[1] + Sqrt[2] (3 - 2 Sqrt[2])^C[1] + 2 (3 + 2 Sqrt[2])^C[1] - Sqrt[2] (3 + 2 Sqrt[2])^C[1])^2)

In[2]:= Reduce[Pi x ^ 2 + Sqrt[6]x y - Sqrt[3] y ^ 3  + Pi ^ 2 Sqrt[3] y ^ 2z ^ 2   - 3Sqrt[3] y z == Sqrt[2(109 + 12Sqrt[3])] + 4Pi + 144Sqrt[3]Pi ^ 2 - Sqrt[2] - 63 Sqrt[3], {x, y, z}, Integers]

Out[2]= x == 2 && y == 3 && z == 4
```

#### Modular Domains (5)

A linear system:

```wl
In[1]:= Reduce[2 x + 3y - 5z == 1 && 3x - 4y + 7z == 3, {x, y, z}, Modulus -> 12]

Out[1]= x == C[1] && y == 10 + 7 C[1] && z == 1 + 7 C[1]
```

---

A univariate polynomial equation:

```wl
In[1]:= Reduce[x ^ 3 - 2x + 1 == 0, x, Modulus -> 5]

Out[1]= x == 1 || x == 2
```

---

A multivariate polynomial equation:

```wl
In[1]:= Reduce[x ^ 2 - y z == 1, {x, y, z}, Modulus -> 4]

Out[1]= (x == 0 && y == 1 && z == 3) || (x == 0 && y == 3 && z == 1) || (x == 1 && y == 0 && z == 0) || (x == 1 && y == 0 && z == 1) || (x == 1 && y == 0 && z == 2) || (x == 1 && y == 0 && z == 3) || (x == 1 && y == 1 && z == 0) || (x == 1 && y == 2 && z = ...  3 && y == 0 && z == 0) || (x == 3 && y == 0 && z == 1) || (x == 3 && y == 0 && z == 2) || (x == 3 && y == 0 && z == 3) || (x == 3 && y == 1 && z == 0) || (x == 3 && y == 2 && z == 0) || (x == 3 && y == 2 && z == 2) || (x == 3 && y == 3 && z == 0)
```

---

A system of polynomial equations and inequations:

```wl
In[1]:= Reduce[x ^ 2 + y ^ 3 == z && x + 2y == 3z + 1 && x y z ≠ 0, {x, y, z}, Modulus -> 7]

Out[1]= (x == 5 && y == 2 && z == 5) || (x == 5 && y == 6 && z == 3) || (x == 6 && y == 4 && z == 2)
```

---

Reduce a quantified polynomial system:

```wl
In[1]:= Reduce[ForAll[x, Exists[y, a x ^ 2 + b y ^ 2 - 3y == 1 && y ≠ 0]], {a, b}, Modulus -> 3]

Out[1]= a == 0 && b == 1
```

#### Finite Field Domains (4)

Univariate equations:

```wl
In[1]:=
ℱ = FiniteField[53, 4];
Reduce[x ^ 5 + ℱ[123]x == ℱ[234], x]

Out[1]= x == FiniteFieldElement[FiniteField[53, 2 + 38*#1 + 9*#1^2 + #1^4 & , "Polynomial"], {10, 13, 41, 32}]

In[2]:= Reduce[x ^ 7 + 2 x + 3 == 0, x, ℱ]

Out[2]= [image]
```

---

Systems of linear equations:

```wl
In[1]:=
ℱ = FiniteField[71, 2];
Reduce[ℱ[123]x + ℱ[234]y == ℱ[345] && ℱ[321]x + ℱ[432]y == ℱ[543], {x, y}]

Out[1]= [image]

In[2]:= Reduce[ℱ[1234]x + ℱ[2345]y + ℱ[3456]z == ℱ[4567] && ℱ[1]x + ℱ[2]y + ℱ[3]z == ℱ[4], {x, y, z}]

Out[2]= [image]
```

---

Systems of polynomial equations:

```wl
In[1]:=
ℱ = FiniteField[7, 5];
Reduce[x ^ 2 + y ^ 2 == 3 && x ^ 5 + y ^ 5 == 5, {x, y}, ℱ]

Out[1]= [image]

In[2]:= Reduce[ℱ[123]x ^ 2 + ℱ[234]y ^ 3 + ℱ[345]z ^ 4 == ℱ[456] && ℱ[21]x + ℱ[32]y ^ 2 + ℱ[43]z ^ 3 == ℱ[54] && x y z == ℱ[1], {x, y, z}]

Out[2]= [image]
```

---

Systems involving quantifiers:

```wl
In[1]:=
ℱ = FiniteField[2, 5];
Reduce[Exists[z, ℱ[1]x + ℱ[3]y + ℱ[5]z == ℱ[7] && ℱ[21]x + ℱ[23]y + ℱ[25]z == ℱ[27]], {x, y}]

Out[1]= [image]

In[2]:= Reduce[Exists[{y, z}, ℱ[1]x ^ 2 + ℱ[2]y ^ 3 + ℱ[3]z ^ 4 == ℱ[4] && ℱ[5]x ^ 4 + ℱ[6]y ^ 3 + ℱ[7]z ^ 2 == ℱ[8] && x y z != ℱ[0]], x]

Out[2]= [image]
```

#### Mixed Domains (4)

Mixed real and complex variables:

```wl
In[1]:= Reduce[x ^ 2 + y ^ 2 == 1 && Element[x, Reals], {x, y}]

Out[1]= (x < -1 && (y == -I Sqrt[-1 + x^2] || y == I Sqrt[-1 + x^2])) || (x == -1 && y == 0) || (-1 < x < 1 && (y == -Sqrt[1 - x^2] || y == Sqrt[1 - x^2])) || (x == 1 && y == 0) || (x > 1 && (y == -I Sqrt[-1 + x^2] || y == I Sqrt[-1 + x^2]))
```

---

Find real values of $x$ and complex values of $y$ for which $x^2+ y^2$ is real and less than $1$ :

```wl
In[1]:= Reduce[x ^ 2 + y ^ 2 < 1  && Element[x, Reals], {x, y}, Complexes]

Out[1]= (x < -1 && Re[y] == 0 && (Im[y] < -Sqrt[-1 + x^2] || Im[y] > Sqrt[-1 + x^2])) || (x == -1 && Re[y] == 0 && (Im[y] < 0 || Im[y] > 0)) || (-1 < x < 1 && ((-Sqrt[1 - x^2] < Re[y] < 0 && Im[y] == 0) || Re[y] == 0 || (0 < Re[y] < Sqrt[1 - x^2] && Im[y] == 0))) || (x == 1 && Re[y] == 0 && (Im[y] < 0 || Im[y] > 0)) || (x > 1 && Re[y] == 0 && (Im[y] < -Sqrt[-1 + x^2] || Im[y] > Sqrt[-1 + x^2]))
```

---

Reduce an inequality involving ``Abs[x]`` :

```wl
In[1]:= Reduce[1 < Abs[ (z - 2/2z - 1)] < 2, z]

Out[1]= (-1 < Re[z] < 0 && -Sqrt[1 - Re[z]^2] < Im[z] < Sqrt[1 - Re[z]^2]) || (0 ≤ Re[z] ≤ (4/5) && (-Sqrt[1 - Re[z]^2] < Im[z] < -(Sqrt[4 Re[z] - 5 Re[z]^2]/Sqrt[5]) || (Sqrt[4 Re[z] - 5 Re[z]^2]/Sqrt[5]) < Im[z] < Sqrt[1 - Re[z]^2])) || ((4/5) < Re[z] < 1 && -Sqrt[1 - Re[z]^2] < Im[z] < Sqrt[1 - Re[z]^2])
```

Plot the solution set:

```wl
In[2]:= Block[{z = u + I v}, RegionPlot[1 < Abs[ (z - 2/2z - 1)] < 2, {u, -1, 1}, {v, -1, 1}]]

Out[2]= [image]
```

---

Mixed integer and real variables:

```wl
In[1]:= Reduce[x ^ 2 + y ^ 2 < 5 && Element[x, Integers], {x, y}, Reals]

Out[1]= (x == -2 && -1 < y < 1) || (x == -1 && -2 < y < 2) || (x == 0 && -Sqrt[5] < y < Sqrt[5]) || (x == 1 && -2 < y < 2) || (x == 2 && -1 < y < 1)
```

#### Geometric Regions (10)

Constrain variables to basic geometric regions in 2D:

```wl
In[1]:=
Subscript[ℛ, 1] = Circle[];
Subscript[ℛ, 2] = Line[{{-2, 1}, {1, -2}}];

In[2]:= Reduce[{x, y}∈Subscript[ℛ, 1] && {x, y}∈Subscript[ℛ, 2], {x, y}]

Out[2]= (x == -1 && y == 0) || (x == 0 && y == -1)
```

Plot the solution:

```wl
In[3]:= Graphics[{{Blue, Subscript[ℛ, 1], Subscript[ℛ, 2]}, {Red, Point[{x, y}] //. {ToRules[%]}}}]

Out[3]= [image]
```

---

Constrain variables to basic geometric regions in 3D:

```wl
In[1]:= Reduce[2 x + 3 y - 5 z == 1 && 2 x y == z^2 && {x, y, z}∈Sphere[], {x, y, z}, Reals]

Out[1]= ((x == -(2/3) && y == -(1/3)) || (x == -(8/17) && y == -(9/17)) || (x == (1/51) (27 - 5 Sqrt[21]) && y == (5189/8131) + (1690 (27 - 5 Sqrt[21])/24393) + (41 (27 - 5 Sqrt[21])^2/829362) - (14 (27 - 5 Sqrt[21])^3/414681)) || (x == (1/51) (27 + 5 Sqrt[21]) && y == (5189/8131) + (1690 (27 + 5 Sqrt[21])/24393) + (41 (27 + 5 Sqrt[21])^2/829362) - (14 (27 + 5 Sqrt[21])^3/414681))) && z == (1/5) (-1 + 2 x + 3 y)
```

Plot the solution:

```wl
In[2]:= Show[{ContourPlot3D[{2 x + 3 y - 5 z == 1, 2 x y == z^2}, {x, -1.2, 1.2}, {y, -1.2, 1.2}, {z, -1.2, 1.2}, Mesh -> None, ContourStyle -> Opacity[0.5]], Graphics3D[{{Opacity[0.5], Green, Sphere[]}, {PointSize[Large], Red, Point[{x, y, z} //.  {ToRules[%]}]}}]}]

Out[2]= [image]
```

---

Project a 3D region onto the $x$ - $y$ plane:

```wl
In[1]:= ℛ = Cone[{{0, 0, 0}, {1, 1, 1}}, 2];

In[2]:= Reduce[Subscript[∃, z]{x, y, z}∈ℛ, {x, y}, Reals]

Out[2]= (x == -2 Sqrt[(2/3)] && y == -(x/2) - (1/2) Sqrt[8 - 3 x^2]) || (-2 Sqrt[(2/3)] < x ≤ (1/3) (2 - Sqrt[6]) && (y == -(x/2) - (1/2) Sqrt[8 - 3 x^2] || -(x/2) - (1/2) Sqrt[8 - 3 x^2] < y < -(x/2) + (1/2) Sqrt[8 - 3 x^2] || y == -(x/2) + (1/2) Sqrt[8 - ... 2 + Sqrt[6]) ≤ x < 2 Sqrt[(2/3)] && (y == -(x/2) - (1/2) Sqrt[8 - 3 x^2] || -(x/2) - (1/2) Sqrt[8 - 3 x^2] < y < -(x/2) + (1/2) Sqrt[8 - 3 x^2] || y == -(x/2) + (1/2) Sqrt[8 - 3 x^2])) || (x == 2 Sqrt[(2/3)] && y == -(x/2) - (1/2) Sqrt[8 - 3 x^2])
```

Plot the projection:

```wl
In[3]:= RegionPlot[%, {x, -2, 2}, {y, -2, 2}]

Out[3]= [image]
```

---

An implicitly defined region:

```wl
In[1]:= ℛ = ImplicitRegion[a + 2 b - 3 c ≥ 1 && a b c == 7, {a, b, c}];

In[2]:= Reduce[x^2 + y z == 1 && x + 2 y < 3 z + 7 && {x, y, z}∈ℛ, {x, y, z}, Reals]

Out[2]= x == Root[7 - #1 + #1^3 & , 1, 0] && (7 - x/4) - (1/4) Sqrt[(168 + 49 x - 14 x^2 + x^3/x)] < y < (7 - x/4) + (1/4) Sqrt[(168 + 49 x - 14 x^2 + x^3/x)] && z == (7/x y)
```

---

A parametrically defined region:

```wl
In[1]:= ℛ = ParametricRegion[{s^2, t^2, s t}, {s, t}];

In[2]:= Reduce[x^2 + y^2 + z^2 == 1 && {x, y, z}∈ℛ, {x, y, z}, Reals]

Out[2]= (x == 0 && y == 1 && z == 0) || (0 < x < 1 && y == -(x/2) + (1/2) Sqrt[4 - 3 x^2] && (z == -Sqrt[1 - x^2 - y^2] || z == Sqrt[1 - x^2 - y^2])) || (x == 1 && y == 0 && z == 0)
```

---

Derived regions:

```wl
In[1]:= ℛ = RegionIntersection[Disk[{0, 0}, 2], Disk[{1, 1}, 2]];

In[2]:= Reduce[x^2 == x y + 1 && {x, y}∈ℛ, {x, y}, Reals]

Out[2]= (Root[1 + 2*#1 - 4*#1^2 - 4*#1^3 + 2*#1^4 & , 1, 0] ≤ x ≤ Root[1 - 6*#1^2 + 2*#1^4 & , 2, 0] || Root[1 + 2*#1 - 4*#1^2 - 4*#1^3 + 2*#1^4 & , 3, 0] ≤ x ≤ Root[1 - 6*#1^2 + 2*#1^4 & , 4, 0]) && y == -(1 - x^2/x)
```

The solution of $x^2=x y+1$ restricted to the intersection:

```wl
In[3]:=
Show[{DiscretizeRegion[ℛ], ContourPlot[x^2 == x y + 1, {x, -2, 3}, {y, -2, 3}], 
	Plot@@{Last[%[[2]]], {x, First[#], Last[#]}, PlotStyle -> Red}& /@ (List@@%[[1]])}]

Out[3]= [image]
```

---

Eliminate quantifiers over a Cartesian product of regions:

```wl
In[1]:= ℛ = RegionProduct[Circle[], Circle[]];

In[2]:= Reduce[Subscript[∃, {a, b}](4 x y a b == 1 && {x, a, y, b}∈ℛ), {x, y}]

Out[2]= (x == -(1/Sqrt[2]) && (y == -(1/Sqrt[2]) || y == (1/Sqrt[2]))) || (x == (1/Sqrt[2]) && (y == -(1/Sqrt[2]) || y == (1/Sqrt[2])))
```

---

Regions dependent on parameters:

```wl
In[1]:=
Subscript[ℛ, 1] = InfiniteLine[{{2, 0}, {0, t}}];
Subscript[ℛ, 2] = Circle[];

In[2]:= Reduce[{x, y}∈Subscript[ℛ, 1] && {x, y}∈Subscript[ℛ, 2], {t, x, y}, Reals]

Out[2]= ((t == -(2/Sqrt[3]) && x == (1/2)) || (-(2/Sqrt[3]) < t < (2/Sqrt[3]) && (x == (2 t^2/4 + t^2) - 2 Sqrt[-(-4 + 3 t^2/(4 + t^2)^2)] || x == (2 t^2/4 + t^2) + 2 Sqrt[-(-4 + 3 t^2/(4 + t^2)^2)])) || (t == (2/Sqrt[3]) && x == (1/2))) && y == (1/2) (2 t - t x)
```

---

A condition for $\mathcal{R}_1\subseteq \mathcal{R}_2$ :

```wl
In[1]:=
Subscript[ℛ, 1] = Disk[{a, b}];
Subscript[ℛ, 2] = Triangle[{{0, 0}, {0, 5}, {7, 0}}];
Reduce[Subscript[∀, {x, y}, {x, y}∈Subscript[ℛ, 1]]{x, y}∈Subscript[ℛ, 2], {a, b}, Reals]

Out[1]= (1 ≤ a < (1/5) (28 - Sqrt[74]) && 1 ≤ b ≤ -(Sqrt[74]/7) - (5/7) (-7 + a)) || (a == (1/5) (28 - Sqrt[74]) && b == 1)
```

---

Use $x\in \mathcal{R}$ to specify that $x$ is a vector in $\mathbb{R}^2$ :

```wl
In[1]:= ℛ = RegionIntersection[Circle[], Line[{{-2, -1}, {1, 2}}]];

In[2]:= Reduce[x∈ℛ, x]

Out[2]= (Indexed[x, {1}] == -1 && Indexed[x, {2}] == 0) || (Indexed[x, {1}] == 0 && Indexed[x, {2}] == 1)
```

In this case $x$ is a vector in $\mathbb{R}^3$ :

```wl
In[3]:= ℛ = Sphere[];

In[4]:= Reduce[x.{1, 2, 3} == 0 && x∈ℛ, x]

Out[4]= ((Indexed[x, {1}] == -Sqrt[(13/14)] && Indexed[x, {2}] == Sqrt[(2/91)]) || (-Sqrt[(13/14)] < Indexed[x, {1}] < Sqrt[(13/14)] && (Indexed[x, {2}] == -(2 Indexed[x, {1}]/13) - (3/13) Sqrt[13 - 14 Indexed[x, {1}]^2] || Indexed[x, {2}] == -(2 Indexed[x, {1}]/13) + (3/13) Sqrt[13 - 14 Indexed[x, {1}]^2])) || (Indexed[x, {1}] == Sqrt[(13/14)] && Indexed[x, {2}] == -Sqrt[(2/91)])) && Indexed[x, {3}] == (1/3) (-Indexed[x, {1}] - 2 Indexed[x, {2}])
```

### Options (6)

#### Backsubstitution (1)

Since ``y`` appears after ``x`` in the variable list, ``Reduce`` may use ``x`` to express the solution for ``y`` :

```wl
In[1]:= Reduce[x ^ 2 + y ^ 2 == 1 && x ^ 2 - y == 2, {x, y}]

Out[1]= (x == -Sqrt[(3/2) - (I Sqrt[3]/2)] || x == Sqrt[(3/2) - (I Sqrt[3]/2)] || x == -Sqrt[(3/2) + (I Sqrt[3]/2)] || x == Sqrt[(3/2) + (I Sqrt[3]/2)]) && y == -2 + x^2
```

With ``Backsubstitution -> True``, ``Reduce`` gives explicit numeric values for ``y`` :

```wl
In[2]:= Reduce[x ^ 2 + y ^ 2 == 1 && x ^ 2 - y == 2, {x, y}, Backsubstitution -> True]

Out[2]= (x == -Sqrt[(1/2) (3 - I Sqrt[3])] && y == -(1/2) I (-I + Sqrt[3])) || (x == Sqrt[(1/2) (3 - I Sqrt[3])] && y == -(1/2) I (-I + Sqrt[3])) || (x == -Sqrt[(1/2) (3 + I Sqrt[3])] && y == (1/2) I (I + Sqrt[3])) || (x == Sqrt[(1/2) (3 + I Sqrt[3])] && y == (1/2) I (I + Sqrt[3]))
```

#### Cubics (1)

By default, ``Reduce`` does not use general formulas for solving cubics in radicals:

```wl
In[1]:= Reduce[x ^ 3 + 2 x ^ 2 + 3 x + 4 == 0, x]

Out[1]= x == Root[4 + 3*#1 + 2*#1^2 + #1^3 & , 1, 0] || x == Root[4 + 3*#1 + 2*#1^2 + #1^3 & , 2, 0] || x == Root[4 + 3*#1 + 2*#1^2 + #1^3 & , 3, 0]
```

With ``Cubics -> True``, ``Reduce`` solves all cubics in terms of radicals:

```wl
In[2]:= Reduce[x ^ 3 + 2 x ^ 2 + 3 x + 4 == 0, x, Cubics -> True]

Out[2]= x == (1/3) (-2 - (5^2 / 3/(-7 + 3 Sqrt[6])^1 / 3) + (5 (-7 + 3 Sqrt[6]))^1 / 3) || x == -(2/3) + (5^2 / 3 (1 + I Sqrt[3])/6 (-7 + 3 Sqrt[6])^1 / 3) - (1/6) (1 - I Sqrt[3]) (5 (-7 + 3 Sqrt[6]))^1 / 3 || x == -(2/3) + (5^2 / 3 (1 - I Sqrt[3])/6 (-7 + 3 Sqrt[6])^1 / 3) - (1/6) (1 + I Sqrt[3]) (5 (-7 + 3 Sqrt[6]))^1 / 3
```

#### GeneratedParameters (1)

``Reduce`` may introduce new parameters to represent the solution:

```wl
In[1]:= Reduce[Cos[x] == 1 / 2, x]

Out[1]= C[1]∈ℤ && (x == -(π/3) + 2 π C[1] || x == (π/3) + 2 π C[1])
```

Use ``GeneratedParameters`` to control how the parameters are generated:

```wl
In[2]:= Reduce[Cos[x] == 1 / 2, x, GeneratedParameters -> (Subscript[k, #]&)]

Out[2]= Subscript[k, 1]∈ℤ && (x == -(π/3) + 2 π Subscript[k, 1] || x == (π/3) + 2 π Subscript[k, 1])
```

#### Modulus (1)

Solve equations over the integers modulo 9:

```wl
In[1]:= Reduce[x ^ 2 + 3y ^ 2 == 4 && 3x ^ 3 - 4y ^ 2 + x y == 1, {x, y}, Modulus -> 9]

Out[1]= (x == 8 && y == 1) || (x == 8 && y == 4) || (x == 8 && y == 7)
```

#### Quartics (1)

By default, ``Reduce`` does not use general formulas for solving quartics in radicals:

```wl
In[1]:= Reduce[x ^ 4 + 2 x ^ 2 + 3 x + 4 == 0, x]

Out[1]= x == Root[4 + 3*#1 + 2*#1^2 + #1^4 & , 1, 0] || x == Root[4 + 3*#1 + 2*#1^2 + #1^4 & , 2, 0] || x == Root[4 + 3*#1 + 2*#1^2 + #1^4 & , 3, 0] || x == Root[4 + 3*#1 + 2*#1^2 + #1^4 & , 4, 0]
```

With ``Quartics -> True``, ``Reduce`` solves all quartics in terms of radicals:

```wl
In[2]:= Reduce[x ^ 4 + 2 x ^ 2 + 3 x + 4 == 0, x, Quartics -> True]

Out[2]= x == (1/2) Sqrt[-(4/3) + (52/3 ((1/2) (-317 + 9 I Sqrt[5703]))^1 / 3) + (1/3) ((1/2) (-317 + 9 I Sqrt[5703]))^1 / 3] - (1/2) √(-(8/3) - (52/3 ((1/2) (-317 + 9 I Sqrt[5703]))^1 / 3) - (1/3) ((1/2) (-317 + 9 I Sqrt[5703]))^1 / 3 - (6/Sqrt[-(4/3) + (5 ...  9 I Sqrt[5703]))^1 / 3] + (1/2) √(-(8/3) - (52/3 ((1/2) (-317 + 9 I Sqrt[5703]))^1 / 3) - (1/3) ((1/2) (-317 + 9 I Sqrt[5703]))^1 / 3 + (6/Sqrt[-(4/3) + (52/3 ((1/2) (-317 + 9 I Sqrt[5703]))^1 / 3) + (1/3) ((1/2) (-317 + 9 I Sqrt[5703]))^1 / 3]))
```

#### WorkingPrecision (1)

Finding the solution with exact computations takes a long time:

```wl
In[1]:= TimeConstrained[Reduce[x^77 + 3 x - 11 == E && y^5 - x^2 y + 21 == π && x^2 y^3 + z^4 == E^π, {x, y, z}, Reals], 60]

Out[1]= $Aborted
```

With ``WorkingPrecision -> 100``, ``Reduce`` finds a solution fast, but it may be incorrect:

```wl
In[2]:= Timing[Reduce[x^77 + 3 x - 11 == E && y^5 - x^2 y + 21 == π && x^2 y^3 + z^4 == E^π, {x, y, z}, Reals, WorkingPrecision -> 100]]

Out[2]= {0.015625, x == Root[-11 - E + 3*#1 + #1^77 & , 1] && y == Root[21 - π - x^2 #1 + #1^5&, 1] && (z == -(E^π - x^2 y^3)^1 / 4 || z == (E^π - x^2 y^3)^1 / 4)}
```

### Applications (9)

#### Basic Applications (1)

Prove geometric inequalities for $a$, $b$, and $c$ sides of a triangle:

```wl
In[1]:=
triangle = a > 0 && b > 0 && c > 0 && a + b > c && a + c > b && b + c > a;
acute = a ^ 2 + b ^ 2 > c ^ 2 && a ^ 2 + c ^ 2 > b ^ 2 && b ^ 2 + c ^ 2 > a ^ 2;
s = 1 / 2(a + b + c);
F = Sqrt[s(s - a)(s - b)(s - c)];
```

Prove an inequality for triangles:

```wl
In[2]:= Reduce[ForAll[{a, b, c}, triangle, a b c(a ^ 2 / b ^ 2 + b ^ 2 / c ^ 2 + c ^ 2 / a ^ 2) ≥ a ^ 3 + b ^ 3 + c ^ 3 + a b(b - a) + a c(a - c) + b c(c - b)]]

Out[2]= True
```

Prove an inequality for acute triangles:

```wl
In[3]:= Reduce[ForAll[{a, b, c}, triangle && acute, 27(b ^ 2 + c ^ 2 - a ^ 2) ^ 2(a ^ 2 + c ^ 2 - b ^ 2) ^ 2(a ^ 2 + b ^ 2 - c ^ 2) ^ 2 ≤ (4F) ^ 6]]

Out[3]= True
```

#### Polynomial Root Problems (1)

Find conditions for a quartic to have all roots equal:

```wl
In[1]:= f[x_] := x ^ 4 + a x ^ 3 + b x ^ 2 + c x + d
```

Using quantifier elimination:

```wl
In[2]:= Reduce[Exists[x, f[x] == 0, ForAll[y, f[y] == 0, x == y]], {a, b, c, d}]

Out[2]= b == (3 a^2/8) && c == (a^3/16) && d == (a^4/256)
```

Using ``Subresultants`` :

```wl
In[3]:= Reduce[Thread[Drop[Subresultants[f[x], D[f[x], x], x], -1] == 0], {a, b, c, d}, Backsubstitution -> True]

Out[3]= b == (3 a^2/8) && c == (a^3/16) && d == (a^4/256)
```

#### Parametrization Problems (1)

Plot a space curve given by an implicit description:

```wl
In[1]:= curve = x ^ 2 + y ^ 2 + z ^ 2 == 1 && x ^ 3 + x y ^ 2 == z ^ 2;

In[2]:= red = Reduce[curve, {x, y, z}, Reals]

Out[2]= 0 ≤ x ≤ Root[-1 + #1^2 + #1^3 & , 1, 0] && ((y == -Sqrt[(1 - x^2 - x^3/1 + x)] && (z == -Sqrt[x^3 + x y^2] || z == Sqrt[x^3 + x y^2])) || (y == Sqrt[(1 - x^2 - x^3/1 + x)] && (z == -Sqrt[x^3 + x y^2] || z == Sqrt[x^3 + x y^2])))

In[3]:= bound = N[First[red]]

Out[3]= 0. ≤ x ≤ 0.754878

In[4]:= pieces = {x, y, z} //. {ToRules[Rest[red]]}

Out[4]= {{x, -Sqrt[(1 - x^2 - x^3/1 + x)], -Sqrt[x^3 + (x (1 - x^2 - x^3)/1 + x)]}, {x, -Sqrt[(1 - x^2 - x^3/1 + x)], Sqrt[x^3 + (x (1 - x^2 - x^3)/1 + x)]}, {x, Sqrt[(1 - x^2 - x^3/1 + x)], -Sqrt[x^3 + (x (1 - x^2 - x^3)/1 + x)]}, {x, Sqrt[(1 - x^2 - x^3/1 + x)], Sqrt[x^3 + (x (1 - x^2 - x^3)/1 + x)]}}

In[5]:= ParametricPlot3D[pieces, {x, First[bound], Last[bound]}]

Out[5]= [image]
```

Plot the projection of the space curve on the $x$ - $y$ plane:

```wl
In[6]:= proj = Reduce[Exists[z, curve], {x, y}, Reals]

Out[6]= 0 ≤ x ≤ Root[-1 + #1^2 + #1^3 & , 1, 0] && (y == -Sqrt[(1 - x^2 - x^3/1 + x)] || y == Sqrt[(1 - x^2 - x^3/1 + x)])

In[7]:= bounds = N[First[proj]]

Out[7]= 0. ≤ x ≤ 0.754878

In[8]:= pieces2d = {x, y} //. {ToRules[Rest[proj]]}

Out[8]= {{x, -Sqrt[(1 - x^2 - x^3/1 + x)]}, {x, Sqrt[(1 - x^2 - x^3/1 + x)]}}

In[9]:= ParametricPlot[pieces2d, {x, First[bounds], Last[bounds]}]

Out[9]= [image]
```

#### Integer Problems (3)

Find a Pythagorean triple:

```wl
In[1]:= Reduce[x ^ 2 + y ^ 2 == 5 ^ 2 && y > x > 0, {x, y}, Integers]

Out[1]= x == 3 && y == 4
```

Find a sequence of Pythagorean triples:

```wl
In[2]:= Table[Reduce[x ^ 2 + y ^ 2 == z ^ 2 && y > x > 0, {x, y}, Integers], {z, 30}]

Out[2]= {False, False, False, False, x == 3 && y == 4, False, False, False, False, x == 6 && y == 8, False, False, x == 5 && y == 12, False, x == 9 && y == 12, False, x == 8 && y == 15, False, False, x == 12 && y == 16, False, False, False, False, (x == 7 && y == 24) || (x == 15 && y == 20), x == 10 && y == 24, False, False, x == 20 && y == 21, x == 18 && y == 24}
```

---

Find how to pay \$2.27 postage with 10-, 23- and 37-cent stamps:

```wl
In[1]:= Reduce[a 10 + b 23 + c 37 == 227  && a >= 0 && b >= 0 && c >= 0, {a, b, c}, Integers]

Out[1]= (a == 1 && b == 3 && c == 4) || (a == 2 && b == 9 && c == 0) || (a == 7 && b == 2 && c == 3) || (a == 13 && b == 1 && c == 2) || (a == 19 && b == 0 && c == 1)
```

The same task can be accomplished with ``IntegerPartitions`` :

```wl
In[2]:= IntegerPartitions[227, All, {37, 23, 10}]

Out[2]= {{10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 37}, {10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 23, 37, 37}, {10, 10, 10, 10, 10, 10, 10, 23, 23, 37, 37, 37}, {10, 10, 23, 23, 23, 23, 23, 23, 23, 23, 23}, {10, 23, 23, 23, 37, 37, 37, 37}}
```

---

Show that there are only five regular polyhedrons:

```wl
In[1]:= Show[PolyhedronData[#], ImageSize -> Tiny]& /@ PolyhedronData["Platonic"]

Out[1]= {[image], [image], [image], [image], [image]}
```

Each face for a regular $n$-gon contributes $n$ edges, but they are shared, so they are counted twice:

```wl
In[2]:= e = (1/2)(n f);
```

Each face for a regular $n$-gon contributes $n$ vertices, but they are shared, so they are counted $m$ times:

```wl
In[3]:= v = (1/m)(n f);
```

Using Euler's formula $f-e+v=2$, find the number of faces:

```wl
In[4]:= Reduce[f - e + v == 2 && m ≥ 3 && n ≥ 3, f, Reals]

Out[4]= ((3 ≤ n ≤ 6 && (3 ≤ m < (2 n/-2 + n) || m > (2 n/-2 + n))) || (n > 6 && m ≥ 3)) && f == -(4 m/-2 m - 2 n + m n)
```

For this last formula to be well defined, the denominator needs to be positive and an integer:

```wl
In[5]:= Reduce[2 m + 2 n - m n > 0 && m ≥ 3 && n ≥ 3, {m, n}, Integers]

Out[5]= (m == 3 && n == 3) || (m == 3 && n == 4) || (m == 3 && n == 5) || (m == 4 && n == 3) || (m == 5 && n == 3)
```

Hence the following five cases:

```wl
In[6]:= {f, e, v} /. f -> -(4 m/-2 m - 2 n + m n) /. FindInstance[2 m + 2 n - m n > 0 && m ≥ 3 && n ≥ 3, {m, n}, Integers, 5]//Sort

Out[6]= {{4, 6, 4}, {6, 12, 8}, {8, 12, 6}, {12, 30, 20}, {20, 30, 12}}
```

Compare this to the actual counts in ``PolyhedronData``:

```wl
In[7]:= Table[{PolyhedronData[p, "FaceCount"], PolyhedronData[p, "EdgeCount"], PolyhedronData[p, "VertexCount"]}, {p, PolyhedronData["Platonic"]}]//Sort

Out[7]= {{4, 6, 4}, {6, 12, 8}, {8, 12, 6}, {12, 30, 20}, {20, 30, 12}}
```

#### Geometry Problems (3)

The region ``ℛ`` is a subset of ``\[ScriptCapitalS]`` if $\forall _{\{x,y,\ldots \}}\{x,y,\ldots \}\in \mathcal{R}\Rightarrow \{x,y,\ldots \}\in \mathcal{S}$ is true. Show that ``Disk[{0, 0}, {2, 1}]`` is a subset of ``Rectangle[{-2, -1}, {2, 1}]``:

```wl
In[1]:=
ℛ = Disk[{0, 0}, {2, 1}];
\[ScriptCapitalS] = Rectangle[{-2, -1}, {2, 1}];

In[2]:= Reduce[Subscript[∀, {x, y}]{x, y}∈ℛ\[Implies]{x, y}∈\[ScriptCapitalS], Reals]

Out[2]= True
```

Plot it:

```wl
In[3]:= Graphics[{{LightRed, EdgeForm[Gray], \[ScriptCapitalS]}, {LightBlue, EdgeForm[Gray], ℛ}}]

Out[3]= [image]
```

---

Show that ``Cylinder[]⊆Ball[{0, 0, 0}, 2]``:

```wl
In[1]:=
ℛ = Cylinder[];
\[ScriptCapitalS] = Ball[{0, 0, 0}, 2];

In[2]:= Reduce[Subscript[∀, {x, y, z}]{x, y, z}∈ℛ\[Implies]{x, y, z}∈\[ScriptCapitalS], Reals]

Out[2]= True
```

Plot it:

```wl
In[3]:= Graphics3D[{{Opacity[0.3], \[ScriptCapitalS]}, {LightBlue, EdgeForm[Gray], ℛ}}]

Out[3]= [image]
```

---

For a finite point set $\left\{p_1,\ldots ,p_n\right\}$, the Voronoi cell for a point $p_i$ can be defined by $\left\{p\left|\land _{1\leq j\leq n\land j\neq i}d\left(p_i,p\right)\leq d\left(p_j,p\right)\right.\right\}$, which corresponds to all points closer to $p_i$ than any other point $p_j$ for $j\neq i$. Find a simple formula for a Voronoi cell, using ``Reduce``:

```wl
In[1]:= pts = {{0, 0}, {1, 0}, {1, 1}, {2, 0}};
```

The Voronoi cell associated with ``pts[[1]]`` is given by:

```wl
In[2]:= voronoi1 = And@@Table[EuclideanDistance[pts[[1]], {x, y}] <= EuclideanDistance[pts[[j]], {x, y}], {j, 2, 4}]

Out[2]= Sqrt[Abs[x]^2 + Abs[y]^2] ≤ Sqrt[Abs[1 - x]^2 + Abs[y]^2] && Sqrt[Abs[x]^2 + Abs[y]^2] ≤ Sqrt[Abs[1 - x]^2 + Abs[1 - y]^2] && Sqrt[Abs[x]^2 + Abs[y]^2] ≤ Sqrt[Abs[2 - x]^2 + Abs[y]^2]
```

The resulting cell is given by an intersection of half-spaces:

```wl
In[3]:= Reduce[voronoi1, {x, y}, Reals]

Out[3]= x ≤ (1/2) && y ≤ 1 - x

In[4]:= RegionPlot[%, {x, -1, 1}, {y, -1, 1}]

Out[4]= [image]
```

Find simple formulas for all Voronoi cells:

```wl
In[5]:= vcells = And@@@Table[EuclideanDistance[pts[[i]], {x, y}] <= EuclideanDistance[pts[[j]], {x, y}], {i, 4}, {j, Complement[Range[4], {i}]}];

In[6]:= vscells = Reduce[#, {x, y}, Reals]& /@ vcells

Out[6]= {x ≤ (1/2) && y ≤ 1 - x, (1/2) ≤ x ≤ (3/2) && y ≤ (1/2), (x ≤ (1/2) && y ≥ 1 - x) || ((1/2) < x ≤ (3/2) && y ≥ (1/2)) || (x > (3/2) && y ≥ -1 + x), x ≥ (3/2) && y ≤ -1 + x}
```

Plot them:

```wl
In[7]:= RegionPlot[Evaluate@Table[vscells[[i]], {i, 4}], {x, -1, 3}, {y, -1, 3}, PlotLegends -> SwatchLegend[Map[Style[#, Small]&, vscells]], Epilog -> Point[pts]]

Out[7]= [image]
```

### Properties & Relations (10)

The result of reduction is equivalent to the original system:

```wl
In[1]:= syst = x ^ 2 + y ^ 2 + z ^ 2 ≤ 1 && 2x y > z ^ 2;

In[2]:= red = Reduce[syst, {x, y, z}, Reals]

Out[2]= (-1 < x < 0 && ((y == -Sqrt[1 - x^2] && z == 0) || (-Sqrt[1 - x^2] < y < -1 - x && -Sqrt[1 - x^2 - y^2] ≤ z ≤ Sqrt[1 - x^2 - y^2]) || (y == -1 - x && -Sqrt[1 - x^2 - y^2] < z < Sqrt[1 - x^2 - y^2]) || (-1 - x < y < 0 && -Sqrt[2] Sqrt[x y] < z < Sqr ... & ((0 < y < 1 - x && -Sqrt[2] Sqrt[x y] < z < Sqrt[2] Sqrt[x y]) || (y == 1 - x && -Sqrt[1 - x^2 - y^2] < z < Sqrt[1 - x^2 - y^2]) || (1 - x < y < Sqrt[1 - x^2] && -Sqrt[1 - x^2 - y^2] ≤ z ≤ Sqrt[1 - x^2 - y^2]) || (y == Sqrt[1 - x^2] && z == 0)))

In[3]:= SeedRandom[0];Table[{syst, red} /. {x -> RandomReal[{-1, 1}], y -> RandomReal[{-1, 1}], z -> RandomReal[{-1, 1}]}, {10}]

Out[3]= {{True, True}, {False, False}, {False, False}, {False, False}, {True, True}, {False, False}, {False, False}, {False, False}, {True, True}, {False, False}}
```

---

``ToRules`` and ``ReplaceRepeated`` can be used to backsubstitute finite solution sets:

```wl
In[1]:= Reduce[x ^ 2 + y == 1 && x ^ 2 - y ^ 2 == 2, {x, y}]

Out[1]= (x == -Sqrt[(3/2) - (I Sqrt[3]/2)] || x == Sqrt[(3/2) - (I Sqrt[3]/2)] || x == -Sqrt[(3/2) + (I Sqrt[3]/2)] || x == Sqrt[(3/2) + (I Sqrt[3]/2)]) && y == 1 - x^2

In[2]:= x ^ 2 + y == 1 && x ^ 2 - y ^ 2 == 2 //. {ToRules[%]}

Out[2]= {(3/2) - (I Sqrt[3]/2) - (-(1/2) + (I Sqrt[3]/2))^2 == 2, (3/2) - (I Sqrt[3]/2) - (-(1/2) + (I Sqrt[3]/2))^2 == 2, (3/2) + (I Sqrt[3]/2) - (-(1/2) - (I Sqrt[3]/2))^2 == 2, (3/2) + (I Sqrt[3]/2) - (-(1/2) - (I Sqrt[3]/2))^2 == 2}
```

Use ``Expand`` to simplify a result of substitution involving simple radicals:

```wl
In[3]:= Expand[%]

Out[3]= {True, True, True, True}
```

---

To simplify expressions involving algebraic numbers,, use ``RootReduce`` :

```wl
In[1]:= Reduce[x ^ 2 + y ^ 2 == 1 && x ^ 3 - 2y ^ 3 == 3, {x, y}]

Out[1]= (x == Root[5 + 12*#1^2 - 6*#1^3 - 12*#1^4 + 5*#1^6 & , 1, 0] || x == Root[5 + 12*#1^2 - 6*#1^3 - 12*#1^4 + 5*#1^6 & , 2, 0] || x == Root[5 + 12*#1^2 - 6*#1^3 - 12*#1^4 + 5*#1^6 & , 3, 0] || x == Root[5 + 12*#1^2 - 6*#1^3 - 12*#1^4 + 5*#1^6 & , 4, 0] || x == Root[5 + 12*#1^2 - 6*#1^3 - 12*#1^4 + 5*#1^6 & , 5, 0] || x == Root[5 + 12*#1^2 - 6*#1^3 - 12*#1^4 + 5*#1^6 & , 6, 0]) && y == (1/16) (-9 + 5 x + 27 x^2 + 7 x^3 - 15 x^4 - 5 x^5)

In[2]:= RootReduce[x ^ 2 + y ^ 2 == 1 && x ^ 3 - 2y ^ 3 == 3 //. {ToRules[%]}]

Out[2]= {True, True, True, True, True, True}
```

---

To find solution instances, use ``FindInstance`` :

```wl
In[1]:= FindInstance[x ^ 2 + y ^ 2 + z ^ 2 ≤ 1 && 2x y > z ^ 2, {x, y, z}, Reals]

Out[1]= {{x -> -(1/2), y -> -(1/2), z -> 0}}

In[2]:= FindInstance[x ^ 2 - 3y ^ 2 == 1 && 0 < x < 10 ^ 10, {x, y}, Integers, 3]

Out[2]= {{x -> 708158977, y -> 408855776}, {x -> 2642885282, y -> -1525870529}, {x -> 978122, y -> 564719}}
```

---

``Solve`` represents solutions of complex equations in terms of replacement rules:

```wl
In[1]:= Solve[x ^ 2 + y ^ 2 == 1 && 2x + 3y == 1, {x, y}]

Out[1]= {{x -> (2/13) (1 - 3 Sqrt[3]), y -> (1/13) (3 + 4 Sqrt[3])}, {x -> (2/13) (1 + 3 Sqrt[3]), y -> (1/13) (3 - 4 Sqrt[3])}}
```

---

``Solve`` omits solutions involving equations on parameters:

```wl
In[1]:= Reduce[a x ^ 2 + x == 1, x]

Out[1]= (a == 0 && x == 1) || (a ≠ 0 && (x == (-1 - Sqrt[1 + 4 a]/2 a) || x == (-1 + Sqrt[1 + 4 a]/2 a)))

In[2]:= Solve[a x ^ 2 + x == 1, x]

Out[2]= {{x -> (-1 - Sqrt[1 + 4 a]/2 a)}, {x -> (-1 + Sqrt[1 + 4 a]/2 a)}}
```

---

For transcendental equations, ``Solve`` may not give all solutions:

```wl
In[1]:= Solve[x + E ^ x == 1 / 2, x]
```

Solve::ifun: Inverse functions are being used by Solve, so some solutions may not be found; use Reduce for complete solution information.

```wl
Out[1]= {{x -> (1/2) (1 - 2 ProductLog[Sqrt[E]])}}

In[2]:= Reduce[x + E ^ x == 1 / 2, x]

Out[2]= C[1]∈ℤ && x == (1/2) - ProductLog[C[1], Sqrt[E]]
```

Using inverse functions allows ``Solve`` to find some solutions fast:

```wl
In[3]:= Solve[x ^ n == 1, x]//Timing
```

Solve::ifun: Inverse functions are being used by Solve, so some solutions may not be found; use Reduce for complete solution information.

```wl
Out[3]= {0., {{x -> 1}}}
```

Finding the complete solution may take much longer, and the solution may be large:

```wl
In[4]:= (red = Reduce[x ^ n == 1, x])//LeafCount//Timing

Out[4]= {4.48438, 611}
```

This finds the values of $n$ for which ``x == 2`` is a solution:

```wl
In[5]:= Reduce[red /. x -> 2, n]

Out[5]= (C[1]∈ℤ && n == 0) || (C[1]∈ℤ && C[1] ≥ 1 && n == (2 I π C[1]/Log[2])) || (C[1]∈ℤ && C[1] ≤ -1 && n == (2 I π C[1]/Log[2]))

In[6]:= Simplify[x ^ n /. {x -> 2, n -> 2I Pi C[1] / Log[2]}, Element[C[1], Integers]]

Out[6]= 1
```

---

``SolveAlways`` gives the values of parameters for which complex equations are always true:

```wl
In[1]:= SolveAlways[(a  - 2b + 1)x ^ 2 + (a - b ^ 2 - c)x  == a ^ 2 - b + 3c - 1, x]

Out[1]= {{a -> -2 - Sqrt[13], b -> (1/2) (-1 - Sqrt[13]), c -> (1/2) (-11 - 3 Sqrt[13])}, {a -> -2 + Sqrt[13], b -> (1/2) (-1 + Sqrt[13]), c -> -(11/2) + (3 Sqrt[13]/2)}}
```

This solves the same problem using ``Reduce`` :

```wl
In[2]:= Reduce[ForAll[x, (a  - 2b + 1)x ^ 2 + (a - b ^ 2 - c)x  == a ^ 2 - b + 3c - 1], {a, b, c}]

Out[2]= (a == -2 - Sqrt[13] || a == -2 + Sqrt[13]) && b == (1 + a/2) && c == (1/2) (-5 + 3 a)
```

---

``Resolve`` eliminates quantifiers, possibly without solving the resulting quantifier‐free system:

```wl
In[1]:= Resolve[Exists[x, x ^ 2 + y ^ 2 + z ^ 2 == 1 && x y > z ^ 3], Reals]

Out[1]= (z^3 < 0 && y^2 + z^2 ≤ 1) || (y^2 + z^2 ≤ 1 && -y^2 + y^4 + y^2 z^2 + z^6 < 0)

In[2]:= Resolve[ForAll[{x, y}, a x ^ 2 + b x + c == 0 && a y ^ 2 + b y + c == 0, x == y]]

Out[2]= (a == 0 && b ≠ 0) || (a == 0 && c ≠ 0) || (a ≠ 0 && b^2 - 4 a c == 0)
```

---

``Eliminate`` eliminates variables from systems of complex equations:

```wl
In[1]:= Eliminate[x ^ 2 + y ^ 2 + z ^ 2 == 1 && x y == z ^ 3, x]

Out[1]= y^4 + y^2 (-1 + z^2) == -z^6
```

This solves the same problem using ``Resolve`` :

```wl
In[2]:= Resolve[Exists[x, x ^ 2 + y ^ 2 + z ^ 2 == 1 && x y == z ^ 3]]

Out[2]= (y == 0 && z == 0) || (y ≠ 0 && -y^2 + y^4 + y^2 z^2 + z^6 == 0)
```

``Reduce`` additionally solves the resulting equations:

```wl
In[3]:= Reduce[Exists[x, x ^ 2 + y ^ 2 + z ^ 2 == 1 && x y == z ^ 3], {y, z}]

Out[3]= (y == 0 && z == 0) || ((z == -Sqrt[Root[-y^2 + y^4 + y^2 #1 + #1^3&, 1]] || z == Sqrt[Root[-y^2 + y^4 + y^2 #1 + #1^3&, 1]] || z == -Sqrt[Root[-y^2 + y^4 + y^2 #1 + #1^3&, 2]] || z == Sqrt[Root[-y^2 + y^4 + y^2 #1 + #1^3&, 2]] || z == -Sqrt[Root[-y^2 + y^4 + y^2 #1 + #1^3&, 3]] || z == Sqrt[Root[-y^2 + y^4 + y^2 #1 + #1^3&, 3]]) && y ≠ 0)
```

### Possible Issues (3)

Because $x$ appears in an inequality, it is assumed to be real; $y$ is allowed to be complex:

```wl
In[1]:= Reduce[x ^ 2 < 1 && y - Sqrt[x] == 0, {x, y}]

Out[1]= -1 < x < 1 && y == Sqrt[x]
```

When domain ``Reals`` is specified, $x$, $y$, and ``Sqrt[x]`` are required to be real:

```wl
In[2]:= Reduce[x ^ 2 < 1 && y - Sqrt[x] == 0, {x, y}, Reals]

Out[2]= 0 ≤ x < 1 && y == Sqrt[x]
```

This allows complex values of $x$ for which both sides of the inequality are real:

```wl
In[3]:= Reduce[x ^ 2 < 1 && y - Sqrt[x] == 0, {x, y}, Complexes]

Out[3]= ((-1 < Re[x] < 0 && Im[x] == 0) || Re[x] == 0 || (0 < Re[x] < 1 && Im[x] == 0)) && y == Sqrt[x]
```

---

``Reduce`` does not solve equations that depend on branch cuts of Wolfram Language functions:

```wl
In[1]:= Reduce[Sqrt[x + 2y] - x ^ 2 + y - 1 == 0, {x, y}]
```

Reduce::useq: The answer found by Reduce contains unsolved equation(s) {0==-1+Sqrt[3+x+2 x^2]-Sqrt[4+x+2 Power[<<2>>]-2 Power[<<2>>]],0==-1-Sqrt[3+x+2 Power[<<2>>]]-Sqrt[4+x+2 Power[<<2>>]+2 Power[<<2>>]]}. A likely reason for this is that the solution set depends on branch cuts of Wolfram Language functions.

```wl
Out[1]= (0 == -1 + Sqrt[3 + x + 2 x^2] - Sqrt[4 + x + 2 x^2 - 2 Sqrt[3 + x + 2 x^2]] && y == 2 + x^2 - Sqrt[3 + x + 2 x^2]) || (0 == -1 - Sqrt[3 + x + 2 x^2] - Sqrt[4 + x + 2 x^2 + 2 Sqrt[3 + x + 2 x^2]] && y == 2 + x^2 + Sqrt[3 + x + 2 x^2])
```

Plot the region where the first condition is nonzero:

```wl
In[2]:= Block[{x = u + I v}, RegionPlot[Abs[-1 + Sqrt[3 + x + 2 x^2] - Sqrt[4 + x + 2 x^2 - 2 Sqrt[3 + x + 2 x^2]]] > 0.001, {u, -10, 10}, {v, -10, 10}]]

Out[2]= [image]
```

---

Removable singularities of input equations are generally not considered valid solutions:

```wl
In[1]:= Reduce[(x ^ 2 - 2Sqrt[2]x + 2) / (x - Sqrt[2]) == 0, x]

Out[1]= False

In[2]:= Limit[(x ^ 2 - 2Sqrt[2]x + 2) / (x - Sqrt[2]), x -> Sqrt[2]]

Out[2]= 0
```

However, solutions may include removable singularities that are cancelled by automatic simplification:

```wl
In[3]:= Reduce[x ^ 2 / x == 0, x]

Out[3]= x == 0
```

The removable singularity at $x=0$ is cancelled by evaluation:

```wl
In[4]:= x ^ 2 / x == 0

Out[4]= x == 0
```

Here the removable singularity at $x=1$ is cancelled by ``Together``, which is used to preprocess the equation:

```wl
In[5]:= Reduce[(x ^ 2 - 2x + 1) / (x - 1) == 0, x]

Out[5]= x == 1

In[6]:= Together[(x ^ 2 - 2x + 1) / (x - 1) == 0]

Out[6]= -1 + x == 0
```

### Neat Examples (1)

Find the vertical asymptotes of $\frac{1}{y^2-2}$ by directly using the definition of limit:

```wl
In[1]:=
Reduce[ForAll[M, M > 0, Exists[δ, δ > 0, 
    ForAll[y, Element[x | y, Reals] && 0 < Abs[y - x] < δ, 
     Abs[1 / (y ^ 2 - 2)] > M]]], x]

Out[1]= x == -Sqrt[2] || x == Sqrt[2]
```

## See Also

* [`Solve`](https://reference.wolfram.com/language/ref/Solve.en.md)
* [`FindInstance`](https://reference.wolfram.com/language/ref/FindInstance.en.md)
* [`AsymptoticSolve`](https://reference.wolfram.com/language/ref/AsymptoticSolve.en.md)
* [`SolveValues`](https://reference.wolfram.com/language/ref/SolveValues.en.md)
* [`Eliminate`](https://reference.wolfram.com/language/ref/Eliminate.en.md)
* [`Resolve`](https://reference.wolfram.com/language/ref/Resolve.en.md)
* [`LogicalExpand`](https://reference.wolfram.com/language/ref/LogicalExpand.en.md)
* [`ToRules`](https://reference.wolfram.com/language/ref/ToRules.en.md)
* [`GroebnerBasis`](https://reference.wolfram.com/language/ref/GroebnerBasis.en.md)
* [`CylindricalDecomposition`](https://reference.wolfram.com/language/ref/CylindricalDecomposition.en.md)
* [`SemialgebraicComponentInstances`](https://reference.wolfram.com/language/ref/SemialgebraicComponentInstances.en.md)
* [`RowReduce`](https://reference.wolfram.com/language/ref/RowReduce.en.md)
* [`ChineseRemainder`](https://reference.wolfram.com/language/ref/ChineseRemainder.en.md)
* [`HermiteDecomposition`](https://reference.wolfram.com/language/ref/HermiteDecomposition.en.md)
* [`Simplify`](https://reference.wolfram.com/language/ref/Simplify.en.md)
* [`SolveAlways`](https://reference.wolfram.com/language/ref/SolveAlways.en.md)
* [`RegionPlot`](https://reference.wolfram.com/language/ref/RegionPlot.en.md)
* [`RegionPlot3D`](https://reference.wolfram.com/language/ref/RegionPlot3D.en.md)
* [`GeometricScene`](https://reference.wolfram.com/language/ref/GeometricScene.en.md)

## Tech Notes

* [Solving Equations](https://reference.wolfram.com/language/tutorial/ManipulatingEquationsAndInequalities.en.md#30806)
* [Inequalities](https://reference.wolfram.com/language/tutorial/ManipulatingEquationsAndInequalities.en.md#9389)
* [Generic and Non‐Generic Solutions](https://reference.wolfram.com/language/tutorial/ManipulatingEquationsAndInequalities.en.md#1205)
* [Equations and Inequalities over Domains](https://reference.wolfram.com/language/tutorial/ManipulatingEquationsAndInequalities.en.md#18990)
* [Solving Logical Combinations of Equations](https://reference.wolfram.com/language/tutorial/ManipulatingEquationsAndInequalities.en.md#243533986)
* [The Representation of Solution Sets](https://reference.wolfram.com/language/tutorial/ManipulatingEquationsAndInequalities.en.md#25167)
* [Complex Polynomial Systems](https://reference.wolfram.com/language/tutorial/ComplexPolynomialSystems.en.md)
* [Real Polynomial Systems](https://reference.wolfram.com/language/tutorial/RealPolynomialSystems.en.md)
* [Diophantine Polynomial Systems](https://reference.wolfram.com/language/tutorial/DiophantineReduce.en.md)
* [Implementation notes: Algebra and Calculus](https://reference.wolfram.com/language/tutorial/SomeNotesOnInternalImplementation.en.md#25734)

## Related Guides

* [Manipulating Equations](https://reference.wolfram.com/language/guide/ManipulatingEquations.en.md)
* [Formula Manipulation](https://reference.wolfram.com/language/guide/FormulaManipulation.en.md)
* [Number Theory](https://reference.wolfram.com/language/guide/NumberTheory.en.md)
* [Computational Geometry](https://reference.wolfram.com/language/guide/ComputationalGeometry.en.md)
* [Polynomial Algebra](https://reference.wolfram.com/language/guide/PolynomialAlgebra.en.md)
* [Polynomial Equations](https://reference.wolfram.com/language/guide/PolynomialEquations.en.md)
* [Diophantine Equations](https://reference.wolfram.com/language/guide/DiophantineEquations.en.md)
* [Polynomial Systems](https://reference.wolfram.com/language/guide/PolynomialSystems.en.md)
* [Equation Solving](https://reference.wolfram.com/language/guide/EquationSolving.en.md)
* [Theorem Proving](https://reference.wolfram.com/language/guide/TheoremProving.en.md)
* [`Inequalities`](https://reference.wolfram.com/language/guide/Inequalities.en.md)
* [Solvers over Regions](https://reference.wolfram.com/language/guide/GeometricSolvers.en.md)
* [Solid Geometry](https://reference.wolfram.com/language/guide/SolidGeometry.en.md)
* [Plane Geometry](https://reference.wolfram.com/language/guide/PlaneGeometry.en.md)
* [Finite Fields](https://reference.wolfram.com/language/guide/FiniteFields.en.md)
* [Finite Mathematics](https://reference.wolfram.com/language/guide/FiniteMathematics.en.md)
* [`Polygons`](https://reference.wolfram.com/language/guide/Polygons.en.md)
* [`Polyhedra`](https://reference.wolfram.com/language/guide/Polyhedra.en.md)
* [Symbolic Vectors, Matrices and Arrays](https://reference.wolfram.com/language/guide/SymbolicArrays.en.md)

## History

* Introduced in 1988 (1.0) \| Updated in 2003 (5.0) ▪ [2014 (10.0)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn100.en.md) ▪ [2024 (14.0)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn140.en.md)