Theorem: Filter.IsCobounded.of_frequently_ge
File: Mathlib/Order/LiminfLimsup.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
R : Type u_6
S : Type u_7
F : Filter R
inst✝¹ : LinearOrder R
inst✝ : LinearOrder S
l : R
freq_ge : ∃ᶠ (x : R) in F, l ≤ x
⊢ IsCobounded (fun x x_1 => x ≤ x_1) F
state_after: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
R : Type u_6
S : Type u_7
F : Filter R
inst✝¹ : LinearOrder R
inst✝ : LinearOrder S
l : R
freq_ge : ∃ᶠ (x : R) in F, l ≤ x
lbot : IsBot l
⊢ IsCobounded (fun x x_1 => x ≤ x_1) F

case neg
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
R : Type u_6
S : Type u_7
F : Filter R
inst✝¹ : LinearOrder R
inst✝ : LinearOrder S
l : R
freq_ge : ∃ᶠ (x : R) in F, l ≤ x
lbot : ¬IsBot l
⊢ IsCobounded (fun x x_1 => x ≤ x_1) F
tactic: by_cases lbot : IsBot l
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
R : Type u_6
S : Type u_7
F : Filter R
inst✝¹ : LinearOrder R
inst✝ : LinearOrder S
l : R
freq_ge : ∃ᶠ (x : R) in F, l ≤ x
lbot : ¬IsBot l
⊢ IsCobounded (fun x x_1 => x ≤ x_1) F
state_after: case neg.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
R : Type u_6
S : Type u_7
F : Filter R
inst✝¹ : LinearOrder R
inst✝ : LinearOrder S
l : R
freq_ge : ∃ᶠ (x : R) in F, l ≤ x
lbot : ¬IsBot l
l' : R
hl' : l' < l
⊢ IsCobounded (fun x x_1 => x ≤ x_1) F
tactic: obtain ⟨l', hl'⟩ : ∃ l', l' < l := by
    by_contra!
    exact lbot this
state_before: case neg.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
R : Type u_6
S : Type u_7
F : Filter R
inst✝¹ : LinearOrder R
inst✝ : LinearOrder S
l : R
freq_ge : ∃ᶠ (x : R) in F, l ≤ x
lbot : ¬IsBot l
l' : R
hl' : l' < l
⊢ IsCobounded (fun x x_1 => x ≤ x_1) F
state_after: case neg.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
R : Type u_6
S : Type u_7
F : Filter R
inst✝¹ : LinearOrder R
inst✝ : LinearOrder S
l : R
freq_ge : ∃ᶠ (x : R) in F, l ≤ x
lbot : ¬IsBot l
l' : R
hl' : l' < l
⊢ ∀ (a : R), (∀ᶠ (x : R) in F, (fun x x_1 => x ≤ x_1) x a) → (fun x x_1 => x ≤ x_1) l' a
tactic: refine ⟨l', ?_⟩
state_before: case neg.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
R : Type u_6
S : Type u_7
F : Filter R
inst✝¹ : LinearOrder R
inst✝ : LinearOrder S
l : R
freq_ge : ∃ᶠ (x : R) in F, l ≤ x
lbot : ¬IsBot l
l' : R
hl' : l' < l
⊢ ∀ (a : R), (∀ᶠ (x : R) in F, (fun x x_1 => x ≤ x_1) x a) → (fun x x_1 => x ≤ x_1) l' a
state_after: case neg.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
R : Type u_6
S : Type u_7
F : Filter R
inst✝¹ : LinearOrder R
inst✝ : LinearOrder S
l : R
freq_ge : ∃ᶠ (x : R) in F, l ≤ x
lbot : ¬IsBot l
l' : R
hl' : l' < l
u : R
hu : ∀ᶠ (x : R) in F, (fun x x_1 => x ≤ x_1) x u
⊢ l' ≤ u
tactic: intro u hu
state_before: case neg.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
R : Type u_6
S : Type u_7
F : Filter R
inst✝¹ : LinearOrder R
inst✝ : LinearOrder S
l : R
freq_ge : ∃ᶠ (x : R) in F, l ≤ x
lbot : ¬IsBot l
l' : R
hl' : l' < l
u : R
hu : ∀ᶠ (x : R) in F, (fun x x_1 => x ≤ x_1) x u
⊢ l' ≤ u
state_after: case neg.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
R : Type u_6
S : Type u_7
F : Filter R
inst✝¹ : LinearOrder R
inst✝ : LinearOrder S
l : R
freq_ge : ∃ᶠ (x : R) in F, l ≤ x
lbot : ¬IsBot l
l' : R
hl' : l' < l
u : R
hu : ∀ᶠ (x : R) in F, (fun x x_1 => x ≤ x_1) x u
key : ∃ᶠ (x : R) in F, l ≤ x ∧ x ≤ u
⊢ l' ≤ u
tactic: have key : ∃ᶠ x in F, l ≤ x ∧ x ≤ u := Frequently.and_eventually freq_ge hu
state_before: case neg.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
R : Type u_6
S : Type u_7
F : Filter R
inst✝¹ : LinearOrder R
inst✝ : LinearOrder S
l : R
freq_ge : ∃ᶠ (x : R) in F, l ≤ x
lbot : ¬IsBot l
l' : R
hl' : l' < l
u : R
hu : ∀ᶠ (x : R) in F, (fun x x_1 => x ≤ x_1) x u
key : ∃ᶠ (x : R) in F, l ≤ x ∧ x ≤ u
⊢ l' ≤ u
state_after: case neg.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
R : Type u_6
S : Type u_7
F : Filter R
inst✝¹ : LinearOrder R
inst✝ : LinearOrder S
l : R
freq_ge : ∃ᶠ (x : R) in F, l ≤ x
lbot : ¬IsBot l
l' : R
hl' : l' < l
u : R
hu : ∀ᶠ (x : R) in F, (fun x x_1 => x ≤ x_1) x u
key : ∃ᶠ (x : R) in F, l ≤ x ∧ x ≤ u
w : R
l_le_w : l ≤ w
w_le_u : w ≤ u
⊢ l' ≤ u
tactic: obtain ⟨w, l_le_w, w_le_u⟩ := key.exists
state_before: case neg.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
R : Type u_6
S : Type u_7
F : Filter R
inst✝¹ : LinearOrder R
inst✝ : LinearOrder S
l : R
freq_ge : ∃ᶠ (x : R) in F, l ≤ x
lbot : ¬IsBot l
l' : R
hl' : l' < l
u : R
hu : ∀ᶠ (x : R) in F, (fun x x_1 => x ≤ x_1) x u
key : ∃ᶠ (x : R) in F, l ≤ x ∧ x ≤ u
w : R
l_le_w : l ≤ w
w_le_u : w ≤ u
⊢ l' ≤ u
state_after: no goals
tactic: exact hl'.le.trans <| l_le_w.trans w_le_u