awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Lean 4 proof step from Mathlib.Geometry.Manifold.VectorField.LieBracket (hypothesis)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
H : Type u_2
inst_1 : TopologicalSpace H
E : Type u_3
inst_2 : NormedAddCommGroup E
inst_3 : NormedSpace 𝕜 E
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst_4 : TopologicalSpace M
inst_5 : ChartedSpace H M
H' : Type u_5
inst_6 : TopologicalSpace H'
E' : Type u_6
inst_7 : NormedAddCommGroup E'
inst_8 : NormedSpace 𝕜 E'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst_9 : TopologicalSpace M'
inst_10 : ChartedSpace H' M'
inst_11 : IsManifold I 2 M
inst_12 : IsManifold I' 2 M'
inst_13 : CompleteSpace E
inst_14 : CompleteSpace E'
f : M → M'
V W : (x : M') → TangentSpace I' x
x₀ : M
s : Set M
t : Set M'
hV : MDiffAt[t] (T% V) (f x₀)
hW : MDiffAt[t] (T% W) (f x₀)
hu : UniqueMDiffOn I s
hf : ContMDiffOn I I' 2 f s
hx₀ : x₀ ∈ s
ht : t ⊆ (extChartAt I' (f x₀)).source
hst : MapsTo f s t
hsymm :
  IsSymmSndFDerivWithinAt 𝕜 ((↑(extChartAt I' (f x₀)) : M' → E') ∘ f ∘ (↑(extChartAt I x₀).symm : E → M))
    ((↑(extChartAt I x₀).symm : E → M) ⁻¹' s ∩ range (↑I : H → E)) ((↑(extChartAt I x₀) : M → E) x₀)
A : (↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀) = x₀
⊢ Eq (α := TangentSpace I x₀) (mpullbackWithin I I' f (mlieBracketWithin I' V W t) s x₀)
    (mlieBracketWithin I (mpullbackWithin I I' f V s) (mpullbackWithin I I' f W s) s x₀)
have A' : x₀ = (↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀)
Tactic: have A' : x₀ = (extChartAt I x₀).symm (extChartAt I x₀ x₀) := by simp
-- Lean 4 proof step from Mathlib.Geometry.Manifold.VectorField.LieBracket (hypothesis)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
H : Type u_2
inst_1 : TopologicalSpace H
E : Type u_3
inst_2 : NormedAddCommGroup E
inst_3 : NormedSpace 𝕜 E
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst_4 : TopologicalSpace M
inst_5 : ChartedSpace H M
H' : Type u_5
inst_6 : TopologicalSpace H'
E' : Type u_6
inst_7 : NormedAddCommGroup E'
inst_8 : NormedSpace 𝕜 E'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst_9 : TopologicalSpace M'
inst_10 : ChartedSpace H' M'
inst_11 : IsManifold I 2 M
inst_12 : IsManifold I' 2 M'
inst_13 : CompleteSpace E
inst_14 : CompleteSpace E'
f : M → M'
V W : (x : M') → TangentSpace I' x
x₀ : M
s : Set M
t : Set M'
hV : MDiffAt[t] (T% V) (f x₀)
hW : MDiffAt[t] (T% W) (f x₀)
hu : UniqueMDiffOn I s
hf : ContMDiffOn I I' 2 f s
hx₀ : x₀ ∈ s
ht : t ⊆ (extChartAt I' (f x₀)).source
hst : MapsTo f s t
hsymm :
  IsSymmSndFDerivWithinAt 𝕜 ((↑(extChartAt I' (f x₀)) : M' → E') ∘ f ∘ (↑(extChartAt I x₀).symm : E → M))
    ((↑(extChartAt I x₀).symm : E → M) ⁻¹' s ∩ range (↑I : H → E)) ((↑(extChartAt I x₀) : M → E) x₀)
A : (↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀) = x₀
A' : x₀ = (↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀)
⊢ Eq (α := TangentSpace I x₀) (mpullbackWithin I I' f (mlieBracketWithin I' V W t) s x₀)
    (mlieBracketWithin I (mpullbackWithin I I' f V s) (mpullbackWithin I I' f W s) s x₀)
have h'f : MDiffAt[s] f x₀
Tactic: have h'f : MDiffAt[s] f x₀ := (hf x₀ hx₀).mdifferentiableWithinAt two_ne_zero
-- Lean 4 proof step from Mathlib.Geometry.Manifold.VectorField.LieBracket (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
H : Type u_2
inst_1 : TopologicalSpace H
E : Type u_3
inst_2 : NormedAddCommGroup E
inst_3 : NormedSpace 𝕜 E
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst_4 : TopologicalSpace M
inst_5 : ChartedSpace H M
H' : Type u_5
inst_6 : TopologicalSpace H'
E' : Type u_6
inst_7 : NormedAddCommGroup E'
inst_8 : NormedSpace 𝕜 E'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst_9 : TopologicalSpace M'
inst_10 : ChartedSpace H' M'
inst_11 : IsManifold I 2 M
inst_12 : IsManifold I' 2 M'
inst_13 : CompleteSpace E
inst_14 : CompleteSpace E'
f : M → M'
V W : (x : M') → TangentSpace I' x
x₀ : M
s : Set M
t : Set M'
hV : MDiffAt[t] (T% V) (f x₀)
hW : MDiffAt[t] (T% W) (f x₀)
hu : UniqueMDiffOn I s
hf : ContMDiffOn I I' 2 f s
hx₀ : x₀ ∈ s
ht : t ⊆ (extChartAt I' (f x₀)).source
hst : MapsTo f s t
hsymm :
  IsSymmSndFDerivWithinAt 𝕜 ((↑(extChartAt I' (f x₀)) : M' → E') ∘ f ∘ (↑(extChartAt I x₀).symm : E → M))
    ((↑(extChartAt I x₀).symm : E → M) ⁻¹' s ∩ range (↑I : H → E)) ((↑(extChartAt I x₀) : M → E) x₀)
A : (↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀) = x₀
A' : x₀ = (↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀)
h'f : MDiffAt[s] f x₀
⊢ Eq (α := TangentSpace I x₀) (mpullbackWithin I I' f (mlieBracketWithin I' V W t) s x₀)
    (mlieBracketWithin I (mpullbackWithin I I' f V s) (mpullbackWithin I I' f W s) s x₀)
have simp : Eq.{u_3 + 1} (α := TangentSpace I x₀)
  (((ContinuousLinearMap.inverse (mfderivWithin I I' f s x₀) :
          ContinuousLinearMap.{u_1, u_1, u_6, u_3} (RingHom.id 𝕜) (TangentSpace I' (f x₀)) (TangentSpace I x₀)) :
        (a : TangentSpace I' (f x₀)) → TangentSpace I x₀)
      ((ContinuousLinearMap.inverse (mfderiv% (↑(extChartAt I' (f x₀)) : M' → E') (f x₀)) :
          (a : TangentSpace 𝓘(𝕜, E') ((↑(extChartAt I' (f x₀)) : M' → E') (f x₀))) → TangentSpace I' (f x₀))
        (lieBracketWithin 𝕜
          (mpullbackWithin 𝓘(𝕜, E') I' (↑(extChartAt I' (f x₀)).symm : E' → M') V (range (↑I' : H' → E')))
          (mpullbackWithin 𝓘(𝕜, E') I' (↑(extChartAt I' (f x₀)).symm : E' → M') W (range (↑I' : H' → E')))
          ((↑(extChartAt I' (f x₀)).symm : E' → M') ⁻¹' t ∩ range (↑I' : H' → E'))
          ((↑(extChartAt I' (f x₀)) : M' → E') (f x₀)))) :
    TangentSpace I x₀)
  ((ContinuousLinearMap.inverse (mfderiv% (↑(extChartAt I x₀) : M → E) x₀) :
        (a : TangentSpace 𝓘(𝕜, E) ((↑(extChartAt I x₀) : M → E) x₀)) → TangentSpace I x₀)
      (lieBracketWithin 𝕜
        (mpullbackWithin 𝓘(𝕜, E) I (↑(extChartAt I x₀).symm : E → M) (mpullbackWithin I I' f V s) (range (↑I : H → E)))
        (mpullbackWithin 𝓘(𝕜, E) I (↑(extChartAt I x₀).symm : E → M) (mpullbackWithin I I' f W s) (range (↑I : H → E)))
        ((↑(extChartAt I x₀).symm : E → M) ⁻¹' s ∩ range (↑I : H → E)) ((↑(extChartAt I x₀) : M → E) x₀)) :
    TangentSpace I x₀)
Tactic: simp only [mlieBracketWithin_apply, mpullbackWithin_apply]
-- Lean 4 proof step from Mathlib.Geometry.Manifold.VectorField.LieBracket (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
H : Type u_2
inst_1 : TopologicalSpace H
E : Type u_3
inst_2 : NormedAddCommGroup E
inst_3 : NormedSpace 𝕜 E
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst_4 : TopologicalSpace M
inst_5 : ChartedSpace H M
H' : Type u_5
inst_6 : TopologicalSpace H'
E' : Type u_6
inst_7 : NormedAddCommGroup E'
inst_8 : NormedSpace 𝕜 E'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst_9 : TopologicalSpace M'
inst_10 : ChartedSpace H' M'
inst_11 : IsManifold I 2 M
inst_12 : IsManifold I' 2 M'
inst_13 : CompleteSpace E
inst_14 : CompleteSpace E'
f : M → M'
V W : (x : M') → TangentSpace I' x
x₀ : M
s : Set M
t : Set M'
hV : MDiffAt[t] (T% V) (f x₀)
hW : MDiffAt[t] (T% W) (f x₀)
hu : UniqueMDiffOn I s
hf : ContMDiffOn I I' 2 f s
hx₀ : x₀ ∈ s
ht : t ⊆ (extChartAt I' (f x₀)).source
hst : MapsTo f s t
hsymm :
  IsSymmSndFDerivWithinAt 𝕜 ((↑(extChartAt I' (f x₀)) : M' → E') ∘ f ∘ (↑(extChartAt I x₀).symm : E → M))
    ((↑(extChartAt I x₀).symm : E → M) ⁻¹' s ∩ range (↑I : H → E)) ((↑(extChartAt I x₀) : M → E) x₀)
A : (↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀) = x₀
A' : x₀ = (↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀)
h'f : MDiffAt[s] f x₀
⊢ Eq (α :=
    TangentSpace I ((↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀)) →L[𝕜]
      TangentSpace 𝓘(𝕜, E) ((↑(extChartAt I x₀) : M → E) x₀))
    (ContinuousLinearMap.inverse
      (mfderivWithin 𝓘(𝕜, E) I (↑(extChartAt I x₀).symm : E → M) (range (↑I : H → E))
        ((↑(extChartAt I x₀) : M → E) x₀)))
    (mfderiv% (↑(extChartAt I x₀) : M → E) x₀)
have hf₁ : Eq (α :=
  TangentSpace I ((↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀)) →L[𝕜]
    TangentSpace I ((↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀)))
  (ContinuousLinearMap.comp (M₂ := TangentSpace 𝓘(𝕜, E) ((↑(extChartAt I x₀) : M → E) x₀))
      (mfderivWithin 𝓘(𝕜, E) I (↑(extChartAt I x₀).symm : E → M) (range (↑I : H → E)) ((↑(extChartAt I x₀) : M → E) x₀))
      (mfderiv% (↑(extChartAt I x₀) : M → E) x₀) :
    TangentSpace I ((↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀)) →L[𝕜]
      TangentSpace I ((↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀)))
  (ContinuousLinearMap.id 𝕜 (TangentSpace I ((↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀))) :
    TangentSpace I ((↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀)) →L[𝕜]
      TangentSpace I ((↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀)))
Tactic: apply ContinuousLinearMap.inverse_eq
-- Lean 4 proof step from Mathlib.Geometry.Manifold.VectorField.LieBracket (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
H : Type u_2
inst_1 : TopologicalSpace H
E : Type u_3
inst_2 : NormedAddCommGroup E
inst_3 : NormedSpace 𝕜 E
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst_4 : TopologicalSpace M
inst_5 : ChartedSpace H M
H' : Type u_5
inst_6 : TopologicalSpace H'
E' : Type u_6
inst_7 : NormedAddCommGroup E'
inst_8 : NormedSpace 𝕜 E'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst_9 : TopologicalSpace M'
inst_10 : ChartedSpace H' M'
inst_11 : IsManifold I 2 M
inst_12 : IsManifold I' 2 M'
inst_13 : CompleteSpace E
inst_14 : CompleteSpace E'
f : M → M'
V W : (x : M') → TangentSpace I' x
x₀ : M
s : Set M
t : Set M'
hV : MDiffAt[t] (T% V) (f x₀)
hW : MDiffAt[t] (T% W) (f x₀)
hu : UniqueMDiffOn I s
hf : ContMDiffOn I I' 2 f s
hx₀ : x₀ ∈ s
ht : t ⊆ (extChartAt I' (f x₀)).source
hst : MapsTo f s t
hsymm :
  IsSymmSndFDerivWithinAt 𝕜 ((↑(extChartAt I' (f x₀)) : M' → E') ∘ f ∘ (↑(extChartAt I x₀).symm : E → M))
    ((↑(extChartAt I x₀).symm : E → M) ⁻¹' s ∩ range (↑I : H → E)) ((↑(extChartAt I x₀) : M → E) x₀)
A : (↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀) = x₀
A' : x₀ = (↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀)
h'f : MDiffAt[s] f x₀
this_1 :
  Eq (α :=
    TangentSpace I ((↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀)) →L[𝕜]
      TangentSpace 𝓘(𝕜, E) ((↑(extChartAt I x₀) : M → E) x₀))
    (ContinuousLinearMap.inverse
      (mfderivWithin 𝓘(𝕜, E) I (↑(extChartAt I x₀).symm : E → M) (range (↑I : H → E))
        ((↑(extChartAt I x₀) : M → E) x₀)))
    (mfderiv% (↑(extChartAt I x₀) : M → E) x₀)
V' : (x : E') → TangentSpace 𝓘(𝕜, E') x :=
  mpullbackWithin 𝓘(𝕜, E') I' (↑(extChartAt I' (f x₀)).symm : E' → M') V (range (↑I' : H' → E'))
hV' : V' = mpullbackWithin 𝓘(𝕜, E') I' (↑(extChartAt I' (f x₀)).symm : E' → M') V (range (↑I' : H' → E'))
W' : (x : E') → TangentSpace 𝓘(𝕜, E') x :=
  mpullbackWithin 𝓘(𝕜, E') I' (↑(extChartAt I' (f x₀)).symm : E' → M') W (range (↑I' : H' → E'))
hW' : W' = mpullbackWithin 𝓘(𝕜, E') I' (↑(extChartAt I' (f x₀)).symm : E' → M') W (range (↑I' : H' → E'))
F : E → E' := ((↑(extChartAt I' (f x₀)) : M' → E') ∘ f) ∘ (↑(extChartAt I x₀).symm : E → M)
hF : F = ((↑(extChartAt I' (f x₀)) : M' → E') ∘ f) ∘ (↑(extChartAt I x₀).symm : E → M)
hFx₀ : (↑(extChartAt I' (f x₀)) : M' → E') (f x₀) = F ((↑(extChartAt I x₀) : M → E) x₀)
Y : (x : M') → TangentSpace I' x
this :
  (extChartAt I x₀).target ∈
    𝓝[(↑(extChartAt I x₀).symm : E → M) ⁻¹' s ∩ range (↑I : H → E)] (↑(extChartAt I x₀) : M → E) x₀
y : E
hy : y ∈ (↑(extChartAt I x₀).symm : E → M) ⁻¹' s ∩ range (↑I : H → E)
h'''y : y ∈ (extChartAt I x₀).target
h'y : f ((↑(extChartAt I x₀).symm : E → M) y) ∈ (extChartAt I' (f x₀)).source
h''y : f ((↑(extChartAt I x₀).symm : E → M) y) ∈ (OpenPartialHomeomorph.toPartialEquiv (chartAt H' (f x₀))).source
⊢ UniqueMDiffWithinAt 𝓘(𝕜, E) ((↑(extChartAt I x₀).symm : E → M) ⁻¹' s ∩ range (↑I : H → E)) y
have a : UniqueDiffWithinAt 𝕜 ((↑(extChartAt I x₀).symm : E → M) ⁻¹' s ∩ range (↑I : H → E)) y
Tactic: apply UniqueDiffWithinAt.uniqueMDiffWithinAt
-- Lean 4 proof step from Mathlib.Geometry.Manifold.VectorField.LieBracket (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
H : Type u_2
inst_1 : TopologicalSpace H
E : Type u_3
inst_2 : NormedAddCommGroup E
inst_3 : NormedSpace 𝕜 E
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst_4 : TopologicalSpace M
inst_5 : ChartedSpace H M
H' : Type u_5
inst_6 : TopologicalSpace H'
E' : Type u_6
inst_7 : NormedAddCommGroup E'
inst_8 : NormedSpace 𝕜 E'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst_9 : TopologicalSpace M'
inst_10 : ChartedSpace H' M'
inst_11 : IsManifold I 2 M
inst_12 : IsManifold I' 2 M'
inst_13 : CompleteSpace E
inst_14 : CompleteSpace E'
f : M → M'
V W : (x : M') → TangentSpace I' x
x₀ : M
s : Set M
t : Set M'
hV : MDiffAt[t] (T% V) (f x₀)
hW : MDiffAt[t] (T% W) (f x₀)
hu : UniqueMDiffOn I s
hf : ContMDiffOn I I' 2 f s
hx₀ : x₀ ∈ s
ht : t ⊆ (extChartAt I' (f x₀)).source
hst : MapsTo f s t
hsymm :
  IsSymmSndFDerivWithinAt 𝕜 ((↑(extChartAt I' (f x₀)) : M' → E') ∘ f ∘ (↑(extChartAt I x₀).symm : E → M))
    ((↑(extChartAt I x₀).symm : E → M) ⁻¹' s ∩ range (↑I : H → E)) ((↑(extChartAt I x₀) : M → E) x₀)
A : (↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀) = x₀
A' : x₀ = (↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀)
h'f : MDiffAt[s] f x₀
this_1 :
  Eq (α :=
    TangentSpace I ((↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀)) →L[𝕜]
      TangentSpace 𝓘(𝕜, E) ((↑(extChartAt I x₀) : M → E) x₀))
    (ContinuousLinearMap.inverse
      (mfderivWithin 𝓘(𝕜, E) I (↑(extChartAt I x₀).symm : E → M) (range (↑I : H → E))
        ((↑(extChartAt I x₀) : M → E) x₀)))
    (mfderiv% (↑(extChartAt I x₀) : M → E) x₀)
V' : (x : E') → TangentSpace 𝓘(𝕜, E') x :=
  mpullbackWithin 𝓘(𝕜, E') I' (↑(extChartAt I' (f x₀)).symm : E' → M') V (range (↑I' : H' → E'))
hV' : V' = mpullbackWithin 𝓘(𝕜, E') I' (↑(extChartAt I' (f x₀)).symm : E' → M') V (range (↑I' : H' → E'))
W' : (x : E') → TangentSpace 𝓘(𝕜, E') x :=
  mpullbackWithin 𝓘(𝕜, E') I' (↑(extChartAt I' (f x₀)).symm : E' → M') W (range (↑I' : H' → E'))
hW' : W' = mpullbackWithin 𝓘(𝕜, E') I' (↑(extChartAt I' (f x₀)).symm : E' → M') W (range (↑I' : H' → E'))
F : E → E' := ((↑(extChartAt I' (f x₀)) : M' → E') ∘ f) ∘ (↑(extChartAt I x₀).symm : E → M)
hF : F = ((↑(extChartAt I' (f x₀)) : M' → E') ∘ f) ∘ (↑(extChartAt I x₀).symm : E → M)
hFx₀ : (↑(extChartAt I' (f x₀)) : M' → E') (f x₀) = F ((↑(extChartAt I x₀) : M → E) x₀)
Y : (x : M') → TangentSpace I' x
this :
  (extChartAt I x₀).target ∈
    𝓝[(↑(extChartAt I x₀).symm : E → M) ⁻¹' s ∩ range (↑I : H → E)] (↑(extChartAt I x₀) : M → E) x₀
y : E
hy : y ∈ (↑(extChartAt I x₀).symm : E → M) ⁻¹' s ∩ range (↑I : H → E)
h'''y : y ∈ (extChartAt I x₀).target
h'y : f ((↑(extChartAt I x₀).symm : E → M) y) ∈ (extChartAt I' (f x₀)).source
h''y : f ((↑(extChartAt I x₀).symm : E → M) y) ∈ (OpenPartialHomeomorph.toPartialEquiv (chartAt H' (f x₀))).source
⊢ UniqueDiffWithinAt 𝕜 ((↑(extChartAt I x₀).symm : E → M) ⁻¹' s ∩ range (↑I : H → E)) y
have a : UniqueDiffWithinAt 𝕜 (range (↑I : H → E) ∩ (↑(extChartAt I x₀).symm : E → M) ⁻¹' s) y
Tactic: rw [inter_comm]
-- Lean 4 proof step from Mathlib.Geometry.Manifold.VectorField.LieBracket (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
H : Type u_2
inst_1 : TopologicalSpace H
E : Type u_3
inst_2 : NormedAddCommGroup E
inst_3 : NormedSpace 𝕜 E
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst_4 : TopologicalSpace M
inst_5 : ChartedSpace H M
H' : Type u_5
inst_6 : TopologicalSpace H'
E' : Type u_6
inst_7 : NormedAddCommGroup E'
inst_8 : NormedSpace 𝕜 E'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst_9 : TopologicalSpace M'
inst_10 : ChartedSpace H' M'
inst_11 : IsManifold I 2 M
inst_12 : IsManifold I' 2 M'
inst_13 : CompleteSpace E
inst_14 : CompleteSpace E'
f : M → M'
V W : (x : M') → TangentSpace I' x
x₀ : M
s : Set M
t : Set M'
hV : MDiffAt[t] (T% V) (f x₀)
hW : MDiffAt[t] (T% W) (f x₀)
hu : UniqueMDiffOn I s
hf : ContMDiffOn I I' 2 f s
hx₀ : x₀ ∈ s
ht : t ⊆ (extChartAt I' (f x₀)).source
hst : MapsTo f s t
hsymm :
  IsSymmSndFDerivWithinAt 𝕜 ((↑(extChartAt I' (f x₀)) : M' → E') ∘ f ∘ (↑(extChartAt I x₀).symm : E → M))
    ((↑(extChartAt I x₀).symm : E → M) ⁻¹' s ∩ range (↑I : H → E)) ((↑(extChartAt I x₀) : M → E) x₀)
A : (↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀) = x₀
A' : x₀ = (↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀)
h'f : MDiffAt[s] f x₀
this_1 :
  Eq (α :=
    TangentSpace I ((↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀)) →L[𝕜]
      TangentSpace 𝓘(𝕜, E) ((↑(extChartAt I x₀) : M → E) x₀))
    (ContinuousLinearMap.inverse
      (mfderivWithin 𝓘(𝕜, E) I (↑(extChartAt I x₀).symm : E → M) (range (↑I : H → E))
        ((↑(extChartAt I x₀) : M → E) x₀)))
    (mfderiv% (↑(extChartAt I x₀) : M → E) x₀)
V' : (x : E') → TangentSpace 𝓘(𝕜, E') x :=
  mpullbackWithin 𝓘(𝕜, E') I' (↑(extChartAt I' (f x₀)).symm : E' → M') V (range (↑I' : H' → E'))
hV' : V' = mpullbackWithin 𝓘(𝕜, E') I' (↑(extChartAt I' (f x₀)).symm : E' → M') V (range (↑I' : H' → E'))
W' : (x : E') → TangentSpace 𝓘(𝕜, E') x :=
  mpullbackWithin 𝓘(𝕜, E') I' (↑(extChartAt I' (f x₀)).symm : E' → M') W (range (↑I' : H' → E'))
hW' : W' = mpullbackWithin 𝓘(𝕜, E') I' (↑(extChartAt I' (f x₀)).symm : E' → M') W (range (↑I' : H' → E'))
F : E → E' := ((↑(extChartAt I' (f x₀)) : M' → E') ∘ f) ∘ (↑(extChartAt I x₀).symm : E → M)
hF : F = ((↑(extChartAt I' (f x₀)) : M' → E') ∘ f) ∘ (↑(extChartAt I x₀).symm : E → M)
hFx₀ : (↑(extChartAt I' (f x₀)) : M' → E') (f x₀) = F ((↑(extChartAt I x₀) : M → E) x₀)
Y : (x : M') → TangentSpace I' x
this :
  (extChartAt I x₀).target ∈
    𝓝[(↑(extChartAt I x₀).symm : E → M) ⁻¹' s ∩ range (↑I : H → E)] (↑(extChartAt I x₀) : M → E) x₀
y : E
hy : y ∈ (↑(extChartAt I x₀).symm : E → M) ⁻¹' s ∩ range (↑I : H → E)
h'''y : y ∈ (extChartAt I x₀).target
h'y : f ((↑(extChartAt I x₀).symm : E → M) y) ∈ (extChartAt I' (f x₀)).source
h''y : f ((↑(extChartAt I x₀).symm : E → M) y) ∈ (OpenPartialHomeomorph.toPartialEquiv (chartAt H' (f x₀))).source
⊢ UniqueDiffWithinAt 𝕜 (range (↑I : H → E) ∩ (↑(extChartAt I x₀).symm : E → M) ⁻¹' s) y
have a : y ∈ (extChartAt I x₀).target ∩ (↑(extChartAt I x₀).symm : E → M) ⁻¹' s
Tactic: apply hu.uniqueDiffWithinAt_range_inter
-- Lean 4 proof step from Mathlib.Geometry.Manifold.VectorField.LieBracket (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
H : Type u_2
inst_1 : TopologicalSpace H
E : Type u_3
inst_2 : NormedAddCommGroup E
inst_3 : NormedSpace 𝕜 E
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst_4 : TopologicalSpace M
inst_5 : ChartedSpace H M
H' : Type u_5
inst_6 : TopologicalSpace H'
E' : Type u_6
inst_7 : NormedAddCommGroup E'
inst_8 : NormedSpace 𝕜 E'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst_9 : TopologicalSpace M'
inst_10 : ChartedSpace H' M'
inst_11 : IsManifold I 2 M
inst_12 : IsManifold I' 2 M'
inst_13 : CompleteSpace E
inst_14 : CompleteSpace E'
f : M → M'
V W : (x : M') → TangentSpace I' x
x₀ : M
s : Set M
t : Set M'
hV : MDiffAt[t] (T% V) (f x₀)
hW : MDiffAt[t] (T% W) (f x₀)
hu : UniqueMDiffOn I s
hf : ContMDiffOn I I' 2 f s
hx₀ : x₀ ∈ s
ht : t ⊆ (extChartAt I' (f x₀)).source
hst : MapsTo f s t
hsymm :
  IsSymmSndFDerivWithinAt 𝕜 ((↑(extChartAt I' (f x₀)) : M' → E') ∘ f ∘ (↑(extChartAt I x₀).symm : E → M))
    ((↑(extChartAt I x₀).symm : E → M) ⁻¹' s ∩ range (↑I : H → E)) ((↑(extChartAt I x₀) : M → E) x₀)
A : (↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀) = x₀
A' : x₀ = (↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀)
h'f : MDiffAt[s] f x₀
this :
  Eq (α :=
    TangentSpace I ((↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀)) →L[𝕜]
      TangentSpace 𝓘(𝕜, E) ((↑(extChartAt I x₀) : M → E) x₀))
    (ContinuousLinearMap.inverse
      (mfderivWithin 𝓘(𝕜, E) I (↑(extChartAt I x₀).symm : E → M) (range (↑I : H → E))
        ((↑(extChartAt I x₀) : M → E) x₀)))
    (mfderiv% (↑(extChartAt I x₀) : M → E) x₀)
V' : (x : E') → TangentSpace 𝓘(𝕜, E') x :=
  mpullbackWithin 𝓘(𝕜, E') I' (↑(extChartAt I' (f x₀)).symm : E' → M') V (range (↑I' : H' → E'))
hV' : V' = mpullbackWithin 𝓘(𝕜, E') I' (↑(extChartAt I' (f x₀)).symm : E' → M') V (range (↑I' : H' → E'))
W' : (x : E') → TangentSpace 𝓘(𝕜, E') x :=
  mpullbackWithin 𝓘(𝕜, E') I' (↑(extChartAt I' (f x₀)).symm : E' → M') W (range (↑I' : H' → E'))
hW' : W' = mpullbackWithin 𝓘(𝕜, E') I' (↑(extChartAt I' (f x₀)).symm : E' → M') W (range (↑I' : H' → E'))
F : E → E' := ((↑(extChartAt I' (f x₀)) : M' → E') ∘ f) ∘ (↑(extChartAt I x₀).symm : E → M)
hF : F = ((↑(extChartAt I' (f x₀)) : M' → E') ∘ f) ∘ (↑(extChartAt I x₀).symm : E → M)
hFx₀ : (↑(extChartAt I' (f x₀)) : M' → E') (f x₀) = F ((↑(extChartAt I x₀) : M → E) x₀)
P :
  ∀ (Y : (x : M') → TangentSpace I' x),
    mpullbackWithin 𝓘(𝕜, E) I (↑(extChartAt I x₀).symm : E → M) (mpullbackWithin I I' f Y s)
        (range
          (↑I :
            H → E)) =ᶠ[𝓝[(↑(extChartAt I x₀).symm : E → M) ⁻¹' s ∩ range (↑I : H → E)] (↑(extChartAt I x₀) : M → E) x₀]
      mpullbackWithin 𝓘(𝕜, E) 𝓘(𝕜, E') F
        (mpullbackWithin 𝓘(𝕜, E') I' (↑(extChartAt I' (f x₀)).symm : E' → M') Y (range (↑I' : H' → E')))
        ((↑(extChartAt I x₀).symm : E → M) ⁻¹' s ∩ range (↑I : H → E))
⊢ UniqueDiffOn 𝕜 ((↑(extChartAt I x₀).symm : E → M) ⁻¹' s ∩ (extChartAt I x₀).target)
have hu₁ : UniqueDiffOn 𝕜 ((extChartAt I x₀).target ∩ (↑(extChartAt I x₀).symm : E → M) ⁻¹' s)
Tactic: rw [inter_comm]
-- Lean 4 proof step from Mathlib.Geometry.Manifold.VectorField.LieBracket (hypothesis)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
H : Type u_2
inst_1 : TopologicalSpace H
E : Type u_3
inst_2 : NormedAddCommGroup E
inst_3 : NormedSpace 𝕜 E
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst_4 : TopologicalSpace M
inst_5 : ChartedSpace H M
H' : Type u_5
inst_6 : TopologicalSpace H'
E' : Type u_6
inst_7 : NormedAddCommGroup E'
inst_8 : NormedSpace 𝕜 E'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst_9 : TopologicalSpace M'
inst_10 : ChartedSpace H' M'
inst_11 : IsManifold I 2 M
inst_12 : IsManifold I' 2 M'
inst_13 : CompleteSpace E
f : M → M'
V W : (x : M') → TangentSpace I' x
x₀ : M
s : Set M
t : Set M'
hV : MDiffAt[t] (T% V) (f x₀)
hW : MDiffAt[t] (T% W) (f x₀)
hu : UniqueMDiffOn I s
hf : ContMDiffWithinAt I I' 2 f s x₀
hx₀ : x₀ ∈ s
hst : f ⁻¹' t ∈ 𝓝[s] x₀
hsymm :
  IsSymmSndFDerivWithinAt 𝕜 ((↑(extChartAt I' (f x₀)) : M' → E') ∘ f ∘ (↑(extChartAt I x₀).symm : E → M))
    ((↑(extChartAt I x₀).symm : E → M) ⁻¹' s ∩ range (↑I : H → E)) ((↑(extChartAt I x₀) : M → E) x₀)
⊢ Eq (α := TangentSpace I x₀) (mpullbackWithin I I' f (mlieBracketWithin I' V W t) s x₀)
    (mlieBracketWithin I (mpullbackWithin I I' f V s) (mpullbackWithin I I' f W s) s x₀)
have A : (↑(extChartAt I x₀).symm : E → M) ((↑(extChartAt I x₀) : M → E) x₀) = x₀
Tactic: have A : (extChartAt I x₀).symm (extChartAt I x₀ x₀) = x₀ := by simp