Interface SymbolicType

All Superinterfaces:
SymbolicObject
All Known Subinterfaces:
SymbolicArrayType, SymbolicCompleteArrayType, SymbolicFunctionType, SymbolicIntegerType, SymbolicMapType, SymbolicRealType, SymbolicSetType, SymbolicTupleType, SymbolicUninterpretedType, SymbolicUnionType
All Known Implementing Classes:
CommonSymbolicArrayType, CommonSymbolicCompleteArrayType, CommonSymbolicFunctionType, CommonSymbolicIntegerType, CommonSymbolicMapType, CommonSymbolicPrimitiveType, CommonSymbolicRealType, CommonSymbolicSetType, CommonSymbolicTupleType, CommonSymbolicType, CommonSymbolicUninterpretedType, CommonSymbolicUnionType

public interface SymbolicType extends SymbolicObject
A symbolic type represents the type of a symbolic expression. Every symbolic type has a "kind", given by the enumerated type SymbolicType.SymbolicTypeKind. If the kind is ARRAY, the object can be cast to SymbolicArrayType. If the kind is FUNCTION, the object can be cast to SymbolicFunctionType. If the kind is TUPLE, the object can be cast to SymbolicTupleType. If the kind is UNION, the object can be cast to SymbolicUnionType.
  • Method Details

    • isBoolean

      boolean isBoolean()
      Tells whether the type is the boolean type.
      Returns:
      true if kind is BOOLEAN, else false
    • isInteger

      boolean isInteger()
      Tells whether the type is an integer type.
      Returns:
      true if kind is INTEGER, else false
    • isNumeric

      boolean isNumeric()
      Tells whether the type is a real or integer type
      Returns:
      true if kind is REAL or INTEGER, false otherwise
    • isChar

      boolean isChar()
      Tells whether the type is a char type
      Returns:
      true if kind is CHAR, false otherwise
    • isReal

      boolean isReal()
      Tells whether the type is a real type.
      Returns:
      true if kind is REAL, else false
    • typeKind

      Returns the kind of the type.
    • isHerbrand

      boolean isHerbrand()
      Is this a Herbrand type? There are Herbrand variants of real and integer types. Operations on Herbrand expressions are treated as uninterpreted functions: no simplifications or transformations of any kind are performed.
      Returns:
      true iff this type is a Herbrand type
    • isIdeal

      boolean isIdeal()
      Is this an Ideal numeric type? These are the mathematical integer and real types.
      Returns:
      true iff this is the ideal real type or ideal integer type