Package org.smtlib.impl
Class Sort.Parameter
java.lang.Object
org.smtlib.impl.Pos.Posable
org.smtlib.impl.Pos.Printable
org.smtlib.impl.Sort
org.smtlib.impl.Sort.Parameter
- All Implemented Interfaces:
INode,IPos.IPosable,ISort,ISort.IDefinition,ISort.IParameter
- Enclosing class:
Sort
Represents a Sort parameter, such as in either the parameter list or the expression of a Sort abbreviation
-
Nested Class Summary
Nested classes/interfaces inherited from class org.smtlib.impl.Sort
Sort.Abbreviation, Sort.Application, Sort.ErrorDefinition, Sort.Family, Sort.FcnSort, Sort.ParameterNested 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 -
Field Summary
FieldsFields inherited from class org.smtlib.impl.Pos.Posable
pos -
Constructor Summary
ConstructorsConstructorDescriptionParameter(IExpr.ISymbol symbol) Creates a sort parameter for the given symbol name. -
Method Summary
Modifier and TypeMethodDescription<T> TThe accept method corresponding to IVisitor, to be implemented in each subclass as { return v.visit(this); }booleanStructural 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.A new sort expression that results from applying the sort symbol to a list of sort expressionsexpand()Expands all abbreviationsinthashCode()The identifier for the sort symbolintintArity()The arity of the symbolsubstitute(Map<ISort.IParameter, ISort> map) Returns a new sort with any parameters substitutedsymbol()The symbol that names the parameterMethods inherited from class org.smtlib.impl.Pos.Printable
toStringMethods inherited from class org.smtlib.impl.Pos.Posable
pos, setPosMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.smtlib.IPos.IPosable
pos, setPos
-
Field Details
-
symbol
-
-
Constructor Details
-
Parameter
Creates a sort parameter for the given symbol name.
-
-
Method Details
-
symbol
Description copied from interface:ISort.IParameterThe symbol that names the parameter- Specified by:
symbolin interfaceISort.IParameter
-
substitute
Description copied from interface:ISortReturns a new sort with any parameters substituted- Specified by:
substitutein interfaceISort
-
expand
Description copied from interface:ISortExpands all abbreviations -
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.- Specified by:
equalsin interfaceISort- Specified by:
equalsin interfaceISort.IParameter- Overrides:
equalsin classPos.Posable- See Also:
-
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- Specified by:
equalsNoExpandin interfaceISort.IParameter
-
hashCode
public int hashCode()- Overrides:
hashCodein classPos.Posable
-
accept
Description copied from interface:INodeThe accept method corresponding to IVisitor, to be implemented in each subclass as { return v.visit(this); }- Specified by:
acceptin interfaceINode- Type Parameters:
T- the return type desired from the visit methods- Parameters:
v- the visitor class- Returns:
- the value returned by the visit method
- Throws:
IVisitor.VisitorException
-
identifier
Description copied from interface:ISort.IDefinitionThe identifier for the sort symbol- Specified by:
identifierin interfaceISort.IDefinition
-
eval
Description copied from interface:ISort.IDefinitionA new sort expression that results from applying the sort symbol to a list of sort expressions- Specified by:
evalin interfaceISort.IDefinition
-
intArity
public int intArity()Description copied from interface:ISort.IDefinitionThe arity of the symbol- Specified by:
intArityin interfaceISort.IDefinition
-