[SMT-LIB] Bug in pattern in smtlib2 benchmarks
Morgan Deters
mdeters at gmail.com
Tue Feb 22 10:10:13 EST 2011
Hi Jochen,
Thanks for catching this. After reading what the spec says about
:pattern's intended use, this does look like an error to me. I'll
correct the translator.
Morgan
On Mon, Feb 21, 2011 at 10:07 AM, Jochen Hoenicke
<hoenicke at informatik.uni-freiburg.de> wrote:
> Hello,
>
> we started implementing pattern-based quantifier instantiation in our
> solver and stumbled over something that looks like a bug in the
> benchmark converter.
>
> The file AUFLIA/boogie/AdditiveMethods_AdditiveMethods.N.smt2 contains the line
>
> (assert (forall ((?A Int) (?r Int) (?T Int)) (! (let ((?v_0
> (ValueArray ?A ?r))) (=> (subtypes ?T ?v_0) (= ?T ?v_0))) :pattern
> ((subtypes ?T ?v_0)) )))
>
> Note that in this construct the annotation ":pattern ((subtypes ?T
> ?v_0))" is outside of the scope of the let command, hence the variable
> ?v_0 is undefined in this pattern.
>
> Interestingly, the corresponding assumption in smtlib-1.2 does not
> contain the let at all:
>
> :assumption
> (forall (?A Int) (?r Int) (?T Int)
> (implies (subtypes ?T (ValueArray ?A ?r)) (= ?T (ValueArray ?A ?r)))
> :pat {(subtypes ?T (ValueArray ?A ?r))})
>
> Regards,
> Jochen
>
> --
> Jochen Hoenicke,
> Email: hoenicke at informatik.uni-freiburg.de Tel: +49 761 203 8243
>
> _______________________________________________
> SMT-LIB mailing list
> SMT-LIB at cs.nyu.edu
> http://www.cs.nyu.edu/mailman/listinfo/smt-lib
>
>
--
Morgan Deters
mdeters at gmail.com
More information about the SMT-LIB
mailing list