Theorem: extChartAt_mderiv_ne_zero' (Ray/AnalyticManifold/OneDimension.lean)

State before:
S : Type
inst✝⁵ : TopologicalSpace S
cs : ChartedSpace ℂ S
inst✝⁴ : AnalyticManifold I S
T : Type
inst✝³ : TopologicalSpace T
ct : ChartedSpace ℂ T
inst✝² : AnalyticManifold I T
U : Type
inst✝¹ : TopologicalSpace U
cu : ChartedSpace ℂ U
inst✝ : AnalyticManifold I U
z w : S
m : w ∈ (extChartAt I z).source
⊢ mfderiv I I (↑(extChartAt I z)) w ≠ 0
Tactic:
rcases exists_ne (0 : TangentSpace I z) with ⟨t, t0⟩
State after:
case intro
S : Type
inst✝⁵ : TopologicalSpace S
cs : ChartedSpace ℂ S
inst✝⁴ : AnalyticManifold I S
T : Type
inst✝³ : TopologicalSpace T
ct : ChartedSpace ℂ T
inst✝² : AnalyticManifold I T
U : Type
inst✝¹ : TopologicalSpace U
cu : ChartedSpace ℂ U
inst✝ : AnalyticManifold I U
z w : S
m : w ∈ (extChartAt I z).source
t : TangentSpace I z
t0 : t ≠ 0
⊢ mfderiv I I (↑(extChartAt I z)) w ≠ 0

State before:
case intro
S : Type
inst✝⁵ : TopologicalSpace S
cs : ChartedSpace ℂ S
inst✝⁴ : AnalyticManifold I S
T : Type
inst✝³ : TopologicalSpace T
ct : ChartedSpace ℂ T
inst✝² : AnalyticManifold I T
U : Type
inst✝¹ : TopologicalSpace U
cu : ChartedSpace ℂ U
inst✝ : AnalyticManifold I U
z w : S
m : w ∈ (extChartAt I z).source
t : TangentSpace I z
t0 : t ≠ 0
⊢ mfderiv I I (↑(extChartAt I z)) w ≠ 0
Tactic:
rw [← mderiv_ne_zero_iff' t0]
State after:
case intro
S : Type
inst✝⁵ : TopologicalSpace S
cs : ChartedSpace ℂ S
inst✝⁴ : AnalyticManifold I S
T : Type
inst✝³ : TopologicalSpace T
ct : ChartedSpace ℂ T
inst✝² : AnalyticManifold I T
U : Type
inst✝¹ : TopologicalSpace U
cu : ChartedSpace ℂ U
inst✝ : AnalyticManifold I U
z w : S
m : w ∈ (extChartAt I z).source
t : TangentSpace I z
t0 : t ≠ 0
⊢ (mfderiv I I (↑(extChartAt I z)) w) t ≠ 0

State before:
case intro
S : Type
inst✝⁵ : TopologicalSpace S
cs : ChartedSpace ℂ S
inst✝⁴ : AnalyticManifold I S
T : Type
inst✝³ : TopologicalSpace T
ct : ChartedSpace ℂ T
inst✝² : AnalyticManifold I T
U : Type
inst✝¹ : TopologicalSpace U
cu : ChartedSpace ℂ U
inst✝ : AnalyticManifold I U
z w : S
m : w ∈ (extChartAt I z).source
t : TangentSpace I z
t0 : t ≠ 0
⊢ (mfderiv I I (↑(extChartAt I z)) w) t ≠ 0
Tactic:
contrapose t0
State after:
case intro
S : Type
inst✝⁵ : TopologicalSpace S
cs : ChartedSpace ℂ S
inst✝⁴ : AnalyticManifold I S
T : Type
inst✝³ : TopologicalSpace T
ct : ChartedSpace ℂ T
inst✝² : AnalyticManifold I T
U : Type
inst✝¹ : TopologicalSpace U
cu : ChartedSpace ℂ U
inst✝ : AnalyticManifold I U
z w : S
m : w ∈ (extChartAt I z).source
t : TangentSpace I z
t0 : ¬(mfderiv I I (↑(extChartAt I z)) w) t ≠ 0
⊢ ¬t ≠ 0

State before:
case intro
S : Type
inst✝⁵ : TopologicalSpace S
cs : ChartedSpace ℂ S
inst✝⁴ : AnalyticManifold I S
T : Type
inst✝³ : TopologicalSpace T
ct : ChartedSpace ℂ T
inst✝² : AnalyticManifold I T
U : Type
inst✝¹ : TopologicalSpace U
cu : ChartedSpace ℂ U
inst✝ : AnalyticManifold I U
z w : S
m : w ∈ (extChartAt I z).source
t : TangentSpace I z
t0 : ¬(mfderiv I I (↑(extChartAt I z)) w) t ≠ 0
⊢ ¬t ≠ 0
Tactic:
simp only [not_not] at t0 ⊢
State after:
case intro
S : Type
inst✝⁵ : TopologicalSpace S
cs : ChartedSpace ℂ S
inst✝⁴ : AnalyticManifold I S
T : Type
inst✝³ : TopologicalSpace T
ct : ChartedSpace ℂ T
inst✝² : AnalyticManifold I T
U : Type
inst✝¹ : TopologicalSpace U
cu : ChartedSpace ℂ U
inst✝ : AnalyticManifold I U
z w : S
m : w ∈ (extChartAt I z).source
t : TangentSpace I z
t0 : (mfderiv I I (↑(extChartAt I z)) w) t = 0
⊢ t = 0

State before:
case intro
S : Type
inst✝⁵ : TopologicalSpace S
cs : ChartedSpace ℂ S
inst✝⁴ : AnalyticManifold I S
T : Type
inst✝³ : TopologicalSpace T
ct : ChartedSpace ℂ T
inst✝² : AnalyticManifold I T
U : Type
inst✝¹ : TopologicalSpace U
cu : ChartedSpace ℂ U
inst✝ : AnalyticManifold I U
z w : S
m : w ∈ (extChartAt I z).source
t : TangentSpace I z
t0 : (mfderiv I I (↑(extChartAt I z)) w) t = 0
⊢ t = 0
Tactic:
have h := ContinuousLinearMap.ext_iff.mp (extChartAt_mderiv_left_inverse m) t
State after:
case intro
S : Type
inst✝⁵ : TopologicalSpace S
cs : ChartedSpace ℂ S
inst✝⁴ : AnalyticManifold I S
T : Type
inst✝³ : TopologicalSpace T
ct : ChartedSpace ℂ T
inst✝² : AnalyticManifold I T
U : Type
inst✝¹ : TopologicalSpace U
cu : ChartedSpace ℂ U
inst✝ : AnalyticManifold I U
z w : S
m : w ∈ (extChartAt I z).source
t : TangentSpace I z
t0 : (mfderiv I I (↑(extChartAt I z)) w) t = 0
h :
  ((mfderiv I I (↑(extChartAt I z).symm) (↑(extChartAt I z) w)).comp (mfderiv I I (↑(extChartAt I z)) w)) t =
    (ContinuousLinearMap.id ℂ (TangentSpace I w)) t
⊢ t = 0

State before:
case intro
S : Type
inst✝⁵ : TopologicalSpace S
cs : ChartedSpace ℂ S
inst✝⁴ : AnalyticManifold I S
T : Type
inst✝³ : TopologicalSpace T
ct : ChartedSpace ℂ T
inst✝² : AnalyticManifold I T
U : Type
inst✝¹ : TopologicalSpace U
cu : ChartedSpace ℂ U
inst✝ : AnalyticManifold I U
z w : S
m : w ∈ (extChartAt I z).source
t : TangentSpace I z
t0 : (mfderiv I I (↑(extChartAt I z)) w) t = 0
h :
  ((mfderiv I I (↑(extChartAt I z).symm) (↑(extChartAt I z) w)).comp (mfderiv I I (↑(extChartAt I z)) w)) t =
    (ContinuousLinearMap.id ℂ (TangentSpace I w)) t
⊢ t = 0
Tactic:
simp only [ContinuousLinearMap.comp_apply, ContinuousLinearMap.map_zero] at h
State after:
case intro
S : Type
inst✝⁵ : TopologicalSpace S
cs : ChartedSpace ℂ S
inst✝⁴ : AnalyticManifold I S
T : Type
inst✝³ : TopologicalSpace T
ct : ChartedSpace ℂ T
inst✝² : AnalyticManifold I T
U : Type
inst✝¹ : TopologicalSpace U
cu : ChartedSpace ℂ U
inst✝ : AnalyticManifold I U
z w : S
m : w ∈ (extChartAt I z).source
t : TangentSpace I z
t0 : (mfderiv I I (↑(extChartAt I z)) w) t = 0
h :
  (mfderiv I I (↑(extChartAt I z).symm) (↑(extChartAt I z) w)) ((mfderiv I I (↑(extChartAt I z)) w) t) =
    (ContinuousLinearMap.id ℂ (TangentSpace I w)) t
⊢ t = 0

State before:
case intro
S : Type
inst✝⁵ : TopologicalSpace S
cs : ChartedSpace ℂ S
inst✝⁴ : AnalyticManifold I S
T : Type
inst✝³ : TopologicalSpace T
ct : ChartedSpace ℂ T
inst✝² : AnalyticManifold I T
U : Type
inst✝¹ : TopologicalSpace U
cu : ChartedSpace ℂ U
inst✝ : AnalyticManifold I U
z w : S
m : w ∈ (extChartAt I z).source
t : TangentSpace I z
t0 : (mfderiv I I (↑(extChartAt I z)) w) t = 0
h :
  (mfderiv I I (↑(extChartAt I z).symm) (↑(extChartAt I z) w)) ((mfderiv I I (↑(extChartAt I z)) w) t) =
    (ContinuousLinearMap.id ℂ (TangentSpace I w)) t
⊢ t = 0
Tactic:
rw [←h.trans (ContinuousLinearMap.id_apply _), ContinuousLinearMap.apply_eq_zero_of_eq_zero]
State after:
case intro.h
S : Type
inst✝⁵ : TopologicalSpace S
cs : ChartedSpace ℂ S
inst✝⁴ : AnalyticManifold I S
T : Type
inst✝³ : TopologicalSpace T
ct : ChartedSpace ℂ T
inst✝² : AnalyticManifold I T
U : Type
inst✝¹ : TopologicalSpace U
cu : ChartedSpace ℂ U
inst✝ : AnalyticManifold I U
z w : S
m : w ∈ (extChartAt I z).source
t : TangentSpace I z
t0 : (mfderiv I I (↑(extChartAt I z)) w) t = 0
h :
  (mfderiv I I (↑(extChartAt I z).symm) (↑(extChartAt I z) w)) ((mfderiv I I (↑(extChartAt I z)) w) t) =
    (ContinuousLinearMap.id ℂ (TangentSpace I w)) t
⊢ (mfderiv I I (↑(extChartAt I z)) w) t = 0

State before:
case intro.h
S : Type
inst✝⁵ : TopologicalSpace S
cs : ChartedSpace ℂ S
inst✝⁴ : AnalyticManifold I S
T : Type
inst✝³ : TopologicalSpace T
ct : ChartedSpace ℂ T
inst✝² : AnalyticManifold I T
U : Type
inst✝¹ : TopologicalSpace U
cu : ChartedSpace ℂ U
inst✝ : AnalyticManifold I U
z w : S
m : w ∈ (extChartAt I z).source
t : TangentSpace I z
t0 : (mfderiv I I (↑(extChartAt I z)) w) t = 0
h :
  (mfderiv I I (↑(extChartAt I z).symm) (↑(extChartAt I z) w)) ((mfderiv I I (↑(extChartAt I z)) w) t) =
    (ContinuousLinearMap.id ℂ (TangentSpace I w)) t
⊢ (mfderiv I I (↑(extChartAt I z)) w) t = 0
Tactic:
exact t0
State after:
no goals