Package org.smtlib.logic
Class QF_UFIDL
java.lang.Object
org.smtlib.impl.Pos.Posable
org.smtlib.impl.Pos.Printable
org.smtlib.impl.SMTExpr.Logic
org.smtlib.logic.Logic
org.smtlib.logic.QF_UFIDL
- All Implemented Interfaces:
ILanguage,ILogic,INode,IPos.IPosable
-
Field Summary
Fields inherited from class org.smtlib.impl.SMTExpr.Logic
attributes, attributesList, logicName, smtConfigFields inherited from class org.smtlib.impl.Pos.Posable
pos -
Constructor Summary
ConstructorsConstructorDescriptionQF_UFIDL(SMT.Configuration smtConfig, IExpr.ISymbol name, Collection<IExpr.IAttribute<?>> attributes) -
Method Summary
Modifier and TypeMethodDescriptionvoidcheckFcnDeclaration(IExpr.IIdentifier id, List<ISort> argSorts, ISort resultSort, IExpr definition) Checks whether the given function declaration is permitted in the language, throwing an exception if notvoidcheckSortDeclaration(IExpr.IIdentifier id, List<ISort.IParameter> params, ISort expr) Checks whether the given sort declaration is permitted in the language, throwing an exception if notvoidvalidExpression(IExpr expression) QF_UFIDL's :language: no quantifiers; Int symbols as above; and "for every term of the form (op t1 t2) with op in {+, -}, at least one of t1 and t2 is a numeral".Methods inherited from class org.smtlib.logic.Logic
allowedArraySort, allowedArraySorts, checkArraySorts, checkArraySorts, checkBoundArraySorts, isBitVecArray, isBitVecSort, isFreeConstant, isInteger, isLinearInteger, isLinearReal, isRealConst, noExponentiation, noFunctions, nonCoefficients, noQuantifiers, noSorts, restrictionError, sameSort, sortAppMethods inherited from class org.smtlib.impl.SMTExpr.Logic
accept, attributeList, attributes, logicName, valueMethods inherited from class org.smtlib.impl.Pos.Printable
toStringMethods inherited from class org.smtlib.impl.Pos.Posable
equals, hashCode, pos, setPos
-
Constructor Details
-
QF_UFIDL
public QF_UFIDL(SMT.Configuration smtConfig, IExpr.ISymbol name, Collection<IExpr.IAttribute<?>> attributes)
-
-
Method Details
-
validExpression
QF_UFIDL's :language: no quantifiers; Int symbols as above; and "for every term of the form (op t1 t2) with op in {+, -}, at least one of t1 and t2 is a numeral". Its :note says the syntax is not an extension of QF_IDL's, so QF_IDL's atom shapes do not apply.- Specified by:
validExpressionin interfaceILanguage- Overrides:
validExpressionin classSMTExpr.Logic- Throws:
IVisitor.VisitorException
-
checkFcnDeclaration
public void checkFcnDeclaration(IExpr.IIdentifier id, List<ISort> argSorts, ISort resultSort, IExpr definition) throws IVisitor.VisitorException Description copied from interface:ILanguageChecks whether the given function declaration is permitted in the language, throwing an exception if not- Specified by:
checkFcnDeclarationin interfaceILanguage- Overrides:
checkFcnDeclarationin classSMTExpr.Logic- Throws:
IVisitor.VisitorException
-
checkSortDeclaration
public void checkSortDeclaration(IExpr.IIdentifier id, List<ISort.IParameter> params, ISort expr) throws IVisitor.VisitorException Description copied from interface:ILanguageChecks whether the given sort declaration is permitted in the language, throwing an exception if not- Specified by:
checkSortDeclarationin interfaceILanguage- Overrides:
checkSortDeclarationin classSMTExpr.Logic- Throws:
IVisitor.VisitorException
-