Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 04779a3

Browse files
committed
feat(order/complete_boolean_algebra): lemmas about binfi (#10852)
Adds corresponding `binfi` and `Inf` lemmas for existing `infi` results, especially where `rw` struggles to achieve the same thing alone.
1 parent f00007d commit 04779a3

File tree

2 files changed

+59
-2
lines changed

2 files changed

+59
-2
lines changed

src/order/complete_boolean_algebra.lean

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,22 @@ theorem infi_sup_eq (f : ι → α) (a : α) : (⨅ i, f i) ⊔ a = ⨅ i, f i
6464
theorem sup_infi_eq (a : α) (f : ι → α) : a ⊔ (⨅ i, f i) = ⨅ i, a ⊔ f i :=
6565
@inf_supr_eq (order_dual α) _ _ _ _
6666

67+
theorem bsupr_inf_eq {p : α → Prop} {f : Π i (hi : p i), α} (a : α) :
68+
(⨆ i hi, f i hi) ⊓ a = ⨆ i hi, f i hi ⊓ a :=
69+
by simp only [supr_inf_eq]
70+
71+
theorem inf_bsupr_eq (a : α) {p : α → Prop} {f : Π i (hi : p i), α} :
72+
a ⊓ (⨆ i hi, f i hi) = ⨆ i hi, a ⊓ f i hi :=
73+
by simp only [inf_supr_eq]
74+
75+
theorem binfi_sup_eq {p : α → Prop} {f : Π i (hi : p i), α} (a : α) :
76+
(⨅ i hi, f i hi) ⊔ a = ⨅ i hi, f i hi ⊔ a :=
77+
@bsupr_inf_eq (order_dual α) _ _ _ _
78+
79+
theorem sup_binfi_eq (a : α) {p : α → Prop} {f : Π i (hi : p i), α} :
80+
a ⊔ (⨅ i hi, f i hi) = ⨅ i hi, a ⊔ f i hi :=
81+
@inf_bsupr_eq (order_dual α) _ _ _ _
82+
6783
instance pi.complete_distrib_lattice {ι : Type*} {π : ι → Type*}
6884
[∀ i, complete_distrib_lattice (π i)] : complete_distrib_lattice (Π i, π i) :=
6985
{ infi_sup_le_sup_Inf := λ a s i,

src/order/galois_connection.lean

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -357,23 +357,46 @@ lemma l_supr_u [complete_lattice α] [complete_lattice β] (gi : galois_insertio
357357
calc l (⨆ (i : ι), u (f i)) = ⨆ (i : ι), l (u (f i)) : gi.gc.l_supr
358358
... = ⨆ (i : ι), f i : congr_arg _ $ funext $ λ i, gi.l_u_eq (f i)
359359

360+
lemma l_bsupr_u [complete_lattice α] [complete_lattice β] (gi : galois_insertion l u)
361+
{ι : Sort x} {p : ι → Prop} (f : Π i (hi : p i), β) :
362+
l (⨆ i hi, u (f i hi)) = ⨆ i hi, f i hi :=
363+
by simp only [supr_subtype', gi.l_supr_u]
364+
365+
lemma l_Sup_u_image [complete_lattice α] [complete_lattice β] (gi : galois_insertion l u)
366+
(s : set β) : l (Sup (u '' s)) = Sup s :=
367+
by rw [Sup_image, gi.l_bsupr_u, Sup_eq_supr]
368+
360369
lemma l_inf_u [semilattice_inf α] [semilattice_inf β] (gi : galois_insertion l u) (a b : β) :
361370
l (u a ⊓ u b) = a ⊓ b :=
362371
calc l (u a ⊓ u b) = l (u (a ⊓ b)) : congr_arg l gi.gc.u_inf.symm
363372
... = a ⊓ b : by simp only [gi.l_u_eq]
364373

365374
lemma l_infi_u [complete_lattice α] [complete_lattice β] (gi : galois_insertion l u)
366375
{ι : Sort x} (f : ι → β) :
367-
l (⨅ i, u (f i)) = ⨅ i, (f i) :=
376+
l (⨅ i, u (f i)) = ⨅ i, f i :=
368377
calc l (⨅ (i : ι), u (f i)) = l (u (⨅ (i : ι), (f i))) : congr_arg l gi.gc.u_infi.symm
369378
... = ⨅ (i : ι), f i : gi.l_u_eq _
370379

380+
lemma l_binfi_u [complete_lattice α] [complete_lattice β] (gi : galois_insertion l u)
381+
{ι : Sort x} {p : ι → Prop} (f : Π i (hi : p i), β) :
382+
l (⨅ i hi, u (f i hi)) = ⨅ i hi, f i hi :=
383+
by simp only [infi_subtype', gi.l_infi_u]
384+
385+
lemma l_Inf_u_image [complete_lattice α] [complete_lattice β] (gi : galois_insertion l u)
386+
(s : set β) : l (Inf (u '' s)) = Inf s :=
387+
by rw [Inf_image, gi.l_binfi_u, Inf_eq_infi]
388+
371389
lemma l_infi_of_ul_eq_self [complete_lattice α] [complete_lattice β] (gi : galois_insertion l u)
372390
{ι : Sort x} (f : ι → α) (hf : ∀ i, u (l (f i)) = f i) :
373-
l (⨅ i, (f i)) = ⨅ i, l (f i) :=
391+
l (⨅ i, f i) = ⨅ i, l (f i) :=
374392
calc l (⨅ i, (f i)) = l ⨅ (i : ι), (u (l (f i))) : by simp [hf]
375393
... = ⨅ i, l (f i) : gi.l_infi_u _
376394

395+
lemma l_binfi_of_ul_eq_self [complete_lattice α] [complete_lattice β] (gi : galois_insertion l u)
396+
{ι : Sort x} {p : ι → Prop} (f : Π i (hi : p i), α) (hf : ∀ i hi, u (l (f i hi)) = f i hi) :
397+
l (⨅ i hi, f i hi) = ⨅ i hi, l (f i hi) :=
398+
by { rw [infi_subtype', infi_subtype'], exact gi.l_infi_of_ul_eq_self _ (λ _, hf _ _) }
399+
377400
lemma u_le_u_iff [preorder α] [preorder β] (gi : galois_insertion l u) {a b} :
378401
u a ≤ u b ↔ a ≤ b :=
379402
⟨λ h, (gi.le_l_u _).trans (gi.gc.l_le h),
@@ -537,6 +560,10 @@ lemma u_infi_l [complete_lattice α] [complete_lattice β] (gi : galois_coinsert
537560
u (⨅ i, l (f i)) = ⨅ i, (f i) :=
538561
gi.dual.l_supr_u _
539562

563+
lemma u_Inf_l_image [complete_lattice α] [complete_lattice β] (gi : galois_coinsertion l u)
564+
(s : set α) : u (Inf (l '' s)) = Inf s :=
565+
gi.dual.l_Sup_u_image _
566+
540567
lemma u_sup_l [semilattice_sup α] [semilattice_sup β] (gi : galois_coinsertion l u) (a b : α) :
541568
u (l a ⊔ l b) = a ⊔ b :=
542569
gi.dual.l_inf_u _ _
@@ -546,11 +573,25 @@ lemma u_supr_l [complete_lattice α] [complete_lattice β] (gi : galois_coinsert
546573
u (⨆ i, l (f i)) = ⨆ i, (f i) :=
547574
gi.dual.l_infi_u _
548575

576+
lemma u_bsupr_l [complete_lattice α] [complete_lattice β] (gi : galois_coinsertion l u)
577+
{ι : Sort x} {p : ι → Prop} (f : Π i (hi : p i), α) :
578+
u (⨆ i hi, l (f i hi)) = ⨆ i hi, f i hi :=
579+
gi.dual.l_binfi_u _
580+
581+
lemma u_Sup_l_image [complete_lattice α] [complete_lattice β] (gi : galois_coinsertion l u)
582+
(s : set α) : u (Sup (l '' s)) = Sup s :=
583+
gi.dual.l_Inf_u_image _
584+
549585
lemma u_supr_of_lu_eq_self [complete_lattice α] [complete_lattice β] (gi : galois_coinsertion l u)
550586
{ι : Sort x} (f : ι → β) (hf : ∀ i, l (u (f i)) = f i) :
551587
u (⨆ i, (f i)) = ⨆ i, u (f i) :=
552588
gi.dual.l_infi_of_ul_eq_self _ hf
553589

590+
lemma u_bsupr_of_lu_eq_self [complete_lattice α] [complete_lattice β] (gi : galois_coinsertion l u)
591+
{ι : Sort x} {p : ι → Prop} (f : Π i (hi : p i), β) (hf : ∀ i hi, l (u (f i hi)) = f i hi) :
592+
u (⨆ i hi, f i hi) = ⨆ i hi, u (f i hi) :=
593+
gi.dual.l_binfi_of_ul_eq_self _ hf
594+
554595
lemma l_le_l_iff [preorder α] [preorder β] (gi : galois_coinsertion l u) {a b} :
555596
l a ≤ l b ↔ a ≤ b :=
556597
gi.dual.u_le_u_iff

0 commit comments

Comments
 (0)