[SMT-LIB] SMT-LIB logic and language Version 2 draft
Cesare Tinelli
tinelli at cs.uiowa.edu
Sat Aug 1 19:20:49 EDT 2009
Dear Tjark,
thanks for your immediate feedback.
On Aug 1, 2009, at 2:38 AM, Tjark Weber wrote:
> On Fri, 2009-07-31 at 00:16 -0500, Cesare Tinelli wrote:
>
>> the draft below defines Version 2 of SMT-LIB's underlying logic and
>> the language for specifying theories, sublogics and benchmarks.
>>
>
>
>> Again, your feedback is highly welcome.
>>
>
> A nice piece of work! I believe it's very much going into the right
> direction.
>
>
Thanks, that was our intention :)
> I only have very minor remarks for the time being.
>
>
>> <hex> ::= a non empty sequence of digits and the letters
>> from a to f, capitalized or not
>>
>> <hexadecimal> ::= #h<hex>
>> ------------------------------
>> Ex: #h0 #hA04 #h01AB #h61ff
>> ------------------------------
>>
>
> I suggest at least one mixed-case example, e.g., #h01Ab, just to point
> out that's valid.
>
>
Done.
>> <bin> ::= a non-empty sequence of 0s and 1s
>> <binary> ::= #bin<bin>
>> ------------------------------
>> Ex: #b0 #b001 #b101011
>> ------------------------------
>>
>
> #bin should be #b.
>
>
Fixed.
>> <symbol> ::= any sequence of letters, digits and the characters
>> + - / * = ~ ? ! . _ $ % & ^ < > @ :
>> that does not start with a digit
>> | any sequence of printable ASCII characters that
>> starts
>> and ends with | and does not otherwise contain |
>>
>
> I suggest inserting "non-empty" or "(possibly empty)" before
> "sequence"
> as appropriate.
>
>
Changed "any sequence of letters ..." to "any non-empty sequence of
letters ..."
The other is fine (|| is an allowed symbol).
>> Then (f t_1 ... t_n) is syntactic sugar respectively for:
>>
>> i) (f ... (f (f t_1 t_2) t_3) ... t_n)
>> ii) (f t_1 (f t_2 ... (f t_{n-1} t_n) ...)
>> iii) (and (f t_1 t_2) ... (f t_1 t_2))
>> [with 'and' itself assumed to be declared as :left_assoc]
>>
>
> iii) should probably read "(and (f t_1 t_2) ... (f t_1 t_n))".
>
>
Actually, it was meant to be "(and (f t_1 t_2) ... (f t_{n-1} t_n))"
[e.g., (< x1 x2 x3 x4) stands for (and (< x1 x2) (< x2 x3) (< x3 x4))]
Cesare
>
> Regards,
> Tjark
>
>
More information about the SMT-LIB
mailing list