Skip to content

Commit 5e9932d

Browse files
committed
feat(Order/Antisymmetrization): comparable minimal elements are equivalent
1 parent d0060d7 commit 5e9932d

1 file changed

Lines changed: 45 additions & 0 deletions

File tree

Mathlib/Order/Antisymmetrization.lean

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -442,6 +442,51 @@ theorem AntisymmRel.symmGen_congr_right (h : AntisymmRel (· ≤ ·) b c) :
442442

443443
end 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+
445490
section Prod
446491

447492
variable (α β) [Preorder α] [Preorder β]

0 commit comments

Comments
 (0)