• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • 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
          • Syntax-for-tools
          • Atc
            • Atc-implementation
              • Atc-abstract-syntax
              • Atc-pretty-printer
              • Atc-event-and-code-generation
                • Atc-symbolic-computation-states
                • Atc-symbolic-execution-rules
                • Atc-gen-ext-declon-lists
                • Atc-function-and-loop-generation
                • Atc-statement-generation
                  • Stmt-gin
                  • Atc-gen-term-type-formula
                  • Atc-gen-stmt
                  • Stmt-gout
                    • Stmt-gout-fix
                    • Make-stmt-gout
                    • Stmt-goutp
                    • Stmt-gout-equiv
                    • Stmt-gout->names-to-avoid
                    • Change-stmt-gout
                    • Stmt-gout->inscope
                    • Stmt-gout->events
                    • Stmt-gout->thm-name
                    • Stmt-gout->thm-index
                    • Stmt-gout->limit
                    • Stmt-gout->items
                    • Stmt-gout->context
                    • Stmt-gout->type
                    • Stmt-gout->term
                  • Atc-gen-expr
                  • Atc-gen-block-item-var-asg
                  • Atc-gen-return-stmt
                  • Atc-gen-mbt-block-items
                  • Atc-gen-if/ifelse-stmt
                  • Atc-gen-cfun-call-stmt
                  • Atc-gen-block-item-struct-scalar-asg
                  • Atc-gen-block-item-struct-array-asg
                  • Atc-gen-block-item-list-append
                  • Atc-gen-block-item-integer-asg
                  • Atc-gen-block-item-declon
                  • Atc-gen-block-item-array-asg
                  • Atc-gen-loop-stmt
                  • Atc-gen-block-item-list-cons
                  • Atc-uterm-to-components
                  • Atc-gen-block-item-stmt
                  • Lstmt-gin
                  • Atc-gen-block-item-list-one
                  • Atc-gen-block-item-var-decl
                  • Atc-gen-block-item-asg
                  • Atc-gen-call-result-and-endstate
                  • Lstmt-gout
                  • Atc-ensure-formals-not-lost
                  • Atc-gen-block-item-list-none
                  • Atc-var-assignablep
                  • Atc-gen-uterm-result-and-type-formula
                  • Atc-remove-extobj-args
                  • Atc-affecting-term-for-let-p
                  • Atc-vars-assignablep
                  • Atc-make-lets-of-uterms
                  • Atc-symbolp-list
                  • Atc-make-mv-nth-terms
                  • Atc-make-mv-lets-of-uterms
                  • Atc-update-var-term-alist
                  • Irr-stmt-gout
                  • Irr-lstmt-gout
                • Atc-gen-fileset
                • Atc-gen-everything
                • Atc-gen-obj-declon
                • Atc-gen-fileset-event
                • Atc-tag-tables
                • Atc-expression-generation
                • Atc-generation-contexts
                • Atc-gen-wf-thm
                • Term-checkers-atc
                • Atc-variable-tables
                • Term-checkers-common
                • Atc-gen-init-fun-env-thm
                • Atc-gen-appconds
                • Read-write-variables
                • Atc-gen-thm-assert-events
                • Test*
                • Atc-gen-prog-const
                • Atc-gen-expr-bool
                • Atc-theorem-generation
                • Atc-tag-generation
                • Atc-gen-expr-pure
                • Atc-function-tables
                • Atc-object-tables
              • Fty-pseudo-term-utilities
              • Atc-term-recognizers
              • Atc-input-processing
              • Atc-shallow-embedding
              • Atc-process-inputs-and-gen-everything
              • Atc-table
              • Atc-fn
              • Atc-pretty-printing-options
              • Atc-types
              • Atc-macro-definition
            • Atc-tutorial
          • 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
  • Atc-statement-generation

Stmt-gout

Outputs for C statement generation.

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

Fields
items — block-item-list
We actually generate a list of block items. These can be regarded as forming a compound statement, but lists of block items are compositional (via concatenation).
type — type
The type returned by the block items. It may be void.
term — pseudo-term
The term from which the block items are generated. The term is transformed by replacing if with if* and a few other changes.
context — atc-context
Described in atc-implementation. It is the context after the block items, i.e. the context for subsequent block items (if any).
inscope — atc-symbol-varinfo-alist-list
Described in atc-implementation. It contains the variables in scope just after these block items, i.e. the ones in scope for subsequent block items (if any). This is nil if there are no subsequent block items, which happens exactly when these block items return a non-void type.
limit — pseudo-term
Symbolic limit value that suffices for exec-block-item-list to execute the block items completely.
events — pseudo-event-form-list
All the events generated for the block items.
thm-name — symbolp
The name of the theorem about exec-block-item-list applied to the block items. This theorem is one of the events in events. It is nil if no theorem was generated, because modular proof generation is not yet available for some constructs; eventually this will be never nil, when modular proof generation covers all the ATC-generated code.
thm-index — posp
Described in atc-implementation.
names-to-avoid — symbol-list
Described in atc-implementation.

We actually generate a list of block items. These can be regarded as forming a compound statement, but lists of block items are compositional (via concatenation).

Subtopics

Stmt-gout-fix
Fixing function for stmt-gout structures.
Make-stmt-gout
Basic constructor macro for stmt-gout structures.
Stmt-goutp
Recognizer for stmt-gout structures.
Stmt-gout-equiv
Basic equivalence relation for stmt-gout structures.
Stmt-gout->names-to-avoid
Get the names-to-avoid field from a stmt-gout.
Change-stmt-gout
Modifying constructor for stmt-gout structures.
Stmt-gout->inscope
Get the inscope field from a stmt-gout.
Stmt-gout->events
Get the events field from a stmt-gout.
Stmt-gout->thm-name
Get the thm-name field from a stmt-gout.
Stmt-gout->thm-index
Get the thm-index field from a stmt-gout.
Stmt-gout->limit
Get the limit field from a stmt-gout.
Stmt-gout->items
Get the items field from a stmt-gout.
Stmt-gout->context
Get the context field from a stmt-gout.
Stmt-gout->type
Get the type field from a stmt-gout.
Stmt-gout->term
Get the term field from a stmt-gout.