diff -r 89158f401b07 -r e5d9b6bca88c Nominal/Ex/Lambda.thy --- a/Nominal/Ex/Lambda.thy Fri Apr 19 00:10:52 2013 +0100 +++ b/Nominal/Ex/Lambda.thy Tue Jun 04 09:39:23 2013 +0100 @@ -4,6 +4,11 @@ "~~/src/HOL/Library/Monad_Syntax" begin +lemma perm_commute: + "a \ p \ a' \ p \ (a \ a') + p = p + (a \ a')" +apply(rule plus_perm_eq) +apply(simp add: supp_swap fresh_def) +done atom_decl name @@ -14,6 +19,8 @@ | App "lam" "lam" | Lam x::"name" l::"lam" binds x in l ("Lam [_]. _" [100, 100] 100) +thm lam.strong_induct + lemma alpha_lam_raw_eqvt[eqvt]: "p \ (alpha_lam_raw x y) = alpha_lam_raw (p \ x) (p \ y)" unfolding alpha_lam_raw_def by perm_simp rule @@ -378,6 +385,8 @@ avoids b4: "x" by (simp_all add: fresh_star_def fresh_Pair fresh_fact) +thm beta.strong_induct + text {* One-Reduction *} inductive