**3.4.9 Solving Equations with Subsidiary Conditions**

In doing calculations with equations, you will often find it convenient to think of a particular set of equations as the "main" ones you are working with, and to think of other equations as "subsidiary conditions" that must also be satisfied.

A typical thing to do is to assign a name to the list of subsidiary conditions, and then to include them by name in each list of equations you give to Solve.

sincos is defined to be the equation

.
In[1]:= **sincos = Sin[x]^2 + Cos[x]^2 == 1**

Out[1]=

This solves the equation , with the "subsidiary condition"

.
In[2]:= **Solve[ { Sin[x] + 2 Cos[x] == 1, sincos } ,**

{ Sin[x], Cos[x] } ]

Out[2]=

Here is another equation, solved with the same "subsidiary condition".
In[3]:= **Solve[ { Sin[x] == Cos[x], sincos } ,**

{ Sin[x], Cos[x] } ]

Out[3]=

When you are working with polynomials, there are ways to use GroebnerBasis and PolynomialReduce to reduce sets of polynomials subject to subsidiary conditions.

This sets up a Gröbner basis.
In[4]:= **g = GroebnerBasis[{x + y - a, x y - b}, {x, y}]**

Out[4]=

This gives a reduction of x^3+y^3 in terms of the elements of g.
In[5]:= **PolynomialReduce[x^3 + y^3, g, {x, y}]**

Out[5]=

This shows how x^3+y^3 can be reduced if x+y-a and xy-b are assumed to be zero.
In[6]:= **Last[%]**

Out[6]=

This reduces x^4+y^4 with the same subsidiary condition.
In[7]:= **Last[PolynomialReduce[x^4 + y^4, g, {x, y}]]**

Out[7]=