(vl-design-bindelim-pass1 x) → (mv new-x delta)
Function:
(defun vl-design-bindelim-pass1 (x) (declare (xargs :guard (vl-design-p x))) (let ((__function__ 'vl-design-bindelim-pass1)) (declare (ignorable __function__)) (b* (((vl-design x) (vl-design-fix x)) (ss (vl-scopestack-init x)) (itbl (vl-bindelim-create-insttable x)) (delta nil) ((mv new-mods delta) (vl-modulelist-bindelim x.mods ss itbl delta)) ((mv new-ifs delta) (vl-interfacelist-bindelim x.interfaces ss itbl delta)) (warnings x.warnings) ((mv warnings new-binds delta) (vl-bindelim-bindlist x.binds ss x itbl delta nil warnings)) (new-x (change-vl-design x :mods new-mods :interfaces new-ifs :binds new-binds :warnings warnings)) (delta (fast-alist-clean delta))) (fast-alist-free itbl) (mv new-x delta))))
Theorem:
(defthm vl-design-p-of-vl-design-bindelim-pass1.new-x (b* (((mv ?new-x ?delta) (vl-design-bindelim-pass1 x))) (vl-design-p new-x)) :rule-classes :rewrite)
Theorem:
(defthm vl-binddelta-p-of-vl-design-bindelim-pass1.delta (b* (((mv ?new-x ?delta) (vl-design-bindelim-pass1 x))) (vl-binddelta-p delta)) :rule-classes :rewrite)
Theorem:
(defthm vl-design-bindelim-pass1-of-vl-design-fix-x (equal (vl-design-bindelim-pass1 (vl-design-fix x)) (vl-design-bindelim-pass1 x)))
Theorem:
(defthm vl-design-bindelim-pass1-vl-design-equiv-congruence-on-x (implies (vl-design-equiv x x-equiv) (equal (vl-design-bindelim-pass1 x) (vl-design-bindelim-pass1 x-equiv))) :rule-classes :congruence)