• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Community
    • Proof-automation
    • ACL2
    • Macro-libraries
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
      • Kestrel-books
      • X86isa
        • Program-execution
        • Sdm-instruction-set-summary
        • Tlb
        • Running-linux
        • Introduction
        • Asmtest
        • X86isa-build-instructions
        • Publications
        • Contributors
        • Machine
          • X86isa-state
            • X86isa-state-history
            • Environment-field
              • Env-alistp
              • Rip-ret-alistp
              • Physical-memory-model
              • Save-restore
            • Syscalls
            • Cpuid
            • Linear-memory
            • Rflag-specifications
            • Characterizing-undefined-behavior
            • Top-level-memory
            • App-view
            • X86-decoder
            • Physical-memory
            • Decoding-and-spec-utils
            • Instructions
            • Register-readers-and-writers
            • X86-modes
            • Segmentation
            • Other-non-deterministic-computations
            • Environment
            • Paging
          • Implemented-opcodes
          • To-do
          • Proof-utilities
          • Peripherals
          • Model-validation
          • Modelcalls
          • Concrete-simulation-examples
          • Utils
          • Debugging-code-proofs
        • Axe
        • Execloader
      • Math
      • Testing-utilities
    • Environment-field

    Rip-ret-alistp

    Recognizer for the oracle sub-field of the environment field env

    Signature
    (rip-ret-alistp lst) → *

    A valid rip-ret-alistp associates canonical linear addresses, i.e., 48-bit integers in our specification, to a list of arbitrary values. For example, '((1 . ((-1 . 12) 5000)) (2 . (0))) means that if the oracle in the environment field is consulted at address 1, '(-1 . 12) will be popped out. If the oracle is consulted again at the address 1, then 5000 will be popped out.

    Definitions and Theorems

    Function: rip-ret-alistp

    (defun rip-ret-alistp (lst)
      (declare (xargs :guard t))
      (let ((__function__ 'rip-ret-alistp))
        (declare (ignorable __function__))
        (if (atom lst)
            (equal lst nil)
          (and (consp (car lst))
               (i48p (caar lst))
               (true-listp (cdar lst))
               (rip-ret-alistp (cdr lst))))))

    Theorem: rip-ret-alistp-fwd-chaining-alistp

    (defthm rip-ret-alistp-fwd-chaining-alistp
      (implies (rip-ret-alistp x) (alistp x))
      :rule-classes :forward-chaining)