subtype - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


subtype

test whether one type is a subtype of another

 

Calling Sequence

Parameters

Description

Examples

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 e 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

subtypeinteger,rational

true

(1)

subtypepolynom,string,algebraic

true

(2)

subtypeAndname,algebraic,name

true

(3)

subtypeVectorinteger,Vectorrational

true

(4)

subtypespecfuncinteger,sin,typefuncrational,name

true

(5)

subtypeinteger,integer,listrational

true

(6)

subtypeinteger,integer,anything,anything

true

(7)

See Also

ExtendingMaple

type