Prove basic progress properties of a lexing function.
The macro
Typically for any function
(defthm f-progress-weak (<= (len (strin-left (mv-nth ... (f ... sin)))) (len (strin-left sin))) :rule-classes ((:rewrite) (:linear))) (defthm f-progress-strong (implies hyp (< (len (strin-left (mv-nth ... (f ... sin)))) (len (strin-left sin)))) :rule-classes ((:rewrite) (:linear)))
Where
(def-sin-progress name &key (hyp 't)) just tries to prove these theorems automatically
about the function named