| author | haftmann | 
| Sat, 28 Mar 2015 21:32:48 +0100 | |
| changeset 59833 | ab828c2c5d67 | 
| parent 53164 | beb4ee344c22 | 
| permissions | -rw-r--r-- | 
| 
53164
 
beb4ee344c22
clarified position of Spec_Check for Isabelle/ML -- it is unrelated to Isabelle/HOL;
 
wenzelm 
parents: 
52260 
diff
changeset
 | 
1  | 
This is a Quickcheck tool for Isabelle/ML.  | 
| 
52248
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
2  | 
|
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
3  | 
Authors  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
4  | 
|
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
5  | 
Lukas Bulwahn  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
6  | 
Nicolai Schaffroth  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
7  | 
|
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
8  | 
Quick Usage  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
9  | 
|
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
10  | 
- Import Spec_Check.thy in your development  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
11  | 
- Look at examples in Examples.thy  | 
| 
52260
 
e7c47fe56fbd
toplevel invocation via implicit ML compilation context;
 
wenzelm 
parents: 
52248 
diff
changeset
 | 
12  | 
- write specifications with the ML invocation  | 
| 
 
e7c47fe56fbd
toplevel invocation via implicit ML compilation context;
 
wenzelm 
parents: 
52248 
diff
changeset
 | 
13  | 
check_property "ALL x. P x"  | 
| 
52248
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
14  | 
|
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
15  | 
Notes  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
16  | 
|
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
17  | 
Our specification-based testing tool originated from Christopher League's  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
18  | 
QCheck tool for SML (cf. https://github.com/league/qcheck). As Isabelle  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
19  | 
provides a rich and uniform ML platform (called Isabelle/ML), this  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
20  | 
testing tools is very different than the one for a typical ML developer.  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
21  | 
|
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
22  | 
1. Isabelle/ML provides common data structures, which we can use in the  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
23  | 
tool's implementation for storing data and printing output.  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
24  | 
|
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
25  | 
2. The implementation in Isabelle that will be checked with this tool  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
26  | 
commonly use Isabelle/ML's int type (which corresponds ML's IntInf.int),  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
27  | 
but they do not use other integer types in ML, such as ML's Int.int,  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
28  | 
Word.word and others.  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
29  | 
|
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
30  | 
3. As Isabelle can run heavily in parallel, we avoid reference types.  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
31  | 
|
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
32  | 
4. Isabelle has special naming conventions and documentation of source  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
33  | 
code is only minimal to avoid parroting.  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
34  | 
|
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
35  | 
Next steps:  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
36  | 
- Remove all references and store the neccessary random seed in the  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
37  | 
Isabelle's context.  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
38  | 
- Simplify some existing random generators.  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
39  | 
The original ones from Christopher League are so complicated to  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
40  | 
support many integer types uniformly.  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
41  | 
|
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
42  | 
License  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
43  | 
|
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
44  | 
The source code originated from Christopher League's QCheck, which is  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
45  | 
licensed under the 2-clause BSD license. The current source code is  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
46  | 
licensed under the compatible 3-clause BSD license of Isabelle.  | 
| 
 
2c893e0c1def
added Spec_Check -- a Quickcheck tool for Isabelle's ML environment;
 
bulwahn 
parents:  
diff
changeset
 | 
47  |