Theorem: eventually_closure_subset_of_isCompact_absorbing_of_isOpen_of_omegaLimit_subset'
File: Mathlib/Dynamics/OmegaLimit.lean

tactic: rcases hc₂ with ⟨v, hv₁, hv₂⟩
state_before: τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
hc₂ : ∃ v, v ∈ f ∧ closure (image2 ϕ v s) ⊆ c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
⊢ ∃ u, u ∈ f ∧ closure (image2 ϕ u s) ⊆ n

tactic: let k := closure (image2 ϕ v s)
state_before: case intro.intro
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
⊢ ∃ u, u ∈ f ∧ closure (image2 ϕ u s) ⊆ n

tactic: have hk : IsCompact (k \ n) :=
  IsCompact.diff (isCompact_of_isClosed_subset hc₁ isClosed_closure hv₂) hn₁
state_before: case intro.intro
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
⊢ ∃ u, u ∈ f ∧ closure (image2 ϕ u s) ⊆ n

tactic: let j u := closure (image2 ϕ (u ∩ v) s)ᶜ
state_before: case intro.intro
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
⊢ ∃ u, u ∈ f ∧ closure (image2 ϕ u s) ⊆ n

tactic: have hj₁ : ∀ u ∈ f, IsOpen (j u) := fun _ _ ↦ isOpen_compl_iff.mpr isClosed_closure
state_before: case intro.intro
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
⊢ ∃ u, u ∈ f ∧ closure (image2 ϕ u s) ⊆ n

tactic: have hj₂ : k \ n ⊆ ⋃ u ∈ f, j u := by
  have : (⋃ u ∈ f, j u) = ⋃ u : (↥f.sets), j u := biUnion_eq_iUnion _ _
  rw [this, diff_subset_comm, diff_iUnion]
  rw [omegaLimit_eq_iInter_inter _ _ _ hv₁] at hn₂
  simp_rw [diff_compl]
  rw [← inter_iInter]
  exact Subset.trans (inter_subset_right _ _) hn₂
state_before: case intro.intro
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
⊢ ∃ u, u ∈ f ∧ closure (image2 ϕ u s) ⊆ n

tactic: rcases hk.elim_finite_subcover_image hj₁ hj₂ with ⟨g, hg₁ : ∀ u ∈ g, u ∈ f, hg₂, hg₃⟩
state_before: case intro.intro
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
hj₂ : k \ n ⊆ ⋃ (u : Set τ) (_ : u ∈ f), j u
⊢ ∃ u, u ∈ f ∧ closure (image2 ϕ u s) ⊆ n

tactic: let w := (⋂ u ∈ g, u) ∩ v
state_before: case intro.intro.intro.intro.intro
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
hj₂ : k \ n ⊆ ⋃ (u : Set τ) (_ : u ∈ f), j u
g : Set (Set τ)
hg₁ : ∀ (u : Set τ), u ∈ g → u ∈ f
hg₂ : Set.Finite g
hg₃ : k \ n ⊆ ⋃ (i : Set τ) (_ : i ∈ g), j i
⊢ ∃ u, u ∈ f ∧ closure (image2 ϕ u s) ⊆ n

tactic: have hw₂ : w ∈ f := by simpa [*]
state_before: case intro.intro.intro.intro.intro
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
hj₂ : k \ n ⊆ ⋃ (u : Set τ) (_ : u ∈ f), j u
g : Set (Set τ)
hg₁ : ∀ (u : Set τ), u ∈ g → u ∈ f
hg₂ : Set.Finite g
hg₃ : k \ n ⊆ ⋃ (i : Set τ) (_ : i ∈ g), j i
w : Set τ := (⋂ (u : Set τ) (_ : u ∈ g), u) ∩ v
⊢ ∃ u, u ∈ f ∧ closure (image2 ϕ u s) ⊆ n

tactic: have hw₃ : k \ n ⊆ closure (image2 ϕ w s)ᶜ := by
  apply Subset.trans hg₃
  simp only [iUnion_subset_iff, compl_subset_compl]
  intros u hu
  mono
  refine' iInter_subset_of_subset u (iInter_subset_of_subset hu _)
  all_goals exact Subset.rfl
state_before: case intro.intro.intro.intro.intro
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
hj₂ : k \ n ⊆ ⋃ (u : Set τ) (_ : u ∈ f), j u
g : Set (Set τ)
hg₁ : ∀ (u : Set τ), u ∈ g → u ∈ f
hg₂ : Set.Finite g
hg₃ : k \ n ⊆ ⋃ (i : Set τ) (_ : i ∈ g), j i
w : Set τ := (⋂ (u : Set τ) (_ : u ∈ g), u) ∩ v
hw₂ : w ∈ f
⊢ ∃ u, u ∈ f ∧ closure (image2 ϕ u s) ⊆ n

tactic: have hw₄ : kᶜ ⊆ closure (image2 ϕ w s)ᶜ := by
  simp only [compl_subset_compl]
  exact closure_mono (image2_subset (inter_subset_right _ _) Subset.rfl)
state_before: case intro.intro.intro.intro.intro
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
hj₂ : k \ n ⊆ ⋃ (u : Set τ) (_ : u ∈ f), j u
g : Set (Set τ)
hg₁ : ∀ (u : Set τ), u ∈ g → u ∈ f
hg₂ : Set.Finite g
hg₃ : k \ n ⊆ ⋃ (i : Set τ) (_ : i ∈ g), j i
w : Set τ := (⋂ (u : Set τ) (_ : u ∈ g), u) ∩ v
hw₂ : w ∈ f
hw₃ : k \ n ⊆ closure (image2 ϕ w s)ᶜ
⊢ ∃ u, u ∈ f ∧ closure (image2 ϕ u s) ⊆ n

tactic: have hnc : nᶜ ⊆ k \ n ∪ kᶜ := by rw [union_comm, ← inter_subset, diff_eq, inter_comm]
state_before: case intro.intro.intro.intro.intro
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
hj₂ : k \ n ⊆ ⋃ (u : Set τ) (_ : u ∈ f), j u
g : Set (Set τ)
hg₁ : ∀ (u : Set τ), u ∈ g → u ∈ f
hg₂ : Set.Finite g
hg₃ : k \ n ⊆ ⋃ (i : Set τ) (_ : i ∈ g), j i
w : Set τ := (⋂ (u : Set τ) (_ : u ∈ g), u) ∩ v
hw₂ : w ∈ f
hw₃ : k \ n ⊆ closure (image2 ϕ w s)ᶜ
hw₄ : kᶜ ⊆ closure (image2 ϕ w s)ᶜ
⊢ ∃ u, u ∈ f ∧ closure (image2 ϕ u s) ⊆ n

tactic: have hw : closure (image2 ϕ w s) ⊆ n :=
  compl_subset_compl.mp (Subset.trans hnc (union_subset hw₃ hw₄))
state_before: case intro.intro.intro.intro.intro
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
hj₂ : k \ n ⊆ ⋃ (u : Set τ) (_ : u ∈ f), j u
g : Set (Set τ)
hg₁ : ∀ (u : Set τ), u ∈ g → u ∈ f
hg₂ : Set.Finite g
hg₃ : k \ n ⊆ ⋃ (i : Set τ) (_ : i ∈ g), j i
w : Set τ := (⋂ (u : Set τ) (_ : u ∈ g), u) ∩ v
hw₂ : w ∈ f
hw₃ : k \ n ⊆ closure (image2 ϕ w s)ᶜ
hw₄ : kᶜ ⊆ closure (image2 ϕ w s)ᶜ
hnc : nᶜ ⊆ k \ n ∪ kᶜ
⊢ ∃ u, u ∈ f ∧ closure (image2 ϕ u s) ⊆ n

tactic: exact ⟨_, hw₂, hw⟩
state_before: case intro.intro.intro.intro.intro
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
hj₂ : k \ n ⊆ ⋃ (u : Set τ) (_ : u ∈ f), j u
g : Set (Set τ)
hg₁ : ∀ (u : Set τ), u ∈ g → u ∈ f
hg₂ : Set.Finite g
hg₃ : k \ n ⊆ ⋃ (i : Set τ) (_ : i ∈ g), j i
w : Set τ := (⋂ (u : Set τ) (_ : u ∈ g), u) ∩ v
hw₂ : w ∈ f
hw₃ : k \ n ⊆ closure (image2 ϕ w s)ᶜ
hw₄ : kᶜ ⊆ closure (image2 ϕ w s)ᶜ
hnc : nᶜ ⊆ k \ n ∪ kᶜ
hw : closure (image2 ϕ w s) ⊆ n
⊢ ∃ u, u ∈ f ∧ closure (image2 ϕ u s) ⊆ n

tactic: have : (⋃ u ∈ f, j u) = ⋃ u : (↥f.sets), j u := biUnion_eq_iUnion _ _
state_before: τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
⊢ k \ n ⊆ ⋃ (u : Set τ) (_ : u ∈ f), j u

tactic: rw [this, diff_subset_comm, diff_iUnion]
state_before: τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
this : (⋃ (u : Set τ) (_ : u ∈ f), j u) = ⋃ (u : ↑f.sets), j ↑u
⊢ k \ n ⊆ ⋃ (u : Set τ) (_ : u ∈ f), j u

tactic: rw [omegaLimit_eq_iInter_inter _ _ _ hv₁] at hn₂
state_before: τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
this : (⋃ (u : Set τ) (_ : u ∈ f), j u) = ⋃ (u : ↑f.sets), j ↑u
⊢ (⋂ (i : ↑f.sets), k \ j ↑i) ⊆ n

tactic: simp_rw [diff_compl]
state_before: τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
v : Set τ
hn₂ : (⋂ (u : ↑f.sets), closure (image2 ϕ (↑u ∩ v) s)) ⊆ n
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
this : (⋃ (u : Set τ) (_ : u ∈ f), j u) = ⋃ (u : ↑f.sets), j ↑u
⊢ (⋂ (i : ↑f.sets), k \ j ↑i) ⊆ n

tactic: rw [← inter_iInter]
state_before: τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
v : Set τ
hn₂ : (⋂ (u : ↑f.sets), closure (image2 ϕ (↑u ∩ v) s)) ⊆ n
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
this : (⋃ (u : Set τ) (_ : u ∈ f), j u) = ⋃ (u : ↑f.sets), j ↑u
⊢ (⋂ (i : ↑f.sets), closure (image2 ϕ v s) ∩ closure (image2 ϕ (↑i ∩ v) s)) ⊆ n

tactic: exact Subset.trans (inter_subset_right _ _) hn₂
state_before: τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
v : Set τ
hn₂ : (⋂ (u : ↑f.sets), closure (image2 ϕ (↑u ∩ v) s)) ⊆ n
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
this : (⋃ (u : Set τ) (_ : u ∈ f), j u) = ⋃ (u : ↑f.sets), j ↑u
⊢ (closure (image2 ϕ v s) ∩ ⋂ (i : ↑f.sets), closure (image2 ϕ (↑i ∩ v) s)) ⊆ n

tactic: simpa [*]
state_before: τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
hj₂ : k \ n ⊆ ⋃ (u : Set τ) (_ : u ∈ f), j u
g : Set (Set τ)
hg₁ : ∀ (u : Set τ), u ∈ g → u ∈ f
hg₂ : Set.Finite g
hg₃ : k \ n ⊆ ⋃ (i : Set τ) (_ : i ∈ g), j i
w : Set τ := (⋂ (u : Set τ) (_ : u ∈ g), u) ∩ v
⊢ w ∈ f

tactic: apply Subset.trans hg₃
state_before: τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
hj₂ : k \ n ⊆ ⋃ (u : Set τ) (_ : u ∈ f), j u
g : Set (Set τ)
hg₁ : ∀ (u : Set τ), u ∈ g → u ∈ f
hg₂ : Set.Finite g
hg₃ : k \ n ⊆ ⋃ (i : Set τ) (_ : i ∈ g), j i
w : Set τ := (⋂ (u : Set τ) (_ : u ∈ g), u) ∩ v
hw₂ : w ∈ f
⊢ k \ n ⊆ closure (image2 ϕ w s)ᶜ

tactic: simp only [iUnion_subset_iff, compl_subset_compl]
state_before: τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
hj₂ : k \ n ⊆ ⋃ (u : Set τ) (_ : u ∈ f), j u
g : Set (Set τ)
hg₁ : ∀ (u : Set τ), u ∈ g → u ∈ f
hg₂ : Set.Finite g
hg₃ : k \ n ⊆ ⋃ (i : Set τ) (_ : i ∈ g), j i
w : Set τ := (⋂ (u : Set τ) (_ : u ∈ g), u) ∩ v
hw₂ : w ∈ f
⊢ (⋃ (i : Set τ) (_ : i ∈ g), j i) ⊆ closure (image2 ϕ w s)ᶜ

tactic: intros u hu
state_before: τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
hj₂ : k \ n ⊆ ⋃ (u : Set τ) (_ : u ∈ f), j u
g : Set (Set τ)
hg₁ : ∀ (u : Set τ), u ∈ g → u ∈ f
hg₂ : Set.Finite g
hg₃ : k \ n ⊆ ⋃ (i : Set τ) (_ : i ∈ g), j i
w : Set τ := (⋂ (u : Set τ) (_ : u ∈ g), u) ∩ v
hw₂ : w ∈ f
⊢ ∀ (i : Set τ), i ∈ g → closure (image2 ϕ ((⋂ (u : Set τ) (_ : u ∈ g), u) ∩ v) s) ⊆ closure (image2 ϕ (i ∩ v) s)

tactic: mono
state_before: τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
hj₂ : k \ n ⊆ ⋃ (u : Set τ) (_ : u ∈ f), j u
g : Set (Set τ)
hg₁ : ∀ (u : Set τ), u ∈ g → u ∈ f
hg₂ : Set.Finite g
hg₃ : k \ n ⊆ ⋃ (i : Set τ) (_ : i ∈ g), j i
w : Set τ := (⋂ (u : Set τ) (_ : u ∈ g), u) ∩ v
hw₂ : w ∈ f
u : Set τ
hu : u ∈ g
⊢ closure (image2 ϕ ((⋂ (u : Set τ) (_ : u ∈ g), u) ∩ v) s) ⊆ closure (image2 ϕ (u ∩ v) s)

tactic: refine' iInter_subset_of_subset u (iInter_subset_of_subset hu _)
state_before: case h.hs.h₁
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
hj₂ : k \ n ⊆ ⋃ (u : Set τ) (_ : u ∈ f), j u
g : Set (Set τ)
hg₁ : ∀ (u : Set τ), u ∈ g → u ∈ f
hg₂ : Set.Finite g
hg₃ : k \ n ⊆ ⋃ (i : Set τ) (_ : i ∈ g), j i
w : Set τ := (⋂ (u : Set τ) (_ : u ∈ g), u) ∩ v
hw₂ : w ∈ f
u : Set τ
hu : u ∈ g
⊢ (⋂ (u : Set τ) (_ : u ∈ g), u) ⊆ u

case h.hs.h₂
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
hj₂ : k \ n ⊆ ⋃ (u : Set τ) (_ : u ∈ f), j u
g : Set (Set τ)
hg₁ : ∀ (u : Set τ), u ∈ g → u ∈ f
hg₂ : Set.Finite g
hg₃ : k \ n ⊆ ⋃ (i : Set τ) (_ : i ∈ g), j i
w : Set τ := (⋂ (u : Set τ) (_ : u ∈ g), u) ∩ v
hw₂ : w ∈ f
u : Set τ
hu : u ∈ g
⊢ v ⊆ v

case h.ht
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
hj₂ : k \ n ⊆ ⋃ (u : Set τ) (_ : u ∈ f), j u
g : Set (Set τ)
hg₁ : ∀ (u : Set τ), u ∈ g → u ∈ f
hg₂ : Set.Finite g
hg₃ : k \ n ⊆ ⋃ (i : Set τ) (_ : i ∈ g), j i
w : Set τ := (⋂ (u : Set τ) (_ : u ∈ g), u) ∩ v
hw₂ : w ∈ f
u : Set τ
hu : u ∈ g
⊢ s ⊆ s

tactic: all_goals exact Subset.rfl
state_before: case h.hs.h₁
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
hj₂ : k \ n ⊆ ⋃ (u : Set τ) (_ : u ∈ f), j u
g : Set (Set τ)
hg₁ : ∀ (u : Set τ), u ∈ g → u ∈ f
hg₂ : Set.Finite g
hg₃ : k \ n ⊆ ⋃ (i : Set τ) (_ : i ∈ g), j i
w : Set τ := (⋂ (u : Set τ) (_ : u ∈ g), u) ∩ v
hw₂ : w ∈ f
u : Set τ
hu : u ∈ g
⊢ u ⊆ u

case h.hs.h₂
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
hj₂ : k \ n ⊆ ⋃ (u : Set τ) (_ : u ∈ f), j u
g : Set (Set τ)
hg₁ : ∀ (u : Set τ), u ∈ g → u ∈ f
hg₂ : Set.Finite g
hg₃ : k \ n ⊆ ⋃ (i : Set τ) (_ : i ∈ g), j i
w : Set τ := (⋂ (u : Set τ) (_ : u ∈ g), u) ∩ v
hw₂ : w ∈ f
u : Set τ
hu : u ∈ g
⊢ v ⊆ v

case h.ht
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
hj₂ : k \ n ⊆ ⋃ (u : Set τ) (_ : u ∈ f), j u
g : Set (Set τ)
hg₁ : ∀ (u : Set τ), u ∈ g → u ∈ f
hg₂ : Set.Finite g
hg₃ : k \ n ⊆ ⋃ (i : Set τ) (_ : i ∈ g), j i
w : Set τ := (⋂ (u : Set τ) (_ : u ∈ g), u) ∩ v
hw₂ : w ∈ f
u : Set τ
hu : u ∈ g
⊢ s ⊆ s

tactic: exact Subset.rfl
state_before: case h.ht
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
hj₂ : k \ n ⊆ ⋃ (u : Set τ) (_ : u ∈ f), j u
g : Set (Set τ)
hg₁ : ∀ (u : Set τ), u ∈ g → u ∈ f
hg₂ : Set.Finite g
hg₃ : k \ n ⊆ ⋃ (i : Set τ) (_ : i ∈ g), j i
w : Set τ := (⋂ (u : Set τ) (_ : u ∈ g), u) ∩ v
hw₂ : w ∈ f
u : Set τ
hu : u ∈ g
⊢ s ⊆ s

tactic: simp only [compl_subset_compl]
state_before: τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
hj₂ : k \ n ⊆ ⋃ (u : Set τ) (_ : u ∈ f), j u
g : Set (Set τ)
hg₁ : ∀ (u : Set τ), u ∈ g → u ∈ f
hg₂ : Set.Finite g
hg₃ : k \ n ⊆ ⋃ (i : Set τ) (_ : i ∈ g), j i
w : Set τ := (⋂ (u : Set τ) (_ : u ∈ g), u) ∩ v
hw₂ : w ∈ f
hw₃ : k \ n ⊆ closure (image2 ϕ w s)ᶜ
⊢ kᶜ ⊆ closure (image2 ϕ w s)ᶜ

tactic: exact closure_mono (image2_subset (inter_subset_right _ _) Subset.rfl)
state_before: τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
hj₂ : k \ n ⊆ ⋃ (u : Set τ) (_ : u ∈ f), j u
g : Set (Set τ)
hg₁ : ∀ (u : Set τ), u ∈ g → u ∈ f
hg₂ : Set.Finite g
hg₃ : k \ n ⊆ ⋃ (i : Set τ) (_ : i ∈ g), j i
w : Set τ := (⋂ (u : Set τ) (_ : u ∈ g), u) ∩ v
hw₂ : w ∈ f
hw₃ : k \ n ⊆ closure (image2 ϕ w s)ᶜ
⊢ closure (image2 ϕ ((⋂ (u : Set τ) (_ : u ∈ g), u) ∩ v) s) ⊆ closure (image2 ϕ v s)

tactic: rw [union_comm, ← inter_subset, diff_eq, inter_comm]
state_before: τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.37681
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
c : Set β
hc₁ : IsCompact c
n : Set β
hn₁ : IsOpen n
hn₂ : ω f ϕ s ⊆ n
v : Set τ
hv₁ : v ∈ f
hv₂ : closure (image2 ϕ v s) ⊆ c
k : Set β := closure (image2 ϕ v s)
hk : IsCompact (k \ n)
j : Set τ → Set β := fun u => closure (image2 ϕ (u ∩ v) s)ᶜ
hj₁ : ∀ (u : Set τ), u ∈ f → IsOpen (j u)
hj₂ : k \ n ⊆ ⋃ (u : Set τ) (_ : u ∈ f), j u
g : Set (Set τ)
hg₁ : ∀ (u : Set τ), u ∈ g → u ∈ f
hg₂ : Set.Finite g
hg₃ : k \ n ⊆ ⋃ (i : Set τ) (_ : i ∈ g), j i
w : Set τ := (⋂ (u : Set τ) (_ : u ∈ g), u) ∩ v
hw₂ : w ∈ f
hw₃ : k \ n ⊆ closure (image2 ϕ w s)ᶜ
hw₄ : kᶜ ⊆ closure (image2 ϕ w s)ᶜ
⊢ nᶜ ⊆ k \ n ∪ kᶜ