solve(f, *args, **kwds)
Algebraically solve an equation of system of equations for given
variables.
 
INPUT:
 
-  ``f`` - equation or system of equations (given by a
   list or tuple)
 
-  ``*args`` - variables to solve for.
 
-  ``solution_dict = True`` - return a list of
   dictionaries containing the solutions.
 
EXAMPLES::
 
    sage: x, y = var('x, y')
    sage: solve([x+y==6, x-y==4], x, y)
    [[x == 5, y == 1]]
    sage: solve([x^2+y^2 == 1, y^2 == x^3 + x + 1], x, y)
    [[x == -1/2*I*sqrt(3) - 1/2, y == -1/2*sqrt(-I*sqrt(3) + 3)*sqrt(2)],
     [x == -1/2*I*sqrt(3) - 1/2, y == 1/2*sqrt(-I*sqrt(3) + 3)*sqrt(2)],
     [x == 1/2*I*sqrt(3) - 1/2, y == -1/2*sqrt(I*sqrt(3) + 3)*sqrt(2)],
     [x == 1/2*I*sqrt(3) - 1/2, y == 1/2*sqrt(I*sqrt(3) + 3)*sqrt(2)],
     [x == 0, y == -1],
     [x == 0, y == 1]]
    sage: solutions=solve([x^2+y^2 == 1, y^2 == x^3 + x + 1], x, y, solution_dict=True)
    sage: for solution in solutions: print solution[x].n(digits=3), ",", solution[y].n(digits=3)
    -0.500 - 0.866*I , -1.27 + 0.341*I
    -0.500 - 0.866*I , 1.27 - 0.341*I
    -0.500 + 0.866*I , -1.27 - 0.341*I
    -0.500 + 0.866*I , 1.27 + 0.341*I
    0.000 , -1.00
    0.000 , 1.00
    sage: z = 5
    sage: solve([8*z + y == 3, -z +7*y == 0],y,z)
    Traceback (most recent call last):
    ...
    TypeError: 5 is not a valid variable.
 
If ``True`` appears in the list of equations it is
ignored, and if ``False`` appears in the list then no
solutions are returned. E.g., note that the first
``3==3`` evaluates to ``True``, not to a
symbolic equation.
 
::
 
    sage: solve([3==3, 1.00000000000000*x^3 == 0], x)
    [x == 0]
    sage: solve([1.00000000000000*x^3 == 0], x)
    [x == 0]
 
Here, the first equation evaluates to ``False``, so
there are no solutions::
 
    sage: solve([1==3, 1.00000000000000*x^3 == 0], x)
    []
 
::
 
    sage: var('s,j,b,m,g')
    (s, j, b, m, g)
    sage: sys = [ m*(1-s) - b*s*j, b*s*j-g*j ];
    sage: solve(sys,s,j)
    [[s == 1, j == 0], [s == g/b, j == (b - g)*m/(b*g)]]
    sage: solve(sys,(s,j))
    [[s == 1, j == 0], [s == g/b, j == (b - g)*m/(b*g)]]
    sage: solve(sys,[s,j])
    [[s == 1, j == 0], [s == g/b, j == (b - g)*m/(b*g)]]