[SMT-LIB] Draft of SMT-LIB 2.5: request for feedback

David R. Cok dcok at grammatech.com
Sun Sep 28 16:08:08 EDT 2014


Other comments - David

p. 24: Why the restriction of <index> to <simple symbol> rather than 
<symbol> ?

p.27: perhaps have :pattern annotate the forall or exists term, rather 
than its body. That is
(! Q ((x1 t1)) t :pattern p1), since the pattern really applies to the 
quantification, not to the term. But if this  definition reflects 
existing practice, let it be.

p.25: I think it would be helpful to state what a variable is - the 
identifiers bound in a forall or exists or let term - and be clearer in 
the use of the term. p.24 uses the term bound variable as if there are 
also unbound variables. On p.27 (last sentence) the text seems to allow 
variables that are global to the formula - which I don't think exist in 
SMT-LIB, except if you mean variables free in a term but bound by an 
enclosing binding term.

p.31, theory and logics: Some attribute keywords are allowed to be 
repeated, e.g., :sorts and :funs. The document should state that such 
repetitions are equivalent to a single attribute whose value contains 
the concatenation of the values in the repetitions.

p. 49, opening of section 4.1.6: suggest rewording to state that solvers 
are required to respond in a standard way to all options, but, except 
for those that a designated as required, a solver may choose to respond 
'unsupported'.

p. 53: How about a define-const as well?

p. 54 and elsewhere. Why the use of 'assumptions' instead of 
'assertions'? They seem synonymous in this paper but the different 
terminology makes one wonder if they are intended to be different. Here 
particularly, we have only described assertion levels as containing 
declarations, definitions, and assertions. So what are these assumptions 
we are adding?

p.55: in a given sequence of get-value commands (without any 
assertion-set-changing commands) will different instances of the same 
symbol denoting an abstract value have the same value in the model? What 
about in different models after different check-sat commands?

p.65: Must compatible signatures have exactly the same sort symbols or 
must they only agree on the sort symbols they have in common? I see that 
the latter makes n-ary combination more complicated, but it seems to be 
how the concept is used in practice. With the former, which is what is 
stated in the text, one first has to expand each theory with the union 
of all the sorts in all the theories to be combined, before combining 
them. At minimum, that pre-step of expansion is not discussed here.




More information about the SMT-LIB mailing list