3 #include "../QEQuery.h"
7 #include <eigen3/Eigen/Core>
8 #include <eigen3/Eigen/Dense>
9 #include <eigen3/Eigen/StdVector>
12 #include "../util/VariableIndex.h"
17 using vector_t = Eigen::Matrix<Rational, Eigen::Dynamic, 1>;
18 using matrix_t = Eigen::Matrix<Rational, Eigen::Dynamic, Eigen::Dynamic>;
33 qfree.type() == carl::FormulaType::CONSTRAINT ||
34 qfree.is_real_constraint_conjunction()
45 bool conservative =
true);
49 const std::vector<std::size_t> &cols,
50 bool conservative =
true);
FormulaT eliminateQuantifiers()
std::pair< matrix_t, vector_t > eliminateCols(const matrix_t &constraints, const vector_t constants, const std::vector< std::size_t > &cols, bool conservative=true)
std::pair< matrix_t, vector_t > eliminateCol(const matrix_t &constraints, const vector_t &constants, std::size_t col, bool conservative=true)
FourierMotzkinQE(const FormulaT &qfree, const QEQuery &quantifiers)
FormulaT m_formula
The quantifiers to eliminate.
qe::util::VariableIndex m_var_idx
The logical representation of the solution space.
Eigen::Matrix< Rational, Eigen::Dynamic, Eigen::Dynamic > matrix_t
Eigen::Matrix< Rational, Eigen::Dynamic, 1 > vector_t
std::vector< std::pair< QuantifierType, std::vector< carl::Variable > >> QEQuery
carl::FormulaSet< Poly > FormulaSetT
carl::Formula< Poly > FormulaT