theory Predicate_Compile_Quickcheck_Examples imports "HOL-Library.Predicate_Compile_Quickcheck" begin (* section {* Sets *} lemma "x ∈ {(1::nat)} ==> False" quickcheck[generator=predicate_compile_wo_ff, iterations=10] oops lemma "x ∈ {Suc 0, Suc (Suc 0)} ==> x ≠ Suc 0" quickcheck[generator=predicate_compile_wo_ff] oops lemma "x ∈ {Suc 0, Suc (Suc 0)} ==> x = Suc 0" quickcheck[generator=predicate_compile_wo_ff] oops lemma "x ∈ {Suc 0, Suc (Suc 0)} ==> x <= Suc 0" quickcheck[generator=predicate_compile_wo_ff] oops section {* Numerals *} lemma "x ∈ {1, 2, (3::nat)} ==> x = 1 ∨ x = 2" quickcheck[generator=predicate_compile_wo_ff] oops lemma "x ∈ {1, 2, (3::nat)} ==> x < 3" quickcheck[generator=predicate_compile_wo_ff] oops lemma "x ∈ {1, 2} ∪ {3, 4} ==> x = (1::nat) ∨ x = (2::nat)" quickcheck[generator=predicate_compile_wo_ff] oops *) section ‹Equivalences› inductive is_ten :: "nat => bool" where "is_ten 10" inductive is_eleven :: "nat => bool" where "is_eleven 11" lemma "is_ten x = is_eleven x" quickcheck[tester = smart_exhaustive, iterations = 1, size = 1, expect = counterexample] oops section ‹Context Free Grammar›