rcases hb : f a with (_ | b)
case cons.mp
α✝ : Type u
inst✝² : DecidableEq α✝
β✝ : Type v
inst✝¹ : DecidableEq β✝
m : Type ?u.146799 → Type ?u.146801
α : Type u_2
β : Type u_1
inst✝ : Monad m
f : α → Option β
a : α
l : List α
ih : mapM' f l = none ↔ ∃ a ∈ l, f a = none
H : ∀ (a_1 : β), f a = some a_1 → ∀ (a : List β), ¬mapM' f l = some a
⊢ f a = none ∨ ∃ a ∈ l, f a = none
case cons.mp.none
α✝ : Type u
inst✝² : DecidableEq α✝
β✝ : Type v
inst✝¹ : DecidableEq β✝
m : Type ?u.146799 → Type ?u.146801
α : Type u_2
β : Type u_1
inst✝ : Monad m
f : α → Option β
a : α
l : List α
ih : mapM' f l = none ↔ ∃ a ∈ l, f a = none
H : ∀ (a_1 : β), f a = some a_1 → ∀ (a : List β), ¬mapM' f l = some a
hb : f a = none
⊢ none = none ∨ ∃ a ∈ l, f a = none

case cons.mp.some
α✝ : Type u
inst✝² : DecidableEq α✝
β✝ : Type v
inst✝¹ : DecidableEq β✝
m : Type ?u.146799 → Type ?u.146801
α : Type u_2
β : Type u_1
inst✝ : Monad m
f : α → Option β
a : α
l : List α
ih : mapM' f l = none ↔ ∃ a ∈ l, f a = none
H : ∀ (a_1 : β), f a = some a_1 → ∀ (a : List β), ¬mapM' f l = some a
b : β
hb : f a = some b
⊢ some b = none ∨ ∃ a ∈ l, f a = none