diff -r 894930834ca8 -r ae176476b525 Nominal/Ex/Lambda.thy --- a/Nominal/Ex/Lambda.thy Sun Apr 11 22:48:49 2010 +0200 +++ b/Nominal/Ex/Lambda.thy Mon Apr 12 13:34:54 2010 +0200 @@ -132,8 +132,14 @@ atac ]) *} +ML {* try hd [1] *} -lemma +ML {* +Skip_Proof.cheat_tac +*} + + +lemma [eqvt]: assumes a: "valid Gamma" shows "valid (p \ Gamma)" using a @@ -142,13 +148,8 @@ apply(tactic {* my_tac @{context} @{thms valid.intros} 1 *}) done -lemma - "(p \ valid) = valid" -oops - -lemma temp[eqvt_raw]: - "(p \ valid) \ valid" -sorry +thm eqvts +thm eqvts_raw inductive typing :: "(name\ty) list \ lam \ ty \ bool" ("_ \ _ : _" [60,60,60] 60) @@ -157,7 +158,7 @@ | 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" -lemma +lemma uu[eqvt]: assumes a: "Gamma \ t : T" shows "(p \ Gamma) \ (p \ t) : (p \ T)" using a @@ -167,6 +168,9 @@ apply(tactic {* my_tac @{context} @{thms typing.intros} 1 *}) done +thm eqvts +thm eqvts_raw + declare permute_lam_raw.simps[eqvt] thm alpha_gen_real_eqvt[no_vars]