• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
      • Apt
      • Zfc
      • Acre
      • Milawa
      • Smtlink
      • Abnf
      • Vwsim
      • Isar
      • Wp-gen
      • Dimacs-reader
      • Pfcs
      • Legacy-defrstobj
      • Proof-checker-array
      • Soft
      • C
      • Farray
      • Rp-rewriter
      • Instant-runoff-voting
      • Imp-language
      • Sidekick
      • Leftist-trees
      • Java
      • Taspi
      • Bitcoin
      • Riscv
        • Instructions
        • States
          • Stat
          • Stat-validp
          • Write-memory-unsigned64
          • Write-memory-unsigned32
          • Write-memory-unsigned8
          • Write-memory-unsigned16
          • Read-xreg-unsigned
          • Write-xreg-32
          • States64
            • Write64-xreg
            • Write64-xreg-32
            • Write64-mem-ubyte64-lendian
            • Write64-mem-ubyte16-lendian
            • Xregfile64
            • State64
            • Memory64
              • Memory64p
              • Memory64-fix
            • Write64-mem-ubyte32-lendian
            • Write64-pc
            • Write64-mem-ubyte8
            • Read64-mem-ubyte64-lendian
            • Read64-mem-ubyte16-lendian
            • Read64-mem-ubyte32-lendian
            • Read64-xreg-unsigned
            • Read64-mem-ubyte8
            • Read64-xreg-unsigned32
            • Read64-xreg-signed32
            • Read64-xreg-signed
            • Inc64-pc
            • Read64-pc
            • Error64p
            • Error64
            • *mem64-size*
          • Write-xreg
          • Read-memory-unsigned8
          • Read-memory-unsigned64
          • Read-memory-unsigned32
          • Read-memory-unsigned16
          • Read-xreg-signed
          • Read-xreg-unsigned32
          • States32
          • Write-pc
          • Read-xreg-signed32
          • Read-pc
          • Inc4-pc
        • Decoding
        • Encoding
        • Features
        • Semantics
        • Execution
      • Des
      • Ethereum
      • X86isa
      • Sha-2
      • Yul
      • Zcash
      • Proof-checker-itp13
      • Regex
      • ACL2-programming-language
      • Json
      • Jfkr
      • Equational
      • Cryptography
      • Poseidon
      • Where-do-i-place-my-book
      • Axe
      • Bigmems
      • Builtins
      • Execloader
      • Aleo
      • Solidity
      • Paco
      • Concurrent-programs
      • Bls12-377-curves
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
    • Math
    • Testing-utilities
  • States64

Memory64

Fixtype of memories [ISA:1.4].

We model the memory as a list of 2^{64} unsigned bytes, which can be interpreted in different ways (see operations on states).

This is the whole address space, although not all of it may be accessible, and parts of it may be dedicated to different purposes [ISA:1.4]. Modeling these aspects (probably via some kind of parameterization of the model) is future work.

Definitions and Theorems

Function: memory64-equiv$inline

(defun memory64-equiv$inline (acl2::x acl2::y)
  (declare (xargs :guard (and (memory64p acl2::x)
                              (memory64p acl2::y))))
  (equal (memory64-fix acl2::x)
         (memory64-fix acl2::y)))

Theorem: memory64-equiv-is-an-equivalence

(defthm memory64-equiv-is-an-equivalence
  (and (booleanp (memory64-equiv x y))
       (memory64-equiv x x)
       (implies (memory64-equiv x y)
                (memory64-equiv y x))
       (implies (and (memory64-equiv x y)
                     (memory64-equiv y z))
                (memory64-equiv x z)))
  :rule-classes (:equivalence))

Theorem: memory64-equiv-implies-equal-memory64-fix-1

(defthm memory64-equiv-implies-equal-memory64-fix-1
  (implies (memory64-equiv acl2::x x-equiv)
           (equal (memory64-fix acl2::x)
                  (memory64-fix x-equiv)))
  :rule-classes (:congruence))

Theorem: memory64-fix-under-memory64-equiv

(defthm memory64-fix-under-memory64-equiv
  (memory64-equiv (memory64-fix acl2::x)
                  acl2::x)
  :rule-classes (:rewrite :rewrite-quoted-constant))

Theorem: equal-of-memory64-fix-1-forward-to-memory64-equiv

(defthm equal-of-memory64-fix-1-forward-to-memory64-equiv
  (implies (equal (memory64-fix acl2::x) acl2::y)
           (memory64-equiv acl2::x acl2::y))
  :rule-classes :forward-chaining)

Theorem: equal-of-memory64-fix-2-forward-to-memory64-equiv

(defthm equal-of-memory64-fix-2-forward-to-memory64-equiv
  (implies (equal acl2::x (memory64-fix acl2::y))
           (memory64-equiv acl2::x acl2::y))
  :rule-classes :forward-chaining)

Theorem: memory64-equiv-of-memory64-fix-1-forward

(defthm memory64-equiv-of-memory64-fix-1-forward
  (implies (memory64-equiv (memory64-fix acl2::x)
                           acl2::y)
           (memory64-equiv acl2::x acl2::y))
  :rule-classes :forward-chaining)

Theorem: memory64-equiv-of-memory64-fix-2-forward

(defthm memory64-equiv-of-memory64-fix-2-forward
  (implies (memory64-equiv acl2::x (memory64-fix acl2::y))
           (memory64-equiv acl2::x acl2::y))
  :rule-classes :forward-chaining)

Subtopics

Memory64p
Recognizer for memory64.
Memory64-fix
Fixer for memory64.