∀ (motive : (p : Nat.Linear.Poly) → p.isNonZero = true → Prop) (p : Nat.Linear.Poly) (h : p.isNonZero = true),
  (∀ (h : Nat.Linear.Poly.isNonZero [] = true), motive [] h) →
    (∀ (k : ℕ) (v : Nat.Linear.Var) (p : List (ℕ × Nat.Linear.Var))
        (h : Nat.Linear.Poly.isNonZero ((k, v) :: p) = true), motive ((k, v) :: p) h) →
      motive p h