constructor
α : Type u_1
as : Array α
⊢ (∃ a, (if h : 0 < size as then some as[0] else none) = some a) ↔ ¬size as = 0
case mp
α : Type u_1
as : Array α
⊢ (∃ a, (if h : 0 < size as then some as[0] else none) = some a) → ¬size as = 0

case mpr
α : Type u_1
as : Array α
⊢ ¬size as = 0 → ∃ a, (if h : 0 < size as then some as[0] else none) = some a