Theorem: ArzelaAscoli.compactSpace_of_closed_inducing'
File: Mathlib/Topology/UniformSpace/Ascoli.lean

Proof steps:
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
α : Type u_4
β : Type u_5
inst✝³ : TopologicalSpace X
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
F : ι → X → α
G : ι → β → α
inst✝ : TopologicalSpace ι
𝔖 : Set (Set X)
𝔖_compact : ∀ K ∈ 𝔖, IsCompact K
F_ind : Inducing (⇑(UniformOnFun.ofFun 𝔖) ∘ F)
F_cl : IsClosed (range (⇑(UniformOnFun.ofFun 𝔖) ∘ F))
F_eqcont : ∀ K ∈ 𝔖, EquicontinuousOn F K
F_pointwiseCompact : ∀ K ∈ 𝔖, ∀ x ∈ K, ∃ Q, IsCompact Q ∧ ∀ (i : ι), F i x ∈ Q
⊢ CompactSpace ι
state_after: ι : Type u_1
X : Type u_2
Y : Type u_3
α : Type u_4
β : Type u_5
inst✝³ : TopologicalSpace X
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
F : ι → X → α
G : ι → β → α
inst✝ : TopologicalSpace ι
𝔖 : Set (Set X)
𝔖_compact : ∀ K ∈ 𝔖, IsCompact K
F_ind : Inducing (⇑(UniformOnFun.ofFun 𝔖) ∘ F)
F_cl : IsClosed (range (⇑(UniformOnFun.ofFun 𝔖) ∘ F))
F_eqcont : ∀ K ∈ 𝔖, EquicontinuousOn F K
F_pointwiseCompact : ∀ K ∈ 𝔖, ∀ x ∈ K, ∃ Q, IsCompact Q ∧ ∀ (i : ι), F i x ∈ Q
this : Inducing ((⋃₀ 𝔖).restrict ∘ F)
⊢ CompactSpace ι
tactic: have : Inducing (restrict (⋃₀ 𝔖) ∘ F) := by
    rwa [EquicontinuousOn.inducing_uniformOnFun_iff_pi' 𝔖_compact F_eqcont] at F_ind
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
α : Type u_4
β : Type u_5
inst✝³ : TopologicalSpace X
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
F : ι → X → α
G : ι → β → α
inst✝ : TopologicalSpace ι
𝔖 : Set (Set X)
𝔖_compact : ∀ K ∈ 𝔖, IsCompact K
F_ind : Inducing (⇑(UniformOnFun.ofFun 𝔖) ∘ F)
F_cl : IsClosed (range (⇑(UniformOnFun.ofFun 𝔖) ∘ F))
F_eqcont : ∀ K ∈ 𝔖, EquicontinuousOn F K
F_pointwiseCompact : ∀ K ∈ 𝔖, ∀ x ∈ K, ∃ Q, IsCompact Q ∧ ∀ (i : ι), F i x ∈ Q
this : Inducing ((⋃₀ 𝔖).restrict ∘ F)
⊢ CompactSpace ι
state_after: ι : Type u_1
X : Type u_2
Y : Type u_3
α : Type u_4
β : Type u_5
inst✝³ : TopologicalSpace X
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
F : ι → X → α
G : ι → β → α
inst✝ : TopologicalSpace ι
𝔖 : Set (Set X)
𝔖_compact : ∀ K ∈ 𝔖, IsCompact K
F_ind : Inducing (⇑(UniformOnFun.ofFun 𝔖) ∘ F)
F_cl : IsClosed (range (⇑(UniformOnFun.ofFun 𝔖) ∘ F))
F_eqcont : ∀ K ∈ 𝔖, EquicontinuousOn F K
F_pointwiseCompact : ∀ K ∈ 𝔖, ∀ x ∈ K, ∃ Q, IsCompact Q ∧ ∀ (i : ι), F i x ∈ Q
this : Inducing ((⋃₀ 𝔖).restrict ∘ F)
⊢ IsCompact (range ((⋃₀ 𝔖).restrict ∘ F))
tactic: rw [← isCompact_univ_iff, this.isCompact_iff, image_univ]
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
α : Type u_4
β : Type u_5
inst✝³ : TopologicalSpace X
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
F : ι → X → α
G : ι → β → α
inst✝ : TopologicalSpace ι
𝔖 : Set (Set X)
𝔖_compact : ∀ K ∈ 𝔖, IsCompact K
F_ind : Inducing (⇑(UniformOnFun.ofFun 𝔖) ∘ F)
F_cl : IsClosed (range (⇑(UniformOnFun.ofFun 𝔖) ∘ F))
F_eqcont : ∀ K ∈ 𝔖, EquicontinuousOn F K
F_pointwiseCompact : ∀ K ∈ 𝔖, ∀ x ∈ K, ∃ Q, IsCompact Q ∧ ∀ (i : ι), F i x ∈ Q
this : Inducing ((⋃₀ 𝔖).restrict ∘ F)
⊢ IsCompact (range ((⋃₀ 𝔖).restrict ∘ F))
state_after: ι : Type u_1
X : Type u_2
Y : Type u_3
α : Type u_4
β : Type u_5
inst✝³ : TopologicalSpace X
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
F : ι → X → α
G : ι → β → α
inst✝ : TopologicalSpace ι
𝔖 : Set (Set X)
𝔖_compact : ∀ K ∈ 𝔖, IsCompact K
F_ind : Inducing (⇑(UniformOnFun.ofFun 𝔖) ∘ F)
F_cl : IsClosed (range (⇑(UniformOnFun.ofFun 𝔖) ∘ F))
F_eqcont : ∀ K ∈ 𝔖, EquicontinuousOn F K
F_pointwiseCompact : ∀ x ∈ ⋃₀ 𝔖, ∃ Q, IsCompact Q ∧ ∀ (i : ι), F i x ∈ Q
this : Inducing ((⋃₀ 𝔖).restrict ∘ F)
⊢ IsCompact (range ((⋃₀ 𝔖).restrict ∘ F))
tactic: rw [← forall_sUnion] at F_pointwiseCompact
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
α : Type u_4
β : Type u_5
inst✝³ : TopologicalSpace X
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
F : ι → X → α
G : ι → β → α
inst✝ : TopologicalSpace ι
𝔖 : Set (Set X)
𝔖_compact : ∀ K ∈ 𝔖, IsCompact K
F_ind : Inducing (⇑(UniformOnFun.ofFun 𝔖) ∘ F)
F_cl : IsClosed (range (⇑(UniformOnFun.ofFun 𝔖) ∘ F))
F_eqcont : ∀ K ∈ 𝔖, EquicontinuousOn F K
F_pointwiseCompact : ∀ x ∈ ⋃₀ 𝔖, ∃ Q, IsCompact Q ∧ ∀ (i : ι), F i x ∈ Q
this : Inducing ((⋃₀ 𝔖).restrict ∘ F)
⊢ IsCompact (range ((⋃₀ 𝔖).restrict ∘ F))
state_after: ι : Type u_1
X : Type u_2
Y : Type u_3
α : Type u_4
β : Type u_5
inst✝³ : TopologicalSpace X
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
F : ι → X → α
G : ι → β → α
inst✝ : TopologicalSpace ι
𝔖 : Set (Set X)
𝔖_compact : ∀ K ∈ 𝔖, IsCompact K
F_ind : Inducing (⇑(UniformOnFun.ofFun 𝔖) ∘ F)
F_cl : IsClosed (range (⇑(UniformOnFun.ofFun 𝔖) ∘ F))
F_eqcont : ∀ K ∈ 𝔖, EquicontinuousOn F K
this : Inducing ((⋃₀ 𝔖).restrict ∘ F)
Q : X → Set α
Q_compact : ∀ x ∈ ⋃₀ 𝔖, IsCompact (Q x)
F_in_Q : ∀ x ∈ ⋃₀ 𝔖, ∀ (i : ι), F i x ∈ Q x
⊢ IsCompact (range ((⋃₀ 𝔖).restrict ∘ F))
tactic: choose! Q Q_compact F_in_Q using F_pointwiseCompact
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
α : Type u_4
β : Type u_5
inst✝³ : TopologicalSpace X
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
F : ι → X → α
G : ι → β → α
inst✝ : TopologicalSpace ι
𝔖 : Set (Set X)
𝔖_compact : ∀ K ∈ 𝔖, IsCompact K
F_ind : Inducing (⇑(UniformOnFun.ofFun 𝔖) ∘ F)
F_cl : IsClosed (range (⇑(UniformOnFun.ofFun 𝔖) ∘ F))
F_eqcont : ∀ K ∈ 𝔖, EquicontinuousOn F K
this : Inducing ((⋃₀ 𝔖).restrict ∘ F)
Q : X → Set α
Q_compact : ∀ x ∈ ⋃₀ 𝔖, IsCompact (Q x)
F_in_Q : ∀ x ∈ ⋃₀ 𝔖, ∀ (i : ι), F i x ∈ Q x
⊢ IsCompact (range ((⋃₀ 𝔖).restrict ∘ F))
state_after: no goals
tactic: refine IsCompact.of_isClosed_subset (isCompact_univ_pi fun x ↦ Q_compact x x.2)
    (EquicontinuousOn.isClosed_range_pi_of_uniformOnFun' 𝔖_compact F_eqcont F_cl)
    (range_subset_iff.mpr fun i x _ ↦ F_in_Q x x.2 i)