src/HOL/Library/FuncSet.thy
changeset 63092 a949b2a5f51d
parent 63060 293ede07b775
child 64910 6108dddad9f0
equal deleted inserted replaced
63091:54f16a0a3069 63092:a949b2a5f51d
   400 
   400 
   401 lemma PiE_insert_eq: "PiE (insert x S) T = (\<lambda>(y, g). g(x := y)) ` (T x \<times> PiE S T)"
   401 lemma PiE_insert_eq: "PiE (insert x S) T = (\<lambda>(y, g). g(x := y)) ` (T x \<times> PiE S T)"
   402 proof -
   402 proof -
   403   {
   403   {
   404     fix f assume "f \<in> PiE (insert x S) T" "x \<notin> S"
   404     fix f assume "f \<in> PiE (insert x S) T" "x \<notin> S"
   405     with assms have "f \<in> (\<lambda>(y, g). g(x := y)) ` (T x \<times> PiE S T)"
   405     then have "f \<in> (\<lambda>(y, g). g(x := y)) ` (T x \<times> PiE S T)"
   406       by (auto intro!: image_eqI[where x="(f x, f(x := undefined))"] intro: fun_upd_in_PiE PiE_mem)
   406       by (auto intro!: image_eqI[where x="(f x, f(x := undefined))"] intro: fun_upd_in_PiE PiE_mem)
   407   }
   407   }
   408   moreover
   408   moreover
   409   {
   409   {
   410     fix f assume "f \<in> PiE (insert x S) T" "x \<in> S"
   410     fix f assume "f \<in> PiE (insert x S) T" "x \<in> S"
   411     with assms have "f \<in> (\<lambda>(y, g). g(x := y)) ` (T x \<times> PiE S T)"
   411     then have "f \<in> (\<lambda>(y, g). g(x := y)) ` (T x \<times> PiE S T)"
   412       by (auto intro!: image_eqI[where x="(f x, f)"] intro: fun_upd_in_PiE PiE_mem simp: insert_absorb)
   412       by (auto intro!: image_eqI[where x="(f x, f)"] intro: fun_upd_in_PiE PiE_mem simp: insert_absorb)
   413   }
   413   }
   414   ultimately show ?thesis
   414   ultimately show ?thesis
   415     using assms by (auto intro: PiE_fun_upd)
   415     by (auto intro: PiE_fun_upd)
   416 qed
   416 qed
   417 
   417 
   418 lemma PiE_Int: "Pi\<^sub>E I A \<inter> Pi\<^sub>E I B = Pi\<^sub>E I (\<lambda>x. A x \<inter> B x)"
   418 lemma PiE_Int: "Pi\<^sub>E I A \<inter> Pi\<^sub>E I B = Pi\<^sub>E I (\<lambda>x. A x \<inter> B x)"
   419   by (auto simp: PiE_def)
   419   by (auto simp: PiE_def)
   420 
   420