(elab-modinst-remove-names names x) → xx
Function:
(defun elab-modinst-remove-names (names x) (declare (xargs :guard (and (namelist-p names) (elab-modinst-list-p x)))) (let ((__function__ 'elab-modinst-remove-names)) (declare (ignorable __function__)) (if (atom names) (elab-modinst-list-fix x) (elab-modinst-remove-name (car names) (elab-modinst-remove-names (cdr names) x)))))
Theorem:
(defthm elab-modinst-list-p-of-elab-modinst-remove-names (b* ((xx (elab-modinst-remove-names names x))) (elab-modinst-list-p xx)) :rule-classes :rewrite)
Theorem:
(defthm elab-modinst-remove-names-of-nil (equal (elab-modinst-remove-names nil x) (elab-modinst-list-fix x)))
Theorem:
(defthm elab-modinst-remove-names-of-nil-second (equal (elab-modinst-remove-names x nil) nil))
Theorem:
(defthm elab-modinst-remove-names-of-cons-second (equal (elab-modinst-remove-names x (cons y z)) (if (member (name-fix (nth *elab-modinst$c->instname* y)) (namelist-fix x)) (elab-modinst-remove-names x z) (cons (elab-modinst-fix y) (elab-modinst-remove-names x z)))))
Theorem:
(defthm elab-modinst-remove-names-of-namelist-fix-names (equal (elab-modinst-remove-names (namelist-fix names) x) (elab-modinst-remove-names names x)))
Theorem:
(defthm elab-modinst-remove-names-namelist-equiv-congruence-on-names (implies (namelist-equiv names names-equiv) (equal (elab-modinst-remove-names names x) (elab-modinst-remove-names names-equiv x))) :rule-classes :congruence)
Theorem:
(defthm elab-modinst-remove-names-of-elab-modinst-list-fix-x (equal (elab-modinst-remove-names names (elab-modinst-list-fix x)) (elab-modinst-remove-names names x)))
Theorem:
(defthm elab-modinst-remove-names-elab-modinst-list-equiv-congruence-on-x (implies (elab-modinst-list-equiv x x-equiv) (equal (elab-modinst-remove-names names x) (elab-modinst-remove-names names x-equiv))) :rule-classes :congruence)