diff -r 02f286491568 -r 53f4f8287606 src/HOL/Predicate.thy --- a/src/HOL/Predicate.thy Sun Aug 21 14:16:44 2011 +0200 +++ b/src/HOL/Predicate.thy Sun Aug 21 19:47:52 2011 +0200 @@ -25,7 +25,6 @@ subsection {* Predicates as (complete) lattices *} - text {* Handy introduction and elimination rules for @{text "\"} on unary and binary predicates @@ -423,14 +422,6 @@ "(\w. eval P w \ eval Q w) \ P = Q" by (cases P, cases Q) (auto simp add: fun_eq_iff) -lemma eval_mem [simp]: - "x \ eval P \ eval P x" - by (simp add: mem_def) - -lemma eq_mem [simp]: - "x \ (op =) y \ x = y" - by (auto simp add: mem_def) - instantiation pred :: (type) complete_lattice begin @@ -798,11 +789,11 @@ "map f P = P \= (single o f)" lemma eval_map [simp]: - "eval (map f P) = image f (eval P)" + "eval (map f P) = (\x\{x. eval P x}. (\y. f x = y))" by (auto simp add: map_def) enriched_type map: map - by (auto intro!: pred_eqI simp add: fun_eq_iff image_compose) + by (rule ext, rule pred_eqI, auto)+ subsubsection {* Implementation *} @@ -1040,6 +1031,14 @@ end; *} +lemma eval_mem [simp]: + "x \ eval P \ eval P x" + by (simp add: mem_def) + +lemma eq_mem [simp]: + "x \ (op =) y \ x = y" + by (auto simp add: mem_def) + no_notation bot ("\") and top ("\") and