[SMT-LIB] Benchmark Conformance: log in AUFLIRA/nasa/
Cesare Tinelli
tinelli at cs.uiowa.edu
Wed Nov 3 15:30:56 EDT 2010
Nikolaj,
On 3 Nov 2010, at 13:14, Nikolaj Bjorner wrote:
> Yes, Z3 aims to accept a super-set of SMT-LIB2.
That is certainly reasonable, especially considering that the command language is currently quite limited.
> It also aims to be forgiving with lack of quotes around strings etc, as they are most often redundant.
>
This statement and the example below though seem at odd with the view of SMT-LIB2 as a low level, machine interchange format. For instance, I do not quite see the rationale for accepting both pop and (pop 1), quit and (exit), declare-funs and declare-fun, etc.
Cesare
> Cheers,
>
> Nikolaj
>
> -----Original Message-----
> From: cok at frontiernet.net [mailto:cok at frontiernet.net]
> Sent: Wednesday, November 03, 2010 12:27 AM
> To: Nikolaj Bjorner
> Cc: Cesare Tinelli; smt-lib at cs.nyu.edu
> Subject: Re: [SMT-LIB] Benchmark Conformance: log in AUFLIRA/nasa/
>
>
> ----- "Nikolaj Bjorner" <nbjorner at microsoft.com> wrote:
>
>>
>> While I support the SMT-LIB2 format (see my shameless plug:
>> http://rise4fun.com/z3 ), I see its main priority as a low-level
>> mostly machine writeable/readable interchange format that as an added
>> benefit is also human read/write-able.
>>
>> Thanks,
>>
>> Nikolaj
>>
>
> Nikolaj - A nifty web-site but what is written on that web site is not (pure) SMT-LIB.
> In particular it has
>
> (declare-funs ((x Int) (y Int) (z Int)))
> (assert (>= (* 2 x) (+ y z)))
> (declare-funs ((f Int Int) (g Int Int Int)))
> (assert (< (f x) (g x x)))
> (assert (> (f y) (g x x)))
> check-sat
> (get-info model)
> push
> (assert (= x y))
> check-sat
> pop
> quit
>
>
>
> (declare-funs ((x Int) (y Int) (z Int))) - I've wanted the convenience of combining declarations also, but SMT-LIB does not currently have it. Even better actually would be (declare-funs ((x y z Int)))
>
>
> (get-info model) - Keywords used in get-info are supposed to start with a :, and :model is not one of them. This is perhaps the not well-documented command get-model?
>
> push
> check-sat
> pop - As commands, these should all be in ()
>
> quit - should be (exit)
>
> David
>
More information about the SMT-LIB
mailing list