# HG changeset patch # User noschinl # Date 1331561542 -3600 # Node ID eec472dae5932ad214ce547a9933cc1441a16477 # Parent 6242b4bc05bcb4421d392a9dd5e19999f5ed61aa tuned pred_set_conv lemmas. Skipped lemmas changing the lemmas generated by inductive_set diff -r 6242b4bc05bc -r eec472dae593 src/HOL/Relation.thy --- a/src/HOL/Relation.thy Mon Mar 12 15:11:24 2012 +0100 +++ b/src/HOL/Relation.thy Mon Mar 12 15:12:22 2012 +0100 @@ -71,17 +71,17 @@ lemma pred_subset_eq2 [pred_set_conv]: "(\x y. (x, y) \ R) \ (\x y. (x, y) \ S) \ R \ S" by (simp add: subset_iff le_fun_def) -lemma bot_empty_eq (* CANDIDATE [pred_set_conv] *): "\ = (\x. x \ {})" +lemma bot_empty_eq [pred_set_conv]: "\ = (\x. x \ {})" by (auto simp add: fun_eq_iff) -lemma bot_empty_eq2 (* CANDIDATE [pred_set_conv] *): "\ = (\x y. (x, y) \ {})" +lemma bot_empty_eq2 [pred_set_conv]: "\ = (\x y. (x, y) \ {})" by (auto simp add: fun_eq_iff) -(* CANDIDATE lemma top_empty_eq [pred_set_conv]: "\ = (\x. x \ UNIV)" - by (auto simp add: fun_eq_iff) *) +lemma top_empty_eq [pred_set_conv]: "\ = (\x. x \ UNIV)" + by (auto simp add: fun_eq_iff) -(* CANDIDATE lemma top_empty_eq2 [pred_set_conv]: "\ = (\x y. (x, y) \ UNIV)" - by (auto simp add: fun_eq_iff) *) +lemma top_empty_eq2 [pred_set_conv]: "\ = (\x y. (x, y) \ UNIV)" + by (auto simp add: fun_eq_iff) lemma inf_Int_eq [pred_set_conv]: "(\x. x \ R) \ (\x. x \ S) = (\x. x \ R \ S)" by (simp add: inf_fun_def) @@ -98,7 +98,6 @@ lemma Inf_INT_eq [pred_set_conv]: "\S = (\x. x \ INTER S Collect)" by (simp add: fun_eq_iff Inf_apply) -(* CANDIDATE lemma INF_Int_eq [pred_set_conv]: "(\i\S. (\x. x \ i)) = (\x. x \ \S)" by (simp add: fun_eq_iff INF_apply) @@ -119,35 +118,19 @@ lemma SUP_Sup_eq2 [pred_set_conv]: "(\i\S. (\x y. (x, y) \ i)) = (\x y. (x, y) \ \S)" by (simp add: fun_eq_iff SUP_apply) -*) -(* CANDIDATE prefer those generalized versions: -lemma INF_INT_eq [pred_set_conv]: "(\i\S. (\x. x \ r i)) = (\x. x \ (\i\S. r i))" +lemma INF_INT_eq [pred_set_conv]: "(\i. (\x. x \ r i)) = (\x. x \ (\i. r i))" by (simp add: INF_apply fun_eq_iff) lemma INF_INT_eq2 [pred_set_conv]: "(\i\S. (\x y. (x, y) \ r i)) = (\x y. (x, y) \ (\i\S. r i))" by (simp add: INF_apply fun_eq_iff) -*) -lemma INF_INT_eq (* CANDIDATE [pred_set_conv] *): "(\i. (\x. x \ r i)) = (\x. x \ (\i. r i))" - by (simp add: INF_apply fun_eq_iff) - -lemma INF_INT_eq2 (* CANDIDATE [pred_set_conv] *): "(\i. (\x y. (x, y) \ r i)) = (\x y. (x, y) \ (\i. r i))" - by (simp add: INF_apply fun_eq_iff) - -(* CANDIDATE prefer those generalized versions: -lemma SUP_UN_eq [pred_set_conv]: "(\i\S. (\x. x \ r i)) = (\x. x \ (\i\S. r i))" +lemma SUP_UN_eq [pred_set_conv]: "(\i. (\x. x \ r i)) = (\x. x \ (\i. r i))" by (simp add: SUP_apply fun_eq_iff) lemma SUP_UN_eq2 [pred_set_conv]: "(\i\S. (\x y. (x, y) \ r i)) = (\x y. (x, y) \ (\i\S. r i))" by (simp add: SUP_apply fun_eq_iff) -*) -lemma SUP_UN_eq [pred_set_conv]: "(\i. (\x. x \ r i)) = (\x. x \ (\i. r i))" - by (simp add: SUP_apply fun_eq_iff) - -lemma SUP_UN_eq2 [pred_set_conv]: "(\i. (\x y. (x, y) \ r i)) = (\x y. (x, y) \ (\i. r i))" - by (simp add: SUP_apply fun_eq_iff) subsection {* Properties of relations *} @@ -557,22 +540,23 @@ "{} O R = {}" by blast -(* CANDIDATE lemma pred_comp_bot1 [simp]: - "" - by (fact rel_comp_empty1 [to_pred]) *) +lemma prod_comp_bot1 [simp]: + "\ OO R = \" + by (fact rel_comp_empty1 [to_pred]) lemma rel_comp_empty2 [simp]: "R O {} = {}" by blast -(* CANDIDATE lemma pred_comp_bot2 [simp]: - "" - by (fact rel_comp_empty2 [to_pred]) *) +lemma pred_comp_bot2 [simp]: + "R OO \ = \" + by (fact rel_comp_empty2 [to_pred]) lemma O_assoc: "(R O S) O T = R O (S O T)" by blast + lemma pred_comp_assoc: "(r OO s) OO t = r OO (s OO t)" by (fact O_assoc [to_pred]) diff -r 6242b4bc05bc -r eec472dae593 src/HOL/Wellfounded.thy --- a/src/HOL/Wellfounded.thy Mon Mar 12 15:11:24 2012 +0100 +++ b/src/HOL/Wellfounded.thy Mon Mar 12 15:12:22 2012 +0100 @@ -298,7 +298,7 @@ lemma wfP_SUP: "\i. wfP (r i) \ \i j. r i \ r j \ inf (DomainP (r i)) (RangeP (r j)) = bot \ wfP (SUPR UNIV r)" - apply (rule wf_UN [where I=UNIV and r="\i. {(x, y). r i x y}", to_pred]) + apply (rule wf_UN[to_pred]) apply simp_all done