α : Type u_1
β : Type ?u.4651
γ : Type ?u.4654
ι : Sort ?u.4657
inst✝¹ : Preorder α
inst✝ : SupSet α
s : Set α
hs : BddAbove s
⊢ ↑(sSup s) =
    if ⊤ ∈ (fun a => ↑a) '' s then ⊤
    else
      if BddAbove ((fun a => ↑a) ⁻¹' ((fun a => ↑a) '' s)) then ↑(sSup ((fun a => ↑a) ⁻¹' ((fun a => ↑a) '' s))) else ⊤
α : Type u_1
β : Type ?u.4651
γ : Type ?u.4654
ι : Sort ?u.4657
inst✝¹ : Preorder α
inst✝ : SupSet α
s : Set α
hs : BddAbove s
⊢ ↑(sSup s) = sSup ((fun a => ↑a) '' s)
change _ = ite _ _ _
case h
α : Type u_1
β : Type ?u.4651
γ : Type ?u.4654
ι : Sort ?u.4657
inst✝¹ : Preorder α
inst✝ : SupSet α
s : Set α
hs : BddAbove s
⊢ Injective fun a => ↑a

case hnc
α : Type u_1
β : Type ?u.4651
γ : Type ?u.4654
ι : Sort ?u.4657
inst✝¹ : Preorder α
inst✝ : SupSet α
s : Set α
hs : BddAbove s
⊢ ¬⊤ ∈ (fun a => ↑a) '' s
α : Type u_1
β : Type ?u.4651
γ : Type ?u.4654
ι : Sort ?u.4657
inst✝¹ : Preorder α
inst✝ : SupSet α
s : Set α
hs : BddAbove s
⊢ ↑(sSup s) =
    if ⊤ ∈ (fun a => ↑a) '' s then ⊤
    else
      if BddAbove ((fun a => ↑a) ⁻¹' ((fun a => ↑a) '' s)) then ↑(sSup ((fun a => ↑a) ⁻¹' ((fun a => ↑a) '' s))) else ⊤
rw [if_neg, preimage_image_eq, if_pos hs]
no goals
case h
α : Type u_1
β : Type ?u.4651
γ : Type ?u.4654
ι : Sort ?u.4657
inst✝¹ : Preorder α
inst✝ : SupSet α
s : Set α
hs : BddAbove s
⊢ Injective fun a => ↑a
exact Option.some_injective _
no goals
case hnc
α : Type u_1
β : Type ?u.4651
γ : Type ?u.4654
ι : Sort ?u.4657
inst✝¹ : Preorder α
inst✝ : SupSet α
s : Set α
hs : BddAbove s
⊢ ¬⊤ ∈ (fun a => ↑a) '' s
rintro ⟨x, _, ⟨⟩⟩