Theorem: IsCompact.eventually_forall_of_forall_eventually
File: Mathlib/Topology/SubsetProperties.lean

tactic: refine' hK.induction_on _ _ _ _
state_before: α : Type u
β : Type v
ι : Type ?u.29509
π : ι → Type ?u.29514
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t : Set α
x₀ : α
K : Set β
hK : IsCompact K
P : α → β → Prop
hP : ∀ (y : β), y ∈ K → ∀ᶠ (z : α × β) in 𝓝 (x₀, y), P z.fst z.snd
⊢ ∀ᶠ (x : α) in 𝓝 x₀, ∀ (y : β), y ∈ K → P x y

tactic: exact eventually_of_forall fun x y => False.elim
state_before: case refine'_1
α : Type u
β : Type v
ι : Type ?u.29509
π : ι → Type ?u.29514
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t : Set α
x₀ : α
K : Set β
hK : IsCompact K
P : α → β → Prop
hP : ∀ (y : β), y ∈ K → ∀ᶠ (z : α × β) in 𝓝 (x₀, y), P z.fst z.snd
⊢ ∀ᶠ (x : α) in 𝓝 x₀, ∀ (y : β), y ∈ ∅ → P x y

tactic: intro s t hst ht
state_before: case refine'_2
α : Type u
β : Type v
ι : Type ?u.29509
π : ι → Type ?u.29514
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t : Set α
x₀ : α
K : Set β
hK : IsCompact K
P : α → β → Prop
hP : ∀ (y : β), y ∈ K → ∀ᶠ (z : α × β) in 𝓝 (x₀, y), P z.fst z.snd
⊢ ∀ ⦃s t : Set β⦄, s ⊆ t → (∀ᶠ (x : α) in 𝓝 x₀, ∀ (y : β), y ∈ t → P x y) → ∀ᶠ (x : α) in 𝓝 x₀, ∀ (y : β), y ∈ s → P x y

tactic: refine' ht.mono fun x h y hys => h y <| hst hys
state_before: case refine'_2
α : Type u
β : Type v
ι : Type ?u.29509
π : ι → Type ?u.29514
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s✝ t✝ : Set α
x₀ : α
K : Set β
hK : IsCompact K
P : α → β → Prop
hP : ∀ (y : β), y ∈ K → ∀ᶠ (z : α × β) in 𝓝 (x₀, y), P z.fst z.snd
s t : Set β
hst : s ⊆ t
ht : ∀ᶠ (x : α) in 𝓝 x₀, ∀ (y : β), y ∈ t → P x y
⊢ ∀ᶠ (x : α) in 𝓝 x₀, ∀ (y : β), y ∈ s → P x y

tactic: intro s t hs ht
state_before: case refine'_3
α : Type u
β : Type v
ι : Type ?u.29509
π : ι → Type ?u.29514
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t : Set α
x₀ : α
K : Set β
hK : IsCompact K
P : α → β → Prop
hP : ∀ (y : β), y ∈ K → ∀ᶠ (z : α × β) in 𝓝 (x₀, y), P z.fst z.snd
⊢ ∀ ⦃s t : Set β⦄,
    (∀ᶠ (x : α) in 𝓝 x₀, ∀ (y : β), y ∈ s → P x y) →
      (∀ᶠ (x : α) in 𝓝 x₀, ∀ (y : β), y ∈ t → P x y) → ∀ᶠ (x : α) in 𝓝 x₀, ∀ (y : β), y ∈ s ∪ t → P x y

tactic: filter_upwards [hs, ht]
state_before: case refine'_3
α : Type u
β : Type v
ι : Type ?u.29509
π : ι → Type ?u.29514
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s✝ t✝ : Set α
x₀ : α
K : Set β
hK : IsCompact K
P : α → β → Prop
hP : ∀ (y : β), y ∈ K → ∀ᶠ (z : α × β) in 𝓝 (x₀, y), P z.fst z.snd
s t : Set β
hs : ∀ᶠ (x : α) in 𝓝 x₀, ∀ (y : β), y ∈ s → P x y
ht : ∀ᶠ (x : α) in 𝓝 x₀, ∀ (y : β), y ∈ t → P x y
⊢ ∀ᶠ (x : α) in 𝓝 x₀, ∀ (y : β), y ∈ s ∪ t → P x y

tactic: rintro x h1 h2 y (hys | hyt)
state_before: case h
α : Type u
β : Type v
ι : Type ?u.29509
π : ι → Type ?u.29514
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s✝ t✝ : Set α
x₀ : α
K : Set β
hK : IsCompact K
P : α → β → Prop
hP : ∀ (y : β), y ∈ K → ∀ᶠ (z : α × β) in 𝓝 (x₀, y), P z.fst z.snd
s t : Set β
hs : ∀ᶠ (x : α) in 𝓝 x₀, ∀ (y : β), y ∈ s → P x y
ht : ∀ᶠ (x : α) in 𝓝 x₀, ∀ (y : β), y ∈ t → P x y
⊢ ∀ (a : α), (∀ (y : β), y ∈ s → P a y) → (∀ (y : β), y ∈ t → P a y) → ∀ (y : β), y ∈ s ∪ t → P a y

tactic: exacts [h1 y hys, h2 y hyt]
state_before: case h.inl
α : Type u
β : Type v
ι : Type ?u.29509
π : ι → Type ?u.29514
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s✝ t✝ : Set α
x₀ : α
K : Set β
hK : IsCompact K
P : α → β → Prop
hP : ∀ (y : β), y ∈ K → ∀ᶠ (z : α × β) in 𝓝 (x₀, y), P z.fst z.snd
s t : Set β
hs : ∀ᶠ (x : α) in 𝓝 x₀, ∀ (y : β), y ∈ s → P x y
ht : ∀ᶠ (x : α) in 𝓝 x₀, ∀ (y : β), y ∈ t → P x y
x : α
h1 : ∀ (y : β), y ∈ s → P x y
h2 : ∀ (y : β), y ∈ t → P x y
y : β
hys : y ∈ s
⊢ P x y

case h.inr
α : Type u
β : Type v
ι : Type ?u.29509
π : ι → Type ?u.29514
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s✝ t✝ : Set α
x₀ : α
K : Set β
hK : IsCompact K
P : α → β → Prop
hP : ∀ (y : β), y ∈ K → ∀ᶠ (z : α × β) in 𝓝 (x₀, y), P z.fst z.snd
s t : Set β
hs : ∀ᶠ (x : α) in 𝓝 x₀, ∀ (y : β), y ∈ s → P x y
ht : ∀ᶠ (x : α) in 𝓝 x₀, ∀ (y : β), y ∈ t → P x y
x : α
h1 : ∀ (y : β), y ∈ s → P x y
h2 : ∀ (y : β), y ∈ t → P x y
y : β
hyt : y ∈ t
⊢ P x y

tactic: intro y hyK
state_before: case refine'_4
α : Type u
β : Type v
ι : Type ?u.29509
π : ι → Type ?u.29514
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t : Set α
x₀ : α
K : Set β
hK : IsCompact K
P : α → β → Prop
hP : ∀ (y : β), y ∈ K → ∀ᶠ (z : α × β) in 𝓝 (x₀, y), P z.fst z.snd
⊢ ∀ (x : β), x ∈ K → ∃ t, t ∈ 𝓝[K] x ∧ ∀ᶠ (x : α) in 𝓝 x₀, ∀ (y : β), y ∈ t → P x y

tactic: specialize hP y hyK
state_before: case refine'_4
α : Type u
β : Type v
ι : Type ?u.29509
π : ι → Type ?u.29514
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t : Set α
x₀ : α
K : Set β
hK : IsCompact K
P : α → β → Prop
hP : ∀ (y : β), y ∈ K → ∀ᶠ (z : α × β) in 𝓝 (x₀, y), P z.fst z.snd
y : β
hyK : y ∈ K
⊢ ∃ t, t ∈ 𝓝[K] y ∧ ∀ᶠ (x : α) in 𝓝 x₀, ∀ (y : β), y ∈ t → P x y

tactic: rw [nhds_prod_eq, eventually_prod_iff] at hP
state_before: case refine'_4
α : Type u
β : Type v
ι : Type ?u.29509
π : ι → Type ?u.29514
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t : Set α
x₀ : α
K : Set β
hK : IsCompact K
P : α → β → Prop
y : β
hyK : y ∈ K
hP : ∀ᶠ (z : α × β) in 𝓝 (x₀, y), P z.fst z.snd
⊢ ∃ t, t ∈ 𝓝[K] y ∧ ∀ᶠ (x : α) in 𝓝 x₀, ∀ (y : β), y ∈ t → P x y

tactic: rcases hP with ⟨p, hp, q, hq, hpq⟩
state_before: case refine'_4
α : Type u
β : Type v
ι : Type ?u.29509
π : ι → Type ?u.29514
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t : Set α
x₀ : α
K : Set β
hK : IsCompact K
P : α → β → Prop
y : β
hyK : y ∈ K
hP :
  ∃ pa,
    (∀ᶠ (x : α) in 𝓝 x₀, pa x) ∧
      ∃ pb, (∀ᶠ (y : β) in 𝓝 y, pb y) ∧ ∀ {x : α}, pa x → ∀ {y : β}, pb y → P (x, y).fst (x, y).snd
⊢ ∃ t, t ∈ 𝓝[K] y ∧ ∀ᶠ (x : α) in 𝓝 x₀, ∀ (y : β), y ∈ t → P x y

tactic: exact ⟨{ y | q y }, mem_nhdsWithin_of_mem_nhds hq, eventually_of_mem hp @hpq⟩
state_before: case refine'_4.intro.intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.29509
π : ι → Type ?u.29514
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t : Set α
x₀ : α
K : Set β
hK : IsCompact K
P : α → β → Prop
y : β
hyK : y ∈ K
p : α → Prop
hp : ∀ᶠ (x : α) in 𝓝 x₀, p x
q : β → Prop
hq : ∀ᶠ (y : β) in 𝓝 y, q y
hpq : ∀ {x : α}, p x → ∀ {y : β}, q y → P (x, y).fst (x, y).snd
⊢ ∃ t, t ∈ 𝓝[K] y ∧ ∀ᶠ (x : α) in 𝓝 x₀, ∀ (y : β), y ∈ t → P x y