(4vs-and-dumb a b) constructs exactly the 4v-sexpr
This is dumb in that it doesn't do the simple optimizations of 4vs-and, but it has a nicer 4v-sexpr-vars theorem because of this.
Function:
(defun 4vs-and-dumb (a b) (declare (xargs :guard t)) (hons-list 'and a b))
Theorem:
(defthm 4v-sexpr-eval-of-4vs-and-dumb (equal (4v-sexpr-eval (4vs-and-dumb a b) env) (4v-and (4v-sexpr-eval a env) (4v-sexpr-eval b env))))
Theorem:
(defthm 4v-sexpr-vars-of-4vs-and-dumb (equal (4v-sexpr-vars (4vs-and-dumb a b)) (hons-alphorder-merge (4v-sexpr-vars a) (4v-sexpr-vars b))))