# HG changeset patch # User desharna # Date 1741858781 -3600 # Node ID 3ef81164c3f781e413033370922f8114b0022393 # Parent 8a7620fe0e83c50661e1598b8a118a32b1450342 strengthened sym_trans_comp_subset diff -r 8a7620fe0e83 -r 3ef81164c3f7 NEWS --- a/NEWS Thu Mar 13 09:48:39 2025 +0100 +++ b/NEWS Thu Mar 13 10:39:41 2025 +0100 @@ -27,6 +27,8 @@ wfp_on_iff_wfp * Theory "HOL.Order_Relation": + - Strengthened lemmas. Minor INCOMPATIBILITY. + sym_trans_comp_subset - Added lemmas. antisym_relation_of[simp] asym_relation_of[simp] diff -r 8a7620fe0e83 -r 3ef81164c3f7 src/HOL/Equiv_Relations.thy --- a/src/HOL/Equiv_Relations.thy Thu Mar 13 09:48:39 2025 +0100 +++ b/src/HOL/Equiv_Relations.thy Thu Mar 13 10:39:41 2025 +0100 @@ -27,14 +27,35 @@ First half: \equiv A r \ r\ O r = r\. \ -lemma sym_trans_comp_subset: "sym r \ trans r \ r\ O r \ r" - unfolding trans_def sym_def converse_unfold by blast +lemma sym_trans_comp_subset: + assumes "r \ A \ A" and "sym_on A r" and "trans_on A r" + shows "r\ O r \ r" +proof (rule subsetI) + fix p + assume "p \ r\ O r" + then obtain x y z where "p = (x, z)" and "(y, x) \ r" and "(y, z) \ r" + by auto + hence "x \ A" and "y \ A" and "z \ A" + using \r \ A \ A\ by auto + have "(x, y) \ r" + using \(y, x) \ r\ \x \ A\ \y \ A\ \sym_on A r\ by (simp add: sym_on_def) + hence "(x, z) \ r" + using \trans_on A r\[THEN trans_onD, OF \x \ A\ \y \ A\ \z \ A\] \(y, z) \ r\ by blast + thus "p \ r" + unfolding \p = (x, z)\ . +qed lemma refl_on_comp_subset: "r \ A \ A \ refl_on A r \ r \ r\ O r" unfolding refl_on_def by blast lemma equiv_comp_eq: "equiv A r \ r\ O r = r" - by (iprover elim: equivE intro: sym_trans_comp_subset refl_on_comp_subset equalityI) +proof (rule subset_antisym) + show "equiv A r \ r\ O r \ r" + by (rule sym_trans_comp_subset[of r A]) (auto elim: equivE intro: sym_on_subset trans_on_subset) +next + show "equiv A r \ r \ r\ O r" + by (rule refl_on_comp_subset[of r A]) (auto elim: equivE) +qed text \Second half.\