(vl-bindelim-main x ss ctx itbl delta genp warnings) → (mv warnings new-x delta)
Function:
(defun vl-bindelim-main (x ss ctx itbl delta genp warnings) (declare (xargs :guard (and (vl-bind-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-main)) (declare (ignorable __function__)) (b* ((x (vl-bind-fix x)) (delta (vl-binddelta-fix delta)) ((mv modname warnings) (vl-bindelim-find-global-target x itbl ss warnings)) ((unless modname) (mv warnings (list x) delta)) ((when genp) (mv (fatal :type :vl-bindelim-fail :msg "~a0: bind statements within generates are not yet supported." :args (list x)) (list x) delta)) (intent (make-vl-bindintent :source x :ctx ctx)) (old-intents (cdr (hons-get modname delta))) (new-intents (cons intent old-intents)) (delta (hons-acons modname new-intents delta))) (mv warnings nil delta))))
Theorem:
(defthm vl-warninglist-p-of-vl-bindelim-main.warnings (b* (((mv ?warnings ?new-x ?delta) (vl-bindelim-main x ss ctx itbl delta genp warnings))) (vl-warninglist-p warnings)) :rule-classes :rewrite)
Theorem:
(defthm vl-bindlist-p-of-vl-bindelim-main.new-x (b* (((mv ?warnings ?new-x ?delta) (vl-bindelim-main x ss ctx itbl delta genp warnings))) (vl-bindlist-p new-x)) :rule-classes :rewrite)
Theorem:
(defthm vl-binddelta-p-of-vl-bindelim-main.delta (b* (((mv ?warnings ?new-x ?delta) (vl-bindelim-main x ss ctx itbl delta genp warnings))) (vl-binddelta-p delta)) :rule-classes :rewrite)
Theorem:
(defthm vl-bindelim-main-of-vl-bind-fix-x (equal (vl-bindelim-main (vl-bind-fix x) ss ctx itbl delta genp warnings) (vl-bindelim-main x ss ctx itbl delta genp warnings)))
Theorem:
(defthm vl-bindelim-main-vl-bind-equiv-congruence-on-x (implies (vl-bind-equiv x x-equiv) (equal (vl-bindelim-main x ss ctx itbl delta genp warnings) (vl-bindelim-main x-equiv ss ctx itbl delta genp warnings))) :rule-classes :congruence)
Theorem:
(defthm vl-bindelim-main-of-vl-scopestack-fix-ss (equal (vl-bindelim-main x (vl-scopestack-fix ss) ctx itbl delta genp warnings) (vl-bindelim-main x ss ctx itbl delta genp warnings)))
Theorem:
(defthm vl-bindelim-main-vl-scopestack-equiv-congruence-on-ss (implies (vl-scopestack-equiv ss ss-equiv) (equal (vl-bindelim-main x ss ctx itbl delta genp warnings) (vl-bindelim-main x ss-equiv ctx itbl delta genp warnings))) :rule-classes :congruence)
Theorem:
(defthm vl-bindelim-main-of-vl-bindcontext-fix-ctx (equal (vl-bindelim-main x ss (vl-bindcontext-fix ctx) itbl delta genp warnings) (vl-bindelim-main x ss ctx itbl delta genp warnings)))
Theorem:
(defthm vl-bindelim-main-vl-bindcontext-equiv-congruence-on-ctx (implies (vl-bindcontext-equiv ctx ctx-equiv) (equal (vl-bindelim-main x ss ctx itbl delta genp warnings) (vl-bindelim-main x ss ctx-equiv itbl delta genp warnings))) :rule-classes :congruence)
Theorem:
(defthm vl-bindelim-main-of-vl-bindelim-insttable-fix-itbl (equal (vl-bindelim-main x ss ctx (vl-bindelim-insttable-fix itbl) delta genp warnings) (vl-bindelim-main x ss ctx itbl delta genp warnings)))
Theorem:
(defthm vl-bindelim-main-vl-bindelim-insttable-equiv-congruence-on-itbl (implies (vl-bindelim-insttable-equiv itbl itbl-equiv) (equal (vl-bindelim-main x ss ctx itbl delta genp warnings) (vl-bindelim-main x ss ctx itbl-equiv delta genp warnings))) :rule-classes :congruence)
Theorem:
(defthm vl-bindelim-main-of-vl-binddelta-fix-delta (equal (vl-bindelim-main x ss ctx itbl (vl-binddelta-fix delta) genp warnings) (vl-bindelim-main x ss ctx itbl delta genp warnings)))
Theorem:
(defthm vl-bindelim-main-vl-binddelta-equiv-congruence-on-delta (implies (vl-binddelta-equiv delta delta-equiv) (equal (vl-bindelim-main x ss ctx itbl delta genp warnings) (vl-bindelim-main x ss ctx itbl delta-equiv genp warnings))) :rule-classes :congruence)
Theorem:
(defthm vl-bindelim-main-of-bool-fix-genp (equal (vl-bindelim-main x ss ctx itbl delta (acl2::bool-fix genp) warnings) (vl-bindelim-main x ss ctx itbl delta genp warnings)))
Theorem:
(defthm vl-bindelim-main-iff-congruence-on-genp (implies (iff genp genp-equiv) (equal (vl-bindelim-main x ss ctx itbl delta genp warnings) (vl-bindelim-main x ss ctx itbl delta genp-equiv warnings))) :rule-classes :congruence)
Theorem:
(defthm vl-bindelim-main-of-vl-warninglist-fix-warnings (equal (vl-bindelim-main x ss ctx itbl delta genp (vl-warninglist-fix warnings)) (vl-bindelim-main x ss ctx itbl delta genp warnings)))
Theorem:
(defthm vl-bindelim-main-vl-warninglist-equiv-congruence-on-warnings (implies (vl-warninglist-equiv warnings warnings-equiv) (equal (vl-bindelim-main x ss ctx itbl delta genp warnings) (vl-bindelim-main x ss ctx itbl delta genp warnings-equiv))) :rule-classes :congruence)