mathlib documentation

analysis.​normed_space.​multilinear

analysis.​normed_space.​multilinear

Operator norm on the space of continuous multilinear maps

When f is a continuous multilinear map in finitely many variables, we define its norm ∥f∥ as the smallest number such that ∥f m∥ ≤ ∥f∥ * ∏ i, ∥m i∥ for all m.

We show that it is indeed a norm, and prove its basic properties.

Main results

Let f be a multilinear map in finitely many variables.

Let f be a continuous multilinear map in finitely many variables.

We also register isomorphisms corresponding to currying or uncurrying variables, transforming a continuous multilinear function f in n+1 variables into a continuous linear function taking values in continuous multilinear functions in n variables, and also into a continuous multilinear function in n variables taking values in continuous linear functions. These operations are called f.curry_left and f.curry_right respectively (with inverses f.uncurry_left and f.uncurry_right). They induce continuous linear equivalences between spaces of continuous multilinear functions in n+1 variables and spaces of continuous linear functions into continuous multilinear functions in n variables (resp. continuous multilinear functions in n variables taking values in continuous linear functions), called respectively continuous_multilinear_curry_left_equiv and continuous_multilinear_curry_right_equiv.

Implementation notes

We mostly follow the API (and the proofs) of operator_norm.lean, with the additional complexity that we should deal with multilinear maps in several variables. The currying/uncurrying constructions are based on those in multilinear.lean.

From the mathematical point of view, all the results follow from the results on operator norm in one variable, by applying them to one variable after the other through currying. However, this is only well defined when there is an order on the variables (for instance on fin n) although the final result is independent of the order. While everything could be done following this approach, it turns out that direct proofs are easier and more efficient.

Continuity properties of multilinear maps

We relate continuity of multilinear maps to the inequality ∥f m∥ ≤ C * ∏ i, ∥m i∥, in both directions. Along the way, we prove useful bounds on the difference ∥f m₁ - f m₂∥.

theorem multilinear_map.​exists_bound_of_continuous {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] (f : multilinear_map 𝕜 E₁ E₂) :
continuous f(∃ (C : ), 0 < C ∀ (m : Π (i : ι), E₁ i), f m C * finset.univ.prod (λ (i : ι), m i))

If a multilinear map in finitely many variables on normed spaces is continuous, then it satisfies the inequality ∥f m∥ ≤ C * ∏ i, ∥m i∥, for some C which can be chosen to be positive.

theorem multilinear_map.​norm_image_sub_le_of_bound' {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] (f : multilinear_map 𝕜 E₁ E₂) {C : } (hC : 0 C) (H : ∀ (m : Π (i : ι), E₁ i), f m C * finset.univ.prod (λ (i : ι), m i)) (m₁ m₂ : Π (i : ι), E₁ i) :
f m₁ - f m₂ C * finset.univ.sum (λ (i : ι), finset.univ.prod (λ (j : ι), ite (j = i) m₁ i - m₂ i (max m₁ j m₂ j)))

If f satisfies a boundedness property around 0, one can deduce a bound on f m₁ - f m₂ using the multilinearity. Here, we give a precise but hard to use version. See norm_image_sub_le_of_bound for a less precise but more usable version. The bound reads ∥f m - f m'∥ ≤ C * ∥m 1 - m' 1∥ * max ∥m 2∥ ∥m' 2∥ * max ∥m 3∥ ∥m' 3∥ * ... * max ∥m n∥ ∥m' n∥ + ..., where the other terms in the sum are the same products where 1 is replaced by any i.

theorem multilinear_map.​norm_image_sub_le_of_bound {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] (f : multilinear_map 𝕜 E₁ E₂) {C : } (hC : 0 C) (H : ∀ (m : Π (i : ι), E₁ i), f m C * finset.univ.prod (λ (i : ι), m i)) (m₁ m₂ : Π (i : ι), E₁ i) :
f m₁ - f m₂ C * (fintype.card ι) * max m₁ m₂ ^ (fintype.card ι - 1) * m₁ - m₂

If f satisfies a boundedness property around 0, one can deduce a bound on f m₁ - f m₂ using the multilinearity. Here, we give a usable but not very precise version. See norm_image_sub_le_of_bound' for a more precise but less usable version. The bound is ∥f m - f m'∥ ≤ C * card ι * ∥m - m'∥ * (max ∥m∥ ∥m'∥) ^ (card ι - 1).

theorem multilinear_map.​continuous_of_bound {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] (f : multilinear_map 𝕜 E₁ E₂) (C : ) :
(∀ (m : Π (i : ι), E₁ i), f m C * finset.univ.prod (λ (i : ι), m i))continuous f

If a multilinear map satisfies an inequality ∥f m∥ ≤ C * ∏ i, ∥m i∥, then it is continuous.

def multilinear_map.​mk_continuous {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] (f : multilinear_map 𝕜 E₁ E₂) (C : ) :
(∀ (m : Π (i : ι), E₁ i), f m C * finset.univ.prod (λ (i : ι), m i))continuous_multilinear_map 𝕜 E₁ E₂

Constructing a continuous multilinear map from a multilinear map satisfying a boundedness condition.

Equations
theorem multilinear_map.​restr_norm_le {𝕜 : Type u} {G : Type wG} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [normed_group G] [normed_group E₂] [normed_space 𝕜 G] [normed_space 𝕜 E₂] {k n : } (f : multilinear_map 𝕜 (λ (i : fin n), G) E₂) (s : finset (fin n)) (hk : s.card = k) (z : G) {C : } (H : ∀ (m : Π (i : fin n), (λ (i : fin n), G) i), f m C * finset.univ.prod (λ (i : fin n), m i)) (v : fin k → G) :
(f.restr s hk z) v C * z ^ (n - k) * finset.univ.prod (λ (i : fin k), v i)

Given a multilinear map in n variables, if one restricts it to k variables putting z on the other coordinates, then the resulting restricted function satisfies an inequality ∥f.restr v∥ ≤ C * ∥z∥^(n-k) * Π ∥v i∥ if the original function satisfies ∥f v∥ ≤ C * Π ∥v i∥.

Continuous multilinear maps

We define the norm ∥f∥ of a continuous multilinear map f in finitely many variables as the smallest number such that ∥f m∥ ≤ ∥f∥ * ∏ i, ∥m i∥ for all m. We show that this defines a normed space structure on continuous_multilinear_map 𝕜 E₁ E₂.

theorem continuous_multilinear_map.​bound {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 E₁ E₂) :
∃ (C : ), 0 < C ∀ (m : Π (i : ι), E₁ i), f m C * finset.univ.prod (λ (i : ι), m i)

def continuous_multilinear_map.​op_norm {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] :
continuous_multilinear_map 𝕜 E₁ E₂

The operator norm of a continuous multilinear map is the inf of all its bounds.

Equations
@[instance]
def continuous_multilinear_map.​has_op_norm {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] :

Equations
theorem continuous_multilinear_map.​norm_def {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 E₁ E₂) :
f = has_Inf.Inf {c : | 0 c ∀ (m : Π (i : ι), E₁ i), f m c * finset.univ.prod (λ (i : ι), m i)}

theorem continuous_multilinear_map.​bounds_nonempty {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] {f : continuous_multilinear_map 𝕜 E₁ E₂} :
∃ (c : ), c {c : | 0 c ∀ (m : Π (i : ι), E₁ i), f m c * finset.univ.prod (λ (i : ι), m i)}

theorem continuous_multilinear_map.​bounds_bdd_below {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] {f : continuous_multilinear_map 𝕜 E₁ E₂} :
bdd_below {c : | 0 c ∀ (m : Π (i : ι), E₁ i), f m c * finset.univ.prod (λ (i : ι), m i)}

theorem continuous_multilinear_map.​op_norm_nonneg {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 E₁ E₂) :

theorem continuous_multilinear_map.​le_op_norm {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 E₁ E₂) (m : Π (i : ι), E₁ i) :
f m f * finset.univ.prod (λ (i : ι), m i)

The fundamental property of the operator norm of a continuous multilinear map: ∥f m∥ is bounded by ∥f∥ times the product of the ∥m i∥.

theorem continuous_multilinear_map.​ratio_le_op_norm {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 E₁ E₂) (m : Π (i : ι), E₁ i) :
f m / finset.univ.prod (λ (i : ι), m i) f

theorem continuous_multilinear_map.​unit_le_op_norm {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 E₁ E₂) (m : Π (i : ι), E₁ i) :

The image of the unit ball under a continuous multilinear map is bounded.

theorem continuous_multilinear_map.​op_norm_le_bound {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 E₁ E₂) {M : } :
0 M(∀ (m : Π (i : ι), E₁ i), f m M * finset.univ.prod (λ (i : ι), m i))f M

If one controls the norm of every f x, then one controls the norm of f.

theorem continuous_multilinear_map.​op_norm_add_le {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] (f g : continuous_multilinear_map 𝕜 E₁ E₂) :

The operator norm satisfies the triangle inequality.

theorem continuous_multilinear_map.​op_norm_zero_iff {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 E₁ E₂) :
f = 0 f = 0

A continuous linear map is zero iff its norm vanishes.

theorem continuous_multilinear_map.​op_norm_smul_le {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] (c : 𝕜) (f : continuous_multilinear_map 𝕜 E₁ E₂) :

theorem continuous_multilinear_map.​op_norm_neg {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 E₁ E₂) :

@[instance]
def continuous_multilinear_map.​to_normed_group {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] :

Continuous multilinear maps themselves form a normed space with respect to the operator norm.

Equations
@[instance]
def continuous_multilinear_map.​to_normed_space {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] :

Equations
theorem continuous_multilinear_map.​norm_image_sub_le_of_bound' {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 E₁ E₂) (m₁ m₂ : Π (i : ι), E₁ i) :
f m₁ - f m₂ f * finset.univ.sum (λ (i : ι), finset.univ.prod (λ (j : ι), ite (j = i) m₁ i - m₂ i (max m₁ j m₂ j)))

The difference f m₁ - f m₂ is controlled in terms of ∥f∥ and ∥m₁ - m₂∥, precise version. For a less precise but more usable version, see norm_image_sub_le_of_bound. The bound reads ∥f m - f m'∥ ≤ ∥f∥ * ∥m 1 - m' 1∥ * max ∥m 2∥ ∥m' 2∥ * max ∥m 3∥ ∥m' 3∥ * ... * max ∥m n∥ ∥m' n∥ + ..., where the other terms in the sum are the same products where 1 is replaced by any i.

theorem continuous_multilinear_map.​norm_image_sub_le_of_bound {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 E₁ E₂) (m₁ m₂ : Π (i : ι), E₁ i) :
f m₁ - f m₂ f * (fintype.card ι) * max m₁ m₂ ^ (fintype.card ι - 1) * m₁ - m₂

The difference f m₁ - f m₂ is controlled in terms of ∥f∥ and ∥m₁ - m₂∥, less precise version. For a more precise but less usable version, see norm_image_sub_le_of_bound'. The bound is ∥f m - f m'∥ ≤ ∥f∥ * card ι * ∥m - m'∥ * (max ∥m∥ ∥m'∥) ^ (card ι - 1).

theorem continuous_multilinear_map.​continuous_eval {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] :
continuous (λ (p : continuous_multilinear_map 𝕜 E₁ E₂ × Π (i : ι), E₁ i), (p.fst) p.snd)

Applying a multilinear map to a vector is continuous in both coordinates.

theorem continuous_multilinear_map.​continuous_eval_left {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] (m : Π (i : ι), E₁ i) :
continuous (λ (p : continuous_multilinear_map 𝕜 E₁ E₂), p m)

theorem continuous_multilinear_map.​has_sum_eval {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] {α : Type u_1} {p : α → continuous_multilinear_map 𝕜 E₁ E₂} {q : continuous_multilinear_map 𝕜 E₁ E₂} (h : has_sum p q) (m : Π (i : ι), E₁ i) :
has_sum (λ (a : α), (p a) m) (q m)

@[instance]
def continuous_multilinear_map.​complete_space {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] [complete_space E₂] :

If the target space is complete, the space of continuous multilinear maps with its norm is also complete. The proof is essentially the same as for the space of continuous linear maps (modulo the addition of finset.prod where needed. The duplication could be avoided by deducing the linear case from the multilinear case via a currying isomorphism. However, this would mess up imports, and it is more satisfactory to have the simplest case as a standalone proof.

Equations
theorem multilinear_map.​mk_continuous_norm_le {𝕜 : Type u} {ι : Type v} {E₁ : ι → Type w₁} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [Π (i : ι), normed_group (E₁ i)] [normed_group E₂] [Π (i : ι), normed_space 𝕜 (E₁ i)] [normed_space 𝕜 E₂] (f : multilinear_map 𝕜 E₁ E₂) {C : } (hC : 0 C) (H : ∀ (m : Π (i : ι), E₁ i), f m C * finset.univ.prod (λ (i : ι), m i)) :

If a continuous multilinear map is constructed from a multilinear map via the constructor mk_continuous, then its norm is bounded by the bound given to the constructor if it is nonnegative.

def continuous_multilinear_map.​restr {𝕜 : Type u} {G : Type wG} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [normed_group G] [normed_group E₂] [normed_space 𝕜 G] [normed_space 𝕜 E₂] {k n : } (f : continuous_multilinear_map 𝕜 (λ (i : fin n), G) E₂) (s : finset (fin n)) :
s.card = kG → continuous_multilinear_map 𝕜 (λ (i : fin k), G) E₂

Given a continuous multilinear map f on n variables (parameterized by fin n) and a subset s of k of these variables, one gets a new continuous multilinear map on fin k by varying these variables, and fixing the other ones equal to a given value z. It is denoted by f.restr s hk z, where hk is a proof that the cardinality of s is k. The implicit identification between fin k and s that we use is the canonical (increasing) bijection.

Equations
theorem continuous_multilinear_map.​norm_restr {𝕜 : Type u} {G : Type wG} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [normed_group G] [normed_group E₂] [normed_space 𝕜 G] [normed_space 𝕜 E₂] {k n : } (f : continuous_multilinear_map 𝕜 (λ (i : fin n), G) E₂) (s : finset (fin n)) (hk : s.card = k) (z : G) :
f.restr s hk z f * z ^ (n - k)

def continuous_multilinear_map.​mk_pi_field (𝕜 : Type u) (ι : Type v) {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [normed_group E₂] [normed_space 𝕜 E₂] :
E₂ → continuous_multilinear_map 𝕜 (λ (i : ι), 𝕜) E₂

The canonical continuous multilinear map on 𝕜^ι, associating to m the product of all the m i (multiplied by a fixed reference element z in the target module)

Equations
@[simp]
theorem continuous_multilinear_map.​mk_pi_field_apply {𝕜 : Type u} {ι : Type v} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [normed_group E₂] [normed_space 𝕜 E₂] (z : E₂) (m : ι → 𝕜) :

theorem continuous_multilinear_map.​mk_pi_ring_apply_one_eq_self {𝕜 : Type u} {ι : Type v} {E₂ : Type w₂} [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [normed_group E₂] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 (λ (i : ι), 𝕜) E₂) :
continuous_multilinear_map.mk_pi_field 𝕜 ι (f (λ (i : ι), 1)) = f

def continuous_multilinear_map.​pi_field_equiv_aux (𝕜 : Type u) (ι : Type v) (E₂ : Type w₂) [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [normed_group E₂] [normed_space 𝕜 E₂] :
E₂ ≃ₗ[𝕜] continuous_multilinear_map 𝕜 (λ (i : ι), 𝕜) E₂

Continuous multilinear maps on 𝕜^n with values in E₂ are in bijection with E₂, as such a continuous multilinear map is completely determined by its value on the constant vector made of ones. We register this bijection as a linear equivalence in continuous_multilinear_map.pi_field_equiv_aux. The continuous linear equivalence is continuous_multilinear_map.pi_field_equiv.

Equations
def continuous_multilinear_map.​pi_field_equiv (𝕜 : Type u) (ι : Type v) (E₂ : Type w₂) [decidable_eq ι] [fintype ι] [nondiscrete_normed_field 𝕜] [normed_group E₂] [normed_space 𝕜 E₂] :
E₂ ≃L[𝕜] continuous_multilinear_map 𝕜 (λ (i : ι), 𝕜) E₂

Continuous multilinear maps on 𝕜^n with values in E₂ are in bijection with E₂, as such a continuous multilinear map is completely determined by its value on the constant vector made of ones. We register this bijection as a continuous linear equivalence in continuous_multilinear_map.pi_field_equiv.

Equations

Currying

We associate to a continuous multilinear map in n+1 variables (i.e., based on fin n.succ) two curried functions, named f.curry_left (which is a continuous linear map on E 0 taking values in continuous multilinear maps in n variables) and f.curry_right (which is a continuous multilinear map in n variables taking values in continuous linear maps on E (last n)). The inverse operations are called uncurry_left and uncurry_right.

We also register continuous linear equiv versions of these correspondences, in continuous_multilinear_curry_left_equiv and continuous_multilinear_curry_right_equiv.

theorem continuous_linear_map.​norm_map_tail_le {𝕜 : Type u} {n : } {E : fin n.succType w} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] (f : E 0 →L[𝕜] continuous_multilinear_map 𝕜 (λ (i : fin n), E i.succ) E₂) (m : Π (i : fin n.succ), E i) :
(f (m 0)) (fin.tail m) f * finset.univ.prod (λ (i : fin n.succ), m i)

theorem continuous_multilinear_map.​norm_map_init_le {𝕜 : Type u} {n : } {E : fin n.succType w} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 (λ (i : fin n), E i.cast_succ) (E (fin.last n) →L[𝕜] E₂)) (m : Π (i : fin n.succ), E i) :

theorem continuous_multilinear_map.​norm_map_cons_le {𝕜 : Type u} {n : } {E : fin n.succType w} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 E E₂) (x : E 0) (m : Π (i : fin n), E i.succ) :

theorem continuous_multilinear_map.​norm_map_snoc_le {𝕜 : Type u} {n : } {E : fin n.succType w} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 E E₂) (m : Π (i : fin n), E i.cast_succ) (x : E (fin.last n)) :

Left currying

def continuous_linear_map.​uncurry_left {𝕜 : Type u} {n : } {E : fin n.succType w} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] :
(E 0 →L[𝕜] continuous_multilinear_map 𝕜 (λ (i : fin n), E i.succ) E₂)continuous_multilinear_map 𝕜 E E₂

Given a continuous linear map f from E 0 to continuous multilinear maps on n variables, construct the corresponding continuous multilinear map on n+1 variables obtained by concatenating the variables, given by m ↦ f (m 0) (tail m)

Equations
@[simp]
theorem continuous_linear_map.​uncurry_left_apply {𝕜 : Type u} {n : } {E : fin n.succType w} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] (f : E 0 →L[𝕜] continuous_multilinear_map 𝕜 (λ (i : fin n), E i.succ) E₂) (m : Π (i : fin n.succ), E i) :
(f.uncurry_left) m = (f (m 0)) (fin.tail m)

def continuous_multilinear_map.​curry_left {𝕜 : Type u} {n : } {E : fin n.succType w} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] :
continuous_multilinear_map 𝕜 E E₂(E 0 →L[𝕜] continuous_multilinear_map 𝕜 (λ (i : fin n), E i.succ) E₂)

Given a continuous multilinear map f in n+1 variables, split the first variable to obtain a continuous linear map into continuous multilinear maps in n variables, given by x ↦ (m ↦ f (cons x m)).

Equations
@[simp]
theorem continuous_multilinear_map.​curry_left_apply {𝕜 : Type u} {n : } {E : fin n.succType w} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 E E₂) (x : E 0) (m : Π (i : fin n), E i.succ) :
((f.curry_left) x) m = f (fin.cons x m)

@[simp]
theorem continuous_linear_map.​curry_uncurry_left {𝕜 : Type u} {n : } {E : fin n.succType w} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] (f : E 0 →L[𝕜] continuous_multilinear_map 𝕜 (λ (i : fin n), E i.succ) E₂) :

@[simp]
theorem continuous_multilinear_map.​uncurry_curry_left {𝕜 : Type u} {n : } {E : fin n.succType w} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 E E₂) :

@[simp]
theorem continuous_multilinear_map.​curry_left_norm {𝕜 : Type u} {n : } {E : fin n.succType w} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 E E₂) :

@[simp]
theorem continuous_linear_map.​uncurry_left_norm {𝕜 : Type u} {n : } {E : fin n.succType w} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] (f : E 0 →L[𝕜] continuous_multilinear_map 𝕜 (λ (i : fin n), E i.succ) E₂) :

def continuous_multilinear_curry_left_equiv_aux (𝕜 : Type u) {n : } (E : fin n.succType w) (E₂ : Type w₂) [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] :
(E 0 →L[𝕜] continuous_multilinear_map 𝕜 (λ (i : fin n), E i.succ) E₂) ≃ₗ[𝕜] continuous_multilinear_map 𝕜 E E₂

The space of continuous multilinear maps on Π(i : fin (n+1)), E i is canonically isomorphic to the space of continuous linear maps from E 0 to the space of continuous multilinear maps on Π(i : fin n), E i.succ, by separating the first variable. We register this isomorphism as a linear isomorphism in continuous_multilinear_curry_left_equiv_aux 𝕜 E E₂. The algebraic version (without continuity assumption on the maps) is multilinear_curry_left_equiv 𝕜 E E₂, and the topological isomorphism (registering additionally that the isomorphism is continuous) is continuous_multilinear_curry_left_equiv 𝕜 E E₂.

The direct and inverse maps are given by f.uncurry_left and f.curry_left. Use these unless you need the full framework of linear equivs.

Equations
def continuous_multilinear_curry_left_equiv (𝕜 : Type u) {n : } (E : fin n.succType w) (E₂ : Type w₂) [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] :
(E 0 →L[𝕜] continuous_multilinear_map 𝕜 (λ (i : fin n), E i.succ) E₂) ≃L[𝕜] continuous_multilinear_map 𝕜 E E₂

The space of continuous multilinear maps on Π(i : fin (n+1)), E i is canonically isomorphic to the space of continuous linear maps from E 0 to the space of continuous multilinear maps on Π(i : fin n), E i.succ, by separating the first variable. We register this isomorphism in continuous_multilinear_curry_left_equiv 𝕜 E E₂. The algebraic version (without topology) is given in multilinear_curry_left_equiv 𝕜 E E₂.

The direct and inverse maps are given by f.uncurry_left and f.curry_left. Use these unless you need the full framework of continuous linear equivs.

Equations
@[simp]
theorem continuous_multilinear_curry_left_equiv_apply {𝕜 : Type u} {n : } {E : fin n.succType w} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] (f : E 0 →L[𝕜] continuous_multilinear_map 𝕜 (λ (i : fin n), E i.succ) E₂) (v : Π (i : fin n.succ), E i) :

@[simp]
theorem continuous_multilinear_curry_left_equiv_symm_apply {𝕜 : Type u} {n : } {E : fin n.succType w} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 E E₂) (x : E 0) (v : Π (i : fin n), E i.succ) :

Right currying

def continuous_multilinear_map.​uncurry_right {𝕜 : Type u} {n : } {E : fin n.succType w} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] :
continuous_multilinear_map 𝕜 (λ (i : fin n), E i.cast_succ) (E (fin.last n) →L[𝕜] E₂)continuous_multilinear_map 𝕜 E E₂

Given a continuous linear map f from continuous multilinear maps on n variables to continuous linear maps on E 0, construct the corresponding continuous multilinear map on n+1 variables obtained by concatenating the variables, given by m ↦ f (init m) (m (last n)).

Equations
@[simp]
theorem continuous_multilinear_map.​uncurry_right_apply {𝕜 : Type u} {n : } {E : fin n.succType w} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 (λ (i : fin n), E i.cast_succ) (E (fin.last n) →L[𝕜] E₂)) (m : Π (i : fin n.succ), E i) :

def continuous_multilinear_map.​curry_right {𝕜 : Type u} {n : } {E : fin n.succType w} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] :
continuous_multilinear_map 𝕜 E E₂continuous_multilinear_map 𝕜 (λ (i : fin n), E i.cast_succ) (E (fin.last n) →L[𝕜] E₂)

Given a continuous multilinear map f in n+1 variables, split the last variable to obtain a continuous multilinear map in n variables into continuous linear maps, given by m ↦ (x ↦ f (snoc m x)).

Equations
@[simp]
theorem continuous_multilinear_map.​curry_right_apply {𝕜 : Type u} {n : } {E : fin n.succType w} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 E E₂) (m : Π (i : fin n), E i.cast_succ) (x : E (fin.last n)) :
((f.curry_right) m) x = f (fin.snoc m x)

@[simp]
theorem continuous_multilinear_map.​curry_uncurry_right {𝕜 : Type u} {n : } {E : fin n.succType w} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 (λ (i : fin n), E i.cast_succ) (E (fin.last n) →L[𝕜] E₂)) :

@[simp]
theorem continuous_multilinear_map.​uncurry_curry_right {𝕜 : Type u} {n : } {E : fin n.succType w} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 E E₂) :

@[simp]
theorem continuous_multilinear_map.​curry_right_norm {𝕜 : Type u} {n : } {E : fin n.succType w} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 E E₂) :

@[simp]
theorem continuous_multilinear_map.​uncurry_right_norm {𝕜 : Type u} {n : } {E : fin n.succType w} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 (λ (i : fin n), E i.cast_succ) (E (fin.last n) →L[𝕜] E₂)) :

def continuous_multilinear_curry_right_equiv_aux (𝕜 : Type u) {n : } (E : fin n.succType w) (E₂ : Type w₂) [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] :
continuous_multilinear_map 𝕜 (λ (i : fin n), E i.cast_succ) (E (fin.last n) →L[𝕜] E₂) ≃ₗ[𝕜] continuous_multilinear_map 𝕜 E E₂

The space of continuous multilinear maps on Π(i : fin (n+1)), E i is canonically isomorphic to the space of continuous multilinear maps on Π(i : fin n), E i.cast_succ with values in the space of continuous linear maps on E (last n), by separating the last variable. We register this isomorphism as a linear equiv in continuous_multilinear_curry_right_equiv_aux 𝕜 E E₂. The algebraic version (without continuity assumption on the maps) is multilinear_curry_right_equiv 𝕜 E E₂, and the topological isomorphism (registering additionally that the isomorphism is continuous) is continuous_multilinear_curry_right_equiv 𝕜 E E₂.

The direct and inverse maps are given by f.uncurry_right and f.curry_right. Use these unless you need the full framework of linear equivs.

Equations
def continuous_multilinear_curry_right_equiv (𝕜 : Type u) {n : } (E : fin n.succType w) (E₂ : Type w₂) [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] :
continuous_multilinear_map 𝕜 (λ (i : fin n), E i.cast_succ) (E (fin.last n) →L[𝕜] E₂) ≃L[𝕜] continuous_multilinear_map 𝕜 E E₂

The space of continuous multilinear maps on Π(i : fin (n+1)), E i is canonically isomorphic to the space of continuous multilinear maps on Π(i : fin n), E i.cast_succ with values in the space of continuous linear maps on E (last n), by separating the last variable. We register this isomorphism as a continuous linear equiv in continuous_multilinear_curry_right_equiv 𝕜 E E₂. The algebraic version (without topology) is given in multilinear_curry_right_equiv 𝕜 E E₂.

The direct and inverse maps are given by f.uncurry_right and f.curry_right. Use these unless you need the full framework of continuous linear equivs.

Equations
@[simp]
theorem continuous_multilinear_curry_right_equiv_apply {𝕜 : Type u} {n : } {E : fin n.succType w} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 (λ (i : fin n), E i.cast_succ) (E (fin.last n) →L[𝕜] E₂)) (v : Π (i : fin n.succ), E i) :

@[simp]
theorem continuous_multilinear_curry_right_equiv_symm_apply {𝕜 : Type u} {n : } {E : fin n.succType w} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [Π (i : fin n.succ), normed_group (E i)] [normed_group E₂] [Π (i : fin n.succ), normed_space 𝕜 (E i)] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 E E₂) (v : Π (i : fin n), E i.cast_succ) (x : E (fin.last n)) :

Currying with 0 variables

The space of multilinear maps with 0 variables is trivial: such a multilinear map is just an arbitrary constant (note that multilinear maps in 0 variables need not map 0 to 0!). Therefore, the space of continuous multilinear maps on (fin 0) → G with values in E₂ is isomorphic (and even isometric) to E₂. As this is the zeroth step in the construction of iterated derivatives, we register this isomorphism.

def continuous_multilinear_map.​uncurry0 {𝕜 : Type u} {G : Type wG} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [normed_group G] [normed_group E₂] [normed_space 𝕜 G] [normed_space 𝕜 E₂] :
continuous_multilinear_map 𝕜 (λ (i : fin 0), G) E₂ → E₂

Associating to a continuous multilinear map in 0 variables the unique value it takes.

Equations
def continuous_multilinear_map.​curry0 (𝕜 : Type u) (G : Type wG) {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [normed_group G] [normed_group E₂] [normed_space 𝕜 G] [normed_space 𝕜 E₂] :
E₂ → continuous_multilinear_map 𝕜 (λ (i : fin 0), G) E₂

Associating to an element x of a vector space E₂ the continuous multilinear map in 0 variables taking the (unique) value x

Equations
@[simp]
theorem continuous_multilinear_map.​curry0_apply (𝕜 : Type u) {G : Type wG} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [normed_group G] [normed_group E₂] [normed_space 𝕜 G] [normed_space 𝕜 E₂] (x : E₂) (m : fin 0 → G) :

@[simp]
theorem continuous_multilinear_map.​uncurry0_apply {𝕜 : Type u} {G : Type wG} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [normed_group G] [normed_group E₂] [normed_space 𝕜 G] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 (λ (i : fin 0), G) E₂) :

@[simp]
theorem continuous_multilinear_map.​apply_zero_curry0 {𝕜 : Type u} {G : Type wG} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [normed_group G] [normed_group E₂] [normed_space 𝕜 G] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 (λ (i : fin 0), G) E₂) {x : fin 0 → G} :

theorem continuous_multilinear_map.​uncurry0_curry0 {𝕜 : Type u} {G : Type wG} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [normed_group G] [normed_group E₂] [normed_space 𝕜 G] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 (λ (i : fin 0), G) E₂) :

@[simp]
theorem continuous_multilinear_map.​curry0_uncurry0 (𝕜 : Type u) (G : Type wG) {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [normed_group G] [normed_group E₂] [normed_space 𝕜 G] [normed_space 𝕜 E₂] (x : E₂) :

@[simp]
theorem continuous_multilinear_map.​uncurry0_norm (𝕜 : Type u) (G : Type wG) {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [normed_group G] [normed_group E₂] [normed_space 𝕜 G] [normed_space 𝕜 E₂] (x : E₂) :

@[simp]
theorem continuous_multilinear_map.​fin0_apply_norm {𝕜 : Type u} {G : Type wG} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [normed_group G] [normed_group E₂] [normed_space 𝕜 G] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 (λ (i : fin 0), G) E₂) {x : fin 0 → G} :

theorem continuous_multilinear_map.​curry0_norm {𝕜 : Type u} {G : Type wG} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [normed_group G] [normed_group E₂] [normed_space 𝕜 G] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 (λ (i : fin 0), G) E₂) :

def continuous_multilinear_curry_fin0_aux (𝕜 : Type u) (G : Type wG) (E₂ : Type w₂) [nondiscrete_normed_field 𝕜] [normed_group G] [normed_group E₂] [normed_space 𝕜 G] [normed_space 𝕜 E₂] :
continuous_multilinear_map 𝕜 (λ (i : fin 0), G) E₂ ≃ₗ[𝕜] E₂

The linear isomorphism between elements of a normed space, and continuous multilinear maps in 0 variables with values in this normed space. The continuous version is given in continuous_multilinear_curry_fin0.

The direct and inverse maps are uncurry0 and curry0. Use these unless you need the full framework of linear equivs.

Equations
def continuous_multilinear_curry_fin0 (𝕜 : Type u) (G : Type wG) (E₂ : Type w₂) [nondiscrete_normed_field 𝕜] [normed_group G] [normed_group E₂] [normed_space 𝕜 G] [normed_space 𝕜 E₂] :
continuous_multilinear_map 𝕜 (λ (i : fin 0), G) E₂ ≃L[𝕜] E₂

The continuous linear isomorphism between elements of a normed space, and continuous multilinear maps in 0 variables with values in this normed space.

The direct and inverse maps are uncurry0 and curry0. Use these unless you need the full framework of continuous linear equivs.

Equations
@[simp]
theorem continuous_multilinear_curry_fin0_apply {𝕜 : Type u} {G : Type wG} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [normed_group G] [normed_group E₂] [normed_space 𝕜 G] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 (λ (i : fin 0), G) E₂) :

@[simp]
theorem continuous_multilinear_curry_fin0_symm_apply {𝕜 : Type u} {G : Type wG} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [normed_group G] [normed_group E₂] [normed_space 𝕜 G] [normed_space 𝕜 E₂] (x : E₂) (v : fin 0 → G) :

With 1 variable

def continuous_multilinear_curry_fin1 (𝕜 : Type u) (G : Type wG) (E₂ : Type w₂) [nondiscrete_normed_field 𝕜] [normed_group G] [normed_group E₂] [normed_space 𝕜 G] [normed_space 𝕜 E₂] :
continuous_multilinear_map 𝕜 (λ (i : fin 1), G) E₂ ≃L[𝕜] G →L[𝕜] E₂

Continuous multilinear maps from G^1 to E₂ are isomorphic with continuous linear maps from G to E₂.

Equations
@[simp]
theorem continuous_multilinear_curry_fin1_apply {𝕜 : Type u} {G : Type wG} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [normed_group G] [normed_group E₂] [normed_space 𝕜 G] [normed_space 𝕜 E₂] (f : continuous_multilinear_map 𝕜 (λ (i : fin 1), G) E₂) (x : G) :

@[simp]
theorem continuous_multilinear_curry_fin1_symm_apply {𝕜 : Type u} {G : Type wG} {E₂ : Type w₂} [nondiscrete_normed_field 𝕜] [normed_group G] [normed_group E₂] [normed_space 𝕜 G] [normed_space 𝕜 E₂] (f : G →L[𝕜] E₂) (v : fin 1 → G) :
(((continuous_multilinear_curry_fin1 𝕜 G E₂).symm) f) v = f (v 0)