Nominal-General/Nominal2_Base.thy
changeset 1932 2b0cc308fd6a
parent 1930 f189cf2c0987
child 1933 9eab1dfc14d2
equal deleted inserted replaced
1931:24ae81462f3e 1932:2b0cc308fd6a
  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 = {}"