l3lab/ntp-mathlib huggingface dataset:
/-- Note that we ensure the induced topology is definitionally the compact-open topology. -/
instance compactConvergenceUniformSpace : UniformSpace C(α, β)
    where
  uniformity := compactConvergenceUniformity
  refl := by
    simp only [compactConvergenceUniformity, and_imp, Filter.le_principal_iff, Prod.forall,
      Filter.mem_principal, mem_setOf_eq, le_iInf_iff, idRel_subset]
    exact fun K V _hK hV f x _hx => refl_mem_uniformity hV
  symm := by
    simp only [compactConvergenceUniformity, and_imp, Prod.forall, mem_setOf_eq, Prod.fst_swap,
      Filter.tendsto_principal, Prod.snd_swap, Filter.tendsto_iInf]
    intro K V hK hV
    obtain ⟨V', hV', hsymm, hsub⟩ := symm_of_uniformity hV
    

Proof state:
case intro.intro.intro
α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K✝ : Set α
V✝ : Set (β × β)
f : C(α, β)
K : Set α
V : Set (β × β)
hK : IsCompact K
hV : V ∈ 𝓤 β
V' : Set (β × β)
hV' : V' ∈ 𝓤 β
hsymm : ∀ (a b : β), (a, b) ∈ V' → (b, a) ∈ V'
hsub : V' ⊆ V
⊢ ∀ᶠ (a : C(α, β) × C(α, β)) in ⨅ KV, ⨅ (_ : IsCompact KV.1 ∧ KV.2 ∈ 𝓤 β), 𝓟 {fg | ∀ x ∈ KV.1, (fg.1 x, fg.2 x) ∈ KV.2},
    ∀ x ∈ K, (a.2 x, a.1 x) ∈ V

Next tactic:
let X := { fg : C(α, β) × C(α, β) | ∀ x : α, x ∈ K → (fg.1 x, fg.2 x) ∈ V' }
/-- Note that we ensure the induced topology is definitionally the compact-open topology. -/
instance compactConvergenceUniformSpace : UniformSpace C(α, β)
    where
  uniformity := compactConvergenceUniformity
  refl := by
    simp only [compactConvergenceUniformity, and_imp, Filter.le_principal_iff, Prod.forall,
      Filter.mem_principal, mem_setOf_eq, le_iInf_iff, idRel_subset]
    exact fun K V _hK hV f x _hx => refl_mem_uniformity hV
  symm := by
    simp only [compactConvergenceUniformity, and_imp, Prod.forall, mem_setOf_eq, Prod.fst_swap,
      Filter.tendsto_principal, Prod.snd_swap, Filter.tendsto_iInf]
    intro K V hK hV
    obtain ⟨V', hV', hsymm, hsub⟩ := symm_of_uniformity hV
    let X := { fg : C(α, β) × C(α, β) | ∀ x : α, x ∈ K → (fg.1 x, fg.2 x) ∈ V' }
    

Proof state:
case intro.intro.intro
α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K✝ : Set α
V✝ : Set (β × β)
f : C(α, β)
K : Set α
V : Set (β × β)
hK : IsCompact K
hV : V ∈ 𝓤 β
V' : Set (β × β)
hV' : V' ∈ 𝓤 β
hsymm : ∀ (a b : β), (a, b) ∈ V' → (b, a) ∈ V'
hsub : V' ⊆ V
X : Set (C(α, β) × C(α, β)) := {fg | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V'}
⊢ ∀ᶠ (a : C(α, β) × C(α, β)) in ⨅ KV, ⨅ (_ : IsCompact KV.1 ∧ KV.2 ∈ 𝓤 β), 𝓟 {fg | ∀ x ∈ KV.1, (fg.1 x, fg.2 x) ∈ KV.2},
    ∀ x ∈ K, (a.2 x, a.1 x) ∈ V

Next tactic:
have hX : X ∈ compactConvergenceUniformity :=
      (mem_compactConvergenceUniformity X).mpr ⟨K, V', hK, hV', by simp⟩
/-- Note that we ensure the induced topology is definitionally the compact-open topology. -/
instance compactConvergenceUniformSpace : UniformSpace C(α, β)
    where
  uniformity := compactConvergenceUniformity
  refl := by
    simp only [compactConvergenceUniformity, and_imp, Filter.le_principal_iff, Prod.forall,
      Filter.mem_principal, mem_setOf_eq, le_iInf_iff, idRel_subset]
    exact fun K V _hK hV f x _hx => refl_mem_uniformity hV
  symm := by
    simp only [compactConvergenceUniformity, and_imp, Prod.forall, mem_setOf_eq, Prod.fst_swap,
      Filter.tendsto_principal, Prod.snd_swap, Filter.tendsto_iInf]
    intro K V hK hV
    obtain ⟨V', hV', hsymm, hsub⟩ := symm_of_uniformity hV
    let X := { fg : C(α, β) × C(α, β) | ∀ x : α, x ∈ K → (fg.1 x, fg.2 x) ∈ V' }
    have hX : X ∈ compactConvergenceUniformity :=
      (mem_compactConvergenceUniformity X).mpr ⟨K, V', hK, hV', by 

Proof state:
α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K✝ : Set α
V✝ : Set (β × β)
f : C(α, β)
K : Set α
V : Set (β × β)
hK : IsCompact K
hV : V ∈ 𝓤 β
V' : Set (β × β)
hV' : V' ∈ 𝓤 β
hsymm : ∀ (a b : β), (a, b) ∈ V' → (b, a) ∈ V'
hsub : V' ⊆ V
X : Set (C(α, β) × C(α, β)) := {fg | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V'}
⊢ {fg | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V'} ⊆ X

Next tactic:
simp
/-- Note that we ensure the induced topology is definitionally the compact-open topology. -/
instance compactConvergenceUniformSpace : UniformSpace C(α, β)
    where
  uniformity := compactConvergenceUniformity
  refl := by
    simp only [compactConvergenceUniformity, and_imp, Filter.le_principal_iff, Prod.forall,
      Filter.mem_principal, mem_setOf_eq, le_iInf_iff, idRel_subset]
    exact fun K V _hK hV f x _hx => refl_mem_uniformity hV
  symm := by
    simp only [compactConvergenceUniformity, and_imp, Prod.forall, mem_setOf_eq, Prod.fst_swap,
      Filter.tendsto_principal, Prod.snd_swap, Filter.tendsto_iInf]
    intro K V hK hV
    obtain ⟨V', hV', hsymm, hsub⟩ := symm_of_uniformity hV
    let X := { fg : C(α, β) × C(α, β) | ∀ x : α, x ∈ K → (fg.1 x, fg.2 x) ∈ V' }
    have hX : X ∈ compactConvergenceUniformity :=
      (mem_compactConvergenceUniformity X).mpr ⟨K, V', hK, hV', by simp⟩
    

Proof state:
case intro.intro.intro
α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K✝ : Set α
V✝ : Set (β × β)
f : C(α, β)
K : Set α
V : Set (β × β)
hK : IsCompact K
hV : V ∈ 𝓤 β
V' : Set (β × β)
hV' : V' ∈ 𝓤 β
hsymm : ∀ (a b : β), (a, b) ∈ V' → (b, a) ∈ V'
hsub : V' ⊆ V
X : Set (C(α, β) × C(α, β)) := {fg | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V'}
hX : X ∈ compactConvergenceUniformity
⊢ ∀ᶠ (a : C(α, β) × C(α, β)) in ⨅ KV, ⨅ (_ : IsCompact KV.1 ∧ KV.2 ∈ 𝓤 β), 𝓟 {fg | ∀ x ∈ KV.1, (fg.1 x, fg.2 x) ∈ KV.2},
    ∀ x ∈ K, (a.2 x, a.1 x) ∈ V

Next tactic:
exact Filter.eventually_of_mem hX fun fg hfg x hx => hsub (hsymm _ _ (hfg x hx))
/-- Note that we ensure the induced topology is definitionally the compact-open topology. -/
instance compactConvergenceUniformSpace : UniformSpace C(α, β)
    where
  uniformity := compactConvergenceUniformity
  refl := by
    simp only [compactConvergenceUniformity, and_imp, Filter.le_principal_iff, Prod.forall,
      Filter.mem_principal, mem_setOf_eq, le_iInf_iff, idRel_subset]
    exact fun K V _hK hV f x _hx => refl_mem_uniformity hV
  symm := by
    simp only [compactConvergenceUniformity, and_imp, Prod.forall, mem_setOf_eq, Prod.fst_swap,
      Filter.tendsto_principal, Prod.snd_swap, Filter.tendsto_iInf]
    intro K V hK hV
    obtain ⟨V', hV', hsymm, hsub⟩ := symm_of_uniformity hV
    let X := { fg : C(α, β) × C(α, β) | ∀ x : α, x ∈ K → (fg.1 x, fg.2 x) ∈ V' }
    have hX : X ∈ compactConvergenceUniformity :=
      (mem_compactConvergenceUniformity X).mpr ⟨K, V', hK, hV', by simp⟩
    exact Filter.eventually_of_mem hX fun fg hfg x hx => hsub (hsymm _ _ (hfg x hx))
  comp X hX := by
    

Proof state:
α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K : Set α
V : Set (β × β)
f : C(α, β)
X : Set (C(α, β) × C(α, β))
hX : X ∈ compactConvergenceUniformity
⊢ X ∈ Filter.lift' compactConvergenceUniformity fun s => s ○ s

Next tactic:
obtain ⟨K, V, hK, hV, hX⟩ := (mem_compactConvergenceUniformity X).mp hX
/-- Note that we ensure the induced topology is definitionally the compact-open topology. -/
instance compactConvergenceUniformSpace : UniformSpace C(α, β)
    where
  uniformity := compactConvergenceUniformity
  refl := by
    simp only [compactConvergenceUniformity, and_imp, Filter.le_principal_iff, Prod.forall,
      Filter.mem_principal, mem_setOf_eq, le_iInf_iff, idRel_subset]
    exact fun K V _hK hV f x _hx => refl_mem_uniformity hV
  symm := by
    simp only [compactConvergenceUniformity, and_imp, Prod.forall, mem_setOf_eq, Prod.fst_swap,
      Filter.tendsto_principal, Prod.snd_swap, Filter.tendsto_iInf]
    intro K V hK hV
    obtain ⟨V', hV', hsymm, hsub⟩ := symm_of_uniformity hV
    let X := { fg : C(α, β) × C(α, β) | ∀ x : α, x ∈ K → (fg.1 x, fg.2 x) ∈ V' }
    have hX : X ∈ compactConvergenceUniformity :=
      (mem_compactConvergenceUniformity X).mpr ⟨K, V', hK, hV', by simp⟩
    exact Filter.eventually_of_mem hX fun fg hfg x hx => hsub (hsymm _ _ (hfg x hx))
  comp X hX := by
    obtain ⟨K, V, hK, hV, hX⟩ := (mem_compactConvergenceUniformity X).mp hX
    

Proof state:
case intro.intro.intro.intro
α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K✝ : Set α
V✝ : Set (β × β)
f : C(α, β)
X : Set (C(α, β) × C(α, β))
hX✝ : X ∈ compactConvergenceUniformity
K : Set α
V : Set (β × β)
hK : IsCompact K
hV : V ∈ 𝓤 β
hX : {fg | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V} ⊆ X
⊢ X ∈ Filter.lift' compactConvergenceUniformity fun s => s ○ s

Next tactic:
obtain ⟨V', hV', hcomp⟩ := comp_mem_uniformity_sets hV
/-- Note that we ensure the induced topology is definitionally the compact-open topology. -/
instance compactConvergenceUniformSpace : UniformSpace C(α, β)
    where
  uniformity := compactConvergenceUniformity
  refl := by
    simp only [compactConvergenceUniformity, and_imp, Filter.le_principal_iff, Prod.forall,
      Filter.mem_principal, mem_setOf_eq, le_iInf_iff, idRel_subset]
    exact fun K V _hK hV f x _hx => refl_mem_uniformity hV
  symm := by
    simp only [compactConvergenceUniformity, and_imp, Prod.forall, mem_setOf_eq, Prod.fst_swap,
      Filter.tendsto_principal, Prod.snd_swap, Filter.tendsto_iInf]
    intro K V hK hV
    obtain ⟨V', hV', hsymm, hsub⟩ := symm_of_uniformity hV
    let X := { fg : C(α, β) × C(α, β) | ∀ x : α, x ∈ K → (fg.1 x, fg.2 x) ∈ V' }
    have hX : X ∈ compactConvergenceUniformity :=
      (mem_compactConvergenceUniformity X).mpr ⟨K, V', hK, hV', by simp⟩
    exact Filter.eventually_of_mem hX fun fg hfg x hx => hsub (hsymm _ _ (hfg x hx))
  comp X hX := by
    obtain ⟨K, V, hK, hV, hX⟩ := (mem_compactConvergenceUniformity X).mp hX
    obtain ⟨V', hV', hcomp⟩ := comp_mem_uniformity_sets hV
    

Proof state:
case intro.intro.intro.intro.intro.intro
α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K✝ : Set α
V✝ : Set (β × β)
f : C(α, β)
X : Set (C(α, β) × C(α, β))
hX✝ : X ∈ compactConvergenceUniformity
K : Set α
V : Set (β × β)
hK : IsCompact K
hV : V ∈ 𝓤 β
hX : {fg | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V} ⊆ X
V' : Set (β × β)
hV' : V' ∈ 𝓤 β
hcomp : V' ○ V' ⊆ V
⊢ X ∈ Filter.lift' compactConvergenceUniformity fun s => s ○ s

Next tactic:
let h := fun s : Set (C(α, β) × C(α, β)) => s ○ s
/-- Note that we ensure the induced topology is definitionally the compact-open topology. -/
instance compactConvergenceUniformSpace : UniformSpace C(α, β)
    where
  uniformity := compactConvergenceUniformity
  refl := by
    simp only [compactConvergenceUniformity, and_imp, Filter.le_principal_iff, Prod.forall,
      Filter.mem_principal, mem_setOf_eq, le_iInf_iff, idRel_subset]
    exact fun K V _hK hV f x _hx => refl_mem_uniformity hV
  symm := by
    simp only [compactConvergenceUniformity, and_imp, Prod.forall, mem_setOf_eq, Prod.fst_swap,
      Filter.tendsto_principal, Prod.snd_swap, Filter.tendsto_iInf]
    intro K V hK hV
    obtain ⟨V', hV', hsymm, hsub⟩ := symm_of_uniformity hV
    let X := { fg : C(α, β) × C(α, β) | ∀ x : α, x ∈ K → (fg.1 x, fg.2 x) ∈ V' }
    have hX : X ∈ compactConvergenceUniformity :=
      (mem_compactConvergenceUniformity X).mpr ⟨K, V', hK, hV', by simp⟩
    exact Filter.eventually_of_mem hX fun fg hfg x hx => hsub (hsymm _ _ (hfg x hx))
  comp X hX := by
    obtain ⟨K, V, hK, hV, hX⟩ := (mem_compactConvergenceUniformity X).mp hX
    obtain ⟨V', hV', hcomp⟩ := comp_mem_uniformity_sets hV
    let h := fun s : Set (C(α, β) × C(α, β)) => s ○ s
    

Proof state:
case intro.intro.intro.intro.intro.intro
α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K✝ : Set α
V✝ : Set (β × β)
f : C(α, β)
X : Set (C(α, β) × C(α, β))
hX✝ : X ∈ compactConvergenceUniformity
K : Set α
V : Set (β × β)
hK : IsCompact K
hV : V ∈ 𝓤 β
hX : {fg | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V} ⊆ X
V' : Set (β × β)
hV' : V' ∈ 𝓤 β
hcomp : V' ○ V' ⊆ V
h : Set (C(α, β) × C(α, β)) → Set (C(α, β) × C(α, β)) := fun s => s ○ s
⊢ X ∈ Filter.lift' compactConvergenceUniformity fun s => s ○ s

Next tactic:
suffices h { fg : C(α, β) × C(α, β) | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V' } ∈
        compactConvergenceUniformity.lift' h by
      apply Filter.mem_of_superset this
      rintro ⟨f, g⟩ ⟨z, hz₁, hz₂⟩
      refine' hX fun x hx => hcomp _
      exact ⟨z x, hz₁ x hx, hz₂ x hx⟩
/-- Note that we ensure the induced topology is definitionally the compact-open topology. -/
instance compactConvergenceUniformSpace : UniformSpace C(α, β)
    where
  uniformity := compactConvergenceUniformity
  refl := by
    simp only [compactConvergenceUniformity, and_imp, Filter.le_principal_iff, Prod.forall,
      Filter.mem_principal, mem_setOf_eq, le_iInf_iff, idRel_subset]
    exact fun K V _hK hV f x _hx => refl_mem_uniformity hV
  symm := by
    simp only [compactConvergenceUniformity, and_imp, Prod.forall, mem_setOf_eq, Prod.fst_swap,
      Filter.tendsto_principal, Prod.snd_swap, Filter.tendsto_iInf]
    intro K V hK hV
    obtain ⟨V', hV', hsymm, hsub⟩ := symm_of_uniformity hV
    let X := { fg : C(α, β) × C(α, β) | ∀ x : α, x ∈ K → (fg.1 x, fg.2 x) ∈ V' }
    have hX : X ∈ compactConvergenceUniformity :=
      (mem_compactConvergenceUniformity X).mpr ⟨K, V', hK, hV', by simp⟩
    exact Filter.eventually_of_mem hX fun fg hfg x hx => hsub (hsymm _ _ (hfg x hx))
  comp X hX := by
    obtain ⟨K, V, hK, hV, hX⟩ := (mem_compactConvergenceUniformity X).mp hX
    obtain ⟨V', hV', hcomp⟩ := comp_mem_uniformity_sets hV
    let h := fun s : Set (C(α, β) × C(α, β)) => s ○ s
    suffices h { fg : C(α, β) × C(α, β) | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V' } ∈
        compactConvergenceUniformity.lift' h by
      

Proof state:
α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K✝ : Set α
V✝ : Set (β × β)
f : C(α, β)
X : Set (C(α, β) × C(α, β))
hX✝ : X ∈ compactConvergenceUniformity
K : Set α
V : Set (β × β)
hK : IsCompact K
hV : V ∈ 𝓤 β
hX : {fg | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V} ⊆ X
V' : Set (β × β)
hV' : V' ∈ 𝓤 β
hcomp : V' ○ V' ⊆ V
h : Set (C(α, β) × C(α, β)) → Set (C(α, β) × C(α, β)) := fun s => s ○ s
this : h {fg | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V'} ∈ Filter.lift' compactConvergenceUniformity h
⊢ X ∈ Filter.lift' compactConvergenceUniformity fun s => s ○ s

Next tactic:
apply Filter.mem_of_superset this
/-- Note that we ensure the induced topology is definitionally the compact-open topology. -/
instance compactConvergenceUniformSpace : UniformSpace C(α, β)
    where
  uniformity := compactConvergenceUniformity
  refl := by
    simp only [compactConvergenceUniformity, and_imp, Filter.le_principal_iff, Prod.forall,
      Filter.mem_principal, mem_setOf_eq, le_iInf_iff, idRel_subset]
    exact fun K V _hK hV f x _hx => refl_mem_uniformity hV
  symm := by
    simp only [compactConvergenceUniformity, and_imp, Prod.forall, mem_setOf_eq, Prod.fst_swap,
      Filter.tendsto_principal, Prod.snd_swap, Filter.tendsto_iInf]
    intro K V hK hV
    obtain ⟨V', hV', hsymm, hsub⟩ := symm_of_uniformity hV
    let X := { fg : C(α, β) × C(α, β) | ∀ x : α, x ∈ K → (fg.1 x, fg.2 x) ∈ V' }
    have hX : X ∈ compactConvergenceUniformity :=
      (mem_compactConvergenceUniformity X).mpr ⟨K, V', hK, hV', by simp⟩
    exact Filter.eventually_of_mem hX fun fg hfg x hx => hsub (hsymm _ _ (hfg x hx))
  comp X hX := by
    obtain ⟨K, V, hK, hV, hX⟩ := (mem_compactConvergenceUniformity X).mp hX
    obtain ⟨V', hV', hcomp⟩ := comp_mem_uniformity_sets hV
    let h := fun s : Set (C(α, β) × C(α, β)) => s ○ s
    suffices h { fg : C(α, β) × C(α, β) | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V' } ∈
        compactConvergenceUniformity.lift' h by
      apply Filter.mem_of_superset this
      

Proof state:
α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K✝ : Set α
V✝ : Set (β × β)
f : C(α, β)
X : Set (C(α, β) × C(α, β))
hX✝ : X ∈ compactConvergenceUniformity
K : Set α
V : Set (β × β)
hK : IsCompact K
hV : V ∈ 𝓤 β
hX : {fg | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V} ⊆ X
V' : Set (β × β)
hV' : V' ∈ 𝓤 β
hcomp : V' ○ V' ⊆ V
h : Set (C(α, β) × C(α, β)) → Set (C(α, β) × C(α, β)) := fun s => s ○ s
this : h {fg | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V'} ∈ Filter.lift' compactConvergenceUniformity h
⊢ h {fg | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V'} ⊆ X

Next tactic:
rintro ⟨f, g⟩ ⟨z, hz₁, hz₂⟩
/-- Note that we ensure the induced topology is definitionally the compact-open topology. -/
instance compactConvergenceUniformSpace : UniformSpace C(α, β)
    where
  uniformity := compactConvergenceUniformity
  refl := by
    simp only [compactConvergenceUniformity, and_imp, Filter.le_principal_iff, Prod.forall,
      Filter.mem_principal, mem_setOf_eq, le_iInf_iff, idRel_subset]
    exact fun K V _hK hV f x _hx => refl_mem_uniformity hV
  symm := by
    simp only [compactConvergenceUniformity, and_imp, Prod.forall, mem_setOf_eq, Prod.fst_swap,
      Filter.tendsto_principal, Prod.snd_swap, Filter.tendsto_iInf]
    intro K V hK hV
    obtain ⟨V', hV', hsymm, hsub⟩ := symm_of_uniformity hV
    let X := { fg : C(α, β) × C(α, β) | ∀ x : α, x ∈ K → (fg.1 x, fg.2 x) ∈ V' }
    have hX : X ∈ compactConvergenceUniformity :=
      (mem_compactConvergenceUniformity X).mpr ⟨K, V', hK, hV', by simp⟩
    exact Filter.eventually_of_mem hX fun fg hfg x hx => hsub (hsymm _ _ (hfg x hx))
  comp X hX := by
    obtain ⟨K, V, hK, hV, hX⟩ := (mem_compactConvergenceUniformity X).mp hX
    obtain ⟨V', hV', hcomp⟩ := comp_mem_uniformity_sets hV
    let h := fun s : Set (C(α, β) × C(α, β)) => s ○ s
    suffices h { fg : C(α, β) × C(α, β) | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V' } ∈
        compactConvergenceUniformity.lift' h by
      apply Filter.mem_of_superset this
      rintro ⟨f, g⟩ ⟨z, hz₁, hz₂⟩
      

Proof state:
case mk.intro.intro
α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K✝ : Set α
V✝ : Set (β × β)
f✝ : C(α, β)
X : Set (C(α, β) × C(α, β))
hX✝ : X ∈ compactConvergenceUniformity
K : Set α
V : Set (β × β)
hK : IsCompact K
hV : V ∈ 𝓤 β
hX : {fg | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V} ⊆ X
V' : Set (β × β)
hV' : V' ∈ 𝓤 β
hcomp : V' ○ V' ⊆ V
h : Set (C(α, β) × C(α, β)) → Set (C(α, β) × C(α, β)) := fun s => s ○ s
this : h {fg | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V'} ∈ Filter.lift' compactConvergenceUniformity h
f g z : C(α, β)
hz₁ : ((f, g).1, z) ∈ {fg | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V'}
hz₂ : (z, (f, g).2) ∈ {fg | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V'}
⊢ (f, g) ∈ X

Next tactic:
refine' hX fun x hx => hcomp _
/-- Note that we ensure the induced topology is definitionally the compact-open topology. -/
instance compactConvergenceUniformSpace : UniformSpace C(α, β)
    where
  uniformity := compactConvergenceUniformity
  refl := by
    simp only [compactConvergenceUniformity, and_imp, Filter.le_principal_iff, Prod.forall,
      Filter.mem_principal, mem_setOf_eq, le_iInf_iff, idRel_subset]
    exact fun K V _hK hV f x _hx => refl_mem_uniformity hV
  symm := by
    simp only [compactConvergenceUniformity, and_imp, Prod.forall, mem_setOf_eq, Prod.fst_swap,
      Filter.tendsto_principal, Prod.snd_swap, Filter.tendsto_iInf]
    intro K V hK hV
    obtain ⟨V', hV', hsymm, hsub⟩ := symm_of_uniformity hV
    let X := { fg : C(α, β) × C(α, β) | ∀ x : α, x ∈ K → (fg.1 x, fg.2 x) ∈ V' }
    have hX : X ∈ compactConvergenceUniformity :=
      (mem_compactConvergenceUniformity X).mpr ⟨K, V', hK, hV', by simp⟩
    exact Filter.eventually_of_mem hX fun fg hfg x hx => hsub (hsymm _ _ (hfg x hx))
  comp X hX := by
    obtain ⟨K, V, hK, hV, hX⟩ := (mem_compactConvergenceUniformity X).mp hX
    obtain ⟨V', hV', hcomp⟩ := comp_mem_uniformity_sets hV
    let h := fun s : Set (C(α, β) × C(α, β)) => s ○ s
    suffices h { fg : C(α, β) × C(α, β) | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V' } ∈
        compactConvergenceUniformity.lift' h by
      apply Filter.mem_of_superset this
      rintro ⟨f, g⟩ ⟨z, hz₁, hz₂⟩
      refine' hX fun x hx => hcomp _
      

Proof state:
case mk.intro.intro
α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K✝ : Set α
V✝ : Set (β × β)
f✝ : C(α, β)
X : Set (C(α, β) × C(α, β))
hX✝ : X ∈ compactConvergenceUniformity
K : Set α
V : Set (β × β)
hK : IsCompact K
hV : V ∈ 𝓤 β
hX : {fg | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V} ⊆ X
V' : Set (β × β)
hV' : V' ∈ 𝓤 β
hcomp : V' ○ V' ⊆ V
h : Set (C(α, β) × C(α, β)) → Set (C(α, β) × C(α, β)) := fun s => s ○ s
this : h {fg | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V'} ∈ Filter.lift' compactConvergenceUniformity h
f g z : C(α, β)
hz₁ : ((f, g).1, z) ∈ {fg | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V'}
hz₂ : (z, (f, g).2) ∈ {fg | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V'}
x : α
hx : x ∈ K
⊢ ((f, g).1 x, (f, g).2 x) ∈ V' ○ V'

Next tactic:
exact ⟨z x, hz₁ x hx, hz₂ x hx⟩
/-- Note that we ensure the induced topology is definitionally the compact-open topology. -/
instance compactConvergenceUniformSpace : UniformSpace C(α, β)
    where
  uniformity := compactConvergenceUniformity
  refl := by
    simp only [compactConvergenceUniformity, and_imp, Filter.le_principal_iff, Prod.forall,
      Filter.mem_principal, mem_setOf_eq, le_iInf_iff, idRel_subset]
    exact fun K V _hK hV f x _hx => refl_mem_uniformity hV
  symm := by
    simp only [compactConvergenceUniformity, and_imp, Prod.forall, mem_setOf_eq, Prod.fst_swap,
      Filter.tendsto_principal, Prod.snd_swap, Filter.tendsto_iInf]
    intro K V hK hV
    obtain ⟨V', hV', hsymm, hsub⟩ := symm_of_uniformity hV
    let X := { fg : C(α, β) × C(α, β) | ∀ x : α, x ∈ K → (fg.1 x, fg.2 x) ∈ V' }
    have hX : X ∈ compactConvergenceUniformity :=
      (mem_compactConvergenceUniformity X).mpr ⟨K, V', hK, hV', by simp⟩
    exact Filter.eventually_of_mem hX fun fg hfg x hx => hsub (hsymm _ _ (hfg x hx))
  comp X hX := by
    obtain ⟨K, V, hK, hV, hX⟩ := (mem_compactConvergenceUniformity X).mp hX
    obtain ⟨V', hV', hcomp⟩ := comp_mem_uniformity_sets hV
    let h := fun s : Set (C(α, β) × C(α, β)) => s ○ s
    suffices h { fg : C(α, β) × C(α, β) | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V' } ∈
        compactConvergenceUniformity.lift' h by
      apply Filter.mem_of_superset this
      rintro ⟨f, g⟩ ⟨z, hz₁, hz₂⟩
      refine' hX fun x hx => hcomp _
      exact ⟨z x, hz₁ x hx, hz₂ x hx⟩
    

Proof state:
case intro.intro.intro.intro.intro.intro
α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K✝ : Set α
V✝ : Set (β × β)
f : C(α, β)
X : Set (C(α, β) × C(α, β))
hX✝ : X ∈ compactConvergenceUniformity
K : Set α
V : Set (β × β)
hK : IsCompact K
hV : V ∈ 𝓤 β
hX : {fg | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V} ⊆ X
V' : Set (β × β)
hV' : V' ∈ 𝓤 β
hcomp : V' ○ V' ⊆ V
h : Set (C(α, β) × C(α, β)) → Set (C(α, β) × C(α, β)) := fun s => s ○ s
⊢ h {fg | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V'} ∈ Filter.lift' compactConvergenceUniformity h

Next tactic:
apply Filter.mem_lift'