Defining the function
foo(a, b) := apply('assume, [a < b])$
do
facts();
-> []
foo(0, a);
-> [inconsistent] /* why? */
foo(b, a);
-> [b > a] /* instead [a > b] */
foo(d, c);
-> [c > d]
assume(0 < a);
-> [a > 0]
Why is there inconsistent? Is it possible to fix this somehow without changing the name of the function variables foo(aa, bb)? How does it work?