Theorem: CompletePseudometrizable.iInf
File: Mathlib/Topology/MetricSpace/Polish.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : Countable ι
t : ι → TopologicalSpace α
ht₀ : ∃ t₀, T2Space α ∧ ∀ (i : ι), t i ≤ t₀
ht : ∀ (i : ι), ∃ u, CompleteSpace α ∧ (𝓤 α).IsCountablyGenerated ∧ UniformSpace.toTopologicalSpace = t i
⊢ ∃ u, CompleteSpace α ∧ (𝓤 α).IsCountablyGenerated ∧ UniformSpace.toTopologicalSpace = ⨅ i, t i
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : Countable ι
t : ι → TopologicalSpace α
ht₀ : ∃ t₀, T2Space α ∧ ∀ (i : ι), t i ≤ t₀
u : ι → UniformSpace α
hcomp : ∀ (i : ι), CompleteSpace α
hcount : ∀ (i : ι), (𝓤 α).IsCountablyGenerated
hut : ∀ (i : ι), UniformSpace.toTopologicalSpace = t i
⊢ ∃ u, CompleteSpace α ∧ (𝓤 α).IsCountablyGenerated ∧ UniformSpace.toTopologicalSpace = ⨅ i, t i
tactic: choose u hcomp hcount hut using ht
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : Countable ι
t : ι → TopologicalSpace α
ht₀ : ∃ t₀, T2Space α ∧ ∀ (i : ι), t i ≤ t₀
u : ι → UniformSpace α
hcomp : ∀ (i : ι), CompleteSpace α
hcount : ∀ (i : ι), (𝓤 α).IsCountablyGenerated
hut : ∀ (i : ι), UniformSpace.toTopologicalSpace = t i
⊢ ∃ u, CompleteSpace α ∧ (𝓤 α).IsCountablyGenerated ∧ UniformSpace.toTopologicalSpace = ⨅ i, t i
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : Countable ι
u : ι → UniformSpace α
hcomp : ∀ (i : ι), CompleteSpace α
hcount : ∀ (i : ι), (𝓤 α).IsCountablyGenerated
ht₀ : ∃ t₀, T2Space α ∧ ∀ (i : ι), (fun i => UniformSpace.toTopologicalSpace) i ≤ t₀
hut : ∀ (i : ι), UniformSpace.toTopologicalSpace = (fun i => UniformSpace.toTopologicalSpace) i
⊢ ∃ u_1,
    CompleteSpace α ∧
      (𝓤 α).IsCountablyGenerated ∧ UniformSpace.toTopologicalSpace = ⨅ i, (fun i => UniformSpace.toTopologicalSpace) i
tactic: obtain rfl : t = fun i ↦ (u i).toTopologicalSpace := (funext hut).symm
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : Countable ι
u : ι → UniformSpace α
hcomp : ∀ (i : ι), CompleteSpace α
hcount : ∀ (i : ι), (𝓤 α).IsCountablyGenerated
ht₀ : ∃ t₀, T2Space α ∧ ∀ (i : ι), (fun i => UniformSpace.toTopologicalSpace) i ≤ t₀
hut : ∀ (i : ι), UniformSpace.toTopologicalSpace = (fun i => UniformSpace.toTopologicalSpace) i
⊢ ∃ u_1,
    CompleteSpace α ∧
      (𝓤 α).IsCountablyGenerated ∧ UniformSpace.toTopologicalSpace = ⨅ i, (fun i => UniformSpace.toTopologicalSpace) i
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : Countable ι
u : ι → UniformSpace α
hcomp : ∀ (i : ι), CompleteSpace α
hcount : ∀ (i : ι), (𝓤 α).IsCountablyGenerated
ht₀ : ∃ t₀, T2Space α ∧ ∀ (i : ι), (fun i => UniformSpace.toTopologicalSpace) i ≤ t₀
hut : ∀ (i : ι), UniformSpace.toTopologicalSpace = (fun i => UniformSpace.toTopologicalSpace) i
⊢ (𝓤 α).IsCountablyGenerated
tactic: refine ⟨⨅ i, u i, .iInf hcomp ht₀, ?_, UniformSpace.toTopologicalSpace_iInf⟩
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : Countable ι
u : ι → UniformSpace α
hcomp : ∀ (i : ι), CompleteSpace α
hcount : ∀ (i : ι), (𝓤 α).IsCountablyGenerated
ht₀ : ∃ t₀, T2Space α ∧ ∀ (i : ι), (fun i => UniformSpace.toTopologicalSpace) i ≤ t₀
hut : ∀ (i : ι), UniformSpace.toTopologicalSpace = (fun i => UniformSpace.toTopologicalSpace) i
⊢ (𝓤 α).IsCountablyGenerated
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : Countable ι
u : ι → UniformSpace α
hcomp : ∀ (i : ι), CompleteSpace α
hcount : ∀ (i : ι), (𝓤 α).IsCountablyGenerated
ht₀ : ∃ t₀, T2Space α ∧ ∀ (i : ι), (fun i => UniformSpace.toTopologicalSpace) i ≤ t₀
hut : ∀ (i : ι), UniformSpace.toTopologicalSpace = (fun i => UniformSpace.toTopologicalSpace) i
⊢ (⨅ i, 𝓤 α).IsCountablyGenerated
tactic: rw [iInf_uniformity]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : Countable ι
u : ι → UniformSpace α
hcomp : ∀ (i : ι), CompleteSpace α
hcount : ∀ (i : ι), (𝓤 α).IsCountablyGenerated
ht₀ : ∃ t₀, T2Space α ∧ ∀ (i : ι), (fun i => UniformSpace.toTopologicalSpace) i ≤ t₀
hut : ∀ (i : ι), UniformSpace.toTopologicalSpace = (fun i => UniformSpace.toTopologicalSpace) i
⊢ (⨅ i, 𝓤 α).IsCountablyGenerated
state_after: no goals
tactic: infer_instance