(motive : Int.Linear.Expr → Sort u_1) →
  (e : Int.Linear.Expr) →
    ((v : ℤ) → motive (Int.Linear.Expr.num v)) →
      ((x : Int.Linear.Var) → motive (Int.Linear.Expr.var x)) →
        ((a : Int.Linear.Expr) → motive a.neg) →
          ((k : ℤ) → (a : Int.Linear.Expr) → motive (Int.Linear.Expr.mulL k a)) →
            ((a : Int.Linear.Expr) → (k : ℤ) → motive (a.mulR k)) →
              ((a b : Int.Linear.Expr) → motive (a.add b)) → ((a b : Int.Linear.Expr) → motive (a.sub b)) → motive e