• 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
            • Formalized-subset
            • Mapping-to-language-definition
            • Input-files
            • Compilation-database
            • Printer
            • Output-files
            • Abstract-syntax-operations
            • Implementation-environments
            • Abstract-syntax
            • Concrete-syntax
            • Disambiguation
            • Validation
              • Validator
              • Validation-information
                • Abstract-syntax-annop
                • Types
                  • Type-compatiblep
                  • Type-uaconvert-signed-unsigned
                  • Type-uaconvert
                  • Type-integer-promote
                  • Type-params-compatiblep
                  • Type-option
                  • Type-formalp
                  • Ldm-type
                  • Make-pointers-to
                  • Type-list-default-arg-promote
                  • Type-uaconvert-unsigned
                  • Type-uaconvert-signed
                  • Type-default-arg-promote
                  • Type-default-arg-promotedp
                  • Type-params-composite
                  • Type-integer-promotedp
                  • Ldm-type-option-set
                  • Type-unsigned-integerp
                  • Type-standard-unsigned-integerp
                  • Type-signed-integerp
                  • Type-to-value-kind
                  • Type-standard-signed-integerp
                  • Ildm-type
                  • Type-arithmeticp
                  • Ldm-type-set
                  • Ldm-type-option
                  • Type-standard-integerp
                  • Type-option-set-formalp
                  • Type-real-floatingp
                  • Type-option-formalp
                  • Type-integerp
                  • Type-characterp
                  • Type-basicp
                  • Type-aggregatep
                  • Type-scalarp
                  • Type-realp
                  • Type-fpconvert
                  • Type-floatingp
                  • Type-complexp
                  • Type-set-formalp
                  • Type-apconvert
                  • Type-composite
                  • Ident-type-map
                  • Type-set
                  • Type-option-type-alist
                  • Type-option-set
                  • Type-list-compatiblep
                  • Irr-type-params
                  • Irr-type
                  • Type-list-composite
                  • Type/type-params/type-list
                • Abstract-syntax-anno-additional-theroems
                • Valid-ext-info
                • Valid-table
                • Valid-ord-info
                • Uid
                • Stmts-types
                • Lifetime
                • Initdeclor-info
                • Fundef-types
                • Expr-type
                • Valid-defstatus
                • Var-info
                • Valid-ord-info-option
                • Valid-ext-info-option
                • Uid-option
                • Linkage-option
                • Linkage
                • Lifetime-option
                • Valid-table-option
                • Iconst-info
                • Param-declor-nonabstract-info
                • Fundef-info
                • Expr-null-pointer-constp
                • Valid-scope
                • Const-expr-null-pointer-constp
                • Expr-string-info
                • Expr-funcall-info
                • Expr-arrsub-info
                • Tyname-info
                • Transunit-info
                • Expr-unary-info
                • Expr-const-info
                • Expr-binary-info
                • Stmt-types
                • Block-item-list-types
                • Initer-type
                • Valid-ord-scope
                • Uid-increment
                • Uid-equal
                • Coerce-var-info
                • Valid-externals
                • Irr-var-info
                • Valid-scope-list
                • Irr-valid-table
                • Irr-lifetime
                • Irr-uid
                • Irr-linkage
                • Block-item-types
                • Comp-stmt-types
            • Gcc-builtins
            • Preprocessing
            • Parsing
          • Atc
          • Transformation-tools
          • 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
  • Validation-information

Types

C types used by the validator.

We introduce a model of C types, along with some operations over those types.

Subtopics

Type-compatiblep
Check that two types are compatible [C17:6.2.7].
Type-uaconvert-signed-unsigned
Convert a promoted signed integer type and a promoted unsigned integer type to their common type, according to the usual arithmetic conversions [C17:6.3.1.8].
Type-uaconvert
Perform the usual arithmetic conversions on two arithmetic types [C17:6.3.1.8].
Type-integer-promote
Perform integer promotions on an arithmetic type [C17:6.3.1.1/2].
Type-params-compatiblep
Check that parameter portions of two function types are compatible [C17:6.2.7].
Type-option
Fixtype of optional types.
Type-formalp
Check if a type is supported in our formal semantics of C.
Ldm-type
Map a type in type to a type in the language definition.
Make-pointers-to
Derive a pointer type for each type qualifier and attribute specifier list.
Type-list-default-arg-promote
Perform default argument promotion on each type in a list.
Type-uaconvert-unsigned
Convert two promoted unsigned integer types to their common type, according to the usual arithmetic conversions [C17:6.3.1.8].
Type-uaconvert-signed
Convert two promoted signed integer types to their common type, according to the usual arithmetic conversions [C17:6.3.1.8].
Type-default-arg-promote
Perform default argument promotion on a type [C17:6.5.2.2/6].
Type-default-arg-promotedp
Check if type is a default argument promoted type.
Type-params-composite
Construct a composite of the type-params portion of a function type.
Type-integer-promotedp
Check if an arithmetic type is a promoted one.
Ldm-type-option-set
Map a set of optional types in type-option-set to a set of optional types in the language definition.
Type-unsigned-integerp
Check if a type is an unsigned integer type [C17:6.2.5/6].
Type-standard-unsigned-integerp
Check if a type is a standard unsigned integer type [C17:6.2.5/6].
Type-signed-integerp
Check if a type is a signed integer type [C17:6.2.5/4].
Type-to-value-kind
Map a type to the corresponding c::value kind.
Type-standard-signed-integerp
Check if a type is a standard signed integer type [C17:6.2.5/4].
Ildm-type
Map a type in the language formalization to a type in type.
Type-arithmeticp
Check if a type is an arithmetic type [C17:6.2.5/18].
Ldm-type-set
Map a set of types in type-set to a set of types in the language definition.
Ldm-type-option
Map an optional type in type-option to an optional type in the language definition.
Type-standard-integerp
Check if a type is a standard integer type [C17:6.2.5/7].
Type-option-set-formalp
Check if all the optional types in a set are supported in our formal semantics of C.
Type-real-floatingp
Check if a type is a real floating type [C17:6.2.5/10].
Type-option-formalp
Check if an optional type is supported in our formal semantics of C.
Type-integerp
Check if a type is an integer type [C17:6.2.5/17].
Type-characterp
Check if a type is a character type [C17:6.2.5/15].
Type-basicp
Check if a type is a basic type [C17:6.2.5/14].
Type-aggregatep
Check if a type is an aggregate type [C17:6.2.5/21].
Type-scalarp
Check if a type is a scalar type [C17:6.2.5/21].
Type-realp
Check if a type is a real type [C17:6.2.5/17].
Type-fpconvert
Convert function types to pointer types.
Type-floatingp
Check if a type is a floating type [C17:6.2.5/11].
Type-complexp
Check if a type is a complex type [C17:6.2.5/11].
Type-set-formalp
Check if all the types in a set are supported in our formal semantics of C.
Type-apconvert
Convert array types to pointer types.
Type-composite
Construct a composite type [C17:6.2.7/3].
Ident-type-map
Fixtype of omaps from identifiers to types.
Type-set
Fixtype of sets of types.
Type-option-type-alist
Fixtype of alists from optional types to types.
Type-option-set
Fixtype of sets of optional types.
Type-list-compatiblep
Check that two type-lists are compatible [C17:6.2.7].
Irr-type-params
An irrelevant type-params.
Irr-type
An irrelevant type.
Type-list-composite
Construct a composite type-list.
Type/type-params/type-list