File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -442,6 +442,51 @@ theorem AntisymmRel.symmGen_congr_right (h : AntisymmRel (· ≤ ·) b c) :
442442
443443end SymmGen
444444
445+ section Minimal
446+
447+ open Relation
448+
449+ variable {P : α → Prop }
450+
451+ section Preorder
452+
453+ variable [Preorder α]
454+
455+ -- TODO: `to_dual` doesn't work with `AntisymmRel` or `SymmGen`.
456+ theorem Minimal.antisymmRel_of_ge (ha : Minimal P a) (hb : P b) (hge : b ≤ a) :
457+ AntisymmRel (· ≤ ·) a b :=
458+ ⟨ha.le_of_le hb hge, hge⟩
459+
460+ theorem Maximal.antisymmRel_of_le (ha : Maximal P a) (hb : P b) (hle : a ≤ b) :
461+ AntisymmRel (· ≤ ·) a b :=
462+ ⟨hle, ha.le_of_ge hb hle⟩
463+
464+ theorem Minimal.antisymmRel_of_symmGen (ha : Minimal P a) (hb : Minimal P b)
465+ (hab : SymmGen (· ≤ ·) a b) : AntisymmRel (· ≤ ·) a b :=
466+ hab.elim (fun h ↦ (hb.antisymmRel_of_ge ha.prop h).symm) (ha.antisymmRel_of_ge hb.prop)
467+
468+ theorem Maximal.antisymmRel_of_symmGen (ha : Maximal P a) (hb : Maximal P b)
469+ (hab : SymmGen (· ≤ ·) a b) : AntisymmRel (· ≤ ·) a b :=
470+ hab.elim (ha.antisymmRel_of_le hb.prop) (fun h ↦ (hb.antisymmRel_of_le ha.prop h).symm)
471+
472+ end Preorder
473+
474+ section PartialOrder
475+
476+ variable [PartialOrder α]
477+
478+ theorem Minimal.eq_of_symmGen (ha : Minimal P a) (hb : Minimal P b)
479+ (hab : SymmGen (· ≤ ·) a b) : a = b :=
480+ (ha.antisymmRel_of_symmGen hb hab).eq
481+
482+ theorem Maximal.eq_of_symmGen (ha : Maximal P a) (hb : Maximal P b)
483+ (hab : SymmGen (· ≤ ·) a b) : a = b :=
484+ (ha.antisymmRel_of_symmGen hb hab).eq
485+
486+ end PartialOrder
487+
488+ end Minimal
489+
445490section Prod
446491
447492variable (α β) [Preorder α] [Preorder β]
You can’t perform that action at this time.
0 commit comments