* 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)
* Add helper to check whether pdd is univariate and linear
* Reorganize propagate/narrow of eq_constraint
* Implement propagate/narrow for ule constraints
* Also push trail instruction in push_viable
* Implement phase saving
* Implement signed comparison on BDD vectors
* Add fdd::non_zero
* Simplify construction of fdds over disjoint variables
* Minor changes to adding constraint
* Coding style
* Simplify bddv class
* mk_eq: run loop from below
* Add unit test for bddv unsigned comparison
* Add test that shows contains_num/find_num fail after reordering
* Add BDD vector subtraction
* Call apply_rec in mk_ite_rec instead of apply
* Question about mk_quant
* Implement quot_rem over BDD vectors
* Move shl/shr to bddv
* Make unit test smaller
* Add class dd::fdd to manage association between BDDs and numbers
* Remove contains_num/find_num from bdd_manager
* Fix XOR over BDDs
* Add operator<< for find_int_t
* Add equality assertion macro that prints expression values on failure
* Adapt contains_int and find_int to take externally-defined bits
* Add more operations on BDD vectors
* Remove old functions
* Additional bddv functions
* Rename some things
* Make bddv a class and add operators
* Fix find_num/contains_num calls
* Add a few helper methods for encoding sets of integers as BDDs
* Use BDD functions in solver
* Add bdd::find_int
* Use bdd::find_int in solver
* Add narrowing for linear equality constraints
* Simplify code for linear propagation
* Add test for later
* Narrowing can only handle linear constraints with a single variable
* Need to push_cjust
* Expose 'inv' on rationals to get reciprocal value
* Align parameter names with implementation
* Add cached operation that divides PDD by a constant
* Fix display for constant PDDs
* operator^ should probably call ^ instead of + (mk_xor instead of add)
* Add helper function 'pow' on PDDs
* Add method to find largest power of two that is a divisor
* Binary resolve on PDDs
* Add unit tests for binary resolve
* Fix factor cache access in case GC happens while factoring
* Coding conventions
* Change to gc_generation