src/HOL/Library/SML_Quickcheck.thy
author wenzelm
Sun, 27 Mar 2011 15:01:47 +0200
changeset 42130 e10e2cce85c8
parent 42029 da92153d6dff
child 42159 234ec7011e5d
permissions -rw-r--r--
removed unclear comments stemming from ed24ba6f69aa;


header {* Install quickcheck of SML code generator *}

theory SML_Quickcheck
imports Main
begin

setup {*
  Inductive_Codegen.quickcheck_setup #>
  Context.theory_map (Quickcheck.add_generator ("SML",
    fn ctxt => fn (t, eval_terms) =>
      let
        val test_fun = Codegen.test_term ctxt t 
        val iterations = Config.get ctxt Quickcheck.iterations
        fun iterate size 0 = NONE
          | iterate size j =
            let
              val result = test_fun size handle Match => 
                (if Config.get ctxt Quickcheck.quiet then ()
                 else warning "Exception Match raised during quickcheck"; NONE)
            in
              case result of NONE => iterate size (j - 1) | SOME q => SOME q
            end
     in fn size => (iterate size iterations, NONE) end))
*}

end