(motive : Lean.Grind.CommRing.Expr → Sort u_1) →
  (a : Lean.Grind.CommRing.Expr) →
    ((n : ℤ) → motive (Lean.Grind.CommRing.Expr.num n)) →
      ((x : Lean.Grind.CommRing.Var) → motive (Lean.Grind.CommRing.Expr.var x)) →
        ((x : Lean.Grind.CommRing.Expr) → motive x) → motive a