Rewrite_Rules_are_Generated_from_DEFTHM_Events.html -- ACL2 Version 6.3

## Rewrite Rules are Generated from DEFTHM Events

By reading the documentation of `defthm` (and especially of its :rule-classes argument) you would learn that when we submitted the command

    (defthm associativity-of-app
      (equal (app (app a b) c)
             (app a (app b c))))

we not only command the system to prove that `app` is an associative function but

      * we commanded it to use that fact as a rewrite rule.

That means that every time the system encounters a term of the form

    (app (app x y) z)

it will replace it with

    (app x (app y z))!