added lemmas antisym_onI and antisymp_onI
authordesharna
Thu, 15 Dec 2022 10:51:46 +0100
changeset 76639 e322abb912af
parent 76638 d8ca2d0e81e5
child 76640 8eb23d34323b
added lemmas antisym_onI and antisymp_onI
NEWS
src/HOL/Relation.thy
--- a/NEWS	Thu Dec 15 09:44:50 2022 +0100
+++ b/NEWS	Thu Dec 15 10:51:46 2022 +0100
@@ -41,7 +41,9 @@
       total_on_singleton
   - Added lemmas.
       antisym_if_asymp
+      antisym_onI
       antisymp_if_asymp
+      antisymp_onI
       antisymp_on_antisym_on_eq[pred_set_conv]
       asym_if_irrefl_and_trans
       asymp_if_irreflp_and_transp
--- a/src/HOL/Relation.thy	Thu Dec 15 09:44:50 2022 +0100
+++ b/src/HOL/Relation.thy	Thu Dec 15 10:51:46 2022 +0100
@@ -449,13 +449,21 @@
 
 lemmas antisymp_antisym_eq = antisymp_on_antisym_on_eq[of UNIV]
 
+lemma antisym_onI:
+  "(\<And>x y. x \<in> A \<Longrightarrow> y \<in> A \<Longrightarrow> (x, y) \<in> r \<Longrightarrow> (y, x) \<in> r \<Longrightarrow> x = y) \<Longrightarrow> antisym_on A r"
+  unfolding antisym_on_def by simp
+
 lemma antisymI [intro?]:
   "(\<And>x y. (x, y) \<in> r \<Longrightarrow> (y, x) \<in> r \<Longrightarrow> x = y) \<Longrightarrow> antisym r"
-  unfolding antisym_def by iprover
+  by (simp add: antisym_onI)
+
+lemma antisymp_onI:
+  "(\<And>x y. x \<in> A \<Longrightarrow> y \<in> A \<Longrightarrow> R x y \<Longrightarrow> R y x \<Longrightarrow> x = y) \<Longrightarrow> antisymp_on A R"
+  by (rule antisym_onI[to_pred])
 
 lemma antisympI [intro?]:
-  "(\<And>x y. r x y \<Longrightarrow> r y x \<Longrightarrow> x = y) \<Longrightarrow> antisymp r"
-  by (fact antisymI [to_pred])
+  "(\<And>x y. R x y \<Longrightarrow> R y x \<Longrightarrow> x = y) \<Longrightarrow> antisymp R"
+  by (rule antisymI[to_pred])
     
 lemma antisymD [dest?]:
   "antisym r \<Longrightarrow> (a, b) \<in> r \<Longrightarrow> (b, a) \<in> r \<Longrightarrow> a = b"