* conflict_core doesn't need gc() anymore
* update comments, ensure_bvar for new constraints
* Make sure constraints can only be created through constraint_manager
* fix constraint::display if no boolean variable is assigned
* Move clause into separate file
* Add conflict_core binary resolution
* conflict_core additions
* reactivate conflict resolution outer loop
* wip
* seems commented includes break CI build
* Simplify adding lemmas
* Remove misleading constructor from tmp_assign.
The idea is that tmp_assign is only created on the stack and
short-lived. Instead of having a convenience constructor that takes a
constraint_ref, it's clearer to have an explicit .get() at the call
site.
* Remove some log messages
* bugfix
* fix
* Add stub for conflict_core
* wip
* Add example by Clemens
* Refactor: remove sign and dep from constraint
* fix some bugs
* improve log messages
* Add missing premises to lemma
* Rename getter in an attempt to fix linux build
* display constraint's extra info in one place
* Add stub for conflict explainer
* Add helper functions to check whether constraint is active at base level
* Add helper class tmp_assign
* Add clause_builder; it skips unnecessary literals during clause creation
* some fixes
* Use clause_builder for forbidden intervals
* remove old comments
* fixes/comments in solver
* print redundant clauses
* First pass at conflict_explainer
* remove unused model class
* Choose value for k
* also print min/max k
* 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
* 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 polysat logging support
* Don't really need the usual log levels
* Indent log headings
* Add display method to ptr_vector
* Add some logging to solver
* Use __FUNCSIG__ on MSVC