Interface SymbolicObject

All Known Subinterfaces:
ArrayElementReference, BooleanExpression, BooleanObject, BooleanSymbolicConstant, CharObject, Constant, IntObject, Monic, Monomial, NTReferenceExpression, NTValueSetReference, NumberObject, NumericExpression, NumericSymbolicConstant, OffsetReference, Polynomial, Primitive, PrimitivePower, RationalExpression, ReferenceExpression, StringObject, SymbolicArrayType, SymbolicCompleteArrayType, SymbolicConstant, SymbolicExpression, SymbolicFunctionType, SymbolicIntegerType, SymbolicMapType, SymbolicRealType, SymbolicSequence<T>, SymbolicSetType, SymbolicTupleType, SymbolicType, SymbolicTypeSequence, SymbolicUninterpretedType, SymbolicUnionType, TupleComponentReference, UnionMemberReference, ValueSetReference, VSArrayElementReference, VSArraySectionReference, VSIdentityReference, VSOffsetReference, VSTupleComponentReference, VSUnionMemberReference
All Known Implementing Classes:
BooleanPrimitive, CnfSymbolicConstant, CommonArrayElementReference, CommonBooleanObject, CommonCharObject, CommonIdentityReference, CommonIntObject, CommonNTReference, CommonNTValueSetReference, CommonNullReference, CommonNumberObject, CommonOffsetReference, CommonReferenceExpression, CommonStringObject, CommonSymbolicArrayType, CommonSymbolicCompleteArrayType, CommonSymbolicConstant, CommonSymbolicFunctionType, CommonSymbolicIntegerType, CommonSymbolicMapType, CommonSymbolicObject, CommonSymbolicPrimitiveType, CommonSymbolicRealType, CommonSymbolicSetType, CommonSymbolicTupleType, CommonSymbolicType, CommonSymbolicTypeSequence, CommonSymbolicUninterpretedType, CommonSymbolicUnionType, CommonTupleComponentReference, CommonUnionMemberReference, CommonValueSetReference, CommonVSArrayElementReference, CommonVSArraySectionReference, CommonVSIdentityReference, CommonVSOffsetReference, CommonVSTupleComponentReference, CommonVSUnionMemberReference, CompoundBooleanExpression, HerbrandExpression, HerbrandSymbolicConstant, HomogeneousExpression, IdealSymbolicConstant, NTConstant, NTMonic, NTMonomial, NTPolynomial, NTPrimitivePower, NTRationalExpression, NumericPrimitive, One, SimpleSequence

public interface SymbolicObject
The root of the symbolic object type hierarchy. Represents any kind of symbolic object: symbolic expressions, symbolic types, symbolic expression collections, etc. All symbolic objects provide reasonable hash code methods that are consistent with equals. The kind determines the Java type of this object as follows:
SYMBOLIC_EXPRESSION SymbolicExpression
SEQUENCE SymbolicSequence
TYPE SymbolicType
TYPE_SEQUENCE SymbolicTypeSequence
NUMBER NumberObject
INT IntObject
BOOLEAN BooleanObject
STRING StringObject
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static enum 
     
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Does this symbolic object contain a quantified expression anywhere in its structure?
    boolean
    Does this symbolic object contain a sub-object equal to the given one?
    boolean
    The equals method, included here to emphasize that the method provided by Object must be overridden!
    Experimental: get the number which imposes a total order on the set of all canonic symbolic object.
    int
    The hash code method, included here to emphasize that the method provided by Object must be overridden!
    int
    id()
    Every canonic symbolic object has a unique ID number, returned by this method.
    boolean
    Is this object the unique representative of its equivalence class (under "equals")?
    void
    Set the id of this object to a special value indicating that this object is in the process of being made canonic.
    void
    Experimental: sets the number which imposes a total order on the set of all canonic symbolic object.
    Which kind of symbolic object is this? The kind determines the specific type to which this object can be safely cast.
    Returns a string representation of this object, included here to emphasize that the method provided by Object must be overridden! Same as toStringBuffer(false).toString();
    toStringBuffer(boolean atomize)
    Returns a string representation of this object as a StringBuffer.
    Returns a detailed string representation of this object as a StringBuffer.
  • Method Details

    • symbolicObjectKind

      SymbolicObject.SymbolicObjectKind symbolicObjectKind()
      Which kind of symbolic object is this? The kind determines the specific type to which this object can be safely cast. See the comments for this interface and the enumerated type SymbolicObjectKind for description.
      Returns:
      the kind of this symbolic object.
    • equals

      boolean equals(Object o)
      The equals method, included here to emphasize that the method provided by Object must be overridden!
      Overrides:
      equals in class Object
      Parameters:
      o - any Java object
      Returns:
      true iff this represents the "same" symbolic object as o
    • hashCode

      int hashCode()
      The hash code method, included here to emphasize that the method provided by Object must be overridden!
      Overrides:
      hashCode in class Object
      Returns:
      the hash code of this symbolic object
    • id

      int id()
      Every canonic symbolic object has a unique ID number, returned by this method. If this object is not canonic, the value returned is undefined.
      Returns:
      the ID number of this canonic symbolic object
    • isCanonic

      boolean isCanonic()
      Is this object the unique representative of its equivalence class (under "equals")?
      Returns:
      true iff this object is canonic
    • toString

      String toString()
      Returns a string representation of this object, included here to emphasize that the method provided by Object must be overridden! Same as toStringBuffer(false).toString();
      Overrides:
      toString in class Object
      Returns:
      a string representation of this object
    • toStringBuffer

      StringBuffer toStringBuffer(boolean atomize)
      Returns a string representation of this object as a StringBuffer. Use this instead of "toString()" for performance reasons if you are going to be building up big strings.
      Parameters:
      atomize - if true, place parentheses around the string if necessary in order to include this as a term in a larger expression
      Returns:
      a string representation of this object
    • toStringBufferLong

      StringBuffer toStringBufferLong()
      Returns a detailed string representation of this object as a StringBuffer. It never needs to be atomized.
      Returns:
      detailed string representation of this object
    • containsQuantifier

      boolean containsQuantifier()
      Does this symbolic object contain a quantified expression anywhere in its structure?
      Returns:
      true iff a quantified expression appears somewhere inside this object
    • setInCanonic

      void setInCanonic()
      Set the id of this object to a special value indicating that this object is in the process of being made canonic. Calls to isCanonic() will return true.
    • getOrder

      RationalNumber getOrder()
      Experimental: get the number which imposes a total order on the set of all canonic symbolic object.
      Returns:
      the order of this object in the list of all canonic symbolic objects
    • setOrder

      void setOrder(RationalNumber order)
      Experimental: sets the number which imposes a total order on the set of all canonic symbolic object.
    • containsSubobject

      boolean containsSubobject(SymbolicObject obj)
      Does this symbolic object contain a sub-object equal to the given one?
      Parameters:
      obj -
      Returns:
      true iff this contains a sub-object equal to obj