awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Lean 4 proof step from Mathlib.Topology.VectorBundle.Riemannian (goal)
Goal:
B_1 : Type u_1
inst : TopologicalSpace B_1
F_1 : Type u_2
inst_1 : NormedAddCommGroup F_1
inst_2 : NormedSpace ℝ F_1
E_1 : B_1 → Type u_3
inst_3 : TopologicalSpace (TotalSpace F_1 E_1)
inst_4 : (x : B_1) → NormedAddCommGroup (E_1 x)
inst_5 : (x : B_1) → InnerProductSpace ℝ (E_1 x)
inst_6 : FiberBundle F_1 E_1
inst_7 : VectorBundle ℝ F_1 E_1
B : Type u_4
inst_8 : TopologicalSpace B
F : Type u_5
inst_9 : NormedAddCommGroup F
inst_10 : NormedSpace ℝ F
E : B → Type u_6
inst_11 : TopologicalSpace (TotalSpace F E)
inst_12 : (b : B) → TopologicalSpace (E b)
inst_13 : (b : B) → AddCommGroup (E b)
inst_14 : (b : B) → Module ℝ (E b)
inst_15 : ∀ (b : B), IsTopologicalAddGroup.{u_6} (E b)
inst_16 : ∀ (b : B), ContinuousConstSMul.{0, u_6} ℝ (E b)
inst_17 : FiberBundle F E
inst_18 : VectorBundle ℝ F E
g : RiemannianMetric E
b : B
v : E b
inl :
  LE.le (α := ℝ) (0 : ℝ)
    ((RCLike.re : (a : ℝ) → ℝ)
        ((((g.inner (E := E) b : (a : E b) → E b →L[ℝ] ℝ) 0 : E b →L[ℝ] ℝ) : (a : E b) → ℝ) 0 : ℝ) :
      ℝ)
⊢ LE.le (α := ℝ) (0 : ℝ)
    ((RCLike.re : (a : ℝ) → ℝ)
        ((((g.inner (E := E) b : (a : E b) → E b →L[ℝ] ℝ) v : E b →L[ℝ] ℝ) : (a : E b) → ℝ) v : ℝ) :
      ℝ)
have inr : ∀ (hv : v ≠ 0),
  LE.le (α := ℝ) (0 : ℝ)
    ((RCLike.re : (a : ℝ) → ℝ)
        ((((g.inner (E := E) b : (a : E b) → E b →L[ℝ] ℝ) v : E b →L[ℝ] ℝ) : (a : E b) → ℝ) v : ℝ) :
      ℝ)
Tactic: rcases eq_or_ne v 0 with rfl | hv
-- Lean 4 proof step from Mathlib.Topology.VectorBundle.Riemannian (goal)
Goal:
B_1 : Type u_1
inst : TopologicalSpace B_1
F_1 : Type u_2
inst_1 : NormedAddCommGroup F_1
inst_2 : NormedSpace ℝ F_1
E_1 : B_1 → Type u_3
inst_3 : TopologicalSpace (TotalSpace F_1 E_1)
inst_4 : (x : B_1) → NormedAddCommGroup (E_1 x)
inst_5 : (x : B_1) → InnerProductSpace ℝ (E_1 x)
inst_6 : FiberBundle F_1 E_1
inst_7 : VectorBundle ℝ F_1 E_1
B : Type u_4
inst_8 : TopologicalSpace B
F : Type u_5
inst_9 : NormedAddCommGroup F
inst_10 : NormedSpace ℝ F
E : B → Type u_6
inst_11 : TopologicalSpace (TotalSpace F E)
inst_12 : (b : B) → TopologicalSpace (E b)
inst_13 : (b : B) → AddCommGroup (E b)
inst_14 : (b : B) → Module ℝ (E b)
inst_15 : ∀ (b : B), IsTopologicalAddGroup.{u_6} (E b)
inst_16 : ∀ (b : B), ContinuousConstSMul.{0, u_6} ℝ (E b)
inst_17 : FiberBundle F E
inst_18 : VectorBundle ℝ F E
g : RiemannianMetric E
b : B
v : E b
h : Eq (α := ℝ) ((((g.inner (E := E) b : (a : E b) → E b →L[ℝ] ℝ) v : E b →L[ℝ] ℝ) : (a : E b) → ℝ) v : ℝ) (0 : ℝ)
⊢ v = 0
have contrapose! : ∀ (h : v ≠ 0),
  Ne (α := ℝ) ((((g.inner (E := E) b : (a : E b) → E b →L[ℝ] ℝ) v : E b →L[ℝ] ℝ) : (a : E b) → ℝ) v : ℝ) (0 : ℝ)
Tactic: contrapose! h
Cleared hypotheses: h
-- Lean 4 proof step from Mathlib.Topology.VectorBundle.Riemannian (hypothesis)
Goal:
B_1 : Type u_1
inst : TopologicalSpace B_1
F_1 : Type u_2
inst_1 : NormedAddCommGroup F_1
inst_2 : NormedSpace ℝ F_1
E_1 : B_1 → Type u_3
inst_3 : TopologicalSpace (TotalSpace F_1 E_1)
inst_4 : (x : B_1) → NormedAddCommGroup (E_1 x)
inst_5 : (x : B_1) → InnerProductSpace ℝ (E_1 x)
inst_6 : FiberBundle F_1 E_1
inst_7 : VectorBundle ℝ F_1 E_1
B : Type u_4
inst_8 : TopologicalSpace B
F : Type u_5
inst_9 : NormedAddCommGroup F
inst_10 : NormedSpace ℝ F
E : B → Type u_6
inst_11 : TopologicalSpace (TotalSpace F E)
inst_12 : (b : B) → TopologicalSpace (E b)
inst_13 : (b : B) → AddCommGroup (E b)
inst_14 : (b : B) → Module ℝ (E b)
inst_15 : ∀ (b : B), IsTopologicalAddGroup.{u_6} (E b)
inst_16 : ∀ (b : B), ContinuousConstSMul.{0, u_6} ℝ (E b)
inst_17 : FiberBundle F E
inst_18 : VectorBundle ℝ F E
g : ContinuousRiemannianMetric F E
b : B
e : ContinuousLinearEquiv.{0, 0, u_6, u_5} (RingHom.id ℝ) (E b) F :=
  Trivialization.continuousLinearEquivAt ℝ (E := E) (trivializationAt F E b) b ⋯
m : ContinuousLinearEquiv.{0, 0, u_6, u_5} (RingHom.id ℝ) (E b →L[ℝ] E b →L[ℝ] ℝ) (F →L[ℝ] F →L[ℝ] ℝ) :=
  e.arrowCongr (e.arrowCongr (ContinuousLinearEquiv.refl ℝ ℝ))
⊢ ContinuousAt (Y := ℝ)
    (fun (v : E b) ↦ (((g.inner (E := E) b : (a : E b) → E b →L[ℝ] ℝ) v : E b →L[ℝ] ℝ) : (a : E b) → ℝ) v) 0
have A : ∀ (v : E b),
  Eq (α := ℝ) ((((g.inner (E := E) b : (a : E b) → E b →L[ℝ] ℝ) v : E b →L[ℝ] ℝ) : (a : E b) → ℝ) v : ℝ)
    (((fun (w : F) ↦
            (((((m : (a : E b →L[ℝ] E b →L[ℝ] ℝ) → F →L[ℝ] F →L[ℝ] ℝ) (g.inner (E := E) b) : F →L[ℝ] F →L[ℝ] ℝ) :
                      (a : F) → F →L[ℝ] ℝ)
                    w :
                  F →L[ℝ] ℝ) :
                (a : F) → ℝ)
              w) ∘
          (⇑e : (a : E b) → F))
        v :
      ℝ)
Tactic: have A (v : E b) : g.inner b v v = ((fun w ↦ m (g.inner b) w w) ∘ e) v := by simp [m]
-- Lean 4 proof step from Mathlib.Topology.VectorBundle.Riemannian (goal)
Goal:
B_1 : Type u_1
inst : TopologicalSpace B_1
F_1 : Type u_2
inst_1 : NormedAddCommGroup F_1
inst_2 : NormedSpace ℝ F_1
E_1 : B_1 → Type u_3
inst_3 : TopologicalSpace (TotalSpace F_1 E_1)
inst_4 : (x : B_1) → NormedAddCommGroup (E_1 x)
inst_5 : (x : B_1) → InnerProductSpace ℝ (E_1 x)
inst_6 : FiberBundle F_1 E_1
inst_7 : VectorBundle ℝ F_1 E_1
B : Type u_4
inst_8 : TopologicalSpace B
F : Type u_5
inst_9 : NormedAddCommGroup F
inst_10 : NormedSpace ℝ F
E : B → Type u_6
inst_11 : TopologicalSpace (TotalSpace F E)
inst_12 : (b : B) → TopologicalSpace (E b)
inst_13 : (b : B) → AddCommGroup (E b)
inst_14 : (b : B) → Module ℝ (E b)
inst_15 : ∀ (b : B), IsTopologicalAddGroup.{u_6} (E b)
inst_16 : ∀ (b : B), ContinuousConstSMul.{0, u_6} ℝ (E b)
inst_17 : FiberBundle F E
inst_18 : VectorBundle ℝ F E
g : ContinuousRiemannianMetric F E
b : B
e : ContinuousLinearEquiv.{0, 0, u_6, u_5} (RingHom.id ℝ) (E b) F :=
  Trivialization.continuousLinearEquivAt ℝ (E := E) (trivializationAt F E b) b ⋯
m : ContinuousLinearEquiv.{0, 0, u_6, u_5} (RingHom.id ℝ) (E b →L[ℝ] E b →L[ℝ] ℝ) (F →L[ℝ] F →L[ℝ] ℝ) :=
  e.arrowCongr (e.arrowCongr (ContinuousLinearEquiv.refl ℝ ℝ))
A :
  ∀ (v : E b),
    Eq (α := ℝ) ((((g.inner (E := E) b : (a : E b) → E b →L[ℝ] ℝ) v : E b →L[ℝ] ℝ) : (a : E b) → ℝ) v : ℝ)
      (((fun (w : F) ↦
              (((((m : (a : E b →L[ℝ] E b →L[ℝ] ℝ) → F →L[ℝ] F →L[ℝ] ℝ) (g.inner (E := E) b) : F →L[ℝ] F →L[ℝ] ℝ) :
                        (a : F) → F →L[ℝ] ℝ)
                      w :
                    F →L[ℝ] ℝ) :
                  (a : F) → ℝ)
                w) ∘
            (⇑e : (a : E b) → F))
          v :
        ℝ)
⊢ ContinuousAt (Y := ℝ)
    (fun (v : E b) ↦ (((g.inner (E := E) b : (a : E b) → E b →L[ℝ] ℝ) v : E b →L[ℝ] ℝ) : (a : E b) → ℝ) v) 0
have simp : ContinuousAt (Y := ℝ)
  (fun (v : E b) ↦
    ((fun (w : F) ↦
          (((((m : (a : E b →L[ℝ] E b →L[ℝ] ℝ) → F →L[ℝ] F →L[ℝ] ℝ) (g.inner (E := E) b) : F →L[ℝ] F →L[ℝ] ℝ) :
                    (a : F) → F →L[ℝ] ℝ)
                  w :
                F →L[ℝ] ℝ) :
              (a : F) → ℝ)
            w) ∘
        (⇑e : (a : E b) → F))
      v)
  0
Tactic: simp only [A]