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 ofVto be equipped with an Lpnorm.WithLp.toLp: the canonical inclusion fromVtoWithLp p V.WithLp.ofLp: the canonical inclusion fromWithLp p VtoV.WithLp.linearEquiv p K V: the canonicalK-module isomorphism betweenWithLp p VandV.
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?
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
Equations
- WithLp.instUnique p V = (WithLp.equiv p V).unique
Equations
- WithLp.instDecidableEq p V = (WithLp.equiv p V).decidableEq
Equations
- WithLp.instAddCommGroup p V = (WithLp.equiv p V).addCommGroup
Equations
- WithLp.instSMul p K V = Equiv.smul K (WithLp.equiv p V)
Equations
- WithLp.instVAdd p K V = Equiv.vadd K (WithLp.equiv p V)
Equations
- WithLp.instMulAction p K V = { toSMul := WithLp.instSMul p K V, mul_smul := ⋯, one_smul := ⋯ }
Equations
- WithLp.instAddAction p K V = { toVAdd := WithLp.instVAdd p K V, add_vadd := ⋯, zero_vadd := ⋯ }
Equations
- WithLp.instDistribMulAction p K V = { toMulAction := WithLp.instMulAction p K V, smul_zero := ⋯, smul_add := ⋯ }
Equations
- WithLp.instModule p K V = { toDistribMulAction := WithLp.instDistribMulAction p K V, add_smul := ⋯, zero_smul := ⋯ }
Lift a function to WithLp.
Equations
- WithLp.map p f x = WithLp.toLp p (f x.ofLp)
Instances For
Lift an equivalence to WithLp.
Equations
- WithLp.congr p f = (WithLp.equiv p V).trans (f.trans (WithLp.equiv p V').symm)
Instances For
WithLp.equiv as a group isomorphism.
Equations
- WithLp.addEquiv p V = { toFun := WithLp.ofLp, invFun := WithLp.toLp p, left_inv := ⋯, right_inv := ⋯, map_add' := ⋯ }
Instances For
WithLp.equiv as a linear equivalence.
Equations
- WithLp.linearEquiv p K V = { toFun := (WithLp.addEquiv p V).toFun, map_add' := ⋯, map_smul' := ⋯, invFun := (WithLp.addEquiv p V).invFun, left_inv := ⋯, right_inv := ⋯ }
Instances For
Lift a (semi)linear map to WithLp.
Equations
- LinearMap.withLpMap p f = ↑(WithLp.linearEquiv p K' V').symm ∘ₛₗ f ∘ₛₗ ↑(WithLp.linearEquiv p K V)
Instances For
Lift a (semi)linear equivalence to WithLp.
Equations
- LinearEquiv.withLpCongr p f = (WithLp.linearEquiv p K V).trans (f.trans (WithLp.linearEquiv p K' V').symm)