Merge pull request #3368 from jix/smtbmc-unroll-noincr-traces-fix

smtbmc: noincr: keep solver running for post check-sat unrolling
This commit is contained in:
Jannis Harder 2022-06-10 15:25:57 +02:00 committed by GitHub
commit 53b205c41d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 2 deletions

View File

@ -411,6 +411,13 @@ class SmtIo:
recheck = None recheck = None
if self.solver != "dummy":
if self.noincr:
# Don't close the solver yet, if we're just unrolling definitions
# required for a (get-...) statement
if self.p is not None and not stmt.startswith("(get-") and unroll:
self.p_close()
if unroll and self.unroll: if unroll and self.unroll:
stmt = self.unroll_buffer + stmt stmt = self.unroll_buffer + stmt
self.unroll_buffer = "" self.unroll_buffer = ""
@ -473,8 +480,6 @@ class SmtIo:
if self.solver != "dummy": if self.solver != "dummy":
if self.noincr: if self.noincr:
if self.p is not None and not stmt.startswith("(get-"):
self.p_close()
if stmt == "(push 1)": if stmt == "(push 1)":
self.smt2cache.append(list()) self.smt2cache.append(list())
elif stmt == "(pop 1)": elif stmt == "(pop 1)":