Theorem: PseudoMetricSpace.ext
File: Mathlib/Topology/MetricSpace/Pseudo/Defs.lean

Proof steps:
state_before: α✝ : Type u
β : Type v
X : Type u_1
ι : Type u_2
α : Type u_3
m m' : PseudoMetricSpace α
h : toDist = toDist
⊢ m = m'
state_after: case mk
α✝ : Type u
β : Type v
X : Type u_1
ι : Type u_2
α : Type u_3
m' : PseudoMetricSpace α
d : Dist α
dist_self✝ : ∀ (x : α), dist x x = 0
dist_comm✝ : ∀ (x y : α), dist x y = dist y x
dist_triangle✝ : ∀ (x y z : α), dist x z ≤ dist x y + dist y z
ed : α → α → ℝ≥0∞
hed : ∀ (x y : α), ed x y = ENNReal.ofReal (dist x y)
U : UniformSpace α
hU : 𝓤 α = ⨅ ε, ⨅ (_ : ε > 0), 𝓟 {p | dist p.1 p.2 < ε}
B : Bornology α
hB : (cobounded α).sets = {s | ∃ C, ∀ x ∈ sᶜ, ∀ y ∈ sᶜ, dist x y ≤ C}
h : toDist = toDist
⊢ mk dist_self✝ dist_comm✝ dist_triangle✝ ed hed U hU B hB = m'
tactic: cases' m with d _ _ _ ed hed U hU B hB
state_before: case mk
α✝ : Type u
β : Type v
X : Type u_1
ι : Type u_2
α : Type u_3
m' : PseudoMetricSpace α
d : Dist α
dist_self✝ : ∀ (x : α), dist x x = 0
dist_comm✝ : ∀ (x y : α), dist x y = dist y x
dist_triangle✝ : ∀ (x y z : α), dist x z ≤ dist x y + dist y z
ed : α → α → ℝ≥0∞
hed : ∀ (x y : α), ed x y = ENNReal.ofReal (dist x y)
U : UniformSpace α
hU : 𝓤 α = ⨅ ε, ⨅ (_ : ε > 0), 𝓟 {p | dist p.1 p.2 < ε}
B : Bornology α
hB : (cobounded α).sets = {s | ∃ C, ∀ x ∈ sᶜ, ∀ y ∈ sᶜ, dist x y ≤ C}
h : toDist = toDist
⊢ mk dist_self✝ dist_comm✝ dist_triangle✝ ed hed U hU B hB = m'
state_after: case mk.mk
α✝ : Type u
β : Type v
X : Type u_1
ι : Type u_2
α : Type u_3
d : Dist α
dist_self✝¹ : ∀ (x : α), dist x x = 0
dist_comm✝¹ : ∀ (x y : α), dist x y = dist y x
dist_triangle✝¹ : ∀ (x y z : α), dist x z ≤ dist x y + dist y z
ed : α → α → ℝ≥0∞
hed : ∀ (x y : α), ed x y = ENNReal.ofReal (dist x y)
U : UniformSpace α
hU : 𝓤 α = ⨅ ε, ⨅ (_ : ε > 0), 𝓟 {p | dist p.1 p.2 < ε}
B : Bornology α
hB : (cobounded α).sets = {s | ∃ C, ∀ x ∈ sᶜ, ∀ y ∈ sᶜ, dist x y ≤ C}
d' : Dist α
dist_self✝ : ∀ (x : α), dist x x = 0
dist_comm✝ : ∀ (x y : α), dist x y = dist y x
dist_triangle✝ : ∀ (x y z : α), dist x z ≤ dist x y + dist y z
ed' : α → α → ℝ≥0∞
hed' : ∀ (x y : α), ed' x y = ENNReal.ofReal (dist x y)
U' : UniformSpace α
hU' : 𝓤 α = ⨅ ε, ⨅ (_ : ε > 0), 𝓟 {p | dist p.1 p.2 < ε}
B' : Bornology α
hB' : (cobounded α).sets = {s | ∃ C, ∀ x ∈ sᶜ, ∀ y ∈ sᶜ, dist x y ≤ C}
h : toDist = toDist
⊢ mk dist_self✝¹ dist_comm✝¹ dist_triangle✝¹ ed hed U hU B hB =
    mk dist_self✝ dist_comm✝ dist_triangle✝ ed' hed' U' hU' B' hB'
tactic: cases' m' with d' _ _ _ ed' hed' U' hU' B' hB'
state_before: case mk.mk
α✝ : Type u
β : Type v
X : Type u_1
ι : Type u_2
α : Type u_3
d : Dist α
dist_self✝¹ : ∀ (x : α), dist x x = 0
dist_comm✝¹ : ∀ (x y : α), dist x y = dist y x
dist_triangle✝¹ : ∀ (x y z : α), dist x z ≤ dist x y + dist y z
ed : α → α → ℝ≥0∞
hed : ∀ (x y : α), ed x y = ENNReal.ofReal (dist x y)
U : UniformSpace α
hU : 𝓤 α = ⨅ ε, ⨅ (_ : ε > 0), 𝓟 {p | dist p.1 p.2 < ε}
B : Bornology α
hB : (cobounded α).sets = {s | ∃ C, ∀ x ∈ sᶜ, ∀ y ∈ sᶜ, dist x y ≤ C}
d' : Dist α
dist_self✝ : ∀ (x : α), dist x x = 0
dist_comm✝ : ∀ (x y : α), dist x y = dist y x
dist_triangle✝ : ∀ (x y z : α), dist x z ≤ dist x y + dist y z
ed' : α → α → ℝ≥0∞
hed' : ∀ (x y : α), ed' x y = ENNReal.ofReal (dist x y)
U' : UniformSpace α
hU' : 𝓤 α = ⨅ ε, ⨅ (_ : ε > 0), 𝓟 {p | dist p.1 p.2 < ε}
B' : Bornology α
hB' : (cobounded α).sets = {s | ∃ C, ∀ x ∈ sᶜ, ∀ y ∈ sᶜ, dist x y ≤ C}
h : toDist = toDist
⊢ mk dist_self✝¹ dist_comm✝¹ dist_triangle✝¹ ed hed U hU B hB =
    mk dist_self✝ dist_comm✝ dist_triangle✝ ed' hed' U' hU' B' hB'
state_after: case mk.mk
α✝ : Type u
β : Type v
X : Type u_1
ι : Type u_2
α : Type u_3
d : Dist α
dist_self✝¹ : ∀ (x : α), dist x x = 0
dist_comm✝¹ : ∀ (x y : α), dist x y = dist y x
dist_triangle✝¹ : ∀ (x y z : α), dist x z ≤ dist x y + dist y z
ed : α → α → ℝ≥0∞
hed : ∀ (x y : α), ed x y = ENNReal.ofReal (dist x y)
U : UniformSpace α
hU : 𝓤 α = ⨅ ε, ⨅ (_ : ε > 0), 𝓟 {p | dist p.1 p.2 < ε}
B : Bornology α
hB : (cobounded α).sets = {s | ∃ C, ∀ x ∈ sᶜ, ∀ y ∈ sᶜ, dist x y ≤ C}
ed' : α → α → ℝ≥0∞
U' : UniformSpace α
B' : Bornology α
dist_self✝ : ∀ (x : α), dist x x = 0
dist_comm✝ : ∀ (x y : α), dist x y = dist y x
dist_triangle✝ : ∀ (x y z : α), dist x z ≤ dist x y + dist y z
hed' : ∀ (x y : α), ed' x y = ENNReal.ofReal (dist x y)
hU' : 𝓤 α = ⨅ ε, ⨅ (_ : ε > 0), 𝓟 {p | dist p.1 p.2 < ε}
hB' : (cobounded α).sets = {s | ∃ C, ∀ x ∈ sᶜ, ∀ y ∈ sᶜ, dist x y ≤ C}
⊢ mk dist_self✝¹ dist_comm✝¹ dist_triangle✝¹ ed hed U hU B hB =
    mk dist_self✝ dist_comm✝ dist_triangle✝ ed' hed' U' hU' B' hB'
tactic: obtain rfl : d = d' := h
state_before: case mk.mk
α✝ : Type u
β : Type v
X : Type u_1
ι : Type u_2
α : Type u_3
d : Dist α
dist_self✝¹ : ∀ (x : α), dist x x = 0
dist_comm✝¹ : ∀ (x y : α), dist x y = dist y x
dist_triangle✝¹ : ∀ (x y z : α), dist x z ≤ dist x y + dist y z
ed : α → α → ℝ≥0∞
hed : ∀ (x y : α), ed x y = ENNReal.ofReal (dist x y)
U : UniformSpace α
hU : 𝓤 α = ⨅ ε, ⨅ (_ : ε > 0), 𝓟 {p | dist p.1 p.2 < ε}
B : Bornology α
hB : (cobounded α).sets = {s | ∃ C, ∀ x ∈ sᶜ, ∀ y ∈ sᶜ, dist x y ≤ C}
ed' : α → α → ℝ≥0∞
U' : UniformSpace α
B' : Bornology α
dist_self✝ : ∀ (x : α), dist x x = 0
dist_comm✝ : ∀ (x y : α), dist x y = dist y x
dist_triangle✝ : ∀ (x y z : α), dist x z ≤ dist x y + dist y z
hed' : ∀ (x y : α), ed' x y = ENNReal.ofReal (dist x y)
hU' : 𝓤 α = ⨅ ε, ⨅ (_ : ε > 0), 𝓟 {p | dist p.1 p.2 < ε}
hB' : (cobounded α).sets = {s | ∃ C, ∀ x ∈ sᶜ, ∀ y ∈ sᶜ, dist x y ≤ C}
⊢ mk dist_self✝¹ dist_comm✝¹ dist_triangle✝¹ ed hed U hU B hB =
    mk dist_self✝ dist_comm✝ dist_triangle✝ ed' hed' U' hU' B' hB'
state_after: case mk.mk.e_edist
α✝ : Type u
β : Type v
X : Type u_1
ι : Type u_2
α : Type u_3
d : Dist α
dist_self✝¹ : ∀ (x : α), dist x x = 0
dist_comm✝¹ : ∀ (x y : α), dist x y = dist y x
dist_triangle✝¹ : ∀ (x y z : α), dist x z ≤ dist x y + dist y z
ed : α → α → ℝ≥0∞
hed : ∀ (x y : α), ed x y = ENNReal.ofReal (dist x y)
U : UniformSpace α
hU : 𝓤 α = ⨅ ε, ⨅ (_ : ε > 0), 𝓟 {p | dist p.1 p.2 < ε}
B : Bornology α
hB : (cobounded α).sets = {s | ∃ C, ∀ x ∈ sᶜ, ∀ y ∈ sᶜ, dist x y ≤ C}
ed' : α → α → ℝ≥0∞
U' : UniformSpace α
B' : Bornology α
dist_self✝ : ∀ (x : α), dist x x = 0
dist_comm✝ : ∀ (x y : α), dist x y = dist y x
dist_triangle✝ : ∀ (x y z : α), dist x z ≤ dist x y + dist y z
hed' : ∀ (x y : α), ed' x y = ENNReal.ofReal (dist x y)
hU' : 𝓤 α = ⨅ ε, ⨅ (_ : ε > 0), 𝓟 {p | dist p.1 p.2 < ε}
hB' : (cobounded α).sets = {s | ∃ C, ∀ x ∈ sᶜ, ∀ y ∈ sᶜ, dist x y ≤ C}
⊢ ed = ed'

case mk.mk.e_toUniformSpace
α✝ : Type u
β : Type v
X : Type u_1
ι : Type u_2
α : Type u_3
d : Dist α
dist_self✝¹ : ∀ (x : α), dist x x = 0
dist_comm✝¹ : ∀ (x y : α), dist x y = dist y x
dist_triangle✝¹ : ∀ (x y z : α), dist x z ≤ dist x y + dist y z
ed : α → α → ℝ≥0∞
hed : ∀ (x y : α), ed x y = ENNReal.ofReal (dist x y)
U : UniformSpace α
hU : 𝓤 α = ⨅ ε, ⨅ (_ : ε > 0), 𝓟 {p | dist p.1 p.2 < ε}
B : Bornology α
hB : (cobounded α).sets = {s | ∃ C, ∀ x ∈ sᶜ, ∀ y ∈ sᶜ, dist x y ≤ C}
ed' : α → α → ℝ≥0∞
U' : UniformSpace α
B' : Bornology α
dist_self✝ : ∀ (x : α), dist x x = 0
dist_comm✝ : ∀ (x y : α), dist x y = dist y x
dist_triangle✝ : ∀ (x y z : α), dist x z ≤ dist x y + dist y z
hed' : ∀ (x y : α), ed' x y = ENNReal.ofReal (dist x y)
hU' : 𝓤 α = ⨅ ε, ⨅ (_ : ε > 0), 𝓟 {p | dist p.1 p.2 < ε}
hB' : (cobounded α).sets = {s | ∃ C, ∀ x ∈ sᶜ, ∀ y ∈ sᶜ, dist x y ≤ C}
⊢ U = U'

case mk.mk.e_toBornology
α✝ : Type u
β : Type v
X : Type u_1
ι : Type u_2
α : Type u_3
d : Dist α
dist_self✝¹ : ∀ (x : α), dist x x = 0
dist_comm✝¹ : ∀ (x y : α), dist x y = dist y x
dist_triangle✝¹ : ∀ (x y z : α), dist x z ≤ dist x y + dist y z
ed : α → α → ℝ≥0∞
hed : ∀ (x y : α), ed x y = ENNReal.ofReal (dist x y)
U : UniformSpace α
hU : 𝓤 α = ⨅ ε, ⨅ (_ : ε > 0), 𝓟 {p | dist p.1 p.2 < ε}
B : Bornology α
hB : (cobounded α).sets = {s | ∃ C, ∀ x ∈ sᶜ, ∀ y ∈ sᶜ, dist x y ≤ C}
ed' : α → α → ℝ≥0∞
U' : UniformSpace α
B' : Bornology α
dist_self✝ : ∀ (x : α), dist x x = 0
dist_comm✝ : ∀ (x y : α), dist x y = dist y x
dist_triangle✝ : ∀ (x y z : α), dist x z ≤ dist x y + dist y z
hed' : ∀ (x y : α), ed' x y = ENNReal.ofReal (dist x y)
hU' : 𝓤 α = ⨅ ε, ⨅ (_ : ε > 0), 𝓟 {p | dist p.1 p.2 < ε}
hB' : (cobounded α).sets = {s | ∃ C, ∀ x ∈ sᶜ, ∀ y ∈ sᶜ, dist x y ≤ C}
⊢ B = B'
tactic: congr