# HG changeset patch # User Cezary Kaliszyk # Date 1299049676 -32400 # Node ID b5ffcb30b6d0252ff7548688319f1f5998b4140d # Parent 7fd879774d9b29dfed7fa676182a9ae0b92f4a73 distinct names at toplevel diff -r 7fd879774d9b -r b5ffcb30b6d0 Nominal/Ex/Lambda_add.thy --- a/Nominal/Ex/Lambda_add.thy Wed Mar 02 12:49:01 2011 +0900 +++ b/Nominal/Ex/Lambda_add.thy Wed Mar 02 16:07:56 2011 +0900 @@ -128,6 +128,24 @@ by (metis Rep_name_inject atom_name_def fresh_at_base lam.fresh(1)) +definition Lam_I_pre : "\ \ Lam[cx]. Var cx" + +lemma Lam_I : "\ = Lam[x]. Var x" + by (simp add: Lam_I_pre lam.eq_iff Abs1_eq_iff lam.fresh supp_at_base) + (metis Rep_name_inverse atom_name_def fresh_at_base) + +definition c1 :: name where "c1 \ Abs_name (Atom (Sort ''Lambda.name'' []) 1)" +definition c2 :: name where "c2 \ Abs_name (Atom (Sort ''Lambda.name'' []) 2)" + +lemma c1_c2[simp]: + "c1 \ c2" + unfolding c1_def c2_def + by (simp add: Abs_name_inject) + +definition Lam_F_pre : "\ \ Lam[c1]. Lam[c2]. Var c2" +lemma Lam_F : "\ = Lam[x]. Lam[y]. Var y" + by (simp add: Lam_F_pre lam.eq_iff Abs1_eq_iff lam.fresh supp_at_base) + (metis Rep_name_inverse atom_name_def fresh_at_base) end