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

Commit 09c66fa

Browse files
pbazinkbuzzardPatrickMassoteric-wieser
committed
feat(counterexamples/seminorm_lattice_not_distrib): The lattice of seminorms is not distributive. (#12099)
A counterexample showing the lattice of seminorms is not distributive Co-authored-by: Kevin Buzzard <k.buzzard@imperial.ac.uk> Co-authored-by: pbazin <75327486+pbazin@users.noreply.github.com> Co-authored-by: Patrick Massot <patrickmassot@free.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
1 parent 82a142d commit 09c66fa

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
/-
2+
Copyright (c) 2022 Pierre-Alexandre Bazin. All rights reserved.
3+
Released under Apache 2.0 license as described in the file LICENSE.
4+
Authors: Pierre-Alexandre Bazin
5+
-/
6+
import analysis.seminorm
7+
/-!
8+
# The lattice of seminorms is not distributive
9+
10+
We provide an example of three seminorms over the ℝ-vector space ℝ×ℝ which don't satisfy the lattice
11+
distributivity property `(p ⊔ q1) ⊓ (p ⊔ q2) ≤ p ⊔ (q1 ⊓ q2)`.
12+
13+
This proves the lattice `seminorm ℝ (ℝ × ℝ)` is not distributive.
14+
15+
## References
16+
17+
* https://en.wikipedia.org/wiki/Seminorm#Examples
18+
-/
19+
20+
namespace seminorm_not_distrib
21+
open_locale nnreal
22+
23+
private lemma bdd_below_range_add {𝕜 E : Type*} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E]
24+
(x : E) (p q : seminorm 𝕜 E) :
25+
bdd_below (set.range (λ (u : E), p u + q (x - u))) :=
26+
by { use 0, rintro _ ⟨x, rfl⟩, exact add_nonneg (p.nonneg _) (q.nonneg _) }
27+
28+
@[simps] noncomputable def p : seminorm ℝ (ℝ×ℝ) :=
29+
(norm_seminorm ℝ ℝ).comp (linear_map.fst _ _ _) ⊔ (norm_seminorm ℝ ℝ).comp (linear_map.snd _ _ _)
30+
31+
@[simps] noncomputable def q1 : seminorm ℝ (ℝ×ℝ) :=
32+
(4 : ℝ≥0) • (norm_seminorm ℝ ℝ).comp (linear_map.fst _ _ _)
33+
34+
@[simps] noncomputable def q2 : seminorm ℝ (ℝ×ℝ) :=
35+
(4 : ℝ≥0) • (norm_seminorm ℝ ℝ).comp (linear_map.snd _ _ _)
36+
37+
lemma eq_one : (p ⊔ (q1 ⊓ q2)) (1, 1) = 1 :=
38+
begin
39+
dsimp [-seminorm.inf_apply],
40+
rw [sup_idem, norm_one, sup_eq_left],
41+
apply cinfi_le_of_le (bdd_below_range_add _ _ _) ((0, 1) : ℝ×ℝ), dsimp,
42+
simp only [norm_zero, smul_zero, sub_self, add_zero, zero_le_one]
43+
end
44+
45+
/-- This is a counterexample to the distributivity of the lattice `seminorm ℝ (ℝ × ℝ)`. -/
46+
lemma not_distrib : ¬((p ⊔ q1) ⊓ (p ⊔ q2) ≤ p ⊔ (q1 ⊓ q2)) :=
47+
begin
48+
intro le_sup_inf,
49+
have c : ¬(4/3 ≤ (1:ℝ)) := by norm_num,
50+
apply c, nth_rewrite 2 ← eq_one,
51+
apply le_trans _ (le_sup_inf _),
52+
apply le_cinfi, intro x,
53+
cases le_or_lt x.fst (1/3) with h1 h1,
54+
{ cases le_or_lt x.snd (2/3) with h2 h2,
55+
{ calc 4/3 = 4 * (1 - 2/3) : by norm_num
56+
... ≤ 4 * (1 - x.snd) : (mul_le_mul_left zero_lt_four).mpr (sub_le_sub_left h2 _)
57+
... ≤ 4 * |1 - x.snd| : (mul_le_mul_left zero_lt_four).mpr (le_abs_self _)
58+
... = q2 ((1, 1) - x) : rfl
59+
... ≤ (p ⊔ q2) ((1, 1) - x) : le_sup_right
60+
... ≤ (p ⊔ q1) x + (p ⊔ q2) ((1, 1) - x) : le_add_of_nonneg_left ((p ⊔ q1).nonneg _) },
61+
{ calc 4/3 = 2/3 + (1 - 1/3) : by norm_num
62+
... ≤ x.snd + (1 - x.fst) : add_le_add (le_of_lt h2) (sub_le_sub_left h1 _)
63+
... ≤ |x.snd| + |1 - x.fst| : add_le_add (le_abs_self _) (le_abs_self _)
64+
... ≤ p x + p ((1, 1) - x) : add_le_add le_sup_right le_sup_left
65+
... ≤ (p ⊔ q1) x + (p ⊔ q2) ((1, 1) - x) : add_le_add le_sup_left le_sup_left } },
66+
{ calc 4/3 = 4 * (1/3) : by norm_num
67+
... ≤ 4 * x.fst : (mul_le_mul_left zero_lt_four).mpr (le_of_lt h1)
68+
... ≤ 4 * |x.fst| : (mul_le_mul_left zero_lt_four).mpr (le_abs_self _)
69+
... = q1 x : rfl
70+
... ≤ (p ⊔ q1) x : le_sup_right
71+
... ≤ (p ⊔ q1) x + (p ⊔ q2) ((1, 1) - x) : le_add_of_nonneg_right ((p ⊔ q2).nonneg _) }
72+
end
73+
74+
end seminorm_not_distrib

0 commit comments

Comments
 (0)