# HG changeset patch # User desharna # Date 1654357324 -7200 # Node ID 6bd264ff410f973340a15d0f4912bb560ba6aec7 # Parent a7c6722fbaf1769a379af9ebfdda2a8841a93e48 added lemmas reflp_on_inf, reflp_on_sup, and reflp_on_mono diff -r a7c6722fbaf1 -r 6bd264ff410f NEWS --- a/NEWS Sat Jun 04 15:59:24 2022 +0200 +++ b/NEWS Sat Jun 04 17:42:04 2022 +0200 @@ -50,7 +50,10 @@ preorder.asymp_less reflp_onD reflp_onI + reflp_on_inf + reflp_on_mono reflp_on_subset + reflp_on_sup total_on_subset totalpD totalpI diff -r a7c6722fbaf1 -r 6bd264ff410f src/HOL/Relation.thy --- a/src/HOL/Relation.thy Sat Jun 04 15:59:24 2022 +0200 +++ b/src/HOL/Relation.thy Sat Jun 04 17:42:04 2022 +0200 @@ -206,14 +206,20 @@ lemma refl_on_Int: "refl_on A r \ refl_on B s \ refl_on (A \ B) (r \ s)" unfolding refl_on_def by blast +lemma reflp_on_inf: "reflp_on A R \ reflp_on B S \ reflp_on (A \ B) (R \ S)" + by (auto intro: reflp_onI dest: reflp_onD) + lemma reflp_inf: "reflp r \ reflp s \ reflp (r \ s)" - by (auto intro: reflpI elim: reflpE) + by (rule reflp_on_inf[of UNIV _ UNIV, unfolded Int_absorb]) lemma refl_on_Un: "refl_on A r \ refl_on B s \ refl_on (A \ B) (r \ s)" unfolding refl_on_def by blast +lemma reflp_on_sup: "reflp_on A R \ reflp_on B S \ reflp_on (A \ B) (R \ S)" + by (auto intro: reflp_onI dest: reflp_onD) + lemma reflp_sup: "reflp r \ reflp s \ reflp (r \ s)" - by (auto intro: reflpI elim: reflpE) + by (rule reflp_on_sup[of UNIV _ UNIV, unfolded Un_absorb]) lemma refl_on_INTER: "\x\S. refl_on (A x) (r x) \ refl_on (\(A ` S)) (\(r ` S))" unfolding refl_on_def by fast @@ -234,8 +240,12 @@ lemma reflp_equality [simp]: "reflp (=)" by (simp add: reflp_def) +lemma reflp_on_mono: + "reflp_on A R \ (\x y. x \ A \ y \ A \ R x y \ Q x y) \ reflp_on A Q" + by (auto intro: reflp_onI dest: reflp_onD) + lemma reflp_mono: "reflp R \ (\x y. R x y \ Q x y) \ reflp Q" - by (auto intro: reflpI dest: reflpD) + by (rule reflp_on_mono[of UNIV R Q]) simp_all subsubsection \Irreflexivity\