diff -r 3b6a70e73006 -r cc5d23547341 Nominal/Ex/Lambda.thy --- a/Nominal/Ex/Lambda.thy Wed Sep 29 09:47:26 2010 -0400 +++ b/Nominal/Ex/Lambda.thy Wed Sep 29 16:49:13 2010 -0400 @@ -26,20 +26,19 @@ lemma strong_exhaust: fixes c::"'a::fs" - assumes "\name ca. \c = ca; y = Var name\ \ P" - and "\lam1 lam2 ca. \c = ca; y = App lam1 lam2\ \ P" - and "\name lam ca. \c = ca; atom name \ ca; y = Lam name lam\ \ P" + assumes "\name. \y = Var name\ \ P" + and "\lam1 lam2. \y = App lam1 lam2\ \ P" + and "\name lam. \atom name \ c; y = Lam name lam\ \ P" shows "P" apply(rule_tac y="y" in lam.exhaust) apply(rule assms(1)) -apply(auto)[2] +apply(assumption) apply(rule assms(2)) -apply(auto)[2] +apply(assumption) apply(subgoal_tac "\q. (q \ (atom name)) \ c \ supp (Lam name lam) \* q") apply(erule exE) apply(erule conjE) apply(rule assms(3)) -apply(rule refl) apply(simp add: atom_eqvt) apply(clarify) apply(drule supp_perm_eq[symmetric]) @@ -64,10 +63,7 @@ apply(blast) apply(blast) apply(relation "measure (\(x,y). size y)") -apply(auto)[1] -apply(simp add: lam.size) -apply(simp add: lam.size) -apply(simp add: lam.size) +apply(simp_all add: lam.size) done section {* Strong Induction Principles*}