diff -r 6cf96b9f7b9e -r 0c5b22076fb3 src/HOL/Nominal/Examples/SOS.thy --- a/src/HOL/Nominal/Examples/SOS.thy Thu Apr 12 15:35:29 2007 +0200 +++ b/src/HOL/Nominal/Examples/SOS.thy Thu Apr 12 15:46:12 2007 +0200 @@ -219,9 +219,9 @@ valid_cons_inv_auto[elim]:"valid ((x,T)#\)" abbreviation - "sub" :: "(name\ty) list \ (name\ty) list \ bool" ("_ \ _" [55,55] 55) + "sub" :: "(name\ty) list \ (name\ty) list \ bool" ("_ \ _" [55,55] 55) where - "\\<^isub>1 \ \\<^isub>2 \ \x T. (x,T)\set \\<^isub>1 \ (x,T)\set \\<^isub>2" + "\\<^isub>1 \ \\<^isub>2 \ \x T. (x,T)\set \\<^isub>1 \ (x,T)\set \\<^isub>2" lemma type_unicity_in_context: assumes asm1: "(x,t\<^isub>2) \ set ((x,t\<^isub>1)#\)" @@ -362,17 +362,17 @@ qed lemma weakening: - assumes "\\<^isub>1 \ e: T" and "valid \\<^isub>2" and "\\<^isub>1 \ \\<^isub>2" + assumes "\\<^isub>1 \ e: T" and "valid \\<^isub>2" and "\\<^isub>1 \ \\<^isub>2" shows "\\<^isub>2 \ e: T" using assms proof(nominal_induct \\<^isub>1 e T avoiding: \\<^isub>2 rule: typing.strong_induct) case (t_Lam x \\<^isub>1 T\<^isub>1 t T\<^isub>2 \\<^isub>2) - have ih: "\valid ((x,T\<^isub>1)#\\<^isub>2); (x,T\<^isub>1)#\\<^isub>1 \ (x,T\<^isub>1)#\\<^isub>2\ \ (x,T\<^isub>1)#\\<^isub>2 \ t : T\<^isub>2" by fact + have ih: "\valid ((x,T\<^isub>1)#\\<^isub>2); (x,T\<^isub>1)#\\<^isub>1 \ (x,T\<^isub>1)#\\<^isub>2\ \ (x,T\<^isub>1)#\\<^isub>2 \ t : T\<^isub>2" by fact have H1: "valid \\<^isub>2" by fact - have H2: "\\<^isub>1 \ \\<^isub>2" by fact + have H2: "\\<^isub>1 \ \\<^isub>2" by fact have fs: "x\\\<^isub>2" by fact then have "valid ((x,T\<^isub>1)#\\<^isub>2)" using H1 by auto - moreover have "(x,T\<^isub>1)#\\<^isub>1 \ (x,T\<^isub>1)#\\<^isub>2" using H2 by auto + moreover have "(x,T\<^isub>1)#\\<^isub>1 \ (x,T\<^isub>1)#\\<^isub>2" using H2 by auto ultimately have "(x,T\<^isub>1)#\\<^isub>2 \ t : T\<^isub>2" using ih by simp thus "\\<^isub>2 \ Lam [x].t : T\<^isub>1\T\<^isub>2" using fs by auto next @@ -398,7 +398,7 @@ then have "valid ((x\<^isub>2,T\<^isub>2)#(x\<^isub>1,T\<^isub>1)#\)" by (auto simp: fresh_list_cons fresh_atm) moreover - have "(x\<^isub>1,T\<^isub>1)#(x\<^isub>2,T\<^isub>2)#\ \ (x\<^isub>2,T\<^isub>2)#(x\<^isub>1,T\<^isub>1)#\" by auto + have "(x\<^isub>1,T\<^isub>1)#(x\<^isub>2,T\<^isub>2)#\ \ (x\<^isub>2,T\<^isub>2)#(x\<^isub>1,T\<^isub>1)#\" by auto ultimately show "(x\<^isub>2,T\<^isub>2)#(x\<^isub>1,T\<^isub>1)#\ \ e : T" using a by (auto intro: weakening) qed