Add information about a variable or constant to a static environment.
(add-var/const-sinfo v/c info env) → new-env
We return
Function:
(defun add-var/const-sinfo (v/c info env) (declare (xargs :guard (and (identifierp v/c) (var/const-sinfop info) (senvp env)))) (let ((__function__ 'add-var/const-sinfo)) (declare (ignorable __function__)) (add-ident-sinfo v/c (ident-sinfo-var/const info) env)))
Theorem:
(defthm senv-optionp-of-add-var/const-sinfo (b* ((new-env (add-var/const-sinfo v/c info env))) (senv-optionp new-env)) :rule-classes :rewrite)
Theorem:
(defthm add-var/const-sinfo-of-identifier-fix-v/c (equal (add-var/const-sinfo (identifier-fix v/c) info env) (add-var/const-sinfo v/c info env)))
Theorem:
(defthm add-var/const-sinfo-identifier-equiv-congruence-on-v/c (implies (identifier-equiv v/c v/c-equiv) (equal (add-var/const-sinfo v/c info env) (add-var/const-sinfo v/c-equiv info env))) :rule-classes :congruence)
Theorem:
(defthm add-var/const-sinfo-of-var/const-sinfo-fix-info (equal (add-var/const-sinfo v/c (var/const-sinfo-fix info) env) (add-var/const-sinfo v/c info env)))
Theorem:
(defthm add-var/const-sinfo-var/const-sinfo-equiv-congruence-on-info (implies (var/const-sinfo-equiv info info-equiv) (equal (add-var/const-sinfo v/c info env) (add-var/const-sinfo v/c info-equiv env))) :rule-classes :congruence)
Theorem:
(defthm add-var/const-sinfo-of-senv-fix-env (equal (add-var/const-sinfo v/c info (senv-fix env)) (add-var/const-sinfo v/c info env)))
Theorem:
(defthm add-var/const-sinfo-senv-equiv-congruence-on-env (implies (senv-equiv env env-equiv) (equal (add-var/const-sinfo v/c info env) (add-var/const-sinfo v/c info env-equiv))) :rule-classes :congruence)