mCRL2
Loading...
Searching...
No Matches
prover_tool.h
Go to the documentation of this file.
1// Author(s): Wieger Wesselink
2// Copyright: see the accompanying file COPYING or copy at
3// https://github.com/mCRL2org/mCRL2/blob/master/COPYING
4//
5// Distributed under the Boost Software License, Version 1.0.
6// (See accompanying file LICENSE_1_0.txt or copy at
7// http://www.boost.org/LICENSE_1_0.txt)
8//
11
12#ifndef MCRL2_DATA_PROVER_TOOL_H
13#define MCRL2_DATA_PROVER_TOOL_H
14
17
18namespace mcrl2
19{
20
21namespace data
22{
23
24namespace tools
25{
26
28template <typename Tool>
29class prover_tool: public Tool
30{
31 protected:
33
36
40 void add_options(utilities::interface_description& desc)
41 {
42 Tool::add_options(desc, true); // The parameter true suppresses messages allowing the jittyp rewriter.
43
44 desc.add_option("smt-solver", utilities::make_enum_argument< smt_solver_type >("SOLVER")
47 "use SOLVER to remove inconsistent paths from the internally used "
48 "BDDs (by default, no path elimination is applied):",
49 'z');
50 }
51
54 void parse_options(const utilities::command_line_parser& parser)
55 {
56 Tool::parse_options(parser);
57
58 if (0 < parser.options.count("smt-solver"))
59 {
60 m_solver_type = parser.option_argument_as< smt_solver_type >("smt-solver");
61 }
62 }
63
64 public:
65
67 prover_tool(const std::string& name,
68 const std::string& author,
69 const std::string& what_is,
70 const std::string& tool_description,
71 std::string known_issues = ""
72 )
73 : Tool(name, author, what_is, tool_description, known_issues),
74 m_solver_type(mcrl2::data::detail::solver_type_cvc)
75 {}
76
80 {
81 return m_solver_type;
82 }
83};
84
85} // namespace tools
86
87} // namespace data
88
89} // namespace mcrl2
90
91#endif // MCRL2_DATA_PROVER_TOOL_H
Base class for tools that use a rewriter.
Definition prover_tool.h:30
void add_options(utilities::interface_description &desc)
Add options to an interface description. Also includes rewriter options.
Definition prover_tool.h:40
smt_solver_type solver_type() const
Returns the rewrite strategy.
Definition prover_tool.h:79
void parse_options(const utilities::command_line_parser &parser)
Parse non-standard options.
Definition prover_tool.h:54
smt_solver_type m_solver_type
The data rewriter strategy.
Definition prover_tool.h:35
mcrl2::data::detail::smt_solver_type smt_solver_type
Definition prover_tool.h:32
prover_tool(const std::string &name, const std::string &author, const std::string &what_is, const std::string &tool_description, std::string known_issues="")
Constructor.
Definition prover_tool.h:67
Components for command line interfaces of mCRL2 tools.
smt_solver_type
The enumeration type smt_solver_type enumerates all available SMT solvers.
Definition solver_type.h:27
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
Definition indexed_set.h:72
Enumeration for the types of solvers.