Skip to content

(purify-arith,nnf) Soundness bug on QF_S formula  #4280

@muchang

Description

@muchang

Hi,
For this case, Z3 gives an incorrect answer:

[539] % z3-4.8.5 small.smt2 
unsat
sat
[540] % z3-4.8.6 small.smt2 
unsat
unsat
[541] % z3-4.8.7 small.smt2 
unsat
unsat
[542] % z3-4.8.8 small.smt2 
unsat
sat
[543] % z3release small.smt2 
unsat
sat
[544] % cat small.smt2 
(declare-fun a () String)
(assert (distinct (str.in.re a (re.inter (str.to.re "B") (re.+ (str.to.re "B"))))
     (str.in.re a (str.to.re "BB"))))
(assert (= (str.in.re a (re.union (str.to.re "A") (str.to.re "B")))
     (str.in.re a (re.inter (str.to.re "") (str.to.re "B")))))
(check-sat-using (then purify-arith nnf default))
(check-sat)
[545] %

OS: Ubuntu 18.04
Commit: a14c2a3

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions