Eliminate dead code in function information.
We apply the transformation to the body of the function.
Function:
(defun funinfo-dead (info) (declare (xargs :guard (funinfop info))) (let ((__function__ 'funinfo-dead)) (declare (ignorable __function__)) (change-funinfo info :body (block-dead (funinfo->body info)))))
Theorem:
(defthm funinfop-of-funinfo-dead (b* ((new-info (funinfo-dead info))) (funinfop new-info)) :rule-classes :rewrite)
Theorem:
(defthm funinfo-dead-of-funinfo (equal (funinfo-dead (funinfo inputs outputs body)) (funinfo inputs outputs (block-dead body))))
Theorem:
(defthm funinfo->inputs-of-funinfo-dead (equal (funinfo->inputs (funinfo-dead info)) (funinfo->inputs info)))
Theorem:
(defthm funinfo->outputs-of-funinfo-dead (equal (funinfo->outputs (funinfo-dead info)) (funinfo->outputs info)))
Theorem:
(defthm funinfo->body-of-funinfo-dead (equal (funinfo->body (funinfo-dead info)) (block-dead (funinfo->body info))))
Theorem:
(defthm funinfo-dead-of-funinfo-fix-info (equal (funinfo-dead (funinfo-fix info)) (funinfo-dead info)))
Theorem:
(defthm funinfo-dead-funinfo-equiv-congruence-on-info (implies (funinfo-equiv info info-equiv) (equal (funinfo-dead info) (funinfo-dead info-equiv))) :rule-classes :congruence)