(svtv-debug-set-svtv x &key (moddb 'moddb) (aliases 'aliases) (debugdata 'debugdata) (rewrite 't)) → debugdata-out
Function:
(defun svtv-debug-set-svtv-fn (x moddb aliases debugdata rewrite) (declare (xargs :stobjs (moddb aliases debugdata))) (declare (xargs :guard (svtv-p x))) (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-svtv)) (declare (ignorable __function__)) (svtv-debug-set-ios-logic :ins (svtv->orig-ins x) :outs (svtv->orig-outs x) :internals (svtv->orig-internals x) :overrides (svtv->orig-overrides x) :moddb moddb :aliases aliases :debugdata debugdata :rewrite rewrite)))
Theorem:
(defthm svtv-debug-set-svtv-modidx-unchanged (b* ((?debugdata-out (svtv-debug-set-svtv-fn x moddb aliases debugdata rewrite))) (equal (nth *debugdata->modidx* debugdata-out) (nth *debugdata->modidx* debugdata))))
Theorem:
(defthm svtv-debug-set-svtv-fn-of-svtv-fix-x (equal (svtv-debug-set-svtv-fn (svtv-fix x) moddb aliases debugdata rewrite) (svtv-debug-set-svtv-fn x moddb aliases debugdata rewrite)))
Theorem:
(defthm svtv-debug-set-svtv-fn-svtv-equiv-congruence-on-x (implies (svtv-equiv x x-equiv) (equal (svtv-debug-set-svtv-fn x moddb aliases debugdata rewrite) (svtv-debug-set-svtv-fn x-equiv moddb aliases debugdata rewrite))) :rule-classes :congruence)
Theorem:
(defthm svtv-debug-set-svtv-fn-of-moddb-fix-moddb (equal (svtv-debug-set-svtv-fn x (moddb-fix moddb) aliases debugdata rewrite) (svtv-debug-set-svtv-fn x moddb aliases debugdata rewrite)))
Theorem:
(defthm svtv-debug-set-svtv-fn-moddb-equiv-congruence-on-moddb (implies (moddb-equiv moddb moddb-equiv) (equal (svtv-debug-set-svtv-fn x moddb aliases debugdata rewrite) (svtv-debug-set-svtv-fn x moddb-equiv aliases debugdata rewrite))) :rule-classes :congruence)
Theorem:
(defthm svtv-debug-set-svtv-fn-of-lhslist-fix-aliases (equal (svtv-debug-set-svtv-fn x moddb (lhslist-fix aliases) debugdata rewrite) (svtv-debug-set-svtv-fn x moddb aliases debugdata rewrite)))
Theorem:
(defthm svtv-debug-set-svtv-fn-lhslist-equiv-congruence-on-aliases (implies (lhslist-equiv aliases aliases-equiv) (equal (svtv-debug-set-svtv-fn x moddb aliases debugdata rewrite) (svtv-debug-set-svtv-fn x moddb aliases-equiv debugdata rewrite))) :rule-classes :congruence)