Function information for a function definition.
This just takes the inputs, outputs, and body of the function definition and forms function information with them.
Function:
(defun funinfo-for-fundef (fundef) (declare (xargs :guard (fundefp fundef))) (let ((__function__ 'funinfo-for-fundef)) (declare (ignorable __function__)) (make-funinfo :inputs (fundef->inputs fundef) :outputs (fundef->outputs fundef) :body (fundef->body fundef))))
Theorem:
(defthm funinfop-of-funinfo-for-fundef (b* ((funinfo (funinfo-for-fundef fundef))) (funinfop funinfo)) :rule-classes :rewrite)
Theorem:
(defthm funinfo-for-fundef-of-fundef-fix-fundef (equal (funinfo-for-fundef (fundef-fix fundef)) (funinfo-for-fundef fundef)))
Theorem:
(defthm funinfo-for-fundef-fundef-equiv-congruence-on-fundef (implies (fundef-equiv fundef fundef-equiv) (equal (funinfo-for-fundef fundef) (funinfo-for-fundef fundef-equiv))) :rule-classes :congruence)