• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Community
    • 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
          • Syntax-for-tools
            • Disambiguator
            • Abstract-syntax
            • Parser
            • Validator
            • Printer
            • Formalized-subset
              • Expr-pure-formalp
              • Type-spec-list-integer-formalp
              • Stmts/blocks-formalp
              • Extdecl-formalp
              • Ident-formalp
              • Type-spec-list-formalp
              • Tyname-formalp
              • Pointers-formalp
              • Dirdeclor-obj-formalp
              • Desiniter-formalp
              • Fundef-formalp
              • Decl-obj-formalp
              • Decl-block-formalp
              • Initdeclor-obj-formalp
                • Expr-asg-formalp
                • Structdecl-formalp
                • Initdeclor-block-formalp
                • Decl-struct-formalp
                • Dirdeclor-fun-formalp
                • Dirdeclor-block-formalp
                • Initdeclor-fun-formalp
                • Transunit-ensemble-formalp
                • Param-declor-formalp
                • Initer-formalp
                • Expr-call-formalp
                • Declor-obj-formalp
                • Decl-fun-formalp
                • Param-declon-formalp
                • Structdeclor-formalp
                • Stor-spec-list-formalp
                • Declor-fun-formalp
                • Declor-block-formalp
                • Strunispec-formalp
                • Structdecl-list-formalp
                • Param-declon-list-formalp
                • Desiniter-list-formalp
                • Extdecl-list-formalp
                • Expr-list-pure-formalp
                • Transunit-formalp
                • Const-formalp
                • Stmt-formalp
                • Block-item-list-formalp
                • Block-item-formalp
              • Mapping-to-language-definition
              • Input-files
              • Defpred
              • Output-files
              • Abstract-syntax-operations
              • Validation-information
              • Implementation-environments
              • Concrete-syntax
              • Ascii-identifiers
              • Unambiguity
              • Preprocessing
              • Abstraction-mapping
            • Atc
            • Language
            • Representation
            • Transformation-tools
            • Insertion-sort
            • Pack
          • 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
    • Formalized-subset

    Initdeclor-obj-formalp

    Check if an initializer declarator has formal dynamic semantics, as part of an object declaration (not in a block).

    Signature
    (initdeclor-obj-formalp initdeclor) → yes/no
    Arguments
    initdeclor — Guard (initdeclorp initdeclor).
    Returns
    yes/no — Type (booleanp yes/no).

    This complements declor-obj-formalp; see the documentation of that function. The initializer is optional, but if present it must be supported. There must be no assembler name specifier and no attribute specifiers.

    Definitions and Theorems

    Function: initdeclor-obj-formalp

    (defun initdeclor-obj-formalp (initdeclor)
      (declare (xargs :guard (initdeclorp initdeclor)))
      (declare (xargs :guard (initdeclor-unambp initdeclor)))
      (let ((__function__ 'initdeclor-obj-formalp))
        (declare (ignorable __function__))
        (b* (((initdeclor initdeclor) initdeclor))
          (and (declor-obj-formalp initdeclor.declor)
               (not initdeclor.asm?)
               (endp initdeclor.attribs)
               (or (not initdeclor.init?)
                   (initer-formalp initdeclor.init?))))))

    Theorem: booleanp-of-initdeclor-obj-formalp

    (defthm booleanp-of-initdeclor-obj-formalp
      (b* ((yes/no (initdeclor-obj-formalp initdeclor)))
        (booleanp yes/no))
      :rule-classes :rewrite)

    Theorem: initdeclor-obj-formalp-of-initdeclor-fix-initdeclor

    (defthm initdeclor-obj-formalp-of-initdeclor-fix-initdeclor
      (equal (initdeclor-obj-formalp (initdeclor-fix initdeclor))
             (initdeclor-obj-formalp initdeclor)))

    Theorem: initdeclor-obj-formalp-initdeclor-equiv-congruence-on-initdeclor

    (defthm
       initdeclor-obj-formalp-initdeclor-equiv-congruence-on-initdeclor
      (implies (initdeclor-equiv initdeclor initdeclor-equiv)
               (equal (initdeclor-obj-formalp initdeclor)
                      (initdeclor-obj-formalp initdeclor-equiv)))
      :rule-classes :congruence)