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

tactic: rcases ht₀ with ⟨i₀, hi₀⟩
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 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
α : 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: 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
⊢ 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 : @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 α
⊢ 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: 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: letI := t i₀
state_before: α : 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 α
⊢ T1Space α
state_after: α : 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 : TopologicalSpace α := t i₀
⊢ T1Space α

tactic: haveI := ht i₀
state_before: α : 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 : TopologicalSpace α := t i₀
⊢ T1Space α
state_after: α : 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✝ : TopologicalSpace α := t i₀
this : PolishSpace α
⊢ T1Space α

tactic: infer_instance
state_before: α : 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✝ : TopologicalSpace α := t i₀
this : PolishSpace α
⊢ T1Space α
state_after: no goals