Documentation

Tdaf.Analysis.Convex.Duality.Exact

Exact duality: when the closure may be omitted #

Almost every "exact" duality statement has the shape

if ri (dom f₁) ∩ … ∩ ri (dom fₘ) ≠ ∅ then the closure operation can be dropped and the infimum defining the dual operation is attained

(conjugates of sums, of inverse images and of suprema; subdifferential calculus; the duality theorems of convex programming). The relative interior condition is one sufficient condition among several; there are polyhedral variants, a continuity variant valid in any topological vector space, and Attouch–Brezis conditions in Banach spaces.

This file names the conclusion. IsExactSum and IsExactImage are hypothesis-only interfaces, and the sufficient conditions for them are proved in the module that owns each hypothesis (IsExactSum.of_relint in Duality/Relint.lean, .of_polyhedral in Polyhedral/Duality.lean).

Main definitions #

Main results #

Implementation notes #

The equality is a theorem, not a field of the structure. (f + g)* ≤ f* □ g* holds for arbitrary f and g, and an interface stating the equality would be unsatisfiable where it looks most innocent: when dom f ∩ dom g = ∅ we have (f + g)* ≡ -∞, while the conjugate of a proper function is never -∞. What the interface carries is the attainment, exact_le.

IsExactImage.exact_le asks for a point of the fibre A' ⁻¹' {y} only where (g A)* y is finite. Without that guard the interface is unsatisfiable whenever A' is not surjective: at a y outside the range of A' there is no z to produce, while both sides of the identity are legitimately +∞ there.

The family interface is not an iterated binary one: □ does not preserve ≠ ⊥, so the binary bound cannot be iterated, and what iterates is the construction, IsExactFinsetSum.cons. And exact_le demands a splitting of every y, so IsExactFinsetSum B ∅ f forces F to be trivial — the empty family is not exact, just as two functions with disjoint effective domains are not.

References #

[^1]: R. T. Rockafellar, Convex Analysis, Princeton University Press, 1970, §16, §20, §23, §31.

Sums: the unconditional half #

theorem Tdaf.ConvexAnalysis.conj_add_le_coe_add {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {f g : E → EReal} {y₁ y₂ : F} {c₁ c₂ : ℝ} (h₁ : conj B f y₁ ≤ ↑c₁) (h₂ : conj B g y₂ ≤ ↑c₂) :
conj B (f + g) (y₁ + y₂) ≤ ↑(c₁ + c₂)

An affine minorant of f and one of g add to an affine minorant of f + g. Read through conj_le_coe_iff this is the whole unconditional content of the conjugate-of-a-sum identity.

theorem Tdaf.ConvexAnalysis.epi_conj_add_epi_conj_subset {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] (B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ) (f g : E → EReal) :
epi (conj B f) + epi (conj B g) ⊆ epi (conj B (f + g))
theorem Tdaf.ConvexAnalysis.conj_add_le_infConv {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] (B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ) (f g : E → EReal) :
conj B (f + g) ≤ infConv (conj B f) (conj B g)

Unconditionally, the conjugate of a sum is at most the infimal convolution of the conjugates, for arbitrary f and g. The reverse inequality is what IsExactSum asks for, and what every constraint qualification exists to supply.

theorem Tdaf.ConvexAnalysis.conj_add_le_add_conj {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {f g : E → EReal} (hf : (dom f).Nonempty) (hg : (dom g).Nonempty) (y₁ y₂ : F) :
conj B (f + g) (y₁ + y₂) ≤ conj B f y₁ + conj B g y₂

The pointwise form of conj_add_le_infConv, which is not unconditional: if f ≡ +∞ and g takes -∞ somewhere then (f + g)* ≡ +∞ while f* y₁ + g* y₂ = ⊥ + ⊤ = ⊥. Nonempty effective domains rule that out.

Sums: the interface #

structure Tdaf.ConvexAnalysis.IsExactSum {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] (B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ) (f g : E → EReal) :

f and g add exactly with respect to the pairing B: both are proper, and the infimal convolution f* □ g* is attained at every point — equivalently (IsExactSum.conj_add), the conjugate of the sum is the infimal convolution of the conjugates. This is the conclusion the relative-interior and polyhedral qualifications both deliver.

  • proper_left : Proper f

    The left summand is proper.

  • proper_right : Proper g

    The right summand is proper.

  • exact_le (y : F) : ∃ (y₁ : F) (y₂ : F), y₁ + y₂ = y ∧ conj B f y₁ + conj B g y₂ ≤ conj B (f + g) y

    At every y the infimal convolution defining (f + g)* is attained: some splitting y = y₁ + y₂ already achieves the value. The reverse inequality is unconditional (conj_add_le_infConv), so this is the entire content.

Instances For
    theorem Tdaf.ConvexAnalysis.IsExactSum.conj_left_ne_bot {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {f g : E → EReal} (h : IsExactSum B f g) (y : F) :
    conj B f y ≠ ⊥
    theorem Tdaf.ConvexAnalysis.IsExactSum.conj_right_ne_bot {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {f g : E → EReal} (h : IsExactSum B f g) (y : F) :
    conj B g y ≠ ⊥
    theorem Tdaf.ConvexAnalysis.IsExactSum.symm {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {f g : E → EReal} (h : IsExactSum B f g) :
    theorem Tdaf.ConvexAnalysis.IsExactSum.proper_add {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {f g : E → EReal} (h : IsExactSum B f g) :
    Proper (f + g)

    The interface rules out disjoint effective domains: the sum of two exactly-adding functions is itself proper.

    theorem Tdaf.ConvexAnalysis.IsExactSum.infConv_le_conj_add {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {f g : E → EReal} (h : IsExactSum B f g) :
    infConv (conj B f) (conj B g) ≤ conj B (f + g)
    theorem Tdaf.ConvexAnalysis.IsExactSum.conj_add {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {f g : E → EReal} (h : IsExactSum B f g) :
    conj B (f + g) = infConv (conj B f) (conj B g)

    The exact half: the conjugate of a sum is the infimal convolution of the conjugates.

    theorem Tdaf.ConvexAnalysis.IsExactSum.conj_add_apply {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {f g : E → EReal} (h : IsExactSum B f g) (y : F) :
    conj B (f + g) y = ⨅ (y' : F), conj B f (y - y') + conj B g y'
    theorem Tdaf.ConvexAnalysis.IsExactSum.exists_conj_add_eq {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {f g : E → EReal} (h : IsExactSum B f g) (y : F) :
    ∃ (y₁ : F) (y₂ : F), y₁ + y₂ = y ∧ conj B f y₁ + conj B g y₂ = conj B (f + g) y

    The infimal convolution is attained, which is the half the constraint qualifications are for.

    Sums over a Finset: the unconditional half #

    theorem Tdaf.ConvexAnalysis.dom_finsetSum {ι : Type u_1} {E : Type u_2} {s : Finset ι} {f : ι → E → EReal} (hf : ∀ i ∈ s, ∀ (x : E), f i x ≠ ⊥) :
    dom (∑ i ∈ s, f i) = ⋂ i ∈ s, dom (f i)
    theorem Tdaf.ConvexAnalysis.conj_finsetSum_le_coe_sum {ι : Type u_1} {E : Type u_2} {F : Type u_3} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {s : Finset ι} {f : ι → E → EReal} {y : ι → F} {c : ι → ℝ} (h : ∀ i ∈ s, conj B (f i) (y i) ≤ ↑(c i)) :
    conj B (∑ i ∈ s, f i) (∑ i ∈ s, y i) ≤ ↑(∑ i ∈ s, c i)
    theorem Tdaf.ConvexAnalysis.conj_finsetSum_le_sum_conj {ι : Type u_1} {E : Type u_2} {F : Type u_3} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {s : Finset ι} {f : ι → E → EReal} (hf : ∀ i ∈ s, (dom (f i)).Nonempty) (y : ι → F) :
    conj B (∑ i ∈ s, f i) (∑ i ∈ s, y i) ≤ ∑ i ∈ s, conj B (f i) (y i)

    The pointwise m-ary form: (f₁ + ⋯ + fₘ)* (y₁ + ⋯ + yₘ) ≤ f₁* y₁ + ⋯ + fₘ* yₘ. Nonempty effective domains keep the right-hand side from collapsing to ⊥ through a ⊤ + ⊥.

    theorem Tdaf.ConvexAnalysis.conj_finsetSum_le_sum_toInfConvFn {ι : Type u_1} {E : Type u_2} {F : Type u_3} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] (B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ) (s : Finset ι) (f : ι → E → EReal) :
    conj B (∑ i ∈ s, f i) ≤ ofInfConvFn (∑ i ∈ s, toInfConvFn (conj B (f i)))

    The m-ary form, unconditionally: (f₁ + ⋯ + fₘ)* ≤ f₁* □ ⋯ □ fₘ*, the □-product being the AddCommMonoid sum of InfConvFn F.

    No properness may be assumed at the intermediate stages, since □ does not preserve it; the induction runs on infConv_mono and never re-enters the infimum formula.

    Sums over a Finset: the interface #

    structure Tdaf.ConvexAnalysis.IsExactFinsetSum {ι : Type u_1} {E : Type u_2} {F : Type u_3} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] (B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ) (s : Finset ι) (f : ι → E → EReal) :

    A finite family (fᵢ)_{i ∈ s} adds exactly with respect to the pairing B: every member is proper, and the m-fold infimal convolution f₁* □ ⋯ □ fₘ* is attained at every point — equivalently, the conjugate of f₁ + ⋯ + fₘ is f₁* □ ⋯ □ fₘ*.

    IsExactSum is the case of two. Every consequence below is proved once, for the family; IsExactFinsetSum.cons and .of_split build a family interface out of binary ones.

    • proper (i : ι) : i ∈ s → Proper (f i)

      Every member of the family is proper.

    • exact_le (y : F) : ∃ (y' : ι → F), ∑ i ∈ s, y' i = y ∧ ∑ i ∈ s, conj B (f i) (y' i) ≤ conj B (∑ i ∈ s, f i) y

      At every y the m-fold infimal convolution defining (f₁ + ⋯ + fₘ)* is attained: some splitting y = y₁ + ⋯ + yₘ already achieves the value. The reverse inequality is unconditional (conj_finsetSum_le_sum_toInfConvFn), so this is the entire content.

    Instances For
      theorem Tdaf.ConvexAnalysis.IsExactFinsetSum.finsetSum_ne_bot {ι : Type u_1} {E : Type u_2} {F : Type u_3} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {s : Finset ι} {f : ι → E → EReal} (h : IsExactFinsetSum B s f) (x : E) :
      (∑ i ∈ s, f i) x ≠ ⊥
      theorem Tdaf.ConvexAnalysis.IsExactFinsetSum.proper_finsetSum {ι : Type u_1} {E : Type u_2} {F : Type u_3} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {s : Finset ι} {f : ι → E → EReal} (h : IsExactFinsetSum B s f) :
      Proper (∑ i ∈ s, f i)

      The interface rules out effective domains with empty intersection, exactly as in the binary case.

      theorem Tdaf.ConvexAnalysis.IsExactFinsetSum.sum_toInfConvFn_le_conj_finsetSum {ι : Type u_1} {E : Type u_2} {F : Type u_3} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {s : Finset ι} {f : ι → E → EReal} (h : IsExactFinsetSum B s f) :
      ofInfConvFn (∑ i ∈ s, toInfConvFn (conj B (f i))) ≤ conj B (∑ i ∈ s, f i)
      theorem Tdaf.ConvexAnalysis.IsExactFinsetSum.conj_finsetSum {ι : Type u_1} {E : Type u_2} {F : Type u_3} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {s : Finset ι} {f : ι → E → EReal} (h : IsExactFinsetSum B s f) :
      conj B (∑ i ∈ s, f i) = ofInfConvFn (∑ i ∈ s, toInfConvFn (conj B (f i)))

      The m-ary exact half: the conjugate of a finite sum is the infimal convolution of the conjugates.

      theorem Tdaf.ConvexAnalysis.IsExactFinsetSum.exists_conj_finsetSum_eq {ι : Type u_1} {E : Type u_2} {F : Type u_3} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {s : Finset ι} {f : ι → E → EReal} (h : IsExactFinsetSum B s f) (y : F) :
      ∃ (y' : ι → F), ∑ i ∈ s, y' i = y ∧ ∑ i ∈ s, conj B (f i) (y' i) = conj B (∑ i ∈ s, f i) y

      The m-fold infimal convolution is attained, which is the half the constraint qualifications are for: (f₁ + ⋯ + fₘ)* y = inf {f₁* y₁ + ⋯ + fₘ* yₘ | y₁ + ⋯ + yₘ = y}, with the infimum attained.

      theorem Tdaf.ConvexAnalysis.IsExactFinsetSum.singleton {ι : Type u_1} {E : Type u_2} {F : Type u_3} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {f : ι → E → EReal} {i : ι} (hf : Proper (f i)) :

      A one-element family adds exactly as soon as its member is proper: there is nothing to split. This is the base case of every m-ary constraint qualification.

      theorem Tdaf.ConvexAnalysis.IsExactFinsetSum.cons {ι : Type u_1} {E : Type u_2} {F : Type u_3} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {f : ι → E → EReal} {i : ι} {t : Finset ι} (hi : i ∉ t) (hbin : IsExactSum B (f i) (∑ j ∈ t, f j)) (ht : IsExactFinsetSum B t f) :

      Adjoining one summand. A family adds exactly as soon as its tail does and the new summand adds exactly to the sum of the tail: the induction step every m-ary constraint qualification runs on.

      theorem Tdaf.ConvexAnalysis.IsExactFinsetSum.of_split {ι : Type u_1} {E : Type u_2} {F : Type u_3} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {s : Finset ι} {f : ι → E → EReal} {t u : Finset ι} (hdisj : Disjoint t u) (hmem : ∀ (i : ι), i ∈ s ↔ i ∈ t ∨ i ∈ u) (ht : IsExactFinsetSum B t f) (hu : IsExactFinsetSum B u f) (hbin : IsExactSum B (∑ i ∈ t, f i) (∑ i ∈ u, f i)) :

      Gluing two exactly-adding subfamilies. If s splits into disjoint t and u, both of which add exactly, and the two partial sums add exactly to each other, then s adds exactly. This is the form the polyhedral proof uses, with t the polyhedral indices and u the rest; the splitting is spelled pointwise so that no DecidableEq instance is needed.

      Images #

      theorem Tdaf.ConvexAnalysis.conj_compLin_le_mapLin {E : Type u_1} {F : Type u_2} {G : Type u_3} {H : Type u_4} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] [AddCommGroup G] [Module ℝ G] [AddCommGroup H] [Module ℝ H] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {B' : G →ₗ[ℝ] H →ₗ[ℝ] ℝ} {A : E →ₗ[ℝ] G} {A' : H →ₗ[ℝ] F} (hA : IsAdjointPair B B' A A') (g : G → EReal) :
      conj B (compLin g A) ≤ mapLin A' (conj B' g)

      Unconditionally, the conjugate of the inverse image g A is at most the image under the transpose of the conjugate of g. Only the adjointness datum is used.

      structure Tdaf.ConvexAnalysis.IsExactImage {E : Type u_1} {F : Type u_2} {G : Type u_3} {H : Type u_4} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] [AddCommGroup G] [Module ℝ G] [AddCommGroup H] [Module ℝ H] (B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ) (B' : G →ₗ[ℝ] H →ₗ[ℝ] ℝ) (A : E →ₗ[ℝ] G) (A' : H →ₗ[ℝ] F) (hA : IsAdjointPair B B' A A') (g : G → EReal) :

      g pulls back exactly along A: g is proper, and the infimum over the fibres of the transpose A' that defines A' (g*) is attained — equivalently, (g A)* = A' (g*).

      The transpose A' and the adjointness hA are data: between arbitrarily paired spaces a linear map need not have an adjoint at all.

      • proper : Proper g

        The function being pulled back is proper.

      • exact_le (y : F) : conj B (compLin g A) y < ⊤ → ∃ (z : H), A' z = y ∧ conj B' g z ≤ conj B (compLin g A) y

        Wherever (g A)* y is finite, the infimum defining A' (g*) y is attained on the fibre of A' over y. The reverse inequality is unconditional (conj_compLin_le_mapLin).

        The guard (g A)* y < ⊤ is not a weakening of convenience: without it the field would demand a point of the fibre A' ⁻¹' {y} for every y, i.e. it would silently force A' to be surjective.

      Instances For
        theorem Tdaf.ConvexAnalysis.IsExactImage.proper_compLin {E : Type u_1} {F : Type u_2} {G : Type u_3} {H : Type u_4} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] [AddCommGroup G] [Module ℝ G] [AddCommGroup H] [Module ℝ H] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {B' : G →ₗ[ℝ] H →ₗ[ℝ] ℝ} {A : E →ₗ[ℝ] G} {A' : H →ₗ[ℝ] F} {g : G → EReal} {hA : IsAdjointPair B B' A A'} (h : IsExactImage B B' A A' hA g) :
        theorem Tdaf.ConvexAnalysis.IsExactImage.mapLin_le_conj_compLin {E : Type u_1} {F : Type u_2} {G : Type u_3} {H : Type u_4} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] [AddCommGroup G] [Module ℝ G] [AddCommGroup H] [Module ℝ H] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {B' : G →ₗ[ℝ] H →ₗ[ℝ] ℝ} {A : E →ₗ[ℝ] G} {A' : H →ₗ[ℝ] F} {g : G → EReal} {hA : IsAdjointPair B B' A A'} (h : IsExactImage B B' A A' hA g) :
        mapLin A' (conj B' g) ≤ conj B (compLin g A)
        theorem Tdaf.ConvexAnalysis.IsExactImage.conj_compLin {E : Type u_1} {F : Type u_2} {G : Type u_3} {H : Type u_4} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] [AddCommGroup G] [Module ℝ G] [AddCommGroup H] [Module ℝ H] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {B' : G →ₗ[ℝ] H →ₗ[ℝ] ℝ} {A : E →ₗ[ℝ] G} {A' : H →ₗ[ℝ] F} {g : G → EReal} {hA : IsAdjointPair B B' A A'} (h : IsExactImage B B' A A' hA g) :
        conj B (compLin g A) = mapLin A' (conj B' g)

        The exact half: the conjugate of an inverse image is the image of the conjugate under the transpose.

        theorem Tdaf.ConvexAnalysis.IsExactImage.exists_conj_compLin_eq {E : Type u_1} {F : Type u_2} {G : Type u_3} {H : Type u_4} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] [AddCommGroup G] [Module ℝ G] [AddCommGroup H] [Module ℝ H] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {B' : G →ₗ[ℝ] H →ₗ[ℝ] ℝ} {A : E →ₗ[ℝ] G} {A' : H →ₗ[ℝ] F} {g : G → EReal} {hA : IsAdjointPair B B' A A'} (h : IsExactImage B B' A A' hA g) {y : F} (hy : conj B (compLin g A) y < ⊤) :
        ∃ (z : H), A' z = y ∧ conj B' g z = conj B (compLin g A) y

        The infimum over the fibre is attained, which is the half the constraint qualifications are for.