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.toLp
: the canonical inclusion fromV
toWithLp p V
.WithLp.ofLp
: the canonical inclusion fromWithLp p V
toV
.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
WithLp.ofLp
and WithLp.toLp
as an equivalence.
Equations
- WithLp.equiv p V = { toFun := WithLp.ofLp, invFun := WithLp.toLp p, left_inv := ⋯, right_inv := ⋯ }
Instances For
A recursor for WithLp p V
, that reduces to the underlying space V
.
This unfortunately cannot be registered with cases_eliminator
, but it can still be used as
cases v using WithLp.rec with | toLp v =>
.
Equations
- WithLp.rec p V toLp v = toLp v.ofLp
Instances For
WithLp p V
inherits various module-adjacent structures from V
.
Equations
- WithLp.instUnique p V = inst✝
Equations
- WithLp.instDecidableEq p V = inst✝
Equations
- WithLp.instAddCommGroup p V = inst✝
Equations
- WithLp.instSMul p K V = inst✝
Equations
- WithLp.instVAdd p K V = inst✝
Equations
- WithLp.instMulAction K V = inst✝
Equations
- WithLp.instAddAction K V = inst✝
Equations
- WithLp.instDistribMulAction p K V = inst✝
Equations
- WithLp.instModule p K V = inst✝
WithLp.equiv
as a linear equivalence.
Equations
- WithLp.linearEquiv p K V = { toFun := WithLp.ofLp, map_add' := ⋯, map_smul' := ⋯, invFun := WithLp.toLp p, left_inv := ⋯, right_inv := ⋯ }