When a function is admitted to the logic, ACL2 tries to ``guess''
what type of object it returns. This guess is codified as a term
that expresses a property of the value of the function. For app
the term is
(OR (CONSP (APP X Y)) (EQUAL (APP X Y) Y))which says that
app
returns either a cons or its second argument.
This formula is added to ACL2's rule base as a type-prescription
rule. Later we will discuss how rules are used by the ACL2
theorem prover. The point here is just that when you add a definition,
the data base of rules is updated, not just by the addition of the
definitional axiom, but by several new rules.
You should now return to the Walking Tour.