Type::Even
-- a type and a property
representing even integersType::Even
represents even integers. This type can also
be used as a property to mark
identifiers as even integers.
testtype(obj,
Type::Even)
assume(x,
Type::Even)
is(ex,
Type::Even)
obj |
- | any MuPAD object |
x |
- | an identifier or one of the expressions Re(u) or Im(u) with an identifier
u |
ex |
- | an arithmetical expression |
is
, assume
, testtype
, Type::Odd
, Type::Property
testtype(obj,
Type::Even) checks,
whether obj
is an even number and returns TRUE
, if it holds, otherwise FALSE
.testtype
only
performs a syntactical test identifying MuPAD objects of type
DOM_INT
and checks, if
bool(domtype(x/2) =
DOM_INT)
holds.assume(x,
Type::Even) marks the identifier x
as an even number.
The call is(ex,
Type::Even) derives, whether the expression ex
is an even
number (or this property can be derived).
assume
and is
.The following numbers are of type
Type::Even
:
>> testtype(2, Type::Even), testtype(-4, Type::Even), testtype(8, Type::Even), testtype(-11114, Type::Even), testtype(4185296581467695598, Type::Even)
TRUE, TRUE, TRUE, TRUE, TRUE
We use this type as a property:
>> assume(x, Type::Even):
The following calls to is
derive the properties of a composite
expression from the properties of its indeterminates:
>> is(3*x^2, Type::Even), is(x + 1, Type::Even)
TRUE, FALSE
>> is(x, Type::Integer), is(2*x, Type::Integer), is(x/2, Type::Integer), is(x/3, Type::Integer)
TRUE, TRUE, TRUE, UNKNOWN
>> assume(y, Type::Odd): is(x + y, Type::Even)
FALSE
>> is(2*(x + y), Type::Even)
TRUE
>> delete x, y: