[QF_S Benchmark] QF_S Benchmark: seq vs nseq (c3 branch, 299 files) #9730
Closed
Replies: 1 comment
-
|
This discussion has been marked as outdated by QF_S String Solver Benchmark. A newer discussion is available at Discussion #9739. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
QF_S Benchmark: seq vs nseq
Date: 2026-06-05
Branch: c3
Commit:
9de196bWorkflow Run: #27017039481
Benchmark source:
tests/ostrich.zipFiles benchmarked: 299 (all files, timeout 5 s/file)
1 soundness bug found:
nseqreturnsunsatonsubstr_const_len_sat.smt2, which is annotated:status satand correctly solved assatbyseq.Summary
seq-fast / nseq-slow (seq < 2 s, nseq timeout): 19 files
nseq-fast / seq-slow (nseq < 2 s, seq timeout): 13 files
Correctness: DISAGREEMENT
substr_const_len_sat.smt2— seq=sat✓, nseq=unsat✗Witness:
a="hhhbbb",b="hh"→str.substr("hhhbbb",0,2) = "hh".nseqfails to find this model.Root cause hypothesis: Incorrect propagation in the
str.substr+ disjunctive regex handler in ZIPT. The verbose trace shows nseq cycling through assignments and exhausting all paths.Both Solvers Timeout (11 files)
artur-unsat-we,artur-unsat,contains-7,nikolai-unsat,noodles-unsat,noodles-unsat2,noodles-unsat5,noodles-unsat6,noodles-unsat9,pcp-1,substring-bug2Analysis
seqhas a slight edge: 274 vs 267 solved, 25 vs 31 timeouts.str.from_int/str.to_intconversions, lexicographic ordering (str-leq/str-lt), Parikh constraints, backjump-heavy concatenation problems.regexdeep), certainstr.substr/indexofproblems.noodles-unsat8.smt2— nseq generates an invalid model (flagged bymodel_validate=true).substr_const_len_sat, (2) investigatestr-leq/str-ltsupport in nseq, (3) investigatestr.from_int/str.to_inttimeouts, (4) fix invalid model innoodles-unsat8.Generated by the QF_S Benchmark workflow. To reproduce: build Z3 from
c3and runpython3 scripts/compare_seq_solvers.py tests/ostrich/ --z3 ./z3 --timeout 5.Beta Was this translation helpful? Give feedback.
All reactions