* 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
generation of escape sequences for output was not handling non-printable character ranges correctly and also not offsetting hexadecimal characters right.
@wintersteiger
This example exposes a bug in is_unique_value
```
(assert (= (fp.to_real ((_ to_fp 8 24) (_ bv4286579200 32))) (fp.to_real ((_ to_fp 8 24) (_ bv4286578944 32)))))
(check-sat)
```
It returns true for fp representations that map to NaN. It can only return true for fp values that are unique relative to having no other bit-vector representation so not corresponding to an equivalence class of values such as NaN.
I am having it return false. If there is a way to refine the test it will catch some earlier inferences.
* Assign boolean variables only to long-lived constraints, and deduplicate constraints when they are created
* scoped_signed_constraint
* update other classes
* fix
* Don't use scoped_ptr<constraint> with dedup()
Z3_simplify() does RETURN_Z3(simplify(...)), hence the function was being called twice
it turns out simplify is not idempotent, so calling it twice can result in different results
thus breaking the log.
Pull request #5512 identifies a in line 1139 where the const-case-multiplier constructor returns false and does useless work.
In this update we also remove mk_const_multiplier because code path is subsumed by mk_const_case_multiplier.
the result is now unknown because the nested expression contains exists, which doesn't get replaced by universal quantifier which is assumed by the legacy core.
The legacy core should not depend on universal quantifiers only, but fixing this is a risk. Workaround is to rewrite goals using forall only (replace exists by de-Morgan dual).