Construct a vl-reportcard of fatal warnings for a vl-blamealist-p.
(vl-blame-alist-to-reportcard blame-alist reportcard) → reportcard
Function:
(defun vl-blame-alist-to-reportcard (blame-alist reportcard) (declare (xargs :guard (and (vl-blamealist-p blame-alist) (vl-reportcard-p reportcard)))) (let ((__function__ 'vl-blame-alist-to-reportcard)) (declare (ignorable __function__)) (b* ((blame-alist (vl-blamealist-fix blame-alist)) ((when (atom blame-alist)) (vl-reportcard-fix reportcard)) ((cons name root-probs) (car blame-alist)) (root-probs (remove-equal name root-probs)) ((unless root-probs) (vl-blame-alist-to-reportcard (cdr blame-alist) reportcard)) (warning (make-vl-warning :type :vl-bad-dependency :msg "~m0 (perhaps transitively) depends on other design elements ~ that we were not able to process successfully: ~&1." :args (list name root-probs) :fatalp t :fn __function__)) (reportcard (vl-extend-reportcard name warning reportcard))) (vl-blame-alist-to-reportcard (cdr blame-alist) reportcard))))
Theorem:
(defthm vl-reportcard-p-of-vl-blame-alist-to-reportcard (b* ((reportcard (vl-blame-alist-to-reportcard blame-alist reportcard))) (vl-reportcard-p reportcard)) :rule-classes :rewrite)
Theorem:
(defthm vl-blame-alist-to-reportcard-of-vl-blamealist-fix-blame-alist (equal (vl-blame-alist-to-reportcard (vl-blamealist-fix blame-alist) reportcard) (vl-blame-alist-to-reportcard blame-alist reportcard)))
Theorem:
(defthm vl-blame-alist-to-reportcard-vl-blamealist-equiv-congruence-on-blame-alist (implies (vl-blamealist-equiv blame-alist blame-alist-equiv) (equal (vl-blame-alist-to-reportcard blame-alist reportcard) (vl-blame-alist-to-reportcard blame-alist-equiv reportcard))) :rule-classes :congruence)
Theorem:
(defthm vl-blame-alist-to-reportcard-of-vl-reportcard-fix-reportcard (equal (vl-blame-alist-to-reportcard blame-alist (vl-reportcard-fix reportcard)) (vl-blame-alist-to-reportcard blame-alist reportcard)))
Theorem:
(defthm vl-blame-alist-to-reportcard-vl-reportcard-equiv-congruence-on-reportcard (implies (vl-reportcard-equiv reportcard reportcard-equiv) (equal (vl-blame-alist-to-reportcard blame-alist reportcard) (vl-blame-alist-to-reportcard blame-alist reportcard-equiv))) :rule-classes :congruence)