• 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
        • Soft
        • Bv
        • Imp-language
        • Ethereum
        • Event-macros
        • Java
        • Riscv
        • Bitcoin
        • Zcash
        • Yul
        • ACL2-programming-language
        • Prime-fields
        • Json
        • Syntheto
          • Process-syntheto-toplevel-fn
          • Translation
          • Language
            • Static-semantics
            • Abstract-syntax
              • Expression
              • Expression-sum-field-list
              • Type
                • Typep
                • Type-case
                • Type-fix
                • Type-count
                • Type-equiv
                • Type-map
                • Type-set
                • Type-sequence
                • Type-defined
                • Type-option
                • Type-kind
                • Type-string
                • Type-integer
                • Type-character
                • Type-boolean
              • Binary-op
              • Expression-product-field-list
              • Abstract-syntax-operations
              • Function-definition-list->header-list
              • Type-definition-list->name-list
              • Initializer-list->value-list
              • Function-header-list->name-list
              • Typed-variable-list->type-list
              • Typed-variable-list->name-list
              • Branch-list->condition-list
              • Alternative-list->name-list
              • Function-specifier
              • Expression-variable-list
              • Type-subset
              • Field-list->type-list
              • Field-list->name-list
              • Function-specification
              • Identifier
              • Toplevel
              • Function-definer
              • Function-header
              • Type-definer
              • Literal
              • Type-product
              • Function-definition
              • Type-sum
              • Maybe-expression
              • Transform-argument-value
              • Transform
              • Theorem
              • Quantifier
              • Maybe-function-specification
              • Maybe-typed-variable
              • Maybe-type-definition
              • Maybe-function-header
              • Maybe-function-definition
              • Maybe-type-sum
              • Maybe-type-subset
              • Maybe-type-product
              • Maybe-type-definer
              • Maybe-theorem
              • Maybe-type
              • Initializer
              • Type-definition
              • Alternative
              • Unary-op
              • Typed-variable
              • Branch
              • Field
              • Transform-argument
              • Type-recursion
              • Program
              • Function-recursion
              • Typed-variable-list
              • Toplevel-name
              • Toplevel-list
              • Initializer-list
              • Expression-fixtypes
              • Toplevel-fn-names
              • Lookup-transform-argument
              • Function-definition-names
              • Type-definition-list
              • Transform-argument-list
              • Function-header-list
              • Function-definition-list
              • Alternative-list
              • Type-list
              • Identifier-set
              • Identifier-list
              • Field-list
              • Expression-list
              • Branch-list
              • Extract-default-param-alist
              • Create-arg-defaults-table
            • Outcome
            • Abstract-syntax-operations
            • Outcome-list
            • Outcomes
          • Process-syntheto-toplevel
          • Shallow-embedding
        • File-io-light
        • Cryptography
        • Number-theory
        • Axe
        • Lists-light
        • Builtins
        • Solidity
        • Helpers
        • Htclient
        • Typed-lists-light
        • Arithmetic-light
      • X86isa
      • Axe
      • Execloader
    • Math
    • Testing-utilities
  • Abstract-syntax

Type

Fixtype of Syntheto types.

This is a tagged union type, introduced by fty::deftagsum.

Member Tags → Types
:boolean → type-boolean
:character → type-character
:string → type-string
:integer → type-integer
:set → type-set
:sequence → type-sequence
:map → type-map
:option → type-option
:defined → type-defined

There are primitive types for booleans (the usual two), characters (ISO 8851-1, 8-bit, as in ACL2), strings (of the above characters, any length), and integers (all of them, unbounded.

There are collection types for finite sets of elements of another type, finite sequences of elements of another type, and finite maps with another type as domain and another type as range. These are like built-in polymorphic types.

There is an option type, which consists of the values of a base type plus an additional distinct value. This is like a built-in polymorphic sum type.

There are types with explicit definitions, which are referenced by name. Note that the primitive and collection types have implicit definitions. The actual explicit type definitions are formalized elsewhere in the abstract syntax.

Here we capture the types, as syntactic entities, that can be used, for instance, as types of variables. There are other syntactic types, such as product types, that can only be used to define types; these are defined elsewhere in the abstract syntax.

Subtopics

Typep
Recognizer for type structures.
Type-case
Case macro for the different kinds of type structures.
Type-fix
Fixing function for type structures.
Type-count
Measure for recurring over type structures.
Type-equiv
Basic equivalence relation for type structures.
Type-map
Type-set
Type-sequence
Type-defined
Type-option
Type-kind
Get the kind (tag) of a type structure.
Type-string
Type-integer
Type-character
Type-boolean