ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- GromovHausdorff.toGHSpace_eq_toGHSpace_iff_isometryEquiv
theorem toGHSpace_eq_toGHSpace_iff_isometryEquiv {X : Type u} [MetricSpace X] [CompactSpace X]
    [Nonempty X] {Y : Type v} [MetricSpace Y] [CompactSpace Y] [Nonempty Y] :
    toGHSpace X = toGHSpace Y ↔ Nonempty (X ≃ᵢ Y) 
Arguments: {X : Type u} [MetricSpace X] [CompactSpace X] [Nonempty X] {Y : Type v} [MetricSpace Y] [CompactSpace Y] [Nonempty Y]
Goal: GromovHausdorff.toGHSpace X = GromovHausdorff.toGHSpace Y ↔ Nonempty (X ≃ᵢ Y)
-- GromovHausdorff.dist_ghDist
theorem dist_ghDist (p q : GHSpace) : dist p q = ghDist p.Rep q.Rep 
Arguments: (p q : GromovHausdorff.GHSpace)
Goal: dist p q = GromovHausdorff.ghDist p.Rep q.Rep
-- GromovHausdorff.ghDist_le_hausdorffDist
theorem ghDist_le_hausdorffDist {X : Type u} [MetricSpace X] [CompactSpace X] [Nonempty X]
    {Y : Type v} [MetricSpace Y] [CompactSpace Y] [Nonempty Y] {γ : Type w} [MetricSpace γ]
    {Φ : X → γ} {Ψ : Y → γ} (ha : Isometry Φ) (hb : Isometry Ψ) :
    ghDist X Y ≤ hausdorffDist (range Φ) (range Ψ) 
Arguments: {X : Type u} [MetricSpace X] [CompactSpace X] [Nonempty X] {Y : Type v} [MetricSpace Y] [CompactSpace Y] [Nonempty Y] {γ : Type w} [MetricSpace γ] {Φ : X → γ} {Ψ : Y → γ} (ha : Isometry Φ) (hb : Isometry Ψ)
Goal: GromovHausdorff.ghDist X Y ≤ Metric.hausdorffDist (Set.range Φ) (Set.range Ψ)
-- GromovHausdorff.hausdorffDist_optimal
theorem hausdorffDist_optimal {X : Type u} [MetricSpace X] [CompactSpace X] [Nonempty X]
    {Y : Type v} [MetricSpace Y] [CompactSpace Y] [Nonempty Y] :
    hausdorffDist (range (optimalGHInjl X Y)) (range (optimalGHInjr X Y)) = ghDist X Y 
Arguments: {X : Type u} [MetricSpace X] [CompactSpace X] [Nonempty X] {Y : Type v} [MetricSpace Y] [CompactSpace Y] [Nonempty Y]
Goal: Metric.hausdorffDist (Set.range (GromovHausdorff.optimalGHInjl X Y)) (Set.range (GromovHausdorff.optimalGHInjr X Y)) =
  GromovHausdorff.ghDist X Y
-- GromovHausdorff.ghDist_eq_hausdorffDist
theorem ghDist_eq_hausdorffDist (X : Type u) [MetricSpace X] [CompactSpace X] [Nonempty X]
    (Y : Type v) [MetricSpace Y] [CompactSpace Y] [Nonempty Y] :
    ∃ Φ : X → ℓ_infty_ℝ,
      ∃ Ψ : Y → ℓ_infty_ℝ,
        Isometry Φ ∧ Isometry Ψ ∧ ghDist X Y = hausdorffDist (range Φ) (range Ψ) 
Arguments: (X : Type u) [MetricSpace X] [CompactSpace X] [Nonempty X] (Y : Type v) [MetricSpace Y] [CompactSpace Y] [Nonempty Y]
Goal: ∃ Φ Ψ, Isometry Φ ∧ Isometry Ψ ∧ GromovHausdorff.ghDist X Y = Metric.hausdorffDist (Set.range Φ) (Set.range Ψ)
-- GromovHausdorff.ghDist_le_nonemptyCompacts_dist
theorem ghDist_le_nonemptyCompacts_dist (p q : NonemptyCompacts X) :
    dist p.toGHSpace q.toGHSpace ≤ dist p q 
Arguments: {X : Type u} [MetricSpace X] (p q : TopologicalSpace.NonemptyCompacts X)
Goal: dist p.toGHSpace q.toGHSpace ≤ dist p q
-- GromovHausdorff.toGHSpace_lipschitz
theorem toGHSpace_lipschitz :
    LipschitzWith 1 (NonemptyCompacts.toGHSpace : NonemptyCompacts X → GHSpace) 
Arguments: {X : Type u} [MetricSpace X]
Goal: LipschitzWith 1 TopologicalSpace.NonemptyCompacts.toGHSpace
-- GromovHausdorff.toGHSpace_continuous
theorem toGHSpace_continuous :
    Continuous (NonemptyCompacts.toGHSpace : NonemptyCompacts X → GHSpace) 
Arguments: {X : Type u} [MetricSpace X]
Goal: Continuous TopologicalSpace.NonemptyCompacts.toGHSpace
-- GromovHausdorff.ghDist_le_of_approx_subsets
theorem ghDist_le_of_approx_subsets {s : Set X} (Φ : s → Y) {ε₁ ε₂ ε₃ : ℝ}
    (hs : ∀ x : X, ∃ y ∈ s, dist x y ≤ ε₁) (hs' : ∀ x : Y, ∃ y : s, dist x (Φ y) ≤ ε₃)
    (H : ∀ x y : s, |dist x y - dist (Φ x) (Φ y)| ≤ ε₂) : ghDist X Y ≤ ε₁ + ε₂ / 2 + ε₃ 
Arguments: {X : Type u} [MetricSpace X] [CompactSpace X] [Nonempty X] {Y : Type v} [MetricSpace Y] [CompactSpace Y] [Nonempty Y] {s : Set X} (Φ : ↑s → Y) {ε₁ ε₂ ε₃ : ℝ} (hs : ∀ (x : X), ∃ y ∈ s, dist x y ≤ ε₁) (hs' : ∀ (x : Y), ∃ y, dist x (Φ y) ≤ ε₃) (H : ∀ (x y : ↑s), |dist x y - dist (Φ x) (Φ y)| ≤ ε₂)
Goal: GromovHausdorff.ghDist X Y ≤ ε₁ + ε₂ / 2 + ε₃
-- GromovHausdorff.totallyBounded
theorem totallyBounded {t : Set GHSpace} {C : ℝ} {u : ℕ → ℝ} {K : ℕ → ℕ}
    (ulim : Tendsto u atTop (𝓝 0)) (hdiam : ∀ p ∈ t, diam (univ : Set (GHSpace.Rep p)) ≤ C)
    (hcov : ∀ p ∈ t, ∀ n : ℕ, ∃ s : Set (GHSpace.Rep p),
      (#s) ≤ K n ∧ univ ⊆ ⋃ x ∈ s, ball x (u n)) :
    TotallyBounded t 
Arguments: {t : Set GromovHausdorff.GHSpace} {C : ℝ} {u : ℕ → ℝ} {K : ℕ → ℕ} (ulim : Filter.Tendsto u Filter.atTop (𝓝 0)) (hdiam : ∀ p ∈ t, Metric.diam Set.univ ≤ C) (hcov : ∀ p ∈ t, ∀ (n : ℕ), ∃ s, #↑s ≤ ↑(K n) ∧ Set.univ ⊆ ⋃ x ∈ s, Metric.ball x (u n))
Goal: TotallyBounded t
-- GromovHausdorff.AuxGluingStruct.isom
structure AuxGluingStruct (A : Type) [MetricSpace A] : Type 1 where
  Space : Type
  metric : MetricSpace Space
  embed : A → Space
  isom : Isometry embed
Arguments: {A : Type} [MetricSpace A] (self : GromovHausdorff.AuxGluingStruct A)
Goal: Isometry self.embed
-- EuclideanGeometry.inversion_def
theorem inversion_def :
    inversion = fun (c : P) (R : ℝ) (x : P) => (R / dist x c) ^ 2 • (x -ᵥ c) +ᵥ c 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P]
Goal: EuclideanGeometry.inversion = fun c R x => (R / dist x c) ^ 2 • (x -ᵥ c) +ᵥ c
-- EuclideanGeometry.inversion_eq_lineMap
theorem inversion_eq_lineMap (c : P) (R : ℝ) (x : P) :
    inversion c R x = lineMap c x ((R / dist x c) ^ 2) 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (c : P) (R : ℝ) (x : P)
Goal: EuclideanGeometry.inversion c R x = (AffineMap.lineMap c x) ((R / dist x c) ^ 2)
-- EuclideanGeometry.inversion_vsub_center
theorem inversion_vsub_center (c : P) (R : ℝ) (x : P) :
    inversion c R x -ᵥ c = (R / dist x c) ^ 2 • (x -ᵥ c) 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (c : P) (R : ℝ) (x : P)
Goal: EuclideanGeometry.inversion c R x -ᵥ c = (R / dist x c) ^ 2 • (x -ᵥ c)
-- EuclideanGeometry.inversion_self
@[simp]
theorem inversion_self (c : P) (R : ℝ) : inversion c R c = c 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (c : P) (R : ℝ)
Goal: EuclideanGeometry.inversion c R c = c
-- EuclideanGeometry.inversion_zero_radius
@[simp]
theorem inversion_zero_radius (c x : P) : inversion c 0 x = c 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (c x : P)
Goal: EuclideanGeometry.inversion c 0 x = c
-- EuclideanGeometry.inversion_mul
theorem inversion_mul (c : P) (a R : ℝ) (x : P) :
    inversion c (a * R) x = homothety c (a ^ 2) (inversion c R x) 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (c : P) (a R : ℝ) (x : P)
Goal: EuclideanGeometry.inversion c (a * R) x = (AffineMap.homothety c (a ^ 2)) (EuclideanGeometry.inversion c R x)
-- EuclideanGeometry.inversion_dist_center
@[simp]
theorem inversion_dist_center (c x : P) : inversion c (dist x c) x = x 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (c x : P)
Goal: EuclideanGeometry.inversion c (dist x c) x = x
-- EuclideanGeometry.inversion_dist_center'
@[simp]
theorem inversion_dist_center' (c x : P) : inversion c (dist c x) x = x 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (c x : P)
Goal: EuclideanGeometry.inversion c (dist c x) x = x
-- EuclideanGeometry.inversion_of_mem_sphere
theorem inversion_of_mem_sphere (h : x ∈ Metric.sphere c R) : inversion c R x = x 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {c x : P} {R : ℝ} (h : x ∈ Metric.sphere c R)
Goal: EuclideanGeometry.inversion c R x = x
-- EuclideanGeometry.dist_inversion_center
theorem dist_inversion_center (c x : P) (R : ℝ) : dist (inversion c R x) c = R ^ 2 / dist x c 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (c x : P) (R : ℝ)
Goal: dist (EuclideanGeometry.inversion c R x) c = R ^ 2 / dist x c
-- EuclideanGeometry.dist_center_inversion
theorem dist_center_inversion (c x : P) (R : ℝ) : dist c (inversion c R x) = R ^ 2 / dist c x 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (c x : P) (R : ℝ)
Goal: dist c (EuclideanGeometry.inversion c R x) = R ^ 2 / dist c x
-- EuclideanGeometry.inversion_inversion
@[simp]
theorem inversion_inversion (c : P) {R : ℝ} (hR : R ≠ 0) (x : P) :
    inversion c R (inversion c R x) = x 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (c : P) {R : ℝ} (hR : R ≠ 0) (x : P)
Goal: EuclideanGeometry.inversion c R (EuclideanGeometry.inversion c R x) = x
-- EuclideanGeometry.inversion_involutive
theorem inversion_involutive (c : P) {R : ℝ} (hR : R ≠ 0) : Involutive (inversion c R) 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (c : P) {R : ℝ} (hR : R ≠ 0)
Goal: Function.Involutive (EuclideanGeometry.inversion c R)
-- EuclideanGeometry.inversion_surjective
theorem inversion_surjective (c : P) {R : ℝ} (hR : R ≠ 0) : Surjective (inversion c R) 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (c : P) {R : ℝ} (hR : R ≠ 0)
Goal: Function.Surjective (EuclideanGeometry.inversion c R)
-- EuclideanGeometry.inversion_injective
theorem inversion_injective (c : P) {R : ℝ} (hR : R ≠ 0) : Injective (inversion c R) 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (c : P) {R : ℝ} (hR : R ≠ 0)
Goal: Function.Injective (EuclideanGeometry.inversion c R)
-- EuclideanGeometry.inversion_bijective
theorem inversion_bijective (c : P) {R : ℝ} (hR : R ≠ 0) : Bijective (inversion c R) 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (c : P) {R : ℝ} (hR : R ≠ 0)
Goal: Function.Bijective (EuclideanGeometry.inversion c R)
-- EuclideanGeometry.inversion_eq_center
theorem inversion_eq_center (hR : R ≠ 0) : inversion c R x = c ↔ x = c 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {c x : P} {R : ℝ} (hR : R ≠ 0)
Goal: EuclideanGeometry.inversion c R x = c ↔ x = c
-- EuclideanGeometry.inversion_eq_center'
@[simp]
theorem inversion_eq_center' : inversion c R x = c ↔ x = c ∨ R = 0 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {c x : P} {R : ℝ}
Goal: EuclideanGeometry.inversion c R x = c ↔ x = c ∨ R = 0
-- EuclideanGeometry.center_eq_inversion
theorem center_eq_inversion (hR : R ≠ 0) : c = inversion c R x ↔ x = c 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {c x : P} {R : ℝ} (hR : R ≠ 0)
Goal: c = EuclideanGeometry.inversion c R x ↔ x = c
-- EuclideanGeometry.center_eq_inversion'
@[simp]
theorem center_eq_inversion' : c = inversion c R x ↔ x = c ∨ R = 0 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {c x : P} {R : ℝ}
Goal: c = EuclideanGeometry.inversion c R x ↔ x = c ∨ R = 0
-- EuclideanGeometry.dist_inversion_inversion
theorem dist_inversion_inversion (hx : x ≠ c) (hy : y ≠ c) (R : ℝ) :
    dist (inversion c R x) (inversion c R y) = R ^ 2 / (dist x c * dist y c) * dist x y 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {c x y : P} (hx : x ≠ c) (hy : y ≠ c) (R : ℝ)
Goal: dist (EuclideanGeometry.inversion c R x) (EuclideanGeometry.inversion c R y) = R ^ 2 / (dist x c * dist y c) * dist x y
-- EuclideanGeometry.dist_inversion_mul_dist_center_eq
theorem dist_inversion_mul_dist_center_eq (hx : x ≠ c) (hy : y ≠ c) :
    dist (inversion c R x) y * dist x c = dist x (inversion c R y) * dist y c 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {c x y : P} {R : ℝ} (hx : x ≠ c) (hy : y ≠ c)
Goal: dist (EuclideanGeometry.inversion c R x) y * dist x c = dist x (EuclideanGeometry.inversion c R y) * dist y c
-- EuclideanGeometry.mul_dist_le_mul_dist_add_mul_dist
theorem mul_dist_le_mul_dist_add_mul_dist (a b c d : P) :
    dist a c * dist b d ≤ dist a b * dist c d + dist b c * dist a d 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (a b c d : P)
Goal: dist a c * dist b d ≤ dist a b * dist c d + dist b c * dist a d
-- Filter.Tendsto.inversion
protected theorem Filter.Tendsto.inversion {α : Type*} {x c : P} {R : ℝ} {l : Filter α}
    {fc fx : α → P} {fR : α → ℝ} (hc : Tendsto fc l (𝓝 c)) (hR : Tendsto fR l (𝓝 R))
    (hx : Tendsto fx l (𝓝 x)) (hne : x ≠ c) :
    Tendsto (fun a ↦ inversion (fc a) (fR a) (fx a)) l (𝓝 (inversion c R x)) 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {α : Type u_3} {x c : P} {R : ℝ} {l : Filter α} {fc fx : α → P} {fR : α → ℝ} (hc : Filter.Tendsto fc l (𝓝 c)) (hR : Filter.Tendsto fR l (𝓝 R)) (hx : Filter.Tendsto fx l (𝓝 x)) (hne : x ≠ c)
Goal: Filter.Tendsto (fun a => EuclideanGeometry.inversion (fc a) (fR a) (fx a)) l (𝓝 (EuclideanGeometry.inversion c R x))
-- ContinuousWithinAt.inversion
protected nonrec theorem ContinuousWithinAt.inversion (hc : ContinuousWithinAt c s a₀)
    (hR : ContinuousWithinAt R s a₀) (hx : ContinuousWithinAt x s a₀) (hne : x a₀ ≠ c a₀) :
    ContinuousWithinAt (fun a ↦ inversion (c a) (R a) (x a)) s a₀ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {X : Type u_3} [TopologicalSpace X] {c x : X → P} {R : X → ℝ} {a₀ : X} {s : Set X} (hc : ContinuousWithinAt c s a₀) (hR : ContinuousWithinAt R s a₀) (hx : ContinuousWithinAt x s a₀) (hne : x a₀ ≠ c a₀)
Goal: ContinuousWithinAt (fun a => EuclideanGeometry.inversion (c a) (R a) (x a)) s a₀
-- ContinuousAt.inversion
protected nonrec theorem ContinuousAt.inversion (hc : ContinuousAt c a₀) (hR : ContinuousAt R a₀)
    (hx : ContinuousAt x a₀) (hne : x a₀ ≠ c a₀) :
    ContinuousAt (fun a ↦ inversion (c a) (R a) (x a)) a₀ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {X : Type u_3} [TopologicalSpace X] {c x : X → P} {R : X → ℝ} {a₀ : X} (hc : ContinuousAt c a₀) (hR : ContinuousAt R a₀) (hx : ContinuousAt x a₀) (hne : x a₀ ≠ c a₀)
Goal: ContinuousAt (fun a => EuclideanGeometry.inversion (c a) (R a) (x a)) a₀
-- ContinuousOn.inversion
protected theorem ContinuousOn.inversion (hc : ContinuousOn c s) (hR : ContinuousOn R s)
    (hx : ContinuousOn x s) (hne : ∀ a ∈ s, x a ≠ c a) :
    ContinuousOn (fun a ↦ inversion (c a) (R a) (x a)) s 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {X : Type u_3} [TopologicalSpace X] {c x : X → P} {R : X → ℝ} {s : Set X} (hc : ContinuousOn c s) (hR : ContinuousOn R s) (hx : ContinuousOn x s) (hne : ∀ a ∈ s, x a ≠ c a)
Goal: ContinuousOn (fun a => EuclideanGeometry.inversion (c a) (R a) (x a)) s
-- Continuous.inversion
protected theorem Continuous.inversion (hc : Continuous c) (hR : Continuous R) (hx : Continuous x)
    (hne : ∀ a, x a ≠ c a) : Continuous (fun a ↦ inversion (c a) (R a) (x a)) 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] {X : Type u_3} [TopologicalSpace X] {c x : X → P} {R : X → ℝ} (hc : Continuous c) (hR : Continuous R) (hx : Continuous x) (hne : ∀ (a : X), x a ≠ c a)
Goal: Continuous fun a => EuclideanGeometry.inversion (c a) (R a) (x a)
-- EuclideanGeometry.mul_dist_add_mul_dist_eq_mul_dist_of_cospherical
theorem mul_dist_add_mul_dist_eq_mul_dist_of_cospherical {a b c d p : P}
    (h : Cospherical ({a, b, c, d} : Set P)) (hapc : ∠ a p c = π) (hbpd : ∠ b p d = π) :
    dist a b * dist c d + dist b c * dist d a = dist a c * dist b d 
Arguments: {V : Type u_1} [NormedAddCommGroup V] [InnerProductSpace ℝ V] {P : Type u_2} [MetricSpace P] [NormedAddTorsor V P] {a b c d p : P} (h : EuclideanGeometry.Cospherical {a, b, c, d}) (hapc : ∠ a p c = π) (hbpd : ∠ b p d = π)
Goal: dist a b * dist c d + dist b c * dist d a = dist a c * dist b d
-- AlgebraicGeometry.PresheafedSpace.mk_coe
theorem mk_coe (carrier) (presheaf) :
    (({ carrier
        presheaf } : PresheafedSpace C) : TopCat) = carrier 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] (carrier : TopCat) (presheaf : TopCat.Presheaf C carrier)
Goal: ↑{ carrier := carrier, presheaf := presheaf } = carrier
-- AlgebraicGeometry.PresheafedSpace.Hom.ext
@[ext]
theorem Hom.ext {X Y : PresheafedSpace C} (α β : Hom X Y) (w : α.base = β.base)
    (h : α.c ≫ whiskerRight (eqToHom (by rw [w])) _ = β.c) : α = β 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X Y : AlgebraicGeometry.PresheafedSpace C} (α β : X.Hom Y) (w : α.base = β.base) (h : α.c ≫ CategoryTheory.whiskerRight (CategoryTheory.eqToHom ⋯) X.presheaf = β.c)
Goal: α = β
-- AlgebraicGeometry.PresheafedSpace.hext
theorem hext {X Y : PresheafedSpace C} (α β : Hom X Y) (w : α.base = β.base) (h : HEq α.c β.c) :
    α = β 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X Y : AlgebraicGeometry.PresheafedSpace C} (α β : X.Hom Y) (w : α.base = β.base) (h : HEq α.c β.c)
Goal: α = β
-- AlgebraicGeometry.PresheafedSpace.comp_c
theorem comp_c {X Y Z : PresheafedSpace C} (α : Hom X Y) (β : Hom Y Z) :
    (comp α β).c = β.c ≫ (Presheaf.pushforward _ β.base).map α.c 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X Y Z : AlgebraicGeometry.PresheafedSpace C} (α : X.Hom Y) (β : Y.Hom Z)
Goal: (AlgebraicGeometry.PresheafedSpace.comp α β).c = β.c ≫ (TopCat.Presheaf.pushforward C β.base).map α.c
-- AlgebraicGeometry.PresheafedSpace.ext
@[ext]
theorem ext {X Y : PresheafedSpace C} (α β : X ⟶ Y) (w : α.base = β.base)
    (h : α.c ≫ whiskerRight (eqToHom (by rw [w])) _ = β.c) : α = β 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X Y : AlgebraicGeometry.PresheafedSpace C} (α β : X ⟶ Y) (w : α.base = β.base) (h : α.c ≫ CategoryTheory.whiskerRight (CategoryTheory.eqToHom ⋯) X.presheaf = β.c)
Goal: α = β
-- AlgebraicGeometry.PresheafedSpace.id_base
@[simp]
theorem id_base (X : PresheafedSpace C) : (𝟙 X : X ⟶ X).base = 𝟙 (X : TopCat) 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] (X : AlgebraicGeometry.PresheafedSpace C)
Goal: (𝟙 X).base = 𝟙 ↑X
-- AlgebraicGeometry.PresheafedSpace.id_c
theorem id_c (X : PresheafedSpace C) :
    (𝟙 X : X ⟶ X).c = 𝟙 X.presheaf 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] (X : AlgebraicGeometry.PresheafedSpace C)
Goal: (𝟙 X).c = 𝟙 X.presheaf
-- AlgebraicGeometry.PresheafedSpace.id_c_app
@[simp]
theorem id_c_app (X : PresheafedSpace C) (U) :
    (𝟙 X : X ⟶ X).c.app U = X.presheaf.map (𝟙 U) 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] (X : AlgebraicGeometry.PresheafedSpace C) (U : (TopologicalSpace.Opens ↑↑X)ᵒᵖ)
Goal: (𝟙 X).c.app U = X.presheaf.map (𝟙 U)
-- AlgebraicGeometry.PresheafedSpace.comp_base
@[simp]
theorem comp_base {X Y Z : PresheafedSpace C} (f : X ⟶ Y) (g : Y ⟶ Z) :
    (f ≫ g).base = f.base ≫ g.base 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X Y Z : AlgebraicGeometry.PresheafedSpace C} (f : X ⟶ Y) (g : Y ⟶ Z)
Goal: (f ≫ g).base = f.base ≫ g.base
-- AlgebraicGeometry.PresheafedSpace.comp_c_app
@[reassoc, simp]
theorem comp_c_app {X Y Z : PresheafedSpace C} (α : X ⟶ Y) (β : Y ⟶ Z) (U) :
    (α ≫ β).c.app U = β.c.app U ≫ α.c.app (op ((Opens.map β.base).obj (unop U))) 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X Y Z : AlgebraicGeometry.PresheafedSpace C} (α : X ⟶ Y) (β : Y ⟶ Z) (U : (TopologicalSpace.Opens ↑↑Z)ᵒᵖ)
Goal: (α ≫ β).c.app U = β.c.app U ≫ α.c.app (Opposite.op ((TopologicalSpace.Opens.map β.base).obj (Opposite.unop U)))
-- AlgebraicGeometry.PresheafedSpace.congr_app
theorem congr_app {X Y : PresheafedSpace C} {α β : X ⟶ Y} (h : α = β) (U) :
    α.c.app U = β.c.app U ≫ X.presheaf.map (eqToHom (by subst h; rfl)) 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X Y : AlgebraicGeometry.PresheafedSpace C} {α β : X ⟶ Y} (h : α = β) (U : (TopologicalSpace.Opens ↑↑Y)ᵒᵖ)
Goal: α.c.app U = β.c.app U ≫ X.presheaf.map (CategoryTheory.eqToHom ⋯)
-- AlgebraicGeometry.PresheafedSpace.forget_map
@[simps]
def forget : PresheafedSpace C ⥤ TopCat 
Arguments: (C : Type u_1) [CategoryTheory.Category.{u_2, u_1} C]
Goal: ∀ {X Y : AlgebraicGeometry.PresheafedSpace C} (f : X ⟶ Y), (AlgebraicGeometry.PresheafedSpace.forget C).map f = f.base
-- AlgebraicGeometry.PresheafedSpace.forget_obj
@[simps]
def forget : PresheafedSpace C ⥤ TopCat 
Arguments: (C : Type u_1) [CategoryTheory.Category.{u_2, u_1} C] (X : AlgebraicGeometry.PresheafedSpace C)
Goal: (AlgebraicGeometry.PresheafedSpace.forget C).obj X = ↑X
-- AlgebraicGeometry.PresheafedSpace.isoOfComponents_inv
@[simps hom inv]
def isoOfComponents (H : X.1 ≅ Y.1) (α : H.hom _* X.2 ≅ Y.2) : X ≅ Y 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X Y : AlgebraicGeometry.PresheafedSpace C} (H : ↑X ≅ ↑Y) (α : (TopCat.Presheaf.pushforward C H.hom).obj X.presheaf ≅ Y.presheaf)
Goal: (AlgebraicGeometry.PresheafedSpace.isoOfComponents H α).inv =
  { base := H.inv, c := TopCat.Presheaf.toPushforwardOfIso H α.hom }
-- AlgebraicGeometry.PresheafedSpace.isoOfComponents_hom
@[simps hom inv]
def isoOfComponents (H : X.1 ≅ Y.1) (α : H.hom _* X.2 ≅ Y.2) : X ≅ Y 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X Y : AlgebraicGeometry.PresheafedSpace C} (H : ↑X ≅ ↑Y) (α : (TopCat.Presheaf.pushforward C H.hom).obj X.presheaf ≅ Y.presheaf)
Goal: (AlgebraicGeometry.PresheafedSpace.isoOfComponents H α).hom = { base := H.hom, c := α.inv }
-- AlgebraicGeometry.PresheafedSpace.sheafIsoOfIso_hom
@[simps]
def sheafIsoOfIso (H : X ≅ Y) : Y.2 ≅ H.hom.base _* X.2 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X Y : AlgebraicGeometry.PresheafedSpace C} (H : X ≅ Y)
Goal: (AlgebraicGeometry.PresheafedSpace.sheafIsoOfIso H).hom = H.hom.c
-- AlgebraicGeometry.PresheafedSpace.sheafIsoOfIso_inv
@[simps]
def sheafIsoOfIso (H : X ≅ Y) : Y.2 ≅ H.hom.base _* X.2 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X Y : AlgebraicGeometry.PresheafedSpace C} (H : X ≅ Y)
Goal: (AlgebraicGeometry.PresheafedSpace.sheafIsoOfIso H).inv =
  TopCat.Presheaf.pushforwardToOfIso ((AlgebraicGeometry.PresheafedSpace.forget C).mapIso H).symm H.inv.c
-- AlgebraicGeometry.PresheafedSpace.isIso_of_components
theorem isIso_of_components (f : X ⟶ Y) [IsIso f.base] [IsIso f.c] : IsIso f 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X Y : AlgebraicGeometry.PresheafedSpace C} (f : X ⟶ Y) [CategoryTheory.IsIso f.base] [CategoryTheory.IsIso f.c]
Goal: CategoryTheory.IsIso f
-- AlgebraicGeometry.PresheafedSpace.restrict_carrier
@[simps]
def restrict {U : TopCat} (X : PresheafedSpace C) {f : U ⟶ (X : TopCat)}
    (h : OpenEmbedding f) : PresheafedSpace C 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {U : TopCat} (X : AlgebraicGeometry.PresheafedSpace C) {f : U ⟶ ↑X} (h : OpenEmbedding ⇑f)
Goal: ↑(X.restrict h) = U
-- AlgebraicGeometry.PresheafedSpace.restrict_presheaf
@[simps]
def restrict {U : TopCat} (X : PresheafedSpace C) {f : U ⟶ (X : TopCat)}
    (h : OpenEmbedding f) : PresheafedSpace C 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {U : TopCat} (X : AlgebraicGeometry.PresheafedSpace C) {f : U ⟶ ↑X} (h : OpenEmbedding ⇑f)
Goal: (X.restrict h).presheaf = ⋯.functor.op ⋙ X.presheaf