(motive : Option (Lean.TSyntax `ident) → Option (Option Lean.Syntax) → Sort u_1) →
  (h : Option (Lean.TSyntax `ident)) →
    (rev : Option (Option Lean.Syntax)) →
      ((h : Lean.TSyntax `ident) → motive (some h) (some none)) →
        ((h : Lean.TSyntax `ident) → (val : Lean.Syntax) → motive (some h) (some (some val))) →
          ((x : Option (Lean.TSyntax `ident)) → (x_1 : Option (Option Lean.Syntax)) → motive x x_1) → motive h rev