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