Skip to content

Regression with existential quantifier elimination? #298

@wintered

Description

@wintered

Commit: 6394bf6
OS: Ubuntu 18.04

$cvc5 -q --strings-exp f1.smt2
unknown
(not (and (forall ((BOUND_VARIABLE_2284 Int)) (not (>= (str.len 
(str.substr (str.replace_re "" (str.to_re v) v) BOUND_VARIABLE_2284 1)) 1))) (not u)))
$cvc4-1.8 -q --strings-exp f1.smt2
sat
true
$cat f1.smt2 
(declare-const u Bool)
(declare-fun v () String)
(assert   (exists ((x Int)) (or (not (>= 0 (str.len (str.substr 
          (str.replace_re "" (str.to_re v) v) x 1)))) u)))
(check-sat)
(simplify (exists ((x Int)) (or (not (>= 0 (str.len (str.substr 
          (str.replace_re "" (str.to_re v) v) x 1)))) u)))

cvc5 rewrites the existential quantifier to an universal quantifier while cvc4-1.8 simplifies the whole term to true.

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions