diff -r 1b7c034c9e9e -r 0440bc1a2438 Nominal/Nominal2_FCB.thy --- a/Nominal/Nominal2_FCB.thy Mon Jun 18 14:50:02 2012 +0100 +++ b/Nominal/Nominal2_FCB.thy Thu Jul 12 10:11:32 2012 +0100 @@ -22,26 +22,25 @@ lemma Abs_lst1_fcb: - fixes x y :: "'a :: at_base" + fixes x y :: "'a :: at" and S T :: "'b :: fs" - assumes e: "(Abs_lst [atom x] T) = (Abs_lst [atom y] S)" - and f1: "\x \ y; atom y \ T; atom x \ (atom y \ atom x) \ T\ \ atom x \ f x T" - and f2: "\x \ y; atom y \ T; atom x \ (atom y \ atom x) \ T\ \ atom y \ f x T" - and p: "\S = (atom x \ atom y) \ T; x \ y; atom y \ T; atom x \ S\ - \ (atom x \ atom y) \ (f x T) = f y S" - and s: "sort_of (atom x) = sort_of (atom y)" + assumes e: "[[atom x]]lst. T = [[atom y]]lst. S" + and f1: "\x \ y; atom y \ T; atom x \ (y \ x) \ T\ \ atom x \ f x T" + and f2: "\x \ y; atom y \ T; atom x \ (y \ x) \ T\ \ atom y \ f x T" + and p: "\S = (x \ y) \ T; x \ y; atom y \ T; atom x \ S\ + \ (x \ y) \ (f x T) = f y S" shows "f x T = f y S" using e apply(case_tac "atom x \ S") - apply(simp add: Abs1_eq_iff'[OF s s]) + apply(simp add: Abs1_eq_iff') apply(elim conjE disjE) apply(simp) apply(rule trans) - apply(rule_tac p="(atom x \ atom y)" in supp_perm_eq[symmetric]) + apply(rule_tac p="(x \ y)" in supp_perm_eq[symmetric]) apply(rule fresh_star_supp_conv) - apply(simp add: supp_swap fresh_star_def s f1 f2) - apply(simp add: swap_commute p) - apply(simp add: Abs1_eq_iff[OF s s]) + apply(simp add: flip_def supp_swap fresh_star_def f1 f2) + apply(simp add: flip_commute p) + apply(simp add: Abs1_eq_iff) done lemma Abs_lst_fcb: @@ -383,7 +382,7 @@ fixes a b :: "atom" and x y :: "'b :: fs" and c::"'c :: fs" - assumes e: "(Abs_lst [a] x) = (Abs_lst [b] y)" + assumes e: "[[a]]lst. x = [[b]]lst. y" and fcb1: "a \ f a x c" and fresh: "{a, b} \* c" and perm1: "\p. supp p \* c \ p \ (f a x c) = f (p \ a) (p \ x) c" @@ -400,7 +399,7 @@ fixes a b :: "'a::at" and x y :: "'b :: fs" and c::"'c :: fs" - assumes e: "(Abs_lst [atom a] x) = (Abs_lst [atom b] y)" + assumes e: "[[atom a]]lst. x = [[atom b]]lst. y" and fcb1: "atom a \ f a x c" and fresh: "{atom a, atom b} \* c" and perm1: "\p. supp p \* c \ p \ (f a x c) = f (p \ a) (p \ x) c"