Concatenating coordinates: ℝᵐ × ℝⁿ and ℝᵐ⁺ⁿ #
EuclideanSpace ℝ (Fin m) × EuclideanSpace ℝ (Fin n) and EuclideanSpace ℝ (Fin (m + n)) are
different types, and a text written in ℝⁿ moves between them without comment. This module is that
move: the concatenation (x, y) ↦ (x₁, …, x_m, y₁, …, y_n), together with the transport along it
of the operations a convexity statement is made of — conj, subgradient, ri, the polar and the
pointed-cone hull.
Everything turns on inner_euclideanProdEquiv: concatenation adds the two inner products, so the
form prodPairing that a product is paired with is the inner product of ℝᵐ⁺ⁿ read through the
concatenation. isAdjointPair_euclideanProdEquiv packages that as an adjointness datum, and each
transport lemma is one application of a general substitution rule to it.
Main definitions #
euclideanProdIsometry m n— the concatenation as a linear isometryWithLp 2 (ℝᵐ × ℝⁿ) ≃ₗᵢ[ℝ] ℝᵐ⁺ⁿ.euclideanProdEquiv m n— the same map out of the plain product,ℝᵐ × ℝⁿ ≃L[ℝ] ℝᵐ⁺ⁿ.euclideanOne—ℝ ≃L[ℝ] ℝ¹, the scalar read as a one-dimensional Euclidean space.euclideanTripleEquiv n—ℝ × ℝⁿ × ℝ ≃L[ℝ] ℝⁿ⁺², what a text means by(λ, x, μ) ∈ ℝⁿ⁺².
Main results #
inner_euclideanProdEquiv,isAdjointPair_euclideanProdEquiv— the pairing and its adjointness datum;euclideanProdEquiv_apply_castAddand friends give the coordinates.conj_comp_euclideanProdEquiv,subgradient_comp_euclideanProdEquiv,relint_image_euclideanProdEquiv— conjugate, subdifferential and relative interior transport.polarCone_image_of_pairing_eq,coe_hull_image— the same for the polar of a set and for the pointed-cone hull, which is what a statement about cones is made of.inner_euclideanTripleEquiv,closure_image_euclideanTripleEquiv— the triple concatenation carries the inner product ofℝⁿ⁺²toλ λ* + ⟨x, y⟩ + μ μ*and commutes with the closure. That is all a consumer needs: whichFin (n + 2)index carriesλis an artefact of the assembly.
Implementation notes #
The isometry is out of WithLp 2 (ℝᵐ × ℝⁿ) because Mathlib's norm on a product is the supremum
norm. Everything else is stated for the plain product, whose linear structure and topology are all
that conj, subgradient and ri need, so that no consumer has to move a Convex or an
IsClosed across a type synonym; euclideanProdEquiv_eq_isometry records that the two agree.
The concatenation #
Concatenation of coordinates, (x, y) ↦ (x₁, …, x_m, y₁, …, y_n), as a linear isometry out
of WithLp 2 (ℝᵐ × ℝⁿ): Mathlib's product norm is the supremum norm, and concatenation is an
isometry only for the Euclidean one.
Equations
- Tdaf.ConvexAnalysis.euclideanProdIsometry m n = (PiLp.sumPiLpEquivProdLpPiLp 2 fun (x : Fin m ⊕ Fin n) => ℝ).symm.trans (LinearIsometryEquiv.piLpCongrLeft 2 ℝ ℝ finSumFinEquiv)
Instances For
Concatenation of coordinates out of the plain product, which carries the supremum norm. No longer an isometry, but still a linear homeomorphism, which is all the transports below need.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The two concatenations are the same map.
Concatenation adds the two inner products. So prodPairing, the form a product is paired
with, is the inner product of ℝᵐ⁺ⁿ read through the concatenation.
The adjointness datum #
The inner product of ℝᵐ⁺ⁿ pulled back along the concatenation is prodPairing.
Concatenation is an adjoint pair for the two pairings. This is the hypothesis
conj_comp_linearEquiv and subgradient_comp_linearEquiv take, and the only mathematical input the
transport has.
Transporting the subdifferential along a linear isomorphism #
conj_comp_linearEquiv is the substitution rule for the conjugate. The subdifferential
obeys the same rule, in the generality of an arbitrary adjoint pair of isomorphisms.
Precomposing with a linear isomorphism moves the subdifferential along the transpose.
The companion of conj_comp_linearEquiv for ∂f: if A and A' are adjoint isomorphisms, then
∂(g ∘ A)(x) = A' (∂g (A x)).
The transport #
The conjugate transports along the concatenation. A function f on ℝᵐ × ℝⁿ read as a
function on ℝᵐ⁺ⁿ has, as its conjugate for the inner product of ℝᵐ⁺ⁿ, the conjugate of f for
prodPairing read the same way.
The subdifferential transports along the concatenation.
The relative interior transports along the concatenation.
The relative interior transports along the concatenation, read the other way.
The closure transports along the concatenation, because it is a homeomorphism.
Transporting polarity and cone hulls #
Both are needed wherever a cone in a product is read in ℝᵏ: the polar consumes the adjointness
datum, the pointed-cone hull needs only linearity.
Polarity transports along an adjoint pair of isomorphisms. If A and A' carry B' back
to B, the polar of A '' S for B' is the image under A' of the polar of S for B.
The pointed-cone hull transports along a linear map: hull (A '' S) = A '' hull S. This is
Submodule.map_span over the semiring of non-negative reals, restated on the underlying sets.
The one-dimensional factor, and ℝ × ℝⁿ × ℝ as ℝⁿ⁺² #
ℝ is not EuclideanSpace ℝ (Fin 1), so a concatenation with a scalar factor at each end needs one
more transport prepended and one appended.
ℝ as a one-dimensional Euclidean space, a ↦ (a).
Equations
- Tdaf.ConvexAnalysis.euclideanOne = (PiLp.equivOfUnique 2 ℝ fun (x : Fin 1) => ℝ).symm
Instances For
The one-dimensional transport multiplies: it is an isometry of ℝ onto ℝ¹.
Concatenation of ℝ × ℝⁿ × ℝ into ℝⁿ⁺²: (λ, x, μ) ↦ (λ, x₁, …, xₙ, μ), a linear
homeomorphism. Its effect on the inner product is inner_euclideanTripleEquiv.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The closure transports along the triple concatenation, because it is a homeomorphism.