Skip to content

Commit a45d294

Browse files
add my changes
1 parent 8289cf3 commit a45d294

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed

Coverings/daniel cleaned.lean

+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
import Mathlib.Topology.Basic
2+
import Mathlib.Topology.ContinuousOn
3+
import Mathlib.Topology.Covering
4+
import Mathlib.Topology.LocalHomeomorph
5+
import Mathlib.Topology.UnitInterval
6+
import Coverings.lean3
7+
8+
open Topology Filter unitInterval Bundle Function Set
9+
namespace IsCoveringMap
10+
11+
/-
12+
Notation:
13+
`E` : the covering space of `X`
14+
`F` : the lift of the map `f`
15+
`F₀` : the start of `F`, i.e. `F₀ = F(y, 0)`
16+
17+
`U : ι → Set α` : collection of (open) sets of α
18+
`s ⊆ ⋃ i, U i` : a (possibly infinite) open cover
19+
`∃ t : Finset ι, s ⊆ ⋃ i ∈ t, U i` : existence of finite subcover
20+
21+
`Continuous f` : `f` is globally continuous
22+
`ContinuousAt f a` : `f` is continuous at the point a
23+
24+
`IsCompact (s : Set α)` : the set s is compact in topological space `α`
25+
26+
`Trivialization F proj` : local trivialization of `proj : E → B` with fiber `F`
27+
`IsEvenlyCovered x ι` : `DiscreteTopology ι ∧ ∃ t : Trivialization ι p, x ∈ t.baseSet`
28+
: fiber over x has discrete topology & has a local trivialization
29+
`IsCoveringMap (f : E → X)` : `∀ x, IsEvenlyCovered (f x) (f ⁻¹' {x})`
30+
31+
`∀ᶠ y ∈ 𝓝 x, P y` : exists a nbhd `U` of `x` such that `y ∈ U → P y`
32+
33+
Theorems:
34+
`toTrivialization` : gets local trivialization above a point from a covering map
35+
`IsCompact.elim_finite_subcover` : reduces open cover to finite cover
36+
37+
`isCompact_singleton` : set of a single point is compact
38+
`isCompact_prod` : product of compact sets is compact
39+
-/
40+
41+
variable {X E : Type _}
42+
variable [TopologicalSpace X] [TopologicalSpace E]
43+
variable {p : C(E, X)}
44+
variable {Y : Type _} [TopologicalSpace Y]
45+
variable {hp : IsCoveringMap p} (φ : LiftingSetup Y hp)
46+
47+
structure LiftingSetup (Y : Type _) [TopologicalSpace Y] (hp : IsCoveringMap p) where
48+
f : C(Y × I, X)
49+
F₀ : C(Y, E)
50+
f_eq_pF₀ : ∀ y : Y, f (y, 0) = (p ∘ F₀) y
51+
52+
structure TrivializedNbhd (y : Y) (t : I) where
53+
triv : Trivialization (p ⁻¹' {φ.f (y, t)}) p
54+
-- U is a nbhd of (y, t) which maps to triv.baseSet
55+
U : Set (Y × I)
56+
hU : U ∈ 𝓝 (y, t)
57+
58+
lemma nbhd_in_trivialization (y : Y) (t : I) :
59+
∃ triv : Trivialization (p ⁻¹' {φ.f (y, t)}) p, φ.f ⁻¹' triv.baseSet ∈ 𝓝 (y, t) := by
60+
specialize hp <| φ.f (y, t)
61+
let triv : Trivialization (p ⁻¹' {φ.f (y, t)}) p := by
62+
apply IsEvenlyCovered.toTrivialization hp
63+
use triv
64+
rw [mem_nhds_iff]
65+
use φ.f ⁻¹' triv.baseSet
66+
constructor
67+
. rfl
68+
. constructor
69+
. exact IsOpen.preimage φ.f.continuous_toFun triv.open_baseSet
70+
. rw [preimage]
71+
exact IsEvenlyCovered.mem_toTrivialization_baseSet hp
72+
73+
noncomputable def triv_nbhd (y : Y) (t : I) : TrivializedNbhd φ y t where
74+
triv := (nbhd_in_trivialization φ y t).choose
75+
U := φ.f ⁻¹' (nbhd_in_trivialization φ y t).choose.baseSet
76+
hU := (nbhd_in_trivialization φ y t).choose_spec
77+
78+
theorem existence_of_homotopy_lift : ∃ F : C(Y × I, E), p ∘ F = f ∧ (fun y ↦ F (y, 0)) = F₀ := by
79+
sorry

0 commit comments

Comments
 (0)