Can I use declare-const to eliminate the forall universal quantifier?

Posted by monica on Stack Overflow See other posts from Stack Overflow or by monica
Published on 2012-11-05T23:14:57Z Indexed on 2012/11/07 5:00 UTC
Read the original article Hit count: 284

Filed under:
|

I have some confusion of using universal quantifier and declare-const without using forall

(set-option :mbqi true)
(declare-fun f (Int Int) Int)
(declare-const a Int)
(declare-const b Int)

(assert (forall ((x Int)) (>= (f x x) (+ x a))))

I can write like this:

(declare-const x Int)
(assert  (>= (f x x) (+ x a))))

with Z3 will explore all the possible values of type Int in this two cases. So what's the difference? Can I really use the declare-const to eliminate the forall quantifier?

© Stack Overflow or respective owner

Related posts about z3

Related posts about theorem-proving