Package org.sosy_lab.java_smt.basicimpl
Class AbstractUFManager<TFormulaInfo,TFunctionDecl,TType,TEnv>
- java.lang.Object
-
- org.sosy_lab.java_smt.basicimpl.AbstractUFManager<TFormulaInfo,TFunctionDecl,TType,TEnv>
-
- Type Parameters:
TFormulaInfo- The solver specific type.TFunctionDecl- The solver specific type of declarations of any function applicationTType- The solver specific type of formula-types.
- All Implemented Interfaces:
UFManager
public abstract class AbstractUFManager<TFormulaInfo,TFunctionDecl,TType,TEnv> extends Object implements UFManager
This class simplifies the implementation of the FunctionFormulaManager by converting the types to the solver specific type.
-
-
Field Summary
Fields Modifier and Type Field Description protected FormulaCreator<TFormulaInfo,TType,TEnv,TFuncDecl>formulaCreator
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractUFManager(FormulaCreator<TFormulaInfo,TType,TEnv,TFunctionDecl> pCreator)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T extends Formula>
TcallUF(FunctionDeclaration<T> pFunc, List<? extends Formula> pArgs)Create an uninterpreted function call.<T extends Formula>
TcallUF(FunctionDeclaration<T> funcType, Formula... args)<T extends Formula>
TdeclareAndCallUF(String name, FormulaType<T> pReturnType, List<Formula> pArgs)Declares and calls an uninterpreted function with exactly the given name.<T extends Formula>
TdeclareAndCallUF(String name, FormulaType<T> pReturnType, Formula... pArgs)<T extends Formula>
FunctionDeclaration<T>declareUF(String pName, FormulaType<T> pReturnType, List<FormulaType<?>> pArgTypes)Declare an uninterpreted function.<T extends Formula>
FunctionDeclaration<T>declareUF(String pName, FormulaType<T> pReturnType, FormulaType<?>... pArgs)Declare an uninterpreted function.protected TFormulaInfoextractInfo(Formula pBits)protected FormulaCreator<TFormulaInfo,TType,TEnv,TFuncDecl>getFormulaCreator()protected TTypetoSolverType(FormulaType<?> formulaType)
-
-
-
Field Detail
-
formulaCreator
protected final FormulaCreator<TFormulaInfo,TType,TEnv,TFuncDecl> formulaCreator
-
-
Constructor Detail
-
AbstractUFManager
protected AbstractUFManager(FormulaCreator<TFormulaInfo,TType,TEnv,TFunctionDecl> pCreator)
-
-
Method Detail
-
declareUF
public final <T extends Formula> FunctionDeclaration<T> declareUF(String pName, FormulaType<T> pReturnType, List<FormulaType<?>> pArgTypes)
Description copied from interface:UFManagerDeclare an uninterpreted function.
-
declareUF
public <T extends Formula> FunctionDeclaration<T> declareUF(String pName, FormulaType<T> pReturnType, FormulaType<?>... pArgs)
Description copied from interface:UFManagerDeclare an uninterpreted function.
-
callUF
public <T extends Formula> T callUF(FunctionDeclaration<T> funcType, Formula... args)
- Specified by:
callUFin interfaceUFManager- See Also:
UFManager.callUF(FunctionDeclaration, List)
-
callUF
public final <T extends Formula> T callUF(FunctionDeclaration<T> pFunc, List<? extends Formula> pArgs)
Description copied from interface:UFManagerCreate an uninterpreted function call.Simply delegates to
FormulaManager.makeApplication(FunctionDeclaration, List)
-
declareAndCallUF
public <T extends Formula> T declareAndCallUF(String name, FormulaType<T> pReturnType, List<Formula> pArgs)
Description copied from interface:UFManagerDeclares and calls an uninterpreted function with exactly the given name.Please make sure that the given name is valid in SMT-LIB2. Take a look at
FormulaManager.isValidName(java.lang.String)for further information.This method does not quote or unquote the given name, but uses the plain name "AS IS".
Formula.toString()can return a different String than the given one.- Specified by:
declareAndCallUFin interfaceUFManager
-
declareAndCallUF
public <T extends Formula> T declareAndCallUF(String name, FormulaType<T> pReturnType, Formula... pArgs)
- Specified by:
declareAndCallUFin interfaceUFManager- See Also:
UFManager.declareAndCallUF(String, FormulaType, List)
-
getFormulaCreator
protected final FormulaCreator<TFormulaInfo,TType,TEnv,TFuncDecl> getFormulaCreator()
-
extractInfo
protected final TFormulaInfo extractInfo(Formula pBits)
-
toSolverType
protected final TType toSolverType(FormulaType<?> formulaType)
-
-