<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/default.xsl"?>
<fr:tree xmlns:fr="http://www.forester-notes.org" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:xml="http://www.w3.org/XML/1998/namespace" root="false" base-url="/">
  <fr:frontmatter>
    <fr:authors>
      <fr:author>
        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
      </fr:author>
    </fr:authors>
    <fr:date>
      <fr:year>2024</fr:year>
      <fr:month>4</fr:month>
      <fr:day>25</fr:day>
    </fr:date>
    <fr:uri>https://erischel.com/lcc-001R/</fr:uri>
    <fr:display-uri>lcc-001R</fr:display-uri>
    <fr:route>/lcc-001R/</fr:route>
    <fr:title text="\Conv  and \Conc "><fr:tex display="inline"><![CDATA[\Conv ]]></fr:tex> and <fr:tex display="inline"><![CDATA[\Conc ]]></fr:tex></fr:title>
    <fr:taxon>Definition</fr:taxon>
  </fr:frontmatter>
  <fr:mainmatter>
    <html:p>
    Let <fr:tex display="inline"><![CDATA[\mathsf {Conv}]]></fr:tex> be the category where objects are pairs <fr:tex display="inline"><![CDATA[(X,f: X \to  \mathbb {R})]]></fr:tex> consisting of a convex space and a convex function, and where morphisms <fr:tex display="inline"><![CDATA[\phi : (X,f) \to  (Y,g)]]></fr:tex> are affine maps so that <fr:tex display="inline"><![CDATA[g(\phi (x)) \leq  f(x)]]></fr:tex>.
</html:p>
    <html:p>
    Let <fr:tex display="inline"><![CDATA[\mathsf {Conc}]]></fr:tex> be the category where objects are pairs <fr:tex display="inline"><![CDATA[(X,f: X \to  \mathbb {R})]]></fr:tex> consisting of a convex space and a concave function, and where morphisms <fr:tex display="inline"><![CDATA[\phi : (X,f) \to  (Y,g)]]></fr:tex> are affine maps so that <fr:tex display="inline"><![CDATA[g(\phi (x)) \geq  f(x)]]></fr:tex>.
</html:p>
  </fr:mainmatter>
  <fr:backmatter>
    <fr:tree show-metadata="false" hidden-when-empty="true">
      <fr:frontmatter>
        <fr:authors />
        <fr:title text="References">References</fr:title>
      </fr:frontmatter>
      <fr:mainmatter />
    </fr:tree>
    <fr:tree show-metadata="false" hidden-when-empty="true">
      <fr:frontmatter>
        <fr:authors />
        <fr:title text="Context">Context</fr:title>
      </fr:frontmatter>
      <fr:mainmatter>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors>
              <fr:author>
                <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
              </fr:author>
            </fr:authors>
            <fr:date>
              <fr:year>2024</fr:year>
              <fr:month>4</fr:month>
              <fr:day>30</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/lcc-001Z/</fr:uri>
            <fr:display-uri>lcc-001Z</fr:display-uri>
            <fr:route>/lcc-001Z/</fr:route>
            <fr:title text="Convex Duality made Difficult">Convex Duality made Difficult</fr:title>
          </fr:frontmatter>
          <fr:mainmatter>
            <fr:tree show-metadata="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>
                    <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                  </fr:author>
                </fr:authors>
                <fr:date>
                  <fr:year>2024</fr:year>
                  <fr:month>4</fr:month>
                  <fr:day>30</fr:day>
                </fr:date>
                <fr:title text="Introduction">Introduction</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
    The study of convex functions - in particular, of their optimization (really <html:em>minimization</html:em>) is one of the most important fields of applied mathematics. Convexity seems to be one of those incredibly well-chosen hypotheses which is just specific enough to admit a wealth of theorems, just general enough to produce a nontrivial theory (and a large amount of important examples).
  </html:p>
                <html:p>
    Convex optimization, possibly because it has an "analytical" rather than "algebraic" feel, has not been very thoroughly studied by applied category theorists. The one notable exception is <fr:link href="/hanks-etal-convex-2024/" title="A Compositional Framework for First-Order Optimization" uri="https://erischel.com/hanks-etal-convex-2024/" display-uri="hanks-etal-convex-2024" type="local">Reference <fr:contextual-number uri="https://erischel.com/hanks-etal-convex-2024/" display-uri="hanks-etal-convex-2024" /></fr:link>, which studies the decomposition of optimization problems by categorical means. This paper takes a different approach, attempting to define a category with optimization problems as the objects, and to derive theorems about optimization by categorical means.
  </html:p>
              </fr:mainmatter>
            </fr:tree>
            <fr:tree show-metadata="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>
                    <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                  </fr:author>
                </fr:authors>
                <fr:date>
                  <fr:year>2024</fr:year>
                  <fr:month>4</fr:month>
                  <fr:day>30</fr:day>
                </fr:date>
                <fr:title text="Convex optimization">Convex optimization</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>22</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-001G/</fr:uri>
                    <fr:display-uri>lcc-001G</fr:display-uri>
                    <fr:route>/lcc-001G/</fr:route>
                    <fr:title text="Standard form convex optimization problem">Standard form convex optimization problem</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
    A <html:em>convex optimization problem in standard form</html:em> consists of
    <html:ol><html:li>A convex function <fr:tex display="inline"><![CDATA[f_0: \mathbb {R}^k \to  \mathbb {R}]]></fr:tex></html:li>
        <html:li>A list of convex functions <fr:tex display="inline"><![CDATA[f_1, \dots  f_n: \mathbb {R}^k \to  \mathbb {R}]]></fr:tex></html:li>
        <html:li>A list of <html:em>affine</html:em> functions <fr:tex display="inline"><![CDATA[g_1,\dots  g_m: \mathbb {R}^k \to  \mathbb {R}]]></fr:tex></html:li></html:ol>
    The problem then is to find <fr:tex display="inline"><![CDATA[x \in  \mathbb {R}^k]]></fr:tex> which minimizes <fr:tex display="inline"><![CDATA[f_0(x)]]></fr:tex> subject to the constraints <fr:tex display="inline"><![CDATA[f_i(x) \leq  0, g_i(x)=0]]></fr:tex></html:p>
                  </fr:mainmatter>
                </fr:tree>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>17</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-002K/</fr:uri>
                    <fr:display-uri>lcc-002K</fr:display-uri>
                    <fr:route>/lcc-002K/</fr:route>
                    <fr:title text="Lagrangian of an optimization problem">Lagrangian of an optimization problem</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[f_0: \mathbb {R}^k \to  \mathbb {R}, f_1, \dots  f_n, g_1 , \dots  g_m]]></fr:tex> be a standard-form convex optimization problem, as in <fr:link href="/lcc-001G/" title="Standard form convex optimization problem" uri="https://erischel.com/lcc-001G/" display-uri="lcc-001G" type="local">Definition <fr:contextual-number uri="https://erischel.com/lcc-001G/" display-uri="lcc-001G" /></fr:link>. Then the <html:em>Lagrangian</html:em> of this problem is the function <fr:tex display="inline"><![CDATA[L: \mathbb {R}^k \times  \mathbb {R}^n_+ \times  \mathbb {R}^m \to  \mathbb {R}]]></fr:tex> defined by
  
  <fr:tex display="block"><![CDATA[L(x;\lambda ,\nu ) = f_0(x) + \sum _i \lambda _i f_i(x) + \sum _i \nu _i g_i(x).]]></fr:tex>
  
  Recall that <fr:tex display="inline"><![CDATA[\mathbb {R}_+]]></fr:tex> denotes the <html:em>nonnegative</html:em> reals.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
    Observe that <fr:tex display="inline"><![CDATA[\sup _{\lambda ,\nu } L(x,\lambda ,\nu )]]></fr:tex> is <fr:tex display="inline"><![CDATA[f_0(x)]]></fr:tex> if <fr:tex display="inline"><![CDATA[x]]></fr:tex> satisfies the constraints of the problem, and <fr:tex display="inline"><![CDATA[\infty ]]></fr:tex> otherwise. Hence we can think of this minimization problem as playing a zero-sum game: we choose <fr:tex display="inline"><![CDATA[x]]></fr:tex>, our adversary chooses <fr:tex display="inline"><![CDATA[\lambda ,\nu ]]></fr:tex>, and our loss function is <fr:tex display="inline"><![CDATA[L]]></fr:tex>.
  </html:p>
                <html:p>
    It is natural to ask about the existence of Nash equilibria in this game - observe that the existence of an equilibrium <fr:tex display="inline"><![CDATA[(x^*,\lambda ^*,\nu ^*)]]></fr:tex> means that <fr:tex display="inline"><![CDATA[\inf _x \sup _{\lambda ,\nu } L(x,\lambda ,\nu ) = \sup _{\lambda ,\nu } \inf _x L(x,\lambda ,\nu ) = L(x^*,\lambda ^*,\nu ^*)]]></fr:tex>. This is of great utility in solving the original problem.
  </html:p>
                <html:p>
    The <html:em>dual problem</html:em> is the problem of <html:em>maximizing</html:em> the function <fr:tex display="inline"><![CDATA[\inf _x L(x,\lambda ,\nu )]]></fr:tex>. This is always a concave problem.
  </html:p>
                <html:p>
    In the world of convex optimization, two problems whose constraints carve out the same subset of <fr:tex display="inline"><![CDATA[\mathbb {R}^k]]></fr:tex> (and where the function to optimize is the same) would be called <html:em>equivalent</html:em>. But they can clearly not be regarded as <html:em>isomorphic</html:em>, because the choice of constraint functions makes an important difference to the theory of optimization (for example, it can lead to different dual problems). Here we take the viewpoint that the <html:em>Lagrangian</html:em> is really the fundamental object in convex optimization - by passing to a suitable category of Lagrangians, we can make the dual problem into an actual self-duality on this category.
  </html:p>
              </fr:mainmatter>
            </fr:tree>
            <fr:tree show-metadata="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>
                    <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                  </fr:author>
                </fr:authors>
                <fr:date>
                  <fr:year>2024</fr:year>
                  <fr:month>4</fr:month>
                  <fr:day>30</fr:day>
                </fr:date>
                <fr:title text="Convex spaces">Convex spaces</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>30</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-0020/</fr:uri>
                    <fr:display-uri>lcc-0020</fr:display-uri>
                    <fr:route>/lcc-0020/</fr:route>
                    <fr:title text="Convex Space">Convex Space</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  The category of <html:em>convex spaces</html:em> is the category of algebras for the monad <fr:tex display="inline"><![CDATA[\Delta : \mathsf {Set} \to  \mathsf {Set}]]></fr:tex> of discrete finite-support distributions. The morphisms are called <html:em><fr:tex display="inline"><![CDATA[\Delta ]]></fr:tex>-homomorphisms</html:em> or <html:em>homomorphisms of convex spaces</html:em>.
</html:p>
                    <html:p>
  So as not to multiply notation unnecessarily, we simply denote the category of convex spaces by <fr:tex display="inline"><![CDATA[\mathsf {Set}^\Delta ]]></fr:tex>, using the usual notation for the Eilenberg-Moore category.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>20</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-002N/</fr:uri>
                    <fr:display-uri>lcc-002N</fr:display-uri>
                    <fr:route>/lcc-002N/</fr:route>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  A function between vector spaces is called <html:em>affine</html:em> if it preserves those linear combinations <fr:tex display="inline"><![CDATA[\sum _i \lambda _i x_i]]></fr:tex> where <fr:tex display="inline"><![CDATA[\sum _i \lambda _i = 1]]></fr:tex></html:p>
                  </fr:mainmatter>
                </fr:tree>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>20</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-002M/</fr:uri>
                    <fr:display-uri>lcc-002M</fr:display-uri>
                    <fr:route>/lcc-002M/</fr:route>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[X]]></fr:tex> be a convex space. A <html:em>convex function on <fr:tex display="inline"><![CDATA[X]]></fr:tex></html:em> is a function <fr:tex display="inline"><![CDATA[f: X \to  \mathbb {R}]]></fr:tex> so that
  <fr:tex display="block"><![CDATA[f(\theta  x + (1-\theta )x') \leq  \theta  f(x) + (1-\theta )f(x')]]></fr:tex></html:p>
                    <html:p>
  A <html:em>concave function</html:em> is a function so that <fr:tex display="inline"><![CDATA[-f]]></fr:tex> is convex (in other words, <fr:tex display="inline"><![CDATA[f]]></fr:tex> satisfies the opposite inequality).
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
    The term "convex function" in this sense clashes with the usual practice of naming structure-preserving functions after the structure they preserve (since convex functions do not preserve the convex structure). Unfortunately this usage is far too established to alter. (Convex functions are called convex because they are exactly those functions where the area above their graph is a convex subset of <fr:tex display="inline"><![CDATA[X \times  \mathbb {R}]]></fr:tex>. Although there appears to be no particular reason why the terms convex and concave should not be interchanged, other than convention).
  </html:p>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>19</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-002R/</fr:uri>
                    <fr:display-uri>lcc-002R</fr:display-uri>
                    <fr:route>/lcc-002R/</fr:route>
                    <fr:title text="Jensen's Inequality">Jensen's Inequality</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  The inequality
  <fr:tex display="block"><![CDATA[f(\theta  x + (1-\theta )x') \leq  \theta  f(x) + (1-\theta )f(x'),]]></fr:tex>
  which holds whenever <fr:tex display="inline"><![CDATA[f]]></fr:tex> is convex, is called <html:em>Jensen's inequality</html:em>.
  Sometimes this name is used for a stronger version of this inequality,
  like the claim that <fr:tex display="inline"><![CDATA[f(\mathbb {E} X) \leq  \mathbb {E} f(X)]]></fr:tex> if <fr:tex display="inline"><![CDATA[X]]></fr:tex> is a random variable valued in the domain of <fr:tex display="inline"><![CDATA[f]]></fr:tex>. These generally follow just from convexity of <fr:tex display="inline"><![CDATA[f]]></fr:tex>.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>19</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-002Q/</fr:uri>
                    <fr:display-uri>lcc-002Q</fr:display-uri>
                    <fr:route>/lcc-002Q/</fr:route>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
    There is an natural way to extend the convex structure of <fr:tex display="inline"><![CDATA[\mathbb {R}]]></fr:tex> to both <fr:tex display="inline"><![CDATA[\lsqb  -\infty , \infty  \rpar ]]></fr:tex> and <fr:tex display="inline"><![CDATA[\lpar  -\infty , \infty  \rsqb ]]></fr:tex>, by the convention that any nontrivial convex combination involving an infinity is equal to that infinity. This also gives the adjectives convex and concave a meaning when applied to functions <fr:tex display="inline"><![CDATA[X \to  \lpar  -\infty , \infty  \rsqb ]]></fr:tex>. For example, a function <fr:tex display="inline"><![CDATA[f: X \to  \lpar  -\infty , \infty  \rsqb ]]></fr:tex> is convex if and only if the subset where it's finite is a convex subset of <fr:tex display="inline"><![CDATA[X]]></fr:tex>, and it's a convex function in the ordinary sense on this set.
  </html:p>
                    <html:p>
    This doesn't work for the extended real line <fr:tex display="inline"><![CDATA[\eRR  = \lsqb  -\infty , \infty  \rsqb ]]></fr:tex>, since there is no sensible interpretation of <fr:tex display="inline"><![CDATA[\theta  \cdot  -\infty  + (1-\theta )\infty ]]></fr:tex>. We will inescapably meet some functions which take value in the full extended reals, but where we still wish to speak of their convexity (or concavity).
  </html:p>
                    <html:p>
    Hence we adopt the convention that a function <fr:tex display="inline"><![CDATA[f: X \to  \eRR ]]></fr:tex> is convex if it obeys Jensen's inequality whenever it makes sense, i.e whenever we do not have <fr:tex display="inline"><![CDATA[f(x) = -\infty , f(x') = \infty ]]></fr:tex> or vice versa. 
  </html:p>
                  </fr:mainmatter>
                </fr:tree>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>20</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-002O/</fr:uri>
                    <fr:display-uri>lcc-002O</fr:display-uri>
                    <fr:route>/lcc-002O/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  A function between vector spaces is <fr:link href="/lcc-002N/" title="https://erischel.com/lcc-002N/" uri="https://erischel.com/lcc-002N/" display-uri="lcc-002N" type="local">affine</fr:link> if and only if it is a <fr:link href="/lcc-0020/" title="Convex Space" uri="https://erischel.com/lcc-0020/" display-uri="lcc-0020" type="local"><fr:tex display="inline"><![CDATA[\Delta ]]></fr:tex>-homomorphism</fr:link>.
</html:p>
  <fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>5</fr:month><fr:day>20</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    It's clear that an affine function is a <fr:tex display="inline"><![CDATA[\Delta ]]></fr:tex>-homomorphism.
    Suppose <fr:tex display="inline"><![CDATA[f: X \to  Y]]></fr:tex> is a <fr:tex display="inline"><![CDATA[\Delta ]]></fr:tex>-homomorphism. Note it suffices to prove <fr:tex display="inline"><![CDATA[f]]></fr:tex> preserves binary affine combinations <fr:tex display="inline"><![CDATA[\theta  x + (1-\theta )x']]></fr:tex> (for <fr:tex display="inline"><![CDATA[\theta ]]></fr:tex> not necessarily in <fr:tex display="inline"><![CDATA[[0,1]]]></fr:tex>).
    If <fr:tex display="inline"><![CDATA[\theta  \in  [0,1]]]></fr:tex>, we are done by assumption. Otherwise suppose <fr:tex display="inline"><![CDATA[\theta  > 1]]></fr:tex> (if not, replace it by <fr:tex display="inline"><![CDATA[1-\theta ]]></fr:tex> by symmetry). Then
    <fr:tex display="block"><![CDATA[x = (1/\theta )(\theta  x + (1-\theta )x') + (1 - 1/\theta )x']]></fr:tex>
    This is a convex combination, so
    <fr:tex display="block"><![CDATA[f(x) = (1/\theta )f(\theta  x + (1-\theta )x') + (1-1/\theta )f(x')]]></fr:tex>
    Rearranging, we find
    <fr:tex display="block"><![CDATA[\theta  f(x) + (1-\theta )f(x') = f(\theta  x + (1-\theta ')x)]]></fr:tex>
    as desired.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
                <html:p>
    Justified by <fr:link href="/lcc-002O/" title="https://erischel.com/lcc-002O/" uri="https://erischel.com/lcc-002O/" display-uri="lcc-002O" type="local">Proposition <fr:contextual-number uri="https://erischel.com/lcc-002O/" display-uri="lcc-002O" /></fr:link>, we will appropriate the term <html:em>affine</html:em> to refer to <fr:tex display="inline"><![CDATA[\Delta ]]></fr:tex>-homomorphisms, even between convex spaces which are not vector spaces. There is generally no chance of confusion, but it's worth emphasizing that the use of this term does not entail that the domain is closed under arbitrary affine combinations, for example.
  </html:p>
                <html:p>Convex spaces admit both a Cartesian product (given by the product of the underlying sets equipped with pointwise operations) and a tensor product, which (co)represents "bihomomorphisms". This is analogous to the situation for vector spaces. Unlike vector spaces, however, since all constant maps are homomorphisms, the projections <fr:tex display="inline"><![CDATA[X \times  Y \to  X,Y]]></fr:tex> are bihomomorphisms, which induces a map <fr:tex display="inline"><![CDATA[X \otimes  Y \to  X \times  Y]]></fr:tex>. Thus homomorphisms <fr:tex display="inline"><![CDATA[X \times  Y \to  Z]]></fr:tex> are a subset of bihomomorphisms.</html:p>
                <html:p>Since we are generally dealing with convex or concave functions, which can't freely be extended to the tensor product, we will work with the Cartesian product in this paper. But it's very possible that most of our constructions would work also with the tensor product, and maybe there is some situation where the extra generality is necessary.</html:p>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>21</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-002S/</fr:uri>
                    <fr:display-uri>lcc-002S</fr:display-uri>
                    <fr:route>/lcc-002S/</fr:route>
                    <fr:title text="Simplex">Simplex</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  The free convex space on a finite set <fr:tex display="inline"><![CDATA[\{0, \dots  n\}]]></fr:tex> of <fr:tex display="inline"><![CDATA[n+1]]></fr:tex> elements is called the <html:em><fr:tex display="inline"><![CDATA[n]]></fr:tex>-simplex</html:em> and denoted <fr:tex display="inline"><![CDATA[\Delta ^n]]></fr:tex> (the reason for the apparent mismatch of numbering is that the <fr:tex display="inline"><![CDATA[n]]></fr:tex>-simplex is <fr:tex display="inline"><![CDATA[n]]></fr:tex>-dimensional). Note that an element of <fr:tex display="inline"><![CDATA[\Delta ^n]]></fr:tex> is a tuple <fr:tex display="inline"><![CDATA[(s_i)_{i=0,\dots , n}]]></fr:tex> so that <fr:tex display="inline"><![CDATA[\sum _i s_i = 1]]></fr:tex> and <fr:tex display="inline"><![CDATA[s_i \geq  0]]></fr:tex>.
  In particular, <fr:tex display="inline"><![CDATA[\Delta ^1 \cong  [0,1]]]></fr:tex>.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>21</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-002U/</fr:uri>
                    <fr:display-uri>lcc-002U</fr:display-uri>
                    <fr:route>/lcc-002U/</fr:route>
                    <fr:title text="Topological convex space">Topological convex space</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  A <html:em>topological convex space</html:em> is a convex space <fr:tex display="inline"><![CDATA[X]]></fr:tex> equipped with a topology so that any affine map <fr:tex display="inline"><![CDATA[\Delta ^n \to  X]]></fr:tex> is continuous (when <fr:tex display="inline"><![CDATA[\Delta ^n \subseteq  \mathbb {R}^{n+1}]]></fr:tex> is given the subspace topology).
</html:p>
                  </fr:mainmatter>
                </fr:tree>
              </fr:mainmatter>
            </fr:tree>
            <fr:tree show-metadata="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>
                    <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                  </fr:author>
                </fr:authors>
                <fr:date>
                  <fr:year>2024</fr:year>
                  <fr:month>4</fr:month>
                  <fr:day>30</fr:day>
                </fr:date>
                <fr:title text="The Category of Minmax problems">The Category of Minmax problems</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>22</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-001C/</fr:uri>
                    <fr:display-uri>lcc-001C</fr:display-uri>
                    <fr:route>/lcc-001C/</fr:route>
                    <fr:title text="Minmax problem">Minmax problem</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
    A <html:em>minmax problem</html:em> is a triple <fr:tex display="inline"><![CDATA[(X,Y,L),]]></fr:tex> where <fr:tex display="inline"><![CDATA[X,Y]]></fr:tex> are convex spaces (that is, algebras for the discrete distribution monad---more topological assumptions may be necessary here), and <fr:tex display="inline"><![CDATA[L: X \times  Y \to  \mathbb {R}]]></fr:tex> is a function which is
    <html:ol><html:li>Pointwise <html:em>convex</html:em> in <fr:tex display="inline"><![CDATA[X]]></fr:tex>---for each <fr:tex display="inline"><![CDATA[y]]></fr:tex>, given <fr:tex display="inline"><![CDATA[x_1,x_2 \in  X, \theta  \in  [0,1]]]></fr:tex>, <fr:tex display="block"><![CDATA[L(\theta  x_1 + (1-\theta )x-2,y) \leq  \theta  L(x_1,y) + (1-\theta )L(x_2,y)]]></fr:tex></html:li>
        <html:li>Pointwise <html:em>concave</html:em> in <fr:tex display="inline"><![CDATA[Y]]></fr:tex>---for each <fr:tex display="inline"><![CDATA[x]]></fr:tex>, given <fr:tex display="inline"><![CDATA[y_1,y_2 \in  Y, \theta  \in  [0,1]]]></fr:tex>, <fr:tex display="block"><![CDATA[L(x,\theta  y_1 + (1-\theta )y_2) \geq  \theta  L(x,y_1) + (1-\theta )L(x,y_2)]]></fr:tex></html:li></html:ol></html:p>
                    <html:p>
    A <html:em>morphism of minmax problems</html:em> <fr:tex display="inline"><![CDATA[(X,Y,L) \to  (X',Y',L')]]></fr:tex> is a pair of functions <fr:tex display="inline"><![CDATA[\phi ^+: X \to  X']]></fr:tex> and <fr:tex display="inline"><![CDATA[\phi ^-: Y' \to  Y]]></fr:tex> so that <fr:tex display="inline"><![CDATA[L(x, \phi ^-(y')) \geq  L'(\phi (x),y')]]></fr:tex></html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>We will see that various constructions on this category, which are natural and well-behaved from the point of view of category theory, capture relevant constructions from the theory of convex optimization.</html:p>
                <html:ol><html:li><fr:tex display="inline"><![CDATA[\mathsf {Minmax}]]></fr:tex> is bifibred over <fr:tex display="inline"><![CDATA[\mathsf {Set}^\Delta  \times  \mathsf {Set}^{\Delta ,\mathrm {op}}]]></fr:tex>, and the Cartesian and coCartesian lifts capture the operations of minimizing over the primal variables or maximizing over the dual variables</html:li>
    <html:li>The property of <html:em>strong duality</html:em> amounts to the claim that a particular diagram has the local Beck-Chevalley property</html:li>
    <html:li>Relatedly, the existence of a Nash equilibrium for the game corresponding to <fr:tex display="inline"><![CDATA[L]]></fr:tex> amounts to the existence of a certain morphism. The fact that this implies strong duality can be derived by purely categorical means.</html:li></html:ol>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>10</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-002H/</fr:uri>
                    <fr:display-uri>lcc-002H</fr:display-uri>
                    <fr:route>/lcc-002H/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[(X,A,L)]]></fr:tex> be a minmax problem.
  Suppose <fr:tex display="inline"><![CDATA[A]]></fr:tex> is a convex subspace of a vector space <fr:tex display="inline"><![CDATA[V]]></fr:tex>, and <fr:tex display="inline"><![CDATA[L(x,-): A \to  \mathbb {R}]]></fr:tex> is affine for each <fr:tex display="inline"><![CDATA[x]]></fr:tex>.
  Then there exists functions <fr:tex display="inline"><![CDATA[f: X \to  \mathbb {R}, g: X \to  V^*]]></fr:tex>, so that <fr:tex display="inline"><![CDATA[L(x,a) = f(x)+\langle  g(x),a \rangle ]]></fr:tex>.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
    Observe that minmax problems affine in <fr:tex display="inline"><![CDATA[A]]></fr:tex> are thus very similar to standard-form convex optimization problems, the main difference being that the set of allowed points in <fr:tex display="inline"><![CDATA[A]]></fr:tex> may be constrained in some other way than by requiring certain coordinates to be nonnegative.
  </html:p>
                <html:p>
    On the other hand, if <fr:tex display="inline"><![CDATA[A]]></fr:tex> is thus constrained, the proposition doesn't actually imply that <fr:tex display="inline"><![CDATA[f,g]]></fr:tex> are convex! The easiest way to see this is by considering <fr:tex display="inline"><![CDATA[A = \{a\}]]></fr:tex> for some nonzero <fr:tex display="inline"><![CDATA[a]]></fr:tex>. Then we have <fr:tex display="inline"><![CDATA[L(x,a) = f(x) + ag(x),]]></fr:tex>, and clearly we can choose this decomposition in such a way that these functions are not convex.
  </html:p>
                <html:p>
    However, if <fr:tex display="inline"><![CDATA[A \subset  \mathbb {R}^m]]></fr:tex> contains the positive cone <fr:tex display="inline"><![CDATA[\mathbb {R}^m_+,]]></fr:tex> for example, we do have both <fr:tex display="inline"><![CDATA[f]]></fr:tex> and all the coordinates of <fr:tex display="inline"><![CDATA[g]]></fr:tex> convex.
  </html:p>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>22</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-001D/</fr:uri>
                    <fr:display-uri>lcc-001D</fr:display-uri>
                    <fr:route>/lcc-001D/</fr:route>
                    <fr:title text="Primal and dual optimization problems">Primal and dual optimization problems</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
    Let <fr:tex display="inline"><![CDATA[L: X \times  Y \to  \mathbb {R}]]></fr:tex> be a <fr:link href="/lcc-001C/" title="Minmax problem" uri="https://erischel.com/lcc-001C/" display-uri="lcc-001C" type="local">minimax problem</fr:link>.
    The <html:em>primal optimization problem</html:em> associated to <fr:tex display="inline"><![CDATA[L]]></fr:tex> is the function
    <fr:tex display="block"><![CDATA[L^+(-) = \sup _y L(-,y): X \to  \mathbb {R}]]></fr:tex>
    (the problem being to <html:em>minimize</html:em> this function).
</html:p>
                    <html:p>
    The dual optimization problem is the function <fr:tex display="inline"><![CDATA[L^-(-) = \inf _x L(x,-): Y \to  \mathbb {R}]]></fr:tex></html:p>
                  </fr:mainmatter>
                </fr:tree>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>23</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-001J/</fr:uri>
                    <fr:display-uri>lcc-001J</fr:display-uri>
                    <fr:route>/lcc-001J/</fr:route>
                    <fr:title text="Dual minmax problem">Dual minmax problem</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>Let <fr:tex display="inline"><![CDATA[L = (X,Y,L)]]></fr:tex> be a <fr:link href="/lcc-001C/" title="Minmax problem" uri="https://erischel.com/lcc-001C/" display-uri="lcc-001C" type="local">minmax problem</fr:link>. Then let <fr:tex display="inline"><![CDATA[L^*]]></fr:tex> denote the <html:em>dual</html:em> problem given by <fr:tex display="inline"><![CDATA[(Y,X,L^*(y,x) = -L(x,y))]]></fr:tex>.</html:p>
                    <html:p>If <fr:tex display="inline"><![CDATA[\phi  = (\phi ^+,\phi ^-) : L \to  L']]></fr:tex> is a morphism of minmax problems, then <fr:tex display="inline"><![CDATA[\phi ^* = (\phi ^-,\phi ^+): L'^* \to  L^*]]></fr:tex> is again a morphism in the other direction. This assignment makes <fr:tex display="inline"><![CDATA[(-)^*]]></fr:tex> into a self-inverse functor on the category of minmax problems</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
    We will often utilize this duality to abbreviate proofs, proving something, for example, for the forwards direction and arguing "by duality" that it holds for the backwards direction as well.
  </html:p>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>1</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-0027/</fr:uri>
                    <fr:display-uri>lcc-0027</fr:display-uri>
                    <fr:route>/lcc-0027/</fr:route>
                    <fr:title text="Backwards and forwards morphisms">Backwards and forwards morphisms</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let a morphism <fr:tex display="inline"><![CDATA[\phi  = (\phi ^+,\phi ^-)]]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathsf {Set}^\Delta  \times  \mathsf {Set}^{\Delta ,\mathrm {op}}]]></fr:tex> be called <html:em>forwards</html:em> if <fr:tex display="inline"><![CDATA[\phi ^-]]></fr:tex> is an isomorphism, and <html:em>backwards</html:em> if <fr:tex display="inline"><![CDATA[\phi ^+]]></fr:tex> is an isomorphism.
  Let <fr:tex display="inline"><![CDATA[F]]></fr:tex> denote the set of forwards morphisms, <fr:tex display="inline"><![CDATA[B]]></fr:tex> the set of backwards. Then clearly <fr:tex display="inline"><![CDATA[(F,B)]]></fr:tex> form an orthogonal factorization system - in fact, both <fr:tex display="inline"><![CDATA[(F,B)]]></fr:tex> and <fr:tex display="inline"><![CDATA[(B,F)]]></fr:tex> do.
</html:p>
                    <html:p>
  Note that <fr:tex display="inline"><![CDATA[F]]></fr:tex> consists exactly of the local equivalences for the inclusion of <fr:tex display="inline"><![CDATA[* \times  \mathsf {Set}^{\Delta ,\mathrm {op}}]]></fr:tex>, so that the localization of <fr:tex display="inline"><![CDATA[(X,A)]]></fr:tex> can be formed as the terminal forwards map from it, which is clearly <fr:tex display="inline"><![CDATA[(X,A) \to  (*,A)]]></fr:tex> (of course, this is not surprising).
</html:p>
                    <html:p>
  We will say a morphism in <fr:tex display="inline"><![CDATA[\mathsf {Minmax}]]></fr:tex> is forwards, respectively backwards, if it is so considered as a morphism in <fr:tex display="inline"><![CDATA[\mathsf {Set}^\Delta  \times  \mathsf {Set}^{\Delta ,\mathrm {op}}]]></fr:tex>, and reuse the notation <fr:tex display="inline"><![CDATA[F,B]]></fr:tex> for these subclasses of morphism.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>7</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-002A/</fr:uri>
                    <fr:display-uri>lcc-002A</fr:display-uri>
                    <fr:route>/lcc-002A/</fr:route>
                    <fr:taxon>Lemma</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[X,Y]]></fr:tex> be convex spaces and let <fr:tex display="inline"><![CDATA[A \subset  X \times  Y]]></fr:tex> be a convex subspace. Let <fr:tex display="inline"><![CDATA[f: A \to  \mathbb {R}]]></fr:tex> be a convex function.
  Then <fr:tex display="inline"><![CDATA[x \mapsto  \inf _{y: (x,y) \in  A} f(x,y)]]></fr:tex> is again convex.
</html:p>
  <fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>5</fr:month><fr:day>7</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Let <fr:tex display="inline"><![CDATA[\theta  \in  [0,1],x,x' \in  X]]></fr:tex> be given, and consider:
  </html:p>
  <fr:tex display="block"><![CDATA[inf_{y: (\theta  x + (1-\theta )x',y) \in  A}f(\theta  x + (1-\theta  x'),y).]]></fr:tex>
  <html:p>Since if <fr:tex display="inline"><![CDATA[(x,y), (x',y') \in  A]]></fr:tex> then <fr:tex display="inline"><![CDATA[(\theta  x + (1-\theta )x',\theta  y + (1-\theta )y') \in  A]]></fr:tex>, we have that this is less than:
  <fr:tex display="block"><![CDATA[\leq  \inf _{y,y': (x,y),(x',y')\in  A} f(\theta  x + (1-\theta )x', \theta  y + (1-\theta ) y'),]]></fr:tex>
  because in the latter we are taking the infimum over a smaller set of <fr:tex display="inline"><![CDATA[f]]></fr:tex>'s</html:p>
  <html:p>
    Applying convexity, we get
    <fr:tex display="block"><![CDATA[\leq  \inf _{y,y': (x,y),(x,y') \in  A} \theta  f(x,y) + (1-\theta )f(x',y')]]></fr:tex>
    <fr:tex display="block"><![CDATA[\leq  \theta  \inf _{y: (x,y) \in  A}f(x,y) + (1-\theta )\inf _{y': (x',y')\in  A} f(x',y')]]></fr:tex>
    This is precisely the desired inequality.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>30</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-0023/</fr:uri>
                    <fr:display-uri>lcc-0023</fr:display-uri>
                    <fr:route>/lcc-0023/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  The forgetful functor <fr:tex display="inline"><![CDATA[\mathsf {Minmax} \to  \mathsf {Set}^\Delta  \times  \mathsf {Set}^{\Delta ,\mathrm {op}}]]></fr:tex> is a bifibration. Moreover, we have the following description of the (co)Cartesian morphisms over backwards and forwards maps.
  <html:ol><html:li>A forwards morphism <fr:tex display="inline"><![CDATA[(\phi ,1_A): (X,A,L) \to  (Y,A,L')]]></fr:tex> is Cartesian if and only if <fr:tex display="inline"><![CDATA[L(x,a) = L'(\phi (x),a)]]></fr:tex> for all <fr:tex display="inline"><![CDATA[x,a]]></fr:tex></html:li>
  <html:li>A forwards morphism <fr:tex display="inline"><![CDATA[(\phi ,1_A): (X,A,L) \to  (Y,A,L')]]></fr:tex> is coCartesian if and only if <fr:tex display="inline"><![CDATA[L'(y,a) = \inf _{\phi (x) = y} L(x,a)]]></fr:tex></html:li>
  <html:li>A backwards morphism <fr:tex display="inline"><![CDATA[(1_X,\phi ): (X,A,L) \to  (X,B,L')]]></fr:tex> is Cartesian if and only if <fr:tex display="inline"><![CDATA[L(x,a) = \inf _{\phi (b)=a} L'(x,b)]]></fr:tex></html:li>
  <html:li>A backwards morphism <fr:tex display="inline"><![CDATA[(1_X,\phi ): (X,A,L) \to  (X,B,L')]]></fr:tex> is coCartesian if and only if <fr:tex display="inline"><![CDATA[L'(x,b) = L(x,\phi (b))]]></fr:tex></html:li></html:ol></html:p>
  <fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>4</fr:month><fr:day>30</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Note that it suffices to provide Cartesian and coCartesian lifts for backwards and forwards morphisms (<fr:link href="/lcc-0027/" title="Backwards and forwards morphisms" uri="https://erischel.com/lcc-0027/" display-uri="lcc-0027" type="local">Definition <fr:contextual-number uri="https://erischel.com/lcc-0027/" display-uri="lcc-0027" /></fr:link>), since such lifts compose. Hence it suffices to verify that the given descriptions are correct, since clearly they suffice to compute a (co)Cartesian lift over any such morphism.
  </html:p>
  <html:p>
    Note also that, since the forgetful functor is faithful, to verify a morphism <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex> is (co)Cartesian, it suffices to prove that any factorization in the base lifts - uniqueness is automatic.
  </html:p>
  <html:p>Thus let <fr:tex display="inline"><![CDATA[\phi  = (\phi ,1_A): (X,A,L) \to  (Y,A,L')]]></fr:tex> be so that <fr:tex display="inline"><![CDATA[L(x,a) = L'(\phi (x),a)]]></fr:tex>. Note that composition of a <fr:tex display="inline"><![CDATA[\Delta ]]></fr:tex>-homomorphism with a convex function is again convex, so this is indeed an object of <fr:tex display="inline"><![CDATA[\mathsf {Minmax}]]></fr:tex></html:p>
  <html:p>
  Now let <fr:tex display="inline"><![CDATA[\psi  = (\psi ^-,\psi ^+): (Z,B,K) \to  (Y,A,L')]]></fr:tex> be some morphism so that we have the factorization <fr:tex display="inline"><![CDATA[\psi  = \phi \psi ']]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathsf {Set}^\Delta \times \mathsf {Set}^{\Delta ,\mathrm {op}}]]></fr:tex>. The goal is now to prove <fr:tex display="inline"><![CDATA[\psi ' : (Z,B,K) \to  (X,A,L)]]></fr:tex> is a homomorphism. This is the inequality
  <fr:tex display="block"><![CDATA[K(z,(\psi ')^-(a)) \geq  L((\psi ')^+(z),a) = L'((\phi \psi ')^+(z),a),]]></fr:tex> which holds by assumption</html:p>

  <html:p>Let <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex> be as above, but suppose <fr:tex display="inline"><![CDATA[L'(y,a) = \inf {\phi (x)=y}L(x,a)]]></fr:tex>. First, observe that by <fr:link href="/lcc-002A/" title="https://erischel.com/lcc-002A/" uri="https://erischel.com/lcc-002A/" display-uri="lcc-002A" type="local">lcc-002A</fr:link>, this function is in fact convex in <fr:tex display="inline"><![CDATA[y]]></fr:tex> as desired.</html:p>
  <html:p>
    Let <fr:tex display="inline"><![CDATA[\psi : (X,A,L) \to  (Z,B,K)]]></fr:tex> be given, and now suppose we have a factorization <fr:tex display="inline"><![CDATA[\psi  = \psi '\phi ]]></fr:tex> in the base. We must prove that <fr:tex display="inline"><![CDATA[L'(y,(\psi ')^-(b)) \geq  K((\psi ')^+(y),b),]]></fr:tex>
    but since <fr:tex display="inline"><![CDATA[L'(y,(\psi ')^-(b)) = \inf _{\phi (x)=y}L(x,(\psi ')^-(b)),]]></fr:tex> this amounts to the equation
    <fr:tex display="inline"><![CDATA[L(x,(\psi ')^-(b)) \geq  K((\psi ')^+\phi (x),b),]]></fr:tex>
    which is again true by assumption.
  </html:p>
  <html:p>Now the case for backwards morphisms simply follows by duality.</html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
                <html:p>
    What's "really" going on here is that <fr:tex display="inline"><![CDATA[\mathsf {Minmax}]]></fr:tex> is a two-sided fibration, the result of taking the functor <fr:tex display="inline"><![CDATA[\mathsf {Set}^{\Delta ,\mathrm {op}} \times  \mathsf {Set}^{\Delta ,\mathrm {op}} \to  \mathsf {Cat}]]></fr:tex> carrying a pair <fr:tex display="inline"><![CDATA[X,Y]]></fr:tex> to the poset of minmax problems <fr:tex display="inline"><![CDATA[L: X \times  Y \to  \mathbb {R}]]></fr:tex> (in the opposite order), with morphisms acting by precomposition, and applying the Grothendieck construction "contravariantly in the first variable and covariantly in the second variable". (And then observing that the precomposition action has left/right adjoints given by <fr:tex display="inline"><![CDATA[\inf ]]></fr:tex>/<fr:tex display="inline"><![CDATA[\sup ]]></fr:tex>, to make this into a <html:em>bi</html:em>fibration). But the theory of two-sided fibrations is quite complicated in general, and we will not go into it here.
  </html:p>
                <html:p>
    Note also that this functor is quite close to displaying <fr:tex display="inline"><![CDATA[\mathsf {Minmax}]]></fr:tex> as <html:em>topological</html:em>. If we remove the restriction that minmax problems be convex/concave, we can construct the universal lifts required using a similar supremum formula. The problem is that the supremum of a general set of concave functions is not automatically concave (however, the supremum taken over a convex set, in a suitable sense, is).
  </html:p>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>25</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-001R/</fr:uri>
                    <fr:display-uri>lcc-001R</fr:display-uri>
                    <fr:route>/lcc-001R/</fr:route>
                    <fr:title text="\Conv  and \Conc "><fr:tex display="inline"><![CDATA[\Conv ]]></fr:tex> and <fr:tex display="inline"><![CDATA[\Conc ]]></fr:tex></fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
    Let <fr:tex display="inline"><![CDATA[\mathsf {Conv}]]></fr:tex> be the category where objects are pairs <fr:tex display="inline"><![CDATA[(X,f: X \to  \mathbb {R})]]></fr:tex> consisting of a convex space and a convex function, and where morphisms <fr:tex display="inline"><![CDATA[\phi : (X,f) \to  (Y,g)]]></fr:tex> are affine maps so that <fr:tex display="inline"><![CDATA[g(\phi (x)) \leq  f(x)]]></fr:tex>.
</html:p>
                    <html:p>
    Let <fr:tex display="inline"><![CDATA[\mathsf {Conc}]]></fr:tex> be the category where objects are pairs <fr:tex display="inline"><![CDATA[(X,f: X \to  \mathbb {R})]]></fr:tex> consisting of a convex space and a concave function, and where morphisms <fr:tex display="inline"><![CDATA[\phi : (X,f) \to  (Y,g)]]></fr:tex> are affine maps so that <fr:tex display="inline"><![CDATA[g(\phi (x)) \geq  f(x)]]></fr:tex>.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>25</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-001S/</fr:uri>
                    <fr:display-uri>lcc-001S</fr:display-uri>
                    <fr:route>/lcc-001S/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
    The assignment
    <fr:tex display="block"><![CDATA[(X,Y,L) \mapsto  (X,L^+),]]></fr:tex>
    <fr:tex display="block"><![CDATA[(\phi ^+,\phi ^-): L \to  L' \mapsto  \phi ^+]]></fr:tex>
    defines a functor <fr:tex display="inline"><![CDATA[(-)^+: \mathsf {Minmax} \to  \mathsf {Conv}]]></fr:tex></html:p>
                    <html:p>
    Similarly, <fr:tex display="inline"><![CDATA[(-)^-]]></fr:tex> defines a functor <fr:tex display="inline"><![CDATA[\mathsf {Minmax} \to  \mathsf {Conc}^\mathrm {op}]]></fr:tex>. (The reason for this idiosyncratic way of writing a contravariant functor will become apparent in a minute)
</html:p>
                    <html:p>
    The assignment <fr:tex display="inline"><![CDATA[(X,f) \mapsto  (X,-f)]]></fr:tex> defines a functor (identity on morphisms) <fr:tex display="inline"><![CDATA[\mathsf {Conc} \to  \mathsf {Conv}]]></fr:tex>, and vice versa. Then <fr:tex display="inline"><![CDATA[L^- = -(L^*)^+]]></fr:tex></html:p>
                    <html:p>
    The assignment <fr:tex display="inline"><![CDATA[(X,f) \mapsto  (X,*, f)]]></fr:tex> defines a fully faithful functor <fr:tex display="inline"><![CDATA[\mathsf {Conv} \to  \mathsf {Minmax}]]></fr:tex>,
    whose essential image consists of those tuples <fr:tex display="inline"><![CDATA[(X,Y,L)]]></fr:tex> where <fr:tex display="inline"><![CDATA[Y]]></fr:tex> is singleton.
    Analogously, <fr:tex display="inline"><![CDATA[(Y,f) \mapsto  (*,Y,f)]]></fr:tex> defines a fully faithful functor <fr:tex display="inline"><![CDATA[\mathsf {Conc}^\mathrm {op} \to  \mathsf {Minmax}]]></fr:tex></html:p>
                    <html:p>
    We will abuse notation and identify <fr:tex display="inline"><![CDATA[\mathsf {Conv}]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathsf {Conc}]]></fr:tex> with their images under these inclusions - thus, for example, <fr:tex display="inline"><![CDATA[L^+]]></fr:tex> will be regarded as an object of <fr:tex display="inline"><![CDATA[\mathsf {Minmax}]]></fr:tex>.
</html:p>
                    <html:p><fr:tex display="inline"><![CDATA[(-)^+]]></fr:tex> is right adjoint to the inclusion of <fr:tex display="inline"><![CDATA[\mathsf {Conv}]]></fr:tex>, and <fr:tex display="inline"><![CDATA[(-)^-]]></fr:tex> (viewed as a functor <fr:tex display="inline"><![CDATA[\mathsf {Minmax} \to  \mathsf {Conc}^\mathrm {op}]]></fr:tex>) is left adjoint to the inclusion of <fr:tex display="inline"><![CDATA[\mathsf {Conc}^\mathrm {op}]]></fr:tex></html:p>
                    <html:p>
    Using these identifications, we have <fr:tex display="inline"><![CDATA[(-)^- = (((-)^*)^+)^*]]></fr:tex></html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
    Note that if <fr:tex display="inline"><![CDATA[\phi  = (\phi ^+,\phi ^-): L \to  L']]></fr:tex> is a morphism of <fr:tex display="inline"><![CDATA[\mathsf {Minmax}]]></fr:tex>, the two meanings of the notation <fr:tex display="inline"><![CDATA[\phi ^+]]></fr:tex> agree, and the same is true of <fr:tex display="inline"><![CDATA[\phi ^-]]></fr:tex>.
  </html:p>
                <html:p>
    Note also that the reflexive subcategory <fr:tex display="inline"><![CDATA[\mathsf {Conc}^\mathrm {op} \subseteq  \mathsf {Minmax}]]></fr:tex> is the local subcategory with respect to the forwards morphisms - a morphism is forward if and only if <fr:tex display="inline"><![CDATA[\phi ^-]]></fr:tex> is an isomorphism (by definition), and the unit <fr:tex display="inline"><![CDATA[L \to  L^-]]></fr:tex> is the terminal forwards morphism with domain <fr:tex display="inline"><![CDATA[L]]></fr:tex>. A dual statement holds for <fr:tex display="inline"><![CDATA[\mathsf {Conv} \subseteq  \mathsf {Minmax}]]></fr:tex> (it is the <html:em>colocalization</html:em> with respect to the class of backwards morphisms).
  </html:p>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>23</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-001N/</fr:uri>
                    <fr:display-uri>lcc-001N</fr:display-uri>
                    <fr:route>/lcc-001N/</fr:route>
                    <fr:title text="Monoidal structure on minmax problems">Monoidal structure on minmax problems</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
    There is a monoidal structure on minmax problems, given by
    <fr:tex display="inline"><![CDATA[(L \otimes  L') = (X \otimes  X', Y \otimes  Y', (x,x',y,y') \mapsto  L(x,y) + L(x',y')).]]></fr:tex>
    The unit here is <fr:tex display="inline"><![CDATA[(*,*,0)]]></fr:tex>.
</html:p>
                    <html:p>
    A state is a point <fr:tex display="inline"><![CDATA[x_0]]></fr:tex> so that <fr:tex display="inline"><![CDATA[L(x_0,y) \leq  0]]></fr:tex> for all <fr:tex display="inline"><![CDATA[y]]></fr:tex>.
    More interesting is asking for a state of <fr:tex display="inline"><![CDATA[L \otimes  L^*]]></fr:tex>.
    This is a pair <fr:tex display="inline"><![CDATA[x \in  X, y \in  Y]]></fr:tex> so that the inequality
    <fr:tex display="inline"><![CDATA[L(x,y') \leq  L(x',y)]]></fr:tex> holds for all <fr:tex display="inline"><![CDATA[y',x']]></fr:tex></html:p>
                    <html:p>
    Note that <fr:tex display="inline"><![CDATA[\sup _{y'} L(x,y') \geq  \inf _x L(x',y)]]></fr:tex> for all <fr:tex display="inline"><![CDATA[x,y]]></fr:tex>, this is the minmax inequality (or "weak duality").
</html:p>
                    <html:p>
    Thus a choice of <fr:tex display="inline"><![CDATA[x,y]]></fr:tex> giving a state gives equality in that inequation---it is a <html:em>solution</html:em> of the minmax game. In other words, <fr:tex display="inline"><![CDATA[L \otimes  L^*]]></fr:tex> has a state if and only if strong duality holds for <fr:tex display="inline"><![CDATA[L]]></fr:tex>, and the state is given by an optimal and dual optimal pair in that case. 
</html:p>
                    <html:p>
    (By duality, and since <fr:tex display="inline"><![CDATA[(L \otimes  L^*)^* \cong  L \otimes  L^*]]></fr:tex>, such an object has a state if and only if it has a costate)
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>8</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-002D/</fr:uri>
                    <fr:display-uri>lcc-002D</fr:display-uri>
                    <fr:route>/lcc-002D/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  The forgetful functor <fr:tex display="inline"><![CDATA[\mathsf {Minmax} \to  \mathsf {Set}^\Delta  \times  \mathsf {Set}^{\Delta ,\mathrm {op}}]]></fr:tex> is a monoidal fibration, in the sense of <fr:link href="/shulman-monfibs/" title="Framed bicategories and monoidal fibrations" uri="https://erischel.com/shulman-monfibs/" display-uri="shulman-monfibs" type="local">Reference <fr:contextual-number uri="https://erischel.com/shulman-monfibs/" display-uri="shulman-monfibs" /></fr:link>, (see also <fr:link href="/moeller-vasilakopoulou/" title="Monoidal Grothendieck Construction" uri="https://erischel.com/moeller-vasilakopoulou/" display-uri="moeller-vasilakopoulou" type="local">Reference <fr:contextual-number uri="https://erischel.com/moeller-vasilakopoulou/" display-uri="moeller-vasilakopoulou" /></fr:link>). It is also a monoidal opfibration - in other words, both the classes of Cartesian and coCartesian maps are stable under tensor product.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>In the case of a Cartesian base, a monoidal fibration (like the one we have here) is equivalent to a fibration with a monoidal structure on each fiber, compatible with the reindexing in a certain way. Our base is not Cartesian, but does seem to come from a monoidal structure on each fiber, given by addition of <fr:tex display="inline"><![CDATA[L]]></fr:tex>s. The point is that, given <fr:tex display="inline"><![CDATA[(X,A,L)]]></fr:tex>, there is a canonical way to obtain an <fr:tex display="inline"><![CDATA[L]]></fr:tex> on <fr:tex display="inline"><![CDATA[(X\times  Y, A \times  B)]]></fr:tex>, given by using a Cartesian lift of <fr:tex display="inline"><![CDATA[X \times  Y \to  X]]></fr:tex> and a <html:em>coCartesian</html:em> lift of <fr:tex display="inline"><![CDATA[A \times  B \to  A]]></fr:tex>. This suggests there should be a useful theory of <html:em>monoidal two-sided fibrations</html:em>, but this notion does not appear to have been studied before.</html:p>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>19</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-002P/</fr:uri>
                    <fr:display-uri>lcc-002P</fr:display-uri>
                    <fr:route>/lcc-002P/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  The localization (resp. colocalization) <fr:tex display="inline"><![CDATA[\mathsf {Conc}^\mathrm {op} \hookrightarrow  \mathsf {Minmax}]]></fr:tex> (<fr:tex display="inline"><![CDATA[\mathsf {Conv} \hookrightarrow  \mathsf {Minmax}]]></fr:tex>) is monoidal, in the sense that the class local equivalences is stable under tensor products. The thus induced monoidal structure on <fr:tex display="inline"><![CDATA[\mathsf {Conc}^\mathrm {op}]]></fr:tex> is given by <fr:tex display="inline"><![CDATA[(X,f) \otimes  (Y,g) = (X \times  Y, (x,y) \mapsto  f(x) + g(y))]]></fr:tex> (and the same for <fr:tex display="inline"><![CDATA[\mathsf {Conv}]]></fr:tex>). In particular the (co)localization functor is strong monoidal.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
              </fr:mainmatter>
            </fr:tree>
            <fr:tree show-metadata="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>
                    <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                  </fr:author>
                </fr:authors>
                <fr:date>
                  <fr:year>2024</fr:year>
                  <fr:month>4</fr:month>
                  <fr:day>30</fr:day>
                </fr:date>
                <fr:title text="Strong duality">Strong duality</fr:title>
              </fr:frontmatter>
              <fr:mainmatter><fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>4</fr:month><fr:day>26</fr:day></fr:date><fr:uri>https://erischel.com/lcc-001W/</fr:uri><fr:display-uri>lcc-001W</fr:display-uri><fr:route>/lcc-001W/</fr:route><fr:title text="weak duality">weak duality</fr:title><fr:taxon>Proposition</fr:taxon></fr:frontmatter><fr:mainmatter><html:p>
    Let <fr:tex display="inline"><![CDATA[L]]></fr:tex> be a minmax problem.
    Then
    <fr:tex display="block"><![CDATA[\inf _x \sup _y L(x,y) = (L^+)^- \geq  (L^-)^+ = \sup _x \inf _y L(x,y),]]></fr:tex>
    where we abuse notation by identifying a minmax problem <fr:tex display="inline"><![CDATA[*,*, r]]></fr:tex> with the number <fr:tex display="inline"><![CDATA[r(*,*)]]></fr:tex></html:p>
  <fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>4</fr:month><fr:day>26</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
    <html:p>
        The equations are clearly true by definition.
        Note that the inequality is equivalent to the existence of a morphism <fr:tex display="inline"><![CDATA[(L^+)^- \to  (L^-)^+]]></fr:tex></html:p>
    <html:p>
        We have canonical morphisms
        <fr:tex display="block"><![CDATA[L^+ \to  L \to  L^-]]></fr:tex>
        Since <fr:tex display="inline"><![CDATA[L^+]]></fr:tex> is a right adjoint to the inclusion of <fr:tex display="inline"><![CDATA[\mathsf {Conv}]]></fr:tex>, the above composite induces a map
        <fr:tex display="inline"><![CDATA[L^+ \to  (L^-)^+]]></fr:tex></html:p>
    <html:p>
        Since <fr:tex display="inline"><![CDATA[(-)^-]]></fr:tex> is a left adjoint to the inclusion of <fr:tex display="inline"><![CDATA[\mathsf {Conc}^\mathrm {op}]]></fr:tex>, that map induces a map
        <fr:tex display="inline"><![CDATA[(L^+)^- \to  (L^-)^+,]]></fr:tex> as desired.
    </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter></fr:tree><fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>5</fr:month><fr:day>9</fr:day></fr:date><fr:uri>https://erischel.com/lcc-002F/</fr:uri><fr:display-uri>lcc-002F</fr:display-uri><fr:route>/lcc-002F/</fr:route><fr:title text="Strong duality">Strong duality</fr:title><fr:taxon>Definition</fr:taxon></fr:frontmatter><fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[L = (X,A,L)]]></fr:tex> be a minmax problem. By <fr:link href="/lcc-001W/" title="weak duality" uri="https://erischel.com/lcc-001W/" display-uri="lcc-001W" type="local">Proposition <fr:contextual-number uri="https://erischel.com/lcc-001W/" display-uri="lcc-001W" /></fr:link>, there is a morphism
  <fr:tex display="inline"><![CDATA[(L^+)^- \to  (L^-)^+]]></fr:tex>. We say <fr:tex display="inline"><![CDATA[L]]></fr:tex> <html:em>satisfies strong duality</html:em> if it is an isomorphism. (Note that this is really just an inequality of real numbers, which must be an equality).
</html:p></fr:mainmatter></fr:tree><fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>4</fr:month><fr:day>26</fr:day></fr:date><fr:uri>https://erischel.com/lcc-001X/</fr:uri><fr:display-uri>lcc-001X</fr:display-uri><fr:route>/lcc-001X/</fr:route><fr:taxon>Proposition</fr:taxon></fr:frontmatter><fr:mainmatter><html:p>
    Let <fr:tex display="inline"><![CDATA[L]]></fr:tex> be a minmax problem.
    Suppose there exists <fr:tex display="inline"><![CDATA[\phi : I \to  L \otimes  L^*]]></fr:tex>.
    Then strong duality holds, i.e <fr:tex display="inline"><![CDATA[(L^+)^- \cong  (L^-)^+]]></fr:tex></html:p><html:p><fr:tex display="inline"><![CDATA[((\phi )^+)^-]]></fr:tex> gives a morphism
    <fr:tex display="block"><![CDATA[I = (I^+)^- \to  ((L \otimes  L^*)^+)^- \cong  (L^+)^- \otimes  ((L^*)^+)^- \cong  (L^+)^- \otimes  ((L^-)^+)^*]]></fr:tex>
    Here we use the isomorphisms <fr:tex display="inline"><![CDATA[(L^+)^* = (L^*)^-]]></fr:tex> and vice versa, as well as strong monoidality of <fr:tex display="inline"><![CDATA[(-)^-]]></fr:tex> and <fr:tex display="inline"><![CDATA[(-)^+]]></fr:tex>.
    The existence of that morphism means that
    <fr:tex display="inline"><![CDATA[(L^+)^- \leq  (L^-)^+,]]></fr:tex>
    which is the other direction of the morphism we wanted.
</html:p></fr:mainmatter></fr:tree><html:p>
    If a minmax problem is a zero-sum game, a point <fr:tex display="inline"><![CDATA[I \to  L \otimes  L^*]]></fr:tex> is a choice of Nash equilibrium for this game.
  </html:p><fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>5</fr:month><fr:day>6</fr:day></fr:date><fr:uri>https://erischel.com/lcc-0029/</fr:uri><fr:display-uri>lcc-0029</fr:display-uri><fr:route>/lcc-0029/</fr:route><fr:taxon>Proposition</fr:taxon></fr:frontmatter><fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[(X,Y,L)]]></fr:tex> be a minmax problem.
  Then there is a canonical commutative diagram
  
  <html:figure><fr:resource hash="ac36f89b6d448b7a687486c39b81e6c3"><fr:resource-content><html:img src="/ac36f89b6d448b7a687486c39b81e6c3.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[
    \RequirePackage {tikz-cd}
    \RequirePackage {amssymb}
  \usetikzlibrary {calc}
  \usetikzlibrary {decorations.pathmorphing}
    \tikzset{curve/.style={settings={#1},to path={(\tikztostart)
    .. controls ($(\tikztostart)!\pv{pos}!(\tikztotarget)!\pv{height}!270:(\tikztotarget)$)
    and ($(\tikztostart)!1-\pv{pos}!(\tikztotarget)!\pv{height}!270:(\tikztotarget)$)
    .. (\tikztotarget)\tikztonodes}},
    settings/.code={\tikzset{quiver/.cd,#1}
        \def\pv##1{\pgfkeysvalueof{/tikz/quiver/##1}}},
    quiver/.cd,pos/.initial=0.35,height/.initial=0}
\tikzset {tail reversed/.code={\pgfsetarrowsstart {tikzcd to}}}
\tikzset {2tail/.code={\pgfsetarrowsstart {Implies[reversed]}}}
\tikzset {2tail reversed/.code={\pgfsetarrowsstart {Implies}}}
\tikzset {no body/.style={/tikz/dash pattern=on 0 off 1mm}}

    
    \usepackage {amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    (X,*) \ar [r, "\pi _X"] \ar [d, "\pi _A"] & (*,*)\ar [d, "\pi _A"]\\
    (X,A) \ar [r, "\pi _X"] & (*,A)
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  in <fr:tex display="inline"><![CDATA[\mathsf {Set}^\Delta  \times  \mathsf {Set}^{\Delta ,\mathrm {op}},]]></fr:tex> which is a pullback.
  <fr:tex display="inline"><![CDATA[L]]></fr:tex> obeys strong duality if and only if this square has the local Beck-Chevalley condition for <fr:tex display="inline"><![CDATA[L]]></fr:tex>, in the sense that the canonical map <fr:tex display="inline"><![CDATA[\pi _{X,!}\pi _A^*L \to  \pi _A^*\pi _{X,!}L]]></fr:tex> is an isomorphism.
</html:p>
  <fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>5</fr:month><fr:day>6</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  Recall that <fr:tex display="inline"><![CDATA[\pi _{X,!}(L) = L^-, \pi _Y^*(L) = L^+]]></fr:tex>.
  Hence the claim is just that <fr:tex display="inline"><![CDATA[\inf _x \sup _a L(x,a) = (L^+)^- = (L^-)^+ = \sup _a\inf _x L(x,a),]]></fr:tex> which is precisely strong duality.
</fr:mainmatter></fr:tree>
</fr:mainmatter></fr:tree>(For more on the Beck-Chevalley condition, see <fr:link href="/pavlovic-descent-beck-chevalley-1991/" title="Categorical interpolation: Descent and the Beck-Chevalley condition without direct images" uri="https://erischel.com/pavlovic-descent-beck-chevalley-1991/" display-uri="pavlovic-descent-beck-chevalley-1991" type="local">Reference <fr:contextual-number uri="https://erischel.com/pavlovic-descent-beck-chevalley-1991/" display-uri="pavlovic-descent-beck-chevalley-1991" /></fr:link> or <fr:link href="https://ncatlab.org/nlab/show/Beck-Chevalley+condition" type="external">nlab: Beck-Chevalley Condition</fr:link>)<fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>5</fr:month><fr:day>18</fr:day></fr:date><fr:uri>https://erischel.com/lcc-002L/</fr:uri><fr:display-uri>lcc-002L</fr:display-uri><fr:route>/lcc-002L/</fr:route><fr:title text="Slater's Constraint Qualification">Slater's Constraint Qualification</fr:title><fr:taxon>Proposition</fr:taxon></fr:frontmatter><fr:mainmatter><html:p>
  Consider an optimization problem in standard form:
  <html:ol><html:li>Minimize <fr:tex display="inline"><![CDATA[f_0(x), x \in  \mathbb {R}^k]]></fr:tex></html:li>
    <html:li>Subject to <fr:tex display="inline"><![CDATA[f_1(x), \dots , f_n(x) \leq  0]]></fr:tex></html:li>
    <html:li>And <fr:tex display="inline"><![CDATA[g_1(x), \dots , g_m(x) = 0]]></fr:tex></html:li>
    <html:li>With each <fr:tex display="inline"><![CDATA[f_i]]></fr:tex> convex and each <fr:tex display="inline"><![CDATA[g_i]]></fr:tex> affine</html:li></html:ol>
  Now assume that <fr:tex display="inline"><![CDATA[l]]></fr:tex> is such that <fr:tex display="inline"><![CDATA[f_1, \dots , f_l]]></fr:tex> are all affine (possibly <fr:tex display="inline"><![CDATA[l=0]]></fr:tex>, and none of the <fr:tex display="inline"><![CDATA[f_i]]></fr:tex> are affine), and suppose there exists <fr:tex display="inline"><![CDATA[x_0 \in  \mathbb {R}^k]]></fr:tex> so that <fr:tex display="inline"><![CDATA[f_i(x) < 0]]></fr:tex> for all <fr:tex display="inline"><![CDATA[i > l]]></fr:tex>, and <fr:tex display="inline"><![CDATA[f_i(x) \leq  0]]></fr:tex> for all other <fr:tex display="inline"><![CDATA[i]]></fr:tex>, <fr:tex display="inline"><![CDATA[g_i(x) = 0]]></fr:tex> for all <fr:tex display="inline"><![CDATA[i]]></fr:tex>. Then strong duality holds for this optimization problem, and the dual optimal value is attained.
</html:p><html:p>
  Note: This is usually stated for a function defined on an arbitrary convex subset of <fr:tex display="inline"><![CDATA[\mathbb {R}^k]]></fr:tex>. In this case we must further ask that <fr:tex display="inline"><![CDATA[x_0]]></fr:tex> is in the relative interior of this domain.
</html:p>
  <fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>5</fr:month><fr:day>18</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>(Proof adapted from )</html:p>
  <html:p>For simplicity, we will assume <fr:tex display="inline"><![CDATA[l = 0]]></fr:tex>, i.e we will not assume any of the <fr:tex display="inline"><![CDATA[f_i]]></fr:tex> are affine, and <fr:tex display="inline"><![CDATA[f_u(x_0) \leq  0]]></fr:tex> for all <fr:tex display="inline"><![CDATA[i \geq  1]]></fr:tex>. (This is the standard form of Slater's constraint qualification).</html:p>
  <html:p>
    Let <fr:tex display="inline"><![CDATA[A, b]]></fr:tex> be a matrix and vector so that <fr:tex display="inline"><![CDATA[(g_i(x)) = Ax - b]]></fr:tex>. Then assume without loss of generality that <fr:tex display="inline"><![CDATA[A]]></fr:tex> has full rank. (Suppose <fr:tex display="inline"><![CDATA[g_j]]></fr:tex> is in the span of the other <fr:tex display="inline"><![CDATA[g_i]]></fr:tex>s. Then if the affine constraints are feasible at all, the equation corresponding to <fr:tex display="inline"><![CDATA[g_j]]></fr:tex> must be a consequence of the others. Hence we can delete <fr:tex display="inline"><![CDATA[g_j]]></fr:tex> without altering the primal optimal value, and given a dual optimal value for the problem with <fr:tex display="inline"><![CDATA[g_j]]></fr:tex> deleted, just set <fr:tex display="inline"><![CDATA[\nu _j = 0]]></fr:tex>.)
  </html:p>
  <html:p>
    Let <fr:tex display="block"><![CDATA[\mathcal {A} = \{(u,v,t) \mid  x \in  \mathbb {R}^k, u_i \geq  f_i(x), v_i = g_i(x), t \geq  f_0(x)\}]]></fr:tex>
    Observe that the optimal value is <fr:tex display="inline"><![CDATA[p^* = \inf _{(0,0,t) \in  \mathcal {A}} t]]></fr:tex>.
    Let <fr:tex display="inline"><![CDATA[\mathcal {B} = \{(0,0,t) \mid  s \leq  p^*\}]]></fr:tex>. It's not hard to see that these sets are disjoint and convex, and hence there exists a hyperplane separating them.
    In other words, there exists <fr:tex display="inline"><![CDATA[\tilde {\lambda },\tilde {\nu },\tilde {\mu },\alpha ]]></fr:tex> (not all <fr:tex display="inline"><![CDATA[0]]></fr:tex>) so that
    <fr:tex display="block"><![CDATA[(u,v,t) \in  \mathcal {A} \Rightarrow  \langle  \tilde {\lambda },u \rangle  + \langle  \tilde {\nu },v \rangle  + \mu  t \geq  \alpha ]]></fr:tex>
    <fr:tex display="block"><![CDATA[(u,v,t) \in  \mathcal {B} \Rightarrow  \langle  \tilde {\lambda },u \rangle  + \langle  \tilde {\nu },v \rangle  + \mu  t \leq  \alpha ]]></fr:tex>
    By the first inequality, we must have <fr:tex display="inline"><![CDATA[\tilde {\lambda } \geq  0]]></fr:tex> (or the right-hand side would be unbounded below on <fr:tex display="inline"><![CDATA[\mathcal {A}]]></fr:tex>, which is impossible). Similarly we have <fr:tex display="inline"><![CDATA[\mu  \geq  0]]></fr:tex>.
    The latter of the two statements is equivalent to the statement that <fr:tex display="inline"><![CDATA[\mu  t \leq  \alpha ]]></fr:tex> when <fr:tex display="inline"><![CDATA[t \leq  p^*]]></fr:tex>, which simply means <fr:tex display="inline"><![CDATA[\mu  p^* \leq  \alpha ]]></fr:tex>. Combining this with the first statement,
    we get for all <fr:tex display="inline"><![CDATA[x,]]></fr:tex>
    <fr:tex display="block"><![CDATA[\sum _i \tilde {\lambda }_i f_i(x) + \sum _i \tilde {nu}_i g_i(x) + \mu  f_0(x) \geq  \alpha  \geq  \mu  p^*.]]></fr:tex></html:p>
  <html:p>
    First assume <fr:tex display="inline"><![CDATA[\mu  \neq  0]]></fr:tex>. Then we can divide out and get <fr:tex display="inline"><![CDATA[L(x, \tilde {\lambda }/\mu , \tilde {\nu }/\mu ) \geq  p^*]]></fr:tex>, which proves that <fr:tex display="inline"><![CDATA[(\tilde {\lambda }/\mu , \tilde {\nu }/\mu )]]></fr:tex> is a dual optimal value and that strong duality holds.
  </html:p>
  <html:p>
    If <fr:tex display="inline"><![CDATA[\mu =0]]></fr:tex>, we have for all <fr:tex display="inline"><![CDATA[x]]></fr:tex>
    <fr:tex display="block"><![CDATA[\sum _i \tilde {\lambda }_i f_i(x) + \sum _i \tilde {nu}_i g_i(x) \geq  0]]></fr:tex></html:p>
  <html:p>
    Inserting <fr:tex display="inline"><![CDATA[x_0]]></fr:tex>, we find <fr:tex display="inline"><![CDATA[\sum _i \tilde {\lambda }_i f_i(x_0) \geq  0,]]></fr:tex>
    and since <fr:tex display="inline"><![CDATA[f_i(x_0) = 0,]]></fr:tex> we must have <fr:tex display="inline"><![CDATA[\tilde {\lambda } = 0]]></fr:tex>.
    This then implies <fr:tex display="inline"><![CDATA[\sum _i \tilde {\nu }_i g_i(x) \geq  0 = \langle  \tilde {nu},Ax - b \rangle ]]></fr:tex> for all <fr:tex display="inline"><![CDATA[x]]></fr:tex>. But since this is an affine function, this can only be true if it's constantly zero. Since <fr:tex display="inline"><![CDATA[\tilde {\nu }]]></fr:tex> is nonzero and <fr:tex display="inline"><![CDATA[A]]></fr:tex> has full rank, this is impossible.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter></fr:tree><fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>4</fr:month><fr:day>22</fr:day></fr:date><fr:uri>https://erischel.com/lcc-001E/</fr:uri><fr:display-uri>lcc-001E</fr:display-uri><fr:route>/lcc-001E/</fr:route><fr:title text="Minimax theorem">Minimax theorem</fr:title><fr:taxon>Theorem</fr:taxon></fr:frontmatter><fr:mainmatter><html:p>
    Let <fr:tex display="inline"><![CDATA[(L,X,A) \in  \mathsf {Minmax}]]></fr:tex>. If <fr:tex display="inline"><![CDATA[X,A]]></fr:tex> are both convex, compact subspaces of finite-dimensional vector spaces, and <fr:tex display="inline"><![CDATA[L]]></fr:tex> is continuous, then strong duality holds for <fr:tex display="inline"><![CDATA[L]]></fr:tex>, and moreover an equilibrium <fr:tex display="inline"><![CDATA[I \to  L \otimes  L^*]]></fr:tex> exists.
</html:p></fr:mainmatter></fr:tree><html:p>
        This theorem can be derived from the Kakutani fixpoint theorem in a very similar way to the usual proof of Nash's theorem about general, non-zerosum games - although note that it is not a special case, since <fr:tex display="inline"><![CDATA[X]]></fr:tex> and <fr:tex display="inline"><![CDATA[A]]></fr:tex> may not be simplices, and the payoff function here is merely convex, not necessarily <html:em>affine</html:em> as it is for a game-theoretic game.
  </html:p><html:p>
    However, we will give a different proof, which uses the structure of <fr:tex display="inline"><![CDATA[\mathsf {Minmax}]]></fr:tex> in a more direct way. Essentially, we will use compactness to reduce to the case of simplexes, then use an inductive argument to reduce to the case where <fr:tex display="inline"><![CDATA[X = A = \Delta ^1 = [0,1],]]></fr:tex> which can be shown by a direct topological argument. The inductive step is a fiber sequence argument, where we use the characterization of strong duality in terms of the Beck-Chevalley property, <fr:link href="/lcc-0029/" title="https://erischel.com/lcc-0029/" uri="https://erischel.com/lcc-0029/" display-uri="lcc-0029" type="local">Proposition <fr:contextual-number uri="https://erischel.com/lcc-0029/" display-uri="lcc-0029" /></fr:link>.
  </html:p><fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>5</fr:month><fr:day>21</fr:day></fr:date><fr:uri>https://erischel.com/lcc-002T/</fr:uri><fr:display-uri>lcc-002T</fr:display-uri><fr:route>/lcc-002T/</fr:route><fr:title text="Solvable pair">Solvable pair</fr:title><fr:taxon>Definition</fr:taxon></fr:frontmatter><fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[X,A]]></fr:tex> be <fr:link href="/lcc-002U/" title="Topological convex space" uri="https://erischel.com/lcc-002U/" display-uri="lcc-002U" type="local">topological convex spaces</fr:link>. We say the pair <fr:tex display="inline"><![CDATA[(X,A)]]></fr:tex> is a <html:em>solvable pair</html:em> if, for any continuous minmax problem <fr:tex display="inline"><![CDATA[L: X \times  A \to  \mathbb {R}]]></fr:tex>, strong duality holds.
</html:p></fr:mainmatter></fr:tree><fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>5</fr:month><fr:day>21</fr:day></fr:date><fr:uri>https://erischel.com/lcc-002V/</fr:uri><fr:display-uri>lcc-002V</fr:display-uri><fr:route>/lcc-002V/</fr:route><fr:taxon>Proposition</fr:taxon></fr:frontmatter><fr:mainmatter><html:p>
  The pair <fr:tex display="inline"><![CDATA[([0,1],[0,1])]]></fr:tex> (in other words, <fr:tex display="inline"><![CDATA[(\Delta ^1,\Delta ^1)]]></fr:tex>) is solvable.
</html:p>
  <fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>5</fr:month><fr:day>21</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Let <fr:tex display="inline"><![CDATA[L: [0,1] \times  [0,1] \to  \mathbb {R}]]></fr:tex> be a continuous minmax problem. Suppose strong duality does not hold. Then by adding a constant to <fr:tex display="inline"><![CDATA[L]]></fr:tex>, we can arrange that
    <fr:tex display="block"><![CDATA[\sup _\theta  \inf _s L(s,\theta ) < 0 < \inf _s \sup _\theta  L(s,\theta ).]]></fr:tex></html:p>
  <html:p>
        Consider the set <fr:tex display="inline"><![CDATA[P = \{(s,\theta ) \mid  L(s,\theta ) > 0\}]]></fr:tex>. Since we must have <fr:tex display="inline"><![CDATA[\sup _\theta  L(s,\theta ) > 0]]></fr:tex> for each <fr:tex display="inline"><![CDATA[s]]></fr:tex>, the first projection <fr:tex display="inline"><![CDATA[P \to  [0,1]]]></fr:tex> must be surjective. Since each fiber is convex, and hence connected, and the projection <fr:tex display="inline"><![CDATA[[0,1] \times  [0,1] \to  [0,1]]]></fr:tex> is open, <fr:tex display="inline"><![CDATA[P]]></fr:tex> is connected. As an open connected subset of a convex space, it is path connected. Hence there exists some path <fr:tex display="inline"><![CDATA[\gamma (t) \in  P]]></fr:tex> where <fr:tex display="inline"><![CDATA[\gamma (0) = (0,\theta _0)]]></fr:tex> and <fr:tex display="inline"><![CDATA[\gamma (1) = (1,\theta _1)]]></fr:tex>. In other words (picturing the square with the first coordinate horizontal), there exists a path from the left to the right side of the cube so that <fr:tex display="inline"><![CDATA[L(\gamma (t)) > 0]]></fr:tex> everywhere on the path. Dually, there also exists a path from top to bottom so that <fr:tex display="inline"><![CDATA[L]]></fr:tex> is strictly negative everywhere on that path. But they must intersect somewhere, and this is a contradiction. Hence <fr:tex display="inline"><![CDATA[L]]></fr:tex> must have a state or a costate, finishing the proof.   
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter></fr:tree><fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>5</fr:month><fr:day>21</fr:day></fr:date><fr:uri>https://erischel.com/lcc-002W/</fr:uri><fr:display-uri>lcc-002W</fr:display-uri><fr:route>/lcc-002W/</fr:route><fr:taxon>Proposition</fr:taxon></fr:frontmatter><fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[E \to  B]]></fr:tex> be a continuous, affine map between topological convex spaces. Let <fr:tex display="inline"><![CDATA[A]]></fr:tex> be another topological convex space, and suppose
  <html:ul><html:li><fr:tex display="inline"><![CDATA[(B,A)]]></fr:tex> is solvable.</html:li>
    <html:li>For every <fr:tex display="inline"><![CDATA[b \in  B]]></fr:tex>, <fr:tex display="inline"><![CDATA[(E_b,A)]]></fr:tex> is solvable, where <fr:tex display="inline"><![CDATA[E_b \subseteq  E]]></fr:tex> is the fiber.</html:li></html:ul>
  Then also <fr:tex display="inline"><![CDATA[(E,A)]]></fr:tex> is solvable. 
</html:p>
  <fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>5</fr:month><fr:day>21</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
  Recall that <fr:tex display="inline"><![CDATA[(E,A)]]></fr:tex> being solvable means the following square has the Beck-Chevalley condition for continuous <fr:tex display="inline"><![CDATA[L]]></fr:tex>:</html:p>
  
  <html:figure><fr:resource hash="49d962fd2e7a213b00b44cee9ccd9225"><fr:resource-content><html:img src="/49d962fd2e7a213b00b44cee9ccd9225.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[
    \RequirePackage {tikz-cd}
    \RequirePackage {amssymb}
  \usetikzlibrary {calc}
  \usetikzlibrary {decorations.pathmorphing}
    \tikzset{curve/.style={settings={#1},to path={(\tikztostart)
    .. controls ($(\tikztostart)!\pv{pos}!(\tikztotarget)!\pv{height}!270:(\tikztotarget)$)
    and ($(\tikztostart)!1-\pv{pos}!(\tikztotarget)!\pv{height}!270:(\tikztotarget)$)
    .. (\tikztotarget)\tikztonodes}},
    settings/.code={\tikzset{quiver/.cd,#1}
        \def\pv##1{\pgfkeysvalueof{/tikz/quiver/##1}}},
    quiver/.cd,pos/.initial=0.35,height/.initial=0}
\tikzset {tail reversed/.code={\pgfsetarrowsstart {tikzcd to}}}
\tikzset {2tail/.code={\pgfsetarrowsstart {Implies[reversed]}}}
\tikzset {2tail reversed/.code={\pgfsetarrowsstart {Implies}}}
\tikzset {no body/.style={/tikz/dash pattern=on 0 off 1mm}}

    
    \usepackage {amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
      (E,*) \ar [d] \ar [r] & (*,*) \ar [d]\\
      (E,A) \ar [r] & (*, A)
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  <html:p>Now we can factor this as follows:</html:p>
  
  <html:figure><fr:resource hash="d34d1240fb8857d719146be3e1d35f60"><fr:resource-content><html:img src="/d34d1240fb8857d719146be3e1d35f60.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[
    \RequirePackage {tikz-cd}
    \RequirePackage {amssymb}
  \usetikzlibrary {calc}
  \usetikzlibrary {decorations.pathmorphing}
    \tikzset{curve/.style={settings={#1},to path={(\tikztostart)
    .. controls ($(\tikztostart)!\pv{pos}!(\tikztotarget)!\pv{height}!270:(\tikztotarget)$)
    and ($(\tikztostart)!1-\pv{pos}!(\tikztotarget)!\pv{height}!270:(\tikztotarget)$)
    .. (\tikztotarget)\tikztonodes}},
    settings/.code={\tikzset{quiver/.cd,#1}
        \def\pv##1{\pgfkeysvalueof{/tikz/quiver/##1}}},
    quiver/.cd,pos/.initial=0.35,height/.initial=0}
\tikzset {tail reversed/.code={\pgfsetarrowsstart {tikzcd to}}}
\tikzset {2tail/.code={\pgfsetarrowsstart {Implies[reversed]}}}
\tikzset {2tail reversed/.code={\pgfsetarrowsstart {Implies}}}
\tikzset {no body/.style={/tikz/dash pattern=on 0 off 1mm}}

    
    \usepackage {amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
      (E,*) \ar [d] \ar [r] & (B,*) \ar [r] \ar [d] & (*,*) \ar [d]\\
      (E,A) \ar [r] & (B,A) \ar [r] & (*, A)
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  <html:p>
    Note that the right-hand square here has the Beck-Chevalley condition by assumption. So it suffices to show the left-hand square does. For a given <fr:tex display="inline"><![CDATA[L]]></fr:tex>, this means showing that these two functions on <fr:tex display="inline"><![CDATA[B]]></fr:tex> are the same
    <fr:tex display="block"><![CDATA[b \mapsto  \inf _{e \mapsto  b} \sup _a L(e,a)]]></fr:tex>
    <fr:tex display="block"><![CDATA[b \mapsto  \sup _a \inf _{e \mapsto  b} L(e,a)]]></fr:tex>
    But this equation, for some given <fr:tex display="inline"><![CDATA[b]]></fr:tex>, is exactly strong duality in the restriction of <fr:tex display="inline"><![CDATA[L]]></fr:tex> to <fr:tex display="inline"><![CDATA[(E_b,A)]]></fr:tex>, which must hold because this is a solvable pair by assumption.
  </html:p>
</fr:mainmatter></fr:tree>
<fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>5</fr:month><fr:day>21</fr:day></fr:date><fr:title text="Corollary">Corollary</fr:title></fr:frontmatter><fr:mainmatter><html:p>
    If <fr:tex display="inline"><![CDATA[(X,[0,1])]]></fr:tex> is solvable, so is <fr:tex display="inline"><![CDATA[(X,\Delta ^n)]]></fr:tex> for each <fr:tex display="inline"><![CDATA[n]]></fr:tex>, because the map <fr:tex display="inline"><![CDATA[\Delta ^n \to  [0,1]]]></fr:tex> which picks out the first coordinate has fibers isomorphic to <fr:tex display="inline"><![CDATA[\Delta ^{n-1},]]></fr:tex> so we can proceed by induction (the case <fr:tex display="inline"><![CDATA[n=0]]></fr:tex> being trivial.)
  </html:p></fr:mainmatter></fr:tree></fr:mainmatter></fr:tree><fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>5</fr:month><fr:day>21</fr:day></fr:date><fr:uri>https://erischel.com/lcc-002X/</fr:uri><fr:display-uri>lcc-002X</fr:display-uri><fr:route>/lcc-002X/</fr:route><fr:taxon>Lemma</fr:taxon></fr:frontmatter><fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[X]]></fr:tex> be a compact topological convex space. Suppose <fr:tex display="inline"><![CDATA[(X,\Delta ^n)]]></fr:tex> is solvable for all <fr:tex display="inline"><![CDATA[n]]></fr:tex>. Then <fr:tex display="inline"><![CDATA[(X,A)]]></fr:tex> is solvable for all topological convex spaces <fr:tex display="inline"><![CDATA[A]]></fr:tex>.
</html:p>
  <fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>5</fr:month><fr:day>21</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  Suppose for contradiction <fr:tex display="inline"><![CDATA[L: X \times  A \to  \mathbb {R}]]></fr:tex> does not have strong duality, and assume without loss of generality that <fr:tex display="inline"><![CDATA[\sup _a \inf _x L(x,a) < 0 < \inf _x \sup _a L(x,a)]]></fr:tex>. For each <fr:tex display="inline"><![CDATA[a \in  A]]></fr:tex> let <fr:tex display="inline"><![CDATA[X_a]]></fr:tex> consist of those <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex> so that <fr:tex display="inline"><![CDATA[L(x,a) \leq  0]]></fr:tex>. Given some finite family <fr:tex display="inline"><![CDATA[a_0, \dots  a_n,]]></fr:tex> consider the induced map <fr:tex display="inline"><![CDATA[a: \Delta ^n \to  A]]></fr:tex> and apply solvability to the problem <fr:tex display="inline"><![CDATA[(a_!L,X,\Delta ^n)]]></fr:tex> - this implies in particular that <fr:tex display="inline"><![CDATA[\inf _x \sup _i L(x,a_i) \leq  0]]></fr:tex>. This means the family <fr:tex display="inline"><![CDATA[X_a]]></fr:tex> has the finite intersection property, so by compactness it has nonempty intersection. But then an element <fr:tex display="inline"><![CDATA[x^*]]></fr:tex> of the intersection must satisfy <fr:tex display="inline"><![CDATA[\sup _a L(x^*,a) \leq  0,]]></fr:tex> which is a contradiction.
</fr:mainmatter></fr:tree>
</fr:mainmatter></fr:tree><fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>5</fr:month><fr:day>21</fr:day></fr:date><fr:uri>https://erischel.com/lcc-002Y/</fr:uri><fr:display-uri>lcc-002Y</fr:display-uri><fr:route>/lcc-002Y/</fr:route><fr:taxon>Corollary</fr:taxon></fr:frontmatter><fr:mainmatter><html:p>
  If <fr:tex display="inline"><![CDATA[X]]></fr:tex> is compact, <fr:tex display="inline"><![CDATA[(X,A)]]></fr:tex> is solvable for any <fr:tex display="inline"><![CDATA[A]]></fr:tex>.
</html:p>
  <fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>5</fr:month><fr:day>21</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  By <fr:link href="/lcc-002W/" title="https://erischel.com/lcc-002W/" uri="https://erischel.com/lcc-002W/" display-uri="lcc-002W" type="local">Proposition <fr:contextual-number uri="https://erischel.com/lcc-002W/" display-uri="lcc-002W" /></fr:link> and its corollary, applied to <fr:link href="/lcc-002V/" title="https://erischel.com/lcc-002V/" uri="https://erischel.com/lcc-002V/" display-uri="lcc-002V" type="local">Proposition <fr:contextual-number uri="https://erischel.com/lcc-002V/" display-uri="lcc-002V" /></fr:link>, we have <fr:tex display="inline"><![CDATA[([0,1],\Delta ^n)]]></fr:tex> solvable for all <fr:tex display="inline"><![CDATA[n]]></fr:tex>. Since <fr:tex display="inline"><![CDATA[[0,1]]]></fr:tex> is compact, this means <fr:tex display="inline"><![CDATA[([0,1],A)]]></fr:tex> is solvable for all <fr:tex display="inline"><![CDATA[A]]></fr:tex>, by <fr:link href="/lcc-002X/" title="https://erischel.com/lcc-002X/" uri="https://erischel.com/lcc-002X/" display-uri="lcc-002X" type="local">Lemma <fr:contextual-number uri="https://erischel.com/lcc-002X/" display-uri="lcc-002X" /></fr:link>. Now by duality we have <fr:tex display="inline"><![CDATA[(X,[0,1])]]></fr:tex> solvable for all <fr:tex display="inline"><![CDATA[X,]]></fr:tex> which means <fr:tex display="inline"><![CDATA[(X,\Delta ^n)]]></fr:tex> is solvable, and by using <fr:link href="/lcc-002X/" title="https://erischel.com/lcc-002X/" uri="https://erischel.com/lcc-002X/" display-uri="lcc-002X" type="local">Lemma <fr:contextual-number uri="https://erischel.com/lcc-002X/" display-uri="lcc-002X" /></fr:link> again, we're done.
</fr:mainmatter></fr:tree>
</fr:mainmatter></fr:tree><fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>4</fr:month><fr:day>30</fr:day></fr:date></fr:frontmatter><fr:mainmatter><html:p>
      By <fr:link href="/lcc-002Y/" title="https://erischel.com/lcc-002Y/" uri="https://erischel.com/lcc-002Y/" display-uri="lcc-002Y" type="local">Corollary <fr:contextual-number uri="https://erischel.com/lcc-002Y/" display-uri="lcc-002Y" /></fr:link>, the pair <fr:tex display="inline"><![CDATA[(X,A)]]></fr:tex> is solvable, and strong duality holds. Since <fr:tex display="inline"><![CDATA[X,A]]></fr:tex> are both compact, there must exist <fr:tex display="inline"><![CDATA[x^*,a^*]]></fr:tex> attaining the infimum <fr:tex display="inline"><![CDATA[\inf _x \sup _a L(x,a)]]></fr:tex> and the supremum <fr:tex display="inline"><![CDATA[\sup _a \inf _x L(x,a)]]></fr:tex>. These form an equilibrium.
    </html:p></fr:mainmatter></fr:tree><html:p>
    It is interesting to note the use of compactness here. Recall that topological compactness is closely connected with the property, also called compactness, of <fr:tex display="inline"><![CDATA[\operatorname {\mathrm {Hom}}(X,-)]]></fr:tex> preserving filtered colimits (this property, instantiated in <fr:tex display="inline"><![CDATA[\mathsf {Top}]]></fr:tex>, is not actually the same thing as topological compactness). Our use of compactness here, to derive from the existence of a state in the "finitary" subproblems <fr:tex display="inline"><![CDATA[(L,X,\Delta ^n)]]></fr:tex> the existence of a state in the entire problem, does not have this form (nor is it even the case that <fr:tex display="inline"><![CDATA[A]]></fr:tex> is the colimit of its subsimplices), but it's possible that the proof could be rewritten to make this step more categorical.
  </html:p><html:p>
    The idea of proceeding by induction on <fr:tex display="inline"><![CDATA[n]]></fr:tex> was inspired by <fr:link href="/weinstein-elementary-minimax-2022/" title="Two Elementary Proofs of the Minimax Theorem" uri="https://erischel.com/weinstein-elementary-minimax-2022/" display-uri="weinstein-elementary-minimax-2022" type="local">Reference <fr:contextual-number uri="https://erischel.com/weinstein-elementary-minimax-2022/" display-uri="weinstein-elementary-minimax-2022" /></fr:link>, although our proof is rather different - they are only looking at <html:em>affine</html:em> games, and hence their induction step is completely different (and they have no need for the complicated <fr:tex display="inline"><![CDATA[n=1]]></fr:tex> base case that we do), and since we are not merely interested in games on simplices, we need an additional compactness argument.
  </html:p><html:p>We can use the minimax theorem to derive other statements of interest about convex optimization</html:p><fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>5</fr:month><fr:day>22</fr:day></fr:date><fr:uri>https://erischel.com/lcc-002Z/</fr:uri><fr:display-uri>lcc-002Z</fr:display-uri><fr:route>/lcc-002Z/</fr:route><fr:title text="The separating hyperplane theorem (compact case)">The separating hyperplane theorem (compact case)</fr:title><fr:taxon>Theorem</fr:taxon></fr:frontmatter><fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[X,Y \subset  \mathbb {R}^k]]></fr:tex> be disjoint, compact, convex subspaces. Then there exists <fr:tex display="inline"><![CDATA[v \in  \mathbb {R}^k]]></fr:tex> and <fr:tex display="inline"><![CDATA[\alpha  \in  \mathbb {R}]]></fr:tex> so that <fr:tex display="inline"><![CDATA[\langle  v,x \rangle  + \alpha  < 0 < \langle  v,y \rangle  + \alpha ]]></fr:tex> whenever <fr:tex display="inline"><![CDATA[x \in  X, y \in  Y]]></fr:tex>.
</html:p>
  <fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>5</fr:month><fr:day>22</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>Consider the minmax problem</html:p> 
  <fr:tex display="block"><![CDATA[(L,X \times  Y, A = \overline {B(0,1)} \subseteq  \mathbb {R}^k), L(x,y,v) = \langle  v,y-x \rangle .]]></fr:tex>
  <html:p>
    Since the closed unit ball is compact, by the minimax theorem there exists an equilibrium <fr:tex display="inline"><![CDATA[x^*,y^*,v^*]]></fr:tex>, which then satisfies
    <fr:tex display="block"><![CDATA[\langle  v,y^*-x^* \rangle  \leq  \langle  v^*,y^*-x^* \rangle  \leq  \langle  v^*,y-x \rangle ]]></fr:tex></html:p>
  <html:p>
    By disjointness, <fr:tex display="inline"><![CDATA[y^*-x^*]]></fr:tex> must be nonzero, so with a suitable choice of <fr:tex display="inline"><![CDATA[v]]></fr:tex> we can clearly make the left-hand item strictly positive. Hence <fr:tex display="inline"><![CDATA[\langle  v^*,y^*-x^* \rangle  =: \delta  > 0]]></fr:tex>. Now there must exist some <fr:tex display="inline"><![CDATA[\alpha  \in  \mathbb {R}]]></fr:tex> so that <fr:tex display="inline"><![CDATA[\langle  v^*,y^* \rangle  + \alpha  = -\langle  v^*,x^* \rangle  - \alpha  = \delta  /2 > 0]]></fr:tex>.
  </html:p>
  <html:p>
    By the equilibrium property, we see that <fr:tex display="inline"><![CDATA[y^*]]></fr:tex> must minimize <fr:tex display="inline"><![CDATA[\langle  v^*,y \rangle ]]></fr:tex> on <fr:tex display="inline"><![CDATA[Y]]></fr:tex>, and analogously <fr:tex display="inline"><![CDATA[x^*]]></fr:tex> must maximize <fr:tex display="inline"><![CDATA[\langle  v^*,x \rangle ]]></fr:tex> on <fr:tex display="inline"><![CDATA[X]]></fr:tex>. Hence for all <fr:tex display="inline"><![CDATA[x,y]]></fr:tex>, we have
    <fr:tex display="block"><![CDATA[\langle  v^*,x \rangle  + \alpha  \leq  -\delta  /2 < 0 < \delta  /2 \leq  \langle  v^*,y \rangle  + \alpha ,]]></fr:tex> which concludes the proof.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter></fr:tree><fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>5</fr:month><fr:day>22</fr:day></fr:date><fr:uri>https://erischel.com/lcc-0030/</fr:uri><fr:display-uri>lcc-0030</fr:display-uri><fr:route>/lcc-0030/</fr:route><fr:title text="The separating hyperplane theorem (general case)">The separating hyperplane theorem (general case)</fr:title><fr:taxon>Theorem</fr:taxon></fr:frontmatter><fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[X,Y \subseteq  \mathbb {R}^k]]></fr:tex> be disjoint convex subsets. Then there exists <fr:tex display="inline"><![CDATA[v,\alpha ]]></fr:tex> so that <fr:tex display="inline"><![CDATA[\langle  v,x \rangle  + \alpha  \leq  0 \leq  \langle  v,y \rangle  + \alpha ]]></fr:tex> for all <fr:tex display="inline"><![CDATA[x \in  X, y \in  Y]]></fr:tex>.
</html:p>
  <fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>5</fr:month><fr:day>22</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Let <fr:tex display="inline"><![CDATA[K_i, L_i, i=1, \dots ]]></fr:tex> be two sequences of sets with the following properties:
    <html:ul><html:li>For each <fr:tex display="inline"><![CDATA[i]]></fr:tex>, <fr:tex display="inline"><![CDATA[K_i,L_i]]></fr:tex> are disjoint.</html:li>
      <html:li>For each <fr:tex display="inline"><![CDATA[i]]></fr:tex>, <fr:tex display="inline"><![CDATA[K_i \subseteq  K_{i+1}]]></fr:tex></html:li>
      <html:li>Each of the <fr:tex display="inline"><![CDATA[K_i,L_i]]></fr:tex> are compact and convex</html:li>
      <html:li><fr:tex display="inline"><![CDATA[\cup _i K_i = X, \cup _i L_i = Y]]></fr:tex></html:li></html:ul>
    These can be constructed for example by taking the intersection of <fr:tex display="inline"><![CDATA[X]]></fr:tex> and <fr:tex display="inline"><![CDATA[Y]]></fr:tex> with the boxes <fr:tex display="inline"><![CDATA[[-i,i]^k]]></fr:tex> to obtain compact, convex, disjoint subsets which exhaust <fr:tex display="inline"><![CDATA[X]]></fr:tex> and <fr:tex display="inline"><![CDATA[Y]]></fr:tex>.
  </html:p>
  <html:p>
    Now apply <fr:link href="/lcc-002Z/" title="The separating hyperplane theorem (compact case)" uri="https://erischel.com/lcc-002Z/" display-uri="lcc-002Z" type="local">Theorem <fr:contextual-number uri="https://erischel.com/lcc-002Z/" display-uri="lcc-002Z" /></fr:link> to obtain a sequence of <fr:tex display="inline"><![CDATA[v_i \in  \overline {B(0,1)}]]></fr:tex> so that <fr:tex display="inline"><![CDATA[\langle  v_i,- \rangle ]]></fr:tex> is negative on <fr:tex display="inline"><![CDATA[K_i]]></fr:tex> and positive on <fr:tex display="inline"><![CDATA[L_i]]></fr:tex>. By compactness of the unit ball, this sequence has a point of density <fr:tex display="inline"><![CDATA[v^*]]></fr:tex>. Now for every pair <fr:tex display="inline"><![CDATA[x \in  X, y \in  Y]]></fr:tex>, we can find some <fr:tex display="inline"><![CDATA[i]]></fr:tex> so that <fr:tex display="inline"><![CDATA[\langle  v_i,x \rangle ]]></fr:tex> is within an arbitrary <fr:tex display="inline"><![CDATA[\epsilon ]]></fr:tex> of <fr:tex display="inline"><![CDATA[\langle  v^*,x \rangle ]]></fr:tex> and the same is true for <fr:tex display="inline"><![CDATA[y]]></fr:tex>, and so that <fr:tex display="inline"><![CDATA[x \in  K_i, y \in  L_i]]></fr:tex>. But then <fr:tex display="inline"><![CDATA[\langle  v^*,y-x \rangle ]]></fr:tex> is within <fr:tex display="inline"><![CDATA[2\epsilon ]]></fr:tex> of <fr:tex display="inline"><![CDATA[\langle  v_i,y-x \rangle ,]]></fr:tex> which is positive, so that <fr:tex display="inline"><![CDATA[\langle  v^*,y-x \rangle  \geq  0]]></fr:tex>.
  </html:p>
  <html:p>
    Now for each <fr:tex display="inline"><![CDATA[i]]></fr:tex>, <fr:tex display="inline"><![CDATA[\langle  v^*,- \rangle ]]></fr:tex> has a maximizer <fr:tex display="inline"><![CDATA[x_i^*]]></fr:tex> on <fr:tex display="inline"><![CDATA[K_i]]></fr:tex> and a minimizer <fr:tex display="inline"><![CDATA[y_i^*]]></fr:tex> on <fr:tex display="inline"><![CDATA[L_i]]></fr:tex>. Hence, by an argument analogous to the proof of <fr:link href="/lcc-002Z/" title="The separating hyperplane theorem (compact case)" uri="https://erischel.com/lcc-002Z/" display-uri="lcc-002Z" type="local">Theorem <fr:contextual-number uri="https://erischel.com/lcc-002Z/" display-uri="lcc-002Z" /></fr:link>, there is a nonempty closed interval <fr:tex display="inline"><![CDATA[[a_i,b_i]]]></fr:tex> so that, if <fr:tex display="inline"><![CDATA[\alpha  \in  [a_i,b_i],]]></fr:tex> we have <fr:tex display="inline"><![CDATA[\langle  v^*,- \rangle  + \alpha ]]></fr:tex> <fr:tex display="inline"><![CDATA[\leq  0]]></fr:tex> on <fr:tex display="inline"><![CDATA[K_i]]></fr:tex> and <fr:tex display="inline"><![CDATA[\geq  0]]></fr:tex> on <fr:tex display="inline"><![CDATA[L_i]]></fr:tex>. But since the sets <fr:tex display="inline"><![CDATA[K_i, L_i]]></fr:tex> are increasing this sequence of intervals must be decreasing, and hence the intersection must be nonempty - and then any <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex> in this intersection will make <fr:tex display="inline"><![CDATA[\langle  v^*,- \rangle  + \alpha ]]></fr:tex> nonpositive on <fr:tex display="inline"><![CDATA[X]]></fr:tex>, nonnegative on <fr:tex display="inline"><![CDATA[Y]]></fr:tex>, as desired.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter></fr:tree></fr:mainmatter>
            </fr:tree>
            <fr:tree show-metadata="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>
                    <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                  </fr:author>
                </fr:authors>
                <fr:date>
                  <fr:year>2024</fr:year>
                  <fr:month>4</fr:month>
                  <fr:day>30</fr:day>
                </fr:date>
                <fr:title text="The Legendre Transform">The Legendre Transform</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>25</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-001P/</fr:uri>
                    <fr:display-uri>lcc-001P</fr:display-uri>
                    <fr:route>/lcc-001P/</fr:route>
                    <fr:title text="Convex conjugate">Convex conjugate</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
    Let <fr:tex display="inline"><![CDATA[V]]></fr:tex> be a (real) vector space, and <fr:tex display="inline"><![CDATA[f: V \to  \mathbb {R}]]></fr:tex> be a function (not necessarily linear).
    Then the <html:em>convex conjugate</html:em> <fr:tex display="inline"><![CDATA[f^*: V^* \to  \mathbb {R}]]></fr:tex> is defined by
    <fr:tex display="block"><![CDATA[f^*(\alpha ) = \sup _x \alpha (x) - f(x)]]></fr:tex></html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
    The convex conjugate is also called the <html:em>Legendre transform</html:em> or the <html:em>Fenchel-Legendre transform</html:em>. It is intimately related to convex duality. We will prove the following fundamental property of the convex conjugate using the categorical language of minmax problems, and along the way we will see the role that convex duality plays. Note that our invocation of the term "strong duality" here is somewhat more complicated than strictly necessary - normally one would merely invoke the separating hyperplane theorem directly.
  </html:p>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>25</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-001Q/</fr:uri>
                    <fr:display-uri>lcc-001Q</fr:display-uri>
                    <fr:route>/lcc-001Q/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
    Let <fr:tex display="inline"><![CDATA[f: V \to  \mathbb {R}]]></fr:tex> be convex, so that <fr:tex display="inline"><![CDATA[(V,*,f)]]></fr:tex> is a minmax problem.
    Then we can form the modified minmax problem <fr:tex display="inline"><![CDATA[L = (V,V^*,(x,\alpha ) \mapsto  f(x) - \alpha (x))]]></fr:tex> - note that, up to a sign change in the domain, this amounts to adding the constraint <fr:tex display="inline"><![CDATA[x = 0]]></fr:tex>.
</html:p>
                    <html:p>
    Then <fr:tex display="inline"><![CDATA[(L^*)^+ = -L^- = f^*]]></fr:tex></html:p>
                    <html:p>
    Note that the two uses of the asterisk in this equation conflict.
    We have both the reversed optimization problem <fr:tex display="inline"><![CDATA[L^*]]></fr:tex> given by flipping the variables,
    and the <fr:link href="/lcc-001P/" title="Convex conjugate" uri="https://erischel.com/lcc-001P/" display-uri="lcc-001P" type="local">convex conjugate</fr:link> function <fr:tex display="inline"><![CDATA[f^*]]></fr:tex>. It may be good to alter this notation to resolve the conflict.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>25</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-001T/</fr:uri>
                    <fr:display-uri>lcc-001T</fr:display-uri>
                    <fr:route>/lcc-001T/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
    Given a minmax problem <fr:tex display="inline"><![CDATA[L = (X,Y,L)]]></fr:tex> where <fr:tex display="inline"><![CDATA[X]]></fr:tex> is a finite-dimensional real vector space, let
    <fr:tex display="inline"><![CDATA[L|_{0} = (X, Y \oplus  X^*, L \oplus  - \langle  -,- \rangle )]]></fr:tex>
    Note that <fr:tex display="inline"><![CDATA[(L|_0)^+(x) = \infty ]]></fr:tex> when <fr:tex display="inline"><![CDATA[x = 0]]></fr:tex> and <fr:tex display="inline"><![CDATA[L^+(0)]]></fr:tex> otherwise.
    Thus this amounts to adding a constraint that <fr:tex display="inline"><![CDATA[x = 0]]></fr:tex>.
    Analogously, define <fr:tex display="inline"><![CDATA[L|^0 = (L^*|_0)^* = (X \oplus  Y^*, Y, L \oplus  \langle  -, - \rangle )]]></fr:tex></html:p>
                    <html:p>
    Then the Legendre transform <fr:tex display="inline"><![CDATA[f^* = ((f|_0)^*)^+]]></fr:tex> (viewing both <fr:tex display="inline"><![CDATA[f]]></fr:tex> and <fr:tex display="inline"><![CDATA[f^*]]></fr:tex> as minmax problems using the inclusion <fr:tex display="inline"><![CDATA[\mathsf {Conv} \to  \mathsf {Minmax}]]></fr:tex>)
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>25</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-001U/</fr:uri>
                    <fr:display-uri>lcc-001U</fr:display-uri>
                    <fr:route>/lcc-001U/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
    Let <fr:tex display="inline"><![CDATA[f: X \to  \mathbb {R}]]></fr:tex> be a continuous convex function defined on a vector space.
    Then there is strong duality in the minmax problem <fr:tex display="inline"><![CDATA[f|_0]]></fr:tex></html:p>
  <fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>4</fr:month><fr:day>25</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
    <html:p>
        Observe that <fr:tex display="inline"><![CDATA[\{x,t \mid  f(x) \leq  t\} \subseteq  X \oplus  \mathbb {R}]]></fr:tex> is a closed convex set.
        Hence there is a hyperplane through <fr:tex display="inline"><![CDATA[(0,f(0))]]></fr:tex> so that the entire set is in one half-space.
        This means a nontrivial affine equation <fr:tex display="inline"><![CDATA[A(x,t) \geq  b]]></fr:tex> which is satisfied whenever <fr:tex display="inline"><![CDATA[t \geq  f(x)]]></fr:tex>, and where <fr:tex display="inline"><![CDATA[A(0,f(0)) = b]]></fr:tex>.
    </html:p>
    <html:p>
        Clearly <fr:tex display="inline"><![CDATA[A(x,t) = \alpha _0(x) - at]]></fr:tex> for some <fr:tex display="inline"><![CDATA[\alpha _0 \in  X^*, a \in  \mathbb {R}]]></fr:tex>.
        If <fr:tex display="inline"><![CDATA[a = 0]]></fr:tex> we have <fr:tex display="inline"><![CDATA[\alpha _0(x) \leq  b]]></fr:tex> for <html:em>all</html:em> <fr:tex display="inline"><![CDATA[x]]></fr:tex>, which impossible.
        So by normalizing let's set <fr:tex display="inline"><![CDATA[a = 1]]></fr:tex>.
        This means <fr:tex display="inline"><![CDATA[\alpha _0 (x) + f(x) \geq  b = f(0)]]></fr:tex>.
    </html:p>
    <html:p>
        Recall that the minmax problem <fr:tex display="inline"><![CDATA[f|_0]]></fr:tex> is given by <fr:tex display="inline"><![CDATA[(X,X^*,L(x,\alpha ) \mapsto  f(x) - \alpha (x))]]></fr:tex>.
        Strong duality means <fr:tex display="inline"><![CDATA[\inf _x\sup _\alpha  L(x,\alpha ) = \sup _\alpha  \inf _x L(x,\alpha )]]></fr:tex>.
        We always have the inequality <fr:tex display="inline"><![CDATA[\geq ]]></fr:tex>, so it suffices to identify an <fr:tex display="inline"><![CDATA[\alpha ^*]]></fr:tex> so that
        <fr:tex display="inline"><![CDATA[\inf _x \sup _\alpha  L(x,\alpha ) \leq  \inf _x L(x,\alpha ^*)]]></fr:tex></html:p>
    <html:p>
        Clearly, for our <fr:tex display="inline"><![CDATA[L]]></fr:tex>, we have <fr:tex display="inline"><![CDATA[\inf _x\sup _\alpha  L(x,\alpha ) = f(0)]]></fr:tex>, since the supremum is <fr:tex display="inline"><![CDATA[\infty ]]></fr:tex> unless <fr:tex display="inline"><![CDATA[x = 0]]></fr:tex>.
        On the other hand, taking <fr:tex display="inline"><![CDATA[\alpha ^* = -\alpha _0]]></fr:tex>, we have <fr:tex display="inline"><![CDATA[f(0) \leq  f(x) - \alpha ^*(x)]]></fr:tex> for all <fr:tex display="inline"><![CDATA[x]]></fr:tex> by construction, finishing the proof.
    </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>6</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-003C/</fr:uri>
                    <fr:display-uri>lcc-003C</fr:display-uri>
                    <fr:route>/lcc-003C/</fr:route>
                    <fr:taxon>Lemma</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Given a commutative square:
  
  <html:figure><fr:resource hash="b7a2ac7a15891d75f1fd68c16adbea6d"><fr:resource-content><html:img src="/b7a2ac7a15891d75f1fd68c16adbea6d.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[
    \RequirePackage {tikz-cd}
    \RequirePackage {amssymb}
  \usetikzlibrary {calc}
  \usetikzlibrary {decorations.pathmorphing}
    \tikzset{curve/.style={settings={#1},to path={(\tikztostart)
    .. controls ($(\tikztostart)!\pv{pos}!(\tikztotarget)!\pv{height}!270:(\tikztotarget)$)
    and ($(\tikztostart)!1-\pv{pos}!(\tikztotarget)!\pv{height}!270:(\tikztotarget)$)
    .. (\tikztotarget)\tikztonodes}},
    settings/.code={\tikzset{quiver/.cd,#1}
        \def\pv##1{\pgfkeysvalueof{/tikz/quiver/##1}}},
    quiver/.cd,pos/.initial=0.35,height/.initial=0}
\tikzset {tail reversed/.code={\pgfsetarrowsstart {tikzcd to}}}
\tikzset {2tail/.code={\pgfsetarrowsstart {Implies[reversed]}}}
\tikzset {2tail reversed/.code={\pgfsetarrowsstart {Implies}}}
\tikzset {no body/.style={/tikz/dash pattern=on 0 off 1mm}}

    
    \usepackage {amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    (X_1,A_1) \ar [r] \ar [d] & (Y_1,B_1) \ar [d]\\
    (X_2,A_2) \ar [r] & (Y_2,B_2)
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  in <fr:tex display="inline"><![CDATA[\mathsf {Set}^\Delta  \times  \mathsf {Set}^{\Delta ,\mathrm {op}},]]></fr:tex> with the Beck-Chevalley property for the fibration from <fr:tex display="inline"><![CDATA[\mathsf {Minmax},]]></fr:tex>
  let <fr:tex display="inline"><![CDATA[(Z,C)]]></fr:tex> be some other pair of convex spaces. Then the square 
  
  <html:figure><fr:resource hash="d4b53e84413f0d97c39e8f378838b0f9"><fr:resource-content><html:img src="/d4b53e84413f0d97c39e8f378838b0f9.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[
    \RequirePackage {tikz-cd}
    \RequirePackage {amssymb}
  \usetikzlibrary {calc}
  \usetikzlibrary {decorations.pathmorphing}
    \tikzset{curve/.style={settings={#1},to path={(\tikztostart)
    .. controls ($(\tikztostart)!\pv{pos}!(\tikztotarget)!\pv{height}!270:(\tikztotarget)$)
    and ($(\tikztostart)!1-\pv{pos}!(\tikztotarget)!\pv{height}!270:(\tikztotarget)$)
    .. (\tikztotarget)\tikztonodes}},
    settings/.code={\tikzset{quiver/.cd,#1}
        \def\pv##1{\pgfkeysvalueof{/tikz/quiver/##1}}},
    quiver/.cd,pos/.initial=0.35,height/.initial=0}
\tikzset {tail reversed/.code={\pgfsetarrowsstart {tikzcd to}}}
\tikzset {2tail/.code={\pgfsetarrowsstart {Implies[reversed]}}}
\tikzset {2tail reversed/.code={\pgfsetarrowsstart {Implies}}}
\tikzset {no body/.style={/tikz/dash pattern=on 0 off 1mm}}

    
    \usepackage {amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    (X_1 \times  Z,A_1 \times  C) \ar [r] \ar [d] & (Y_1 \times  Z,B_1 \times  C) \ar [d]\\
    (X_2 \times  Z,A_2 \times  C) \ar [r] & (Y_2 \times  Z,B_2 \times  C)
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  also has the Beck-Chevalley condition
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>25</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-001V/</fr:uri>
                    <fr:display-uri>lcc-001V</fr:display-uri>
                    <fr:route>/lcc-001V/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
    Let <fr:tex display="inline"><![CDATA[f]]></fr:tex> be a convex function.
    Then <fr:tex display="inline"><![CDATA[f = (f^*)^*]]></fr:tex> (where <fr:tex display="inline"><![CDATA[f^*]]></fr:tex> denotes the Legendre transform), under the identification <fr:tex display="inline"><![CDATA[(X^*)^* = X]]></fr:tex> of a finite-dimensional vector space with its double dual. 
</html:p>
  <fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>4</fr:month><fr:day>25</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
    <html:p>
        Recall that <fr:tex display="inline"><![CDATA[f^* = ((f|_0)^*)^+,]]></fr:tex> as a minmax problem.
        Then the claim is that <fr:tex display="block"><![CDATA[(((((f|_0)^*)^+)|_0)^*)^+ = f.]]></fr:tex>
        Using first the rewrite <fr:tex display="inline"><![CDATA[((-)^*)^+ = ((-)^-)^*,]]></fr:tex> and the notation <fr:tex display="inline"><![CDATA[((-)^*|_0)^* = -|^0,]]></fr:tex>
        we can rewrite that as
        <fr:tex display="block"><![CDATA[((f|_0)^-|^0)^+]]></fr:tex></html:p>
    <html:p>
        Now observe that, restricted to the subcategory <fr:tex display="inline"><![CDATA[\mathsf {Minmax}_l]]></fr:tex> given by minmax problems <fr:tex display="inline"><![CDATA[(X,Y,L)]]></fr:tex> where <fr:tex display="inline"><![CDATA[X,Y]]></fr:tex> are real vector spaces, and those homomorphisms given by linear (rather than merely affine) maps, <fr:tex display="inline"><![CDATA[(-)|_0]]></fr:tex> and <fr:tex display="inline"><![CDATA[-|^0]]></fr:tex> form endofunctors, and <fr:tex display="inline"><![CDATA[(-)|_0 \dashv  (-)|^0]]></fr:tex>.
    </html:p>
    <html:p>
        Since <fr:tex display="inline"><![CDATA[(-)^-]]></fr:tex> is left adjoint to the inclusion, we have <fr:tex display="inline"><![CDATA[(-)|_0^- \dashv  -|^0]]></fr:tex>.
        Hence there is a canonical map, the unit of the adjunction, <fr:tex display="inline"><![CDATA[L \to  (L|_0)^-|^0]]></fr:tex> for any <fr:tex display="inline"><![CDATA[L]]></fr:tex>.
        If <fr:tex display="inline"><![CDATA[L = (X,*,f)]]></fr:tex> is an element of <fr:tex display="inline"><![CDATA[\mathsf {Conv}]]></fr:tex>, then by the universal property, this map factors over <fr:tex display="inline"><![CDATA[((f|_0)^-|^0)^+]]></fr:tex>. This gives us the inequality <fr:tex display="inline"><![CDATA[f \geq  (f^*)^*]]></fr:tex>.
    </html:p>
    <html:p>
        (Note that this inequality actually holds even if <fr:tex display="inline"><![CDATA[f]]></fr:tex> is not convex, and indeed we haven't really used convexity yet).
    </html:p>

    <html:p>
        Observe that, using the natural identification <fr:tex display="inline"><![CDATA[(X^*)^* = X]]></fr:tex>, we have <fr:tex display="block"><![CDATA[(f|_0)|^0 = (X \oplus  X, X^*, (x,x';\alpha ) \mapsto  f(x) - \alpha (x) + \alpha (x')).]]></fr:tex> Clearly <fr:tex display="inline"><![CDATA[\inf _x \sup _\alpha  f(x) - \alpha (x) + \alpha (x') = f(x'),]]></fr:tex> since the supremum is infinite unless <fr:tex display="inline"><![CDATA[x = x']]></fr:tex>. But observe that <fr:tex display="inline"><![CDATA[(f^*)^*(x') = \sup _\alpha  \inf _x f(x) - \alpha (x) + \alpha (x')]]></fr:tex></html:p>
    <html:p>
        Our claim now is that we may exchange these extremizers by strong duality. This amounts to the claim that the local Beck-Chevalley property holds for this square at <fr:tex display="inline"><![CDATA[(f|_0)|^0]]></fr:tex>:
        
  <html:figure><fr:resource hash="2171a835266bf1a007930945708deb76"><fr:resource-content><html:img src="/2171a835266bf1a007930945708deb76.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[
    \RequirePackage {tikz-cd}
    \RequirePackage {amssymb}
  \usetikzlibrary {calc}
  \usetikzlibrary {decorations.pathmorphing}
    \tikzset{curve/.style={settings={#1},to path={(\tikztostart)
    .. controls ($(\tikztostart)!\pv{pos}!(\tikztotarget)!\pv{height}!270:(\tikztotarget)$)
    and ($(\tikztostart)!1-\pv{pos}!(\tikztotarget)!\pv{height}!270:(\tikztotarget)$)
    .. (\tikztotarget)\tikztonodes}},
    settings/.code={\tikzset{quiver/.cd,#1}
        \def\pv##1{\pgfkeysvalueof{/tikz/quiver/##1}}},
    quiver/.cd,pos/.initial=0.35,height/.initial=0}
\tikzset {tail reversed/.code={\pgfsetarrowsstart {tikzcd to}}}
\tikzset {2tail/.code={\pgfsetarrowsstart {Implies[reversed]}}}
\tikzset {2tail reversed/.code={\pgfsetarrowsstart {Implies}}}
\tikzset {no body/.style={/tikz/dash pattern=on 0 off 1mm}}

    
    \usepackage {amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
            \begin {tikzcd}
            (X \oplus  (X^*)^*, *) \ar [d] \ar [r] & ((X^*)^*, *) \ar [d]\\
            (X \oplus  (X^*)^*, X^*) \ar [r] & ((X^*)^*, X^*)
            \end {tikzcd}
        ]]></fr:resource-source></fr:resource></html:figure></html:p>
    <html:p>
        But by <fr:link href="/lcc-001U/" title="https://erischel.com/lcc-001U/" uri="https://erischel.com/lcc-001U/" display-uri="lcc-001U" type="local">Proposition <fr:contextual-number uri="https://erischel.com/lcc-001U/" display-uri="lcc-001U" /></fr:link>, strong duality holds in every square of the form
        
  <html:figure><fr:resource hash="391f4d7c7e1fcef99810b65ed1eff27b"><fr:resource-content><html:img src="/391f4d7c7e1fcef99810b65ed1eff27b.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[
    \RequirePackage {tikz-cd}
    \RequirePackage {amssymb}
  \usetikzlibrary {calc}
  \usetikzlibrary {decorations.pathmorphing}
    \tikzset{curve/.style={settings={#1},to path={(\tikztostart)
    .. controls ($(\tikztostart)!\pv{pos}!(\tikztotarget)!\pv{height}!270:(\tikztotarget)$)
    and ($(\tikztostart)!1-\pv{pos}!(\tikztotarget)!\pv{height}!270:(\tikztotarget)$)
    .. (\tikztotarget)\tikztonodes}},
    settings/.code={\tikzset{quiver/.cd,#1}
        \def\pv##1{\pgfkeysvalueof{/tikz/quiver/##1}}},
    quiver/.cd,pos/.initial=0.35,height/.initial=0}
\tikzset {tail reversed/.code={\pgfsetarrowsstart {tikzcd to}}}
\tikzset {2tail/.code={\pgfsetarrowsstart {Implies[reversed]}}}
\tikzset {2tail reversed/.code={\pgfsetarrowsstart {Implies}}}
\tikzset {no body/.style={/tikz/dash pattern=on 0 off 1mm}}

    
    \usepackage {amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
            \begin {tikzcd}
            (X, *) \ar [d] \ar [r] & (*, *) \ar [d]\\
            (X, X^*) \ar [r] & (*, X^*)
            \end {tikzcd}
        ]]></fr:resource-source></fr:resource></html:figure>

        and by <fr:link href="/lcc-003C/" title="https://erischel.com/lcc-003C/" uri="https://erischel.com/lcc-003C/" display-uri="lcc-003C" type="local">Lemma <fr:contextual-number uri="https://erischel.com/lcc-003C/" display-uri="lcc-003C" /></fr:link>, this is establishes that the previous square has the Beck-Chevalley condition as well, which finishes the proof.
    </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
              </fr:mainmatter>
            </fr:tree>
            <fr:tree show-metadata="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>
                    <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                  </fr:author>
                </fr:authors>
                <fr:date>
                  <fr:year>2024</fr:year>
                  <fr:month>4</fr:month>
                  <fr:day>30</fr:day>
                </fr:date>
                <fr:title text="Misc stuff (sorting)">Misc stuff (sorting)</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>26</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-001Y/</fr:uri>
                    <fr:display-uri>lcc-001Y</fr:display-uri>
                    <fr:route>/lcc-001Y/</fr:route>
                    <fr:title text="Composition of minmax problems">Composition of minmax problems</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
    Let <fr:tex display="inline"><![CDATA[Y]]></fr:tex> be a real vector space, and let <fr:tex display="inline"><![CDATA[(X,Y,L), (Y^*,Z,L)]]></fr:tex> be minmax problems.
    Then we can try to define a composite minmax problem
    <fr:tex display="block"><![CDATA[L\circ _Y L'(x,z) = \sup _y \inf _{y'} L(x,y) + L(y',z) - y'(y)]]></fr:tex></html:p>
                    <html:p>
    For this composition to be associative relies on a strong duality property. We probably shouldn't want to treat this as well-defined unless it holds.
</html:p>
                    <html:p>
    Note that by the convex duality stuff, the minmax problem <fr:tex display="inline"><![CDATA[Y^*,Y,\operatorname {ev}]]></fr:tex> acts as an identity for this composition.
</html:p>
                    <html:p>
    This may fit together into a double category type structure for minmax problems (maybe restricted to linear maps between the spaces).
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>23</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-001M/</fr:uri>
                    <fr:display-uri>lcc-001M</fr:display-uri>
                    <fr:route>/lcc-001M/</fr:route>
                    <fr:title text="Minmax problems are not star-autonomous">Minmax problems are not star-autonomous</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
    Since the category of <fr:link href="/lcc-001C/" title="Minmax problem" uri="https://erischel.com/lcc-001C/" display-uri="lcc-001C" type="local">minmax problems</fr:link> is very similar to a <span class="nlab"><fr:link href="https://ncatlab.org/nlab/show/Chu construction" type="external">Chu construction</fr:link></span>,
    we might hope that we could define a similar star-autonomous structure on minmax problems. Unfortunately, this does not work. We do have the duality, <fr:link href="/lcc-001J/" title="Dual minmax problem" uri="https://erischel.com/lcc-001J/" display-uri="lcc-001J" type="local">Dual minmax problem</fr:link>, but it doesn't extend to a star-autonomous structure.
</html:p>
                    <html:p>
    Morally speaking, the tensor product of <fr:tex display="inline"><![CDATA[(X,Y,L), (X',Y',L')]]></fr:tex> would be given by <fr:tex display="inline"><![CDATA[X \otimes  X']]></fr:tex> in the forwards direction, and pairs of affine functions <fr:tex display="inline"><![CDATA[f: X \to  Y', g: X' \to  Y]]></fr:tex> satisfying <fr:tex display="inline"><![CDATA[L(x,g(x')) = L'(x',f(x))]]></fr:tex> in the backwards direction, with either of these expressions giving the pairing.
    Since the first formula implies the pairing is convex in <fr:tex display="inline"><![CDATA[x]]></fr:tex> (as it must be), but the latter implies it's concave in <fr:tex display="inline"><![CDATA[x]]></fr:tex>, <fr:tex display="inline"><![CDATA[g]]></fr:tex> must take values only those <fr:tex display="inline"><![CDATA[y]]></fr:tex> so that <fr:tex display="inline"><![CDATA[L(-,y)]]></fr:tex> is affine, and similarly for <fr:tex display="inline"><![CDATA[f]]></fr:tex>.
    This can easily be an empty set, but in a star-autonomous category we always have a canonical costate <fr:tex display="inline"><![CDATA[L \otimes  L^* \to  I]]></fr:tex>, which would be impossible in that case.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>23</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/lcc-001K/</fr:uri>
                    <fr:display-uri>lcc-001K</fr:display-uri>
                    <fr:route>/lcc-001K/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
    The category of minmax problems has products, given by
    <fr:tex display="block"><![CDATA[(X,Y,L) \times  (X',Y',L') = (X \times  X', Y \oplus  Y', (L \times  L')),]]></fr:tex>
    <fr:tex display="block"><![CDATA[(L \times  L')(x,x'; \alpha  y + \beta  y') = \alpha  L(x,y) + \beta  L'(x',y')]]></fr:tex></html:p>
                    <html:p>
                      <fr:tex display="inline"><![CDATA[(L \times  L')^+(x,x') = \max  (L^+(x),L'^+(x'))]]></fr:tex>
                    </html:p>
                    <html:p>
    Here <fr:tex display="inline"><![CDATA[Y \oplus  Y']]></fr:tex> denotes the <fr:link href="/lcc-001K/" title="https://erischel.com/lcc-001K/" uri="https://erischel.com/lcc-001K/" display-uri="lcc-001K" type="local">coproduct of convex spaces</fr:link>, and <fr:tex display="inline"><![CDATA[\alpha  y + \beta  y']]></fr:tex> is a generic element (note that <fr:tex display="inline"><![CDATA[\alpha ,\beta  \in  [0,1], \alpha  + \beta  = 1]]></fr:tex>)
</html:p>
                    <html:p>
    By duality (with <fr:tex display="inline"><![CDATA[(-)^*]]></fr:tex>), it also has coproducts given by <fr:tex display="inline"><![CDATA[(X,Y,L) \oplus  (X',Y',L') = (X \oplus  X', Y \times  Y', L(\alpha  x + \beta  x';y,y') = \alpha  L(x,y) + \beta  L'(x',y'))]]></fr:tex>.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
              </fr:mainmatter>
            </fr:tree>
          </fr:mainmatter>
        </fr:tree>
      </fr:mainmatter>
    </fr:tree>
    <fr:tree show-metadata="false" hidden-when-empty="true">
      <fr:frontmatter>
        <fr:authors />
        <fr:title text="Backlinks">Backlinks</fr:title>
      </fr:frontmatter>
      <fr:mainmatter />
    </fr:tree>
    <fr:tree show-metadata="false" hidden-when-empty="true">
      <fr:frontmatter>
        <fr:authors />
        <fr:title text="Related">Related</fr:title>
      </fr:frontmatter>
      <fr:mainmatter />
    </fr:tree>
    <fr:tree show-metadata="false" hidden-when-empty="true">
      <fr:frontmatter>
        <fr:authors />
        <fr:title text="Contributions">Contributions</fr:title>
      </fr:frontmatter>
      <fr:mainmatter />
    </fr:tree>
  </fr:backmatter>
</fr:tree>
