• 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
        • Bv
        • Imp-language
        • Event-macros
        • Java
        • Bitcoin
        • Ethereum
        • Yul
        • Zcash
        • ACL2-programming-language
        • Prime-fields
        • Json
        • Syntheto
          • Process-syntheto-toplevel-fn
          • Translation
          • Language
            • Static-semantics
            • Abstract-syntax
              • Expression
              • Expression-sum-field-list
              • Type
              • Binary-op
              • Expression-product-field-list
              • Abstract-syntax-operations
                • Subst-expression-fns
                • Field-list-to-typed-variable-list
                • Negate-expression
                • Get-function-definition-in-function-definitions
                • Get-function-definition
                • Get-type-definition-in-type-definitions
                • Get-type-definition
                • Get-function-specification
                • Get-type-subset
                • Get-alternative-product
                • Direct-supertype
                • Get-function-header-in-list
                • Equate-expression-lists
                • Get-field-type
                • Get-theorem
                • Get-defined-type-names-in-type-definitions
                • Disjoin-expressions
                • Conjoin-expressions
                • Get-type-product
                • Binary-op-nonstrictp
                • Get-type-sum
                • Get-defined-type-names
                • Equate-expressions
                • Field-to-typed-variable
                • Subst-expression
                • Binary-op-strictp
                • Initializer-list-from-flds-vals
                • Typed-variable-list->-expression-variable-list
                • Typed-variable-list->-expression
                • Variable-substitution
                • Local-variables
                • Identifier-list-names
                • Functions-called
                • Subst-expression-list
                • Subst-branch-list
                • Subst-branch
              • 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
              • Subst-expression-fns
              • Field-list-to-typed-variable-list
              • Negate-expression
              • Get-function-definition-in-function-definitions
              • Get-function-definition
              • Get-type-definition-in-type-definitions
              • Get-type-definition
              • Get-function-specification
              • Get-type-subset
              • Get-alternative-product
              • Direct-supertype
              • Get-function-header-in-list
              • Equate-expression-lists
              • Get-field-type
              • Get-theorem
              • Get-defined-type-names-in-type-definitions
              • Disjoin-expressions
              • Conjoin-expressions
              • Get-type-product
              • Binary-op-nonstrictp
              • Get-type-sum
              • Get-defined-type-names
              • Equate-expressions
              • Field-to-typed-variable
              • Subst-expression
              • Binary-op-strictp
              • Initializer-list-from-flds-vals
              • Typed-variable-list->-expression-variable-list
              • Typed-variable-list->-expression
              • Variable-substitution
              • Local-variables
              • Identifier-list-names
              • Functions-called
              • Subst-expression-list
              • Subst-branch-list
              • Subst-branch
            • Outcome-list
            • Outcomes
          • Process-syntheto-toplevel
          • Shallow-embedding
        • File-io-light
        • Cryptography
        • Number-theory
        • Lists-light
        • Axe
        • Builtins
        • Solidity
        • Helpers
        • Htclient
        • Typed-lists-light
        • Arithmetic-light
      • X86isa
      • Axe
      • Execloader
    • Math
    • Testing-utilities
  • Language
  • Abstract-syntax

Abstract-syntax-operations

Operations on the Syntheto abstract syntax.

These are operations to query and manipulate the syntax. We will add more as needed.

Subtopics

Subst-expression-fns
Mutually recursive functions for expression substitution.
Field-list-to-typed-variable-list
Lift field-to-typed-variable to lists.
Negate-expression
Negate an expression.
Get-function-definition-in-function-definitions
Find the definition of a function with a given name in a list of function definitions.
Get-function-definition
Find the definition of a function with a given name in a list of top-level constructs.
Get-type-definition-in-type-definitions
Find the definition of a type with a given name in a list of type definitions.
Get-type-definition
Find the definition of a type with a given name in a list of top-level constructs.
Get-function-specification
Find the function specification with a given name in a list of top-level constructs.
Get-type-subset
Return the type subset that defines a type, if any.
Get-alternative-product
Find the type product of the alternative with a specified name.
Direct-supertype
Return the direct supertype of a type, if any.
Get-function-header-in-list
Find the function header with a given name in a list of function headers.
Equate-expression-lists
Construct a list of equalities between two lists of expressions, element-wise.
Get-field-type
Find the type of the field with a specified name.
Get-theorem
Find the theorem with a given name in a list of top-level constructs.
Get-defined-type-names-in-type-definitions
Return the list of the type names defined in a list of definitions, in the same order.
Disjoin-expressions
Disjoin a list of expressions.
Conjoin-expressions
Conjoin a list of expressions.
Get-type-product
Return the type product that defines a type, if any.
Binary-op-nonstrictp
Check if a binary operator is non-strict.
Get-type-sum
Return the type sum that defines a type, if any.
Get-defined-type-names
Return the list of the type names defined in a list of top-level constructs, in the same order.
Equate-expressions
Construct an equality between two expressions.
Field-to-typed-variable
Turn a field into a typed variable.
Subst-expression
Apply a substitution to an expression.
Binary-op-strictp
Check if a binary operator is strict.
Initializer-list-from-flds-vals
Typed-variable-list->-expression-variable-list
Typed-variable-list->-expression
Variable-substitution
Fixtype of variable substitutions.
Local-variables
Identifier-list-names
Functions-called
Subst-expression-list
Apply a substitution to a list of expressions.
Subst-branch-list
Apply a substitution to a list of branches.
Subst-branch
Apply a substitution to a branch.