place assumptions without redefining the variables receiving assumptions - suitable for working with the MathematicalFunctions, Physics and VectorCalculus packages
determine whether given variables could satisfy given properties
determine whether given variables certainly satisfy given properties
Assume(x::A, y::B, ...)
Coulditbe(x::A, y::B, ...)
Is(x::A, y::B, ...)
x, y, ...
any variables receiving assumptions, these can be names or functions
A, B, ...
properties, the assumptions to be placed on the variables x, y, ...
Assume places assumptions similar to what the assume command does but without redefining the variables. This is particularly useful when working with packages that require some variables with special meaning to not be redefined, as is the case for instance with DifferentialGeometry, VectorCalculus, and Physics. Also, it is possible to reuse expressions entered before placing the assumptions and the result can be reused after removing the assumptions, computing as in an extended-assuming context.
Note: Results cached in remember tables before placing the assumptions, or after removing the assumptions, are always cleared.
Coulditbe and Is compute boolean answers (as do the coulditbe and is commands respectively), but also handle a sequence of an arbitrary number of nested conditionals, which possibly include And, Or, and Not (see also convert/boolean_function to relate these boolean functions to and, or, and not).
Regarding their implementation, all of Assume, Coulditbe and Is only manipulate their input before sending it to the corresponding lowercase commands, assume, coulditbe and is, in order to extend their functionality as explained above.
For examples about Assume, see the Examples section of Physics:-Assume. Regarding Coulditbe and Is, these commands permit computing with an arbitrary number of conditions to be tested, that could be nested with no restrictions, involving And and Or.
Consider the two conditions
c__1 ≔ And⁡b<a,b=a
c__2 ≔ And⁡a<b,b=a
None of them can be true, so if the question is about c1 or c2,
The Is command is entirely based on Coulditbe so that Is(A, B, ...) = not Coulditbe(Not(A), Not(B), Not(...)). This is a generalization to many arguments of the relationship between the output of the standard is and coulditbe commands. Hence
Add a third condition
c__3 ≔ And⁡a≤b,b=a
We see that c3 can be true, therefore:
Coulditbe also accepts a sequence of arguments (statements), in which case it only returns true if it would return true for each of the arguments received. In this example, the following two conditions cannot be true at the same time, but either of them by itself can be true.
To see the output of Is with the same input, first negate these conditions
Note the difference between this result and the one you would get using And
Add now a condition that cannot be true:
Note the difference between this result and the one you would get using Or
The MathematicalFunctions[Assume], MathematicalFunctions[Coulditbe] and MathematicalFunctions[Is] commands were introduced in Maple 2015.
For more information on Maple 2015 changes, see Updates in Maple 2015.
Download Help Document