17     using Row      = std::vector<RowEntry>;
 
   21             auto it_a = a.begin(), it_b = b.begin();
 
   22             auto end_a = a.end(), end_b = b.end();
 
   23             while (it_a != end_a && it_b != end_b) {
 
   24                 if (it_a->col_index != it_b->col_index) 
 
   25                     return it_a->col_index < it_b->col_index;
 
   26                 if (it_a->value != it_b->value)
 
   27                     return it_a->value < it_b->value;
 
   31             return (it_b != end_b); 
 
   66         std::vector<Matrix::ColIndex> cols_to_elim;
 
   67         for (
ColIndex j = 0; j < n_quantified; ++j) cols_to_elim.push_back(j);
 
   68         m_nodes.emplace_back(filtered, cols_to_elim);
 
  103             result.append_row(r.begin(), r.end());
 
  116         assert(!row.empty());
 
  121         assert(!row.empty());
 
  123         const auto& e = row.front();
 
  124         return (e.col_index <= 
delta_column()) && (e.value > 0);
 
  130         for (
auto it = row.rbegin(); it->col_index > 
delta_column(); ++it) {
 
  131             if (it->value < 0) 
return false;
 
  142         for (std::size_t i = 0; ; ++i) {
 
  160         result.append_row(unsat_row.begin(), unsat_row.end());
 
ColIndex m_first_parameter_col
 
std::set< Row, cmp_row > m_found_rows
 
bool is_trivial(const Row &row) const
 
ColIndex delta_column() const
 
std::vector< Node > m_nodes
 
bool is_positive_combination(const Row &row) const
 
ColIndex constant_column() const
 
std::vector< Node > split_into_independent_nodes(const Node &n) const
 
Matrix::ColIndex ColIndex
 
bool fm_elimination(Node &parent)
 
void collect_constraint(const Row &row)
 
bool is_global_conflict(const Row &row) const
 
bool is_conflict(const Row &row) const
 
std::vector< RowEntry > Row
 
Matrix trivial_unsat_matrix() const
 
ColIndex origin_column(RowIndex row) const
 
Node bounded_elimination(Node &parent)
 
Matrix::RowIndex RowIndex
 
FMplexElimination(const Matrix &m, std::size_t n_quantified, std::size_t n_parameters)
 
Matrix::RowEntry RowEntry
 
Node unbounded_elimination(Node &parent)
 
std::size_t n_cols() const
 
row_view row_entries(const RowIndex ri) const
 
row_iterator row_end(RowIndex r) const
 
row_iterator row_begin(RowIndex r) const
 
RowIndex append_row(const It &begin, const It &end)
Appends the row contained in the range between begin and end to the matrix.
 
std::size_t n_rows() const
 
bool operator()(const Row &a, const Row &b) const