equal
deleted
inserted
replaced
1077 shows "supp (f x) \<subseteq> (supp f) \<union> (supp x)" |
1077 shows "supp (f x) \<subseteq> (supp f) \<union> (supp x)" |
1078 using fresh_fun_app |
1078 using fresh_fun_app |
1079 unfolding fresh_def |
1079 unfolding fresh_def |
1080 by auto |
1080 by auto |
1081 |
1081 |
1082 (* alternative proof *) |
|
1083 lemma |
|
1084 shows "supp (f x) \<subseteq> (supp f) \<union> (supp x)" |
|
1085 proof (rule subsetCI) |
|
1086 fix a::"atom" |
|
1087 assume a: "a \<in> supp (f x)" |
|
1088 assume b: "a \<notin> supp f \<union> supp x" |
|
1089 then have "finite {b. (a \<rightleftharpoons> b) \<bullet> f \<noteq> f}" "finite {b. (a \<rightleftharpoons> b) \<bullet> x \<noteq> x}" |
|
1090 unfolding supp_def by auto |
|
1091 then have "finite ({b. (a \<rightleftharpoons> b) \<bullet> f \<noteq> f} \<union> {b. (a \<rightleftharpoons> b) \<bullet> x \<noteq> x})" by simp |
|
1092 moreover |
|
1093 have "{b. ((a \<rightleftharpoons> b) \<bullet> f) ((a \<rightleftharpoons> b) \<bullet> x) \<noteq> f x} \<subseteq> ({b. (a \<rightleftharpoons> b) \<bullet> f \<noteq> f} \<union> {b. (a \<rightleftharpoons> b) \<bullet> x \<noteq> x})" |
|
1094 by auto |
|
1095 ultimately have "finite {b. ((a \<rightleftharpoons> b) \<bullet> f) ((a \<rightleftharpoons> b) \<bullet> x) \<noteq> f x}" |
|
1096 using finite_subset by auto |
|
1097 then have "a \<notin> supp (f x)" unfolding supp_def |
|
1098 by (simp add: permute_fun_app_eq) |
|
1099 with a show "False" by simp |
|
1100 qed |
|
1101 |
|
1102 lemma fresh_fun_eqvt_app: |
1082 lemma fresh_fun_eqvt_app: |
1103 assumes a: "\<forall>p. p \<bullet> f = f" |
1083 assumes a: "\<forall>p. p \<bullet> f = f" |
1104 shows "a \<sharp> x \<Longrightarrow> a \<sharp> f x" |
1084 shows "a \<sharp> x \<Longrightarrow> a \<sharp> f x" |
1105 proof - |
1085 proof - |
1106 from a have "supp f = {}" |
1086 from a have "supp f = {}" |