# mathlibdocumentation

geometry.manifold.times_cont_mdiff

# Smooth functions between smooth manifolds #

We define `Cⁿ` functions between smooth manifolds, as functions which are `Cⁿ` in charts, and prove basic properties of these notions.

## Main definitions and statements #

Let `M` and `M'` be two smooth manifolds, with respect to model with corners `I` and `I'`. Let `f : M → M'`.

• `times_cont_mdiff_within_at I I' n f s x` states that the function `f` is `Cⁿ` within the set `s` around the point `x`.
• `times_cont_mdiff_at I I' n f x` states that the function `f` is `Cⁿ` around `x`.
• `times_cont_mdiff_on I I' n f s` states that the function `f` is `Cⁿ` on the set `s`
• `times_cont_mdiff I I' n f` states that the function `f` is `Cⁿ`.
• `times_cont_mdiff_on.comp` gives the invariance of the `Cⁿ` property under composition
• `times_cont_mdiff_on.times_cont_mdiff_on_tangent_map_within` states that the bundled derivative of a `Cⁿ` function in a domain is `Cᵐ` when `m + 1 ≤ n`.
• `times_cont_mdiff.times_cont_mdiff_tangent_map` states that the bundled derivative of a `Cⁿ` function is `Cᵐ` when `m + 1 ≤ n`.
• `times_cont_mdiff_iff_times_cont_diff` states that, for functions between vector spaces, manifold-smoothness is equivalent to usual smoothness.

We also give many basic properties of smooth functions between manifolds, following the API of smooth functions between vector spaces.

## Implementation details #

Many properties follow for free from the corresponding properties of functions in vector spaces, as being `Cⁿ` is a local property invariant under the smooth groupoid. We take advantage of the general machinery developed in `local_invariant_properties.lean` to get these properties automatically. For instance, the fact that being `Cⁿ` does not depend on the chart one considers is given by `lift_prop_within_at_indep_chart`.

For this to work, the definition of `times_cont_mdiff_within_at` and friends has to follow definitionally the setup of local invariant properties. Still, we recast the definition in terms of extended charts in `times_cont_mdiff_on_iff` and `times_cont_mdiff_iff`.

### Definition of smooth functions between manifolds #

def times_cont_diff_within_at_prop {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} (I : H) {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} (I' : H') (n : with_top ) (f : H → H') (s : set H) (x : H) :
Prop

Property in the model space of a model with corners of being `C^n` within at set at a point, when read in the model vector space. This property will be lifted to manifolds to define smooth functions between manifolds.

Equations
theorem times_cont_diff_within_at_local_invariant_prop {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} (I : H) {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} (I' : H') (n : with_top ) :

Being `Cⁿ` in the model space is a local property, invariant under smooth maps. Therefore, it will lift nicely to manifolds.

theorem times_cont_diff_within_at_local_invariant_prop_mono {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} (I : H) {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} (I' : H') (n : with_top ) ⦃s : set H⦄ ⦃x : H⦄ ⦃t : set H⦄ ⦃f : H → H'⦄ (hts : t s) (h : f s x) :
f t x
theorem times_cont_diff_within_at_local_invariant_prop_id {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} (I : H) (x : H) :
def times_cont_mdiff_within_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} (I : H) {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} (I' : H') {M' : Type u_7} [ M'] (n : with_top ) (f : M → M') (s : set M) (x : M) :
Prop

A function is `n` times continuously differentiable within a set at a point in a manifold if it is continuous and it is `n` times continuously differentiable in this set around this point, when read in the preferred chart at this point.

Equations
• f s x = s x
def smooth_within_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} (I : H) {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} (I' : H') {M' : Type u_7} [ M'] (f : M → M') (s : set M) (x : M) :
Prop

Abbreviation for `times_cont_mdiff_within_at I I' ⊤ f s x`. See also documentation for `smooth`.

Equations
• I' f s x = f s x
def times_cont_mdiff_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} (I : H) {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} (I' : H') {M' : Type u_7} [ M'] (n : with_top ) (f : M → M') (x : M) :
Prop

A function is `n` times continuously differentiable at a point in a manifold if it is continuous and it is `n` times continuously differentiable around this point, when read in the preferred chart at this point.

Equations
def smooth_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} (I : H) {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} (I' : H') {M' : Type u_7} [ M'] (f : M → M') (x : M) :
Prop

Abbreviation for `times_cont_mdiff_at I I' ⊤ f x`. See also documentation for `smooth`.

Equations
def times_cont_mdiff_on {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} (I : H) {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} (I' : H') {M' : Type u_7} [ M'] (n : with_top ) (f : M → M') (s : set M) :
Prop

A function is `n` times continuously differentiable in a set of a manifold if it is continuous and, for any pair of points, it is `n` times continuously differentiable on this set in the charts around these points.

Equations
• n f s = ∀ (x : M), x s f s x
def smooth_on {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} (I : H) {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} (I' : H') {M' : Type u_7} [ M'] (f : M → M') (s : set M) :
Prop

Abbreviation for `times_cont_mdiff_on I I' ⊤ f s`. See also documentation for `smooth`.

Equations
def times_cont_mdiff {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} (I : H) {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} (I' : H') {M' : Type u_7} [ M'] (n : with_top ) (f : M → M') :
Prop

A function is `n` times continuously differentiable in a manifold if it is continuous and, for any pair of points, it is `n` times continuously differentiable in the charts around these points.

Equations
• I' n f = ∀ (x : M), n f x
def smooth {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} (I : H) {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} (I' : H') {M' : Type u_7} [ M'] (f : M → M') :
Prop

Abbreviation for `times_cont_mdiff I I' ⊤ f`. Short note to work with these abbreviations: a lemma of the form `times_cont_mdiff_foo.bar` will apply fine to an assumption `smooth_foo` using dot notation or normal notation. If the consequence `bar` of the lemma involves `times_cont_diff`, it is still better to restate the lemma replacing `times_cont_diff` with `smooth` both in the assumption and in the conclusion, to make it possible to use `smooth` consistently. This also applies to `smooth_at`, `smooth_on` and `smooth_within_at`.

Equations

### Basic properties of smooth functions between manifolds #

theorem times_cont_mdiff.smooth {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} (h : I' f) :
I' f
theorem smooth.times_cont_mdiff {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} (h : I' f) :
I' f
theorem times_cont_mdiff_on.smooth_on {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} (h : f s) :
I' f s
theorem smooth_on.times_cont_mdiff_on {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} (h : I' f s) :
f s
theorem times_cont_mdiff_at.smooth_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {x : M} (h : f x) :
I' f x
theorem smooth_at.times_cont_mdiff_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {x : M} (h : I' f x) :
f x
theorem times_cont_mdiff_within_at.smooth_within_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {x : M} (h : f s x) :
I' f s x
theorem smooth_within_at.times_cont_mdiff_within_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {x : M} (h : I' f s x) :
f s x
theorem times_cont_mdiff.times_cont_mdiff_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {x : M} {n : with_top } (h : I' n f) :
n f x
theorem smooth.smooth_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {x : M} (h : I' f) :
I' f x
theorem times_cont_mdiff_within_at_univ {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {x : M} {n : with_top } :
f set.univ x n f x
theorem smooth_at_univ {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {x : M} :
I' f set.univ x I' f x
theorem times_cont_mdiff_on_univ {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {n : with_top } :
n f set.univ I' n f
theorem smooth_on_univ {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} :
I' f set.univ I' f
theorem times_cont_mdiff_within_at_iff {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {x : M} {n : with_top } :
f s x x ((ext_chart_at I' (f x)) f ((ext_chart_at I x).symm)) ((ext_chart_at I x).target ((ext_chart_at I x).symm) ⁻¹' (s f ⁻¹' (ext_chart_at I' (f x)).source)) ( x) x)

One can reformulate smoothness within a set at a point as continuity within this set at this point, and smoothness in the corresponding extended chart.

theorem times_cont_mdiff_within_at_iff'' {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {x : M} {n : with_top } :
f s x x x f) (((ext_chart_at I x).symm) ⁻¹' s ( x) x)

One can reformulate smoothness within a set at a point as continuity within this set at this point, and smoothness in the corresponding extended chart. This form states smoothness of `f` written in the `ext_chart_at`s within the set `(ext_chart_at I x).symm ⁻¹' s ∩ range I`. This set is larger than the set `(ext_chart_at I x).target ∩ (ext_chart_at I x).symm ⁻¹' (s ∩ f ⁻¹' (ext_chart_at I' (f x)).source)` used in `times_cont_mdiff_within_at_iff` but their germs at `ext_chart_at I x x` are equal. It may be useful to rewrite using `times_cont_mdiff_within_at_iff''` in the assumptions of a lemma and using `times_cont_mdiff_within_at_iff` in the goal.

theorem times_cont_mdiff_within_at_iff_target {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {x : M} {n : with_top } :
f s x x n ((ext_chart_at I' (f x)) f) (s f ⁻¹' (ext_chart_at I' (f x)).source) x

One can reformulate smoothness within a set at a point as continuity within this set at this point, and smoothness in the corresponding extended chart in the target.

theorem smooth_within_at_iff {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {x : M} :
I' f s x x ((ext_chart_at I' (f x)) f ((ext_chart_at I x).symm)) ((ext_chart_at I x).target ((ext_chart_at I x).symm) ⁻¹' (s f ⁻¹' (ext_chart_at I' (f x)).source)) ( x) x)
theorem smooth_within_at_iff_target {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {x : M} :
I' f s x x 𝓘(𝕜, E') ((ext_chart_at I' (f x)) f) (s f ⁻¹' (ext_chart_at I' (f x)).source) x
theorem times_cont_mdiff_at_ext_chart_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {x : M} {n : with_top } :
n x) x
theorem times_cont_mdiff_within_at_iff' {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] [I's : M'] {f : M → M'} {s : set M} {x : M} {n : with_top } {x' : M} {y : M'} (hx : x' (chart_at H x).to_local_equiv.source) (hy : f x' (chart_at H' y).to_local_equiv.source) :
f s x' x' ((ext_chart_at I' y) f ((ext_chart_at I x).symm)) ((ext_chart_at I x).target ((ext_chart_at I x).symm) ⁻¹' (s f ⁻¹' (ext_chart_at I' y).source)) ( x) x')

One can reformulate smoothness within a set at a point as continuity within this set at this point, and smoothness in the corresponding extended chart.

theorem times_cont_mdiff_at_ext_chart_at' {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {x : M} {n : with_top } {x' : M} (h : x' (chart_at H x).to_local_equiv.source) :
n x) x'
theorem times_cont_mdiff_on_iff {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] [I's : M'] {f : M → M'} {s : set M} {n : with_top } :
n f s ∀ (x : M) (y : M'), ((ext_chart_at I' y) f ((ext_chart_at I x).symm)) ((ext_chart_at I x).target ((ext_chart_at I x).symm) ⁻¹' (s f ⁻¹' (ext_chart_at I' y).source))

One can reformulate smoothness on a set as continuity on this set, and smoothness in any extended chart.

theorem times_cont_mdiff_on_iff_target {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] [I's : M'] {f : M → M'} {s : set M} {n : with_top } :
n f s ∀ (y : M'), 𝓘(𝕜, E') n ((ext_chart_at I' y) f) (s f ⁻¹' (ext_chart_at I' y).source)

One can reformulate smoothness on a set as continuity on this set, and smoothness in any extended chart in the target.

theorem smooth_on_iff {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] [I's : M'] {f : M → M'} {s : set M} :
I' f s ∀ (x : M) (y : M'), ((ext_chart_at I' y) f ((ext_chart_at I x).symm)) ((ext_chart_at I x).target ((ext_chart_at I x).symm) ⁻¹' (s f ⁻¹' (ext_chart_at I' y).source))
theorem smooth_on_iff_target {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] [I's : M'] {f : M → M'} {s : set M} :
I' f s ∀ (y : M'), 𝓘(𝕜, E') ((ext_chart_at I' y) f) (s f ⁻¹' (ext_chart_at I' y).source)
theorem times_cont_mdiff_iff {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] [I's : M'] {f : M → M'} {n : with_top } :
I' n f ∀ (x : M) (y : M'), ((ext_chart_at I' y) f ((ext_chart_at I x).symm)) ((ext_chart_at I x).target ((ext_chart_at I x).symm) ⁻¹' (f ⁻¹' (ext_chart_at I' y).source))

One can reformulate smoothness as continuity and smoothness in any extended chart.

theorem times_cont_mdiff_iff_target {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] [I's : M'] {f : M → M'} {n : with_top } :
I' n f ∀ (y : M'), 𝓘(𝕜, E') n ((ext_chart_at I' y) f) (f ⁻¹' (ext_chart_at I' y).source)

One can reformulate smoothness as continuity and smoothness in any extended chart in the target.

theorem smooth_iff {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] [I's : M'] {f : M → M'} :
I' f ∀ (x : M) (y : M'), ((ext_chart_at I' y) f ((ext_chart_at I x).symm)) ((ext_chart_at I x).target ((ext_chart_at I x).symm) ⁻¹' (f ⁻¹' (ext_chart_at I' y).source))
theorem smooth_iff_target {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] [I's : M'] {f : M → M'} :
I' f ∀ (y : M'), 𝓘(𝕜, E') ((ext_chart_at I' y) f) (f ⁻¹' (ext_chart_at I' y).source)

### Deducing smoothness from higher smoothness #

theorem times_cont_mdiff_within_at.of_le {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {x : M} {m n : with_top } (hf : f s x) (le : m n) :
f s x
theorem times_cont_mdiff_at.of_le {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {x : M} {m n : with_top } (hf : n f x) (le : m n) :
m f x
theorem times_cont_mdiff_on.of_le {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {m n : with_top } (hf : n f s) (le : m n) :
m f s
theorem times_cont_mdiff.of_le {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {m n : with_top } (hf : I' n f) (le : m n) :
I' m f

### Deducing smoothness from smoothness one step beyond #

theorem times_cont_mdiff_within_at.of_succ {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {x : M} {n : } (h : (n.succ) f s x) :
f s x
theorem times_cont_mdiff_at.of_succ {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {x : M} {n : } (h : (n.succ) f x) :
n f x
theorem times_cont_mdiff_on.of_succ {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {n : } (h : (n.succ) f s) :
n f s
theorem times_cont_mdiff.of_succ {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {n : } (h : I' (n.succ) f) :
I' n f

### Deducing continuity from smoothness #

theorem times_cont_mdiff_within_at.continuous_within_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {x : M} {n : with_top } (hf : f s x) :
x
theorem times_cont_mdiff_at.continuous_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {x : M} {n : with_top } (hf : n f x) :
theorem times_cont_mdiff_on.continuous_on {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {n : with_top } (hf : n f s) :
theorem times_cont_mdiff.continuous {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {n : with_top } (hf : I' n f) :

### Deducing differentiability from smoothness #

theorem times_cont_mdiff_within_at.mdifferentiable_within_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {x : M} {n : with_top } (hf : f s x) (hn : 1 n) :
s x
theorem times_cont_mdiff_at.mdifferentiable_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {x : M} {n : with_top } (hf : n f x) (hn : 1 n) :
f x
theorem times_cont_mdiff_on.mdifferentiable_on {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {n : with_top } (hf : n f s) (hn : 1 n) :
f s
theorem times_cont_mdiff.mdifferentiable {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {n : with_top } (hf : I' n f) (hn : 1 n) :
I' f
theorem smooth.mdifferentiable {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} (hf : I' f) :
I' f
theorem smooth.mdifferentiable_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {x : M} (hf : I' f) :
f x
theorem smooth.mdifferentiable_within_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {x : M} (hf : I' f) :
s x

### `C^∞` smoothness #

theorem times_cont_mdiff_within_at_top {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {x : M} :
I' f s x ∀ (n : ), f s x
theorem times_cont_mdiff_at_top {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {x : M} :
I' f x ∀ (n : ), n f x
theorem times_cont_mdiff_on_top {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} :
I' f s ∀ (n : ), n f s
theorem times_cont_mdiff_top {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} :
I' f ∀ (n : ), I' n f
theorem times_cont_mdiff_within_at_iff_nat {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {x : M} {n : with_top } :
f s x ∀ (m : ), m n f s x

### Restriction to a smaller set #

theorem times_cont_mdiff_within_at.mono {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s t : set M} {x : M} {n : with_top } (hf : f s x) (hts : t s) :
f t x
theorem times_cont_mdiff_at.times_cont_mdiff_within_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {x : M} {n : with_top } (hf : n f x) :
f s x
theorem smooth_at.smooth_within_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {x : M} (hf : I' f x) :
I' f s x
theorem times_cont_mdiff_on.mono {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s t : set M} {n : with_top } (hf : n f s) (hts : t s) :
n f t
theorem times_cont_mdiff.times_cont_mdiff_on {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {n : with_top } (hf : I' n f) :
n f s
theorem smooth.smooth_on {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} (hf : I' f) :
I' f s
theorem times_cont_mdiff_within_at_inter' {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s t : set M} {x : M} {n : with_top } (ht : t 𝓝[s] x) :
f (s t) x f s x
theorem times_cont_mdiff_within_at_inter {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s t : set M} {x : M} {n : with_top } (ht : t 𝓝 x) :
f (s t) x f s x
theorem times_cont_mdiff_within_at.times_cont_mdiff_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {x : M} {n : with_top } (h : f s x) (ht : s 𝓝 x) :
n f x
theorem smooth_within_at.smooth_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {x : M} (h : I' f s x) (ht : s 𝓝 x) :
I' f x
theorem times_cont_mdiff_on_ext_chart_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {x : M} {n : with_top } :
theorem times_cont_mdiff_within_at_iff_times_cont_mdiff_on_nhds {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] [I's : M'] {f : M → M'} {s : set M} {x : M} {n : } :
f s x ∃ (u : set M) (H_1 : u 𝓝[ s] x), n f u

A function is `C^n` within a set at a point, for `n : ℕ`, if and only if it is `C^n` on a neighborhood of this point.

theorem times_cont_mdiff_at_iff_times_cont_mdiff_on_nhds {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] [I's : M'] {f : M → M'} {x : M} {n : } :
n f x ∃ (u : set M) (H_1 : u 𝓝 x), n f u

A function is `C^n` at a point, for `n : ℕ`, if and only if it is `C^n` on a neighborhood of this point.

### Congruence lemmas #

theorem times_cont_mdiff_within_at.congr {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f f₁ : M → M'} {s : set M} {x : M} {n : with_top } (h : f s x) (h₁ : ∀ (y : M), y sf₁ y = f y) (hx : f₁ x = f x) :
f₁ s x
theorem times_cont_mdiff_within_at_congr {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f f₁ : M → M'} {s : set M} {x : M} {n : with_top } (h₁ : ∀ (y : M), y sf₁ y = f y) (hx : f₁ x = f x) :
f₁ s x f s x
theorem times_cont_mdiff_within_at.congr_of_eventually_eq {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f f₁ : M → M'} {s : set M} {x : M} {n : with_top } (h : f s x) (h₁ : f₁ =ᶠ[𝓝[s] x] f) (hx : f₁ x = f x) :
f₁ s x
theorem filter.eventually_eq.times_cont_mdiff_within_at_iff {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f f₁ : M → M'} {s : set M} {x : M} {n : with_top } (h₁ : f₁ =ᶠ[𝓝[s] x] f) (hx : f₁ x = f x) :
f₁ s x f s x
theorem times_cont_mdiff_at.congr_of_eventually_eq {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f f₁ : M → M'} {x : M} {n : with_top } (h : n f x) (h₁ : f₁ =ᶠ[𝓝 x] f) :
n f₁ x
theorem filter.eventually_eq.times_cont_mdiff_at_iff {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f f₁ : M → M'} {x : M} {n : with_top } (h₁ : f₁ =ᶠ[𝓝 x] f) :
n f₁ x n f x
theorem times_cont_mdiff_on.congr {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f f₁ : M → M'} {s : set M} {n : with_top } (h : n f s) (h₁ : ∀ (y : M), y sf₁ y = f y) :
n f₁ s
theorem times_cont_mdiff_on_congr {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f f₁ : M → M'} {s : set M} {n : with_top } (h₁ : ∀ (y : M), y sf₁ y = f y) :
n f₁ s n f s

### Locality #

theorem times_cont_mdiff_on_of_locally_times_cont_mdiff_on {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {n : with_top } (h : ∀ (x : M), x s(∃ (u : set M), x u n f (s u))) :
n f s

Being `C^n` is a local property.

theorem times_cont_mdiff_of_locally_times_cont_mdiff_on {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {n : with_top } (h : ∀ (x : M), ∃ (u : set M), x u n f u) :
I' n f

### Smoothness of the composition of smooth functions between manifolds #

theorem times_cont_mdiff_within_at.comp {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {n : with_top } {E'' : Type u_14} [normed_group E''] [ E''] {H'' : Type u_15} [topological_space H''] {I'' : E'' H''} {M'' : Type u_16} [topological_space M''] [ M''] {t : set M'} {g : M' → M''} (x : M) (hg : n g t (f x)) (hf : f s x) (st : s t) :
n (g f) s x

The composition of `C^n` functions within domains at points is `C^n`.

theorem times_cont_mdiff_on.comp {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {n : with_top } {E'' : Type u_14} [normed_group E''] [ E''] {H'' : Type u_15} [topological_space H''] {I'' : E'' H''} {M'' : Type u_16} [topological_space M''] [ M''] {t : set M'} {g : M' → M''} (hg : I'' n g t) (hf : n f s) (st : s f ⁻¹' t) :
I'' n (g f) s

The composition of `C^n` functions on domains is `C^n`.

theorem times_cont_mdiff_on.comp' {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {n : with_top } {E'' : Type u_14} [normed_group E''] [ E''] {H'' : Type u_15} [topological_space H''] {I'' : E'' H''} {M'' : Type u_16} [topological_space M''] [ M''] {t : set M'} {g : M' → M''} (hg : I'' n g t) (hf : n f s) :
I'' n (g f) (s f ⁻¹' t)

The composition of `C^n` functions on domains is `C^n`.

theorem times_cont_mdiff.comp {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {n : with_top } {E'' : Type u_14} [normed_group E''] [ E''] {H'' : Type u_15} [topological_space H''] {I'' : E'' H''} {M'' : Type u_16} [topological_space M''] [ M''] {g : M' → M''} (hg : I'' n g) (hf : I' n f) :
I'' n (g f)

The composition of `C^n` functions is `C^n`.

theorem times_cont_mdiff_within_at.comp' {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {n : with_top } {E'' : Type u_14} [normed_group E''] [ E''] {H'' : Type u_15} [topological_space H''] {I'' : E'' H''} {M'' : Type u_16} [topological_space M''] [ M''] {t : set M'} {g : M' → M''} (x : M) (hg : n g t (f x)) (hf : f s x) :
n (g f) (s f ⁻¹' t) x

The composition of `C^n` functions within domains at points is `C^n`.

theorem times_cont_mdiff_at.comp_times_cont_mdiff_within_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {s : set M} {n : with_top } {E'' : Type u_14} [normed_group E''] [ E''] {H'' : Type u_15} [topological_space H''] {I'' : E'' H''} {M'' : Type u_16} [topological_space M''] [ M''] {g : M' → M''} (x : M) (hg : I'' n g (f x)) (hf : f s x) :
n (g f) s x

`g ∘ f` is `C^n` within `s` at `x` if `g` is `C^n` at `f x` and `f` is `C^n` within `s` at `x`.

theorem times_cont_mdiff_at.comp {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {f : M → M'} {n : with_top } {E'' : Type u_14} [normed_group E''] [ E''] {H'' : Type u_15} [topological_space H''] {I'' : E'' H''} {M'' : Type u_16} [topological_space M''] [ M''] {g : M' → M''} (x : M) (hg : I'' n g (f x)) (hf : n f x) :
I'' n (g f) x

The composition of `C^n` functions at points is `C^n`.

theorem times_cont_mdiff.comp_times_cont_mdiff_on {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {n : with_top } {E'' : Type u_14} [normed_group E''] [ E''] {H'' : Type u_15} [topological_space H''] {I'' : E'' H''} {M'' : Type u_16} [topological_space M''] [ M''] {f : M → M'} {g : M' → M''} {s : set M} (hg : I'' n g) (hf : n f s) :
I'' n (g f) s
theorem smooth.comp_smooth_on {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {E'' : Type u_14} [normed_group E''] [ E''] {H'' : Type u_15} [topological_space H''] {I'' : E'' H''} {M'' : Type u_16} [topological_space M''] [ M''] {f : M → M'} {g : M' → M''} {s : set M} (hg : smooth I' I'' g) (hf : I' f s) :
I'' (g f) s

### Atlas members are smooth #

theorem times_cont_mdiff_on_of_mem_maximal_atlas {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {n : with_top } {e : H} (h : e ) :

An atlas member is `C^n` for any `n`.

theorem times_cont_mdiff_on_symm_of_mem_maximal_atlas {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {n : with_top } {e : H} (h : e ) :

The inverse of an atlas member is `C^n` for any `n`.

theorem times_cont_mdiff_on_chart {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {x : M} {n : with_top } :
theorem times_cont_mdiff_on_chart_symm {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {x : M} {n : with_top } :

### The identity is smooth #

theorem times_cont_mdiff_id {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {n : with_top } :
n id
theorem smooth_id {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] :
I id
theorem times_cont_mdiff_on_id {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {s : set M} {n : with_top } :
n id s
theorem smooth_on_id {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {s : set M} :
I id s
theorem times_cont_mdiff_at_id {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {x : M} {n : with_top } :
n id x
theorem smooth_at_id {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {x : M} :
I id x
theorem times_cont_mdiff_within_at_id {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {s : set M} {x : M} {n : with_top } :
s x
theorem smooth_within_at_id {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {s : set M} {x : M} :
s x

### Constants are smooth #

theorem times_cont_mdiff_const {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {n : with_top } {c : M'} :
I' n (λ (x : M), c)
theorem smooth_const {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {c : M'} :
I' (λ (x : M), c)
theorem times_cont_mdiff_on_const {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {s : set M} {n : with_top } {c : M'} :
n (λ (x : M), c) s
theorem smooth_on_const {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {s : set M} {c : M'} :
I' (λ (x : M), c) s
theorem times_cont_mdiff_at_const {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {x : M} {n : with_top } {c : M'} :
n (λ (x : M), c) x
theorem smooth_at_const {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {x : M} {c : M'} :
I' (λ (x : M), c) x
theorem times_cont_mdiff_within_at_const {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {s : set M} {x : M} {n : with_top } {c : M'} :
(λ (x : M), c) s x
theorem smooth_within_at_const {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {s : set M} {x : M} {c : M'} :
I' (λ (x : M), c) s x
theorem times_cont_mdiff_of_support {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {F : Type u_8} [normed_group F] [ F] {n : with_top } {f : M → F} (hf : ∀ (x : M), x n f x) :
𝓘(𝕜, F) n f

### Equivalence with the basic definition for functions between vector spaces #

theorem times_cont_mdiff_within_at_iff_times_cont_diff_within_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {E' : Type u_5} [normed_group E'] [ E'] {n : with_top } {f : E → E'} {s : set E} {x : E} :
n f s x s x
theorem times_cont_diff_within_at.times_cont_mdiff_within_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {E' : Type u_5} [normed_group E'] [ E'] {n : with_top } {f : E → E'} {s : set E} {x : E} :
s x n f s x

Alias of `times_cont_mdiff_within_at_iff_times_cont_diff_within_at`.

theorem times_cont_mdiff_within_at.times_cont_diff_within_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {E' : Type u_5} [normed_group E'] [ E'] {n : with_top } {f : E → E'} {s : set E} {x : E} :
n f s x s x

Alias of `times_cont_mdiff_within_at_iff_times_cont_diff_within_at`.

theorem times_cont_mdiff_at_iff_times_cont_diff_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {E' : Type u_5} [normed_group E'] [ E'] {n : with_top } {f : E → E'} {x : E} :
𝓘(𝕜, E') n f x f x
theorem times_cont_diff_at.times_cont_mdiff_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {E' : Type u_5} [normed_group E'] [ E'] {n : with_top } {f : E → E'} {x : E} :
f x 𝓘(𝕜, E') n f x

Alias of `times_cont_mdiff_at_iff_times_cont_diff_at`.

theorem times_cont_mdiff_at.times_cont_diff_at {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {E' : Type u_5} [normed_group E'] [ E'] {n : with_top } {f : E → E'} {x : E} :
𝓘(𝕜, E') n f x f x

Alias of `times_cont_mdiff_at_iff_times_cont_diff_at`.

theorem times_cont_mdiff_on_iff_times_cont_diff_on {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {E' : Type u_5} [normed_group E'] [ E'] {n : with_top } {f : E → E'} {s : set E} :
𝓘(𝕜, E') n f s f s
theorem times_cont_diff_on.times_cont_mdiff_on {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {E' : Type u_5} [normed_group E'] [ E'] {n : with_top } {f : E → E'} {s : set E} :
f s 𝓘(𝕜, E') n f s

Alias of `times_cont_mdiff_on_iff_times_cont_diff_on`.

theorem times_cont_mdiff_on.times_cont_diff_on {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {E' : Type u_5} [normed_group E'] [ E'] {n : with_top } {f : E → E'} {s : set E} :
𝓘(𝕜, E') n f s f s

Alias of `times_cont_mdiff_on_iff_times_cont_diff_on`.

theorem times_cont_mdiff_iff_times_cont_diff {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {E' : Type u_5} [normed_group E'] [ E'] {n : with_top } {f : E → E'} :
𝓘(𝕜, E') n f f
theorem times_cont_diff.times_cont_mdiff {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {E' : Type u_5} [normed_group E'] [ E'] {n : with_top } {f : E → E'} :
f 𝓘(𝕜, E') n f

Alias of `times_cont_mdiff_iff_times_cont_diff`.

theorem times_cont_mdiff.times_cont_diff {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {E' : Type u_5} [normed_group E'] [ E'] {n : with_top } {f : E → E'} :
𝓘(𝕜, E') n f f

Alias of `times_cont_mdiff_iff_times_cont_diff`.

### The tangent map of a smooth function is smooth #

theorem times_cont_mdiff_on.continuous_on_tangent_map_within_aux {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {n : with_top } {f : H → H'} {s : set H} (hf : n f s) (hn : 1 n) (hs : s) :

If a function is `C^n` with `1 ≤ n` on a domain with unique derivatives, then its bundled derivative is continuous. In this auxiliary lemma, we prove this fact when the source and target space are model spaces in models with corners. The general fact is proved in `times_cont_mdiff_on.continuous_on_tangent_map_within`

theorem times_cont_mdiff_on.times_cont_mdiff_on_tangent_map_within_aux {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {m n : with_top } {f : H → H'} {s : set H} (hf : n f s) (hmn : m + 1 n) (hs : s) :
I' f s) ⁻¹' s)

If a function is `C^n` on a domain with unique derivatives, then its bundled derivative is `C^m` when `m+1 ≤ n`. In this auxiliary lemma, we prove this fact when the source and target space are model spaces in models with corners. The general fact is proved in `times_cont_mdiff_on.times_cont_mdiff_on_tangent_map_within`

theorem times_cont_mdiff_on.times_cont_mdiff_on_tangent_map_within {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] [I's : M'] {f : M → M'} {s : set M} {m n : with_top } (hf : n f s) (hmn : m + 1 n) (hs : s) :
I' f s) ⁻¹' s)

If a function is `C^n` on a domain with unique derivatives, then its bundled derivative is `C^m` when `m+1 ≤ n`.

theorem times_cont_mdiff_on.continuous_on_tangent_map_within {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] [I's : M'] {f : M → M'} {s : set M} {n : with_top } (hf : n f s) (hmn : 1 n) (hs : s) :

If a function is `C^n` on a domain with unique derivatives, with `1 ≤ n`, then its bundled derivative is continuous there.

theorem times_cont_mdiff.times_cont_mdiff_tangent_map {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] [I's : M'] {f : M → M'} {m n : with_top } (hf : I' n f) (hmn : m + 1 n) :
m I' f)

If a function is `C^n`, then its bundled derivative is `C^m` when `m+1 ≤ n`.

theorem times_cont_mdiff.continuous_tangent_map {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] [I's : M'] {f : M → M'} {n : with_top } (hf : I' n f) (hmn : 1 n) :

If a function is `C^n`, with `1 ≤ n`, then its bundled derivative is continuous.

### Smoothness of the projection in a basic smooth bundle #

theorem basic_smooth_bundle_core.times_cont_mdiff_proj {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {E' : Type u_5} [normed_group E'] [ E'] {n : with_top } (Z : E') :
theorem basic_smooth_bundle_core.smooth_proj {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {E' : Type u_5} [normed_group E'] [ E'] (Z : E') :
theorem basic_smooth_bundle_core.times_cont_mdiff_on_proj {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {E' : Type u_5} [normed_group E'] [ E'] {n : with_top } (Z : E')  :
theorem basic_smooth_bundle_core.smooth_on_proj {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {E' : Type u_5} [normed_group E'] [ E'] (Z : E')  :
theorem basic_smooth_bundle_core.times_cont_mdiff_at_proj {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {E' : Type u_5} [normed_group E'] [ E'] {n : with_top } (Z : E')  :
theorem basic_smooth_bundle_core.smooth_at_proj {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {E' : Type u_5} [normed_group E'] [ E'] (Z : E')  :
theorem basic_smooth_bundle_core.times_cont_mdiff_within_at_proj {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {E' : Type u_5} [normed_group E'] [ E'] {n : with_top } (Z : E')  :
s p
theorem basic_smooth_bundle_core.smooth_within_at_proj {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {E' : Type u_5} [normed_group E'] [ E'] (Z : E')  :
theorem basic_smooth_bundle_core.smooth_const_section {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {E' : Type u_5} [normed_group E'] [ E'] (Z : E') (v : E') (h : ∀ (i j : (atlas H M)) (x : M), Z.coord_change i j ((i.val) x) v = v) :
(I.prod 𝓘(𝕜, E')) (show , from λ (x : M), x, v⟩)

If an element of `E'` is invariant under all coordinate changes, then one can define a corresponding section of the fiber bundle, which is smooth. This applies in particular to the zero section of a vector bundle. Another example (not yet defined) would be the identity section of the endomorphism bundle of a vector bundle.

### Smoothness of the tangent bundle projection #

theorem tangent_bundle.times_cont_mdiff_proj {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {n : with_top } :
n M)
theorem tangent_bundle.smooth_proj {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] :
I M)
theorem tangent_bundle.times_cont_mdiff_on_proj {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {n : with_top } {s : set M)} :
M) s
theorem tangent_bundle.smooth_on_proj {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {s : set M)} :
I M) s
theorem tangent_bundle.times_cont_mdiff_at_proj {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {n : with_top } {p : M} :
M) p
theorem tangent_bundle.smooth_at_proj {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {p : M} :
I M) p
theorem tangent_bundle.times_cont_mdiff_within_at_proj {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {n : with_top } {s : set M)} {p : M} :
M) s p
theorem tangent_bundle.smooth_within_at_proj {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] {s : set M)} {p : M} :
M) s p
def tangent_bundle.zero_section {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} (I : H) (M : Type u_4) [ M] [Is : M] :
M →

The zero section of the tangent bundle

Equations
• = λ (x : M), x, 0⟩
theorem tangent_bundle.smooth_zero_section {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] :
theorem tangent_bundle.tangent_map_tangent_bundle_pure {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] [Is : M] (p : M) :
p = p.fst, 0⟩, (p.snd, 0)

The derivative of the zero section of the tangent bundle maps `⟨x, v⟩` to `⟨⟨x, 0⟩, ⟨v, 0⟩⟩`.

Note that, as currently framed, this is a statement in coordinates, thus reliant on the choice of the coordinate system we use on the tangent bundle.

However, the result itself is coordinate-dependent only to the extent that the coordinates determine a splitting of the tangent bundle. Moreover, there is a canonical splitting at each point of the zero section (since there is a canonical horizontal space there, the tangent space to the zero section, in addition to the canonical vertical space which is the kernel of the derivative of the projection), and this canonical splitting is also the one that comes from the coordinates on the tangent bundle in our definitions. So this statement is not as crazy as it may seem.

TODO define splittings of vector bundles; state this result invariantly.

### Smoothness of standard maps associated to the product of manifolds #

theorem times_cont_mdiff_within_at.prod_mk {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {F' : Type u_11} [normed_group F'] [ F'] {G' : Type u_12} {J' : G'} {N' : Type u_13} [ N'] {s : set M} {x : M} {n : with_top } {f : M → M'} {g : M → N'} (hf : f s x) (hg : g s x) :
(I'.prod J') n (λ (x : M), (f x, g x)) s x
theorem times_cont_mdiff_within_at.prod_mk_space {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {F' : Type u_11} [normed_group F'] [ F'] {s : set M} {x : M} {n : with_top } {f : M → E'} {g : M → F'} (hf : n f s x) (hg : n g s x) :
𝓘(𝕜, E' × F') n (λ (x : M), (f x, g x)) s x
theorem times_cont_mdiff_at.prod_mk {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {F' : Type u_11} [normed_group F'] [ F'] {G' : Type u_12} {J' : G'} {N' : Type u_13} [ N'] {x : M} {n : with_top } {f : M → M'} {g : M → N'} (hf : n f x) (hg : n g x) :
(I'.prod J') n (λ (x : M), (f x, g x)) x
theorem times_cont_mdiff_at.prod_mk_space {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {F' : Type u_11} [normed_group F'] [ F'] {x : M} {n : with_top } {f : M → E'} {g : M → F'} (hf : 𝓘(𝕜, E') n f x) (hg : 𝓘(𝕜, F') n g x) :
𝓘(𝕜, E' × F') n (λ (x : M), (f x, g x)) x
theorem times_cont_mdiff_on.prod_mk {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {F' : Type u_11} [normed_group F'] [ F'] {G' : Type u_12} {J' : G'} {N' : Type u_13} [ N'] {s : set M} {n : with_top } {f : M → M'} {g : M → N'} (hf : n f s) (hg : n g s) :
(I'.prod J') n (λ (x : M), (f x, g x)) s
theorem times_cont_mdiff_on.prod_mk_space {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {F' : Type u_11} [normed_group F'] [ F'] {s : set M} {n : with_top } {f : M → E'} {g : M → F'} (hf : 𝓘(𝕜, E') n f s) (hg : 𝓘(𝕜, F') n g s) :
𝓘(𝕜, E' × F') n (λ (x : M), (f x, g x)) s
theorem times_cont_mdiff.prod_mk {𝕜 : Type u_1} {E : Type u_2} [normed_group E] [ E] {H : Type u_3} {I : H} {M : Type u_4} [ M] {E' : Type u_5} [normed_group E'] [ E'] {H' : Type u_6} {I' : H'} {M' : Type u_7} [ M'] {F' : Type u_11} [normed_group F'] [ F'] {G' : Type u_12} {J' :