16 boost::filesystem::path executable_;
17 std::string shellArgs_;
25 explicit SmtlibSolver(
const std::string &
name,
const boost::filesystem::path &executable,
const std::string &shellArgs =
"",
27 :
SmtSolver(
name, linkages), executable_(executable), shellArgs_(shellArgs) {}
41 static Ptr instance(
const std::string &
name,
const boost::filesystem::path &executable,
const std::string &shellArgs =
"",
50 virtual void generateFile(std::ostream&,
const std::vector<SymbolicExpression::Ptr> &exprs,
Definitions*)
override;
51 virtual std::string
getCommand(
const std::string &configName)
override;
54 virtual void timeout(boost::chrono::duration<double>)
override;
80 virtual Type mostType(
const std::vector<SExprTypePair>&);
83 virtual SExprTypePair outputCast(
const SExprTypePair&,
Type to);
84 virtual std::vector<SExprTypePair> outputCast(
const std::vector<SExprTypePair>&,
Type to);
93 virtual std::vector<SmtSolver::SExprTypePair> outputExpressions(
const std::vector<SymbolicExpression::Ptr>&);
102 virtual SExprTypePair outputLeftAssoc(
const std::string &func,
const std::vector<SExprTypePair>&,
Type rettype = NO_TYPE);
123 virtual SExprTypePair outputUnary(
const std::string &funcName,
const SExprTypePair &arg);
160 virtual void outputVariableDeclarations(std::ostream&,
const VariableSet&);
161 virtual void outputComments(std::ostream&,
const std::vector<SymbolicExpression::Ptr>&);
162 virtual void outputCommonSubexpressions(std::ostream&,
const std::vector<SymbolicExpression::Ptr>&);
static Ptr instance(const std::string &name, const boost::filesystem::path &executable, const std::string &shellArgs="", unsigned linkages=LM_EXECUTABLE)
Construct a solver using the specified program.