Package org.smtlib

Interface IExpr

All Superinterfaces:
IAttributeValue, INode, IPos.IPosable, IResponse
All Known Subinterfaces:
IExpr.IAsIdentifier, IExpr.IAttributedExpr, IExpr.IBinaryLiteral, IExpr.IDecimal, IExpr.IError, IExpr.IExists, IExpr.IFcnExpr, IExpr.IForall, IExpr.IHexLiteral, IExpr.IIdentifier, IExpr.IIndex, IExpr.ILambda, IExpr.ILet, IExpr.ILiteral, IExpr.IMatch, IExpr.INumeral, IExpr.IParameterizedIdentifier, IExpr.IQualifiedIdentifier, IExpr.IStringLiteral, IExpr.ISymbol
All Known Implementing Classes:
Pos.AbstractExpr, SMTExpr, SMTExpr.AsIdentifier, SMTExpr.AttributedExpr, SMTExpr.BinaryLiteral, SMTExpr.Decimal, SMTExpr.Error, SMTExpr.Exists, SMTExpr.FcnExpr, SMTExpr.Forall, SMTExpr.HexLiteral, SMTExpr.Lambda, SMTExpr.Let, SMTExpr.Literal, SMTExpr.Match, SMTExpr.Numeral, SMTExpr.ParameterizedIdentifier, SMTExpr.StringLiteral, SMTExpr.Symbol

public interface IExpr extends INode, IPos.IPosable, IAttributeValue
This interface represents the functionality for any class implementing an SMT-LIB term or formula
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static interface 
    This interface represents SMT-LIB identifiers that are sort qualifiers on function ids
    static interface 
    This interface represents an SMT-LIB attribute-value pair; the value may be null (keyword-only attribute).
    static interface 
    This interface represents an SMT-LIB expression with attributes.
    static interface 
    This interface represents SMT-LIB binary literals
    static interface 
    This interface represents a binding of a parameter and an expression
    static interface 
    A constructor declaration within a datatype; pairs a constructor name with its selectors.
    static interface 
    This interface represents non-negative decimal numbers of arbitrary size (i.e.
    static interface 
    This interface represents a declaration of a parameter and its sort
    static interface 
    This interface represents an error, e.g.
    static interface 
    This interface represents an SMT-LIB quantified exists expression
    static interface 
    The interface defining the factory type for producing objects of various subtypes of IExpr; the IPos argument is an optional argument giving information about the textual position of an expression.
    static interface 
    This interface represents SMT-LIB expressions that are a function identifier applied to one or more arguments.
    static interface 
    This interface represents an SMT-LIB quantified forall expression
    static interface 
    A function declaration: a name, a parameter list (sorted variables), and a result sort; used in the header list of define-funs-rec.
    static interface 
    This interface represents SMT-LIB hex literals
    static interface 
    This interface represents SMT-LIB identifiers (either ids or parameterized ids)
    static interface 
    Marker interface for the index types in a parameterized identifier: INumeral and ISymbol, plus IHexLiteral, which the Strings theory's (_ char H) uses, and IBinaryLiteral, which no theory uses but which is parsed so that a solver reports it; each theory decides which kinds it accepts.
    static interface 
    This interface represents SMT-LIB attribute and infoflag names.
    static interface 
    This interface represents an SMT-LIB lambda expression: (lambda (sorted_var+) term).
    static interface 
    This interface represents an SMT-LIB let-expression
    static interface 
    This interface represents all literal (explicit constant) expressions.
    static interface 
    This interface represents an SMT-LIB 2.7 match expression.
    static interface 
    This interface represents one case in a match expression: a pattern and its body.
    static interface 
    This interface represents non-negative integers of arbitrary size.
    static interface 
    This interface represents SMT-LIB parameterized identifiers
    static interface 
    This interface represents a match pattern: either a bare symbol (variable/nullary-constructor) or a constructor applied to zero or more variable symbols.
    static interface 
    This interface represents the value of a :pattern attribute: a list of terms (a multi-pattern), written in the concrete syntax as ( t1 ... tn ).
    static interface 
    This interface represents SMT-LIB identifiers for function ids (either ids or parameterized ids or as-type identifiers)
    static interface 
    A selector declaration within a constructor; pairs a selector name with its result sort.
    static interface 
    Pairs a sort name with its arity; used in declare-datatype and declare-datatypes.
    static interface 
    This interface represents SMT-LIB string literals
    static interface 
    This interface represents SMT-LIB ids; equal ids have equal (using .equals) values of value().
  • Method Summary

    Modifier and Type
    Method
    Description
    default boolean
    Returns true if the response is an error response
    void
    setSort(ISort sort)
    Records the sort computed for this expression by the type checker.
    The sort computed for this expression by the type checker, or null if not yet (or never) computed.

    Methods inherited from interface org.smtlib.IAttributeValue

    isOK

    Methods inherited from interface org.smtlib.INode

    accept

    Methods inherited from interface org.smtlib.IPos.IPosable

    pos, setPos
  • Method Details

    • isError

      default boolean isError()
      Description copied from interface: IResponse
      Returns true if the response is an error response
      Specified by:
      isError in interface IAttributeValue
      Specified by:
      isError in interface IResponse
    • sort

      ISort sort()
      The sort computed for this expression by the type checker, or null if not yet (or never) computed.
    • setSort

      void setSort(ISort sort)
      Records the sort computed for this expression by the type checker.