(vl-interface-apply-binddelta x delta) → new-x
Function:
(defun vl-interface-apply-binddelta (x delta) (declare (xargs :guard (and (vl-interface-p x) (vl-binddelta-p delta)))) (let ((__function__ 'vl-interface-apply-binddelta)) (declare (ignorable __function__)) (b* (((vl-interface x) (vl-interface-fix x)) (delta (vl-binddelta-fix delta)) (intents (cdr (hons-get x.name delta))) ((unless intents) x) (new-insts (vl-bindintentlist->modinsts intents))) (change-vl-interface x :modinsts (append-without-guard x.modinsts new-insts)))))
Theorem:
(defthm vl-interface-p-of-vl-interface-apply-binddelta (b* ((new-x (vl-interface-apply-binddelta x delta))) (vl-interface-p new-x)) :rule-classes :rewrite)
Theorem:
(defthm vl-interface-apply-binddelta-of-vl-interface-fix-x (equal (vl-interface-apply-binddelta (vl-interface-fix x) delta) (vl-interface-apply-binddelta x delta)))
Theorem:
(defthm vl-interface-apply-binddelta-vl-interface-equiv-congruence-on-x (implies (vl-interface-equiv x x-equiv) (equal (vl-interface-apply-binddelta x delta) (vl-interface-apply-binddelta x-equiv delta))) :rule-classes :congruence)
Theorem:
(defthm vl-interface-apply-binddelta-of-vl-binddelta-fix-delta (equal (vl-interface-apply-binddelta x (vl-binddelta-fix delta)) (vl-interface-apply-binddelta x delta)))
Theorem:
(defthm vl-interface-apply-binddelta-vl-binddelta-equiv-congruence-on-delta (implies (vl-binddelta-equiv delta delta-equiv) (equal (vl-interface-apply-binddelta x delta) (vl-interface-apply-binddelta x delta-equiv))) :rule-classes :congruence)