(vl-elabscope-subscope key x) → subscope
Function:
(defun vl-elabscope-subscope (key x) (declare (xargs :guard (and (vl-elabkey-p key) (vl-elabscope-p x)))) (let ((__function__ 'vl-elabscope-subscope)) (declare (ignorable __function__)) (cdr (hons-get (vl-elabkey-fix key) (vl-elabscope->subscopes x)))))
Theorem:
(defthm return-type-of-vl-elabscope-subscope (b* ((subscope (vl-elabscope-subscope key x))) (iff (vl-elabscope-p subscope) subscope)) :rule-classes :rewrite)
Theorem:
(defthm vl-elabscope-subscope-of-vl-elabkey-fix-key (equal (vl-elabscope-subscope (vl-elabkey-fix key) x) (vl-elabscope-subscope key x)))
Theorem:
(defthm vl-elabscope-subscope-vl-elabkey-equiv-congruence-on-key (implies (vl-elabkey-equiv key key-equiv) (equal (vl-elabscope-subscope key x) (vl-elabscope-subscope key-equiv x))) :rule-classes :congruence)
Theorem:
(defthm vl-elabscope-subscope-of-vl-elabscope-fix-x (equal (vl-elabscope-subscope key (vl-elabscope-fix x)) (vl-elabscope-subscope key x)))
Theorem:
(defthm vl-elabscope-subscope-vl-elabscope-equiv-congruence-on-x (implies (vl-elabscope-equiv x x-equiv) (equal (vl-elabscope-subscope key x) (vl-elabscope-subscope key x-equiv))) :rule-classes :congruence)