awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Module: Mathlib.Topology.Metrizable.Urysohn
Goal:
X : Type u_1
inst : TopologicalSpace X
inst_1 : RegularSpace X
inst_2 : SecondCountableTopology X
B : Set (Set X)
hBc : B.Countable
hB : IsTopologicalBasis B
s : Set (Set X × Set X) := {UV : Set X × Set X | UV ∈ B ×ˢ B ∧ closure[inst] UV.1 ⊆ UV.2}
this_1 : Encodable (↑s : Type u_1)
this_2 : TopologicalSpace (↑s : Type u_1) := ⊥
this : DiscreteTopology.{u_1} (↑s : Type u_1)
hd : ∀ (UV : (↑s : Type u_1)), Disjoint (closure[inst] (↑UV : Set X × Set X).1) (↑UV : Set X × Set X).2ᶜ
ε : (↑s : Type u_1) → ℝ
ε01 : ∀ (UV : (↑s : Type u_1)), Membership.mem (γ := Set ℝ) (Ioc 0 1) (ε UV)
hε : Tendsto ε cofinite (𝓝 0)
f : (UV : (↑s : Type u_1)) → C(X, ℝ)
hf0 : ∀ (UV : (↑s : Type u_1)), EqOn (β := ℝ) (⇑(f UV) : (a : X) → ℝ) 0 (↑UV : Set X × Set X).1
hfε : ∀ (UV : (↑s : Type u_1)), EqOn (β := ℝ) (⇑(f UV) : (a : X) → ℝ) (fun (x : X) ↦ ε UV) (↑UV : Set X × Set X).2ᶜ
hf0ε : ∀ (UV : (↑s : Type u_1)) (x : X), Membership.mem (α := ℝ) (Icc 0 (ε UV)) ((f UV : (a : X) → ℝ) x : ℝ)
hf01 : ∀ (UV : (↑s : Type u_1)) (x : X), Membership.mem (α := ℝ) (γ := Set ℝ) (Icc 0 1) ((f UV : (a : X) → ℝ) x : ℝ)
F : X → (↑s : Type u_1) →ᵇ ℝ :=
  fun (x : X) ↦
    { toFun := fun (UV : (↑s : Type u_1)) ↦ (f UV : (a : X) → ℝ) x, continuous_toFun := ⋯, map_bounded' := ⋯ }
hF :
  ∀ (x : X) (UV : (↑s : Type u_1)), Eq (α := ℝ) ((F x : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ((f UV : (a : X) → ℝ) x : ℝ)
refine_1 : ∀ (x : X), 𝓝 x ≤ comap F (𝓝 (F x))
refine_2 : ∀ (x : X), comap F (𝓝 (F x)) ≤ 𝓝 x
⊢ ∃ (f : X → (↑s : Type u_1) →ᵇ ℝ), IsInducing f

Tactic:
refine ⟨F, isInducing_iff_nhds.2 fun x => le_antisymm ?_ ?_⟩
-- Module: Mathlib.Topology.Metrizable.Urysohn
Goal:
X : Type u_1
inst : TopologicalSpace X
inst_1 : RegularSpace X
inst_2 : SecondCountableTopology X
B : Set (Set X)
hBc : B.Countable
hB : IsTopologicalBasis B
s : Set (Set X × Set X) := {UV : Set X × Set X | UV ∈ B ×ˢ B ∧ closure[inst] UV.1 ⊆ UV.2}
this_1 : Encodable (↑s : Type u_1)
this_2 : TopologicalSpace (↑s : Type u_1) := ⊥
this : DiscreteTopology.{u_1} (↑s : Type u_1)
hd : ∀ (UV : (↑s : Type u_1)), Disjoint (closure[inst] (↑UV : Set X × Set X).1) (↑UV : Set X × Set X).2ᶜ
ε : (↑s : Type u_1) → ℝ
ε01 : ∀ (UV : (↑s : Type u_1)), Membership.mem (γ := Set ℝ) (Ioc 0 1) (ε UV)
hε : Tendsto ε cofinite (𝓝 0)
f : (UV : (↑s : Type u_1)) → C(X, ℝ)
hf0 : ∀ (UV : (↑s : Type u_1)), EqOn (β := ℝ) (⇑(f UV) : (a : X) → ℝ) 0 (↑UV : Set X × Set X).1
hfε : ∀ (UV : (↑s : Type u_1)), EqOn (β := ℝ) (⇑(f UV) : (a : X) → ℝ) (fun (x : X) ↦ ε UV) (↑UV : Set X × Set X).2ᶜ
hf0ε : ∀ (UV : (↑s : Type u_1)) (x : X), Membership.mem (α := ℝ) (Icc 0 (ε UV)) ((f UV : (a : X) → ℝ) x : ℝ)
hf01 : ∀ (UV : (↑s : Type u_1)) (x : X), Membership.mem (α := ℝ) (γ := Set ℝ) (Icc 0 1) ((f UV : (a : X) → ℝ) x : ℝ)
F : X → (↑s : Type u_1) →ᵇ ℝ :=
  fun (x : X) ↦
    { toFun := fun (UV : (↑s : Type u_1)) ↦ (f UV : (a : X) → ℝ) x, continuous_toFun := ⋯, map_bounded' := ⋯ }
hF :
  ∀ (x : X) (UV : (↑s : Type u_1)), Eq (α := ℝ) ((F x : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ((f UV : (a : X) → ℝ) x : ℝ)
x : X
⊢ 𝓝 x ≤ comap F (𝓝 (F x))

Tactic:
(nhds_basis_closedBall.comap _).ge_iff.2 fun δ δ0 => ?_

Premises used: Iff.mpr, Filter.HasBasis.ge_iff, Filter.HasBasis.comap, Metric.nhds_basis_closedBall
-- Module: Mathlib.Topology.Metrizable.Urysohn
Goal:
X : Type u_1
inst : TopologicalSpace X
inst_1 : RegularSpace X
inst_2 : SecondCountableTopology X
B : Set (Set X)
hBc : B.Countable
hB : IsTopologicalBasis B
s : Set (Set X × Set X) := {UV : Set X × Set X | UV ∈ B ×ˢ B ∧ closure[inst] UV.1 ⊆ UV.2}
this_1 : Encodable (↑s : Type u_1)
this_2 : TopologicalSpace (↑s : Type u_1) := ⊥
this : DiscreteTopology.{u_1} (↑s : Type u_1)
hd : ∀ (UV : (↑s : Type u_1)), Disjoint (closure[inst] (↑UV : Set X × Set X).1) (↑UV : Set X × Set X).2ᶜ
ε : (↑s : Type u_1) → ℝ
ε01 : ∀ (UV : (↑s : Type u_1)), Membership.mem (γ := Set ℝ) (Ioc 0 1) (ε UV)
hε : Tendsto ε cofinite (𝓝 0)
f : (UV : (↑s : Type u_1)) → C(X, ℝ)
hf0 : ∀ (UV : (↑s : Type u_1)), EqOn (β := ℝ) (⇑(f UV) : (a : X) → ℝ) 0 (↑UV : Set X × Set X).1
hfε : ∀ (UV : (↑s : Type u_1)), EqOn (β := ℝ) (⇑(f UV) : (a : X) → ℝ) (fun (x : X) ↦ ε UV) (↑UV : Set X × Set X).2ᶜ
hf0ε : ∀ (UV : (↑s : Type u_1)) (x : X), Membership.mem (α := ℝ) (Icc 0 (ε UV)) ((f UV : (a : X) → ℝ) x : ℝ)
hf01 : ∀ (UV : (↑s : Type u_1)) (x : X), Membership.mem (α := ℝ) (γ := Set ℝ) (Icc 0 1) ((f UV : (a : X) → ℝ) x : ℝ)
F : X → (↑s : Type u_1) →ᵇ ℝ :=
  fun (x : X) ↦
    { toFun := fun (UV : (↑s : Type u_1)) ↦ (f UV : (a : X) → ℝ) x, continuous_toFun := ⋯, map_bounded' := ⋯ }
hF :
  ∀ (x : X) (UV : (↑s : Type u_1)), Eq (α := ℝ) ((F x : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ((f UV : (a : X) → ℝ) x : ℝ)
x : X
refine_1 : ∀ (δ : ℝ) (δ0 : 0 < δ), F ⁻¹' closedBall (F x) δ ∈ 𝓝 x
⊢ 𝓝 x ≤ comap F (𝓝 (F x))

Tactic:
refine (nhds_basis_closedBall.comap _).ge_iff.2 fun δ δ0 => ?_

Premises used: Iff.mpr, Filter.HasBasis.ge_iff, Filter.HasBasis.comap, Metric.nhds_basis_closedBall
-- Module: Mathlib.Topology.Metrizable.Urysohn
Goal:
X : Type u_1
inst : TopologicalSpace X
inst_1 : RegularSpace X
inst_2 : SecondCountableTopology X
B : Set (Set X)
hBc : B.Countable
hB : IsTopologicalBasis B
s : Set (Set X × Set X) := {UV : Set X × Set X | UV ∈ B ×ˢ B ∧ closure[inst] UV.1 ⊆ UV.2}
this_1 : Encodable (↑s : Type u_1)
this_2 : TopologicalSpace (↑s : Type u_1) := ⊥
this : DiscreteTopology.{u_1} (↑s : Type u_1)
hd : ∀ (UV : (↑s : Type u_1)), Disjoint (closure[inst] (↑UV : Set X × Set X).1) (↑UV : Set X × Set X).2ᶜ
ε : (↑s : Type u_1) → ℝ
ε01 : ∀ (UV : (↑s : Type u_1)), Membership.mem (γ := Set ℝ) (Ioc 0 1) (ε UV)
hε : Tendsto ε cofinite (𝓝 0)
f : (UV : (↑s : Type u_1)) → C(X, ℝ)
hf0 : ∀ (UV : (↑s : Type u_1)), EqOn (β := ℝ) (⇑(f UV) : (a : X) → ℝ) 0 (↑UV : Set X × Set X).1
hfε : ∀ (UV : (↑s : Type u_1)), EqOn (β := ℝ) (⇑(f UV) : (a : X) → ℝ) (fun (x : X) ↦ ε UV) (↑UV : Set X × Set X).2ᶜ
hf0ε : ∀ (UV : (↑s : Type u_1)) (x : X), Membership.mem (α := ℝ) (Icc 0 (ε UV)) ((f UV : (a : X) → ℝ) x : ℝ)
hf01 : ∀ (UV : (↑s : Type u_1)) (x : X), Membership.mem (α := ℝ) (γ := Set ℝ) (Icc 0 1) ((f UV : (a : X) → ℝ) x : ℝ)
F : X → (↑s : Type u_1) →ᵇ ℝ :=
  fun (x : X) ↦
    { toFun := fun (UV : (↑s : Type u_1)) ↦ (f UV : (a : X) → ℝ) x, continuous_toFun := ⋯, map_bounded' := ⋯ }
hF :
  ∀ (x : X) (UV : (↑s : Type u_1)), Eq (α := ℝ) ((F x : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ((f UV : (a : X) → ℝ) x : ℝ)
x : X
δ : ℝ
δ0 : 0 < δ
⊢ Set.Finite.{u_1} (α := (↑s : Type u_1)) {UV : (↑s : Type u_1) | δ ≤ ε UV}

Tactic:
simpa only [← not_lt] using hε (gt_mem_nhds δ0)

Premises used: gt_mem_nhds, not_lt
-- Module: Mathlib.Topology.Metrizable.Urysohn
Goal:
X : Type u_1
inst : TopologicalSpace X
inst_1 : RegularSpace X
inst_2 : SecondCountableTopology X
B : Set (Set X)
hBc : B.Countable
hB : IsTopologicalBasis B
s : Set (Set X × Set X) := {UV : Set X × Set X | UV ∈ B ×ˢ B ∧ closure[inst] UV.1 ⊆ UV.2}
this_1 : Encodable (↑s : Type u_1)
this_2 : TopologicalSpace (↑s : Type u_1) := ⊥
this : DiscreteTopology.{u_1} (↑s : Type u_1)
hd : ∀ (UV : (↑s : Type u_1)), Disjoint (closure[inst] (↑UV : Set X × Set X).1) (↑UV : Set X × Set X).2ᶜ
ε : (↑s : Type u_1) → ℝ
ε01 : ∀ (UV : (↑s : Type u_1)), Membership.mem (γ := Set ℝ) (Ioc 0 1) (ε UV)
hε : Tendsto ε cofinite (𝓝 0)
f : (UV : (↑s : Type u_1)) → C(X, ℝ)
hf0 : ∀ (UV : (↑s : Type u_1)), EqOn (β := ℝ) (⇑(f UV) : (a : X) → ℝ) 0 (↑UV : Set X × Set X).1
hfε : ∀ (UV : (↑s : Type u_1)), EqOn (β := ℝ) (⇑(f UV) : (a : X) → ℝ) (fun (x : X) ↦ ε UV) (↑UV : Set X × Set X).2ᶜ
hf0ε : ∀ (UV : (↑s : Type u_1)) (x : X), Membership.mem (α := ℝ) (Icc 0 (ε UV)) ((f UV : (a : X) → ℝ) x : ℝ)
hf01 : ∀ (UV : (↑s : Type u_1)) (x : X), Membership.mem (α := ℝ) (γ := Set ℝ) (Icc 0 1) ((f UV : (a : X) → ℝ) x : ℝ)
F : X → (↑s : Type u_1) →ᵇ ℝ :=
  fun (x : X) ↦
    { toFun := fun (UV : (↑s : Type u_1)) ↦ (f UV : (a : X) → ℝ) x, continuous_toFun := ⋯, map_bounded' := ⋯ }
hF :
  ∀ (x : X) (UV : (↑s : Type u_1)), Eq (α := ℝ) ((F x : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ((f UV : (a : X) → ℝ) x : ℝ)
x : X
δ : ℝ
δ0 : 0 < δ
⊢ Set.Finite.{u_1} (α := (↑s : Type u_1)) {UV : (↑s : Type u_1) | δ ≤ ε UV}

Tactic:
have h_fin : { UV : s | δ ≤ ε UV }.Finite := by simpa only [← not_lt] using hε (gt_mem_nhds δ0)
-- Module: Mathlib.Topology.Metrizable.Urysohn
Goal:
X : Type u_1
inst : TopologicalSpace X
inst_1 : RegularSpace X
inst_2 : SecondCountableTopology X
B : Set (Set X)
hBc : B.Countable
hB : IsTopologicalBasis B
s : Set (Set X × Set X) := {UV : Set X × Set X | UV ∈ B ×ˢ B ∧ closure[inst] UV.1 ⊆ UV.2}
this_1 : Encodable (↑s : Type u_1)
this_2 : TopologicalSpace (↑s : Type u_1) := ⊥
this : DiscreteTopology.{u_1} (↑s : Type u_1)
hd : ∀ (UV : (↑s : Type u_1)), Disjoint (closure[inst] (↑UV : Set X × Set X).1) (↑UV : Set X × Set X).2ᶜ
ε : (↑s : Type u_1) → ℝ
ε01 : ∀ (UV : (↑s : Type u_1)), Membership.mem (γ := Set ℝ) (Ioc 0 1) (ε UV)
hε : Tendsto ε cofinite (𝓝 0)
f : (UV : (↑s : Type u_1)) → C(X, ℝ)
hf0 : ∀ (UV : (↑s : Type u_1)), EqOn (β := ℝ) (⇑(f UV) : (a : X) → ℝ) 0 (↑UV : Set X × Set X).1
hfε : ∀ (UV : (↑s : Type u_1)), EqOn (β := ℝ) (⇑(f UV) : (a : X) → ℝ) (fun (x : X) ↦ ε UV) (↑UV : Set X × Set X).2ᶜ
hf0ε : ∀ (UV : (↑s : Type u_1)) (x : X), Membership.mem (α := ℝ) (Icc 0 (ε UV)) ((f UV : (a : X) → ℝ) x : ℝ)
hf01 : ∀ (UV : (↑s : Type u_1)) (x : X), Membership.mem (α := ℝ) (γ := Set ℝ) (Icc 0 1) ((f UV : (a : X) → ℝ) x : ℝ)
F : X → (↑s : Type u_1) →ᵇ ℝ :=
  fun (x : X) ↦
    { toFun := fun (UV : (↑s : Type u_1)) ↦ (f UV : (a : X) → ℝ) x, continuous_toFun := ⋯, map_bounded' := ⋯ }
hF :
  ∀ (x : X) (UV : (↑s : Type u_1)), Eq (α := ℝ) ((F x : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ((f UV : (a : X) → ℝ) x : ℝ)
x : X
δ : ℝ
δ0 : 0 < δ
h_fin : Set.Finite.{u_1} (α := (↑s : Type u_1)) {UV : (↑s : Type u_1) | δ ≤ ε UV}
⊢ ∀ᶠ (y : X) in 𝓝 x,
    ∀ (UV : (↑s : Type u_1)),
      δ ≤ ε UV → dist (α := ℝ) ((F y : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ((F x : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ≤ δ

Tactic:
(eventually_all_finite h_fin).2 fun UV _ => ?_

Premises used: Iff.mpr, Set.Mem, Filter.eventually_all_finite
-- Module: Mathlib.Topology.Metrizable.Urysohn
Goal:
X : Type u_1
inst : TopologicalSpace X
inst_1 : RegularSpace X
inst_2 : SecondCountableTopology X
B : Set (Set X)
hBc : B.Countable
hB : IsTopologicalBasis B
s : Set (Set X × Set X) := {UV : Set X × Set X | UV ∈ B ×ˢ B ∧ closure[inst] UV.1 ⊆ UV.2}
this_1 : Encodable (↑s : Type u_1)
this_2 : TopologicalSpace (↑s : Type u_1) := ⊥
this : DiscreteTopology.{u_1} (↑s : Type u_1)
hd : ∀ (UV : (↑s : Type u_1)), Disjoint (closure[inst] (↑UV : Set X × Set X).1) (↑UV : Set X × Set X).2ᶜ
ε : (↑s : Type u_1) → ℝ
ε01 : ∀ (UV : (↑s : Type u_1)), Membership.mem (γ := Set ℝ) (Ioc 0 1) (ε UV)
hε : Tendsto ε cofinite (𝓝 0)
f : (UV : (↑s : Type u_1)) → C(X, ℝ)
hf0 : ∀ (UV : (↑s : Type u_1)), EqOn (β := ℝ) (⇑(f UV) : (a : X) → ℝ) 0 (↑UV : Set X × Set X).1
hfε : ∀ (UV : (↑s : Type u_1)), EqOn (β := ℝ) (⇑(f UV) : (a : X) → ℝ) (fun (x : X) ↦ ε UV) (↑UV : Set X × Set X).2ᶜ
hf0ε : ∀ (UV : (↑s : Type u_1)) (x : X), Membership.mem (α := ℝ) (Icc 0 (ε UV)) ((f UV : (a : X) → ℝ) x : ℝ)
hf01 : ∀ (UV : (↑s : Type u_1)) (x : X), Membership.mem (α := ℝ) (γ := Set ℝ) (Icc 0 1) ((f UV : (a : X) → ℝ) x : ℝ)
F : X → (↑s : Type u_1) →ᵇ ℝ :=
  fun (x : X) ↦
    { toFun := fun (UV : (↑s : Type u_1)) ↦ (f UV : (a : X) → ℝ) x, continuous_toFun := ⋯, map_bounded' := ⋯ }
hF :
  ∀ (x : X) (UV : (↑s : Type u_1)), Eq (α := ℝ) ((F x : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ((f UV : (a : X) → ℝ) x : ℝ)
x : X
δ : ℝ
δ0 : 0 < δ
h_fin : Set.Finite.{u_1} (α := (↑s : Type u_1)) {UV : (↑s : Type u_1) | δ ≤ ε UV}
refine :
  ∀ (UV : (↑s : Type u_1)),
    Membership.mem (γ := Set (↑s : Type u_1)) {UV : (↑s : Type u_1) | δ ≤ ε UV} UV →
      ∀ᶠ (x_2 : X) in 𝓝 x,
        dist (α := ℝ) ((F x_2 : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ((F x : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ≤ δ
⊢ ∀ᶠ (y : X) in 𝓝 x,
    ∀ (UV : (↑s : Type u_1)),
      δ ≤ ε UV → dist (α := ℝ) ((F y : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ((F x : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ≤ δ

Tactic:
refine (eventually_all_finite h_fin).2 fun UV _ => ?_

Premises used: Iff.mpr, Filter.eventually_all_finite
-- Module: Mathlib.Topology.Metrizable.Urysohn
Goal:
X : Type u_1
inst : TopologicalSpace X
inst_1 : RegularSpace X
inst_2 : SecondCountableTopology X
B : Set (Set X)
hBc : B.Countable
hB : IsTopologicalBasis B
s : Set (Set X × Set X) := {UV : Set X × Set X | UV ∈ B ×ˢ B ∧ closure[inst] UV.1 ⊆ UV.2}
this_1 : Encodable (↑s : Type u_1)
this_2 : TopologicalSpace (↑s : Type u_1) := ⊥
this : DiscreteTopology.{u_1} (↑s : Type u_1)
hd : ∀ (UV : (↑s : Type u_1)), Disjoint (closure[inst] (↑UV : Set X × Set X).1) (↑UV : Set X × Set X).2ᶜ
ε : (↑s : Type u_1) → ℝ
ε01 : ∀ (UV : (↑s : Type u_1)), Membership.mem (γ := Set ℝ) (Ioc 0 1) (ε UV)
hε : Tendsto ε cofinite (𝓝 0)
f : (UV : (↑s : Type u_1)) → C(X, ℝ)
hf0 : ∀ (UV : (↑s : Type u_1)), EqOn (β := ℝ) (⇑(f UV) : (a : X) → ℝ) 0 (↑UV : Set X × Set X).1
hfε : ∀ (UV : (↑s : Type u_1)), EqOn (β := ℝ) (⇑(f UV) : (a : X) → ℝ) (fun (x : X) ↦ ε UV) (↑UV : Set X × Set X).2ᶜ
hf0ε : ∀ (UV : (↑s : Type u_1)) (x : X), Membership.mem (α := ℝ) (Icc 0 (ε UV)) ((f UV : (a : X) → ℝ) x : ℝ)
hf01 : ∀ (UV : (↑s : Type u_1)) (x : X), Membership.mem (α := ℝ) (γ := Set ℝ) (Icc 0 1) ((f UV : (a : X) → ℝ) x : ℝ)
F : X → (↑s : Type u_1) →ᵇ ℝ :=
  fun (x : X) ↦
    { toFun := fun (UV : (↑s : Type u_1)) ↦ (f UV : (a : X) → ℝ) x, continuous_toFun := ⋯, map_bounded' := ⋯ }
hF :
  ∀ (x : X) (UV : (↑s : Type u_1)), Eq (α := ℝ) ((F x : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ((f UV : (a : X) → ℝ) x : ℝ)
x : X
δ : ℝ
δ0 : 0 < δ
h_fin : Set.Finite.{u_1} (α := (↑s : Type u_1)) {UV : (↑s : Type u_1) | δ ≤ ε UV}
UV : (↑s : Type u_1)
h : Membership.mem (γ := Set (↑s : Type u_1)) {UV : (↑s : Type u_1) | δ ≤ ε UV} UV
⊢ ∀ᶠ (x_1 : X) in 𝓝 x,
    dist (α := ℝ) ((F x_1 : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ((F x : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ≤ δ

Tactic:
(f UV).continuous.tendsto x (closedBall_mem_nhds _ δ0)

Premises used: ContinuousMap.continuous, Metric.closedBall_mem_nhds, Set.Mem, Filter.Eventually, setOf, Continuous.tendsto, Set.preimage, Metric.closedBall
-- Module: Mathlib.Topology.Metrizable.Urysohn
Goal:
X : Type u_1
inst : TopologicalSpace X
inst_1 : RegularSpace X
inst_2 : SecondCountableTopology X
B : Set (Set X)
hBc : B.Countable
hB : IsTopologicalBasis B
s : Set (Set X × Set X) := {UV : Set X × Set X | UV ∈ B ×ˢ B ∧ closure[inst] UV.1 ⊆ UV.2}
this_1 : Encodable (↑s : Type u_1)
this_2 : TopologicalSpace (↑s : Type u_1) := ⊥
this : DiscreteTopology.{u_1} (↑s : Type u_1)
hd : ∀ (UV : (↑s : Type u_1)), Disjoint (closure[inst] (↑UV : Set X × Set X).1) (↑UV : Set X × Set X).2ᶜ
ε : (↑s : Type u_1) → ℝ
ε01 : ∀ (UV : (↑s : Type u_1)), Membership.mem (γ := Set ℝ) (Ioc 0 1) (ε UV)
hε : Tendsto ε cofinite (𝓝 0)
f : (UV : (↑s : Type u_1)) → C(X, ℝ)
hf0 : ∀ (UV : (↑s : Type u_1)), EqOn (β := ℝ) (⇑(f UV) : (a : X) → ℝ) 0 (↑UV : Set X × Set X).1
hfε : ∀ (UV : (↑s : Type u_1)), EqOn (β := ℝ) (⇑(f UV) : (a : X) → ℝ) (fun (x : X) ↦ ε UV) (↑UV : Set X × Set X).2ᶜ
hf0ε : ∀ (UV : (↑s : Type u_1)) (x : X), Membership.mem (α := ℝ) (Icc 0 (ε UV)) ((f UV : (a : X) → ℝ) x : ℝ)
hf01 : ∀ (UV : (↑s : Type u_1)) (x : X), Membership.mem (α := ℝ) (γ := Set ℝ) (Icc 0 1) ((f UV : (a : X) → ℝ) x : ℝ)
F : X → (↑s : Type u_1) →ᵇ ℝ :=
  fun (x : X) ↦
    { toFun := fun (UV : (↑s : Type u_1)) ↦ (f UV : (a : X) → ℝ) x, continuous_toFun := ⋯, map_bounded' := ⋯ }
hF :
  ∀ (x : X) (UV : (↑s : Type u_1)), Eq (α := ℝ) ((F x : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ((f UV : (a : X) → ℝ) x : ℝ)
x : X
δ : ℝ
δ0 : 0 < δ
h_fin : Set.Finite.{u_1} (α := (↑s : Type u_1)) {UV : (↑s : Type u_1) | δ ≤ ε UV}
UV : (↑s : Type u_1)
h : Membership.mem (γ := Set (↑s : Type u_1)) {UV : (↑s : Type u_1) | δ ≤ ε UV} UV
⊢ ∀ᶠ (x_1 : X) in 𝓝 x,
    dist (α := ℝ) ((F x_1 : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ((F x : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ≤ δ

Tactic:
exact (f UV).continuous.tendsto x (closedBall_mem_nhds _ δ0)

Premises used: ContinuousMap.continuous, Metric.closedBall_mem_nhds, Continuous.tendsto
-- Module: Mathlib.Topology.Metrizable.Urysohn
Goal:
X : Type u_1
inst : TopologicalSpace X
inst_1 : RegularSpace X
inst_2 : SecondCountableTopology X
B : Set (Set X)
hBc : B.Countable
hB : IsTopologicalBasis B
s : Set (Set X × Set X) := {UV : Set X × Set X | UV ∈ B ×ˢ B ∧ closure[inst] UV.1 ⊆ UV.2}
this_1 : Encodable (↑s : Type u_1)
this_2 : TopologicalSpace (↑s : Type u_1) := ⊥
this : DiscreteTopology.{u_1} (↑s : Type u_1)
hd : ∀ (UV : (↑s : Type u_1)), Disjoint (closure[inst] (↑UV : Set X × Set X).1) (↑UV : Set X × Set X).2ᶜ
ε : (↑s : Type u_1) → ℝ
ε01 : ∀ (UV : (↑s : Type u_1)), Membership.mem (γ := Set ℝ) (Ioc 0 1) (ε UV)
hε : Tendsto ε cofinite (𝓝 0)
f : (UV : (↑s : Type u_1)) → C(X, ℝ)
hf0 : ∀ (UV : (↑s : Type u_1)), EqOn (β := ℝ) (⇑(f UV) : (a : X) → ℝ) 0 (↑UV : Set X × Set X).1
hfε : ∀ (UV : (↑s : Type u_1)), EqOn (β := ℝ) (⇑(f UV) : (a : X) → ℝ) (fun (x : X) ↦ ε UV) (↑UV : Set X × Set X).2ᶜ
hf0ε : ∀ (UV : (↑s : Type u_1)) (x : X), Membership.mem (α := ℝ) (Icc 0 (ε UV)) ((f UV : (a : X) → ℝ) x : ℝ)
hf01 : ∀ (UV : (↑s : Type u_1)) (x : X), Membership.mem (α := ℝ) (γ := Set ℝ) (Icc 0 1) ((f UV : (a : X) → ℝ) x : ℝ)
F : X → (↑s : Type u_1) →ᵇ ℝ :=
  fun (x : X) ↦
    { toFun := fun (UV : (↑s : Type u_1)) ↦ (f UV : (a : X) → ℝ) x, continuous_toFun := ⋯, map_bounded' := ⋯ }
hF :
  ∀ (x : X) (UV : (↑s : Type u_1)), Eq (α := ℝ) ((F x : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ((f UV : (a : X) → ℝ) x : ℝ)
x : X
δ : ℝ
δ0 : 0 < δ
h_fin : Set.Finite.{u_1} (α := (↑s : Type u_1)) {UV : (↑s : Type u_1) | δ ≤ ε UV}
⊢ ∀ᶠ (y : X) in 𝓝 x,
    ∀ (UV : (↑s : Type u_1)),
      δ ≤ ε UV → dist (α := ℝ) ((F y : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ((F x : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ≤ δ

Tactic:
have : ∀ᶠ y in 𝓝 x, ∀ UV, δ ≤ ε UV → dist (F y UV) (F x UV) ≤ δ := by
      refine (eventually_all_finite h_fin).2 fun UV _ => ?_
      exact (f UV).continuous.tendsto x (closedBall_mem_nhds _ δ0)
-- Module: Mathlib.Topology.Metrizable.Urysohn
Goal:
X : Type u_1
inst : TopologicalSpace X
inst_1 : RegularSpace X
inst_2 : SecondCountableTopology X
B : Set (Set X)
hBc : B.Countable
hB : IsTopologicalBasis B
s : Set (Set X × Set X) := {UV : Set X × Set X | UV ∈ B ×ˢ B ∧ closure[inst] UV.1 ⊆ UV.2}
this_1 : Encodable (↑s : Type u_1)
this_2 : TopologicalSpace (↑s : Type u_1) := ⊥
this_3 : DiscreteTopology.{u_1} (↑s : Type u_1)
hd : ∀ (UV : (↑s : Type u_1)), Disjoint (closure[inst] (↑UV : Set X × Set X).1) (↑UV : Set X × Set X).2ᶜ
ε : (↑s : Type u_1) → ℝ
ε01 : ∀ (UV : (↑s : Type u_1)), Membership.mem (γ := Set ℝ) (Ioc 0 1) (ε UV)
hε : Tendsto ε cofinite (𝓝 0)
f : (UV : (↑s : Type u_1)) → C(X, ℝ)
hf0 : ∀ (UV : (↑s : Type u_1)), EqOn (β := ℝ) (⇑(f UV) : (a : X) → ℝ) 0 (↑UV : Set X × Set X).1
hfε : ∀ (UV : (↑s : Type u_1)), EqOn (β := ℝ) (⇑(f UV) : (a : X) → ℝ) (fun (x : X) ↦ ε UV) (↑UV : Set X × Set X).2ᶜ
hf0ε : ∀ (UV : (↑s : Type u_1)) (x : X), Membership.mem (α := ℝ) (Icc 0 (ε UV)) ((f UV : (a : X) → ℝ) x : ℝ)
hf01 : ∀ (UV : (↑s : Type u_1)) (x : X), Membership.mem (α := ℝ) (γ := Set ℝ) (Icc 0 1) ((f UV : (a : X) → ℝ) x : ℝ)
F : X → (↑s : Type u_1) →ᵇ ℝ :=
  fun (x : X) ↦
    { toFun := fun (UV : (↑s : Type u_1)) ↦ (f UV : (a : X) → ℝ) x, continuous_toFun := ⋯, map_bounded' := ⋯ }
hF :
  ∀ (x : X) (UV : (↑s : Type u_1)), Eq (α := ℝ) ((F x : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ((f UV : (a : X) → ℝ) x : ℝ)
x : X
δ : ℝ
δ0 : 0 < δ
h_fin : Set.Finite.{u_1} (α := (↑s : Type u_1)) {UV : (↑s : Type u_1) | δ ≤ ε UV}
this :
  ∀ᶠ (y : X) in 𝓝 x,
    ∀ (UV : (↑s : Type u_1)),
      δ ≤ ε UV → dist (α := ℝ) ((F y : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ((F x : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ≤ δ
⊢ F ⁻¹' closedBall (F x) δ ∈ 𝓝 x

Tactic:
this.mono fun y hy => (BoundedContinuousFunction.dist_le δ0.le).2 fun UV => ?_

Premises used: Iff.mpr, BoundedContinuousFunction.dist_le, Set.Mem, Filter.Eventually, setOf, LT.lt.le, Filter.Eventually.mono, Set.preimage
-- Module: Mathlib.Topology.Metrizable.Urysohn
Goal:
X : Type u_1
inst : TopologicalSpace X
inst_1 : RegularSpace X
inst_2 : SecondCountableTopology X
B : Set (Set X)
hBc : B.Countable
hB : IsTopologicalBasis B
s : Set (Set X × Set X) := {UV : Set X × Set X | UV ∈ B ×ˢ B ∧ closure[inst] UV.1 ⊆ UV.2}
this_1 : Encodable (↑s : Type u_1)
this_2 : TopologicalSpace (↑s : Type u_1) := ⊥
this_3 : DiscreteTopology.{u_1} (↑s : Type u_1)
hd : ∀ (UV : (↑s : Type u_1)), Disjoint (closure[inst] (↑UV : Set X × Set X).1) (↑UV : Set X × Set X).2ᶜ
ε : (↑s : Type u_1) → ℝ
ε01 : ∀ (UV : (↑s : Type u_1)), Membership.mem (γ := Set ℝ) (Ioc 0 1) (ε UV)
hε : Tendsto ε cofinite (𝓝 0)
f : (UV : (↑s : Type u_1)) → C(X, ℝ)
hf0 : ∀ (UV : (↑s : Type u_1)), EqOn (β := ℝ) (⇑(f UV) : (a : X) → ℝ) 0 (↑UV : Set X × Set X).1
hfε : ∀ (UV : (↑s : Type u_1)), EqOn (β := ℝ) (⇑(f UV) : (a : X) → ℝ) (fun (x : X) ↦ ε UV) (↑UV : Set X × Set X).2ᶜ
hf0ε : ∀ (UV : (↑s : Type u_1)) (x : X), Membership.mem (α := ℝ) (Icc 0 (ε UV)) ((f UV : (a : X) → ℝ) x : ℝ)
hf01 : ∀ (UV : (↑s : Type u_1)) (x : X), Membership.mem (α := ℝ) (γ := Set ℝ) (Icc 0 1) ((f UV : (a : X) → ℝ) x : ℝ)
F : X → (↑s : Type u_1) →ᵇ ℝ :=
  fun (x : X) ↦
    { toFun := fun (UV : (↑s : Type u_1)) ↦ (f UV : (a : X) → ℝ) x, continuous_toFun := ⋯, map_bounded' := ⋯ }
hF :
  ∀ (x : X) (UV : (↑s : Type u_1)), Eq (α := ℝ) ((F x : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ((f UV : (a : X) → ℝ) x : ℝ)
x : X
δ : ℝ
δ0 : 0 < δ
h_fin : Set.Finite.{u_1} (α := (↑s : Type u_1)) {UV : (↑s : Type u_1) | δ ≤ ε UV}
this :
  ∀ᶠ (y : X) in 𝓝 x,
    ∀ (UV : (↑s : Type u_1)),
      δ ≤ ε UV → dist (α := ℝ) ((F y : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ((F x : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ≤ δ
refine_1 :
  ∀ (y : X)
    (hy :
      ∀ (UV : (↑s : Type u_1)),
        δ ≤ ε UV →
          dist (α := ℝ) ((F y : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ((F x : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ≤ δ)
    (UV : (↑s : Type u_1)),
    dist (α := ℝ) ((F y : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ((F x : (a : (↑s : Type u_1)) → ℝ) UV : ℝ) ≤ δ
⊢ F ⁻¹' closedBall (F x) δ ∈ 𝓝 x

Tactic:
refine this.mono fun y hy => (BoundedContinuousFunction.dist_le δ0.le).2 fun UV => ?_

Premises used: Iff.mpr, BoundedContinuousFunction.dist_le, LT.lt.le, Filter.Eventually.mono