• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
      • Kestrel-books
        • Crypto-hdwallet
        • Apt
          • Simplify-defun
          • Isodata
          • Tailrec
          • Schemalg
          • Restrict
            • Restrict-implementation
              • Restrict-event-generation
                • Restrict-gen-verify-guards
                • Restrict-gen-everything
                • Restrict-gen-old-to-new
                • Restrict-gen-new
                • Restrict-gen-restriction-of-rec-calls-consequent-term
                • Restrict-gen-new-to-old
                • Restrict-gen-appconds
                • Restrict-gen-restriction-of-rec-calls-consequent-term-aux
              • Restrict-fn
              • Restrict-macro-definition
              • Restrict-input-processing
          • Expdata
          • Casesplit
          • Simplify-term
          • Simplify-defun-sk
          • Parteval
          • Solve
          • Wrap-output
          • Propagate-iso
          • Simplify
          • Finite-difference
          • Drop-irrelevant-params
          • Copy-function
          • Lift-iso
          • Rename-params
          • Utilities
          • Simplify-term-programmatic
          • Simplify-defun-sk-programmatic
          • Simplify-defun-programmatic
          • Simplify-defun+
          • Common-options
          • Common-concepts
        • Error-checking
        • Fty-extensions
        • Isar
        • Kestrel-utilities
        • Set
        • Soft
        • C
        • Bv
        • Imp-language
        • Event-macros
        • Java
        • Bitcoin
        • Ethereum
        • Yul
        • Zcash
        • ACL2-programming-language
        • Prime-fields
        • Json
        • Syntheto
        • File-io-light
        • Cryptography
        • Number-theory
        • Lists-light
        • Axe
        • Builtins
        • Solidity
        • Helpers
        • Htclient
        • Typed-lists-light
        • Arithmetic-light
      • X86isa
      • Axe
      • Execloader
    • Math
    • Testing-utilities
  • Restrict-implementation

Restrict-event-generation

Event generation performed by restrict.

Some events are generated in two slightly different variants: one that is local to the generated encapsulate, and one that is exported from the encapsulate. Proof hints are in the former but not in the latter, thus keeping the ACL2 history ``clean''; some proof hints may refer to events that are generated only locally to the encapsulate.

Some events are generated only locally to the generated encapsulate. These are auxiliary events needed to introduce the non-local (i.e. exported) events, but whose presence in the ACL2 history is no longer needed once the exported events have been introduced. These only-local events have generated fresh names. In contrast, exported events have names that are user-controlled, directly or indirectly.

Subtopics

Restrict-gen-verify-guards
Generate the event to verify the guards of the new function.
Restrict-gen-everything
Generate the top-level event.
Restrict-gen-old-to-new
Generate the theorem that relates the old and new functions.
Restrict-gen-new
Generate the new function definition.
Restrict-gen-restriction-of-rec-calls-consequent-term
Generate the consequent of the :restriction-of-rec-calls applicability condition.
Restrict-gen-new-to-old
Generate the theorem that relates the new and old functions.
Restrict-gen-appconds
Generate the applicability conditions.
Restrict-gen-restriction-of-rec-calls-consequent-term-aux