1 | initial version |
In Maxima (which handles our assumptions):
(%i1) assume(b>0);
(%o1) [b > 0]
(%i2) assume(b<1);
(%o2) [b < 1]
(%i3) assume(a>0);
(%o3) [a > 0]
(%i4) assume(a<1);
(%o4) [a < 1]
(%i5) is (a*b > 0);
(%o5) true
(%i6) is (a*b < 1);
(%o6) unknown
And Sage returns false for booleans if it doesn't know for sure that it's true.
I'm not sure whether they would consider this a bug; their assumptions framework is self-described as "weak", though of course it's better than having no assumptions at all!