diff -r c95afd0dc594 -r 5e74bd87bcda Nominal/Ex/SFT/Consts.thy --- a/Nominal/Ex/SFT/Consts.thy Wed Dec 21 15:43:58 2011 +0900 +++ b/Nominal/Ex/SFT/Consts.thy Wed Dec 21 15:47:42 2011 +0900 @@ -84,7 +84,7 @@ by (rule_tac y="x" and c="0 :: perm" in lam.strong_exhaust) (auto simp add: Abs1_eq_iff fresh_star_def)[3] next - fix x :: var and M and xa :: var and Ma + fix x :: name and M and xa :: name and Ma assume "[[atom x]]lst. M = [[atom xa]]lst. Ma" "eqvt_at Numeral_sumC M" then show "[[atom x]]lst. Numeral_sumC M = [[atom xa]]lst. Numeral_sumC Ma" @@ -110,7 +110,7 @@ "x \ \y\ = x \ y" unfolding fresh_def by simp -fun app_lst :: "var \ lam list \ lam" where +fun app_lst :: "name \ lam list \ lam" where "app_lst n [] = Var n" | "app_lst n (h # t) = (app_lst n t) \ h" @@ -134,7 +134,7 @@ [simp del]: "atom x \ l \ \l\ = \x. (app_lst x (rev l))" unfolding eqvt_def Ltgt_graph_def apply (rule, perm_simp, rule, rule) - apply (rule_tac x="x" and ?'a="var" in obtain_fresh) + apply (rule_tac x="x" and ?'a="name" in obtain_fresh) apply (simp_all add: Abs1_eq_iff lam.fresh swap_fresh_fresh fresh_at_base) apply (simp add: eqvts swap_fresh_fresh) apply (case_tac "x = xa") @@ -149,14 +149,14 @@ lemma ltgt_eq_iff[simp]: "\M\ = \N\ \ M = N" proof auto - obtain x :: var where "atom x \ (M, N)" using obtain_fresh by auto + obtain x :: name where "atom x \ (M, N)" using obtain_fresh by auto then have *: "atom x \ M" "atom x \ N" using fresh_Pair by simp_all then show "(\M\ = \N\) \ (M = N)" by (simp add: Abs1_eq_iff app_lst_rev_eq_iff Ltgt.simps) qed lemma Ltgt1_app: "\[M]\ \ N \ N \ M" proof - - obtain x :: var where "atom x \ (M, N)" using obtain_fresh by auto + obtain x :: name where "atom x \ (M, N)" using obtain_fresh by auto then have "atom x \ M" "atom x \ N" using fresh_Pair by simp_all then show ?thesis apply (subst Ltgt.simps) @@ -167,7 +167,7 @@ lemma Ltgt3_app: "\[M,N,P]\ \ R \ R \ M \ N \ P" proof - - obtain x :: var where "atom x \ (M, N, P, R)" using obtain_fresh by auto + obtain x :: name where "atom x \ (M, N, P, R)" using obtain_fresh by auto then have *: "atom x \ (M,N,P)" "atom x \ R" using fresh_Pair by simp_all then have s: "Var x \ M \ N \ P [x ::= R] \ R \ M \ N \ P" using b1 by simp show ?thesis using * @@ -181,7 +181,7 @@ lemma supp_ltgt[simp]: "supp \t\ = supp t" proof - - obtain x :: var where *:"atom x \ t" using obtain_fresh by auto + obtain x :: name where *:"atom x \ t" using obtain_fresh by auto show ?thesis using * by (simp_all add: Ltgt.simps lam.supp supp_at_base supp_Nil supp_app_lst supp_rev fresh_def) qed @@ -194,7 +194,7 @@ lemma Ltgt1_subst[simp]: "\[M]\ [y ::= A] = \[M [y ::= A]]\" proof - - obtain x :: var where a: "atom x \ (M, A, y, M [y ::= A])" using obtain_fresh by blast + obtain x :: name where a: "atom x \ (M, A, y, M [y ::= A])" using obtain_fresh by blast have "x \ y" using a[simplified fresh_Pair fresh_at_base] by simp then show ?thesis apply (subst Ltgt.simps) @@ -242,8 +242,8 @@ assumes f: "atom x \ A" "atom x \ B" (* or A and B have empty support *) shows "F3 \ A \ B \ APP \ \Abs\ \ (Abs \ (\x. (B \ (A \ Var x))))" proof - - obtain y :: var where b: "atom y \ (x, A, B)" using obtain_fresh by blast - obtain z :: var where c: "atom z \ (x, y, A, B)" using obtain_fresh by blast + obtain y :: name where b: "atom y \ (x, A, B)" using obtain_fresh by blast + obtain z :: name where c: "atom z \ (x, y, A, B)" using obtain_fresh by blast have *: "x \ z" "x \ y" "y \ z" using b c by (simp_all add: fresh_Pair fresh_at_base) blast+ have **: