Check that a function scope has no function definitions in the functions' bodies.
Function:
(defun funscope-nofunp (funscope) (declare (xargs :guard (funscopep funscope))) (let ((__function__ 'funscope-nofunp)) (declare (ignorable __function__)) (or (not (mbt (funscopep funscope))) (omap::emptyp funscope) (and (b* (((mv & funinfo) (omap::head funscope))) (funinfo-nofunp funinfo)) (funscope-nofunp (omap::tail funscope))))))
Theorem:
(defthm booleanp-of-funscope-nofunp (b* ((yes/no (funscope-nofunp funscope))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm funinfo-nofunp-of-cdr-of-in-when-funscope-nofunp (implies (and (funscopep funscope) (funscope-nofunp funscope) (consp (omap::assoc fun funscope))) (funinfo-nofunp (cdr (omap::assoc fun funscope)))))
Theorem:
(defthm funscope-nofunp-of-update (implies (and (funscopep funscope) (funscope-nofunp funscope) (funinfop funinfo) (funinfo-nofunp funinfo)) (funscope-nofunp (omap::update fun funinfo funscope))))
Theorem:
(defthm funscope-nofunp-of-funscope-fix-funscope (equal (funscope-nofunp (funscope-fix funscope)) (funscope-nofunp funscope)))
Theorem:
(defthm funscope-nofunp-funscope-equiv-congruence-on-funscope (implies (funscope-equiv funscope funscope-equiv) (equal (funscope-nofunp funscope) (funscope-nofunp funscope-equiv))) :rule-classes :congruence)