Advice: Obtaining properties of objects

Normally, to find what properties an object has (as a result of assumptions made on it) you use the function about .

> assume(x,integer);

> about(x);

Originally x, renamed x~:

is assumed to be: integer

However, that only prints the information rather than returning it in a form that can be saved in a variable or acted on by other procedures. The actual assumptions on objects are stored in a table called `property/object` and can be retrieved from there.

> `property/object`[x];

integer

> additionally(x > 0);

> `property/object`[x];

AndProp(integer,RealRange(1,infinity))

> indets(%,RealRange);

{RealRange(1,infinity)}

You can also search the table to find all objects for which a certain assumption has been made.

> select(has,op(eval(`property/object`)),integer);

[x = integer, x = AndProp(integer,RealRange(1,infin...

Note, however, that when a new assumption is made about a variable the old properties are not deleted from the table. They are still present, but they refer to a different name that looks the same (when an assumption about a variable is made, a change of name occurs). This is why the result above has two entries for x .

See also: about , assume , Changing assumptions and names

Maple Advisor Database, R. Israel 1997