Zulip Chat Archive
Stream: Is there code for X?
Topic: Continuity of continuous map gluing
Vincent Beffara (Sep 23 2024 at 13:18):
I am defining the concatenation of continuous maps on intervals, like this:
import Mathlib
open Set Topology Metric unitInterval Filter ContinuousMap
namespace ContinuousMap
variable
{α : Type*} [LinearOrder α] [TopologicalSpace α] [OrderTopology α] {a b c : α}
{E : Type*} [TopologicalSpace E]
def firstval (hab : a ≤ b) (f : C(Icc a b, E)) : E := f ⟨a, left_mem_Icc.2 hab⟩
def lastval (hab : a ≤ b) (f : C(Icc a b, E)) : E := f ⟨b, right_mem_Icc.2 hab⟩
noncomputable def concat (h : b ∈ Icc a c) (f : C(Icc a b, E)) (g : C(Icc b c, E)) :
C(Icc a c, E) := by
by_cases hb : f.lastval h.1 = g.firstval h.2
· let h (t : α) : E := if t ≤ b then IccExtend h.1 f t else IccExtend h.2 g t
suffices Continuous h from ⟨fun t => h t, by fun_prop⟩
apply Continuous.if_le (by fun_prop) (by fun_prop) continuous_id continuous_const
rintro x rfl ; simpa
· exact .const _ (f ⟨a, left_mem_Icc.mpr h.1⟩) -- junk value
variable {f : C(Icc a b, E)} {g : C(Icc b c, E)}
variable {ι : Type} {p : Filter ι} {F : ι → C(Icc a b, E)} {G : ι → C(Icc b c, E)}
theorem cts (h : b ∈ Icc a c) (hfg : ∀ᶠ i in p, (F i).lastval h.1 = (G i).firstval h.2)
(hf : Tendsto F p (𝓝 f)) (hg : Tendsto G p (𝓝 g)) :
Tendsto (fun i => concat h (F i) (G i)) p (𝓝 (concat h f g)) := by
sorry
end ContinuousMap
and I would like to show the continuity of the operation (cts
above). Is there something like this in Mathlib already? All I found is docs#Path.continuous_trans which does something like it but without the compatibility condition which is ensured by the types...
Anatole Dedecker (Sep 30 2024 at 19:57):
This doesn’t sound like it would exist to me, but I think you could mimic the proof you linked to ? That is, uncurry the problem and then interpret it as continuity on some subtype of a product ? But it’s definitely a bit annoying
Antoine Chambert-Loir (Oct 01 2024 at 15:08):
If I understand your request correctly, this is mathematically a bit annoying too, because it uses the fact that intervals are locally compact (compactly generated would suffice).
Antoine Chambert-Loir (Oct 01 2024 at 15:09):
(Note that people will probably need it later for homotopies, and possibly higher stuff.)
Vincent Beffara (Oct 01 2024 at 16:51):
In the end the least annoying to use (in homotopies and such, as far as I was able to find out) is
variable
{α : Type*} [LinearOrder α] [TopologicalSpace α] [OrderTopology α] {a b c : α}
{E : Type*} [TopologicalSpace E] {e e₀ : E}
noncomputable def concatCM (h : b ∈ Icc a c) :
C({f : C(Icc a b, E) × C(Icc b c, E) // lastval h.1 f.1 = firstval h.2 f.2}, C(Icc a c, E)) := by
(with a pedestrian proof through IccExtend
and unfolding the compact-open topology).
Vincent Beffara (Oct 10 2024 at 15:12):
Vincent Beffara (Oct 10 2024 at 15:17):
(Rereading the proof that I have, I do use local compactness. I'm not sure how necessary it is.) That was pure laziness, no local compactness is needed.
Last updated: May 02 2025 at 03:31 UTC