## `Type::Property` -- type to identify properties

#### Introduction

With `Type::Property`, properties can be identified.

#### Call(s)

`testtype(obj,` Type::Property)

#### Parameters

`obj` | - | any MuPAD object

#### Returns

see `testtype`

#### Related Functions

`testtype`, `is`

#### Details

- The call `testtype(obj,` Type::Property) checks, whether the MuPAD object `obj` is a property and returns `TRUE`, if it holds, otherwise `FALSE`.
- Some elements of the library `Type` serve two functions. One is to perform syntactical tests to identify the type of an object (with `testtype`), the other is to occur as a property within `assume` and `is`.

  `Type::Property` itself is not a property.

- To determine whether an element of `Type` is a property, `Type::Property` can be used with `testtype`.
- This type does not represent a property.

#### Example 1

Is `Type::PosInt` a property?

    >> testtype(Type::PosInt, Type::Property)

                                       TRUE

Also an interval created with `Type::Interval` is a property:

    >> testtype(Type::Interval(0, 1), Type::Property)

                                       TRUE

Is `Type::Constant` a property?

    >> testtype(Type::Constant, Type::Property)

                                       FALSE

`Type::Constant` is not a property and cannot be used as argument of `assume`:

    >> assume(x, Type::Constant)

          Error: second argument must be a property [property::assume]

The next example shows the usage of `testtype` to select properties among operands of `Type`:

    >> T := Type::Numeric, Type::PosInt, Type::Unknown, Type::Zero:
       select(T, testtype, Type::Property)

                             Type::PosInt, Type::Zero

    >> delete x, T:

#### Changes

- new function

Do you have questions or comments?
Copyright © SciFace Software GmbH & Co. KG 2000