(vl-operandinfo-base-svar x outer-ss &key (strictp 't)) → (mv err svar)
Function:
(defun vl-operandinfo-base-svar-fn (x outer-ss strictp) (declare (xargs :guard (and (vl-operandinfo-p x) (vl-scopestack-p outer-ss) (booleanp strictp)))) (declare (xargs :guard (and (vl-operandinfo-usertypes-ok x) (vl-hidtrace-resolved-p (vl-operandinfo->hidtrace x))))) (let ((__function__ 'vl-operandinfo-base-svar)) (declare (ignorable __function__)) (b* (((vl-operandinfo x)) (path (vl-hidtrace-to-path x.hidtrace nil)) ((mv err addr) (vl-scopecontext-to-addr x.context outer-ss path :strictp strictp)) ((when err) (mv err nil))) (mv nil (sv::make-svar :name addr)))))
Theorem:
(defthm return-type-of-vl-operandinfo-base-svar.err (b* (((mv ?err ?svar) (vl-operandinfo-base-svar-fn x outer-ss strictp))) (iff (vl-msg-p err) err)) :rule-classes :rewrite)
Theorem:
(defthm return-type-of-vl-operandinfo-base-svar.svar (b* (((mv ?err ?svar) (vl-operandinfo-base-svar-fn x outer-ss strictp))) (implies (not err) (sv::svar-p svar))) :rule-classes :rewrite)
Theorem:
(defthm vars-of-vl-operandinfo-base-svar (b* (((mv ?err ?svar) (vl-operandinfo-base-svar-fn x outer-ss strictp))) (implies (not err) (sv::svar-addr-p svar))))
Theorem:
(defthm vl-operandinfo-base-svar-fn-of-vl-operandinfo-fix-x (equal (vl-operandinfo-base-svar-fn (vl-operandinfo-fix x) outer-ss strictp) (vl-operandinfo-base-svar-fn x outer-ss strictp)))
Theorem:
(defthm vl-operandinfo-base-svar-fn-vl-operandinfo-equiv-congruence-on-x (implies (vl-operandinfo-equiv x x-equiv) (equal (vl-operandinfo-base-svar-fn x outer-ss strictp) (vl-operandinfo-base-svar-fn x-equiv outer-ss strictp))) :rule-classes :congruence)
Theorem:
(defthm vl-operandinfo-base-svar-fn-of-vl-scopestack-fix-outer-ss (equal (vl-operandinfo-base-svar-fn x (vl-scopestack-fix outer-ss) strictp) (vl-operandinfo-base-svar-fn x outer-ss strictp)))
Theorem:
(defthm vl-operandinfo-base-svar-fn-vl-scopestack-equiv-congruence-on-outer-ss (implies (vl-scopestack-equiv outer-ss outer-ss-equiv) (equal (vl-operandinfo-base-svar-fn x outer-ss strictp) (vl-operandinfo-base-svar-fn x outer-ss-equiv strictp))) :rule-classes :congruence)
Theorem:
(defthm vl-operandinfo-base-svar-fn-of-bool-fix-strictp (equal (vl-operandinfo-base-svar-fn x outer-ss (acl2::bool-fix strictp)) (vl-operandinfo-base-svar-fn x outer-ss strictp)))
Theorem:
(defthm vl-operandinfo-base-svar-fn-iff-congruence-on-strictp (implies (iff strictp strictp-equiv) (equal (vl-operandinfo-base-svar-fn x outer-ss strictp) (vl-operandinfo-base-svar-fn x outer-ss strictp-equiv))) :rule-classes :congruence)