• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Community
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
      • Kestrel-books
        • Crypto-hdwallet
        • Apt
        • Error-checking
        • Fty-extensions
        • Isar
        • Kestrel-utilities
        • Set
        • Soft
        • C
        • Bv
        • Imp-language
        • Event-macros
        • Java
        • Riscv
        • Bitcoin
        • Ethereum
        • Yul
          • Transformations
            • Renaming-variables
            • Dead-code-eliminator
            • Renamings
            • Disambiguator
            • Unique-variables
            • Dead-code-eliminator-static-safety
            • No-function-definitions
              • Statements/blocks/cases/fundefs-nofunp
              • No-function-definitions-in-dynamic-semantics
                • Funinfo+funenv-nofunp
                • Funscope-nofunp
                • Funinfo-nofunp
                • Funenv-nofunp
                  • Funenv-nofunp-basics
                • Funenv-nofunp-of-add-funs
                • Funinfo+funenv-nofunp-of-find-fun
              • Fundef-list-nofunp
              • Statements-to-fundefs-when-nofunp
            • Unique-functions
            • Renaming-functions
            • Dead-code-eliminator-no-loop-initializers
            • Dead-code-eliminator-no-function-definitions
            • No-loop-initializers
            • For-loop-init-rewriter
          • Language
          • Yul-json
        • 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
  • No-function-definitions-in-dynamic-semantics

Funenv-nofunp

Check that a function environment has no function definitions in the functions' bodies.

Signature
(funenv-nofunp x) → std::bool

We check each scope in the environment.

Definitions and Theorems

Function: funenv-nofunp

(defun funenv-nofunp (x)
  (declare (xargs :guard (funenvp x)))
  (let ((__function__ 'funenv-nofunp))
    (declare (ignorable __function__))
    (if (consp x)
        (and (funscope-nofunp (car x))
             (funenv-nofunp (cdr x)))
      t)))

Theorem: funenv-nofunp-of-funenv-fix-x

(defthm funenv-nofunp-of-funenv-fix-x
  (equal (funenv-nofunp (funenv-fix x))
         (funenv-nofunp x)))

Theorem: funenv-nofunp-funenv-equiv-congruence-on-x

(defthm funenv-nofunp-funenv-equiv-congruence-on-x
  (implies (funenv-equiv x x-equiv)
           (equal (funenv-nofunp x)
                  (funenv-nofunp x-equiv)))
  :rule-classes :congruence)

Subtopics

Funenv-nofunp-basics
Basic theorems about funenv-nofunp, generated by std::deflist.