• 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
          • Language
            • Abstract-syntax
            • Integer-ranges
            • Implementation-environments
            • Dynamic-semantics
            • Static-semantics
            • Grammar
            • Types
            • Integer-formats-definitions
            • Computation-states
            • Portable-ascii-identifiers
            • Values
            • Integer-operations
            • Object-designators
            • Operations
            • Errors
            • Tag-environments
              • Tag-info
                • Tag-info-fix
                • Tag-info-case
                • Tag-info-equiv
                • Tag-infop
                • Tag-info-struct
                • Tag-info-union
                • Tag-info-enum
                • Tag-info-kind
              • Tag-info-option
              • Tag-env-add
              • Tag-env-option
              • Tag-info-struct-flexiblep
              • Tag-env-result
              • Tag-env-lookup
              • Tag-env
              • Tag-env-init
            • Function-environments
            • Character-sets
            • Flexible-array-member-removal
            • Arithmetic-operations
            • Pointer-operations
            • Real-operations
            • Array-operations
            • Scalar-operations
            • Structure-operations
          • 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
  • Tag-environments

Tag-info

Fixtype of information about a structure, union, or enumeration type.

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

Member Tags → Types
:struct → tag-info-struct
:union → tag-info-union
:enum → tag-info-enum

For now we only capture information about structure types; we use placeholders for union and enumeration types.

The information about a structure type consists of a list of member types (see member-type). This mirrors (the :struct case of) tag-declon.

The members must have unique names [C17:6.2.3]. There must be at least one member [C17:6.2.5/20], or two if the last one is a flexible array member [C17:6.7.2.1/18]. Currently we do not capture these requirements in this fixtype.

Subtopics

Tag-info-fix
Fixing function for tag-info structures.
Tag-info-case
Case macro for the different kinds of tag-info structures.
Tag-info-equiv
Basic equivalence relation for tag-info structures.
Tag-infop
Recognizer for tag-info structures.
Tag-info-struct
Tag-info-union
Tag-info-enum
Tag-info-kind
Get the kind (tag) of a tag-info structure.