Theorem: WithTop.isLUB_sSup
File: Mathlib/Order/ConditionallyCompleteLattice/Basic.lean

tactic: cases' s.eq_empty_or_nonempty with hs hs
state_before: α : Type u_1
β : Type ?u.88320
γ : Type ?u.88323
ι : Sort ?u.88326
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
⊢ IsLUB s (sSup s)

tactic: exact isLUB_sSup' hs
state_before: case inr
α : Type u_1
β : Type ?u.88320
γ : Type ?u.88323
ι : Sort ?u.88326
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : Set.Nonempty s
⊢ IsLUB s (sSup s)

tactic: rw [hs]
state_before: case inl
α : Type u_1
β : Type ?u.88320
γ : Type ?u.88323
ι : Sort ?u.88326
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
⊢ IsLUB s (sSup s)

tactic: dsimp only [sSup]
state_before: case inl
α : Type u_1
β : Type ?u.88320
γ : Type ?u.88323
ι : Sort ?u.88326
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
⊢ IsLUB ∅ (sSup ∅)

tactic: show IsLUB ∅ _
state_before: case inl
α : Type u_1
β : Type ?u.88320
γ : Type ?u.88323
ι : Sort ?u.88326
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
⊢ IsLUB ∅ (if ⊤ ∈ ∅ then ⊤ else if BddAbove ((fun a => ↑a) ⁻¹' ∅) then ↑(sSup ((fun a => ↑a) ⁻¹' ∅)) else ⊤)

tactic: split_ifs with h₁ h₂
state_before: case inl
α : Type u_1
β : Type ?u.88320
γ : Type ?u.88323
ι : Sort ?u.88326
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
⊢ IsLUB ∅ (if ⊤ ∈ ∅ then ⊤ else if BddAbove ((fun a => ↑a) ⁻¹' ∅) then ↑(sSup ((fun a => ↑a) ⁻¹' ∅)) else ⊤)

tactic: cases h₁
state_before: case inl.inl
α : Type u_1
β : Type ?u.88320
γ : Type ?u.88323
ι : Sort ?u.88326
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
h₁ : ⊤ ∈ ∅
⊢ IsLUB ∅ ⊤

tactic: rw [preimage_empty, csSup_empty]
state_before: case inl.inr.inl
α : Type u_1
β : Type ?u.88320
γ : Type ?u.88323
ι : Sort ?u.88326
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
h₁ : ¬⊤ ∈ ∅
h₂ : BddAbove ((fun a => ↑a) ⁻¹' ∅)
⊢ IsLUB ∅ ↑(sSup ((fun a => ↑a) ⁻¹' ∅))

tactic: exact isLUB_empty
state_before: case inl.inr.inl
α : Type u_1
β : Type ?u.88320
γ : Type ?u.88323
ι : Sort ?u.88326
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
h₁ : ¬⊤ ∈ ∅
h₂ : BddAbove ((fun a => ↑a) ⁻¹' ∅)
⊢ IsLUB ∅ ↑⊥

tactic: exfalso
state_before: case inl.inr.inr
α : Type u_1
β : Type ?u.88320
γ : Type ?u.88323
ι : Sort ?u.88326
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
h₁ : ¬⊤ ∈ ∅
h₂ : ¬BddAbove ((fun a => ↑a) ⁻¹' ∅)
⊢ IsLUB ∅ ⊤

tactic: apply h₂
state_before: case inl.inr.inr.h
α : Type u_1
β : Type ?u.88320
γ : Type ?u.88323
ι : Sort ?u.88326
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
h₁ : ¬⊤ ∈ ∅
h₂ : ¬BddAbove ((fun a => ↑a) ⁻¹' ∅)
⊢ False

tactic: use ⊥
state_before: case inl.inr.inr.h
α : Type u_1
β : Type ?u.88320
γ : Type ?u.88323
ι : Sort ?u.88326
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
h₁ : ¬⊤ ∈ ∅
h₂ : ¬BddAbove ((fun a => ↑a) ⁻¹' ∅)
⊢ BddAbove ((fun a => ↑a) ⁻¹' ∅)

tactic: rintro a ⟨⟩
state_before: case inl.inr.inr.h
α : Type u_1
β : Type ?u.88320
γ : Type ?u.88323
ι : Sort ?u.88326
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
h₁ : ¬⊤ ∈ ∅
h₂ : ¬BddAbove ((fun a => ↑a) ⁻¹' ∅)
⊢ ⊥ ∈ upperBounds ((fun a => ↑a) ⁻¹' ∅)