mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 00:55:31 +00:00
sketch vnext
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
c1365b6ba8
commit
1197c4d416
1 changed files with 15 additions and 1 deletions
|
@ -380,4 +380,18 @@ print("non-strict")
|
|||
search_dual(ULE(v, w))
|
||||
|
||||
|
||||
|
||||
# Sketch v-next approach that
|
||||
# Maintain a transition relation T(B0, B1)
|
||||
# where B := (lo(v), hi(v), lo(w), hi(w)) are variables.
|
||||
# Initially T is B0 = B1
|
||||
# Enumerate representative values of B0
|
||||
# Enumerate solutions for T(B0, B1) given value for B0
|
||||
# Check if B & v < w and v = lo(v) is unsat (similar to w = lo(w), v = hi(v)-1, )
|
||||
# If it is unsat then find predicate cover P for B1
|
||||
# B1 |= P,
|
||||
# * P & v < w & not in_bounds(v, lo(v)', hi(v)') is unsat
|
||||
# where lo(v)', hi(v)' is a tightest bound under B1
|
||||
# Update T by adding transition (P => B2 = lo(v)', hi(v)', lo(w), hi(w)) & (~P => B2 = B1)
|
||||
# * P & v < w is unsat
|
||||
# Update T by adding not P
|
||||
#
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue