[SMT-LIB] Benchmark Conformance: log in AUFLIRA/nasa/

Nikolaj Bjorner nbjorner at microsoft.com
Wed Nov 3 14:14:11 EDT 2010


Yes, Z3 aims to accept a super-set of SMT-LIB2. It also aims to be forgiving with lack of quotes around strings etc, as they are most often redundant.

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