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

Commit 428b9e5

Browse files
committed
feat(topology/continuous_function/bounded): continuous bounded real-valued functions form a normed vector lattice (#10322)
feat(topology/continuous_function/bounded): continuous bounded real-valued functions form a normed vector lattice Co-authored-by: Christopher Hoskin <mans0954@users.noreply.github.com>
1 parent 37f343c commit 428b9e5

File tree

2 files changed

+87
-38
lines changed

2 files changed

+87
-38
lines changed

src/analysis/normed_space/lattice_ordered_group.lean

Lines changed: 18 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ class normed_lattice_add_comm_group (α : Type*)
4949
lemma solid {α : Type*} [normed_lattice_add_comm_group α] {a b : α} (h : |a| ≤ |b|) : ∥a∥ ≤ ∥b∥ :=
5050
normed_lattice_add_comm_group.solid a b h
5151

52+
noncomputable instance : normed_lattice_add_comm_group ℝ :=
53+
{ add_le_add_left := λ _ _ h _, add_le_add le_rfl h,
54+
solid := λ _ _, id, }
5255
/--
5356
A normed lattice ordered group is an ordered additive commutative group
5457
-/
@@ -114,6 +117,21 @@ begin
114117
exact abs_inf_sub_inf_le_abs _ _ _, } },
115118
end
116119

120+
lemma norm_sup_sub_sup_le_add_norm (a b c d : α) : ∥a ⊔ b - (c ⊔ d)∥ ≤ ∥a - c∥ + ∥b - d∥ :=
121+
begin
122+
rw [← norm_abs_eq_norm (a - c), ← norm_abs_eq_norm (b - d)],
123+
refine le_trans (solid _) (norm_add_le (|a - c|) (|b - d|)),
124+
rw abs_of_nonneg (|a - c| + |b - d|) (add_nonneg (abs_nonneg (a - c)) (abs_nonneg (b - d))),
125+
calc |a ⊔ b - (c ⊔ d)| =
126+
|a ⊔ b - (c ⊔ b) + (c ⊔ b - (c ⊔ d))| : by rw sub_add_sub_cancel
127+
... ≤ |a ⊔ b - (c ⊔ b)| + |c ⊔ b - (c ⊔ d)| : abs_add_le _ _
128+
... ≤ |a -c| + |b - d| : by
129+
{ apply add_le_add,
130+
{ exact abs_sup_sub_sup_le_abs _ _ _, },
131+
{ rw [@sup_comm _ _ c, @sup_comm _ _ c],
132+
exact abs_sup_sub_sup_le_abs _ _ _, } },
133+
end
134+
117135
/--
118136
Let `α` be a normed lattice ordered group. Then the infimum is jointly continuous.
119137
-/
@@ -139,41 +157,3 @@ topological_lattice.mk
139157
lemma norm_abs_sub_abs (a b : α) :
140158
∥ |a| - |b| ∥ ≤ ∥a-b∥ :=
141159
solid (lattice_ordered_comm_group.abs_abs_sub_abs_le _ _)
142-
143-
lemma norm_two_inf_sub_two_inf_le (a b c d : α) :
144-
2•(a⊓b)-2•(c⊓d)∥ ≤ 2*∥a - c∥ + 2*∥b - d∥ :=
145-
calc2•(a⊓b) - 2•(c⊓d)∥ = ∥(a + b - |b - a|) - (c + d - |d - c|)∥ :
146-
by rw [lattice_ordered_comm_group.two_inf_eq_add_sub_abs_sub,
147-
lattice_ordered_comm_group.two_inf_eq_add_sub_abs_sub]
148-
... = ∥(a + b - |b - a|) - c - d + |d - c|∥ : by abel
149-
... = ∥(a - c + (b - d)) + (|d - c| - |b - a|)∥ : by abel
150-
... ≤ ∥a - c + (b - d)∥ + ∥|d - c| - |b - a|∥ :
151-
by apply norm_add_le (a - c + (b - d)) (|d - c| - |b - a|)
152-
... ≤ (∥a - c∥ + ∥b - d∥) + ∥|d - c| - |b - a|∥ : by exact add_le_add_right (norm_add_le _ _) _
153-
... ≤ (∥a - c∥ + ∥b - d∥) + ∥ d - c - (b - a) ∥ :
154-
by exact add_le_add_left (norm_abs_sub_abs _ _) _
155-
... = (∥a - c∥ + ∥b - d∥) + ∥ a - c - (b - d) ∥ :
156-
by { rw [sub_sub_assoc_swap, sub_sub_assoc_swap, add_comm (a-c), ← add_sub_assoc], simp, abel, }
157-
... ≤ (∥a - c∥ + ∥b - d∥) + (∥ a - c ∥ + ∥ b - d ∥) :
158-
by apply add_le_add_left (norm_sub_le (a-c) (b-d) )
159-
... = 2*∥a - c∥ + 2*∥b - d∥ :
160-
by { ring, }
161-
162-
lemma norm_two_sup_sub_two_sup_le (a b c d : α) :
163-
2•(a⊔b)-2•(c⊔d)∥ ≤ 2*∥a - c∥ + 2*∥b - d∥ :=
164-
calc2•(a⊔b) - 2•(c⊔d)∥ = ∥(a + b + |b - a|) - (c + d + |d - c|)∥ :
165-
by rw [lattice_ordered_comm_group.two_sup_eq_add_add_abs_sub,
166-
lattice_ordered_comm_group.two_sup_eq_add_add_abs_sub]
167-
... = ∥(a + b + |b - a|) - c - d - |d - c|∥ : by abel
168-
... = ∥(a - c + (b - d)) + (|b - a| - |d - c|)∥ : by abel
169-
... ≤ ∥a - c + (b - d)∥ + ∥|b - a| - |d - c|∥ :
170-
by apply norm_add_le (a - c + (b - d)) (|b - a| - |d - c|)
171-
... ≤ (∥a - c∥ + ∥b - d∥) + ∥|b - a| - |d - c|∥ : by exact add_le_add_right (norm_add_le _ _) _
172-
... ≤ (∥a - c∥ + ∥b - d∥) + ∥ b - a - (d - c) ∥ :
173-
by exact add_le_add_left (norm_abs_sub_abs _ _) _
174-
... = (∥a - c∥ + ∥b - d∥) + ∥ b - d - (a - c) ∥ :
175-
by { rw [sub_sub_assoc_swap, sub_sub_assoc_swap, add_comm (b-d), ← add_sub_assoc], simp, abel, }
176-
... ≤ (∥a - c∥ + ∥b - d∥) + (∥ b - d ∥ + ∥ a - c ∥) :
177-
by apply add_le_add_left (norm_sub_le (b-d) (a-c) )
178-
... = 2*∥a - c∥ + 2*∥b - d∥ :
179-
by { ring, }

src/topology/continuous_function/bounded.lean

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ Authors: Sébastien Gouëzel, Mario Carneiro, Yury Kudryashov, Heather Macbeth
55
-/
66
import analysis.normed_space.operator_norm
77
import topology.continuous_function.algebra
8+
import analysis.normed_space.lattice_ordered_group
89

910
/-!
1011
# Bounded continuous functions
@@ -1017,4 +1018,72 @@ module over the algebra of bounded continuous functions from `α` to `𝕜`. -/
10171018

10181019
end normed_algebra
10191020

1021+
section normed_lattice_ordered_group
1022+
1023+
variables [topological_space α] [normed_lattice_add_comm_group β]
1024+
1025+
instance : partial_order (α →ᵇ β) := partial_order.lift (λ f, f.to_fun) (by tidy)
1026+
1027+
/--
1028+
Continuous normed lattice group valued functions form a meet-semilattice
1029+
-/
1030+
instance : semilattice_inf (α →ᵇ β) :=
1031+
{ inf := λ f g,
1032+
{ to_fun := λ t, f t ⊓ g t,
1033+
continuous_to_fun := f.continuous.inf g.continuous,
1034+
bounded' := begin
1035+
cases f.bounded' with C₁ hf,
1036+
cases g.bounded' with C₂ hg,
1037+
refine ⟨C₁ + C₂, λ x y, _⟩,
1038+
simp_rw normed_group.dist_eq at hf hg ⊢,
1039+
exact (norm_inf_sub_inf_le_add_norm _ _ _ _).trans (add_le_add (hf _ _) (hg _ _)),
1040+
end },
1041+
inf_le_left := λ f g, continuous_map.le_def.mpr (λ _, inf_le_left),
1042+
inf_le_right := λ f g, continuous_map.le_def.mpr (λ _, inf_le_right),
1043+
le_inf := λ f g₁ g₂ w₁ w₂, continuous_map.le_def.mpr (λ _, le_inf (continuous_map.le_def.mp w₁ _)
1044+
(continuous_map.le_def.mp w₂ _)),
1045+
..bounded_continuous_function.partial_order }
1046+
1047+
instance : semilattice_sup (α →ᵇ β) :=
1048+
{ sup := λ f g,
1049+
{ to_fun := λ t, f t ⊔ g t,
1050+
continuous_to_fun := f.continuous.sup g.continuous,
1051+
bounded' := begin
1052+
cases f.bounded' with C₁ hf,
1053+
cases g.bounded' with C₂ hg,
1054+
refine ⟨C₁ + C₂, λ x y, _⟩,
1055+
simp_rw normed_group.dist_eq at hf hg ⊢,
1056+
exact (norm_sup_sub_sup_le_add_norm _ _ _ _).trans (add_le_add (hf _ _) (hg _ _)),
1057+
end },
1058+
le_sup_left := λ f g, continuous_map.le_def.mpr (λ _, le_sup_left),
1059+
le_sup_right := λ f g, continuous_map.le_def.mpr (λ _, le_sup_right),
1060+
sup_le := λ f g₁ g₂ w₁ w₂, continuous_map.le_def.mpr (λ _, sup_le (continuous_map.le_def.mp w₁ _)
1061+
(continuous_map.le_def.mp w₂ _)),
1062+
..bounded_continuous_function.partial_order }
1063+
1064+
instance : lattice (α →ᵇ β) :=
1065+
{ .. bounded_continuous_function.semilattice_sup, .. bounded_continuous_function.semilattice_inf }
1066+
1067+
@[simp] lemma coe_fn_sup (f g : α →ᵇ β) : ⇑(f ⊔ g) = f ⊔ g := rfl
1068+
1069+
@[simp] lemma coe_fn_abs (f : α →ᵇ β) : ⇑|f| = |f| := rfl
1070+
1071+
instance : normed_lattice_add_comm_group (α →ᵇ β) :=
1072+
{ add_le_add_left := begin
1073+
intros f g h₁ h t,
1074+
simp only [coe_to_continuous_fun, pi.add_apply, add_le_add_iff_left, coe_add,
1075+
continuous_map.to_fun_eq_coe],
1076+
exact h₁ _,
1077+
end,
1078+
solid :=
1079+
begin
1080+
intros f g h,
1081+
have i1: ∀ t, ∥f t∥ ≤ ∥g t∥ := λ t, solid (h t),
1082+
rw norm_le (norm_nonneg _),
1083+
exact λ t, (i1 t).trans (norm_coe_le_norm g t),
1084+
end,
1085+
..bounded_continuous_function.lattice, }
1086+
1087+
end normed_lattice_ordered_group
1088+
10201089
end bounded_continuous_function

0 commit comments

Comments
 (0)