Storing simplified definition bodies and guards
By default, when you submit a defun form, the body is
simplified for certain later uses. This simplification is sometimes called
``normalization''; the ACL2 system function that accomplishes this task is
ACL2 !>(defun f1 (x y) (cons (implies x y) (integerp 3))) [.. output omitted ..] F1 ACL2 !>(defun f2 (x y) (declare (xargs :normalize nil)) (cons (implies x y) (integerp 3))) [.. output omitted ..] F2 ACL2 !>:pf f1 (EQUAL (F1 X Y) (IF X (IF Y '(T . T) '(NIL . T)) '(T . T))) ACL2 !>:pf f2 (EQUAL (F2 X Y) (CONS (IMPLIES X Y) (INTEGERP 3))) ACL2 !>
We see that the body of
The example above illustrates that normalization consists of the following three parts:
We have seen an example where
Also see the community-books utility install-not-normalized.