3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-14 06:45:25 +00:00

Add lemma: y = x[h:l] & y != 0 ==> x >= 2^l

This commit is contained in:
Jakob Rath 2023-08-16 09:57:45 +02:00
parent afc292e5db
commit bc6f0729a0
4 changed files with 57 additions and 3 deletions

View file

@ -320,6 +320,9 @@ namespace polysat {
pvar mk_concat(unsigned num_args, pvar const* args) { return mk_concat(num_args, args, null_var); }
pvar mk_concat(std::initializer_list<pvar> args);
// Find hi, lo such that x = src[hi:lo].
bool is_extract(pvar x, pvar src, unsigned& out_hi, unsigned& out_lo);
// Track value assignments to variables (and propagate to subslices)
// (could generalize to fixed bits, then we need a way to merge interpreted enodes)
void add_value(pvar v, rational const& value);