SMT-LIB: Initial proposal for a common format
Silvio.Ranise@loria.fr
Silvio.Ranise at loria.fr
Thu Sep 26 21:33:29 EDT 2002
Dear Greg,
I would like to thank you and the members of the Sparta
group for commenting about the proposal. Here follows
some comments in replay to your comments about our proposal
for a common format of SMT-LIB:
- P1.F1 about "unsorted". I agree with your proposal
of not being able to prove non-trivial properties
about formulae containing "strangely" typed terms.
However, we should make some efforts to define
what "non-trivial properties" means. But this is
not obvious to me.
- P1.F2 about preventing symbols with variable arity
in any given problem of the library. I agree with
the choice of not allowing varyadic symbols and that
the signature associated with each problem should be
derived while parsing the formulae (this will
simplify the statement of the problem and also shrink
its size).
- P1.F3 about the strict distinction between terms and
formulae. I agree with enforcing this distinction
(this will also simplify the parsing tools which
will translate from the common format to the formats
of the various satisfiability/validity checkers).
- P1.F4 about including an IF-THEN-ELSE construct.
I think that the IF-THEN-ELSE construct is---for certain
verification efforts---the key to write down formulae in
a compact way which otherwise would blow up in size once
expressed with the "standard" boolean connectives
(like implication, conjunction, etc...).
I think that we should also consider to include a LET
construct to name subterms and/or subformulae so to be
able to write down more compact formuale.
- P2 about a normal form for problems. I think that we
should allow formulae with arbitrary structure and
envisage tools to put the formulae into some normal
forms. Notice that if we allow IF-THEN-ELSE construct
in the formulae, then translating formulae containing
such a construct can cause an exponential blow-up in
the size, which could prevent tools to handle formulae
that can be otherwise handled if the input language of
the tools contains the IF-THEN-ELSE construct.
- P3 about how specifying theories. I agree with your
proposal of using any technique which is most suited
to the theory to be characterized.
- P4 about adding a tag for the status of the problem.
I agree that we should allows four tags: valid, invalid,
satisfiable, and unsatisfiable.
- P5 about which theories should be contained in SMT-LIB.
Here I have a question about the theory of arrays.
I think this theory highlights the problems of working
in a sorted or an unsorted framework. For example, if we
work in an unsorted framework, what can we say about
intuitively ill-formed terms of the form
select(a, store(a,i,e))
(where select is the function to read elements and store is
the function to write elements in an array)? Obviously,
we espect an index as the second argument of the select
above but we get an array (namely store(a,i,e)). If
we use a sorted framework (with sorts for arrays, indexes, and
elements) then ill-formed terms (such as the one above) are
ruled out. For this theory, I think that the sorted framework
is more natural than the unsorted one since it is obvious to interpret
select and store as distinct operators w.r.t. the remaining function
symbols: arrays are function from simple elements to simple elements with
store modifying such function for a given input and select returning the
result of applying the function to a given value. I do not see how to
adapt easly this interpretation to the unsorted case in which we cannot
distinguish the elements in the domain of the interpretation between
arrays and simple values.
Futhermore, if we allow the following extensionality axiom
in the theory of arrays:
forall A,B.((forall I.select(A,I)=select(B,I))) ==> A=B)
then the question is: do you have any evidence that the unsorted
theory is consistent? I can easly build a model for the
sorted theory, but I do not succeed in building a model for the
unsorted case.
I hope the above comments will furtherly stimulate the discussion.
Best regards,
Silvio.
PS: I would like to point out---once more---the importance of
setting up the local web pages containing the benchmarks
in your favorite format. In fact, this activity can be
done in parallel with the discussion, it allows to focus
the discussion about the common format on the "real"
problems, and it gives us visibility to the rest of the
community.
More information about the SMT-LIB
mailing list