SPECIAL-CASES-FOR-REWRITE-RULES.html -- ACL2 Version 6.3

### SPECIAL-CASES-FOR-REWRITE-RULES

convenient short forms for rewrite rule formulas

    Major Section:  INTRODUCTION-TO-THE-THEOREM-PROVER

In principle, every rewrite rule is made from a formula of this shape:

    (IMPLIES (AND hyp1 ... hypk)
             (eqv lhs rhs))

where eqv is either `EQUAL` or `IFF` and the result of expanding any abbreviations in lhs is the application of some function symbol other than `IF`.

* In the special case where there is only one hyp term, i.e., k=1, the `(AND` hyp1`)` can be written hyp1.

* In the special case where there are no hyp terms, k=0, the `(AND)` term is logically just `T` and the whole `IMPLIES` can be dropped; such a formula may be written as an unconditional `EQUAL` or `IFF` term.

* If you build a rewrite rule from a formula that concludes with `(NOT` x`)`, it is treated as though it were `(EQUAL` x`NIL)`, which is logically equivalent to what you typed.

* If you build a rewrite rule from a formula that concludes with an `AND`, ACL2 will build a rewrite rule for each conjunct of the `AND`. This is because

    (IMPLIES hyp (AND concl1 concl2))

is propositionally equivalent to

    (AND (IMPLIES hyp concl1)
         (IMPLIES hyp concl2)).

However, if you use an `OR`-expression as a hypothesis, ACL2 does not do the dual transformation. Thus, `(IMPLIES (OR hyp1 hyp2) concl)` generates one rewrite rule.

* Finally, if you build a rewrite rule from a formula that does not conclude with an `EQUAL`, an `IFF`, a `NOT`, or an `AND,` but with some other term, say, lhs, then ACL2 acts like you typed `(IFF` lhs`T)`, which is logically equivalent to what you typed.

Thus, regardless of what you type, every rule has k hypotheses. For unconditional rules, k is 0 and the hypotheses are vacuously true. Whether or not you write an `EQUAL` or an `IFF` in the conclusion, every rule is either an equality or a propositional equivalence, every rule has a left-hand side, and every rule has a right-hand side.

Use your browser's Back Button now to return to introduction-to-rewrite-rules-part-1.