(vl-bindelim-bindlist x ss ctx itbl delta genp warnings) → (mv warnings new-x delta)
Function:
(defun vl-bindelim-bindlist (x ss ctx itbl delta genp warnings) (declare (xargs :guard (and (vl-bindlist-p x) (vl-scopestack-p ss) (vl-bindcontext-p ctx) (vl-bindelim-insttable-p itbl) (vl-binddelta-p delta) (booleanp genp) (vl-warninglist-p warnings)))) (let ((__function__ 'vl-bindelim-bindlist)) (declare (ignorable __function__)) (b* (((when (atom x)) (mv (ok) nil (vl-binddelta-fix delta))) ((mv warnings x1 delta) (vl-bindelim-main (car x) ss ctx itbl delta genp warnings)) ((mv warnings xrest delta) (vl-bindelim-bindlist (cdr x) ss ctx itbl delta genp warnings))) (mv warnings (append-without-guard x1 xrest) delta))))
Theorem:
(defthm vl-warninglist-p-of-vl-bindelim-bindlist.warnings (b* (((mv ?warnings ?new-x ?delta) (vl-bindelim-bindlist x ss ctx itbl delta genp warnings))) (vl-warninglist-p warnings)) :rule-classes :rewrite)
Theorem:
(defthm vl-bindlist-p-of-vl-bindelim-bindlist.new-x (b* (((mv ?warnings ?new-x ?delta) (vl-bindelim-bindlist x ss ctx itbl delta genp warnings))) (vl-bindlist-p new-x)) :rule-classes :rewrite)
Theorem:
(defthm vl-binddelta-p-of-vl-bindelim-bindlist.delta (b* (((mv ?warnings ?new-x ?delta) (vl-bindelim-bindlist x ss ctx itbl delta genp warnings))) (vl-binddelta-p delta)) :rule-classes :rewrite)
Theorem:
(defthm vl-bindelim-bindlist-of-vl-bindlist-fix-x (equal (vl-bindelim-bindlist (vl-bindlist-fix x) ss ctx itbl delta genp warnings) (vl-bindelim-bindlist x ss ctx itbl delta genp warnings)))
Theorem:
(defthm vl-bindelim-bindlist-vl-bindlist-equiv-congruence-on-x (implies (vl-bindlist-equiv x x-equiv) (equal (vl-bindelim-bindlist x ss ctx itbl delta genp warnings) (vl-bindelim-bindlist x-equiv ss ctx itbl delta genp warnings))) :rule-classes :congruence)
Theorem:
(defthm vl-bindelim-bindlist-of-vl-scopestack-fix-ss (equal (vl-bindelim-bindlist x (vl-scopestack-fix ss) ctx itbl delta genp warnings) (vl-bindelim-bindlist x ss ctx itbl delta genp warnings)))
Theorem:
(defthm vl-bindelim-bindlist-vl-scopestack-equiv-congruence-on-ss (implies (vl-scopestack-equiv ss ss-equiv) (equal (vl-bindelim-bindlist x ss ctx itbl delta genp warnings) (vl-bindelim-bindlist x ss-equiv ctx itbl delta genp warnings))) :rule-classes :congruence)
Theorem:
(defthm vl-bindelim-bindlist-of-vl-bindcontext-fix-ctx (equal (vl-bindelim-bindlist x ss (vl-bindcontext-fix ctx) itbl delta genp warnings) (vl-bindelim-bindlist x ss ctx itbl delta genp warnings)))
Theorem:
(defthm vl-bindelim-bindlist-vl-bindcontext-equiv-congruence-on-ctx (implies (vl-bindcontext-equiv ctx ctx-equiv) (equal (vl-bindelim-bindlist x ss ctx itbl delta genp warnings) (vl-bindelim-bindlist x ss ctx-equiv itbl delta genp warnings))) :rule-classes :congruence)
Theorem:
(defthm vl-bindelim-bindlist-of-vl-bindelim-insttable-fix-itbl (equal (vl-bindelim-bindlist x ss ctx (vl-bindelim-insttable-fix itbl) delta genp warnings) (vl-bindelim-bindlist x ss ctx itbl delta genp warnings)))
Theorem:
(defthm vl-bindelim-bindlist-vl-bindelim-insttable-equiv-congruence-on-itbl (implies (vl-bindelim-insttable-equiv itbl itbl-equiv) (equal (vl-bindelim-bindlist x ss ctx itbl delta genp warnings) (vl-bindelim-bindlist x ss ctx itbl-equiv delta genp warnings))) :rule-classes :congruence)
Theorem:
(defthm vl-bindelim-bindlist-of-vl-binddelta-fix-delta (equal (vl-bindelim-bindlist x ss ctx itbl (vl-binddelta-fix delta) genp warnings) (vl-bindelim-bindlist x ss ctx itbl delta genp warnings)))
Theorem:
(defthm vl-bindelim-bindlist-vl-binddelta-equiv-congruence-on-delta (implies (vl-binddelta-equiv delta delta-equiv) (equal (vl-bindelim-bindlist x ss ctx itbl delta genp warnings) (vl-bindelim-bindlist x ss ctx itbl delta-equiv genp warnings))) :rule-classes :congruence)
Theorem:
(defthm vl-bindelim-bindlist-of-bool-fix-genp (equal (vl-bindelim-bindlist x ss ctx itbl delta (acl2::bool-fix genp) warnings) (vl-bindelim-bindlist x ss ctx itbl delta genp warnings)))
Theorem:
(defthm vl-bindelim-bindlist-iff-congruence-on-genp (implies (iff genp genp-equiv) (equal (vl-bindelim-bindlist x ss ctx itbl delta genp warnings) (vl-bindelim-bindlist x ss ctx itbl delta genp-equiv warnings))) :rule-classes :congruence)
Theorem:
(defthm vl-bindelim-bindlist-of-vl-warninglist-fix-warnings (equal (vl-bindelim-bindlist x ss ctx itbl delta genp (vl-warninglist-fix warnings)) (vl-bindelim-bindlist x ss ctx itbl delta genp warnings)))
Theorem:
(defthm vl-bindelim-bindlist-vl-warninglist-equiv-congruence-on-warnings (implies (vl-warninglist-equiv warnings warnings-equiv) (equal (vl-bindelim-bindlist x ss ctx itbl delta genp warnings) (vl-bindelim-bindlist x ss ctx itbl delta genp warnings-equiv))) :rule-classes :congruence)