The WithLp
type synonym #
WithLp p V
is a copy of V
with exactly the same vector space structure, but with the Lp norm
instead of any existing norm on V
; recall that by default ι → R
and R × R
are equipped with
a norm defined as the supremum of the norms of their components.
This file defines the vector space structure for all types V
; the norm structure is built for
different specializations of V
in downstream files.
Note that this should not be used for infinite products, as in these cases the "right" Lp spaces is
not the same as the direct product of the spaces. See the docstring in Mathlib/Analysis/PiLp
for
more details.
Main definitions #
WithLp p V
: a copy ofV
to be equipped with an Lp
norm.WithLp.equiv p V
: the canonical equivalence betweenWithLp p V
andV
.WithLp.linearEquiv p K V
: the canonicalK
-module isomorphism betweenWithLp p V
andV
.
Implementation notes #
The pattern here is the same one as is used by Lex
for order structures; it avoids having a
separate synonym for each type (ProdLp
, PiLp
, etc), and allows all the structure-copying code
to be shared.
TODO: is it safe to copy across the topology and uniform space structure too for all reasonable
choices of V
?
A type synonym for the given V
, associated with the Lp
norm. Note that by default this just
forgets the norm structure on V
; it is up to downstream users to implement the Lp
norm (for
instance, on Prod
and finite Pi
types).
Instances For
The canonical equivalence between WithLp p V
and V
. This should always be used to convert
back and forth between the representations.
Equations
- WithLp.equiv p V = Equiv.refl (WithLp p V)
Instances For
Equations
- WithLp.instUnique p V = inst
WithLp p V
inherits various module-adjacent structures from V
.
Equations
- WithLp.instAddCommGroup p V = inst
Equations
- WithLp.instModule p K V = inst
WithLp.equiv
preserves the module structure.
WithLp.equiv
as a linear equivalence.
Equations
- WithLp.linearEquiv p K V = { toFun := ⇑(WithLp.equiv p V), map_add' := ⋯, map_smul' := ⋯, invFun := ⇑(WithLp.equiv p V).symm, left_inv := ⋯, right_inv := ⋯ }