(elab-mod-add-wires wires elab-mod) → elab-mod
Function:
(defun elab-mod-add-wires (wires elab-mod) (declare (xargs :stobjs (elab-mod))) (declare (xargs :guard (wirelist-p wires))) (let ((__function__ 'elab-mod-add-wires)) (declare (ignorable __function__)) (mbe :logic (non-exec (s :wires (wirelist-rem-dups (append (g :wires elab-mod) wires)) (elab-mod-fix elab-mod))) :exec (if (atom wires) (elab-mod-fix elab-mod) (let* ((elab-mod (elab-mod-add-wire (car wires) elab-mod))) (elab-mod-add-wires (cdr wires) elab-mod))))))
Theorem:
(defthm elab-mod-add-wires-of-wirelist-fix-wires (equal (elab-mod-add-wires (wirelist-fix wires) elab-mod) (elab-mod-add-wires wires elab-mod)))
Theorem:
(defthm elab-mod-add-wires-wirelist-equiv-congruence-on-wires (implies (wirelist-equiv wires wires-equiv) (equal (elab-mod-add-wires wires elab-mod) (elab-mod-add-wires wires-equiv elab-mod))) :rule-classes :congruence)
Theorem:
(defthm elab-mod-add-wires-of-elab-mod$a-fix-elab-mod (equal (elab-mod-add-wires wires (elab-mod$a-fix elab-mod)) (elab-mod-add-wires wires elab-mod)))
Theorem:
(defthm elab-mod-add-wires-elab-mod$a-equiv-congruence-on-elab-mod (implies (elab-mod$a-equiv elab-mod elab-mod-equiv) (equal (elab-mod-add-wires wires elab-mod) (elab-mod-add-wires wires elab-mod-equiv))) :rule-classes :congruence)