Recognizer for 4v-sexprs that cannot evaluate to Z.
Function:
(defun 3v-syntax-sexprp (x) (declare (xargs :guard t)) (and (consp x) (let ((fn (car x))) (not (or (eq fn (4vz)) (eq fn 'id) (eq fn 'res) (eq fn 'zif) (eq fn 'tristate))))))
Theorem:
(defthm 3vp-of-4v-unfloat (equal (equal (4vz) (4v-unfloat a)) nil))
Theorem:
(defthm 3vp-of-4v-not (equal (equal (4vz) (4v-not a)) nil))
Theorem:
(defthm 3vp-of-4v-xdet (equal (equal (4vz) (4v-xdet a)) nil))
Theorem:
(defthm 3vp-of-4v-and (equal (equal (4vz) (4v-and a b)) nil))
Theorem:
(defthm 3vp-of-4v-or (equal (equal (4vz) (4v-or a b)) nil))
Theorem:
(defthm 3vp-of-4v-xor (equal (equal (4vz) (4v-xor a b)) nil))
Theorem:
(defthm 3vp-of-4v-iff (equal (equal (4vz) (4v-iff a b)) nil))
Theorem:
(defthm 3vp-of-4v-ite (equal (equal (4vz) (4v-ite c a b)) nil))
Theorem:
(defthm 3vp-of-4v-ite* (equal (equal (4vz) (4v-ite* c a b)) nil))
Theorem:
(defthm 3vp-of-4v-pullup (equal (equal (4vz) (4v-pullup a)) nil))
Theorem:
(defthm 3vp-sexpr-eval-when-3v-syntax-sexprp (implies (3v-syntax-sexprp x) (equal (equal (4vz) (4v-sexpr-eval x env)) nil)))