(motive : ℕ → (x : String) → x.Pos → ℕ → Sort u_1) →
  (x : ℕ) →
    (x_1 : String) →
      (x_2 : x_1.Pos) →
        (x_3 : ℕ) →
          ((x : String) → (it : x.Pos) → (r : ℕ) → motive 0 x it r) →
            ((n : ℕ) → (pattern : String) → (it : pattern.Pos) → (r : ℕ) → motive n.succ pattern it r) →
              motive x x_1 x_2 x_3