Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit beb6831

Browse files
committed
feat(analysis/calculus/times_cont_diff): add restrict_scalars (#4899)
Add `restrict_scalars` lemmas to `has_ftaylor_series_up_to_on`, `times_cont_diff_within_at`, `times_cont_diff_on`, `times_cont_diff_at`, and `times_cont_diff`.
1 parent b7991c0 commit beb6831

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

src/analysis/calculus/times_cont_diff.lean

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2698,3 +2698,59 @@ lemma times_cont_diff_on.continuous_on_deriv_of_open {n : with_top ℕ}
26982698
((times_cont_diff_on_succ_iff_deriv_of_open hs).1 (h.of_le hn)).2.continuous_on
26992699

27002700
end deriv
2701+
2702+
section restrict_scalars
2703+
/-!
2704+
### Restricting from `ℂ` to `ℝ`, or generally from `𝕜'` to `𝕜`
2705+
2706+
If a function is `n` times continuously differentiable over `ℂ`, then it is `n` times continuously
2707+
differentiable over `ℝ`. In this paragraph, we give variants of this statement, in the general
2708+
situation where `ℂ` and `ℝ` are replaced respectively by `𝕜'` and `𝕜` where `𝕜'` is a normed algebra
2709+
over `𝕜`.
2710+
-/
2711+
2712+
variables (𝕜) {𝕜' : Type*} [nondiscrete_normed_field 𝕜'] [normed_algebra 𝕜 𝕜']
2713+
variables [normed_space 𝕜' E] [is_scalar_tower 𝕜 𝕜' E]
2714+
variables [normed_space 𝕜' F] [is_scalar_tower 𝕜 𝕜' F]
2715+
variables {p' : E → formal_multilinear_series 𝕜' E F} {n : with_top ℕ}
2716+
2717+
/-- Reinterpret a formal `𝕜'`-multilinear series as a formal `𝕜`-multilinear series, where `𝕜'` is a
2718+
normed algebra over `𝕜`. -/
2719+
@[simp] def formal_multilinear_series.restrict_scalars (p : formal_multilinear_series 𝕜' E F) :
2720+
formal_multilinear_series 𝕜 E F :=
2721+
λ n, (p n).restrict_scalars 𝕜
2722+
2723+
lemma has_ftaylor_series_up_to_on.restrict_scalars
2724+
(h : has_ftaylor_series_up_to_on n f p' s) :
2725+
has_ftaylor_series_up_to_on n f (λ x, (p' x).restrict_scalars 𝕜) s :=
2726+
{ zero_eq := λ x hx, h.zero_eq x hx,
2727+
fderiv_within :=
2728+
begin
2729+
intros m hm x hx,
2730+
convert ((continuous_multilinear_map.restrict_scalars_linear 𝕜).has_fderiv_at)
2731+
.comp_has_fderiv_within_at _ ((h.fderiv_within m hm x hx).restrict_scalars 𝕜),
2732+
end,
2733+
cont := λ m hm, continuous_multilinear_map.continuous_restrict_scalars.comp_continuous_on
2734+
(h.cont m hm) }
2735+
2736+
lemma times_cont_diff_within_at.restrict_scalars (h : times_cont_diff_within_at 𝕜' n f s x) :
2737+
times_cont_diff_within_at 𝕜 n f s x :=
2738+
begin
2739+
intros m hm,
2740+
rcases h m hm with ⟨u, u_mem, p', hp'⟩,
2741+
exact ⟨u, u_mem, _, hp'.restrict_scalars _⟩
2742+
end
2743+
2744+
lemma times_cont_diff_on.restrict_scalars (h : times_cont_diff_on 𝕜' n f s) :
2745+
times_cont_diff_on 𝕜 n f s :=
2746+
λ x hx, (h x hx).restrict_scalars _
2747+
2748+
lemma times_cont_diff_at.restrict_scalars (h : times_cont_diff_at 𝕜' n f x) :
2749+
times_cont_diff_at 𝕜 n f x :=
2750+
times_cont_diff_within_at_univ.1 $ h.times_cont_diff_within_at.restrict_scalars _
2751+
2752+
lemma times_cont_diff.restrict_scalars (h : times_cont_diff 𝕜' n f) :
2753+
times_cont_diff 𝕜 n f :=
2754+
times_cont_diff_iff_times_cont_diff_at.2 $ λ x, h.times_cont_diff_at.restrict_scalars _
2755+
2756+
end restrict_scalars

0 commit comments

Comments
 (0)