SMT-RAT
24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
|
The Theories class combines all implemented theories and provides a single interface to interact with all theories at once. More...
#include <Theories.h>
Data Structures | |
struct | ConstantAdder |
Helper functor for addConstants() method. More... | |
struct | SimpleSortAdder |
Helper functor for addSimpleSorts() method. More... | |
Public Types | |
typedef boost::mpl::vector< CoreTheory *, ArithmeticTheory *, BitvectorTheory *, UninterpretedTheory *, BooleanEncodingTheory * >::type | Modules |
Public Member Functions | |
Theories (ParserState *state) | |
~Theories () | |
void | addGlobalFormulas (FormulasT &formulas) |
void | declareVariable (const std::string &name, const carl::Sort &sort) |
void | declareFunction (const std::string &name, const std::vector< carl::Sort > &args, const carl::Sort &sort) |
types::VariableType | declareFunctionArgument (const std::pair< std::string, carl::Sort > &arg) |
void | defineFunction (const std::string &name, const std::vector< types::VariableType > &arguments, const carl::Sort &sort, const types::TermType &definition) |
types::TermType | resolveSymbol (const Identifier &identifier) const |
types::VariableType | resolveVariable (const Identifier &identifier) const |
void | pushExpressionScope (std::size_t n) |
void | popExpressionScope (std::size_t n) |
void | pushScriptScope (std::size_t n) |
void | popScriptScope (std::size_t n) |
const auto & | annotateTerm (const types::TermType &term, const std::vector< Attribute > &attributes) |
void | handleLet (const std::string &symbol, const types::TermType &term) |
types::TermType | handleITE (const std::vector< types::TermType > &arguments) |
types::TermType | handleDistinct (const std::vector< types::TermType > &arguments) |
bool | instantiate (const UserFunctionInstantiator &function, const types::VariableType &var, const types::TermType &repl, types::TermType &subject) |
bool | instantiateUserFunction (const UserFunctionInstantiator &function, const std::vector< types::TermType > &arguments, types::TermType &result, TheoryError &errors) |
types::TermType | functionCall (const Identifier &identifier, const std::vector< types::TermType > &arguments) |
types::TermType | quantifiedTerm (const std::vector< std::pair< std::string, carl::Sort >> &vars, const types::TermType &term, bool universal) |
bool | isVariableDeclared (const std::string &name) const |
Static Public Member Functions | |
static void | addConstants (qi::symbols< char, types::ConstType > &constants) |
Collects constants from all theory modules. More... | |
static void | addSimpleSorts (qi::symbols< char, carl::Sort > &sorts) |
Collects simple sorts from all theory modules. More... | |
Private Attributes | |
ParserState * | state |
std::map< std::string, AbstractTheory * > | theories |
The Theories class combines all implemented theories and provides a single interface to interact with all theories at once.
Definition at line 28 of file Theories.h.
typedef boost::mpl::vector< CoreTheory* , ArithmeticTheory* , BitvectorTheory* , UninterpretedTheory* , BooleanEncodingTheory* >::type smtrat::parser::Theories::Modules |
Definition at line 42 of file Theories.h.
|
inline |
Definition at line 45 of file Theories.h.
|
inline |
Definition at line 61 of file Theories.h.
|
inlinestatic |
Collects constants from all theory modules.
Definition at line 82 of file Theories.h.
|
inline |
|
inlinestatic |
Collects simple sorts from all theory modules.
Definition at line 99 of file Theories.h.
|
inline |
Definition at line 213 of file Theories.h.
|
inline |
Definition at line 122 of file Theories.h.
|
inline |
Definition at line 141 of file Theories.h.
|
inline |
Definition at line 108 of file Theories.h.
|
inline |
Definition at line 157 of file Theories.h.
|
inline |
Definition at line 337 of file Theories.h.
|
inline |
Definition at line 268 of file Theories.h.
|
inline |
Definition at line 242 of file Theories.h.
|
inline |
Definition at line 237 of file Theories.h.
|
inline |
Definition at line 280 of file Theories.h.
|
inline |
Definition at line 304 of file Theories.h.
|
inline |
|
inline |
Definition at line 203 of file Theories.h.
|
inline |
Definition at line 209 of file Theories.h.
|
inline |
Definition at line 200 of file Theories.h.
|
inline |
Definition at line 206 of file Theories.h.
|
inline |
Definition at line 412 of file Theories.h.
|
inline |
Definition at line 174 of file Theories.h.
|
inline |
|
private |
Definition at line 430 of file Theories.h.
|
private |
Definition at line 431 of file Theories.h.