• 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
        • C
          • Syntax-for-tools
          • Atc
          • Transformation-tools
            • Simpadd0
            • Proof-generation
              • Xeq-fundef
              • Xeq-expr-cond
              • Xeq-expr-binary
              • Xeq-block-item-list-cons
              • Xeq-stmt-ifelse
              • Xeq-expr-const
              • Gen-param-thms
              • Gen-from-params
              • Xeq-decl-decl
              • Gout
                • Goutp
                • Gout-fix
                • Make-gout
                • Gout-equiv
                • Change-gout
                • Gout->vartys
                • Gout->thm-name
                • Gout->thm-index
                • Gout->events
              • Gen-block-item-list-thm
              • Xeq-stmt-while
              • Xeq-stmt-dowhile
              • Gin
              • Xeq-expr-ident
              • Gen-block-item-thm
              • Xeq-stmt-if
              • Xeq-expr-cast
              • Gen-initer-single-thm
              • Gen-init-scope-thm
              • Gen-expr-thm
              • Xeq-expr-unary
              • Gen-decl-thm
              • Gen-stmt-thm
              • Xeq-stmt-return
              • Xeq-stmt-expr
              • Xeq-block-item-decl
              • Xeq-block-item-stmt
              • Xeq-stmt-compound
              • Xeq-initer-single
              • Gen-thm-name
              • Gin-update
              • Gen-var-assertions
              • Tyspecseq-to-type
              • Xeq-block-item-list-empty
              • Gout-no-thm
              • Irr-gout
            • Split-gso
            • Wrap-fn
            • Constant-propagation
            • Specialize
            • Split-fn
            • Split-fn-when
            • Split-all-gso
            • Copy-fn
            • Variables-in-computation-states
            • Rename
            • Utilities
            • Proof-generation-theorems
            • Input-processing
          • Language
          • Representation
          • Insertion-sort
          • Pack
        • Soft
        • Bv
        • Imp-language
        • Ethereum
        • Event-macros
        • Java
        • Riscv
        • Bitcoin
        • Zcash
        • Yul
        • ACL2-programming-language
        • Prime-fields
        • Json
        • Syntheto
        • File-io-light
        • Cryptography
        • Number-theory
        • Axe
        • Lists-light
        • Builtins
        • Solidity
        • Helpers
        • Htclient
        • Typed-lists-light
        • Arithmetic-light
      • X86isa
      • Axe
      • Execloader
    • Math
    • Testing-utilities
  • Proof-generation

Gout

General outputs for transformation functions.

This is a product type introduced by fty::defprod.

Fields
events — pseudo-event-form-list
Theorems generated so far, in reverse order.
thm-index — posp
Index used to generate unique theorem names.
thm-name — symbolp
Name of the theorem generated by the transformation function. The theorem concerns the transformation of the C construct that the transformation function operates on. This is nil if no theorem is generated.
vartys — c::ident-type-map
Some variables in scope at the end of the construct. The generated theorem (if any) includes conclusions about their presence in the computation state after the execution of the construct. This does not necessarily include all the variables in scope, because for certain constructs (e.g. lists of block items) we only consider variables that are also in scope at the beginning of the construct, i.e. that occur in the vartys component of gin.

The transformation functions return as output the transformed construct, which has a different type for each transformation function. But each function also returns certain common outputs, which we put into this data structure for modularity and to facilitate extension.

Subtopics

Goutp
Recognizer for gout structures.
Gout-fix
Fixing function for gout structures.
Make-gout
Basic constructor macro for gout structures.
Gout-equiv
Basic equivalence relation for gout structures.
Change-gout
Modifying constructor for gout structures.
Gout->vartys
Get the vartys field from a gout.
Gout->thm-name
Get the thm-name field from a gout.
Gout->thm-index
Get the thm-index field from a gout.
Gout->events
Get the events field from a gout.