The reduction rules define how a noncanonical
term may be reduced.
Figure gives a list of the noncanonical forms.
The variables denoted by a (possibly subscripted)
e indicate so-called argument places,
which must be occupied by canonical terms of the appropriate type
before any sense can be made of the term.
In the rules which follow we will use
to denote the canonical int term
whose value is n.
As an example consider the rule for addition:
We use to indicate that the term on the left (the redex )
reduces to the term on the right (the contractum ).
Note that the form of the contractum depends on the values of the canonical
terms appearing in the argument places of the redex.
This is a property of all the rules.
The rules for the other arithmetic operators are almost identical
and can be obtained by replacing both occurrences of + with the appropriate
operator.
The rest of the rules are listed in figure
.
Figure: The Nonarithmetic Reduction Rules
These rules embody the content of the computation rules
of the Nuprl
logic.
One somewhat anomalous term is the term_of() term.
This term evaluates to the term extracted from
the given theorem.