(svex-varmasks/env->aig-env vars masks boolmasks env) → (mv err env)
Function:
(defun svex-varmasks/env->aig-env (vars masks boolmasks env) (declare (xargs :guard (and (svarlist-p vars) (svex-mask-alist-p masks) (svar-boolmasks-p boolmasks) (svex-env-p env)))) (let ((__function__ 'svex-varmasks/env->aig-env)) (declare (ignorable __function__)) (b* ((?stats (svex-varmasks/env->aig-env-stats vars masks boolmasks)) ((mv err res &) (svex-varmasks/env->aig-env-rec vars masks boolmasks env 0 nil))) (mv err res))))
Theorem:
(defthm return-type-of-svex-varmasks/env->aig-env.err (b* (((mv ?err ?env) (svex-varmasks/env->aig-env vars masks boolmasks env))) (implies (svex-mask-alist-p masks) (iff err (not (svex-maskbits-ok vars masks))))) :rule-classes :rewrite)
Theorem:
(defthm eval-svex-varmasks->a4env-with-env (b* (((mv err a4env) (svex-varmasks->a4env vars masks boolmasks1)) ((mv ?err1 env) (svex-varmasks/env->aig-env vars (svex-mask-alist-extract-vars masks) boolmasks goalenv))) (implies (and (not err) (svex-mask-alist-p masks) (equal boolmasks (svar-boolmasks-fix boolmasks1)) (svex-env-boolmasks-ok goalenv boolmasks)) (svex-envs-mask-equiv-on-vars vars masks (svex-a4vec-env-eval a4env env) goalenv))))
Theorem:
(defthm svex-varmasks/env->aig-env-of-svarlist-fix-vars (equal (svex-varmasks/env->aig-env (svarlist-fix vars) masks boolmasks env) (svex-varmasks/env->aig-env vars masks boolmasks env)))
Theorem:
(defthm svex-varmasks/env->aig-env-svarlist-equiv-congruence-on-vars (implies (svarlist-equiv vars vars-equiv) (equal (svex-varmasks/env->aig-env vars masks boolmasks env) (svex-varmasks/env->aig-env vars-equiv masks boolmasks env))) :rule-classes :congruence)