src/HOL/Quickcheck_Exhaustive.thy
changeset 60758 d8d85a8172b5
parent 59484 a130ae7a9398
child 61121 efe8b18306b7
--- a/src/HOL/Quickcheck_Exhaustive.thy	Sat Jul 18 21:44:18 2015 +0200
+++ b/src/HOL/Quickcheck_Exhaustive.thy	Sat Jul 18 22:58:50 2015 +0200
@@ -1,19 +1,19 @@
 (* Author: Lukas Bulwahn, TU Muenchen *)
 
-section {* A simple counterexample generator performing exhaustive testing *}
+section \<open>A simple counterexample generator performing exhaustive testing\<close>
 
 theory Quickcheck_Exhaustive
 imports Quickcheck_Random
 keywords "quickcheck_generator" :: thy_decl
 begin
 
-subsection {* basic operations for exhaustive generators *}
+subsection \<open>basic operations for exhaustive generators\<close>
 
 definition orelse :: "'a option => 'a option => 'a option" (infixr "orelse" 55)
 where
   [code_unfold]: "x orelse y = (case x of Some x' => Some x' | None => y)"
 
-subsection {* exhaustive generator type classes *}
+subsection \<open>exhaustive generator type classes\<close>
 
 class exhaustive = term_of +
   fixes exhaustive :: "('a \<Rightarrow> (bool * term list) option) \<Rightarrow> natural \<Rightarrow> (bool * term list) option"
@@ -229,7 +229,7 @@
 
 end
 
-subsubsection {* A smarter enumeration scheme for functions over finite datatypes *}
+subsubsection \<open>A smarter enumeration scheme for functions over finite datatypes\<close>
 
 class check_all = enum + term_of +
   fixes check_all :: "('a * (unit \<Rightarrow> term) \<Rightarrow> (bool * term list) option) \<Rightarrow> (bool * term list) option"
@@ -505,12 +505,12 @@
 
 end
 
-subsection {* Bounded universal quantifiers *}
+subsection \<open>Bounded universal quantifiers\<close>
 
 class bounded_forall =
   fixes bounded_forall :: "('a \<Rightarrow> bool) \<Rightarrow> natural \<Rightarrow> bool"
 
-subsection {* Fast exhaustive combinators *}
+subsection \<open>Fast exhaustive combinators\<close>
 
 class fast_exhaustive = term_of +
   fixes fast_exhaustive :: "('a \<Rightarrow> unit) \<Rightarrow> natural \<Rightarrow> unit"
@@ -524,7 +524,7 @@
 | constant catch_Counterexample \<rightharpoonup>
     (Quickcheck) "(((_); NONE) handle Exhaustive'_Generators.Counterexample ts => SOME ts)"
 
-subsection {* Continuation passing style functions as plus monad *}
+subsection \<open>Continuation passing style functions as plus monad\<close>
   
 type_synonym 'a cps = "('a => term list option) => term list option"
 
@@ -610,7 +610,7 @@
 where
   "pos_bound_cps_not n = (%c i. case n (%u. Value []) i of No_value => c () | Value _ => None | Unknown_value => None)"
 
-subsection {* Defining generators for any first-order data type *}
+subsection \<open>Defining generators for any first-order data type\<close>
 
 axiomatization unknown :: 'a
 
@@ -620,7 +620,7 @@
 
 declare [[quickcheck_batch_tester = exhaustive]]
 
-subsection {* Defining generators for abstract types *}
+subsection \<open>Defining generators for abstract types\<close>
 
 ML_file "Tools/Quickcheck/abstract_generators.ML"