(vl-interfaceport-default-signature port warnings elabindex ledger &key (config 'config)) → (mv ok instkey warnings new-elabindex ledger)
Function:
(defun vl-interfaceport-default-signature-fn (port warnings elabindex ledger config) (declare (xargs :stobjs (elabindex))) (declare (xargs :guard (and (vl-interfaceport-p port) (vl-warninglist-p warnings) (vl-unparam-ledger-p ledger) (vl-simpconfig-p config)))) (let ((__function__ 'vl-interfaceport-default-signature)) (declare (ignorable __function__)) (b* (((vl-interfaceport port)) (ledger (vl-unparam-ledger-fix ledger)) (x (vl-scopestack-find-definition port.ifname (vl-elabindex->ss))) ((unless (and x (eq (tag x) :vl-interface))) (mv nil nil (fatal :type :vl-unparam-fail :msg "Programming error: interface ~s0 for top-level interface port not found" :args (list port.ifname)) elabindex ledger)) ((vl-elabindex elabindex) (vl-elabindex-push x)) (paramdecls (vl-interface->paramdecls x)) ((mv ok scope-warnings elabindex final-paramdecls) (vl-scope-finalize-params paramdecls (make-vl-paramargs-named) nil elabindex elabindex.ss (caar (vl-elabindex->undostack)))) (warnings (append (vl-warninglist-add-ctx scope-warnings (vl-interfaceport-fix port)) (vl-warninglist-fix warnings))) (inside-mod-ss (vl-elabindex->ss)) (elabindex (vl-elabindex-undo)) ((unless ok) (mv nil nil warnings elabindex ledger)) ((mv instkey ledger) (vl-unparam-add-to-ledger port.ifname final-paramdecls (vl-interface->ports x) nil ledger elabindex.ss inside-mod-ss :no-rename t))) (mv t instkey warnings elabindex ledger))))
Theorem:
(defthm return-type-of-vl-interfaceport-default-signature.instkey (b* (((mv ?ok ?instkey ?warnings ?new-elabindex ?ledger) (vl-interfaceport-default-signature-fn port warnings elabindex ledger config))) (implies ok (vl-unparam-instkey-p instkey))) :rule-classes :rewrite)
Theorem:
(defthm vl-warninglist-p-of-vl-interfaceport-default-signature.warnings (b* (((mv ?ok ?instkey ?warnings ?new-elabindex ?ledger) (vl-interfaceport-default-signature-fn port warnings elabindex ledger config))) (vl-warninglist-p warnings)) :rule-classes :rewrite)
Theorem:
(defthm vl-unparam-ledger-p-of-vl-interfaceport-default-signature.ledger (b* (((mv ?ok ?instkey ?warnings ?new-elabindex ?ledger) (vl-interfaceport-default-signature-fn port warnings elabindex ledger config))) (vl-unparam-ledger-p ledger)) :rule-classes :rewrite)
Theorem:
(defthm vl-interfaceport-default-signature-fn-of-vl-interfaceport-fix-port (equal (vl-interfaceport-default-signature-fn (vl-interfaceport-fix port) warnings elabindex ledger config) (vl-interfaceport-default-signature-fn port warnings elabindex ledger config)))
Theorem:
(defthm vl-interfaceport-default-signature-fn-vl-interfaceport-equiv-congruence-on-port (implies (vl-interfaceport-equiv port port-equiv) (equal (vl-interfaceport-default-signature-fn port warnings elabindex ledger config) (vl-interfaceport-default-signature-fn port-equiv warnings elabindex ledger config))) :rule-classes :congruence)
Theorem:
(defthm vl-interfaceport-default-signature-fn-of-vl-warninglist-fix-warnings (equal (vl-interfaceport-default-signature-fn port (vl-warninglist-fix warnings) elabindex ledger config) (vl-interfaceport-default-signature-fn port warnings elabindex ledger config)))
Theorem:
(defthm vl-interfaceport-default-signature-fn-vl-warninglist-equiv-congruence-on-warnings (implies (vl-warninglist-equiv warnings warnings-equiv) (equal (vl-interfaceport-default-signature-fn port warnings elabindex ledger config) (vl-interfaceport-default-signature-fn port warnings-equiv elabindex ledger config))) :rule-classes :congruence)
Theorem:
(defthm vl-interfaceport-default-signature-fn-of-vl-unparam-ledger-fix-ledger (equal (vl-interfaceport-default-signature-fn port warnings elabindex (vl-unparam-ledger-fix ledger) config) (vl-interfaceport-default-signature-fn port warnings elabindex ledger config)))
Theorem:
(defthm vl-interfaceport-default-signature-fn-vl-unparam-ledger-equiv-congruence-on-ledger (implies (vl-unparam-ledger-equiv ledger ledger-equiv) (equal (vl-interfaceport-default-signature-fn port warnings elabindex ledger config) (vl-interfaceport-default-signature-fn port warnings elabindex ledger-equiv config))) :rule-classes :congruence)
Theorem:
(defthm vl-interfaceport-default-signature-fn-of-vl-simpconfig-fix-config (equal (vl-interfaceport-default-signature-fn port warnings elabindex ledger (vl-simpconfig-fix config)) (vl-interfaceport-default-signature-fn port warnings elabindex ledger config)))
Theorem:
(defthm vl-interfaceport-default-signature-fn-vl-simpconfig-equiv-congruence-on-config (implies (vl-simpconfig-equiv config config-equiv) (equal (vl-interfaceport-default-signature-fn port warnings elabindex ledger config) (vl-interfaceport-default-signature-fn port warnings elabindex ledger config-equiv))) :rule-classes :congruence)