modify and move _nsort
modify solve_poly_inequality

o assert that the input is Poly
o raise an error if a Relational involving a number doesn't evaluate
modify solve_rational_inequalities

o watch for empty _eqs
modify reduce_rational_inequalities

o use solve_univariate_inequality if domain is not ZZ or QQ
o don't split solution into real and imaginary parts, otherwise
  a result involving a complex number could return False rather than
  raising an error because the relation is not defined for complex
  numbers.
modify reduce_abs_inequality

o only raise the error if the variable.is_real is False; let vanilla
  symbols be used
modify solve_univariate_inequality

o allow handling of rational functions; solve_rational_inequalities could
  handle this if root sorting worked for EX, but it doesn't so this
  routine is necessary
modify reduce_inequalities

o improved the dispatching of expressions so more inequalities are solved
modify tests
RootOf.is_number is True
allow general (incomplete) solving of inequalities
change assertion to ValueError
Interval._intersect handles (-oo, oo)

If the other Interval has a real or infinite value in it then
it will be contained within (-oo, oo).
make sure solve/reduce_inequalities can handle the bare inequality

Although this worked in master,

>>> solve(sin(x)>S.Half,x)
And(pi/6 < x, x < 5*pi/6)

This did not:

>>> solve(sin(x)>S.Half)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "sympy\solvers\solvers.py", line 692, in solve
    return reduce_inequalities(f, symbols=symbols)
  File "sympy\solvers\inequalities.py", line 517, in reduce_inequalities
    raise NotImplementedError("can't reduce %s" % inequalities)

Now it does.
quick