[isabelle-dev] Spec_Check

Lukas Bulwahn bulwahn at in.tum.de
Thu May 30 16:34:50 CEST 2013


On 05/30/2013 03:51 PM, Makarius wrote:
>
> So back to this now:
>
>   * Canonical session name?  It looks like the name of the tool is
>     "Spec_Check", according to its main Spec_Check.thy
>
>     So it would be session HOL-Spec_Check in ~~/src/HOL/Spec_Check/
>
>     You still have a chance to rename "Spec_Check" now, before 
> anything is
>     pushed to main Isabelle.  The directory location is given by having a
>     session built on HOL, though.
>
Yes, I think Spec_Check is the name to go with.
>   * Formal licensing.  As part of the main source tree it implicitly
>     joins the toplevel LICENSE.  It is possible to have a 1-line 
> add-on in
>     each theory header, e.g. see ~~/src/HOL/SPARK/SPARK.thy, but not a
>     separate LICENSE file.
>
There is no need for a separate LICENSE file here.
>     The README could also say in plain words that the original code-base
>     by Christopher League has been relicensed under the 3-clause BSD
>     license of Isabelle -- i.e. a slightly reduced version of what is in
>     the README of f0a79be57a4b already.
>
Yes, I was trying to point this out, but did not state it in such 
precise words.

>   * NEWS and CONTRIBUTORS entries.
>
>
Summary and Authors are in the README file from that NEWS and 
CONTRIBUTORS can be derived.
> Further (less important hints on the README):
>
>   3. As Isabelle can run heavily in parallel, we avoid reference types.
>
> Sounds like someone got surprised after 10 years of multicores in the 
> consumer market that parallel programming is just the normal 
> situation. When I was a young student, we did learn parallel and 
> concurrent programming by default, instead of the oo-nonsense that 
> came on later generations.  (Times have changed again already, so we 
> don't have to revisit this old topic.)
>
>
>   4. Isabelle has special naming conventions and documentation of source
>   code is only minimal to avoid parroting.
>
> Sounds a bit depressing for me, since I've tried to explain the good 
> old high-quality code writing techniques in the implementation manual, 
> and then the young people don't even fit sources on the screen (much 
> more than the 80--100 char line length).  BTW, I've seen really good 
> sources recently: ACL2.  They have a *strict* 80 char limit, and 
> really good writing style of "essays", not "code documentation".
>
> Anyway, we stick to what Isabelle/ML is, and don't have to make 
> excuses for it.
>
>
These are no excuses, but they simply describe the reasons for the 
differences between the original QCheck and the Isabelle's Spec_Check 
implementation.
> Dou you want to have a toplevel Isar command for "check_property 
> @{context}"?  That is relatively easy to have these days.  What should 
> be its name?
>
I was thinking of a ML antiquotation for "check_property @{context}"  
and I was thinking of @{spec ...} and some context flags that lets spec 
either only compile, or check with values.
This should allow that @{spec ...} could be inlined in the 
implementation if anyone wishes to do so.

All of this is possible future work, but more importantly, I would like 
to see some volunteer that advertises and mentors a follow-up student 
project for Spec_Check.

Lukas



More information about the isabelle-dev mailing list