src/HOL/Fun.thy
changeset 61204 3e491e34a62e
parent 60929 bb3610d34e2e
child 61378 3e04c9ca001a
equal deleted inserted replaced
61203:a8a8eca85801 61204:3e491e34a62e
    67   "a o b = c o d \<Longrightarrow> a (b v) = c (d v)"
    67   "a o b = c o d \<Longrightarrow> a (b v) = c (d v)"
    68   by (simp add: fun_eq_iff)
    68   by (simp add: fun_eq_iff)
    69 
    69 
    70 lemma comp_eq_elim:
    70 lemma comp_eq_elim:
    71   "a o b = c o d \<Longrightarrow> ((\<And>v. a (b v) = c (d v)) \<Longrightarrow> R) \<Longrightarrow> R"
    71   "a o b = c o d \<Longrightarrow> ((\<And>v. a (b v) = c (d v)) \<Longrightarrow> R) \<Longrightarrow> R"
    72   by (simp add: fun_eq_iff) 
    72   by (simp add: fun_eq_iff)
    73 
    73 
    74 lemma comp_eq_dest_lhs: "a o b = c \<Longrightarrow> a (b v) = c v"
    74 lemma comp_eq_dest_lhs: "a o b = c \<Longrightarrow> a (b v) = c v"
    75   by clarsimp
    75   by clarsimp
    76 
    76 
    77 lemma comp_eq_id_dest: "a o b = id o c \<Longrightarrow> a (b v) = c v"
    77 lemma comp_eq_id_dest: "a o b = id o c \<Longrightarrow> a (b v) = c v"
   831   have "?X \<in> Pow A" unfolding Pow_def by auto
   831   have "?X \<in> Pow A" unfolding Pow_def by auto
   832   with * obtain x where "x \<in> A \<and> f x = ?X" by blast
   832   with * obtain x where "x \<in> A \<and> f x = ?X" by blast
   833   thus False by best
   833   thus False by best
   834 qed
   834 qed
   835 
   835 
   836 subsection \<open>Setup\<close> 
   836 subsection \<open>Setup\<close>
   837 
   837 
   838 subsubsection \<open>Proof tools\<close>
   838 subsubsection \<open>Proof tools\<close>
   839 
   839 
   840 text \<open>simplifies terms of the form
   840 text \<open>simplifies terms of the form
   841   f(...,x:=y,...,x:=z,...) to f(...,x:=z,...)\<close>
   841   f(...,x:=y,...,x:=z,...) to f(...,x:=z,...)\<close>