Theorem: omegaLimit_union
File: Mathlib/Dynamics/OmegaLimit.lean

tactic: ext y
state_before: τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.33160
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
⊢ ω f ϕ (s₁ ∪ s₂) = ω f ϕ s₁ ∪ ω f ϕ s₂

tactic: constructor
state_before: case h
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.33160
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
y : β
⊢ y ∈ ω f ϕ (s₁ ∪ s₂) ↔ y ∈ ω f ϕ s₁ ∪ ω f ϕ s₂

tactic: simp only [mem_union, mem_omegaLimit_iff_frequently, union_inter_distrib_right, union_nonempty,
  frequently_or_distrib]
state_before: case h.mp
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.33160
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
y : β
⊢ y ∈ ω f ϕ (s₁ ∪ s₂) → y ∈ ω f ϕ s₁ ∪ ω f ϕ s₂

tactic: contrapose!
state_before: case h.mp
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.33160
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
y : β
⊢ (∀ (n : Set β),
      n ∈ 𝓝 y → (∃ᶠ (x : τ) in f, Set.Nonempty (s₁ ∩ ϕ x ⁻¹' n)) ∨ ∃ᶠ (x : τ) in f, Set.Nonempty (s₂ ∩ ϕ x ⁻¹' n)) →
    (∀ (n : Set β), n ∈ 𝓝 y → ∃ᶠ (t : τ) in f, Set.Nonempty (s₁ ∩ ϕ t ⁻¹' n)) ∨
      ∀ (n : Set β), n ∈ 𝓝 y → ∃ᶠ (t : τ) in f, Set.Nonempty (s₂ ∩ ϕ t ⁻¹' n)

tactic: simp only [not_frequently, not_nonempty_iff_eq_empty, ← subset_empty_iff]
state_before: case h.mp
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.33160
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
y : β
⊢ ((∃ n, n ∈ 𝓝 y ∧ ¬∃ᶠ (t : τ) in f, Set.Nonempty (s₁ ∩ ϕ t ⁻¹' n)) ∧
      ∃ n, n ∈ 𝓝 y ∧ ¬∃ᶠ (t : τ) in f, Set.Nonempty (s₂ ∩ ϕ t ⁻¹' n)) →
    ∃ n, n ∈ 𝓝 y ∧ (¬∃ᶠ (x : τ) in f, Set.Nonempty (s₁ ∩ ϕ x ⁻¹' n)) ∧ ¬∃ᶠ (x : τ) in f, Set.Nonempty (s₂ ∩ ϕ x ⁻¹' n)

tactic: rintro ⟨⟨n₁, hn₁, h₁⟩, ⟨n₂, hn₂, h₂⟩⟩
state_before: case h.mp
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.33160
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
y : β
⊢ ((∃ n, n ∈ 𝓝 y ∧ ∀ᶠ (x : τ) in f, s₁ ∩ ϕ x ⁻¹' n ⊆ ∅) ∧ ∃ n, n ∈ 𝓝 y ∧ ∀ᶠ (x : τ) in f, s₂ ∩ ϕ x ⁻¹' n ⊆ ∅) →
    ∃ n, n ∈ 𝓝 y ∧ (∀ᶠ (x : τ) in f, s₁ ∩ ϕ x ⁻¹' n ⊆ ∅) ∧ ∀ᶠ (x : τ) in f, s₂ ∩ ϕ x ⁻¹' n ⊆ ∅

tactic: refine' ⟨n₁ ∩ n₂, inter_mem hn₁ hn₂, h₁.mono fun t ↦ _, h₂.mono fun t ↦ _⟩
state_before: case h.mp.intro.intro.intro.intro.intro
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.33160
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
y : β
n₁ : Set β
hn₁ : n₁ ∈ 𝓝 y
h₁ : ∀ᶠ (x : τ) in f, s₁ ∩ ϕ x ⁻¹' n₁ ⊆ ∅
n₂ : Set β
hn₂ : n₂ ∈ 𝓝 y
h₂ : ∀ᶠ (x : τ) in f, s₂ ∩ ϕ x ⁻¹' n₂ ⊆ ∅
⊢ ∃ n, n ∈ 𝓝 y ∧ (∀ᶠ (x : τ) in f, s₁ ∩ ϕ x ⁻¹' n ⊆ ∅) ∧ ∀ᶠ (x : τ) in f, s₂ ∩ ϕ x ⁻¹' n ⊆ ∅

tactic: exacts [Subset.trans <| inter_subset_inter_right _ <| preimage_mono <| inter_subset_left _ _,
  Subset.trans <| inter_subset_inter_right _ <| preimage_mono <| inter_subset_right _ _]
state_before: case h.mp.intro.intro.intro.intro.intro.refine'_1
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.33160
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
y : β
n₁ : Set β
hn₁ : n₁ ∈ 𝓝 y
h₁ : ∀ᶠ (x : τ) in f, s₁ ∩ ϕ x ⁻¹' n₁ ⊆ ∅
n₂ : Set β
hn₂ : n₂ ∈ 𝓝 y
h₂ : ∀ᶠ (x : τ) in f, s₂ ∩ ϕ x ⁻¹' n₂ ⊆ ∅
t : τ
⊢ s₁ ∩ ϕ t ⁻¹' n₁ ⊆ ∅ → s₁ ∩ ϕ t ⁻¹' (n₁ ∩ n₂) ⊆ ∅

case h.mp.intro.intro.intro.intro.intro.refine'_2
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.33160
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
y : β
n₁ : Set β
hn₁ : n₁ ∈ 𝓝 y
h₁ : ∀ᶠ (x : τ) in f, s₁ ∩ ϕ x ⁻¹' n₁ ⊆ ∅
n₂ : Set β
hn₂ : n₂ ∈ 𝓝 y
h₂ : ∀ᶠ (x : τ) in f, s₂ ∩ ϕ x ⁻¹' n₂ ⊆ ∅
t : τ
⊢ s₂ ∩ ϕ t ⁻¹' n₂ ⊆ ∅ → s₂ ∩ ϕ t ⁻¹' (n₁ ∩ n₂) ⊆ ∅

tactic: rintro (hy | hy)
state_before: case h.mpr
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.33160
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
y : β
⊢ y ∈ ω f ϕ s₁ ∪ ω f ϕ s₂ → y ∈ ω f ϕ (s₁ ∪ s₂)

tactic: exacts [omegaLimit_mono_right _ _ (subset_union_left _ _) hy,
  omegaLimit_mono_right _ _ (subset_union_right _ _) hy]
state_before: case h.mpr.inl
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.33160
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
y : β
hy : y ∈ ω f ϕ s₁
⊢ y ∈ ω f ϕ (s₁ ∪ s₂)

case h.mpr.inr
τ : Type u_2
α : Type u_3
β : Type u_1
ι : Type ?u.33160
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
y : β
hy : y ∈ ω f ϕ s₂
⊢ y ∈ ω f ϕ (s₁ ∪ s₂)