Skip to content

(smt.arith.bprop_on_pivoted_rows=false, rewriter.sort_sums, rewriter.arith_ineq_lhs, smt.phase_selection=6) Invalid model on QF_S formula #4296

@muchang

Description

@muchang

Hi,
For this case, Z3 gives an invalid model:

[677] % z3-4.8.8 model_validate=true small.smt2
sat
[678] % z3release model_validate=true small.smt2
sat
(error "line 55 column 10: an invalid model was generated")
[679] %
[679] % cat small.smt2
(set-option :smt.arith.bprop_on_pivoted_rows false)
(set-option :rewriter.sort_sums true)
(set-option :rewriter.arith_ineq_lhs true)
(set-option :smt.phase_selection 6)
(set-option :smt.random_seed 15)
(declare-fun a () String)
(declare-fun b () String)
(declare-fun c () String)
(declare-fun d () String)
(declare-fun w () String)
(declare-fun e () Bool)
(declare-fun f () Bool)
(declare-fun x () Bool)
(declare-fun y () Bool)
(declare-fun g () Bool)
(declare-fun h () Bool)
(declare-fun i () Bool)
(declare-fun j () String)
(declare-fun k () Int)
(declare-fun l () Int)
(declare-fun m () String)
(declare-fun n () String)
(declare-fun o () String)
(declare-fun z () String)
(declare-fun p () String)
(declare-fun q () Bool)
(declare-fun r () Bool)
(declare-fun aa () Bool)
(declare-fun s () Bool)
(declare-fun ab () Bool)
(declare-fun ac () String)
(declare-fun t () Bool)
(declare-fun ad () Bool)
(declare-fun v () String)
(assert (= (distinct "-" (str.substr j 0 (str.len ac))) (not (= f (not (= h s))))))
(assert (not (distinct f (not (= i ab)))))
(assert (not (= x (not (= g aa)))))
(assert (= (not (= g t)) (not distinct )))
(assert (ite aa (and (= l 0) (= c m) (= k 0) (distinct 0 (str.len m))
 (= n o) (= "" z) (= p "ab")) (and (= ac n) (not
 (str.in.re n (str.to.re "_"))) y (not (= g aa)))))
(assert (= ab (not s)))
(assert (= (not (= x r)) (= "" (str.substr a (str.len n) (str.len
 (str.substr c (str.len o) (str.len (str.substr d (str.len z)
 (str.len (str.substr j (str.len ac) (str.len v)))))))))))
(assert (= (not (= e q)) (distinct (str.substr w (str.len p) (str.len v)) "")))
(assert (= c (str.++ o v) d (str.++ z v)))
(assert (distinct w (str.++ p v)))
(assert (= e (not q)))
(assert (= x (xor (= r t))))
(assert (= g (not (= aa t))))
(assert (= h (not (= s ad))))
(assert (= i (not (= ab ad))))
(assert (= j (str.++ ac v)))
(check-sat)
[680] %

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