equal
deleted
inserted
replaced
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> |