Assumes X has already been shrunk, so we may safely recur down it.
(vl-clean-reportcard-aux x acc) → acc
Function:
(defun vl-clean-reportcard-aux (x acc) (declare (xargs :guard (and (vl-reportcard-p x) (vl-reportcard-p acc)))) (let ((__function__ 'vl-clean-reportcard-aux)) (declare (ignorable __function__)) (b* ((x (vl-reportcard-fix x)) ((when (atom x)) (vl-reportcard-fix acc)) ((cons name warnings) (car x)) (warnings (vl-clean-warnings warnings)) (acc (if (atom warnings) acc (hons-acons name warnings acc)))) (vl-clean-reportcard-aux (cdr x) acc))))
Theorem:
(defthm vl-reportcard-p-of-vl-clean-reportcard-aux (b* ((acc (vl-clean-reportcard-aux x acc))) (vl-reportcard-p acc)) :rule-classes :rewrite)
Theorem:
(defthm vl-clean-reportcard-aux-of-vl-reportcard-fix-x (equal (vl-clean-reportcard-aux (vl-reportcard-fix x) acc) (vl-clean-reportcard-aux x acc)))
Theorem:
(defthm vl-clean-reportcard-aux-vl-reportcard-equiv-congruence-on-x (implies (vl-reportcard-equiv x x-equiv) (equal (vl-clean-reportcard-aux x acc) (vl-clean-reportcard-aux x-equiv acc))) :rule-classes :congruence)
Theorem:
(defthm vl-clean-reportcard-aux-of-vl-reportcard-fix-acc (equal (vl-clean-reportcard-aux x (vl-reportcard-fix acc)) (vl-clean-reportcard-aux x acc)))
Theorem:
(defthm vl-clean-reportcard-aux-vl-reportcard-equiv-congruence-on-acc (implies (vl-reportcard-equiv acc acc-equiv) (equal (vl-clean-reportcard-aux x acc) (vl-clean-reportcard-aux x acc-equiv))) :rule-classes :congruence)