Theorem: Filter.sup_limsup
File: Mathlib/Order/LiminfLimsup.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝¹ : CompleteDistribLattice α
f : Filter β
p q : β → Prop
u : β → α
inst✝ : f.NeBot
a : α
⊢ a ⊔ limsup u f = limsup (fun x => a ⊔ u x) f
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝¹ : CompleteDistribLattice α
f : Filter β
p q : β → Prop
u : β → α
inst✝ : f.NeBot
a : α
⊢ ⨅ i ∈ f, a ⊔ ⨆ a ∈ i, u a = ⨅ s ∈ f, (⨆ x ∈ s, a) ⊔ ⨆ x ∈ s, u x
tactic: simp only [limsup_eq_iInf_iSup, iSup_sup_eq, sup_iInf₂_eq]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝¹ : CompleteDistribLattice α
f : Filter β
p q : β → Prop
u : β → α
inst✝ : f.NeBot
a : α
⊢ ⨅ i ∈ f, a ⊔ ⨆ a ∈ i, u a = ⨅ s ∈ f, (⨆ x ∈ s, a) ⊔ ⨆ x ∈ s, u x
state_after: case e_s
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝¹ : CompleteDistribLattice α
f : Filter β
p q : β → Prop
u : β → α
inst✝ : f.NeBot
a : α
⊢ (fun i => ⨅ (_ : i ∈ f), a ⊔ ⨆ a ∈ i, u a) = fun s => ⨅ (_ : s ∈ f), (⨆ x ∈ s, a) ⊔ ⨆ x ∈ s, u x
tactic: congr
state_before: case e_s
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝¹ : CompleteDistribLattice α
f : Filter β
p q : β → Prop
u : β → α
inst✝ : f.NeBot
a : α
⊢ (fun i => ⨅ (_ : i ∈ f), a ⊔ ⨆ a ∈ i, u a) = fun s => ⨅ (_ : s ∈ f), (⨆ x ∈ s, a) ⊔ ⨆ x ∈ s, u x
state_after: case e_s.h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝¹ : CompleteDistribLattice α
f : Filter β
p q : β → Prop
u : β → α
inst✝ : f.NeBot
a : α
s : Set β
⊢ ⨅ (_ : s ∈ f), a ⊔ ⨆ a ∈ s, u a = ⨅ (_ : s ∈ f), (⨆ x ∈ s, a) ⊔ ⨆ x ∈ s, u x
tactic: ext s
state_before: case e_s.h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝¹ : CompleteDistribLattice α
f : Filter β
p q : β → Prop
u : β → α
inst✝ : f.NeBot
a : α
s : Set β
⊢ ⨅ (_ : s ∈ f), a ⊔ ⨆ a ∈ s, u a = ⨅ (_ : s ∈ f), (⨆ x ∈ s, a) ⊔ ⨆ x ∈ s, u x
state_after: case e_s.h.e_s
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝¹ : CompleteDistribLattice α
f : Filter β
p q : β → Prop
u : β → α
inst✝ : f.NeBot
a : α
s : Set β
⊢ (fun j => a ⊔ ⨆ a ∈ s, u a) = fun x => (⨆ x ∈ s, a) ⊔ ⨆ x ∈ s, u x
tactic: congr
state_before: case e_s.h.e_s
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝¹ : CompleteDistribLattice α
f : Filter β
p q : β → Prop
u : β → α
inst✝ : f.NeBot
a : α
s : Set β
⊢ (fun j => a ⊔ ⨆ a ∈ s, u a) = fun x => (⨆ x ∈ s, a) ⊔ ⨆ x ∈ s, u x
state_after: case e_s.h.e_s.h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝¹ : CompleteDistribLattice α
f : Filter β
p q : β → Prop
u : β → α
inst✝ : f.NeBot
a : α
s : Set β
hs : s ∈ f
⊢ a ⊔ ⨆ a ∈ s, u a = (⨆ x ∈ s, a) ⊔ ⨆ x ∈ s, u x
tactic: ext hs
state_before: case e_s.h.e_s.h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝¹ : CompleteDistribLattice α
f : Filter β
p q : β → Prop
u : β → α
inst✝ : f.NeBot
a : α
s : Set β
hs : s ∈ f
⊢ a ⊔ ⨆ a ∈ s, u a = (⨆ x ∈ s, a) ⊔ ⨆ x ∈ s, u x
state_after: case e_s.h.e_s.h.e_a
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝¹ : CompleteDistribLattice α
f : Filter β
p q : β → Prop
u : β → α
inst✝ : f.NeBot
a : α
s : Set β
hs : s ∈ f
⊢ a = ⨆ x ∈ s, a
tactic: congr
state_before: case e_s.h.e_s.h.e_a
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝¹ : CompleteDistribLattice α
f : Filter β
p q : β → Prop
u : β → α
inst✝ : f.NeBot
a : α
s : Set β
hs : s ∈ f
⊢ a = ⨆ x ∈ s, a
state_after: no goals
tactic: exact (biSup_const (nonempty_of_mem hs)).symm