* Add macro to disable linear solver for development
* Move new_* and add_* to header
* Add ref_vector_core::push_back(ref<T>&&)
* Attempt to simplify lifetime handling
* Make operator bool() explicit
* clause improvements
* display boolean assignment
* clause::resolve
* bug fixes
* more fixes
* final case of backtrack
* Extend search state by boolean literals
* Only resolve against positive equality
* mk_dep_ref
* Make clause non-owning
* scoped_clause
* Use scoped_clause
* minor
* scoped_ptr move assignment
* WIP: internal handling of disjunctive constraints
* leaf_value
* disjunctive constraints continued
* Fix bool_lit
* Actually add constraints to storage
* Some fixes
* more fixes
* constraint should have a bool_lit instead of a bool_var
* propagate(bool_lit)
* updates
* interface changes
* small fixes
* Make sat::dimacs_lit's constructor explicit
(otherwise, calling operator<< with sat::literal is ambiguous)
* Use sat::literal
* Print test name at the beginning
* Convention: constraint corresponds to the positive boolean literal
* Make constraint ownership more explicit
* clause stores literals
* Rename to neg_cond
* Add some logging utilities
* Implement case of forbidden interval covering the whole domain
* Implement diseq_narrow
* Do not activate constraint if we are in a conflict state
* comments
* Assert that lemma isn't undefined
* Update revert_decision to work in the case where narrowing causes propagation
* Fix case of non-disjunctive lemma from forbidden intervals
* Conflict should not leak outside user scope
* Add guard to decide(), some notes
* Add test case
* Add constraints to watchlist of unassigned variable during propagation
* Move common propagation functionality into base class
* Combine eq/diseq narrow
* Compute forbidden interval for equality constraints by considering them as p <=u 0 (or p >u 0 for disequalities)
* Add interval class
* Take dependency as const reference
* Compute forbidden intervals for ule-constraints
* Add class for evaluated interval
* We need the evaluated bounds as well
* Don't add constraint to cjust multiple times (hack, to be improved later)
* typo
* More interval helpers
* Add constraint::ult factory function
* Fix forbidden interval condition
* Add solver::has_viable
* Add conflict explanation using forbidden intervals (not yet fully integrated into solver)
* Separate constraint creation from activation
* Basic recursive handling of disjunctive lemmas for unit tests
* Set learned constraint to true immediately
* Preliminary support for negated constraints