(motive : Lean.Name → Sort u_1) →
  (x : Lean.Name) →
    ((p : Lean.Name) → (h : String) → motive (p.str h)) →
      (Unit → motive Lean.Name.anonymous) → ((pre : Lean.Name) → (i : ℕ) → motive (pre.num i)) → motive x