• 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
            • Disambiguator
            • Abstract-syntax
            • Parser
            • Validator
            • Printer
            • Formalized-subset
            • Mapping-to-language-definition
            • Input-files
            • Defpred
            • Output-files
            • Abstract-syntax-operations
            • Validation-information
              • Abstract-syntax-annop
              • Types
              • Valid-ord-info
              • Lifetime
              • Valid-defstatus
              • Valid-table
              • Valid-ord-info-option
              • Linkage-option
              • Linkage
              • Lifetime-option
              • Iconst-info
              • Var-info
              • Valid-scope
              • Stmt-type
              • Expr-null-pointer-constp
              • Transunit-info
              • Expr-type
              • Const-expr-null-pointer-constp
              • Unary-info
              • Binary-info
              • Block-item-list-type
              • Block-item-type
              • Valid-ord-scope
              • Coerce-transunit-info
              • Coerce-var-info
              • Coerce-unary-info
              • Coerce-iconst-info
              • Coerce-binary-info
              • Irr-transunit-info
              • Irr-iconst-info
              • Irr-binary-info
              • Irr-var-info
              • Irr-valid-table
              • Irr-unary-info
              • Valid-scope-list
              • Irr-linkage
              • Irr-lifetime
            • Implementation-environments
            • Concrete-syntax
            • Unambiguity
            • Ascii-identifiers
            • 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
  • Syntax-for-tools

Validation-information

Information calculated and used by the validator.

The validator calculates and uses information, such as types, and annotates the abstract syntax with some of this information. Here we introduce fixtypes for this information, and operations on those fixtypes.

We also introduce predicates over the abstract syntax, to check that the annotations from the validator are present. This is not the same as saying that the constructs are validated; the predicates just say that information of the right type is present.

Subtopics

Abstract-syntax-annop
Definition of the predicates that check whether the abstract syntax is annotated with validation information.
Types
C types used by the validator.
Valid-ord-info
Fixtype of validation information about ordinary identifiers.
Lifetime
Fixtype of lifetimes.
Valid-defstatus
Fixtype of definition statuses for validation.
Valid-table
Fixtype of validation tables.
Valid-ord-info-option
Fixtype of optional validation information about ordinary identifiers.
Linkage-option
Fixtype of optional linkages.
Linkage
Fixtype of linkages.
Lifetime-option
Fixtype of optional lifetimes.
Iconst-info
Fixtype of validation information for integer constants.
Var-info
Fixtype of validation information for variables.
Valid-scope
Fixtype of validation scopes.
Stmt-type
Type of a statement, from the validation information.
Expr-null-pointer-constp
Check whether an expression of a given type is potentially a null pointer constant [C17:6.3.2.3/3].
Transunit-info
Fixtype of validation information for translation units.
Expr-type
Type of an expression, from the validation information.
Const-expr-null-pointer-constp
Check whether a constant expression of a given type is potentially a null pointer constant [C17:6.3.2.3/3].
Unary-info
Fixtype of validation information for unary expressions.
Binary-info
Fixtype of validation information for binary expressions.
Block-item-list-type
Type of a list of block items, from the validation information.
Block-item-type
Type of a block item, from the validation information.
Valid-ord-scope
Fixtype of validation scopes of ordinary identifiers.
Coerce-transunit-info
Coerce a value to transunit-info.
Coerce-var-info
Coerce a value to var-info.
Coerce-unary-info
Coerce a value to unary-info.
Coerce-iconst-info
Coerce a valud to iconst-info.
Coerce-binary-info
Coerce a value to binary-info.
Irr-transunit-info
An irrelevant validation information for translation units.
Irr-iconst-info
An irrelevant validation information for integer constants.
Irr-binary-info
An irrelevant validation information for binary expressions.
Irr-var-info
An irrelevant validation information for variables.
Irr-valid-table
An irrelevant validation table.
Irr-unary-info
An irrelevant validation information for unary expressions.
Valid-scope-list
Fixtype of lists of validation scopes.
Irr-linkage
An irrelevant linkage.
Irr-lifetime
An irrelevant lifetime.