∀ (p : Lean.Grind.CommRing.Poly) (motive : ℕ → Lean.Grind.CommRing.Poly → Prop),
  motive 0 (Lean.Grind.CommRing.Poly.num 1) →
    motive 1 p →
      (∀ (k : ℕ), (k = 0 → False) → motive k (p.pow_nc k) → motive k.succ ((p.pow_nc k).mul_nc p)) →
        ∀ (k : ℕ), motive k (p.pow_nc k)