An executable version of 4v-sexpr-purebool-list-p using SAT.
(4v-sexpr-purebool-list-check x &key (config 'satlink::*default-config*)) → (mv fail purebool alist)
Function:
(defun 4v-sexpr-purebool-list-check-fn (x config) (declare (xargs :guard (satlink::config-p config))) (let ((__function__ '4v-sexpr-purebool-list-check)) (declare (ignorable __function__)) (faig-purebool-list-check (sfaiglist x) :config config)))
Theorem:
(defthm booleanp-of-4v-sexpr-purebool-list-check.fail (b* (((mv ?fail ?purebool ?alist) (4v-sexpr-purebool-list-check-fn x config))) (booleanp fail)) :rule-classes :type-prescription)
Theorem:
(defthm booleanp-of-4v-sexpr-purebool-list-check.purebool (b* (((mv ?fail ?purebool ?alist) (4v-sexpr-purebool-list-check-fn x config))) (booleanp purebool)) :rule-classes :type-prescription)
Theorem:
(defthm 4v-sexpr-purebool-list-check-correct (b* (((mv fail purebool ?alist) (4v-sexpr-purebool-list-check x :config config))) (implies (not fail) (equal purebool (4v-sexpr-purebool-list-p x)))))