Check that a pair consisting of function information and a function environment has no function definitions in the functions' bodies.
(funinfo+funenv-nofunp funinfoenv) → yes/no
We check each component.
Function:
(defun funinfo+funenv-nofunp (funinfoenv) (declare (xargs :guard (funinfo+funenv-p funinfoenv))) (let ((__function__ 'funinfo+funenv-nofunp)) (declare (ignorable __function__)) (and (funinfo-nofunp (funinfo+funenv->info funinfoenv)) (funenv-nofunp (funinfo+funenv->env funinfoenv)))))
Theorem:
(defthm booleanp-of-funinfo+funenv-nofunp (b* ((yes/no (funinfo+funenv-nofunp funinfoenv))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm funinfo-nofunp-of-funinfo+funenv->info (implies (funinfo+funenv-nofunp funinfoenv) (funinfo-nofunp (funinfo+funenv->info funinfoenv))))
Theorem:
(defthm funenv-nofunp-of-funinfo+funenv->env (implies (funinfo+funenv-nofunp funinfoenv) (funenv-nofunp (funinfo+funenv->env funinfoenv))))
Theorem:
(defthm funinfo+funenv-nofunp-of-funinfo+funenv-fix-funinfoenv (equal (funinfo+funenv-nofunp (funinfo+funenv-fix funinfoenv)) (funinfo+funenv-nofunp funinfoenv)))
Theorem:
(defthm funinfo+funenv-nofunp-funinfo+funenv-equiv-congruence-on-funinfoenv (implies (funinfo+funenv-equiv funinfoenv funinfoenv-equiv) (equal (funinfo+funenv-nofunp funinfoenv) (funinfo+funenv-nofunp funinfoenv-equiv))) :rule-classes :congruence)