# HG changeset patch # User desharna # Date 1742113997 -3600 # Node ID 6ace531790b44c3467486cc7132a1cd0822e1217 # Parent 4042628fffa5f17c84e02ce0a4c98f0fba782365 added lemmas, antisymp_on_bot[simp], asymp_on_bot[simp], irreflp_on_bot[simp], left_unique_bot[simp], symp_on_bot[simp], transp_on_bot[simp] diff -r 4042628fffa5 -r 6ace531790b4 NEWS --- a/NEWS Sun Mar 16 09:11:17 2025 +0100 +++ b/NEWS Sun Mar 16 09:33:17 2025 +0100 @@ -28,13 +28,19 @@ antisymp_equality[simp] ~> antisymp_on_equality[simp] transp_equality[simp] ~> transp_on_equality[simp] - Added lemmas. + antisymp_on_bot[simp] + asymp_on_bot[simp] + irreflp_on_bot[simp] + left_unique_bot[simp] left_unique_iff_Uniq reflp_on_refl_on_eq[pred_set_conv] + symp_on_bot[simp] symp_on_equality[simp] totalp_on_mono[mono] totalp_on_mono_strong totalp_on_mono_stronger totalp_on_mono_stronger_alt + transp_on_bot[simp] * Theory "HOL.Wellfounded": - Added lemmas. diff -r 4042628fffa5 -r 6ace531790b4 src/HOL/Relation.thy --- a/src/HOL/Relation.thy Sun Mar 16 09:11:17 2025 +0100 +++ b/src/HOL/Relation.thy Sun Mar 16 09:33:17 2025 +0100 @@ -316,6 +316,9 @@ lemma irreflpD: "irreflp R \ \ R x x" by (rule irreflD[to_pred]) +lemma irreflp_on_bot[simp]: "irreflp_on A \" + by (simp add: irreflp_on_def) + lemma irrefl_on_distinct [code]: "irrefl_on A r \ (\(a, b) \ r. a \ A \ b \ A \ a \ b)" by (auto simp add: irrefl_on_def) @@ -382,6 +385,9 @@ lemma asympD: "asymp R \ R x y \ \ R y x" by (rule asymD[to_pred]) +lemma asymp_on_bot[simp]: "asymp_on A \" + by (simp add: asymp_on_def) + lemma asym_iff: "asym r \ (\x y. (x,y) \ r \ (y,x) \ r)" by (blast dest: asymD) @@ -434,6 +440,9 @@ lemmas symp_sym_eq = symp_on_sym_on_eq[of UNIV] \ \For backward compatibility\ +lemma symp_on_bot[simp]: "symp_on A \" + by (simp add: symp_on_def) + lemma sym_on_subset: "sym_on A r \ B \ A \ sym_on B r" by (auto simp: sym_on_def) @@ -533,6 +542,9 @@ lemmas antisymp_antisym_eq = antisymp_on_antisym_on_eq[of UNIV] \ \For backward compatibility\ +lemma antisymp_on_bot[simp]: "antisymp_on A \" + by (simp add: antisymp_on_def) + lemma antisym_on_subset: "antisym_on A r \ B \ A \ antisym_on B r" by (auto simp: antisym_on_def) @@ -723,8 +735,11 @@ lemma trans_empty [simp]: "trans {}" by (blast intro: transI) +lemma transp_on_bot[simp]: "transp_on A \" + by (simp add: transp_on_def) + lemma transp_empty [simp]: "transp (\x y. False)" - using trans_empty[to_pred] by (simp add: bot_fun_def) + using transp_on_bot unfolding bot_fun_def bot_bool_def . lemma trans_singleton [simp]: "trans {(a, a)}" by (blast intro: transI) @@ -886,6 +901,9 @@ lemma left_unique_iff_Uniq: "left_unique r \ (\y. \\<^sub>\\<^sub>1x. r x y)" unfolding Uniq_def left_unique_def by blast +lemma left_unique_bot[simp]: "left_unique \" + by (simp add: left_unique_def) + subsubsection \Right uniqueness\