• 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
              • Abstract-syntax-trees
              • Abstract-syntax-irrelevants
                • Irr-amb?-declor/absdeclor
                • Irr-typequal/attribspec
                • Irr-amb?-expr/tyname
                • Irr-amb?-declon/stmt
                • Irr-transunit-ensemble
                • Irr-struni-spec
                • Irr-struct-declor
                • Irr-struct-declon
                • Irr-statassert
                • Irr-param-declon
                • Irr-member-designor
                • Irr-init-declor
                • Irr-hex-quad
                • Irr-fundef
                • Irr-dirabsdeclor
                • Irr-desiniter
                • Irr-declor/absdeclor
                • Irr-declon/stmt
                • Irr-asm-stmt
                • Irr-asm-output
                • Irr-asm-name-spec
                • Irr-asm-input
                • Irr-type-spec
                • Irr-type-qual
                • Irr-transunit
                • Irr-stringlit
                • Irr-stor-spec
                • Irr-spec/qual
                • Irr-param-declor
                • Irr-ident
                • Irr-iconst
                • Irr-header-name
                • Irr-genassoc
                • Irr-fun-spec
                • Irr-ext-declon
                • Irr-expr/tyname
                • Irr-enumer
                • Irr-enum-spec
                • Irr-dirdeclor
                • Irr-dexprefix
                • Irr-dexpo
                • Irr-designor
                • Irr-declor
                • Irr-declon
                • Irr-decl-spec
                • Irr-const-expr
                • Irr-comp-stmt
                • Irr-block-item
                • Irr-bexprefix
                • Irr-bexpo
                • Irr-attrib-spec
                • Irr-attrib-name
                • Irr-asm-qual
                • Irr-asm-clobber
                • Irr-align-spec
                • Irr-absdeclor
                • Irr-unop
                • Irr-tyname
                • Irr-stmt
                • Irr-label
                • Irr-initer
                • Irr-expr
                • Irr-escape
                • Irr-const
                • Irr-binop
                • Irr-attrib
              • Type-specifier-lists
              • Ascii-identifiers
              • Abstraction-mapping
              • Standard
              • Storage-specifier-lists
              • Code-ensembles
              • Purity
              • Make-self-code-ensemble
            • Concrete-syntax
            • Disambiguation
            • Validation
            • 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
  • Abstract-syntax

Abstract-syntax-irrelevants

Irrelevant values of the abstract syntax fixtypes.

These are nullary operations that return ``irrelevant'' values of the fixtypes that form the abstract syntax, i.e. values that are never actually used. For instance, an ACL2 function that returns multiple results, the first one of which is an error indication, while the other results include abstract syntax entities, could return irrelevant values as the latter results when the first result indicates an error.

The definitions are mostly boilerplate, except that in some places we put something conveying irrelevance, e.g. in the definition of irr-ident. However, this is really unnecessary, and it should be possible to define all of these according to boilerplate. This could be an extension of the FTY library; perhaps every fixtype definition could also generate some kind of ``default'' value of the fixtype, which could be used as an irrelevant value in the sense explained above.

For now, we collect these nullary functions in this file and XDOC topic, to keep the file and XDOC topic of the abstract syntax tidier.

Note that some fixtypes do not have an irrelevant value defined here, because there are already very short built-in values that can be used, such as nil for list and option types.

Subtopics

Irr-amb?-declor/absdeclor
An irrelevant possibly ambiguous declarators or abstract declarators.
Irr-typequal/attribspec
An irrelevant type qualifier or attribute specifier.
Irr-amb?-expr/tyname
An irrelevant possibly ambiguous expression or type name.
Irr-amb?-declon/stmt
An irrelevant possibly ambiguous declaration or statement.
Irr-transunit-ensemble
An irrelevant ensemble of translation units.
Irr-struni-spec
An irrelevant structure or union specifier.
Irr-struct-declor
An irrelevant structure declarator.
Irr-struct-declon
An irrelevant structure declaration.
Irr-statassert
An irrelevant static assertion declaration.
Irr-param-declon
An irrelevant parameter declaration.
Irr-member-designor
An irrelevant member designator.
Irr-init-declor
An irrelevant initializer declarator.
Irr-hex-quad
An irrelevant quadruple of hexadecimal digits.
Irr-fundef
An irrelevant function definition.
Irr-dirabsdeclor
An irrelevant direct abstract declarator.
Irr-desiniter
An irrelevant initializer with optional designation.
Irr-declor/absdeclor
An irrelevant declarator or abstract declarator.
Irr-declon/stmt
An irrelevant declaration or statement.
Irr-asm-stmt
An irrelevant assembler statement.
Irr-asm-output
An irrelevant assembler output operand.
Irr-asm-name-spec
An irrelevant assembler name specifier.
Irr-asm-input
An irrelevant assembler input operand.
Irr-type-spec
An irrelevant type specifier.
Irr-type-qual
An irrelevant type qualifier.
Irr-transunit
An irrelevant translation unit.
Irr-stringlit
An irrelevant string literal.
Irr-stor-spec
An irrelevant storage class specifier.
Irr-spec/qual
An irrelevant type specifier or type qualifier.
Irr-param-declor
An irrelevant parameter declarator.
Irr-ident
An irrelevant identifier.
Irr-iconst
An irrelevant integer constant.
Irr-header-name
An irrelevant header name.
Irr-genassoc
An irrelevant generic association.
Irr-fun-spec
An irrelevant function specifier.
Irr-ext-declon
An irrelevant external declaration.
Irr-expr/tyname
An irrelevant expression or type name.
Irr-enumer
An irrelevant enumerator.
Irr-enum-spec
An irrelevant enumeration specifier.
Irr-dirdeclor
An irrelevant direct declarator.
Irr-dexprefix
An irrelevant decimal exponent prefix.
Irr-dexpo
An irrelevant decimal exponent.
Irr-designor
An irrelevant designator.
Irr-declor
An irrelevant declarator.
Irr-declon
An irrelevant declaration.
Irr-decl-spec
An irrelevant declaration specifier.
Irr-const-expr
An irrelevant constant expression.
Irr-comp-stmt
An irrelevant compound statement.
Irr-block-item
An irrelevant block item.
Irr-bexprefix
An irrelevant binary exponent prefix.
Irr-bexpo
An irrelevant binary exponent.
Irr-attrib-spec
An irrelevant attribute specifier.
Irr-attrib-name
An irrelevant attribute name.
Irr-asm-qual
An irrelevant assembler qualifier.
Irr-asm-clobber
An irrelevant assembler clobber.
Irr-align-spec
An irrelevant alignment specifier.
Irr-absdeclor
An irrelevant abstract declarator.
Irr-unop
An irrelevant unary operator.
Irr-tyname
An irrelevant type name.
Irr-stmt
An irrelevant statement.
Irr-label
An irrelevant label.
Irr-initer
An irrelevant initializer.
Irr-expr
An irrelevant expression.
Irr-escape
An irrelevant escape.
Irr-const
An irrelevant constant.
Irr-binop
An irrelevant binary operator.
Irr-attrib
An irrelevant attribute.