removed internal functions from the signature (they are not needed anymore)
theory ExPS6imports "../NewParser"begin(* example 6 from Peter Sewell's bestiary *)atom_decl name(* Is this binding structure supported - I think not because e1 occurs twice as body *)nominal_datatype exp = Var name| Pair exp exp| LetRec x::name p::pat e1::exp e2::exp bind x in e1 e2, bind "bp p" in e1and pat = PVar name| PUnit| PPair pat patbinder bp :: "pat \<Rightarrow> atom list"where "bp (PVar x) = [atom x]"| "bp (PUnit) = []"| "bp (PPair p1 p2) = bp p1 @ bp p2"thm exp_pat.fvthm exp_pat.eq_iffthm exp_pat.bnthm exp_pat.permthm exp_pat.inductthm exp_pat.distinctthm exp_pat.suppend