∀ (motive : Lean.Grind.CommRing.Expr → Sort u_1) (a : Lean.Grind.CommRing.Expr)
  (h_1 : (n : ℤ) → motive (Lean.Grind.CommRing.Expr.num n))
  (h_2 : (x : Lean.Grind.CommRing.Var) → motive (Lean.Grind.CommRing.Expr.var x))
  (h_3 : (x : Lean.Grind.CommRing.Expr) → motive x) (x : Lean.Grind.CommRing.Expr),
  a = x →
    (∀ (n : ℤ), x = Lean.Grind.CommRing.Expr.num n → False) →
      (∀ (x_2 : Lean.Grind.CommRing.Var), x = Lean.Grind.CommRing.Expr.var x_2 → False) →
        (match a with
          | Lean.Grind.CommRing.Expr.num n => h_1 n
          | Lean.Grind.CommRing.Expr.var x => h_2 x
          | x => h_3 x) ≍
          h_3 x