Package org.smtlib
Interface ISort.IApplication
- All Superinterfaces:
INode,IPos.IPosable,ISort
- All Known Implementing Classes:
Sort.Application
- Enclosing interface:
ISort
The interface for a Sort expression that consists of either
an arity 0 sort symbol or a positive-arity symbol with the
appropriate number of arguments.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.smtlib.ISort
ISort.IAbbreviation, ISort.IApplication, ISort.IDatatype, ISort.IDefinition, ISort.IErrorDefinition, ISort.IFactory, ISort.IFamily, ISort.IFcnSort, ISort.IParameter -
Method Summary
Modifier and TypeMethodDescriptionThe definition of the family identifier, valid after the sort expression has been type-checked.definition(ISort.IDefinition definition) Sets and returns the value of definition() for this object to the value that is the argumentbooleanStructural equality after expansion of abbreviations (an alias and its literal expansion are equal), but without any substitution of free parameters.booleanequalsNoExpand(ISort sort) Raw structural comparison, deliberately without abbreviation expansion or parameter substitution -- so a user-defined alias and its expansion, whichISort.equals(Object)treats as equal, are NOT equal here.expand()Expands any head abbreviations, if any; requires definition() to be definedfamily()The head identifier of the sort expressionparam(int i) Returns the ith parameterReturns the list of parametersdefault booleanTrue if written in parentheses; (S), with no parameters, is not SMT-LIB but is parsed (with an error) so that type checking reports it as wellMethods inherited from interface org.smtlib.IPos.IPosable
pos, setPosMethods inherited from interface org.smtlib.ISort
isBool, substitute
-
Method Details
-
family
IExpr.IIdentifier family()The head identifier of the sort expression -
param
Returns the ith parameter -
parameters
Returns the list of parameters -
definition
ISort.IDefinition definition()The definition of the family identifier, valid after the sort expression has been type-checked. -
definition
Sets and returns the value of definition() for this object to the value that is the argument -
parenthesized
default boolean parenthesized()True if written in parentheses; (S), with no parameters, is not SMT-LIB but is parsed (with an error) so that type checking reports it as well -
expand
ISort expand()Expands any head abbreviations, if any; requires definition() to be defined -
equals
Description copied from interface:ISortStructural equality after expansion of abbreviations (an alias and its literal expansion are equal), but without any substitution of free parameters. The general- purpose equality method -- use this unless a caller specifically needs a narrower comparison below. -
equalsNoExpand
Description copied from interface:ISortRaw structural comparison, deliberately without abbreviation expansion or parameter substitution -- so a user-defined alias and its expansion, whichISort.equals(Object)treats as equal, are NOT equal here. Used internally asISort.equals(Object)'s own building block (expand both sides first, then compare structurally with this), and directly by any caller that specifically wants the literal, as-declared shape rather than the expanded one, e.g.Logic.checkArraySort(), which checks an array sort's declared shape against a fixed set of allowed sorts without expanding through an alias first.- Specified by:
equalsNoExpandin interfaceISort
-