Theorem: PolishSpace.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₀ : ∃ i₀, ∀ (i : ι), t i ≤ t i₀
ht : ∀ (i : ι), PolishSpace α
⊢ PolishSpace α
state_after: case intro
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : Countable ι
t : ι → TopologicalSpace α
ht : ∀ (i : ι), PolishSpace α
i₀ : ι
hi₀ : ∀ (i : ι), t i ≤ t i₀
⊢ PolishSpace α
tactic: rcases ht₀ with ⟨i₀, hi₀⟩
state_before: case intro
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : Countable ι
t : ι → TopologicalSpace α
ht : ∀ (i : ι), PolishSpace α
i₀ : ι
hi₀ : ∀ (i : ι), t i ≤ t i₀
⊢ PolishSpace α
state_after: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : Countable ι
t : ι → TopologicalSpace α
ht : ∀ (i : ι), PolishSpace α
i₀ : ι
hi₀ : ∀ (i : ι), t i ≤ t i₀
u : UniformSpace α
hcomp : CompleteSpace α
hcount : (𝓤 α).IsCountablyGenerated
htop : UniformSpace.toTopologicalSpace = ⨅ i, t i
⊢ PolishSpace α
tactic: rcases CompletePseudometrizable.iInf ⟨t i₀, letI := t i₀; haveI := ht i₀; inferInstance, hi₀⟩
    fun i ↦
      letI := t i; haveI := ht i; letI := upgradePolishSpace α
      ⟨inferInstance, inferInstance, inferInstance, rfl⟩
    with ⟨u, hcomp, hcount, htop⟩
state_before: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : Countable ι
t : ι → TopologicalSpace α
ht : ∀ (i : ι), PolishSpace α
i₀ : ι
hi₀ : ∀ (i : ι), t i ≤ t i₀
u : UniformSpace α
hcomp : CompleteSpace α
hcount : (𝓤 α).IsCountablyGenerated
htop : UniformSpace.toTopologicalSpace = ⨅ i, t i
⊢ PolishSpace α
state_after: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : Countable ι
t : ι → TopologicalSpace α
ht : ∀ (i : ι), PolishSpace α
i₀ : ι
hi₀ : ∀ (i : ι), t i ≤ t i₀
u : UniformSpace α
hcomp : CompleteSpace α
hcount : (𝓤 α).IsCountablyGenerated
htop : UniformSpace.toTopologicalSpace = ⨅ i, t i
this : SecondCountableTopology α
⊢ PolishSpace α
tactic: have : @SecondCountableTopology α u.toTopologicalSpace :=
    htop.symm ▸ secondCountableTopology_iInf fun i ↦ letI := t i; (ht i).toSecondCountableTopology
state_before: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : Countable ι
t : ι → TopologicalSpace α
ht : ∀ (i : ι), PolishSpace α
i₀ : ι
hi₀ : ∀ (i : ι), t i ≤ t i₀
u : UniformSpace α
hcomp : CompleteSpace α
hcount : (𝓤 α).IsCountablyGenerated
htop : UniformSpace.toTopologicalSpace = ⨅ i, t i
this : SecondCountableTopology α
⊢ PolishSpace α
state_after: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : Countable ι
t : ι → TopologicalSpace α
ht : ∀ (i : ι), PolishSpace α
i₀ : ι
hi₀ : ∀ (i : ι), t i ≤ t i₀
u : UniformSpace α
hcomp : CompleteSpace α
hcount : (𝓤 α).IsCountablyGenerated
htop : UniformSpace.toTopologicalSpace = ⨅ i, t i
this✝ : SecondCountableTopology α
this : T1Space α
⊢ PolishSpace α
tactic: have : @T1Space α u.toTopologicalSpace :=
    htop.symm ▸ t1Space_antitone (iInf_le _ i₀) (by letI := t i₀; haveI := ht i₀; infer_instance)
state_before: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : Countable ι
t : ι → TopologicalSpace α
ht : ∀ (i : ι), PolishSpace α
i₀ : ι
hi₀ : ∀ (i : ι), t i ≤ t i₀
u : UniformSpace α
hcomp : CompleteSpace α
hcount : (𝓤 α).IsCountablyGenerated
htop : UniformSpace.toTopologicalSpace = ⨅ i, t i
this✝ : SecondCountableTopology α
this : T1Space α
⊢ PolishSpace α
state_after: no goals
tactic: infer_instance