Goal:
    A : Type  v : A  _a_ : A  _l_ : list A
  ============================
   ((∃ n : nat, hd_error (skipn n (_a_ :: _l_)) = Some v)
    → _a_ = v ∨ ∃ n : nat, hd_error (skipn n _l_) = Some v)


DEBUG:Going to execute:
<coq-core.plugins.ssreflect::ssrmove@1> $1 $2

Goals:
    A : Type  v : A  _a_ : A  _l_ : list A
  ============================
   (hd_error (skipn 0 (_a_ :: _l_)) = Some v
    → _a_ = v ∨ ∃ n : nat, hd_error (skipn n _l_) = Some v)

    A : Type  v : A  _a_ : A  _l_ : list A  _n_ : nat
  ============================
   (hd_error (skipn (S _n_) (_a_ :: _l_)) = Some v
    → _a_ = v ∨ ∃ n : nat, hd_error (skipn n _l_) = Some v)


DEBUG:Going to execute:
rewrite ?skipn_0 ?skipn_S => //=