diff -r 4ee8e2702241 -r 564a6d908297 src/HOL/Nominal/Examples/CR.thy --- a/src/HOL/Nominal/Examples/CR.thy Tue Nov 14 22:16:55 2006 +0100 +++ b/src/HOL/Nominal/Examples/CR.thy Tue Nov 14 22:16:57 2006 +0100 @@ -175,17 +175,17 @@ inductive2 "Beta" :: "lam\lam\bool" (" _ \\<^isub>\ _" [80,80] 80) -intros - b1[intro]: "s1\\<^isub>\s2 \ (App s1 t)\\<^isub>\(App s2 t)" - b2[intro]: "s1\\<^isub>\s2 \ (App t s1)\\<^isub>\(App t s2)" - b3[intro]: "s1\\<^isub>\s2 \ (Lam [a].s1)\\<^isub>\ (Lam [a].s2)" - b4[intro]: "(App (Lam [a].s1) s2)\\<^isub>\(s1[a::=s2])" +where + b1[intro]: "s1\\<^isub>\s2 \ (App s1 t)\\<^isub>\(App s2 t)" + | b2[intro]: "s1\\<^isub>\s2 \ (App t s1)\\<^isub>\(App t s2)" + | b3[intro]: "s1\\<^isub>\s2 \ (Lam [a].s1)\\<^isub>\ (Lam [a].s2)" + | b4[intro]: "(App (Lam [a].s1) s2)\\<^isub>\(s1[a::=s2])" inductive2 "Beta_star" :: "lam\lam\bool" (" _ \\<^isub>\\<^sup>* _" [80,80] 80) -intros - bs1[intro, simp]: "M \\<^isub>\\<^sup>* M" - bs2[intro]: "\M1\\<^isub>\\<^sup>* M2; M2 \\<^isub>\ M3\ \ M1 \\<^isub>\\<^sup>* M3" +where + bs1[intro, simp]: "M \\<^isub>\\<^sup>* M" + | bs2[intro]: "\M1\\<^isub>\\<^sup>* M2; M2 \\<^isub>\ M3\ \ M1 \\<^isub>\\<^sup>* M3" lemma beta_star_trans: assumes a1: "M1\\<^isub>\\<^sup>* M2" @@ -265,17 +265,17 @@ inductive2 One :: "lam\lam\bool" (" _ \\<^isub>1 _" [80,80] 80) - intros - o1[intro!]: "M\\<^isub>1M" - o2[simp,intro!]: "\t1\\<^isub>1t2;s1\\<^isub>1s2\ \ (App t1 s1)\\<^isub>1(App t2 s2)" - o3[simp,intro!]: "s1\\<^isub>1s2 \ (Lam [a].s1)\\<^isub>1(Lam [a].s2)" - o4[simp,intro!]: "\s1\\<^isub>1s2;t1\\<^isub>1t2\ \ (App (Lam [a].t1) s1)\\<^isub>1(t2[a::=s2])" +where + o1[intro!]: "M\\<^isub>1M" + | o2[simp,intro!]: "\t1\\<^isub>1t2;s1\\<^isub>1s2\ \ (App t1 s1)\\<^isub>1(App t2 s2)" + | o3[simp,intro!]: "s1\\<^isub>1s2 \ (Lam [a].s1)\\<^isub>1(Lam [a].s2)" + | o4[simp,intro!]: "\s1\\<^isub>1s2;t1\\<^isub>1t2\ \ (App (Lam [a].t1) s1)\\<^isub>1(t2[a::=s2])" inductive2 "One_star" :: "lam\lam\bool" (" _ \\<^isub>1\<^sup>* _" [80,80] 80) -intros - os1[intro, simp]: "M \\<^isub>1\<^sup>* M" - os2[intro]: "\M1\\<^isub>1\<^sup>* M2; M2 \\<^isub>1 M3\ \ M1 \\<^isub>1\<^sup>* M3" +where + os1[intro, simp]: "M \\<^isub>1\<^sup>* M" + | os2[intro]: "\M1\\<^isub>1\<^sup>* M2; M2 \\<^isub>1 M3\ \ M1 \\<^isub>1\<^sup>* M3" lemma eqvt_one: fixes pi :: "name prm" @@ -283,7 +283,7 @@ and s :: "lam" assumes a: "t\\<^isub>1s" shows "(pi\t)\\<^isub>1(pi\s)" - using a by (induct, auto) + using a by (induct) (auto) lemma one_star_trans: assumes a1: "M1\\<^isub>1\<^sup>* M2" @@ -449,7 +449,7 @@ (\a s s1 s2. t1 = Lam [a].s \ t' = s1[a::=s2] \ s \\<^isub>1 s1 \ t2 \\<^isub>1 s2)" using a apply - - apply(ind_cases2 "App t1 s1 \\<^isub>1 t'") + apply(ind_cases2 "App t1 t2 \\<^isub>1 t'") apply(auto simp add: lam.distinct lam.inject) done @@ -459,7 +459,7 @@ (\s1 s2. M = s1[a::=s2] \ t1 \\<^isub>1 s1 \ t2 \\<^isub>1 s2)" using a apply - - apply(ind_cases2 "App (Lam [a].t1) s1 \\<^isub>1 M") + apply(ind_cases2 "App (Lam [a].t1) t2 \\<^isub>1 M") apply(simp_all add: lam.inject) apply(force) apply(erule conjE)