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.
exists_bound_of_continuous
asserts that, iff
is continuous, then there existsC > 0
with‖f m‖ ≤ C * ∏ i, ‖m i‖
for allm
.continuous_of_bound
, conversely, asserts that this bound implies continuity.mkContinuous
constructs the associated continuous multilinear map.
Let f
be a continuous multilinear map in finitely many variables.
‖f‖
is its norm, i.e., the smallest number such that‖f m‖ ≤ ‖f‖ * ∏ i, ‖m i‖
for allm
.le_op_norm f m
asserts the fundamental inequality‖f m‖ ≤ ‖f‖ * ∏ i, ‖m i‖
.norm_image_sub_le f m₁ m₂
gives a control of the differencef m₁ - f m₂
in terms of‖f‖
and‖m₁ - m₂‖
.
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.curryLeft
and f.curryRight
respectively (with inverses f.uncurryLeft
and
f.uncurryRight
). 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
continuousMultilinearCurryLeftEquiv
and continuousMultilinearCurryRightEquiv
.
Implementation notes #
We mostly follow the API (and the proofs) of OperatorNorm.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.
Type variables #
We use the following type variables in this file:
𝕜
: aNontriviallyNormedField
;ι
,ι'
: finite index types with decidable equality;E
,E₁
: families of normed vector spaces over𝕜
indexed byi : ι
;E'
: a family of normed vector spaces over𝕜
indexed byi' : ι'
;Ei
: a family of normed vector spaces over𝕜
indexed byi : Fin (Nat.succ n)
;G
,G'
: normed vector spaces over𝕜
.
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₂‖
.
If a multilinear map in finitely many variables on normed spaces satisfies the inequality
‖f m‖ ≤ C * ∏ i, ‖m i‖
on a shell ε i / ‖c i‖ < ‖m i‖ < ε i
for some positive numbers ε i
and elements c i : 𝕜
, 1 < ‖c i‖
, then it satisfies this inequality for all m
.
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.
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
.
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)
.
If a multilinear map satisfies an inequality ‖f m‖ ≤ C * ∏ i, ‖m i‖
, then it is
continuous.
Constructing a continuous multilinear map from a multilinear map satisfying a boundedness condition.
Equations
- One or more equations did not get rendered due to their size.
Instances For
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 ContinuousMultilinearMap 𝕜 E G
.
The operator norm of a continuous multilinear map is the inf of all its bounds.
Equations
Instances For
Equations
- ContinuousMultilinearMap.hasOpNorm = { norm := ContinuousMultilinearMap.opNorm }
An alias of ContinuousMultilinearMap.hasOpNorm
with non-dependent types to help typeclass
search.
Equations
- ContinuousMultilinearMap.hasOpNorm' = ContinuousMultilinearMap.hasOpNorm
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‖
.
The image of the unit ball under a continuous multilinear map is bounded.
If one controls the norm of every f x
, then one controls the norm of f
.
The operator norm satisfies the triangle inequality.
A continuous linear map is zero iff its norm vanishes.
Continuous multilinear maps themselves form a normed space with respect to the operator norm.
Equations
- One or more equations did not get rendered due to their size.
An alias of ContinuousMultilinearMap.normedAddCommGroup
with non-dependent types to help
typeclass search.
Equations
- ContinuousMultilinearMap.normedAddCommGroup' = ContinuousMultilinearMap.normedAddCommGroup
An alias of ContinuousMultilinearMap.normedSpace
with non-dependent types to help typeclass
search.
Equations
- ContinuousMultilinearMap.normedSpace' = ContinuousMultilinearMap.normedSpace
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‖
, nnnorm
version.
ContinuousMultilinearMap.prod
as a LinearIsometryEquiv
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
ContinuousMultilinearMap.pi
as a LinearIsometryEquiv
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
ContinuousMultilinearMap.restrictScalars
as a LinearIsometry
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
ContinuousMultilinearMap.restrictScalars
as a ContinuousLinearMap
.
Equations
Instances For
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
. 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
.
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'
.
The bound is ‖f m - f m'‖ ≤ ‖f‖ * card ι * ‖m - m'‖ * (max ‖m‖ ‖m'‖) ^ (card ι - 1)
.
Applying a multilinear map to a vector is continuous in both coordinates.
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.
If a continuous multilinear map is constructed from a multilinear map via the constructor
mkContinuous
, then its norm is bounded by the bound given to the constructor if it is
nonnegative.
If a continuous multilinear map is constructed from a multilinear map via the constructor
mkContinuous
, then its norm is bounded by the bound given to the constructor if it is
nonnegative.
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
- One or more equations did not get rendered due to their size.
Instances For
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
- One or more equations did not get rendered due to their size.
Instances For
Continuous multilinear maps on 𝕜^n
with values in G
are in bijection with G
, 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 isometry in
ContinuousMultilinearMap.piFieldEquiv
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
ContinuousLinearMap.compContinuousMultilinearMap
as a bundled continuous bilinear map.
Equations
- One or more equations did not get rendered due to their size.
Instances For
ContinuousLinearMap.compContinuousMultilinearMap
as a bundled
continuous linear equiv.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Flip arguments in f : G →L[𝕜] ContinuousMultilinearMap 𝕜 E G'
to get
ContinuousMultilinearMap 𝕜 E (G →L[𝕜] G')
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given a map f : G →ₗ[𝕜] MultilinearMap 𝕜 E G'
and an estimate
H : ∀ x m, ‖f x m‖ ≤ C * ‖x‖ * ∏ i, ‖m i‖
, construct a continuous linear
map from G
to ContinuousMultilinearMap 𝕜 E G'
.
In order to lift, e.g., a map f : (MultilinearMap 𝕜 E G) →ₗ[𝕜] MultilinearMap 𝕜 E' G'
to a map (ContinuousMultilinearMap 𝕜 E G) →L[𝕜] ContinuousMultilinearMap 𝕜 E' G'
,
one can apply this construction to f.comp ContinuousMultilinearMap.toMultilinearMapLinear
which is a linear map from ContinuousMultilinearMap 𝕜 E G
to MultilinearMap 𝕜 E' G'
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given a map f : MultilinearMap 𝕜 E (MultilinearMap 𝕜 E' G)
and an estimate
H : ∀ m m', ‖f m m'‖ ≤ C * ∏ i, ‖m i‖ * ∏ i, ‖m' i‖
, upgrade all MultilinearMap
s in the type to
ContinuousMultilinearMap
s.
Equations
- One or more equations did not get rendered due to their size.
Instances For
ContinuousMultilinearMap.compContinuousLinearMap
as a bundled continuous linear map.
This implementation fixes f : Π i, E i →L[𝕜] E₁ i
.
TODO: Actually, the map is multilinear in f
but an attempt to formalize this failed because of
issues with class instances.
Equations
- One or more equations did not get rendered due to their size.
Instances For
ContinuousMultilinearMap.compContinuousLinearMap
as a bundled continuous linear equiv,
given f : Π i, E i ≃L[𝕜] E₁ i
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Currying #
We associate to a continuous multilinear map in n+1
variables (i.e., based on Fin n.succ
) two
curried functions, named f.curryLeft
(which is a continuous linear map on E 0
taking values
in continuous multilinear maps in n
variables) and f.curryRight
(which is a continuous
multilinear map in n
variables taking values in continuous linear maps on E (last n)
).
The inverse operations are called uncurryLeft
and uncurryRight
.
We also register continuous linear equiv versions of these correspondences, in
continuousMultilinearCurryLeftEquiv
and continuousMultilinearCurryRightEquiv
.
Left currying #
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
- One or more equations did not get rendered due to their size.
Instances For
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
- One or more equations did not get rendered due to their size.
Instances For
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
continuousMultilinearCurryLeftEquiv 𝕜 E E₂
. The algebraic version (without topology) is given
in multilinearCurryLeftEquiv 𝕜 E E₂
.
The direct and inverse maps are given by f.uncurryLeft
and f.curryLeft
. Use these
unless you need the full framework of linear isometric equivs.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Right currying #
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
- One or more equations did not get rendered due to their size.
Instances For
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
- One or more equations did not get rendered due to their size.
Instances For
The space of continuous multilinear maps on Π(i : Fin (n+1)), Ei i
is canonically isomorphic to
the space of continuous multilinear maps on Π(i : Fin n), Ei <| castSucc i
with values in the
space of continuous linear maps on Ei (last n)
, by separating the last variable. We register this
isomorphism as a continuous linear equiv in continuousMultilinearCurryRightEquiv 𝕜 Ei G
.
The algebraic version (without topology) is given in multilinearCurryRightEquiv 𝕜 Ei G
.
The direct and inverse maps are given by f.uncurryRight
and f.curryRight
. Use these
unless you need the full framework of linear isometric equivs.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The space of continuous multilinear maps on Π(i : Fin (n+1)), G
is canonically isomorphic to
the space of continuous multilinear maps on Π(i : Fin n), G
with values in the space
of continuous linear maps on G
, by separating the last variable. We register this
isomorphism as a continuous linear equiv in continuousMultilinearCurryRightEquiv' 𝕜 n G G'
.
For a version allowing dependent types, see continuousMultilinearCurryRightEquiv
. When there
are no dependent types, use the primed version as it helps Lean a lot for unification.
The direct and inverse maps are given by f.uncurryRight
and f.curryRight
. Use these
unless you need the full framework of linear isometric equivs.
Equations
- continuousMultilinearCurryRightEquiv' 𝕜 n G G' = continuousMultilinearCurryRightEquiv 𝕜 (fun x => G) G'
Instances For
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.
Associating to a continuous multilinear map in 0
variables the unique value it takes.
Equations
Instances For
Associating to an element x
of a vector space E₂
the continuous multilinear map in 0
variables taking the (unique) value x
Equations
- ContinuousMultilinearMap.curry0 𝕜 G x = ContinuousMultilinearMap.constOfIsEmpty 𝕜 (fun i => G) x
Instances For
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 linear isometric equivs.
Equations
- One or more equations did not get rendered due to their size.
Instances For
With 1 variable #
Continuous multilinear maps from G^1
to G'
are isomorphic with continuous linear maps from
G
to G'
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An equivalence of the index set defines a linear isometric equivalence between the spaces of multilinear maps.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A continuous multilinear map with variables indexed by ι ⊕ ι'
defines a continuous
multilinear map with variables indexed by ι
taking values in the space of continuous multilinear
maps with variables indexed by ι'
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A continuous multilinear map with variables indexed by ι
taking values in the space of
continuous multilinear maps with variables indexed by ι'
defines a continuous multilinear map with
variables indexed by ι ⊕ ι'
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Linear isometric equivalence between the space of continuous multilinear maps with variables
indexed by ι ⊕ ι'
and the space of continuous multilinear maps with variables indexed by ι
taking values in the space of continuous multilinear maps with variables indexed by ι'
.
The forward and inverse functions are ContinuousMultilinearMap.currySum
and ContinuousMultilinearMap.uncurrySum
. Use this definition only if you need
some properties of LinearIsometryEquiv
.
Instances For
If s : Finset (Fin n)
is a finite set of cardinality k
and its complement has cardinality
l
, then the space of continuous multilinear maps G [×n]→L[𝕜] G'
of n
variables is isomorphic
to the space of continuous multilinear maps G [×k]→L[𝕜] G [×l]→L[𝕜] G'
of k
variables taking
values in the space of continuous multilinear maps of l
variables.
Equations
- One or more equations did not get rendered due to their size.