• 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
              • Gen-block-item-list-thm
              • Xeq-stmt-while
              • Xeq-stmt-dowhile
              • Gin
                • Ginp
                • Gin-fix
                • Make-gin
                • Gin-equiv
                • Change-gin
                • Gin->vartys
                • Gin->events
                • Gin->const-new
                • Gin->thm-index
                • Gin->ienv
              • 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

Gin

General inputs for transformation functions.

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

Fields
ienv — ienv
The implementation environment from the code ensemble.
const-new — symbolp
The :const-new input of the transformation.
vartys — c::ident-type-map
Some variables in scope at the beginning of the construct. The generated theorem (if any) includes hypotheses about their presence in the computation state before the execution of the C construct. Currently this could be actually a subset of the variables in scope, but it is adequate to the current proof generation, and we are working on extending this.
events — pseudo-event-form-list
Theorems generated so far, in reverse order.
thm-index — posp
Index used to generate unique theorem names.

The transformation functions take as input the construct to transform, which has a different type for each transformation function. But each function also takes certain common inputs, which we put into this data structure for modularity and to facilitate extension.

Subtopics

Ginp
Recognizer for gin structures.
Gin-fix
Fixing function for gin structures.
Make-gin
Basic constructor macro for gin structures.
Gin-equiv
Basic equivalence relation for gin structures.
Change-gin
Modifying constructor for gin structures.
Gin->vartys
Get the vartys field from a gin.
Gin->events
Get the events field from a gin.
Gin->const-new
Get the const-new field from a gin.
Gin->thm-index
Get the thm-index field from a gin.
Gin->ienv
Get the ienv field from a gin.