Retrieve information about a struct type from a static environment.
(get-struct-sinfo circ env) → info
We return
Function:
(defun get-struct-sinfo (circ env) (declare (xargs :guard (and (identifierp circ) (senvp env)))) (let ((__function__ 'get-struct-sinfo)) (declare (ignorable __function__)) (b* ((info (get-ident-sinfo circ env)) ((unless info) nil)) (ident-sinfo-case info :var/const nil :function nil :struct info.get))))
Theorem:
(defthm struct-sinfo-optionp-of-get-struct-sinfo (b* ((info (get-struct-sinfo circ env))) (struct-sinfo-optionp info)) :rule-classes :rewrite)
Theorem:
(defthm get-struct-sinfo-of-identifier-fix-circ (equal (get-struct-sinfo (identifier-fix circ) env) (get-struct-sinfo circ env)))
Theorem:
(defthm get-struct-sinfo-identifier-equiv-congruence-on-circ (implies (identifier-equiv circ circ-equiv) (equal (get-struct-sinfo circ env) (get-struct-sinfo circ-equiv env))) :rule-classes :congruence)
Theorem:
(defthm get-struct-sinfo-of-senv-fix-env (equal (get-struct-sinfo circ (senv-fix env)) (get-struct-sinfo circ env)))
Theorem:
(defthm get-struct-sinfo-senv-equiv-congruence-on-env (implies (senv-equiv env env-equiv) (equal (get-struct-sinfo circ env) (get-struct-sinfo circ env-equiv))) :rule-classes :congruence)