* 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)
* 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