expr.spad line 1050 [edit on github]
Attaching assertions to symbols for pattern matching. Date Created: 21 Mar 1989
constant(x) tells the pattern matcher that x should match only the symbol 'x and no other quantity.
multiple(x) tells the pattern matcher that x should preferably match a multi-term quantity in a sum or product. For matching on lists, multiple(x) tells the pattern matcher that x should match a list instead of an element of a list.
optional(x) tells the pattern matcher that x can match an identity (0 in a sum, 1 in a product or exponentiation).