File: Mathlib/Topology/MetricSpace/Ultra/Basic.lean

full_name: IsUltrametricDist
code: /-- The `dist : X → X → ℝ` respects the ultrametric inequality
of `dist(x, z) ≤ max (dist(x,y)) (dist(y,z))`. -/
class IsUltrametricDist (X : Type*) [Dist X] : Prop where
  dist_triangle_max : ∀ x y z : X, dist x z ≤ max (dist x y) (dist y z)
goal: Prop

full_name: IsUltrametricDist.dist_triangle_max
code: /-- The `dist : X → X → ℝ` respects the ultrametric inequality
of `dist(x, z) ≤ max (dist(x,y)) (dist(y,z))`. -/
class IsUltrametricDist (X : Type*) [Dist X] : Prop where
  dist_triangle_max : ∀ x y z : X, dist x z ≤ max (dist x y) (dist y z)
goal: dist x z ≤ max (dist x y) (dist y z)

full_name: dist_triangle_max
code: lemma dist_triangle_max : dist x z ≤ max (dist x y) (dist y z) 
goal: dist x z ≤ max (dist x y) (dist y z)

full_name: IsUltrametricDist.ball_eq_of_mem
code: lemma ball_eq_of_mem {x y : X} {r : ℝ} (h : y ∈ ball x r) : ball x r = ball y r 
goal: Metric.ball x r = Metric.ball y r

full_name: IsUltrametricDist.mem_ball_iff
code: lemma mem_ball_iff {x y : X} {r : ℝ} : y ∈ ball x r ↔ x ∈ ball y r 
goal: y ∈ Metric.ball x r ↔ x ∈ Metric.ball y r

full_name: IsUltrametricDist.ball_subset_trichotomy
code: lemma ball_subset_trichotomy :
    ball x r ⊆ ball y s ∨ ball y s ⊆ ball x r ∨ Disjoint (ball x r) (ball y s) 
goal: Metric.ball x r ⊆ Metric.ball y s ∨ Metric.ball y s ⊆ Metric.ball x r ∨ Disjoint (Metric.ball x r) (Metric.ball y s)

full_name: IsUltrametricDist.ball_eq_or_disjoint
code: lemma ball_eq_or_disjoint :
    ball x r = ball y r ∨ Disjoint (ball x r) (ball y r) 
goal: Metric.ball x r = Metric.ball y r ∨ Disjoint (Metric.ball x r) (Metric.ball y r)

full_name: IsUltrametricDist.closedBall_eq_of_mem
code: lemma closedBall_eq_of_mem {x y: X} {r : ℝ} (h : y ∈ closedBall x r) :
    closedBall x r = closedBall y r 
goal: Metric.closedBall x r = Metric.closedBall y r

full_name: IsUltrametricDist.mem_closedBall_iff
code: lemma mem_closedBall_iff {x y: X} {r : ℝ} :
    y ∈ closedBall x r ↔ x ∈ closedBall y r 
goal: y ∈ Metric.closedBall x r ↔ x ∈ Metric.closedBall y r

full_name: IsUltrametricDist.closedBall_subset_trichotomy
code: lemma closedBall_subset_trichotomy :
    closedBall x r ⊆ closedBall y s ∨ closedBall y s ⊆ closedBall x r ∨
    Disjoint (closedBall x r) (closedBall y s) 
goal: Metric.closedBall x r ⊆ Metric.closedBall y s ∨
  Metric.closedBall y s ⊆ Metric.closedBall x r ∨ Disjoint (Metric.closedBall x r) (Metric.closedBall y s)

full_name: IsUltrametricDist.isClosed_ball
code: lemma isClosed_ball (x : X) (r : ℝ) : IsClosed (ball x r) 
goal: IsClosed (Metric.ball x r)

full_name: IsUltrametricDist.isClopen_ball
code: lemma isClopen_ball : IsClopen (ball x r) 
goal: IsClopen (Metric.ball x r)

full_name: IsUltrametricDist.frontier_ball_eq_empty
code: lemma frontier_ball_eq_empty : frontier (ball x r) = ∅ 
goal: frontier (Metric.ball x r) = ∅

full_name: IsUltrametricDist.closedBall_eq_or_disjoint
code: lemma closedBall_eq_or_disjoint :
    closedBall x r = closedBall y r ∨ Disjoint (closedBall x r) (closedBall y r) 
goal: Metric.closedBall x r = Metric.closedBall y r ∨ Disjoint (Metric.closedBall x r) (Metric.closedBall y r)

full_name: IsUltrametricDist.isOpen_closedBall
code: lemma isOpen_closedBall {r : ℝ} (hr : r ≠ 0) : IsOpen (closedBall x r) 
goal: IsOpen (Metric.closedBall x r)

full_name: IsUltrametricDist.isClopen_closedBall
code: lemma isClopen_closedBall {r : ℝ} (hr : r ≠ 0) : IsClopen (closedBall x r) 
goal: IsClopen (Metric.closedBall x r)

full_name: IsUltrametricDist.frontier_closedBall_eq_empty
code: lemma frontier_closedBall_eq_empty {r : ℝ} (hr : r ≠ 0) : frontier (closedBall x r) = ∅ 
goal: frontier (Metric.closedBall x r) = ∅

full_name: IsUltrametricDist.isOpen_sphere
code: lemma isOpen_sphere {r : ℝ} (hr : r ≠ 0) : IsOpen (sphere x r) 
goal: IsOpen (Metric.sphere x r)

full_name: IsUltrametricDist.isClopen_sphere
code: lemma isClopen_sphere {r : ℝ} (hr : r ≠ 0) : IsClopen (sphere x r) 
goal: IsClopen (Metric.sphere x r)