diff -r ffb5a181844b -r 8268b277d240 Nominal/Ex/Lambda.thy --- a/Nominal/Ex/Lambda.thy Tue Dec 28 00:20:50 2010 +0000 +++ b/Nominal/Ex/Lambda.thy Tue Dec 28 19:51:25 2010 +0000 @@ -20,33 +20,12 @@ thm lam.size_eqvt -section {* Strong Induction Lemma via Induct_schema *} - - -lemma strong_induct: - fixes c::"'a::fs" - assumes a1: "\name c. P c (Var name)" - and a2: "\lam1 lam2 c. \\d. P d lam1; \d. P d lam2\ \ P c (App lam1 lam2)" - and a3: "\name lam c. \{atom name} \* c; \d. P d lam\ \ P c (Lam name lam)" - shows "P c lam" -using assms -apply(induction_schema) -apply(rule_tac y="lam" in lam.strong_exhaust) -apply(blast) -apply(blast) -apply(blast) -apply(relation "measure (\(x,y). size y)") -apply(simp_all add: lam.size) -done - section {* Typing *} nominal_datatype ty = TVar string -| TFun ty ty +| TFun ty ty ("_ \ _") -notation - TFun ("_ \ _") (* declare ty.perm[eqvt]