diff -r 3395e87d94b8 -r 51f411b1197d Nominal/Ex/Lambda.thy --- a/Nominal/Ex/Lambda.thy Sun Apr 25 08:18:06 2010 +0200 +++ b/Nominal/Ex/Lambda.thy Sun Apr 25 09:13:16 2010 +0200 @@ -126,38 +126,11 @@ typing :: "(name\ty) list \ lam \ ty \ bool" ("_ \ _ : _" [60,60,60] 60) where t_Var[intro]: "\valid \; (x, T) \ set \\ \ \ \ Var x : T" - | t_App[intro]: "\\ \ t1 : T1 \ T2 \ \ \ t2 : T1\ \ \ \ App t1 t2 : T2" + | t_App[intro]: "\\ \ t1 : T1 \ T2; \ \ t2 : T1\ \ \ \ App t1 t2 : T2" | t_Lam[intro]: "\atom x \ \; (x, T1) # \ \ t : T2\ \ \ \ Lam x t : T1 \ T2" -inductive - typing' :: "(name\ty) list\lam\ty\bool" ("_ \ _ : _" [60,60,60] 60) -where - t'_Var[intro]: "\valid \; (x,T)\set \\ \ \ \ Var x : T" - | t'_App[intro]: "\\ \ t1 : T1\T2 \ \ \ t2 : T1\ \ \ \ App t1 t2 : T2" - | t'_Lam[intro]: "\atom x\\;(x,T1)#\ \ t : T2\ \ \ \ Lam x t : T1\T2" - -inductive - typing2' :: "(name\ty) list\lam\ty\bool" ("_ 2\ _ : _" [60,60,60] 60) -where - t2'_Var[intro]: "\valid \; (x,T)\set \\ \ \ 2\ Var x : T" - | t2'_App[intro]: "\\ 2\ t1 : T1\T2 \ \ 2\ t2 : T1\ \ \ 2\ App t1 t2 : T2" - | t2'_Lam[intro]: "\atom x\\;(x,T1)#\ 2\ t : T2\ \ \ 2\ Lam x t : T1\T2" - -inductive - typing'' :: "(name\ty) list\lam\ty\bool" ("_ |\ _ : _" [60,60,60] 60) -and valid' :: "(name\ty) list \ bool" -where - v1[intro]: "valid' []" - | v2[intro]: "\valid' \;atom x\\\\ valid' ((x,T)#\)" - | t'_Var[intro]: "\valid' \; (x,T)\set \\ \ \ |\ Var x : T" - | t'_App[intro]: "\\ |\ t1 : T1\T2; \ |\ t2 : T1\ \ \ |\ App t1 t2 : T2" - | t'_Lam[intro]: "\atom x\\;(x,T1)#\ |\ t : T2\ \ \ |\ Lam x t : T1\T2" - equivariance valid equivariance typing -equivariance typing' -equivariance typing2' -equivariance typing'' thm valid.eqvt thm typing.eqvt @@ -189,27 +162,9 @@ declare permute_lam_raw.simps[eqvt] declare alpha_gen_eqvt[eqvt] equivariance alpha_lam_raw' + thm eqvts_raw - - -(* HERE *) - -lemma - assumes a: "alpha_lam_raw' t1 t2" - shows "alpha_lam_raw' (p \ t1) (p \ t2)" -using a -apply(induct) -apply(tactic {* Nominal_Eqvt.eqvt_rel_case_tac - @{context} ["Lambda.alpha_lam_raw'"] @{term "p::perm"} @{thm a1} 1*}) -apply(tactic {* Nominal_Eqvt.eqvt_rel_case_tac - @{context} ["Lambda.alpha_lam_raw'"] @{term "p::perm"} @{thm a2} 1*}) -(* -apply(tactic {* Nominal_Eqvt.eqvt_rel_case_tac - @{context} ["Lambda.alpha_lam_raw'"] @{term "p::perm"} @{thm a3} 1*}) -*) -oops - section {* size function *} lemma size_eqvt_raw: @@ -367,6 +322,8 @@ done *) + + end