(vl-elide-warnings-main x cutoff suppressed counts-fal acc) → (mv acc counts-fal suppressed)
Function:
(defun vl-elide-warnings-main (x cutoff suppressed counts-fal acc) (declare (xargs :guard (and (vl-warninglist-p x) (natp cutoff) (symbol-listp suppressed) (vl-warninglist-p acc)))) (let ((__function__ 'vl-elide-warnings-main)) (declare (ignorable __function__)) (b* ((x (vl-warninglist-fix x)) (acc (vl-warninglist-fix acc)) (cutoff (lnfix cutoff)) ((when (atom x)) (mv acc cutoff suppressed)) ((vl-warning x1) (car x)) (curr (nfix (cdr (hons-get x1.type counts-fal)))) (counts-fal (hons-acons x1.type (+ 1 curr) counts-fal)) (keep-p (< curr cutoff)) (acc (if keep-p (cons x1 acc) acc)) (suppressed (if keep-p suppressed (cons x1.type suppressed)))) (vl-elide-warnings-main (cdr x) cutoff suppressed counts-fal acc))))
Theorem:
(defthm vl-warninglist-p-of-vl-elide-warnings-main.acc (b* (((mv ?acc ?counts-fal ?suppressed) (vl-elide-warnings-main x cutoff suppressed counts-fal acc))) (vl-warninglist-p acc)) :rule-classes :rewrite)
Theorem:
(defthm symbol-listp-of-vl-elide-warnings-main.suppressed (implies (symbol-listp suppressed) (b* (((mv ?acc ?counts-fal ?suppressed) (vl-elide-warnings-main x cutoff suppressed counts-fal acc))) (symbol-listp suppressed))) :rule-classes :rewrite)
Theorem:
(defthm vl-elide-warnings-main-of-vl-warninglist-fix-x (equal (vl-elide-warnings-main (vl-warninglist-fix x) cutoff suppressed counts-fal acc) (vl-elide-warnings-main x cutoff suppressed counts-fal acc)))
Theorem:
(defthm vl-elide-warnings-main-vl-warninglist-equiv-congruence-on-x (implies (vl-warninglist-equiv x x-equiv) (equal (vl-elide-warnings-main x cutoff suppressed counts-fal acc) (vl-elide-warnings-main x-equiv cutoff suppressed counts-fal acc))) :rule-classes :congruence)
Theorem:
(defthm vl-elide-warnings-main-of-nfix-cutoff (equal (vl-elide-warnings-main x (nfix cutoff) suppressed counts-fal acc) (vl-elide-warnings-main x cutoff suppressed counts-fal acc)))
Theorem:
(defthm vl-elide-warnings-main-nat-equiv-congruence-on-cutoff (implies (acl2::nat-equiv cutoff cutoff-equiv) (equal (vl-elide-warnings-main x cutoff suppressed counts-fal acc) (vl-elide-warnings-main x cutoff-equiv suppressed counts-fal acc))) :rule-classes :congruence)
Theorem:
(defthm vl-elide-warnings-main-of-vl-warninglist-fix-acc (equal (vl-elide-warnings-main x cutoff suppressed counts-fal (vl-warninglist-fix acc)) (vl-elide-warnings-main x cutoff suppressed counts-fal acc)))
Theorem:
(defthm vl-elide-warnings-main-vl-warninglist-equiv-congruence-on-acc (implies (vl-warninglist-equiv acc acc-equiv) (equal (vl-elide-warnings-main x cutoff suppressed counts-fal acc) (vl-elide-warnings-main x cutoff suppressed counts-fal acc-equiv))) :rule-classes :congruence)