∀ (a : Lean.Grind.CommRing.Expr) (k : ℕ),
  (∀ (n : ℤ), a = Lean.Grind.CommRing.Expr.num n → False) →
    (∀ (n : ℤ), a = Lean.Grind.CommRing.Expr.intCast n → False) →
      (∀ (n : ℕ), a = Lean.Grind.CommRing.Expr.natCast n → False) →
        (∀ (x : Lean.Grind.CommRing.Var), a = Lean.Grind.CommRing.Expr.var x → False) →
          (a.pow k).toPoly = bif k == 0 then Lean.Grind.CommRing.Poly.num 1 else a.toPoly.pow k