Extend an svex-env with a new variable binding. Does not expect or preserve fast-alists.
(svex-env-acons var val env) → new-env
Function:
(defun svex-env-acons (var val env) (declare (xargs :guard (and (svar-p var) (4vec-p val) (svex-env-p env)))) (let ((__function__ 'svex-env-acons)) (declare (ignorable __function__)) (mbe :logic (cons (cons (svar-fix var) (4vec-fix val)) (svex-env-fix env)) :exec (cons (cons var val) env))))
Theorem:
(defthm svex-env-p-of-svex-env-acons (b* ((new-env (svex-env-acons var val env))) (svex-env-p new-env)) :rule-classes :rewrite)
Theorem:
(defthm svex-env-acons-of-svar-fix-var (equal (svex-env-acons (svar-fix var) val env) (svex-env-acons var val env)))
Theorem:
(defthm svex-env-acons-svar-equiv-congruence-on-var (implies (svar-equiv var var-equiv) (equal (svex-env-acons var val env) (svex-env-acons var-equiv val env))) :rule-classes :congruence)
Theorem:
(defthm svex-env-acons-of-4vec-fix-val (equal (svex-env-acons var (4vec-fix val) env) (svex-env-acons var val env)))
Theorem:
(defthm svex-env-acons-4vec-equiv-congruence-on-val (implies (4vec-equiv val val-equiv) (equal (svex-env-acons var val env) (svex-env-acons var val-equiv env))) :rule-classes :congruence)
Theorem:
(defthm svex-env-acons-of-svex-env-fix-env (equal (svex-env-acons var val (svex-env-fix env)) (svex-env-acons var val env)))
Theorem:
(defthm svex-env-acons-svex-env-equiv-congruence-on-env (implies (svex-env-equiv env env-equiv) (equal (svex-env-acons var val env) (svex-env-acons var val env-equiv))) :rule-classes :congruence)