(motive : Lean.Name → Sort u_1) →
  (x : Lean.Name) →
    ((p : Lean.Name) → (s : String) → motive (p.str s)) →
      ((p : Lean.Name) → (i : ℕ) → motive (p.num i)) → ((x : Lean.Name) → motive x) → motive x