Skip to content

Commit 54b6719

Browse files
committed
checkpoint
1 parent 9f89de4 commit 54b6719

2 files changed

Lines changed: 32 additions & 6 deletions

File tree

Mathlib/Geometry/Manifold/Instances/Icc.lean

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,15 @@ the interval in `ℝ` (see `contMDiffOn_comp_projIcc_iff` and friends).
1919
2020
We also define `1 : TangentSpace (𝓡∂ 1) z`, and relate it to `1` in the real line.
2121
22-
## TODO
23-
24-
This file can be thoroughly rewritten once mathlib has a good theory of smooth immersions and
25-
embeddings. Once this is done,
2622
- the inclusion `Icc x y → ℝ` is a smooth embedding, and in particular smooth
2723
- deduce the dual result: a function `f : M → Icc x y` is smooth iff
2824
its composition with the inclusion into `ℝ` is smooth
25+
26+
## TODO
27+
28+
This file can be thoroughly rewritten once mathlib has a good theory of smooth embeddings and
29+
submersions. Once this is done,
30+
- the inclusion `Icc x y → ℝ` is a smooth embedding
2931
- prove the projection `ℝ → Icc x y` is a smooth submersion, hence smooth
3032
- use this to simplify the proof that `f : Icc x y → M` is smooth iff the composition `ℝ → M`
3133
with the projection `ℝ → Icc x y` is
@@ -82,9 +84,9 @@ lemma bar_apply (z : EuclideanSpace ℝ (Fin 1)) : bar z = z 0 := rfl
8284

8385
-- TODO: the proof works, except that some details with the chosen computation are not right
8486
/-- The inclusion map from a closed segment to `ℝ` is a smooth immersion -/
85-
lemma isImmersion_subtype_coe_Icc [h : Fact (x < y)] :
87+
lemma isImmersion_subtype_coe_Icc :
8688
letI F := (EuclideanSpace ℝ (Fin 0));
87-
IsImmersion F (𝓡∂ 1) 𝓘(ℝ) (fun (z : Icc x y) ↦ (z : ℝ)) := by
89+
IsImmersion F (𝓡∂ 1) 𝓘(ℝ) n (fun (z : Icc x y) ↦ (z : ℝ)) := by
8890
intro z
8991
letI φ₀ := ContinuousLinearEquiv.prodUnique ℝ (EuclideanSpace ℝ (Fin 1)) (EuclideanSpace ℝ (Fin 0))
9092
have : (Module.finrank ℝ ℝ) = 1 := Module.finrank_self ℝ
@@ -171,6 +173,18 @@ lemma contMDiffOn_projIcc :
171173
rw [max_eq_right, min_eq_right hw.2]
172174
simp [hw.1, h.out.le]
173175

176+
/-- A function `f : M → Icc x y` is smooth iff its composition with the inclusion
177+
into `ℝ` is smooth. -/
178+
lemma contMDiff_iff_comp_subtype_coe_Icc {f : M → Icc x y} [IsManifold I n M] :
179+
ContMDiff I (𝓡∂ 1) n f ↔ ContMDiff I 𝓘(ℝ) ⊤ ((fun (z : Icc x y) ↦ (z : ℝ)) ∘ f) := by
180+
have := isImmersion_subtype_coe_Icc (x := x) (y := y) (n := n)
181+
set φ := (fun (z : Icc x y) ↦ (z : ℝ))
182+
have hf : Continuous f := sorry
183+
--have aux := ContMDiff.iff_comp_isImmersion this hf (I := I) (n := n) (J := (𝓡∂ 1))
184+
-- TODO: continue here and get this working!
185+
--rw [ContMDiff.iff_comp_isImmersion this hf (n := n) (φ := φ)]
186+
sorry
187+
174188
lemma contMDiffOn_comp_projIcc_iff {f : Icc x y → M} :
175189
ContMDiffOn 𝓘(ℝ) I n (f ∘ (Set.projIcc x y h.out.le)) (Icc x y) ↔ ContMDiff (𝓡∂ 1) I n f := by
176190
refine ⟨fun hf ↦ ?_, fun hf ↦ hf.comp_contMDiffOn contMDiffOn_projIcc⟩

Mathlib/Geometry/Manifold/IsImmersionEmbedding.lean

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -664,4 +664,16 @@ variable [IsManifold I n M] [IsManifold I' n M']
664664
/-- A `C^k` immersion is `C^k`. -/
665665
theorem contMDiff (h : IsImmersion F I I' n f) : ContMDiff I I' n f := fun x ↦ (h x).contMDiffAt
666666

667+
lemma _root_.ContMDiff.iff_comp_isImmersion [IsManifold J n N] [IsManifold J' n N']
668+
{f : M → N} {φ : N → N'} (h : IsImmersion F J J' n φ)
669+
(hf : Continuous f) : -- TODO: is this hypothesis needed?
670+
ContMDiff I J n f ↔ ContMDiff I J' n (φ ∘ f) := by
671+
constructor
672+
· intro hf' x
673+
rw [← ContMDiffAt.iff_comp_isImmersionAt (h (f x)) hf.continuousAt]
674+
exact hf' x
675+
· intro hcomp x
676+
rw [ContMDiffAt.iff_comp_isImmersionAt (h (f x)) hf.continuousAt (I := I)]
677+
apply hcomp x
678+
667679
end IsImmersion

0 commit comments

Comments
 (0)