Theorem: Filter.HasBasis.compactConvergenceUniformity
File: Mathlib/Topology/UniformSpace/CompactConvergence.lean

tactic: refine' hasBasis_compactConvergenceUniformity.to_hasBasis _ _
state_before: α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K : Set α
V : Set (β × β)
f : C(α, β)
ι : Type u_1
pi : ι → Prop
s : ι → Set (β × β)
h : HasBasis (𝓤 β) pi s
⊢ HasBasis (𝓤 C(α, β)) (fun p => IsCompact p.fst ∧ pi p.snd) fun p =>
    {fg | ∀ (x : α), x ∈ p.fst → (↑fg.fst x, ↑fg.snd x) ∈ s p.snd}

tactic: rintro ⟨t₁, t₂⟩ ⟨h₁, h₂⟩
state_before: case refine'_1
α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K : Set α
V : Set (β × β)
f : C(α, β)
ι : Type u_1
pi : ι → Prop
s : ι → Set (β × β)
h : HasBasis (𝓤 β) pi s
⊢ ∀ (i : Set α × Set (β × β)),
    IsCompact i.fst ∧ i.snd ∈ 𝓤 β →
      ∃ i',
        (IsCompact i'.fst ∧ pi i'.snd) ∧
          {fg | ∀ (x : α), x ∈ i'.fst → (↑fg.fst x, ↑fg.snd x) ∈ s i'.snd} ⊆
            {fg | ∀ (x : α), x ∈ i.fst → (↑fg.fst x, ↑fg.snd x) ∈ i.snd}

tactic: rcases h.mem_iff.1 h₂ with ⟨i, hpi, hi⟩
state_before: case refine'_1.mk.intro
α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K : Set α
V : Set (β × β)
f : C(α, β)
ι : Type u_1
pi : ι → Prop
s : ι → Set (β × β)
h : HasBasis (𝓤 β) pi s
t₁ : Set α
t₂ : Set (β × β)
h₁ : IsCompact (t₁, t₂).fst
h₂ : (t₁, t₂).snd ∈ 𝓤 β
⊢ ∃ i',
    (IsCompact i'.fst ∧ pi i'.snd) ∧
      {fg | ∀ (x : α), x ∈ i'.fst → (↑fg.fst x, ↑fg.snd x) ∈ s i'.snd} ⊆
        {fg | ∀ (x : α), x ∈ (t₁, t₂).fst → (↑fg.fst x, ↑fg.snd x) ∈ (t₁, t₂).snd}

tactic: exact ⟨(t₁, i), ⟨h₁, hpi⟩, fun fg hfg x hx => hi (hfg _ hx)⟩
state_before: case refine'_1.mk.intro.intro.intro
α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K : Set α
V : Set (β × β)
f : C(α, β)
ι : Type u_1
pi : ι → Prop
s : ι → Set (β × β)
h : HasBasis (𝓤 β) pi s
t₁ : Set α
t₂ : Set (β × β)
h₁ : IsCompact (t₁, t₂).fst
h₂ : (t₁, t₂).snd ∈ 𝓤 β
i : ι
hpi : pi i
hi : s i ⊆ (t₁, t₂).snd
⊢ ∃ i',
    (IsCompact i'.fst ∧ pi i'.snd) ∧
      {fg | ∀ (x : α), x ∈ i'.fst → (↑fg.fst x, ↑fg.snd x) ∈ s i'.snd} ⊆
        {fg | ∀ (x : α), x ∈ (t₁, t₂).fst → (↑fg.fst x, ↑fg.snd x) ∈ (t₁, t₂).snd}

tactic: rintro ⟨t, i⟩ ⟨ht, hi⟩
state_before: case refine'_2
α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K : Set α
V : Set (β × β)
f : C(α, β)
ι : Type u_1
pi : ι → Prop
s : ι → Set (β × β)
h : HasBasis (𝓤 β) pi s
⊢ ∀ (i' : Set α × ι),
    IsCompact i'.fst ∧ pi i'.snd →
      ∃ i,
        (IsCompact i.fst ∧ i.snd ∈ 𝓤 β) ∧
          {fg | ∀ (x : α), x ∈ i.fst → (↑fg.fst x, ↑fg.snd x) ∈ i.snd} ⊆
            {fg | ∀ (x : α), x ∈ i'.fst → (↑fg.fst x, ↑fg.snd x) ∈ s i'.snd}

tactic: exact ⟨(t, s i), ⟨ht, h.mem_of_mem hi⟩, Subset.rfl⟩
state_before: case refine'_2.mk.intro
α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K : Set α
V : Set (β × β)
f : C(α, β)
ι : Type u_1
pi : ι → Prop
s : ι → Set (β × β)
h : HasBasis (𝓤 β) pi s
t : Set α
i : ι
ht : IsCompact (t, i).fst
hi : pi (t, i).snd
⊢ ∃ i_1,
    (IsCompact i_1.fst ∧ i_1.snd ∈ 𝓤 β) ∧
      {fg | ∀ (x : α), x ∈ i_1.fst → (↑fg.fst x, ↑fg.snd x) ∈ i_1.snd} ⊆
        {fg | ∀ (x : α), x ∈ (t, i).fst → (↑fg.fst x, ↑fg.snd x) ∈ s (t, i).snd}