{motive : Nat.Linear.Expr → Sort u} →
  ((v : ℕ) → motive (Nat.Linear.Expr.num v)) →
    ((i : Nat.Linear.Var) → motive (Nat.Linear.Expr.var i)) →
      ((a b : Nat.Linear.Expr) → motive a → motive b → motive (a.add b)) →
        ((k : ℕ) → (a : Nat.Linear.Expr) → motive a → motive (Nat.Linear.Expr.mulL k a)) →
          ((a : Nat.Linear.Expr) → (k : ℕ) → motive a → motive (a.mulR k)) → (t : Nat.Linear.Expr) → motive t