(svtv-debug-set-ios-logic &key (ins 'nil) (outs 'nil) (internals 'nil) (overrides 'nil) (moddb 'moddb) (aliases 'aliases) (debugdata 'debugdata) (rewrite 't)) → debugdata-out
Function:
(defun svtv-debug-set-ios-logic-fn (ins outs internals overrides moddb aliases debugdata rewrite) (declare (xargs :stobjs (moddb aliases debugdata))) (declare (xargs :guard (and (true-list-listp ins) (true-list-listp outs) (true-list-listp internals) (true-list-listp overrides)))) (declare (xargs :guard (and (moddb-ok moddb) (< (debugdata->modidx debugdata) (moddb->nmods moddb)) (<= (moddb-mod-totalwires (debugdata->modidx debugdata) moddb) (aliass-length aliases))))) (let ((__function__ 'svtv-debug-set-ios-logic)) (declare (ignorable __function__)) (b* (((debugdata debugdata)) ((when (eq debugdata.status :empty)) (raise "Error: Need to do SVTV-DEBUG-INIT before SVTV-DEBUG-SET-IOS~%") debugdata) (outs (append outs internals)) ((mv err ins) (svtv-wires->lhses ins debugdata.modidx moddb aliases)) ((when err) (raise "Error resolving inputs: ~@0" err) debugdata) ((mv err overrides) (svtv-wires->lhses overrides debugdata.modidx moddb aliases)) ((when err) (raise "Error resolving overrides: ~@0" err) debugdata) ((mv err outs) (svtv-wires->lhses outs debugdata.modidx moddb aliases)) ((when err) (raise "Error resolving outputs: ~@0" err) debugdata) (nphases (max (svtv-max-length ins) (max (svtv-max-length overrides) (svtv-max-length outs)))) (overrides (svtv-expand-lines overrides nphases)) ((mv updates next-states override-assigns) (b* (((when (and (eq debugdata.status :composed) (equal debugdata.overrides overrides))) (mv debugdata.updates debugdata.nextstates nil)) ((mv ?ovlines ovs) (svtv-lines->overrides overrides 0)) (overridden-assigns (svex-apply-overrides ovs (make-fast-alist debugdata.assigns))) (- (fast-alist-free overridden-assigns)) ((mv updates next-states ?constraints) (svex-compose-assigns/delays overridden-assigns debugdata.delays nil :rewrite rewrite))) (mv updates next-states overridden-assigns))) (debugdata (set-debugdata->updates updates debugdata)) (debugdata (set-debugdata->nextstates next-states debugdata)) (debugdata (set-debugdata->nphases nphases debugdata)) (debugdata (set-debugdata->ins ins debugdata)) (debugdata (set-debugdata->outs outs debugdata)) (debugdata (set-debugdata->overrides overrides debugdata)) (debugdata (set-debugdata->override-assigns override-assigns debugdata)) (debugdata (set-debugdata->status :composed debugdata))) debugdata)))
Theorem:
(defthm svtv-debug-set-ios-modidx-unchanged (b* ((?debugdata-out (svtv-debug-set-ios-logic-fn ins outs internals overrides moddb aliases debugdata rewrite))) (equal (nth *debugdata->modidx* debugdata-out) (nth *debugdata->modidx* debugdata))))
Theorem:
(defthm svtv-debug-set-ios-logic-fn-of-true-list-list-fix-ins (equal (svtv-debug-set-ios-logic-fn (true-list-list-fix ins) outs internals overrides moddb aliases debugdata rewrite) (svtv-debug-set-ios-logic-fn ins outs internals overrides moddb aliases debugdata rewrite)))
Theorem:
(defthm svtv-debug-set-ios-logic-fn-true-list-list-equiv-congruence-on-ins (implies (true-list-list-equiv ins ins-equiv) (equal (svtv-debug-set-ios-logic-fn ins outs internals overrides moddb aliases debugdata rewrite) (svtv-debug-set-ios-logic-fn ins-equiv outs internals overrides moddb aliases debugdata rewrite))) :rule-classes :congruence)
Theorem:
(defthm svtv-debug-set-ios-logic-fn-of-true-list-list-fix-outs (equal (svtv-debug-set-ios-logic-fn ins (true-list-list-fix outs) internals overrides moddb aliases debugdata rewrite) (svtv-debug-set-ios-logic-fn ins outs internals overrides moddb aliases debugdata rewrite)))
Theorem:
(defthm svtv-debug-set-ios-logic-fn-true-list-list-equiv-congruence-on-outs (implies (true-list-list-equiv outs outs-equiv) (equal (svtv-debug-set-ios-logic-fn ins outs internals overrides moddb aliases debugdata rewrite) (svtv-debug-set-ios-logic-fn ins outs-equiv internals overrides moddb aliases debugdata rewrite))) :rule-classes :congruence)
Theorem:
(defthm svtv-debug-set-ios-logic-fn-of-true-list-list-fix-internals (equal (svtv-debug-set-ios-logic-fn ins outs (true-list-list-fix internals) overrides moddb aliases debugdata rewrite) (svtv-debug-set-ios-logic-fn ins outs internals overrides moddb aliases debugdata rewrite)))
Theorem:
(defthm svtv-debug-set-ios-logic-fn-true-list-list-equiv-congruence-on-internals (implies (true-list-list-equiv internals internals-equiv) (equal (svtv-debug-set-ios-logic-fn ins outs internals overrides moddb aliases debugdata rewrite) (svtv-debug-set-ios-logic-fn ins outs internals-equiv overrides moddb aliases debugdata rewrite))) :rule-classes :congruence)
Theorem:
(defthm svtv-debug-set-ios-logic-fn-of-true-list-list-fix-overrides (equal (svtv-debug-set-ios-logic-fn ins outs internals (true-list-list-fix overrides) moddb aliases debugdata rewrite) (svtv-debug-set-ios-logic-fn ins outs internals overrides moddb aliases debugdata rewrite)))
Theorem:
(defthm svtv-debug-set-ios-logic-fn-true-list-list-equiv-congruence-on-overrides (implies (true-list-list-equiv overrides overrides-equiv) (equal (svtv-debug-set-ios-logic-fn ins outs internals overrides moddb aliases debugdata rewrite) (svtv-debug-set-ios-logic-fn ins outs internals overrides-equiv moddb aliases debugdata rewrite))) :rule-classes :congruence)
Theorem:
(defthm svtv-debug-set-ios-logic-fn-of-moddb-fix-moddb (equal (svtv-debug-set-ios-logic-fn ins outs internals overrides (moddb-fix moddb) aliases debugdata rewrite) (svtv-debug-set-ios-logic-fn ins outs internals overrides moddb aliases debugdata rewrite)))
Theorem:
(defthm svtv-debug-set-ios-logic-fn-moddb-equiv-congruence-on-moddb (implies (moddb-equiv moddb moddb-equiv) (equal (svtv-debug-set-ios-logic-fn ins outs internals overrides moddb aliases debugdata rewrite) (svtv-debug-set-ios-logic-fn ins outs internals overrides moddb-equiv aliases debugdata rewrite))) :rule-classes :congruence)
Theorem:
(defthm svtv-debug-set-ios-logic-fn-of-lhslist-fix-aliases (equal (svtv-debug-set-ios-logic-fn ins outs internals overrides moddb (lhslist-fix aliases) debugdata rewrite) (svtv-debug-set-ios-logic-fn ins outs internals overrides moddb aliases debugdata rewrite)))
Theorem:
(defthm svtv-debug-set-ios-logic-fn-lhslist-equiv-congruence-on-aliases (implies (lhslist-equiv aliases aliases-equiv) (equal (svtv-debug-set-ios-logic-fn ins outs internals overrides moddb aliases debugdata rewrite) (svtv-debug-set-ios-logic-fn ins outs internals overrides moddb aliases-equiv debugdata rewrite))) :rule-classes :congruence)