• Top
    • Documentation
    • Books
    • Recursion-and-induction
    • Boolean-reasoning
    • Debugging
    • Projects
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
      • Kestrel-books
      • X86isa
        • Program-execution
        • Introduction
        • X86isa-build-instructions
        • Publications
        • Contributors
        • Machine
        • Implemented-opcodes
        • Proof-utilities
          • System-level-marking-view-proof-utilities
            • Rb-alt
            • Unwind-x86-interpreter-in-marking-view
            • Get-prefixes-alt
            • Get-prefixes-in-system-level-marking-view
            • Program-at-alt
            • Rb-in-system-level-marking-view
            • Xlate-equiv-memory-and-rml08
              • Reasoning-about-page-tables
              • Las-to-pas-two-n-ind-hint
              • Find-l-addrs-from-disjoint-p-of-las-to-pas-1-aux
              • Replace-element
            • Non-marking-view-proof-utilities
            • App-view-proof-utilities
            • Subset-p
            • Disjoint-p
            • Pos
            • Member-p
            • No-duplicates-p
            • Common-system-level-utils
            • Debugging-code-proofs
            • General-memory-utils
            • X86-row-wow-thms
          • To-do
          • Concrete-simulation-examples
          • Model-validation
          • Utils
          • Debugging-code-proofs
        • Axe
        • Execloader
      • Math
      • Testing-utilities
    • System-level-marking-view-proof-utilities

    Xlate-equiv-memory-and-rml08

    Definitions and Theorems

    Theorem: xlate-equiv-memory-and-rvm08

    (defthm xlate-equiv-memory-and-rvm08
      (implies (and (xr :app-view nil (double-rewrite x86-1))
                    (xlate-equiv-memory (double-rewrite x86-1)
                                        x86-2))
               (and (equal (mv-nth 0 (rvm08 lin-addr x86-1))
                           (mv-nth 0 (rvm08 lin-addr x86-2)))
                    (equal (mv-nth 1 (rvm08 lin-addr x86-1))
                           (mv-nth 1 (rvm08 lin-addr x86-2))))))

    Theorem: xlate-equiv-memory-and-mv-nth-0-rml08-cong

    (defthm xlate-equiv-memory-and-mv-nth-0-rml08-cong
      (implies (xlate-equiv-memory x86-1 x86-2)
               (equal (mv-nth 0 (rml08 lin-addr r-w-x x86-1))
                      (mv-nth 0 (rml08 lin-addr r-w-x x86-2))))
      :rule-classes :congruence)

    Theorem: xlate-equiv-memory-and-xr-mem-from-rest-of-memory

    (defthm xlate-equiv-memory-and-xr-mem-from-rest-of-memory
     (implies
      (and
       (bind-free
            (find-an-xlate-equiv-x86
                 'xlate-equiv-memory-and-xr-mem-from-rest-of-memory
                 x86-1 'x86-2
                 mfc state)
            (x86-2))
       (syntaxp (not (equal x86-1 x86-2)))
       (xlate-equiv-memory (double-rewrite x86-1)
                           x86-2)
       (disjoint-p (list j)
                   (open-qword-paddr-list (gather-all-paging-structure-qword-addresses
                                               (double-rewrite x86-1))))
       (natp j)
       (< j *mem-size-in-bytes*))
      (equal (xr :mem j x86-1)
             (xr :mem j x86-2))))

    Theorem: xlate-equiv-memory-and-mv-nth-1-rml08

    (defthm xlate-equiv-memory-and-mv-nth-1-rml08
     (implies
      (and
       (bind-free
         (find-an-xlate-equiv-x86 'xlate-equiv-memory-and-mv-nth-1-rml08
                                  x86-1 'x86-2
                                  mfc state)
         (x86-2))
       (syntaxp (not (equal x86-1 x86-2)))
       (xlate-equiv-memory (double-rewrite x86-1)
                           x86-2)
       (disjoint-p
        (list
           (mv-nth
                1
                (ia32e-la-to-pa lin-addr r-w-x (double-rewrite x86-1))))
        (open-qword-paddr-list (gather-all-paging-structure-qword-addresses
                                    (double-rewrite x86-1)))))
      (equal (mv-nth 1 (rml08 lin-addr r-w-x x86-1))
             (mv-nth 1 (rml08 lin-addr r-w-x x86-2)))))

    Theorem: xlate-equiv-memory-and-two-mv-nth-2-rml08-cong

    (defthm xlate-equiv-memory-and-two-mv-nth-2-rml08-cong
      (implies
           (xlate-equiv-memory x86-1 x86-2)
           (xlate-equiv-memory (mv-nth 2 (rml08 lin-addr r-w-x x86-1))
                               (mv-nth 2 (rml08 lin-addr r-w-x x86-2))))
      :rule-classes :congruence)

    Theorem: xlate-equiv-memory-and-mv-nth-2-rml08

    (defthm xlate-equiv-memory-and-mv-nth-2-rml08
      (implies (64-bit-modep (double-rewrite x86))
               (xlate-equiv-memory (mv-nth 2 (rml08 lin-addr r-w-x x86))
                                   x86)))