@@ -2698,3 +2698,59 @@ lemma times_cont_diff_on.continuous_on_deriv_of_open {n : with_top ℕ}
2698
2698
((times_cont_diff_on_succ_iff_deriv_of_open hs).1 (h.of_le hn)).2 .continuous_on
2699
2699
2700
2700
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