Abstract a
(abs-file tree) → file
Function:
(defun abs-file (tree) (declare (xargs :guard (abnf::treep tree))) (let ((__function__ 'abs-file)) (declare (ignorable __function__)) (b* (((okf (abnf::tree-list-tuple2 sub)) (abnf::check-tree-nonleaf-2 tree "file")) ((okf imports) (abs-*-import-declaration sub.1st)) ((okf tree) (abnf::check-tree-list-1 sub.2nd)) ((okf program) (abs-program-declaration tree))) (make-file :imports imports :program program))))
Theorem:
(defthm file-resultp-of-abs-file (b* ((file (abs-file tree))) (file-resultp file)) :rule-classes :rewrite)
Theorem:
(defthm abs-file-of-tree-fix-tree (equal (abs-file (abnf::tree-fix tree)) (abs-file tree)))
Theorem:
(defthm abs-file-tree-equiv-congruence-on-tree (implies (abnf::tree-equiv tree tree-equiv) (equal (abs-file tree) (abs-file tree-equiv))) :rule-classes :congruence)