Nominal/Ex/Lambda.thy
changeset 3219 e5d9b6bca88c
parent 3197 25d11b449e92
child 3229 b52e8651591f
--- 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 \<sharp> p \<Longrightarrow> a' \<sharp> p \<Longrightarrow> (a \<rightleftharpoons> a') + p = p + (a \<rightleftharpoons> 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 \<bullet> (alpha_lam_raw x y) = alpha_lam_raw (p \<bullet> x) (p \<bullet> 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