subtype - test whether one type is a subtype of another
|
Calling Sequence
|
|
subtype(s, t)
|
|
Parameters
|
|
s
|
-
|
any Maple type
|
t
|
-
|
any Maple type
|
|
|
|
|
Description
|
|
•
|
A type s is said to be a subtype of a type t if for every expression the test type(e, s) evaluates to true, then the expression type(e, t) will also evaluate to true. If a type is identified with its extension, then the ``subtype'' relation is the relation of inclusion.
|
•
|
The subtype(s, t) function attempts to determine if the type s is a subtype of the type t.
|
•
|
If subtype can prove that s is a subtype of t, then the value true is returned. In the same manner, if subtype can prove that s is not a subtype of t, then the value false is returned. Otherwise, if it is not possible to compute whether one type is a subtype of another, the value FAIL is returned.
|
|
In general, it is not possible to compute whether one type is a subtype of another.
|
|
Note: Not all pairs of types are comparable. For example, the types list and set are disjoint types; no expression is both a list and a set. Thus, both subtype( 'set', 'list' ) and subtype( 'list', 'set' ) return false.
|
|
|
Examples
|
|
>
|
|
| (1) |
>
|
|
| (2) |
>
|
|
| (3) |
>
|
|
| (4) |
>
|
|
| (5) |
>
|
|
| (6) |
>
|
|
| (7) |
|
|