import Mathlib.Analysis.Calculus.ContDiff.Basic
import Mathlib.Analysis.Calculus.FDeriv.Add

variable {𝕜 : Type*} [NontriviallyNormedField 𝕜]
variable {E : Type*} [NormedAddCommGroup E] [NormedSpace 𝕜 E]
variable {F : Type*} [NormedAddCommGroup F] [NormedSpace 𝕜 F]
variable {G : Type*} [NormedAddCommGroup G] [NormedSpace 𝕜 G]
variable {G' : Type*} [NormedAddCommGroup G'] [NormedSpace 𝕜 G']
variable {f f₀ f₁ g : E → F}
variable {f' f₀' f₁' g' : E →L[𝕜] F}
variable (e : E →L[𝕜] F)
variable {x : E}
variable {s t : Set E}
variable {L L₁ L₂ : Filter E}

variable {R : Type*} [Semiring R] [Module R F] [SMulCommClass 𝕜 R F] [ContinuousConstSMul R F]


-- import Mathlib.Analysis.Calculus.FDeriv.Add

@[fun_prop]
theorem Differentiable.const_smul' (h : Differentiable 𝕜 f) (c : R) :
    Differentiable 𝕜 (c • f) := by
  have : c • f = fun x ↦ c • f x := rfl
  rw [this]
  exact Differentiable.const_smul h c


-- Mathlib.Analysis.Calculus.ContDiff.Basic

theorem ContDiff.const_smul' {f : E → F} (c : R) (hf : ContDiff 𝕜 n f) :
    ContDiff 𝕜 n (c • f) := by
  have : c • f = fun x ↦ c • f x := rfl
  rw [this]
  exact ContDiff.const_smul c hf
