Recognize the kinds of terms that can be processed by untranslate-for-execution.
(ute-term-p x) → *
These are similar to pseudo-termps, but we also explicitly support mv-let and mv forms.
Theorem:
(defthm ute-termlist-p-when-atom (implies (atom x) (equal (ute-termlist-p x) (not x))))
Theorem:
(defthm ute-termlist-p-of-cons (equal (ute-termlist-p (cons a x)) (and (ute-term-p a) (ute-termlist-p x))))
Theorem:
(defthm true-listp-when-ute-termlist-p (implies (ute-termlist-p x) (true-listp x)) :rule-classes :compound-recognizer)
Theorem:
(defthm ute-term-p-of-car-when-ute-termlist-p (implies (ute-termlist-p x) (ute-term-p (car x))))
Theorem:
(defthm ute-termlist-p-of-cdr-when-ute-termlist-p (implies (ute-termlist-p x) (ute-termlist-p (cdr x))))
Theorem:
(defthm ute-termlist-p-of-append (equal (ute-termlist-p (append x y)) (and (ute-termlist-p (list-fix x)) (ute-termlist-p y))))
Theorem:
(defthm ute-termlist-p-of-rev (equal (ute-termlist-p (rev x)) (ute-termlist-p (list-fix x))))