Re: [isabelle] Quickcheck ML



On 06/27/2012 11:34 AM, Thomas Genet wrote:
Hi to you all.


Le 27/06/12 10:20, Jasmin Blanchette a écrit :
Am 27.06.2012 um 09:03 schrieb Moa Johansson:

I'd like to know what the last argument of type (term * term list) list is representing? Which list is the list of terms I want to counter-example check, and what does the first term in the pair represent?

Looking at the code, it would seem that the first component is _the_ term to check and the second component is a list of terms that are additionally evaluated. For example, if you pass ("rev xs = xs", ["rev xs"]), Quickcheck will find a counterexample and print the value of "rev xs" (in addition to that of "xs"). In your use scenario, you would probably pass an empty list for the second components.


By the way, it seems that this nice feature of Quickcheck (the "eval" parameter) does not always work with the narrowing tester. This is not fully surprising since the narrowing-driven testing may send back partially instanciated values, like _#[] for instance.

However, if it is the case it may be a good idea to mention this in the isar manual.

Hi Thomas,

Thanks for this suggestion. I mentioned it in the NEWS file

  - Added "eval" option to evaluate terms for the found counterexample
    (currently only supported by the default (exhaustive) tester).

but left it out of the Isar reference. A remark has now been added.

It is another technical challenge to enable the eval feature also for the narrowing tester, and cannot just be dealt with by reusing the source code for the exhaustive testing infrastructure. Maybe I find time to add it, maybe not--it's on my TODO list.


Lukas





This archive was generated by a fusion of Pipermail (Mailman edition) and MHonArc.