• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Community
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
      • Sv
        • Svex-stvs
          • Svtv-data
          • Defsvtv$
          • Svtv-run
          • Defsvtv-phasewise
          • Svtv
          • Svtv-spec
          • Defsvtv
          • Process.lisp
          • Svtv-doc
          • Svtv-chase$
          • Svtv-versus-stv
          • Svtv-debug-fsm
          • Structure.lisp
          • Svtv-debug
            • Vcd.lisp
            • Debug.lisp
              • Svtv-debug-writephases
              • Svtv-debug-fsm-writephases
              • Svtv-debug-set-ios-logic
              • Svtv-debug-run-fsm
              • Svtv-debug-fsm-core
              • Svtv-debug-run-logic
              • Svtv-debug-init
              • Svtv-debug-eval-aliases-track
              • Svtv-debug-core
              • Svtv-debug-set-svtv
                • Svtv-debug-lhs-eval
                • Svtv-debug-eval-aliases
                • Svtv-debug-set-ios
                • Svtv-debug-run
                • Debugdata-status-p
            • Def-pipeline-thm
            • Expand.lisp
            • Def-cycle-thm
            • Svtv-utilities
            • Svtv-debug$
            • Defsvtv$-phasewise
          • Svex-decomposition-methodology
          • Sv-versus-esim
          • Svex-decomp
          • Svex-compose-dfs
          • Svex-compilation
          • Moddb
          • Svmods
          • Svstmt
          • Sv-tutorial
          • Expressions
          • Symbolic-test-vector
          • Vl-to-svex
        • Fgl
        • Vwsim
        • Vl
        • X86isa
        • Svl
        • Rtl
      • Software-verification
      • Math
      • Testing-utilities
    • Debug.lisp

    Svtv-debug-set-svtv

    Signature
    (svtv-debug-set-svtv x &key (moddb 'moddb) 
                         (aliases 'aliases) 
                         (debugdata 'debugdata) 
                         (rewrite 't)) 
     
      → 
    debugdata-out
    Arguments
    x — Guard (svtv-p x).

    Definitions and Theorems

    Function: svtv-debug-set-svtv-fn

    (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: svtv-debug-set-svtv-modidx-unchanged

    (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: svtv-debug-set-svtv-fn-of-svtv-fix-x

    (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: svtv-debug-set-svtv-fn-svtv-equiv-congruence-on-x

    (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: svtv-debug-set-svtv-fn-of-moddb-fix-moddb

    (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: svtv-debug-set-svtv-fn-moddb-equiv-congruence-on-moddb

    (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: svtv-debug-set-svtv-fn-of-lhslist-fix-aliases

    (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: svtv-debug-set-svtv-fn-lhslist-equiv-congruence-on-aliases

    (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)