ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- EuclideanGeometry.sin_pos_of_not_collinear
theorem sin_pos_of_not_collinear {p₁ p₂ p₃ : P} (h : ¬Collinear ℝ ({p₁, p₂, p₃} : Set P)) :
    0 < Real.sin (∠ p₁ p₂ p₃) 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {p₁ p₂ p₃ : P} (h : ¬Collinear ℝ {p₁, p₂, p₃})
Goal: 0 < Real.sin (EuclideanGeometry.angle p₁ p₂ p₃)
-- EuclideanGeometry.sin_ne_zero_of_not_collinear
theorem sin_ne_zero_of_not_collinear {p₁ p₂ p₃ : P} (h : ¬Collinear ℝ ({p₁, p₂, p₃} : Set P)) :
    Real.sin (∠ p₁ p₂ p₃) ≠ 0 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {p₁ p₂ p₃ : P} (h : ¬Collinear ℝ {p₁, p₂, p₃})
Goal: Real.sin (EuclideanGeometry.angle p₁ p₂ p₃) ≠ 0
-- EuclideanGeometry.collinear_of_sin_eq_zero
theorem collinear_of_sin_eq_zero {p₁ p₂ p₃ : P} (h : Real.sin (∠ p₁ p₂ p₃) = 0) :
    Collinear ℝ ({p₁, p₂, p₃} : Set P) 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {p₁ p₂ p₃ : P} (h : Real.sin (EuclideanGeometry.angle p₁ p₂ p₃) = 0)
Goal: Collinear ℝ {p₁, p₂, p₃}
-- AffineSubspace.mem_perpBisector_iff_inner_eq_zero'
theorem mem_perpBisector_iff_inner_eq_zero' :
    c ∈ perpBisector p₁ p₂ ↔ ⟪p₂ -ᵥ p₁, c -ᵥ midpoint ℝ p₁ p₂⟫ = 0 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {c p₁ p₂ : P}
Goal: c ∈ AffineSubspace.perpBisector p₁ p₂ ↔ ⟪p₂ -ᵥ p₁, c -ᵥ midpoint ℝ p₁ p₂⟫_ℝ = 0
-- AffineSubspace.mem_perpBisector_iff_inner_eq_zero
theorem mem_perpBisector_iff_inner_eq_zero :
    c ∈ perpBisector p₁ p₂ ↔ ⟪c -ᵥ midpoint ℝ p₁ p₂, p₂ -ᵥ p₁⟫ = 0 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {c p₁ p₂ : P}
Goal: c ∈ AffineSubspace.perpBisector p₁ p₂ ↔ ⟪c -ᵥ midpoint ℝ p₁ p₂, p₂ -ᵥ p₁⟫_ℝ = 0
-- AffineSubspace.mem_perpBisector_iff_inner_pointReflection_vsub_eq_zero
theorem mem_perpBisector_iff_inner_pointReflection_vsub_eq_zero :
    c ∈ perpBisector p₁ p₂ ↔ ⟪Equiv.pointReflection c p₁ -ᵥ p₂, p₂ -ᵥ p₁⟫ = 0 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {c p₁ p₂ : P}
Goal: c ∈ AffineSubspace.perpBisector p₁ p₂ ↔ ⟪(Equiv.pointReflection c) p₁ -ᵥ p₂, p₂ -ᵥ p₁⟫_ℝ = 0
-- AffineSubspace.mem_perpBisector_pointReflection_iff_inner_eq_zero
theorem mem_perpBisector_pointReflection_iff_inner_eq_zero :
    c ∈ perpBisector p₁ (Equiv.pointReflection p₂ p₁) ↔ ⟪c -ᵥ p₂, p₁ -ᵥ p₂⟫ = 0 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {c p₁ p₂ : P}
Goal: c ∈ AffineSubspace.perpBisector p₁ ((Equiv.pointReflection p₂) p₁) ↔ ⟪c -ᵥ p₂, p₁ -ᵥ p₂⟫_ℝ = 0
-- AffineSubspace.midpoint_mem_perpBisector
theorem midpoint_mem_perpBisector (p₁ p₂ : P) :
    midpoint ℝ p₁ p₂ ∈ perpBisector p₁ p₂ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (p₁ p₂ : P)
Goal: midpoint ℝ p₁ p₂ ∈ AffineSubspace.perpBisector p₁ p₂
-- AffineSubspace.perpBisector_nonempty
theorem perpBisector_nonempty : (perpBisector p₁ p₂ : Set P).Nonempty 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {p₁ p₂ : P}
Goal: (↑(AffineSubspace.perpBisector p₁ p₂)).Nonempty
-- AffineSubspace.direction_perpBisector
@[simp]
theorem direction_perpBisector (p₁ p₂ : P) :
    (perpBisector p₁ p₂).direction = (ℝ ∙ (p₂ -ᵥ p₁))ᗮ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (p₁ p₂ : P)
Goal: (AffineSubspace.perpBisector p₁ p₂).direction = (Submodule.span ℝ {p₂ -ᵥ p₁})ᗮ
-- AffineSubspace.mem_perpBisector_iff_inner_eq_inner
theorem mem_perpBisector_iff_inner_eq_inner :
    c ∈ perpBisector p₁ p₂ ↔ ⟪c -ᵥ p₁, p₂ -ᵥ p₁⟫ = ⟪c -ᵥ p₂, p₁ -ᵥ p₂⟫ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {c p₁ p₂ : P}
Goal: c ∈ AffineSubspace.perpBisector p₁ p₂ ↔ ⟪c -ᵥ p₁, p₂ -ᵥ p₁⟫_ℝ = ⟪c -ᵥ p₂, p₁ -ᵥ p₂⟫_ℝ
-- AffineSubspace.mem_perpBisector_iff_inner_eq
theorem mem_perpBisector_iff_inner_eq :
    c ∈ perpBisector p₁ p₂ ↔ ⟪c -ᵥ p₁, p₂ -ᵥ p₁⟫ = (dist p₁ p₂) ^ 2 / 2 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {c p₁ p₂ : P}
Goal: c ∈ AffineSubspace.perpBisector p₁ p₂ ↔ ⟪c -ᵥ p₁, p₂ -ᵥ p₁⟫_ℝ = dist p₁ p₂ ^ 2 / 2
-- AffineSubspace.mem_perpBisector_iff_dist_eq
theorem mem_perpBisector_iff_dist_eq : c ∈ perpBisector p₁ p₂ ↔ dist c p₁ = dist c p₂ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {c p₁ p₂ : P}
Goal: c ∈ AffineSubspace.perpBisector p₁ p₂ ↔ dist c p₁ = dist c p₂
-- AffineSubspace.mem_perpBisector_iff_dist_eq'
theorem mem_perpBisector_iff_dist_eq' : c ∈ perpBisector p₁ p₂ ↔ dist p₁ c = dist p₂ c 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {c p₁ p₂ : P}
Goal: c ∈ AffineSubspace.perpBisector p₁ p₂ ↔ dist p₁ c = dist p₂ c
-- AffineSubspace.perpBisector_comm
theorem perpBisector_comm (p₁ p₂ : P) : perpBisector p₁ p₂ = perpBisector p₂ p₁ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (p₁ p₂ : P)
Goal: AffineSubspace.perpBisector p₁ p₂ = AffineSubspace.perpBisector p₂ p₁
-- AffineSubspace.right_mem_perpBisector
@[simp] theorem right_mem_perpBisector : p₂ ∈ perpBisector p₁ p₂ ↔ p₁ = p₂ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {p₁ p₂ : P}
Goal: p₂ ∈ AffineSubspace.perpBisector p₁ p₂ ↔ p₁ = p₂
-- AffineSubspace.left_mem_perpBisector
@[simp] theorem left_mem_perpBisector : p₁ ∈ perpBisector p₁ p₂ ↔ p₁ = p₂ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {p₁ p₂ : P}
Goal: p₁ ∈ AffineSubspace.perpBisector p₁ p₂ ↔ p₁ = p₂
-- AffineSubspace.perpBisector_self
@[simp] theorem perpBisector_self (p : P) : perpBisector p p = ⊤ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (p : P)
Goal: AffineSubspace.perpBisector p p = ⊤
-- AffineSubspace.perpBisector_eq_top
@[simp] theorem perpBisector_eq_top : perpBisector p₁ p₂ = ⊤ ↔ p₁ = p₂ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {p₁ p₂ : P}
Goal: AffineSubspace.perpBisector p₁ p₂ = ⊤ ↔ p₁ = p₂
-- AffineSubspace.perpBisector_ne_bot
@[simp] theorem perpBisector_ne_bot : perpBisector p₁ p₂ ≠ ⊥ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {p₁ p₂ : P}
Goal: AffineSubspace.perpBisector p₁ p₂ ≠ ⊥
-- EuclideanGeometry.inner_vsub_vsub_of_dist_eq_of_dist_eq
theorem inner_vsub_vsub_of_dist_eq_of_dist_eq {c₁ c₂ p₁ p₂ : P} (hc₁ : dist p₁ c₁ = dist p₂ c₁)
    (hc₂ : dist p₁ c₂ = dist p₂ c₂) : ⟪c₂ -ᵥ c₁, p₂ -ᵥ p₁⟫ = 0 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {c₁ c₂ p₁ p₂ : P} (hc₁ : dist p₁ c₁ = dist p₂ c₁) (hc₂ : dist p₁ c₂ = dist p₂ c₂)
Goal: ⟪c₂ -ᵥ c₁, p₂ -ᵥ p₁⟫_ℝ = 0
-- Isometry.preimage_perpBisector
theorem Isometry.preimage_perpBisector {f : P → P'} (h : Isometry f) (p₁ p₂ : P) :
    f ⁻¹' (perpBisector (f p₁) (f p₂)) = perpBisector p₁ p₂ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {V' : Type u_3} {P' : Type u_4} [NormedAddCommGroup V'] [InnerProductSpace ℝ V'] [MetricSpace P'] [NormedAddTorsor V' P'] {f : P → P'} (h : Isometry f) (p₁ p₂ : P)
Goal: f ⁻¹' ↑(AffineSubspace.perpBisector (f p₁) (f p₂)) = ↑(AffineSubspace.perpBisector p₁ p₂)
-- Isometry.mapsTo_perpBisector
theorem Isometry.mapsTo_perpBisector {f : P → P'} (h : Isometry f) (p₁ p₂ : P) :
    MapsTo f (perpBisector p₁ p₂) (perpBisector (f p₁) (f p₂)) 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {V' : Type u_3} {P' : Type u_4} [NormedAddCommGroup V'] [InnerProductSpace ℝ V'] [MetricSpace P'] [NormedAddTorsor V' P'] {f : P → P'} (h : Isometry f) (p₁ p₂ : P)
Goal: Set.MapsTo f ↑(AffineSubspace.perpBisector p₁ p₂) ↑(AffineSubspace.perpBisector (f p₁) (f p₂))
-- EuclideanGeometry.Sphere.secondInter_dist
@[simp]
theorem Sphere.secondInter_dist (s : Sphere P) (p : P) (v : V) :
    dist (s.secondInter p v) s.center = dist p s.center 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (s : EuclideanGeometry.Sphere P) (p : P) (v : V)
Goal: dist (s.secondInter p v) s.center = dist p s.center
-- EuclideanGeometry.Sphere.secondInter_mem
@[simp]
theorem Sphere.secondInter_mem {s : Sphere P} {p : P} (v : V) : s.secondInter p v ∈ s ↔ p ∈ s 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {s : EuclideanGeometry.Sphere P} {p : P} (v : V)
Goal: s.secondInter p v ∈ s ↔ p ∈ s
-- EuclideanGeometry.Sphere.secondInter_zero
@[simp]
theorem Sphere.secondInter_zero (s : Sphere P) (p : P) : s.secondInter p (0 : V) = p 
Arguments: (V : Type u_1) {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (s : EuclideanGeometry.Sphere P) (p : P)
Goal: s.secondInter p 0 = p
-- EuclideanGeometry.Sphere.secondInter_eq_self_iff
theorem Sphere.secondInter_eq_self_iff {s : Sphere P} {p : P} {v : V} :
    s.secondInter p v = p ↔ ⟪v, p -ᵥ s.center⟫ = 0 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {s : EuclideanGeometry.Sphere P} {p : P} {v : V}
Goal: s.secondInter p v = p ↔ ⟪v, p -ᵥ s.center⟫_ℝ = 0
-- EuclideanGeometry.Sphere.eq_or_eq_secondInter_of_mem_mk'_span_singleton_iff_mem
theorem Sphere.eq_or_eq_secondInter_of_mem_mk'_span_singleton_iff_mem {s : Sphere P} {p : P}
    (hp : p ∈ s) {v : V} {p' : P} (hp' : p' ∈ AffineSubspace.mk' p (ℝ ∙ v)) :
    p' = p ∨ p' = s.secondInter p v ↔ p' ∈ s 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {s : EuclideanGeometry.Sphere P} {p : P} (hp : p ∈ s) {v : V} {p' : P} (hp' : p' ∈ AffineSubspace.mk' p (Submodule.span ℝ {v}))
Goal: p' = p ∨ p' = s.secondInter p v ↔ p' ∈ s
-- EuclideanGeometry.Sphere.secondInter_smul
@[simp]
theorem Sphere.secondInter_smul (s : Sphere P) (p : P) (v : V) {r : ℝ} (hr : r ≠ 0) :
    s.secondInter p (r • v) = s.secondInter p v 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (s : EuclideanGeometry.Sphere P) (p : P) (v : V) {r : ℝ} (hr : r ≠ 0)
Goal: s.secondInter p (r • v) = s.secondInter p v
-- EuclideanGeometry.Sphere.secondInter_neg
@[simp]
theorem Sphere.secondInter_neg (s : Sphere P) (p : P) (v : V) :
    s.secondInter p (-v) = s.secondInter p v 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (s : EuclideanGeometry.Sphere P) (p : P) (v : V)
Goal: s.secondInter p (-v) = s.secondInter p v
-- EuclideanGeometry.Sphere.secondInter_secondInter
@[simp]
theorem Sphere.secondInter_secondInter (s : Sphere P) (p : P) (v : V) :
    s.secondInter (s.secondInter p v) v = p 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (s : EuclideanGeometry.Sphere P) (p : P) (v : V)
Goal: s.secondInter (s.secondInter p v) v = p
-- EuclideanGeometry.Sphere.secondInter_eq_lineMap
theorem Sphere.secondInter_eq_lineMap (s : Sphere P) (p p' : P) :
    s.secondInter p (p' -ᵥ p) =
      AffineMap.lineMap p p' (-2 * ⟪p' -ᵥ p, p -ᵥ s.center⟫ / ⟪p' -ᵥ p, p' -ᵥ p⟫) 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (s : EuclideanGeometry.Sphere P) (p p' : P)
Goal: s.secondInter p (p' -ᵥ p) = (AffineMap.lineMap p p') (-2 * ⟪p' -ᵥ p, p -ᵥ s.center⟫_ℝ / ⟪p' -ᵥ p, p' -ᵥ p⟫_ℝ)
-- EuclideanGeometry.Sphere.secondInter_vsub_mem_affineSpan
theorem Sphere.secondInter_vsub_mem_affineSpan (s : Sphere P) (p₁ p₂ : P) :
    s.secondInter p₁ (p₂ -ᵥ p₁) ∈ line[ℝ, p₁, p₂] 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (s : EuclideanGeometry.Sphere P) (p₁ p₂ : P)
Goal: s.secondInter p₁ (p₂ -ᵥ p₁) ∈ affineSpan ℝ {p₁, p₂}
-- EuclideanGeometry.Sphere.secondInter_collinear
theorem Sphere.secondInter_collinear (s : Sphere P) (p p' : P) :
    Collinear ℝ ({p, p', s.secondInter p (p' -ᵥ p)} : Set P) 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (s : EuclideanGeometry.Sphere P) (p p' : P)
Goal: Collinear ℝ {p, p', s.secondInter p (p' -ᵥ p)}
-- EuclideanGeometry.Sphere.wbtw_secondInter
theorem Sphere.wbtw_secondInter {s : Sphere P} {p p' : P} (hp : p ∈ s)
    (hp' : dist p' s.center ≤ s.radius) : Wbtw ℝ p p' (s.secondInter p (p' -ᵥ p)) 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {s : EuclideanGeometry.Sphere P} {p p' : P} (hp : p ∈ s) (hp' : dist p' s.center ≤ s.radius)
Goal: Wbtw ℝ p p' (s.secondInter p (p' -ᵥ p))
-- EuclideanGeometry.Sphere.sbtw_secondInter
theorem Sphere.sbtw_secondInter {s : Sphere P} {p p' : P} (hp : p ∈ s)
    (hp' : dist p' s.center < s.radius) : Sbtw ℝ p p' (s.secondInter p (p' -ᵥ p)) 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {s : EuclideanGeometry.Sphere P} {p p' : P} (hp : p ∈ s) (hp' : dist p' s.center < s.radius)
Goal: Sbtw ℝ p p' (s.secondInter p (p' -ᵥ p))
-- stereoToFun_apply
@[simp]
theorem stereoToFun_apply (x : E) :
    stereoToFun v x = (2 / ((1 : ℝ) - innerSL ℝ v x)) • orthogonalProjection (ℝ ∙ v)ᗮ x 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] {v : E} (x : E)
Goal: stereoToFun v x = (2 / (1 - ((innerSL ℝ) v) x)) • (orthogonalProjection (Submodule.span ℝ {v})ᗮ) x
-- contDiffOn_stereoToFun
theorem contDiffOn_stereoToFun :
    ContDiffOn ℝ ⊤ (stereoToFun v) {x : E | innerSL _ v x ≠ (1 : ℝ)} 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] {v : E}
Goal: ContDiffOn ℝ ⊤ (stereoToFun v) {x | ((innerSL ℝ) v) x ≠ 1}
-- continuousOn_stereoToFun
theorem continuousOn_stereoToFun :
    ContinuousOn (stereoToFun v) {x : E | innerSL _ v x ≠ (1 : ℝ)} 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] {v : E}
Goal: ContinuousOn (stereoToFun v) {x | ((innerSL ℝ) v) x ≠ 1}
-- stereoInvFunAux_apply
@[simp]
theorem stereoInvFunAux_apply (w : E) :
    stereoInvFunAux v w = (‖w‖ ^ 2 + 4)⁻¹ • ((4 : ℝ) • w + (‖w‖ ^ 2 - 4) • v) 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] {v : E} (w : E)
Goal: stereoInvFunAux v w = (‖w‖ ^ 2 + 4)⁻¹ • (4 • w + (‖w‖ ^ 2 - 4) • v)
-- stereoInvFunAux_mem
theorem stereoInvFunAux_mem (hv : ‖v‖ = 1) {w : E} (hw : w ∈ (ℝ ∙ v)ᗮ) :
    stereoInvFunAux v w ∈ sphere (0 : E) 1 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] {v : E} (hv : ‖v‖ = 1) {w : E} (hw : w ∈ (Submodule.span ℝ {v})ᗮ)
Goal: stereoInvFunAux v w ∈ Metric.sphere 0 1
-- hasFDerivAt_stereoInvFunAux
theorem hasFDerivAt_stereoInvFunAux (v : E) :
    HasFDerivAt (stereoInvFunAux v) (ContinuousLinearMap.id ℝ E) 0 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] (v : E)
Goal: HasFDerivAt (stereoInvFunAux v) (ContinuousLinearMap.id ℝ E) 0
-- hasFDerivAt_stereoInvFunAux_comp_coe
theorem hasFDerivAt_stereoInvFunAux_comp_coe (v : E) :
    HasFDerivAt (stereoInvFunAux v ∘ ((↑) : (ℝ ∙ v)ᗮ → E)) (ℝ ∙ v)ᗮ.subtypeL 0 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] (v : E)
Goal: HasFDerivAt (stereoInvFunAux v ∘ Subtype.val) (Submodule.span ℝ {v})ᗮ.subtypeL 0
-- contDiff_stereoInvFunAux
theorem contDiff_stereoInvFunAux : ContDiff ℝ ⊤ (stereoInvFunAux v) 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] {v : E}
Goal: ContDiff ℝ ⊤ (stereoInvFunAux v)
-- stereoInvFun_apply
@[simp]
theorem stereoInvFun_apply (hv : ‖v‖ = 1) (w : (ℝ ∙ v)ᗮ) :
    (stereoInvFun hv w : E) = (‖w‖ ^ 2 + 4)⁻¹ • ((4 : ℝ) • w + (‖w‖ ^ 2 - 4) • v) 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] {v : E} (hv : ‖v‖ = 1) (w : ↥(Submodule.span ℝ {v})ᗮ)
Goal: ↑(stereoInvFun hv w) = (‖w‖ ^ 2 + 4)⁻¹ • (4 • ↑w + (‖w‖ ^ 2 - 4) • v)
-- stereoInvFun_ne_north_pole
theorem stereoInvFun_ne_north_pole (hv : ‖v‖ = 1) (w : (ℝ ∙ v)ᗮ) :
    stereoInvFun hv w ≠ (⟨v, by simp [hv]⟩ : sphere (0 : E) 1) 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] {v : E} (hv : ‖v‖ = 1) (w : ↥(Submodule.span ℝ {v})ᗮ)
Goal: stereoInvFun hv w ≠ ⟨v, ⋯⟩
-- continuous_stereoInvFun
theorem continuous_stereoInvFun (hv : ‖v‖ = 1) : Continuous (stereoInvFun hv) 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] {v : E} (hv : ‖v‖ = 1)
Goal: Continuous (stereoInvFun hv)
-- stereo_left_inv
theorem stereo_left_inv (hv : ‖v‖ = 1) {x : sphere (0 : E) 1} (hx : (x : E) ≠ v) :
    stereoInvFun hv (stereoToFun v x) = x 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] {v : E} (hv : ‖v‖ = 1) {x : ↑(Metric.sphere 0 1)} (hx : ↑x ≠ v)
Goal: stereoInvFun hv (stereoToFun v ↑x) = x
-- stereo_right_inv
theorem stereo_right_inv (hv : ‖v‖ = 1) (w : (ℝ ∙ v)ᗮ) : stereoToFun v (stereoInvFun hv w) = w 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] {v : E} (hv : ‖v‖ = 1) (w : ↥(Submodule.span ℝ {v})ᗮ)
Goal: stereoToFun v ↑(stereoInvFun hv w) = w
-- stereographic_apply
theorem stereographic_apply (hv : ‖v‖ = 1) (x : sphere (0 : E) 1) :
    stereographic hv x = (2 / ((1 : ℝ) - inner v x)) • orthogonalProjection (ℝ ∙ v)ᗮ x 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] {v : E} (hv : ‖v‖ = 1) (x : ↑(Metric.sphere 0 1))
Goal: ↑(stereographic hv) x = (2 / (1 - ⟪v, ↑x⟫_ℝ)) • (orthogonalProjection (Submodule.span ℝ {v})ᗮ) ↑x
-- stereographic_source
@[simp]
theorem stereographic_source (hv : ‖v‖ = 1) : (stereographic hv).source = {⟨v, by simp [hv]⟩}ᶜ 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] {v : E} (hv : ‖v‖ = 1)
Goal: (stereographic hv).source = {⟨v, ⋯⟩}ᶜ
-- stereographic_target
@[simp]
theorem stereographic_target (hv : ‖v‖ = 1) : (stereographic hv).target = Set.univ 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] {v : E} (hv : ‖v‖ = 1)
Goal: (stereographic hv).target = Set.univ
-- stereographic_apply_neg
@[simp]
theorem stereographic_apply_neg (v : sphere (0 : E) 1) :
    stereographic (norm_eq_of_mem_sphere v) (-v) = 0 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] (v : ↑(Metric.sphere 0 1))
Goal: ↑(stereographic ⋯) (-v) = 0
-- stereographic_neg_apply
@[simp]
theorem stereographic_neg_apply (v : sphere (0 : E) 1) :
    stereographic (norm_eq_of_mem_sphere (-v)) v = 0 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] (v : ↑(Metric.sphere 0 1))
Goal: ↑(stereographic ⋯) v = 0
-- _private.Mathlib.Geometry.Manifold.Instances.Sphere.0.findim
private theorem findim (n : ℕ) [Fact (finrank ℝ E = n + 1)] : FiniteDimensional ℝ E 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] (n : ℕ) [Fact (FiniteDimensional.finrank ℝ E = n + 1)]
Goal: FiniteDimensional ℝ E
-- stereographic'_source
@[simp]
theorem stereographic'_source {n : ℕ} [Fact (finrank ℝ E = n + 1)] (v : sphere (0 : E) 1) :
    (stereographic' n v).source = {v}ᶜ 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] {n : ℕ} [Fact (FiniteDimensional.finrank ℝ E = n + 1)] (v : ↑(Metric.sphere 0 1))
Goal: (stereographic' n v).source = {v}ᶜ
-- stereographic'_target
@[simp]
theorem stereographic'_target {n : ℕ} [Fact (finrank ℝ E = n + 1)] (v : sphere (0 : E) 1) :
    (stereographic' n v).target = Set.univ 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] {n : ℕ} [Fact (FiniteDimensional.finrank ℝ E = n + 1)] (v : ↑(Metric.sphere 0 1))
Goal: (stereographic' n v).target = Set.univ
-- sphere_ext_iff
theorem sphere_ext_iff (u v : sphere (0 : E) 1) : u = v ↔ ⟪(u : E), v⟫_ℝ = 1 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] (u v : ↑(Metric.sphere 0 1))
Goal: u = v ↔ ⟪↑u, ↑v⟫_ℝ = 1
-- stereographic'_symm_apply
theorem stereographic'_symm_apply {n : ℕ} [Fact (finrank ℝ E = n + 1)] (v : sphere (0 : E) 1)
    (x : EuclideanSpace ℝ (Fin n)) :
    ((stereographic' n v).symm x : E) =
      let U : (ℝ ∙ (v : E))ᗮ ≃ₗᵢ[ℝ] EuclideanSpace ℝ (Fin n) :=
        (OrthonormalBasis.fromOrthogonalSpanSingleton n (ne_zero_of_mem_unit_sphere v)).repr
      (‖(U.symm x : E)‖ ^ 2 + 4)⁻¹ • (4 : ℝ) • (U.symm x : E) +
        (‖(U.symm x : E)‖ ^ 2 + 4)⁻¹ • (‖(U.symm x : E)‖ ^ 2 - 4) • v.val 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] {n : ℕ} [Fact (FiniteDimensional.finrank ℝ E = n + 1)] (v : ↑(Metric.sphere 0 1)) (x : EuclideanSpace ℝ (Fin n))
Goal: ↑(↑(stereographic' n v).symm x) =
  let U := (OrthonormalBasis.fromOrthogonalSpanSingleton n ⋯).repr;
  (‖↑(U.symm x)‖ ^ 2 + 4)⁻¹ • 4 • ↑(U.symm x) + (‖↑(U.symm x)‖ ^ 2 + 4)⁻¹ • (‖↑(U.symm x)‖ ^ 2 - 4) • ↑v
-- contMDiff_coe_sphere
theorem contMDiff_coe_sphere {n : ℕ} [Fact (finrank ℝ E = n + 1)] :
    ContMDiff (𝓡 n) 𝓘(ℝ, E) ∞ ((↑) : sphere (0 : E) 1 → E) 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] {n : ℕ} [Fact (FiniteDimensional.finrank ℝ E = n + 1)]
Goal: ContMDiff 𝓘(ℝ, EuclideanSpace ℝ (Fin n)) 𝓘(ℝ, E) ⊤ Subtype.val
-- ContMDiff.codRestrict_sphere
theorem ContMDiff.codRestrict_sphere {n : ℕ} [Fact (finrank ℝ E = n + 1)] {m : ℕ∞} {f : M → E}
    (hf : ContMDiff I 𝓘(ℝ, E) m f) (hf' : ∀ x, f x ∈ sphere (0 : E) 1) :
    ContMDiff I (𝓡 n) m (Set.codRestrict _ _ hf' : M → sphere (0 : E) 1) 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] {F : Type u_2} [NormedAddCommGroup F] [NormedSpace ℝ F] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ℝ F H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] [SmoothManifoldWithCorners I M] {n : ℕ} [Fact (FiniteDimensional.finrank ℝ E = n + 1)] {m : ℕ∞} {f : M → E} (hf : ContMDiff I 𝓘(ℝ, E) m f) (hf' : ∀ (x : M), f x ∈ Metric.sphere 0 1)
Goal: ContMDiff I 𝓘(ℝ, EuclideanSpace ℝ (Fin n)) m (Set.codRestrict f (Metric.sphere 0 1) hf')
-- contMDiff_neg_sphere
theorem contMDiff_neg_sphere {n : ℕ} [Fact (finrank ℝ E = n + 1)] :
    ContMDiff (𝓡 n) (𝓡 n) ∞ fun x : sphere (0 : E) 1 => -x 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] {n : ℕ} [Fact (FiniteDimensional.finrank ℝ E = n + 1)]
Goal: ContMDiff 𝓘(ℝ, EuclideanSpace ℝ (Fin n)) 𝓘(ℝ, EuclideanSpace ℝ (Fin n)) ⊤ fun x => -x
-- range_mfderiv_coe_sphere
theorem range_mfderiv_coe_sphere {n : ℕ} [Fact (finrank ℝ E = n + 1)] (v : sphere (0 : E) 1) :
    LinearMap.range (mfderiv (𝓡 n) 𝓘(ℝ, E) ((↑) : sphere (0 : E) 1 → E) v :
    TangentSpace (𝓡 n) v →L[ℝ] E) = (ℝ ∙ (v : E))ᗮ 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] {n : ℕ} [Fact (FiniteDimensional.finrank ℝ E = n + 1)] (v : ↑(Metric.sphere 0 1))
Goal: LinearMap.range (mfderiv 𝓘(ℝ, EuclideanSpace ℝ (Fin n)) 𝓘(ℝ, E) Subtype.val v) = (Submodule.span ℝ {↑v})ᗮ
-- mfderiv_coe_sphere_injective
theorem mfderiv_coe_sphere_injective {n : ℕ} [Fact (finrank ℝ E = n + 1)] (v : sphere (0 : E) 1) :
    Injective (mfderiv (𝓡 n) 𝓘(ℝ, E) ((↑) : sphere (0 : E) 1 → E) v) 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] {n : ℕ} [Fact (FiniteDimensional.finrank ℝ E = n + 1)] (v : ↑(Metric.sphere 0 1))
Goal: Function.Injective ⇑(mfderiv 𝓘(ℝ, EuclideanSpace ℝ (Fin n)) 𝓘(ℝ, E) Subtype.val v)