src/HOL/Predicate_Compile_Examples/Hotel_Example_Small_Generator.thy
changeset 40104 82873a6f2b81
child 40137 9eabcb1bfe50
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOL/Predicate_Compile_Examples/Hotel_Example_Small_Generator.thy	Fri Oct 22 18:38:59 2010 +0200
@@ -0,0 +1,52 @@
+theory Hotel_Example_Small_Generator
+imports Hotel_Example Predicate_Compile_Alternative_Defs
+uses "~~/src/HOL/Tools/Predicate_Compile/predicate_compile_quickcheck.ML"
+begin
+
+declare Let_def[code_pred_inline]
+
+instantiation room :: small_lazy
+begin
+
+definition
+  "small_lazy i = Lazy_Sequence.single Room0"
+
+instance ..
+
+end
+
+instantiation key :: small_lazy
+begin
+
+definition
+  "small_lazy i = Lazy_Sequence.append (Lazy_Sequence.single Key0) (Lazy_Sequence.append (Lazy_Sequence.single Key1) (Lazy_Sequence.append (Lazy_Sequence.single Key2) (Lazy_Sequence.single Key3)))"
+
+instance ..
+
+end
+
+instantiation guest :: small_lazy
+begin
+
+definition
+  "small_lazy i = Lazy_Sequence.append (Lazy_Sequence.single Guest0) (Lazy_Sequence.single Guest1)"
+
+instance ..
+
+end
+
+setup {* Context.theory_map (Quickcheck.add_generator ("small_generators_depth_14", Predicate_Compile_Quickcheck.quickcheck_compile_term
+  Predicate_Compile_Aux.Pos_Generator_DSeq true true 14)) *}
+
+
+setup {* Context.theory_map (Quickcheck.add_generator ("small_generators_depth_15", Predicate_Compile_Quickcheck.quickcheck_compile_term
+  Predicate_Compile_Aux.Pos_Generator_DSeq true true 15)) *}
+
+lemma
+  "hotel s ==> feels_safe s r ==> g \<in> isin s r ==> owns s r = Some g"
+quickcheck[generator = small_generators_depth_14, iterations = 1, expect = no_counterexample]
+quickcheck[generator = small_generators_depth_15, iterations = 1, expect = counterexample]
+oops
+
+
+end
\ No newline at end of file