Build a static environment from a file.
(file-to-senv file) → env
Starting with the initial (empty) static environment, we extend it with all the top-level declarations in the file.
Function:
(defun file-to-senv (file) (declare (xargs :guard (filep file))) (let ((__function__ 'file-to-senv)) (declare (ignorable __function__)) (extend-senv-with-topdecl-list (programdecl->items (file->program file)) (init-senv))))
Theorem:
(defthm senv-resultp-of-file-to-senv (b* ((env (file-to-senv file))) (senv-resultp env)) :rule-classes :rewrite)
Theorem:
(defthm file-to-senv-of-file-fix-file (equal (file-to-senv (file-fix file)) (file-to-senv file)))
Theorem:
(defthm file-to-senv-file-equiv-congruence-on-file (implies (file-equiv file file-equiv) (equal (file-to-senv file) (file-to-senv file-equiv))) :rule-classes :congruence)