I must candidly admit that I'm not working on a general constraint solver.
I have some specific expression that I'd like to simplify.
It contains Piecewise, sign, Abs and some assumptions of the form s > 0 & s
< 1 or 5*s == 0.
When working with Piecewise, expression seems to grow at an exponential
rate.
After n operations my expression takes C*exp(n) char to print.

By the way, ask(Q.positive(x + y), Q.is_true(x - 2 > 0) & Q.is_true(y - 1 >
0)) is True
because a sum of positive is positive.
but if you had x - 2 > 0 & y > -1 it would not work.

I don't have lots of imagination for things that could break my code.
If I think of others, I'll test them.
I added two wishes into test_positive_xfail.




2013/3/19 Matthew Rocklin <notifications@github.com>

> In sympy/assumptions/handlers/order.py:
>
> > @@ -147,6 +149,55 @@ def _number(expr, assumptions):
> >      def Basic(expr, assumptions):
> >          if expr.is_number:
> >              return AskPositiveHandler._number(expr, assumptions)
> > +        if assumptions is True:
>
> Anything that you think might break your code. Or rather, demonstrate that
> no reasonable situation exists which will break your code.
>
> Honestly though I don't have a good specific answer for this. Mostly this
> is because I'm not sure what is going on here. This solution seems to solve
> the problems you've posed but I'm not able to understand it well enough to
> have confidence that it works in all situations. You may be trying to solve
> a difficult problem here.
>
> For example
>
> What if we know that
> x - 2 > 0
> y - 1 > 0
> and we ask if
> x + y > 1
>
> It sounds like you're trying to implement a fairly general constraint
> solver. I wonder if there are more theoretical methods to accomplish this
> task.
>
> —
> Reply to this email directly or view it on GitHub<https://github.com/sympy/sympy/pull/1907/files#r3440984>
> .
>