quickcheck size starts with 0
authorhaftmann
Thu, 14 May 2009 15:09:46 +0200
changeset 31153 6b31b143f18b
parent 31152 e79d1ff2abc5
child 31154 f919b8e67413
quickcheck size starts with 0
src/HOL/Library/Quickcheck.thy
src/Pure/codegen.ML
src/Tools/quickcheck.ML
--- a/src/HOL/Library/Quickcheck.thy	Thu May 14 09:16:36 2009 +0200
+++ b/src/HOL/Library/Quickcheck.thy	Thu May 14 15:09:46 2009 +0200
@@ -75,7 +75,7 @@
     val tys = (map snd o fst o strip_abs) t;
     val t' = mk_generator_expr thy t tys;
     val f = Code_ML.eval (SOME target) ("Quickcheck.eval_ref", eval_ref)
-      (fn proc => fn g => fn s => g s #>> (Option.map o map) proc) thy t' [];
+      (fn proc => fn g => fn s => g (s + 1) #>> (Option.map o map) proc) thy t' [];
   in f #> Random_Engine.run end;
 
 end
--- a/src/Pure/codegen.ML	Thu May 14 09:16:36 2009 +0200
+++ b/src/Pure/codegen.ML	Thu May 14 15:09:46 2009 +0200
@@ -329,7 +329,7 @@
   end;
 
 val assoc_const_i = gen_assoc_const (K I);
-val assoc_const = gen_assoc_const Code_Unit.read_bare_const;
+val assoc_const = gen_assoc_const Code.read_bare_const;
 
 
 (**** associate types with target language types ****)
@@ -889,7 +889,7 @@
           mk_let (map (fn ((s, T), s') =>
               (mk_tuple [str s', str (s' ^ "_t")],
                Pretty.block [mk_gen gr "Generated" false [] "" T, Pretty.brk 1,
-                 str "(i + 1)"])) frees')
+                 str "i"])) frees')
             (Pretty.block [str "if ",
               mk_app false (str "testf") (map (str o snd) frees'),
               Pretty.brk 1, str "then NONE",
--- a/src/Tools/quickcheck.ML	Thu May 14 09:16:36 2009 +0200
+++ b/src/Tools/quickcheck.ML	Thu May 14 15:09:46 2009 +0200
@@ -104,12 +104,12 @@
      of NONE => if quiet then mk_testers ctxt t' else mk_testers_strict ctxt t'
       | SOME name => [mk_tester_select name ctxt t'];
     fun iterate f 0 = NONE
-      | iterate f k = case f () handle Match => (if quiet then ()
+      | iterate f j = case f () handle Match => (if quiet then ()
              else warning "Exception Match raised during quickcheck"; NONE)
-          of NONE => iterate f (k - 1) | SOME q => SOME q;
+          of NONE => iterate f (j - 1) | SOME q => SOME q;
     fun with_testers k [] = NONE
       | with_testers k (tester :: testers) =
-          case iterate (fn () => tester k) i
+          case iterate (fn () => tester (k - 1)) i
            of NONE => with_testers k testers
             | SOME q => SOME q;
     fun with_size k = if k > size then NONE