SMT-RAT
24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
|
Implements the theory of bitvectors. More...
#include <BooleanEncoding.h>
Public Member Functions | |
BooleanEncodingTheory (ParserState *state) | |
virtual bool | declareVariable (const std::string &, const carl::Sort &, types::VariableType &, TheoryError &errors) |
Declare a new variable with the given name and the given sort. More... | |
virtual bool | resolveSymbol (const Identifier &, types::TermType &, TheoryError &errors) |
Resolve a symbol that was not declared within the ParserState. More... | |
virtual bool | handleITE (const FormulaT &, const types::TermType &, const types::TermType &, types::TermType &, TheoryError &errors) |
Resolve an if-then-else operator. More... | |
virtual bool | handleDistinct (const std::vector< types::TermType > &, types::TermType &, TheoryError &errors) |
Resolve a distinct operator. More... | |
template<typename T , typename Builder > | |
FormulaT | expandDistinct (const std::vector< T > &values, const Builder &neqBuilder) |
virtual bool | instantiate (const types::VariableType &, const types::TermType &, types::TermType &, TheoryError &errors) |
Instantiate a variable within a term. More... | |
virtual bool | refreshVariable (const types::VariableType &, types::VariableType &, TheoryError &errors) |
virtual bool | functionCall (const Identifier &, const std::vector< types::TermType > &, types::TermType &, TheoryError &errors) |
Resolve another unknown function call. More... | |
virtual bool | declareQuantifiedTerm (const std::vector< std::pair< std::string, carl::Sort >> &, const carl::FormulaType &, const types::TermType &, types::TermType &, TheoryError &errors) |
Resolve a quantified term. More... | |
Static Public Member Functions | |
static void | addSimpleSorts (qi::symbols< char, carl::Sort > &) |
Initialize the global symbol table for simple sorts. More... | |
static void | addConstants (qi::symbols< char, types::ConstType > &) |
Initialize the global symbol table for constants. More... | |
Data Fields | |
ParserState * | state |
Implements the theory of bitvectors.
Definition at line 13 of file BooleanEncoding.h.
smtrat::parser::BooleanEncodingTheory::BooleanEncodingTheory | ( | ParserState * | state | ) |
|
inlinestaticinherited |
Initialize the global symbol table for constants.
Definition at line 115 of file AbstractTheory.h.
|
inlinestaticinherited |
Initialize the global symbol table for simple sorts.
Definition at line 111 of file AbstractTheory.h.
|
inlinevirtualinherited |
Resolve a quantified term.
Reimplemented in smtrat::parser::ArithmeticTheory.
Definition at line 103 of file AbstractTheory.h.
|
inlinevirtualinherited |
Declare a new variable with the given name and the given sort.
Reimplemented in smtrat::parser::UninterpretedTheory, smtrat::parser::CoreTheory, smtrat::parser::BitvectorTheory, and smtrat::parser::ArithmeticTheory.
Definition at line 45 of file AbstractTheory.h.
|
inlineinherited |
|
inlinevirtualinherited |
Resolve another unknown function call.
Reimplemented in smtrat::parser::UninterpretedTheory, smtrat::parser::CoreTheory, smtrat::parser::BitvectorTheory, and smtrat::parser::ArithmeticTheory.
Definition at line 95 of file AbstractTheory.h.
|
inlinevirtualinherited |
Resolve a distinct operator.
Reimplemented in smtrat::parser::CoreTheory, smtrat::parser::BitvectorTheory, smtrat::parser::ArithmeticTheory, and smtrat::parser::UninterpretedTheory.
Definition at line 67 of file AbstractTheory.h.
|
inlinevirtualinherited |
Resolve an if-then-else operator.
Reimplemented in smtrat::parser::UninterpretedTheory, smtrat::parser::CoreTheory, smtrat::parser::BitvectorTheory, and smtrat::parser::ArithmeticTheory.
Definition at line 60 of file AbstractTheory.h.
|
inlinevirtualinherited |
Instantiate a variable within a term.
Reimplemented in smtrat::parser::BitvectorTheory, and smtrat::parser::ArithmeticTheory.
Definition at line 84 of file AbstractTheory.h.
|
inlinevirtualinherited |
Reimplemented in smtrat::parser::BitvectorTheory.
Definition at line 88 of file AbstractTheory.h.
|
inlinevirtualinherited |
Resolve a symbol that was not declared within the ParserState.
This might be a symbol that actually uses indices, for example bitvector constants.
Reimplemented in smtrat::parser::BitvectorTheory.
Definition at line 53 of file AbstractTheory.h.
|
inherited |
Definition at line 37 of file AbstractTheory.h.