Maxima Function
assume (pred_1, ..., pred_n)
Adds predicates pred_1, ..., pred_n to the current context.
If a predicate is inconsistent or redundant
with the predicates in the current context,
it is not added to the context.
The context accumulates predicates from each call to assume
.
assume
returns a list whose elements are the predicates added to the context
or the atoms redundant
or inconsistent
where applicable.
The predicates pred_1, ..., pred_n can only be expressions
with the relational operators < <= equal notequal >=
and >
.
Predicates cannot be literal equality =
or literal inequality #
expressions,
nor can they be predicate functions such as integerp
.
Compound predicates of the form pred_1 and ... and pred_n
are recognized,
but not pred_1 or ... or pred_n
.
not pred_k
is recognized if pred_k is a relational predicate.
Expressions of the form not (pred_1 and pred_2)
and not (pred_1 or pred_2)
are not recognized.
Maxima's deduction mechanism is not very strong;
there are many obvious consequences which cannot be determined by is
.
This is a known weakness.
assume
evaluates its arguments.
Examples:
(%i1) assume (xx > 0, yy < -1, zz >= 0); (%o1) [xx > 0, yy < - 1, zz >= 0] (%i2) assume (aa < bb and bb < cc); (%o2) [bb > aa, cc > bb] (%i3) facts (); (%o3) [xx > 0, - 1 > yy, zz >= 0, bb > aa, cc > bb] (%i4) is (xx > yy); (%o4) true (%i5) is (yy < -yy); (%o5) true (%i6) is (sinh (bb - aa) > 0); (%o6) true (%i7) forget (bb > aa); (%o7) [bb > aa] (%i8) prederror : false; (%o8) false (%i9) is (sinh (bb - aa) > 0); (%o9) unknown (%i10) is (bb^2 < cc^2); (%o10) unknown