@@ -442,6 +442,39 @@ theorem AntisymmRel.symmGen_congr_right (h : AntisymmRel (· ≤ ·) b c) :
442442
443443end SymmGen
444444
445+ section Minimal
446+
447+ open Relation
448+
449+ variable [Preorder α] {P : α → Prop }
450+
451+ -- TODO: `to_dual` doesn't work with `AntisymmRel` or `SymmGen`.
452+ theorem Minimal.antisymmRel_of_ge (ha : Minimal P a) (hb : P b) (hge : b ≤ a) :
453+ AntisymmRel (· ≤ ·) a b :=
454+ ⟨ha.le_of_le hb hge, hge⟩
455+
456+ theorem Maximal.antisymmRel_of_le (ha : Maximal P a) (hb : P b) (hle : a ≤ b) :
457+ AntisymmRel (· ≤ ·) a b :=
458+ ⟨hle, ha.le_of_ge hb hle⟩
459+
460+ theorem Minimal.antisymmRel_of_symmGen (ha : Minimal P a) (hb : Minimal P b)
461+ (hab : SymmGen (· ≤ ·) a b) : AntisymmRel (· ≤ ·) a b :=
462+ ⟨hab.elim id (ha.le_of_le hb.prop), hab.elim (hb.le_of_le ha.prop) id⟩
463+
464+ theorem Maximal.antisymmRel_of_symmGen (ha : Maximal P a) (hb : Maximal P b)
465+ (hab : SymmGen (· ≤ ·) a b) : AntisymmRel (· ≤ ·) a b :=
466+ ⟨hab.elim id (hb.le_of_ge ha.prop), hab.elim (ha.le_of_ge hb.prop) id⟩
467+
468+ end Minimal
469+
470+ theorem Minimal.eq_of_symmGen [PartialOrder α] {P : α → Prop } (ha : Minimal P a)
471+ (hb : Minimal P b) (hab : Relation.SymmGen (· ≤ ·) a b) : a = b :=
472+ (ha.antisymmRel_of_symmGen hb hab).eq
473+
474+ theorem Maximal.eq_of_symmGen [PartialOrder α] {P : α → Prop } (ha : Maximal P a)
475+ (hb : Maximal P b) (hab : Relation.SymmGen (· ≤ ·) a b) : a = b :=
476+ (ha.antisymmRel_of_symmGen hb hab).eq
477+
445478section Prod
446479
447480variable (α β) [Preorder α] [Preorder β]
0 commit comments