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

Commit 0b57520

Browse files
committed
feat(order/bounds): Image under an order_iso and upper_bounds commute (#9555)
1 parent 111d73b commit 0b57520

File tree

2 files changed

+30
-17
lines changed

2 files changed

+30
-17
lines changed

src/order/bounds.lean

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -769,6 +769,17 @@ lemma mem_lower_bounds_image (Ha : a ∈ lower_bounds s) :
769769
f a ∈ lower_bounds (f '' s) :=
770770
ball_image_of_ball (assume x H, Hf (Ha ‹x ∈ s›))
771771

772+
lemma image_upper_bounds_subset_upper_bounds_image (hf : monotone f) :
773+
f '' upper_bounds s ⊆ upper_bounds (f '' s) :=
774+
begin
775+
rintro _ ⟨a, ha, rfl⟩,
776+
exact hf.mem_upper_bounds_image ha,
777+
end
778+
779+
lemma image_lower_bounds_subset_lower_bounds_image (hf : monotone f) :
780+
f '' lower_bounds s ⊆ lower_bounds (f '' s) :=
781+
@image_upper_bounds_subset_upper_bounds_image (order_dual α) (order_dual β) _ _ _ _ hf.dual
782+
772783
/-- The image under a monotone function of a set which is bounded above is bounded above. -/
773784
lemma map_bdd_above (hf : monotone f) : bdd_above s → bdd_above (f '' s)
774785
| ⟨C, hC⟩ := ⟨f C, hf.mem_upper_bounds_image hC⟩
@@ -842,38 +853,48 @@ lemma is_glb_prod [preorder α] [preorder β] {s : set (α × β)} (p : α × β
842853

843854
namespace order_iso
844855

845-
variables [preorder α] [preorder β]
856+
variables [preorder α] [preorder β] (f : α ≃o β)
857+
858+
lemma upper_bounds_image {s : set α} :
859+
upper_bounds (f '' s) = f '' upper_bounds s :=
860+
subset.antisymm
861+
(λ x hx, ⟨f.symm x, λ y hy, f.le_symm_apply.2 (hx $ mem_image_of_mem _ hy), f.apply_symm_apply x⟩)
862+
f.monotone.image_upper_bounds_subset_upper_bounds_image
863+
864+
lemma lower_bounds_image {s : set α} :
865+
lower_bounds (f '' s) = f '' lower_bounds s :=
866+
@upper_bounds_image (order_dual α) (order_dual β) _ _ f.dual _
846867

847-
@[simp] lemma is_lub_image (f : α ≃o β) {s : set α} {x : β} :
868+
@[simp] lemma is_lub_image {s : set α} {x : β} :
848869
is_lub (f '' s) x ↔ is_lub s (f.symm x) :=
849870
⟨λ h, is_lub.of_image (λ _ _, f.le_iff_le) ((f.apply_symm_apply x).symm ▸ h),
850871
λ h, is_lub.of_image (λ _ _, f.symm.le_iff_le) $ (f.symm_image_image s).symm ▸ h⟩
851872

852-
lemma is_lub_image' (f : α ≃o β) {s : set α} {x : α} :
873+
lemma is_lub_image' {s : set α} {x : α} :
853874
is_lub (f '' s) (f x) ↔ is_lub s x :=
854875
by rw [is_lub_image, f.symm_apply_apply]
855876

856-
@[simp] lemma is_glb_image (f : α ≃o β) {s : set α} {x : β} :
877+
@[simp] lemma is_glb_image {s : set α} {x : β} :
857878
is_glb (f '' s) x ↔ is_glb s (f.symm x) :=
858879
f.dual.is_lub_image
859880

860-
lemma is_glb_image' (f : α ≃o β) {s : set α} {x : α} :
881+
lemma is_glb_image' {s : set α} {x : α} :
861882
is_glb (f '' s) (f x) ↔ is_glb s x :=
862883
f.dual.is_lub_image'
863884

864-
@[simp] lemma is_lub_preimage (f : α ≃o β) {s : set β} {x : α} :
885+
@[simp] lemma is_lub_preimage {s : set β} {x : α} :
865886
is_lub (f ⁻¹' s) x ↔ is_lub s (f x) :=
866887
by rw [← f.symm_symm, ← image_eq_preimage, is_lub_image]
867888

868-
lemma is_lub_preimage' (f : α ≃o β) {s : set β} {x : β} :
889+
lemma is_lub_preimage' {s : set β} {x : β} :
869890
is_lub (f ⁻¹' s) (f.symm x) ↔ is_lub s x :=
870891
by rw [is_lub_preimage, f.apply_symm_apply]
871892

872-
@[simp] lemma is_glb_preimage (f : α ≃o β) {s : set β} {x : α} :
893+
@[simp] lemma is_glb_preimage {s : set β} {x : α} :
873894
is_glb (f ⁻¹' s) x ↔ is_glb s (f x) :=
874895
f.dual.is_lub_preimage
875896

876-
lemma is_glb_preimage' (f : α ≃o β) {s : set β} {x : β} :
897+
lemma is_glb_preimage' {s : set β} {x : β} :
877898
is_glb (f ⁻¹' s) (f.symm x) ↔ is_glb s x :=
878899
f.dual.is_lub_preimage'
879900

src/order/galois_connection.lean

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -224,14 +224,6 @@ namespace order_iso
224224

225225
variables [preorder α] [preorder β]
226226

227-
@[simp] lemma upper_bounds_image (e : α ≃o β) (s : set α) :
228-
upper_bounds (e '' s) = e.symm ⁻¹' upper_bounds s :=
229-
e.to_galois_connection.upper_bounds_l_image s
230-
231-
@[simp] lemma lower_bounds_image (e : α ≃o β) (s : set α) :
232-
lower_bounds (e '' s) = e.symm ⁻¹' lower_bounds s :=
233-
e.dual.upper_bounds_image s
234-
235227
@[simp] lemma bdd_above_image (e : α ≃o β) {s : set α} : bdd_above (e '' s) ↔ bdd_above s :=
236228
e.to_galois_connection.bdd_above_l_image
237229

0 commit comments

Comments
 (0)