Package edu.udel.cis.vsl.sarl.IF.type
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
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
.-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic enum
The different kinds of types.Nested classes/interfaces inherited from interface edu.udel.cis.vsl.sarl.IF.object.SymbolicObject
SymbolicObject.SymbolicObjectKind
-
Method Summary
Modifier and TypeMethodDescriptionboolean
Tells whether the type is the boolean type.boolean
isChar()
Tells whether the type is a char typeboolean
Is this a Herbrand type? There are Herbrand variants of real and integer types.boolean
isIdeal()
Is this an Ideal numeric type? These are the mathematical integer and real types.boolean
Tells whether the type is an integer type.boolean
Tells whether the type is a real or integer typeboolean
isReal()
Tells whether the type is a real type.typeKind()
Returns the kind of the type.Methods inherited from interface edu.udel.cis.vsl.sarl.IF.object.SymbolicObject
containsQuantifier, containsSubobject, equals, getOrder, hashCode, id, isCanonic, setInCanonic, setOrder, symbolicObjectKind, toString, toStringBuffer, toStringBufferLong
-
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
SymbolicType.SymbolicTypeKind 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
-