3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-05 10:50:24 +00:00

additional bit-vector propagators (#4695)

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-09-18 12:38:29 -07:00 committed by GitHub
parent 549753845e
commit 8691ef1d4d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 423 additions and 121 deletions

View file

@ -669,13 +669,14 @@ struct goal2sat::imp : public sat::sat_internalizer {
}
struct scoped_stack {
imp& i;
sat::literal_vector& r;
unsigned rsz;
svector<frame>& frames;
unsigned fsz;
bool is_root;
scoped_stack(imp& x, bool is_root) :
r(x.m_result_stack), rsz(r.size()), frames(x.m_frame_stack), fsz(frames.size()), is_root(is_root)
i(x), r(i.m_result_stack), rsz(r.size()), frames(x.m_frame_stack), fsz(frames.size()), is_root(is_root)
{}
~scoped_stack() {
if (frames.size() > fsz) {
@ -683,9 +684,9 @@ struct goal2sat::imp : public sat::sat_internalizer {
r.shrink(rsz);
return;
}
SASSERT(frames.size() == fsz);
SASSERT(!is_root || rsz == r.size());
SASSERT(is_root || rsz + 1 == r.size());
SASSERT(i.m.limit().is_canceled() || frames.size() == fsz);
SASSERT(i.m.limit().is_canceled() || !is_root || rsz == r.size());
SASSERT(i.m.limit().is_canceled() || is_root || rsz + 1 == r.size());
}
};