section ‹Shared Utilities for all Generator› text ‹In this theory we mainly provide some Isabelle/ML infrastructure that is used by several generators. It consists of a uniform interface to access all the theorems, terms, etc.\ from the BNF package, and some auxiliary functions which provide recursors on datatypes, common tactics, etc.› theory Generator_Aux imports Main begin ML_file ‹bnf_access.ML› ML_file ‹generator_aux.ML› lemma in_set_simps: "x ∈ set (y # z # ys) = (x = y ∨ x ∈ set (z # ys))" "x ∈ set ([y]) = (x = y)" "x ∈ set [] = False" "Ball (set []) P = True" "Ball (set [x]) P = P x" "Ball (set (x # y # zs)) P = (P x ∧ Ball (set (y # zs)) P)" by auto lemma conj_weak_cong: "a = b ⟹ c = d ⟹ (a ∧ c) = (b ∧ d)" by auto lemma refl_True: "(x = x) = True" by simp end