(motive : Int.Linear.Poly → Sort u_1) →
  (p : Int.Linear.Poly) →
    ((a : ℤ) → (v : Int.Linear.Var) → (p : Int.Linear.Poly) → motive (Int.Linear.Poly.add a v p)) →
      ((x : Int.Linear.Poly) →
          (∀ (a : ℤ) (v : Int.Linear.Var) (p : Int.Linear.Poly), x = Int.Linear.Poly.add a v p → False) → motive x) →
        motive p