(motive : ℕ → Lean.Name → Sort u_1) →
  (cnt : ℕ) →
    (name : Lean.Name) →
      ((cnt : ℕ) → (q : Lean.Name) → (s : String) → motive cnt.succ (q.str s)) →
        ((cnt : ℕ) → (q : Lean.Name) → (n : ℕ) → motive cnt.succ (q.num n)) →
          ((x : ℕ) → (name : Lean.Name) → motive x name) → motive cnt name