Zulip Chat Archive
Stream: maths
Topic: upper hemicontinuity vs. upper semicontinuity
Jireh Loreaux (Aug 14 2024 at 17:04):
There is a standard fact in the theory of complex Banach algebras: the spectrum is upper hemicontinuous (although sometimes in the literature on this subject it is also called upper semicontinuous). I just assumed that it should be possible to unify this with our current definition of docs#UpperSemicontinuous, which would give us access to all that API, but as it stands it is not quite so easy.
Jireh Loreaux (Aug 14 2024 at 17:04):
For reference:
def UpperSemicontinuousAt {α : Type*} [TopologicalSpace α]
{β : Type*} [Preorder β] (f : α → β) (x : α) : Prop :=
∀ (y : β), f x < y → ∀ᶠ (x' : α) in nhds x, f x' < y
Jireh Loreaux (Aug 14 2024 at 17:04):
The definition of f : α → Set γ
being upper hemicontinuous at a : α
is that for every open set u
with f a ⊆ u
, there is a neighborhood v ∈ 𝓝 a
such that for every x ∈ v
, f x ⊆ u
. Or, in the language of filters (this definition does not currently exist in Mathlib):
UpperHemicontinuousAt (f : α → Set γ) (a : α) := ∀ u : Set γ, u ∈ nhdsSet (f a) → ∀ᶠ (x : α) in 𝓝 a, u ∈ nhdsSet (f x)
Jireh Loreaux (Aug 14 2024 at 17:04):
And now you can see the similarity with the definition of upper semicontinuity (by choosing β := Set γ
and (s < t) := (t ∈ nhdsSet s)
). However, there are two problems with this.
t ∈ nhdsSet s
is definitely not theLT
instance onSet γ
t ∈ nhdsSet s
doesn't correspond to the<
for somePreorder
onSet γ
as it's not irreflexive (sinceu ∈ nhdsSet u
ifu
is open).
Jireh Loreaux (Aug 14 2024 at 17:04):
There is one way to deal with the fact that it doesn't correspond to a Preorder
: bundle spectrum ℂ
into a function from the complex Banach algebra A
to docs#TopologicalSpace.NonemptyCompacts (here you need to assume [Nontrivial A]
which is annoying), and then for t s : NonemptyCompacts ℂ
, the relation (t : Set ℂ) ∈ nhdsSet (s : Set ℂ)
is irreflexive, and so corresponds to the <
of a Preorder
. However, NonemptyCompacts
already has an ordering, and it's just the pullback from the coercion to Set ℂ
. So, (a) this only partially solves the problem, and (b) it still doesn't allow us to talk about hemicontinuity as semicontinuity more generally.
Jireh Loreaux (Aug 14 2024 at 17:05):
Therefore, I wonder if we might replace the definition of UpperSemicontinuousAt
(and friends) with:
def UpperSemicontinuousAt {α : Type*} [TopologicalSpace α]
{β : Type*} (r : β → β → Prop) [hr : IsTrans r] (f : α → β) (x : α) : Prop :=
∀ (y : β), r (f x) y → ∀ᶠ (x' : α) in nhds x, r (f x') y
I'm interested to hear comments on this. Another possibility would be to define UpperSemicontinuousAtWith
as this more general version, and then let UpperSemicontinuousAt
be an abbrev
for this with r
instantiated as <
and assuming a Preorder β
.
Jireh Loreaux (Aug 14 2024 at 17:08):
Of course, I could just define UpperHemicontinuousAt
, but duplicating API makes me :mad: and :cry:
Mario Carneiro (Aug 14 2024 at 17:10):
is it even "upper" anymore at that point? Presumably lower semicontinuous just uses > instead of <
Mario Carneiro (Aug 14 2024 at 17:11):
I was also thinking you could merge r
and f
into one relational argument r' x y = r (f x) y
, since they don't appear separately
Jireh Loreaux (Aug 14 2024 at 17:11):
fair point, we should remove the Upper
in the name in that case.
Jireh Loreaux (Aug 14 2024 at 17:13):
I think you don't want to merge r
and f
, because I think you still want to know that r
itself is transitive, otherwise I suspect it will be relatively useless.
Mario Carneiro (Aug 14 2024 at 17:14):
is knowing r is transitive but f is not monotone good for anything?
Mario Carneiro (Aug 14 2024 at 17:15):
it might be worth doing some reverse math on theorems using this assumption
Jireh Loreaux (Aug 14 2024 at 17:15):
I mean, f := spectrum ℂ
is certainly not monotone in any sense, so the answer to your question is definitely "yes"
Jireh Loreaux (Aug 14 2024 at 17:16):
Many Banach algebra don't even have an ordering, and the ones that do (e.g., C⋆-algebras) don't make spectrum ℂ
monotone.
Mario Carneiro (Aug 14 2024 at 17:33):
in that case, it seems the useful application of transitivity in this context is r (f x) y -> r y z -> r (f x) z
, and the equivalent of that for r'
is r' x y -> r' x z
(or \forall x, r' x y -> r' x z
) viewed as an inequality relation between y and z
Mario Carneiro (Aug 14 2024 at 17:34):
(which is, incidentally, transitive for any r'
)
Jireh Loreaux (Aug 14 2024 at 17:40):
Well, here's the other half of this: if I'm going to make this generalization, I want to make it as seamless as possible for the existing use case, which is Preorder β
. Writing SemicontinuousAtWith (· < ·) f
, while a bit annoying, wouldn't be nearly as bad as SemicontinuousAtWith (· < ·) (stupid term proving ∀ x, r' x y → r' x z) f
. I guess if it's an abbrev
, then maybe it's okay, but it's not my favorite thing unless we have yet another use case.
Mario Carneiro (Aug 14 2024 at 17:51):
I don't think the stupid term needs to be part of the definition, it would just be SemicontinuousAtWith (f · < ·)
Jireh Loreaux (Aug 14 2024 at 17:51):
aha, I see.
Mario Carneiro (Aug 14 2024 at 17:52):
you would use the term when applying a theorem that actually uses transitivity in some way
Antoine Chambert-Loir (Aug 15 2024 at 10:14):
@Anatole Dedecker and I had a discussion about this because we need a lot of semicontinuity for our proof of the von Neumann minimax theorem (Sion's theorem, actually), all of which I can remember is that mathlib's definition of semicontinuity is not the good one (only valid for real numbers) and that a naive extension (for nonlinear orders) is ridiculously uninteresting.
Antoine Chambert-Loir (Aug 15 2024 at 10:15):
Still, the thread is there: https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Semicontinuity.20definition.20for.20non-linear.20orders/near/432898278
Last updated: May 02 2025 at 03:31 UTC