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

tactic: rcases s.eq_empty_or_nonempty with hs | hs
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
⊢ IsLUB s (sSup s)
state_after: case inl
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
⊢ IsLUB s (sSup s)

case inr
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s.Nonempty
⊢ IsLUB s (sSup s)

tactic: exact isLUB_sSup' hs
state_before: case inr
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s.Nonempty
⊢ IsLUB s (sSup s)
state_after: no goals

tactic: rw [hs]
state_before: case inl
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
⊢ IsLUB s (sSup s)
state_after: case inl
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
⊢ IsLUB ∅ (sSup ∅)

tactic: dsimp only [sSup]
state_before: case inl
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
⊢ IsLUB ∅ (sSup ∅)
state_after: case inl
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
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_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
⊢ IsLUB ∅ (if ⊤ ∈ ∅ then ⊤ else if BddAbove ((fun a => ↑a) ⁻¹' ∅) then ↑(sSup ((fun a => ↑a) ⁻¹' ∅)) else ⊤)
state_after: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
h₁ : ⊤ ∈ ∅
⊢ IsLUB ∅ ⊤

case pos
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
h₁ : ⊤ ∉ ∅
h₂ : BddAbove ((fun a => ↑a) ⁻¹' ∅)
⊢ IsLUB ∅ ↑(sSup ((fun a => ↑a) ⁻¹' ∅))

case neg
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
h₁ : ⊤ ∉ ∅
h₂ : ¬BddAbove ((fun a => ↑a) ⁻¹' ∅)
⊢ IsLUB ∅ ⊤

tactic: cases h₁
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
h₁ : ⊤ ∈ ∅
⊢ IsLUB ∅ ⊤
state_after: no goals

tactic: rw [preimage_empty, csSup_empty]
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
h₁ : ⊤ ∉ ∅
h₂ : BddAbove ((fun a => ↑a) ⁻¹' ∅)
⊢ IsLUB ∅ ↑(sSup ((fun a => ↑a) ⁻¹' ∅))
state_after: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
h₁ : ⊤ ∉ ∅
h₂ : BddAbove ((fun a => ↑a) ⁻¹' ∅)
⊢ IsLUB ∅ ↑⊥

tactic: exact isLUB_empty
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
h₁ : ⊤ ∉ ∅
h₂ : BddAbove ((fun a => ↑a) ⁻¹' ∅)
⊢ IsLUB ∅ ↑⊥
state_after: no goals

tactic: exfalso
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
h₁ : ⊤ ∉ ∅
h₂ : ¬BddAbove ((fun a => ↑a) ⁻¹' ∅)
⊢ IsLUB ∅ ⊤
state_after: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
h₁ : ⊤ ∉ ∅
h₂ : ¬BddAbove ((fun a => ↑a) ⁻¹' ∅)
⊢ False

tactic: apply h₂
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
h₁ : ⊤ ∉ ∅
h₂ : ¬BddAbove ((fun a => ↑a) ⁻¹' ∅)
⊢ False
state_after: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
h₁ : ⊤ ∉ ∅
h₂ : ¬BddAbove ((fun a => ↑a) ⁻¹' ∅)
⊢ BddAbove ((fun a => ↑a) ⁻¹' ∅)

tactic: use ⊥
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
h₁ : ⊤ ∉ ∅
h₂ : ¬BddAbove ((fun a => ↑a) ⁻¹' ∅)
⊢ BddAbove ((fun a => ↑a) ⁻¹' ∅)
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
h₁ : ⊤ ∉ ∅
h₂ : ¬BddAbove ((fun a => ↑a) ⁻¹' ∅)
⊢ ⊥ ∈ upperBounds ((fun a => ↑a) ⁻¹' ∅)

tactic: rintro a ⟨⟩
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrderBot α
s : Set (WithTop α)
hs : s = ∅
h₁ : ⊤ ∉ ∅
h₂ : ¬BddAbove ((fun a => ↑a) ⁻¹' ∅)
⊢ ⊥ ∈ upperBounds ((fun a => ↑a) ⁻¹' ∅)
state_after: no goals