Type::Even -- a type and a property
representing even integers
IntroductionType::Even represents even integers. This type can also
be used as a property to mark
identifiers as even integers.
Call(s)testtype(obj, Type::Even)
assume(x, Type::Even)
is(ex, Type::Even)
Parametersobj |
- | any MuPAD object |
x |
- | an identifier or one of the expressions Re(u) or Im(u) with an identifier
u |
ex |
- | an arithmetical expression |
Returns
Related
Functionsis, assume, testtype, Type::Odd, Type::Property
Detailstesttype(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.
Example
1The 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
Example
2We 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: