<?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>2025</fr:year>
      <fr:month>4</fr:month>
      <fr:day>6</fr:day>
    </fr:date>
    <fr:uri>https://erischel.com/efr-HQ73/</fr:uri>
    <fr:display-uri>efr-HQ73</fr:display-uri>
    <fr:route>/efr-HQ73/</fr:route>
    <fr:title text="Markov Fibrations › Introduction"><fr:link href="/efr-0001/" title="Markov Fibrations" uri="https://erischel.com/efr-0001/" display-uri="efr-0001" type="local">Markov Fibrations</fr:link> › Introduction</fr:title>
  </fr:frontmatter>
  <fr:mainmatter>
    <html:p>
  In applying category theory to fields as diverse as game theory (<fr:link href="/hedges-etal-comp-gametheory/" title="Compositional game theory" uri="https://erischel.com/hedges-etal-comp-gametheory/" display-uri="hedges-etal-comp-gametheory" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-etal-comp-gametheory/" display-uri="hedges-etal-comp-gametheory" /></fr:link>,<fr:link href="/hedges-etal-bayesian-games/" title="Bayesian open games" uri="https://erischel.com/hedges-etal-bayesian-games/" display-uri="hedges-etal-bayesian-games" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-etal-bayesian-games/" display-uri="hedges-etal-bayesian-games" /></fr:link>, <fr:link href="/hedges-etal-graph-games/" title="Compositional modelling of network games" uri="https://erischel.com/hedges-etal-graph-games/" display-uri="hedges-etal-graph-games" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-etal-graph-games/" display-uri="hedges-etal-graph-games" /></fr:link>), 
  machine learning (<fr:link href="/bruno-etal-categorical-learning-2021/" title="Categorical Foundations of Gradient-Based Learning" uri="https://erischel.com/bruno-etal-categorical-learning-2021/" display-uri="bruno-etal-categorical-learning-2021" type="local">Reference <fr:contextual-number uri="https://erischel.com/bruno-etal-categorical-learning-2021/" display-uri="bruno-etal-categorical-learning-2021" /></fr:link>, <fr:link href="/bruno-thesis-fundamental-components/" title="Fundamental Components of Deep Learning: A category-theoretic approach" uri="https://erischel.com/bruno-thesis-fundamental-components/" display-uri="bruno-thesis-fundamental-components" type="local">Reference <fr:contextual-number uri="https://erischel.com/bruno-thesis-fundamental-components/" display-uri="bruno-thesis-fundamental-components" /></fr:link>), dynamical systems (<fr:link href="/myers-cst/" title="Categorical Systems Theory" uri="https://erischel.com/myers-cst/" display-uri="myers-cst" type="local">Reference <fr:contextual-number uri="https://erischel.com/myers-cst/" display-uri="myers-cst" /></fr:link>, <fr:link href="/lynch-myers-rischel-staton-stoch-clocks/" title="Clock systems for stochastic and non-deterministic categorical systems theories" uri="https://erischel.com/lynch-myers-rischel-staton-stoch-clocks/" display-uri="lynch-myers-rischel-staton-stoch-clocks" type="local">Reference <fr:contextual-number uri="https://erischel.com/lynch-myers-rischel-staton-stoch-clocks/" display-uri="lynch-myers-rischel-staton-stoch-clocks" /></fr:link>), and server design (<fr:link href="/videla-capucci-servers/" title="Lenses for Composable Servers" uri="https://erischel.com/videla-capucci-servers/" display-uri="videla-capucci-servers" type="local">Reference <fr:contextual-number uri="https://erischel.com/videla-capucci-servers/" display-uri="videla-capucci-servers" /></fr:link>), people have found it useful to study categories whose morphisms describe processes or functions that take place in two "stages", where the second is dependent on the first, but composes in the other direction---so-called <html:em>lenses</html:em>. In many of these domains, stochastic phenomena play a role. There is a useful generalization of lenses to categories of stochastic maps---the so-called <html:em>optics</html:em> of Riley, <fr:link href="/riley-optics/" title="Categories of optics" uri="https://erischel.com/riley-optics/" display-uri="riley-optics" type="local">Reference <fr:contextual-number uri="https://erischel.com/riley-optics/" display-uri="riley-optics" /></fr:link>---but this does not accommodate another useful generalization, so called <html:em>dependent lenses</html:em> where not only the backwards process but the set it takes values in is indexed over the base. It has been a long-standing problem to develop a suitable common generalization, "dependent optics", of these two ideas. In this thesis, we solve this problem by developing a theory of <html:em>Markov fibrations</html:em> (<fr:link href="/efr-O088/" title="Markov Fibrations and Stochastic Lenses" uri="https://erischel.com/efr-O088/" display-uri="efr-O088" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-O088/" display-uri="efr-O088" /></fr:link>).
</html:p>
    <html:p>
  A Markov fibration is a weakening of the notion of (Grothendieck) fibration to include (subject to some assumptions) Markov categories of indexed families of objects (given by deterministic functions <fr:tex display="inline"><![CDATA[E \to  X]]></fr:tex>) and compatible stochastic maps (given by commutative squares). The main point of Markov fibrations is that they admit <html:em>fiberwise opposites</html:em>, which generalize the fiberwise opposites of ordinary categories. Just as the fiberwise opposite of the codomain fibration of a finitely complete category describes dependent lenses (see <fr:link href="/efr-ZCTD/" title="Optics and Lenses" uri="https://erischel.com/efr-ZCTD/" display-uri="efr-ZCTD" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-ZCTD/" display-uri="efr-ZCTD" /></fr:link>), the fiberwise opposite of these codomain Markov fibrations give a good notion of stochastic lens (see <fr:link href="/efr-K6NM/" title="https://erischel.com/efr-K6NM/" uri="https://erischel.com/efr-K6NM/" display-uri="efr-K6NM" type="local">Theorem <fr:contextual-number uri="https://erischel.com/efr-K6NM/" display-uri="efr-K6NM" /></fr:link>).
</html:p>
    <html:p>
  We will apply our theory chiefly to two problems. First, we will use them to generalize <html:em>open games</html:em> (Hedges, <fr:link href="/hedges-towards-compositional-thesis/" title="Towards compositional game theory" uri="https://erischel.com/hedges-towards-compositional-thesis/" display-uri="hedges-towards-compositional-thesis" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-towards-compositional-thesis/" display-uri="hedges-towards-compositional-thesis" /></fr:link>) to a larger class of interfaces (namely, indexed families of sets) while at the same time considering possibly-stochastic maps. This will allow us to construct the so-called <html:em>external choice</html:em> operator on open games, which describes branching.
</html:p>
    <html:p>
  Secondly, we will generalize Myers' categorical dynamical systems theory to allow for stochastic maps in the base. When combined with another generalization of these systems, to general parametrized lenses, this gives a more natural way of modeling certain stochastic dynamical systems, such as those associated to the training dynamics of machine learning models, see eg <fr:link href="/efr-RUTY/" title="Generative Adversarial Network" uri="https://erischel.com/efr-RUTY/" display-uri="efr-RUTY" type="local">Example <fr:contextual-number uri="https://erischel.com/efr-RUTY/" display-uri="efr-RUTY" /></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>2025</fr:year>
          <fr:month>4</fr:month>
          <fr:day>6</fr:day>
        </fr:date>
        <fr:title text="A brief introduction to lenses">A brief introduction to lenses</fr:title>
      </fr:frontmatter>
      <fr:mainmatter>
        <html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is a category with finite products, the category <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C})]]></fr:tex> of <html:em>lenses</html:em> in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> has objects pairs <fr:tex display="inline"><![CDATA[\binom {A}{X}]]></fr:tex> of objects in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, and morphisms <fr:tex display="inline"><![CDATA[\binom {A}{X} \leftrightarrows  \binom {B}{Y}]]></fr:tex> given by pairs <fr:tex display="inline"><![CDATA[f: X \to  Y, f^\#: B \times  X \to  A]]></fr:tex>. (Note that it is of course the morphisms, not the objects, that are called lenses). One way to generalize this is to ask for <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> to have pullbacks, and consider an object given by a more general map <fr:tex display="inline"><![CDATA[A \to  X]]></fr:tex>, and let a map be <fr:tex display="inline"><![CDATA[f: X \to  Y, f^\#: B \times _Y X \to  A]]></fr:tex> (so that the triangle over <fr:tex display="inline"><![CDATA[X]]></fr:tex> commutes). (Note that this recovers the "simple lenses" when the objects are of the form <fr:tex display="inline"><![CDATA[A \times  X \to  X]]></fr:tex>). Under the interpretation of a map <fr:tex display="inline"><![CDATA[A \to  X]]></fr:tex> as a family of objects <fr:tex display="inline"><![CDATA[A_x]]></fr:tex> indexed over the elements of <fr:tex display="inline"><![CDATA[X]]></fr:tex>, we see this as a "dependent lens" (since <fr:tex display="inline"><![CDATA[A]]></fr:tex> is a "dependent type"). There are various variations of this idea, which ultimately all fit the pattern of taking a Grothendieck fibration <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> and forming the fiberwise opposite---for the dependent lenses as above, this is the codomain fibration <fr:tex display="inline"><![CDATA[\mathcal {C}^\to  \to  \mathcal {C}]]></fr:tex>. 
</html:p>
        <html:p>
  Meanwhile, another wide-ranging generalization of <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C})]]></fr:tex> are the <html:em>optics</html:em> of Riley (<fr:link href="/riley-optics/" title="Categories of optics" uri="https://erischel.com/riley-optics/" display-uri="riley-optics" type="local">Reference <fr:contextual-number uri="https://erischel.com/riley-optics/" display-uri="riley-optics" /></fr:link>). For <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> a monoidal category, the objects of <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C})]]></fr:tex> are again pairs <fr:tex display="inline"><![CDATA[\binom {A}{X}]]></fr:tex> of objects, but now the morphisms are elements of the coend <fr:tex display="block"><![CDATA[\int ^{M \in  \mathcal {C}}\mathcal {C}(X, M \otimes  Y) \times  \mathcal {C}(M \otimes  B, A).]]></fr:tex> That is, to give an optic <fr:tex display="inline"><![CDATA[\binom {A}{X} \leftrightarrows  \binom {B}{Y}]]></fr:tex> is to give an object <fr:tex display="inline"><![CDATA[M \in  \mathcal {C}]]></fr:tex> and morphisms <fr:tex display="inline"><![CDATA[l: X \to  M \otimes  Y, r: M \otimes  B \to  A]]></fr:tex>, up to the equivalence relation generated by, whenever <fr:tex display="inline"><![CDATA[s: N \to  M, l: X \to  N \otimes  Y, r: M \otimes  B \to  A,]]></fr:tex> identifying the two optics given by <fr:tex display="inline"><![CDATA[(M, (s \otimes  1_Y) \circ  l, r)]]></fr:tex> and <fr:tex display="inline"><![CDATA[(N, l, r \circ  (s \otimes  1_B))]]></fr:tex>. One can show that, in the case where <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is a Cartesian monoidal category, this set can be identified with the set of (simple) lenses.
</html:p>
        <html:p>
  A vector field on a smooth manifold <fr:tex display="inline"><![CDATA[X]]></fr:tex> is simply a (smooth) section of the tangent bundle <fr:tex display="inline"><![CDATA[TX]]></fr:tex>.
  A section is a bundle map from the trivial bundle <fr:tex display="inline"><![CDATA[X \to  X]]></fr:tex>. This gives the idea of considering a <html:em>parametrized</html:em> dynamical system as consisting of a map <fr:tex display="inline"><![CDATA[X \to  A]]></fr:tex> to some other smooth manifold, a bundle <fr:tex display="inline"><![CDATA[E \to  A]]></fr:tex> (the points of <fr:tex display="inline"><![CDATA[E]]></fr:tex> are the parameters) and a bundle map <fr:tex display="inline"><![CDATA[E \times _A X \to  TX]]></fr:tex>.
  As we will see, such a bundle map is exactly a dependent lens in a category of bundles. Building on this idea, Myers (<fr:link href="/myers-cst/" title="Categorical Systems Theory" uri="https://erischel.com/myers-cst/" display-uri="myers-cst" type="local">Reference <fr:contextual-number uri="https://erischel.com/myers-cst/" display-uri="myers-cst" /></fr:link>) described a highly abstract theory of open dynamical systems, given by lenses out of tangent bundles (where the notion of space, bundle and tangent bundle are generalized to any fibration).
</html:p>
        <html:p>
   It has been observed that, although a lens from the tangent bundle <fr:tex display="inline"><![CDATA[TS \leftrightarrows  A]]></fr:tex> may indeed be said to describe an open dynamical system with state space <fr:tex display="inline"><![CDATA[S]]></fr:tex>, the same can be said for a lens of type <fr:tex display="inline"><![CDATA[TS \otimes  A \leftrightarrows  I]]></fr:tex>---although a dynamical system of a different kind (essentially, the first type are the <html:em>Moore machines</html:em>, the second the <html:em>Mealy machines</html:em>---see the introduction to <fr:link href="/efr-000D/" title="The \mathsf {Para} construction in generic 2-categories" uri="https://erischel.com/efr-000D/" display-uri="efr-000D" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-000D/" display-uri="efr-000D" /></fr:link> for more on this). It is natural to consider parametrized maps <fr:tex display="inline"><![CDATA[TS \otimes  A \leftrightarrows  B]]></fr:tex> as a common generalization of these two concepts---and in fact, special cases of this idea, lenses parametrized by tangent bundles, have already been considered many times, for example in the semantics of gradient descent (see <fr:link href="/bruno-etal-categorical-learning-2021/" title="Categorical Foundations of Gradient-Based Learning" uri="https://erischel.com/bruno-etal-categorical-learning-2021/" display-uri="bruno-etal-categorical-learning-2021" type="local">Reference <fr:contextual-number uri="https://erischel.com/bruno-etal-categorical-learning-2021/" display-uri="bruno-etal-categorical-learning-2021" /></fr:link>, <fr:link href="/towards-cybercat/" title="Towards Foundations of Categorical Cybernetics" uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" type="local">Reference <fr:contextual-number uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" /></fr:link>, <fr:link href="/backprop-as-functor/" title="Backprop as Functor: A compositional perspective on supervised learning" uri="https://erischel.com/backprop-as-functor/" display-uri="backprop-as-functor" type="local">Reference <fr:contextual-number uri="https://erischel.com/backprop-as-functor/" display-uri="backprop-as-functor" /></fr:link>).</html:p>
        <html:p>
  Since parametrized maps compose in an obvious way, we now have three different notions of morphisms between bundles---lenses, charts, and "generalized systems". These should form some sort of symmetric monoidal triple category, but the right axiomatisation of this concept is somewhat elusive.
</html:p>
        <html:p>
  Lenses, in their various incarnations, have been widely used in applied category theory. For example, Hedges and his collaborators have developed a compositional approach to game theory (<fr:link href="/hedges-string-games/" title="String diagrams for game theory" uri="https://erischel.com/hedges-string-games/" display-uri="hedges-string-games" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-string-games/" display-uri="hedges-string-games" /></fr:link>, <fr:link href="/hedges-etal-comp-gametheory/" title="Compositional game theory" uri="https://erischel.com/hedges-etal-comp-gametheory/" display-uri="hedges-etal-comp-gametheory" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-etal-comp-gametheory/" display-uri="hedges-etal-comp-gametheory" /></fr:link>, <fr:link href="/hedges-etal-institutions/" title="Composing games into complex institutions" uri="https://erischel.com/hedges-etal-institutions/" display-uri="hedges-etal-institutions" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-etal-institutions/" display-uri="hedges-etal-institutions" /></fr:link>, <fr:link href="/hedges-etal-graph-games/" title="Compositional modelling of network games" uri="https://erischel.com/hedges-etal-graph-games/" display-uri="hedges-etal-graph-games" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-etal-graph-games/" display-uri="hedges-etal-graph-games" /></fr:link>, others). Recent work by Hedges and Sakamoto bring this idea to reinforcement learning (<fr:link href="/sakamoto-reinforcement-lenses/" title="Reinforcement Learning in Categorical Cybernetics" uri="https://erischel.com/sakamoto-reinforcement-lenses/" display-uri="sakamoto-reinforcement-lenses" type="local">Reference <fr:contextual-number uri="https://erischel.com/sakamoto-reinforcement-lenses/" display-uri="sakamoto-reinforcement-lenses" /></fr:link>). We briefly mentioned Myers' categorical systems theory above, and we will see much more of it later. As we discussed above, there is also a literature using lenses to study gradient descent in an abstract sense. This is without even mentioning their original role in the theory of functional programming (this is the origin of the somewhat confusing term <html:em>lens</html:em>), or their prehistory in Gödel's dialectica interpretation---see eg <fr:link href="/jules-lenses-blogpost/" title="Lenses for philosophers" uri="https://erischel.com/jules-lenses-blogpost/" display-uri="jules-lenses-blogpost" type="local">Reference <fr:contextual-number uri="https://erischel.com/jules-lenses-blogpost/" display-uri="jules-lenses-blogpost" /></fr:link> for a survey of this.
</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>2025</fr:year>
          <fr:month>4</fr:month>
          <fr:day>6</fr:day>
        </fr:date>
        <fr:title text="
    Dependent Optics
  ">
    Dependent Optics
  </fr:title>
      </fr:frontmatter>
      <fr:mainmatter>
        <html:p>
    An open game, in the sense of Hedges, has as its interface two objects in the category of lenses (of sets) <fr:tex display="inline"><![CDATA[\binom {S}{X}, \binom {R}{Y}]]></fr:tex> (that is, two pairs of sets). An open game with this interface consists of a set <fr:tex display="inline"><![CDATA[\Sigma ]]></fr:tex> of <html:em>strategies</html:em> equipped with a function <fr:tex display="inline"><![CDATA[\Sigma  \to  \mathsf {Lens}(\mathsf {Set})(\binom {S}{X},\binom {R}{Y}),]]></fr:tex> and a subset <fr:tex display="inline"><![CDATA[Eq(x, k) \subset  \Sigma ]]></fr:tex> of <html:em>equilibrium strategies</html:em> for each <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex> and <fr:tex display="inline"><![CDATA[k: Y \to  R]]></fr:tex>---note that such an <fr:tex display="inline"><![CDATA[x]]></fr:tex> is exactly a lens <fr:tex display="inline"><![CDATA[\binom {*}{*} \leftrightarrows  \binom {S}{X},]]></fr:tex> and such a <fr:tex display="inline"><![CDATA[k]]></fr:tex> is exactly a lens <fr:tex display="inline"><![CDATA[\binom {R}{Y} \to  \binom {*}{*}]]></fr:tex>. This view of open games makes the composition rule much simpler to define, although we will not delve into the details here, see eg <fr:link href="/hedges-etal-comp-gametheory/" title="Compositional game theory" uri="https://erischel.com/hedges-etal-comp-gametheory/" display-uri="hedges-etal-comp-gametheory" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-etal-comp-gametheory/" display-uri="hedges-etal-comp-gametheory" /></fr:link>. The idea is that the open game represents the strategies and preferences of a player or set of players---<fr:tex display="inline"><![CDATA[\sigma  \in  \Sigma ]]></fr:tex> are the possible strategies, <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex> is the information revealed to the player before they make their decision of which moves to make, the resulting <fr:tex display="inline"><![CDATA[y \in  Y]]></fr:tex> is the choice the player "sends" in response to <fr:tex display="inline"><![CDATA[x]]></fr:tex>, and the <fr:tex display="inline"><![CDATA[r \in  R]]></fr:tex> is the "utility", the value they eventually learn, depending on their choice <fr:tex display="inline"><![CDATA[y]]></fr:tex>, which they have some preferences over.
  </html:p>
        <html:p>
    The above description gives a theory of deterministic games, but of course, it is completely essential for game theory to model both random decisions (mixed strategies) and decisions made under uncertainty. This motivates the replacement of lenses in this definition with optics in a category of probability kernels (the form of the equilibrium relation must be modified as well, see <fr:link href="/hedges-etal-bayesian-games/" title="Bayesian open games" uri="https://erischel.com/hedges-etal-bayesian-games/" display-uri="hedges-etal-bayesian-games" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-etal-bayesian-games/" display-uri="hedges-etal-bayesian-games" /></fr:link>, <fr:link href="/towards-cybercat/" title="Towards Foundations of Categorical Cybernetics" uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" type="local">Reference <fr:contextual-number uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" /></fr:link>)
  </html:p>
        <html:p>
    In the abstract study of open games, it is desirable to define a "choice" operation <fr:tex display="inline"><![CDATA[\oplus ]]></fr:tex> on the objects (the pairs of sets) so that maps into <fr:tex display="inline"><![CDATA[\binom {R}{X} \oplus  \binom {R'}{X'}]]></fr:tex> represent players who are faced with some binary choice between <fr:tex display="inline"><![CDATA[X]]></fr:tex> and <fr:tex display="inline"><![CDATA[X']]></fr:tex>, after which play may proceed for a time in one of two branches. However, this is immediately problematic because the category of lenses do not have coproducts---inside the category of <html:em>dependent</html:em> lenses, however, we can form the coproduct simply as <fr:tex display="inline"><![CDATA[R \times  X + R' \times  X' \to  X + X']]></fr:tex>---that is, we get a family which is <fr:tex display="inline"><![CDATA[R]]></fr:tex> over <fr:tex display="inline"><![CDATA[X]]></fr:tex>, and <fr:tex display="inline"><![CDATA[R']]></fr:tex> over <fr:tex display="inline"><![CDATA[X']]></fr:tex>. This indeed does the job, but for game theory the extension to stochastic maps---optics---is absolutely essential. This motivates the search for a theory of <html:em>dependent optics</html:em>, a common generalization of optics and dependent lenses.
  </html:p>
        <html:p>
    There have been a number of attempts at this---see eg <fr:link href="/fibre-optics-2021/" title="Fibre optics" uri="https://erischel.com/fibre-optics-2021/" display-uri="fibre-optics-2021" type="local">Reference <fr:contextual-number uri="https://erischel.com/fibre-optics-2021/" display-uri="fibre-optics-2021" /></fr:link>, <fr:link href="/hedges-braithwaite-dep/" title="Dependent Bayesian Lenses: Categories of Bidirectional Markov Kernels with Canonical Bayesian Inversion" uri="https://erischel.com/hedges-braithwaite-dep/" display-uri="hedges-braithwaite-dep" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-braithwaite-dep/" display-uri="hedges-braithwaite-dep" /></fr:link>, <fr:link href="/milewski-polylens/" title="PolyLens" uri="https://erischel.com/milewski-polylens/" display-uri="milewski-polylens" type="local">Reference <fr:contextual-number uri="https://erischel.com/milewski-polylens/" display-uri="milewski-polylens" /></fr:link>, <fr:link href="/vertechi-dep-optics/" title="Dependent Optics" uri="https://erischel.com/vertechi-dep-optics/" display-uri="vertechi-dep-optics" type="local">Reference <fr:contextual-number uri="https://erischel.com/vertechi-dep-optics/" display-uri="vertechi-dep-optics" /></fr:link>. While these efforts have to some extent succeeded in describing a theory that is general enough to contain the desired examples, it is generally very ad hoc. The construction of optics as a special case of Vertechi's dependent optics (<fr:link href="/vertechi-dep-optics/" title="Dependent Optics" uri="https://erischel.com/vertechi-dep-optics/" display-uri="vertechi-dep-optics" type="local">Reference <fr:contextual-number uri="https://erischel.com/vertechi-dep-optics/" display-uri="vertechi-dep-optics" /></fr:link>) gives them as fibre optics with the indexing bicategory being (the delooping of) a monoidal category <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex>, but embeds lenses using a bicategory of spans. Thus simple lenses admit two distinct encodings in this theory. Moreover, Vertechi's example of dependent monoidal optics fails to describe a supercategory of <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C})]]></fr:tex> when applied to Markov categories, and are thus not suitable for, for example, game theory.
  </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>2025</fr:year>
          <fr:month>4</fr:month>
          <fr:day>6</fr:day>
        </fr:date>
        <fr:title text="Categorical Cybernetics">Categorical Cybernetics</fr:title>
      </fr:frontmatter>
      <fr:mainmatter>
        <html:p>
    The observation that both open games and machine learning systems can be fruitfully described using lenses, naturally led to the idea that this could be used to develop a more thorough analogy between the two. After all, a machine learning system is also a player in a kind of game (with the objective of minimizing loss). Hedges coined the phrase <html:em>categorical cybernetics</html:em> to describe this locus of ideas (<fr:link href="/towards-cybercat/" title="Towards Foundations of Categorical Cybernetics" uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" type="local">Reference <fr:contextual-number uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" /></fr:link>, also used in <fr:link href="/sakamoto-reinforcement-lenses/" title="Reinforcement Learning in Categorical Cybernetics" uri="https://erischel.com/sakamoto-reinforcement-lenses/" display-uri="sakamoto-reinforcement-lenses" type="local">Reference <fr:contextual-number uri="https://erischel.com/sakamoto-reinforcement-lenses/" display-uri="sakamoto-reinforcement-lenses" /></fr:link>).
  </html:p>
        <html:p>
    Myers' categorical systems theory also describes dynamical systems as lenses. However, where a cybernetic system in the sense of <fr:link href="/towards-cybercat/" title="Towards Foundations of Categorical Cybernetics" uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" type="local">Reference <fr:contextual-number uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" /></fr:link> is a parametrized lens <fr:tex display="inline"><![CDATA[\Sigma  \otimes  {\bar {X} \choose  X} \leftrightarrows  {\bar {Y} \choose  Y},]]></fr:tex> and thus has two different inputs - <fr:tex display="inline"><![CDATA[x \in  X,]]></fr:tex> which is the information on which basis they are allowed to choose their decision <fr:tex display="inline"><![CDATA[y \in  Y,]]></fr:tex> and <fr:tex display="inline"><![CDATA[y^\sharp  \in  \bar {Y},]]></fr:tex> which is their "utility", the information they are allowed to care about.
  </html:p>
        <html:p>
    It is straightforward to describe the machine learning part of the categorical cybernetics analogy in terms of Myers' theory---a "learner" is simply a lens of the above form with <fr:tex display="inline"><![CDATA[\Sigma ]]></fr:tex> replace with a tangent bundle <fr:tex display="inline"><![CDATA[TS]]></fr:tex>. This idea (described in these terms, although not with the analogy to machine learning) has already been described by <fr:link href="/energy-driven-systems/" title="Organizing Physics with Open Energy-Driven Systems" uri="https://erischel.com/energy-driven-systems/" display-uri="energy-driven-systems" type="local">Reference <fr:contextual-number uri="https://erischel.com/energy-driven-systems/" display-uri="energy-driven-systems" /></fr:link>.
    However, for game theory, it is necessary that the output of a given system can be stochastically chosen (a player must be able to randomize their strategy). At the same time, for a machine learning system, the <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex> is usually some sort of sample from a training distribution---ie, it is random. Hence to really describe the training dynamics of machine learning systems using this theory, we are again naturally drawn to consider systems theories (that is, fibrations) which have stochastic maps in the base, not merely the fiber.
  </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>2025</fr:year>
          <fr:month>4</fr:month>
          <fr:day>6</fr:day>
        </fr:date>
        <fr:title text="Overview and contributions">Overview and contributions</fr:title>
      </fr:frontmatter>
      <fr:mainmatter>
        <html:p>
    We begin the thesis in <fr:link href="/efr-POD2/" title="Preliminaries" uri="https://erischel.com/efr-POD2/" display-uri="efr-POD2" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-POD2/" display-uri="efr-POD2" /></fr:link> with a review of some preliminary material. This chapter can largely be skipped for readers already familiar with the material (Markov categories, double categories, lenses and optics, fibrations, and categorical dynamical systems theory). The chapter on Markov categories introduces a few novel auxiliary notions, but these can be referred back to as necessary (they are primarily regularity conditions which hold in most Markov categories of interest). 
  </html:p>
        <html:p>
    In <fr:link href="/efr-O088/" title="Markov Fibrations and Stochastic Lenses" uri="https://erischel.com/efr-O088/" display-uri="efr-O088" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-O088/" display-uri="efr-O088" /></fr:link>, we give the main technical contribution of the thesis by developing a theory of <html:em>Markov fibrations</html:em>. Their fiberwise opposites generalize both the fiberwise opposites of codomain fibrations (dependent lenses in a classical sense) and optics in Markov categories. <fr:link href="/efr-K6NM/" title="https://erischel.com/efr-K6NM/" uri="https://erischel.com/efr-K6NM/" display-uri="efr-K6NM" type="local">Theorem <fr:contextual-number uri="https://erischel.com/efr-K6NM/" display-uri="efr-K6NM" /></fr:link> provides the statement of the latter (the former is straightforward). We also give a description of monoidal structures on Markov fibrations (which pass to monoidal structures on the resulting categories of optics).
  </html:p>
        <html:p>
    In <fr:link href="/efr-000D/" title="The \mathsf {Para} construction in generic 2-categories" uri="https://erischel.com/efr-000D/" display-uri="efr-000D" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-000D/" display-uri="efr-000D" /></fr:link>, we give a construction of the double category of <html:em>parametrized morphisms</html:em> for a category action (or actegory)---in fact, we do this  internally to any <fr:tex display="inline"><![CDATA[2]]></fr:tex>-category. This has the advantage of allowing us to construct more highly-structured versions of this double category by carrying out the construction internally to higher-structured actions. (Bicategorical versions of <fr:tex display="inline"><![CDATA[\mathsf {Para}]]></fr:tex> are a relatively old idea, and the double categorical version is a straightforward extension which has existed for some time as folklore, but the fully-internal construction here is novel).
  </html:p>
        <html:p>
    In <fr:link href="/efr-GFG0/" title="Open Games with external choice in Markov Fibrations" uri="https://erischel.com/efr-GFG0/" display-uri="efr-GFG0" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-GFG0/" display-uri="efr-GFG0" /></fr:link>, we apply Markov fibrations to compositional game theory, and solve a longstanding problem by giving a category of stochastic open games with a general "external choice" operator. This construction is largely abstract over the particular category, and so can be applied to different Markov fibrations to describe games defined with different notions of stochasticity. We also review some previous work with Capucci, Hedges, and Gavranovic on abstract constructions of categories of open games (<fr:link href="/towards-cybercat/" title="Towards Foundations of Categorical Cybernetics" uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" type="local">Reference <fr:contextual-number uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" /></fr:link>). 
  </html:p>
        <html:p>
    In <fr:link href="/efr-ZRUZ/" title="Categories of stochastic dynamical systems" uri="https://erischel.com/efr-ZRUZ/" display-uri="efr-ZRUZ" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-ZRUZ/" display-uri="efr-ZRUZ" /></fr:link>, we describe how to extend Myers' categorical systems theory to Markov fibrations, to give theories of systems which may have stochastic maps not merely in the fiber (as was already described by Myers in <fr:link href="/myers-cst/" title="Categorical Systems Theory" uri="https://erischel.com/myers-cst/" display-uri="myers-cst" type="local">Reference <fr:contextual-number uri="https://erischel.com/myers-cst/" display-uri="myers-cst" /></fr:link>) but also in the base. We also leverage our construction from <fr:link href="/efr-000D/" title="The \mathsf {Para} construction in generic 2-categories" uri="https://erischel.com/efr-000D/" display-uri="efr-000D" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-000D/" display-uri="efr-000D" /></fr:link> to give a description of a <html:em>symmetric monoidal triple category</html:em> whose three types of morphisms, are lenses, charts, and what we call <html:em>bisystems,</html:em> that is morphisms <fr:tex display="inline"><![CDATA[TS \otimes  A \leftrightarrows  B]]></fr:tex> - these are open dynamical systems which have two directions of interaction with the environment.
    We also describe a particular systems theory of smooth manifolds and smooth stochastic maps between them.
  </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>6</fr:month>
          <fr:day>5</fr:day>
        </fr:date>
        <fr:uri>https://erischel.com/efr-0008/</fr:uri>
        <fr:display-uri>efr-0008</fr:display-uri>
        <fr:route>/efr-0008/</fr:route>
        <fr:title text="Acknowledgements">Acknowledgements</fr:title>
      </fr:frontmatter>
      <fr:mainmatter>
        <html:p>
  I would like to extend a great thanks to the Mathematically Structured Programming group at the University of Strathclyde, my fellow PhD students in particular, for making my time there such a great one. A good chunk of this work was completed while I worked at the Compositional Systems Laboratory at the Tallinn University of Technology---I owe everyone there a great thanks as well.
</html:p>
        <html:p>
  For conversations which contributed to this work, and to my mathematical development in general, I would like to thank Dylan Braithwaite, Matteo Capucci, Elena di Lavore, Tobias Fritz, Davidad, Tomáš Gonda, Bruno Gavranović, Diana Kessler, Owen Lynch, Jade Master, David Jaz Myers, Riu Nakamura, Chad Nester, Evan Patterson, Paolo Perrone, Mario Roman, Brandon Shapiro, Toby Smithe, Pawel Sobocinski, David Spivak, and Andre Videla. A special thanks to Dylan, Matteo, and Bruno, for serving their time with me in the dependent optics mines.
</html:p>
        <html:p>
  To Neil Ghani, Radu Mardare, and Jules Hedges, a massive thanks for serving as my advisors during the somewhat tumultuous process that was the production of this thesis.
</html:p>
        <html:p>
  Finally, I thank my wonderful family. Now you can stop asking me about it.
</html:p>
      </fr:mainmatter>
    </fr:tree>
  </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 show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors>
              <fr:author>Jules Hedges</fr:author>
            </fr:authors>
            <fr:date>
              <fr:year>2025</fr:year>
              <fr:month>4</fr:month>
              <fr:day>7</fr:day>
            </fr:date>
            <fr:date>
              <fr:year>2015</fr:year>
              <fr:month>3</fr:month>
              <fr:day>20</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/hedges-string-games/</fr:uri>
            <fr:display-uri>hedges-string-games</fr:display-uri>
            <fr:route>/hedges-string-games/</fr:route>
            <fr:title text="String diagrams for game theory">String diagrams for game theory</fr:title>
            <fr:taxon>Reference</fr:taxon>
            <fr:meta name="doi">10.48550/arXiv.1503.06072</fr:meta>
            <fr:meta name="external">http://arxiv.org/abs/1503.06072</fr:meta>
            <fr:meta name="bibtex"><![CDATA[ @article
{hedges-string-games, title={String diagrams for game theory}, url={http://arxiv.org/abs/1503.06072}, DOI={10.48550/arXiv.1503.06072}, abstractNote={This paper presents a monoidal category whose morphisms are games (in the sense of game theory, not game semantics) and an associated diagrammatic language. The two basic operations of a monoidal category, namely categorical composition and tensor product, correspond roughly to sequential and simultaneous composition of games. This leads to a compositional theory in which we can reason about properties of games in terms of corresponding properties of the component parts. In particular, we give a definition of Nash equilibrium which is recursive on the causal structure of the game. The key technical idea in this paper is the use of continuation passing style for reasoning about the future consequences of playersâ€™ choices, closely based on applications of selection functions in game theory. Additionally, the clean categorical foundation gives many opportunities for generalisation, for example to learning agents.}, number={arXiv:1503.06072}, publisher={arXiv}, author={Hedges, Jules}, year={2015}, month={Mar} }]]></fr:meta>
          </fr:frontmatter>
          <fr:mainmatter>
            <fr:tree show-metadata="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>Jules Hedges</fr:author>
                </fr:authors>
                <fr:date>
                  <fr:year>2025</fr:year>
                  <fr:month>4</fr:month>
                  <fr:day>7</fr:day>
                </fr:date>
                <fr:date>
                  <fr:year>2015</fr:year>
                  <fr:month>3</fr:month>
                  <fr:day>20</fr:day>
                </fr:date>
                <fr:title text="Abstract">Abstract</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
This paper presents a monoidal category whose morphisms are games (in the sense of game theory, not game semantics) and an associated diagrammatic language. The two basic operations of a monoidal category, namely categorical composition and tensor product, correspond roughly to sequential and simultaneous composition of games. This leads to a compositional theory in which we can reason about properties of games in terms of corresponding properties of the component parts. In particular, we give a definition of Nash equilibrium which is recursive on the causal structure of the game. The key technical idea in this paper is the use of continuation passing style for reasoning about the future consequences of playersâ€™ choices, closely based on applications of selection functions in game theory. Additionally, the clean categorical foundation gives many opportunities for generalisation, for example to learning agents.
</html:p>
              </fr:mainmatter>
            </fr:tree>
          </fr:mainmatter>
        </fr:tree>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors>
              <fr:author>Matteo Capucci</fr:author>
              <fr:author>Owen Lynch</fr:author>
              <fr:author>David I. Spivak</fr:author>
            </fr:authors>
            <fr:date>
              <fr:year>2024</fr:year>
              <fr:month>4</fr:month>
              <fr:day>24</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/energy-driven-systems/</fr:uri>
            <fr:display-uri>energy-driven-systems</fr:display-uri>
            <fr:route>/energy-driven-systems/</fr:route>
            <fr:title text="Organizing Physics with Open Energy-Driven Systems">Organizing Physics with Open Energy-Driven Systems</fr:title>
            <fr:taxon>Reference</fr:taxon>
            <fr:meta name="doi">10.48550/arXiv.2404.16140</fr:meta>
            <fr:meta name="external">http://arxiv.org/abs/2404.16140</fr:meta>
            <fr:meta name="bibtex"><![CDATA[ @article
{energy-driven-systems, title={Organizing Physics with Open Energy-Driven Systems}, url={http://arxiv.org/abs/2404.16140}, DOI={10.48550/arXiv.2404.16140}, abstractNote={Organizing physics has been a long-standing preoccupation of applied category theory, going back at least to Lawvere. We contribute to this research thread by noticing that Hamiltonian mechanics and gradient descent depend crucially on a consistent choice of transformation -- which we call a reaction structure -- from the cotangent bundle to the tangent bundle. We then construct a compositional theory of reaction structures. Reaction-based systems offer a different perspective on composition in physics than port-Hamiltonian systems or open classical mechanics, in that reaction-based composition does not create any new constraints that must be solved for algebraically. The technical contributions of this paper are the development of symmetric monoidal categories of open energy-driven systems and open differential equations, and a functor between them, functioning as a â€œfunctorial semanticsâ€ for reaction structures. This approach echoes what has previously been done for open games and open gradient-based learners, and in fact subsumes the latter. We then illustrate our theory by constructing an $n$-fold pendulum as a composite of $n$-many pendula.}, number={arXiv:2404.16140}, publisher={arXiv}, author={Capucci, Matteo and Lynch, Owen and Spivak, David I.}, year={2024}, month={Apr} }]]></fr:meta>
          </fr:frontmatter>
          <fr:mainmatter>
            <fr:tree show-metadata="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>Matteo Capucci</fr:author>
                  <fr:author>Owen Lynch</fr:author>
                  <fr:author>David I. Spivak</fr:author>
                </fr:authors>
                <fr:date>
                  <fr:year>2024</fr:year>
                  <fr:month>4</fr:month>
                  <fr:day>24</fr:day>
                </fr:date>
                <fr:title text="Abstract">Abstract</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
Organizing physics has been a long-standing preoccupation of applied category theory, going back at least to Lawvere. We contribute to this research thread by noticing that Hamiltonian mechanics and gradient descent depend crucially on a consistent choice of transformation -- which we call a reaction structure -- from the cotangent bundle to the tangent bundle. We then construct a compositional theory of reaction structures. Reaction-based systems offer a different perspective on composition in physics than port-Hamiltonian systems or open classical mechanics, in that reaction-based composition does not create any new constraints that must be solved for algebraically. The technical contributions of this paper are the development of symmetric monoidal categories of open energy-driven systems and open differential equations, and a functor between them, functioning as a â€œfunctorial semanticsâ€ for reaction structures. This approach echoes what has previously been done for open games and open gradient-based learners, and in fact subsumes the latter. We then illustrate our theory by constructing an $n$-fold pendulum as a composite of $n$-many pendula.
</html:p>
              </fr:mainmatter>
            </fr:tree>
          </fr:mainmatter>
        </fr:tree>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors>
              <fr:author>Jules Hedges</fr:author>
              <fr:author>Riu Rodriguez Sakamoto</fr:author>
            </fr:authors>
            <fr:date>
              <fr:year>2024</fr:year>
              <fr:month>4</fr:month>
              <fr:day>3</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/sakamoto-reinforcement-lenses/</fr:uri>
            <fr:display-uri>sakamoto-reinforcement-lenses</fr:display-uri>
            <fr:route>/sakamoto-reinforcement-lenses/</fr:route>
            <fr:title text="Reinforcement Learning in Categorical Cybernetics">Reinforcement Learning in Categorical Cybernetics</fr:title>
            <fr:taxon>Reference</fr:taxon>
            <fr:meta name="doi">10.48550/arXiv.2404.02688</fr:meta>
            <fr:meta name="external">http://arxiv.org/abs/2404.02688</fr:meta>
            <fr:meta name="bibtex"><![CDATA[ @article
{sakamoto-reinforcement-lenses, title={Reinforcement Learning in Categorical Cybernetics}, url={http://arxiv.org/abs/2404.02688}, DOI={10.48550/arXiv.2404.02688}, abstractNote={We show that several major algorithms of reinforcement learning (RL) fit into the framework of categorical cybernetics, that is to say, parametrised bidirectional processes. We build on our previous work in which we show that value iteration can be represented by precomposition with a certain optic. The outline of the main construction in this paper is: (1) We extend the Bellman operators to parametrised optics that apply to action-value functions and depend on a sample. (2) We apply a representable contravariant functor, obtaining a parametrised function that applies the Bellman iteration. (3) This parametrised function becomes the backward pass of another parametrised optic that represents the model, which interacts with an environment via an agent. Thus, parametrised optics appear in two different ways in our construction, with one becoming part of the other. As we show, many of the major classes of algorithms in RL can be seen as different extremal cases of this general setup: dynamic programming, Monte Carlo methods, temporal difference learning, and deep RL. We see this as strong evidence that this approach is a natural one and believe that it will be a fruitful way to think about RL in the future.}, number={arXiv:2404.02688}, publisher={arXiv}, author={Hedges, Jules and Sakamoto, Riu RodrÃ­guez}, year={2024}, month={Apr} }]]></fr:meta>
          </fr:frontmatter>
          <fr:mainmatter>
            <fr:tree show-metadata="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>Jules Hedges</fr:author>
                  <fr:author>Riu Rodriguez Sakamoto</fr:author>
                </fr:authors>
                <fr:date>
                  <fr:year>2024</fr:year>
                  <fr:month>4</fr:month>
                  <fr:day>3</fr:day>
                </fr:date>
                <fr:title text="Abstract">Abstract</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
We show that several major algorithms of reinforcement learning (RL) fit into the framework of categorical cybernetics, that is to say, parametrised bidirectional processes. We build on our previous work in which we show that value iteration can be represented by precomposition with a certain optic. The outline of the main construction in this paper is: (1) We extend the Bellman operators to parametrised optics that apply to action-value functions and depend on a sample. (2) We apply a representable contravariant functor, obtaining a parametrised function that applies the Bellman iteration. (3) This parametrised function becomes the backward pass of another parametrised optic that represents the model, which interacts with an environment via an agent. Thus, parametrised optics appear in two different ways in our construction, with one becoming part of the other. As we show, many of the major classes of algorithms in RL can be seen as different extremal cases of this general setup: dynamic programming, Monte Carlo methods, temporal difference learning, and deep RL. We see this as strong evidence that this approach is a natural one and believe that it will be a fruitful way to think about RL in the future.
</html:p>
              </fr:mainmatter>
            </fr:tree>
          </fr:mainmatter>
        </fr:tree>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors>
              <fr:author>Bruno Gavranović</fr:author>
            </fr:authors>
            <fr:date>
              <fr:year>2024</fr:year>
              <fr:month>3</fr:month>
              <fr:day>12</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/bruno-thesis-fundamental-components/</fr:uri>
            <fr:display-uri>bruno-thesis-fundamental-components</fr:display-uri>
            <fr:route>/bruno-thesis-fundamental-components/</fr:route>
            <fr:title text="Fundamental Components of Deep Learning: A category-theoretic approach">Fundamental Components of Deep Learning: A category-theoretic approach</fr:title>
            <fr:taxon>Reference</fr:taxon>
            <fr:meta name="doi">10.48550/arXiv.2403.13001</fr:meta>
            <fr:meta name="external">http://arxiv.org/abs/2403.13001</fr:meta>
            <fr:meta name="bibtex"><![CDATA[ @article
{bruno-thesis-fundamental-components, title={Fundamental Components of Deep Learning: A category-theoretic approach}, url={http://arxiv.org/abs/2403.13001}, DOI={10.48550/arXiv.2403.13001}, abstractNote={Deep learning, despite its remarkable achievements, is still a young field. Like the early stages of many scientific disciplines, it is marked by the discovery of new phenomena, ad-hoc design decisions, and the lack of a uniform and compositional mathematical foundation. From the intricacies of the implementation of backpropagation, through a growing zoo of neural network architectures, to the new and poorly understood phenomena such as double descent, scaling laws or in-context learning, there are few unifying principles in deep learning. This thesis develops a novel mathematical foundation for deep learning based on the language of category theory. We develop a new framework that is a) end-to-end, b) uniform, and c) not merely descriptive, but prescriptive, meaning it is amenable to direct implementation in programming languages with sufficient features. We also systematise many existing approaches, placing many existing constructions and concepts from the literature under the same umbrella. In Part I we identify and model two main properties of deep learning systems parametricity and bidirectionality by we expand on the previously defined construction of actegories and Para to study the former, and define weighted optics to study the latter. Combining them yields parametric weighted optics, a categorical model of artificial neural networks, and more. Part II justifies the abstractions from Part I, applying them to model backpropagation, architectures, and supervised learning. We provide a lens-theoretic axiomatisation of differentiation, covering not just smooth spaces, but discrete settings of boolean circuits as well. We survey existing, and develop new categorical models of neural network architectures. We formalise the notion of optimisers and lastly, combine all the existing concepts together, providing a uniform and compositional framework for supervised learning.}, number={arXiv:2403.13001}, publisher={arXiv}, author={Gavranović, Bruno}, year={2024}, month={Mar} }]]></fr:meta>
          </fr:frontmatter>
          <fr:mainmatter>
            <fr:tree show-metadata="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>Bruno Gavranović</fr:author>
                </fr:authors>
                <fr:date>
                  <fr:year>2024</fr:year>
                  <fr:month>3</fr:month>
                  <fr:day>12</fr:day>
                </fr:date>
                <fr:title text="Abstract">Abstract</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
Deep learning, despite its remarkable achievements, is still a young field. Like the early stages of many scientific disciplines, it is marked by the discovery of new phenomena, ad-hoc design decisions, and the lack of a uniform and compositional mathematical foundation. From the intricacies of the implementation of backpropagation, through a growing zoo of neural network architectures, to the new and poorly understood phenomena such as double descent, scaling laws or in-context learning, there are few unifying principles in deep learning. This thesis develops a novel mathematical foundation for deep learning based on the language of category theory. We develop a new framework that is a<![CDATA[)]]> end-to-end, b<![CDATA[)]]> uniform, and c<![CDATA[)]]> not merely descriptive, but prescriptive, meaning it is amenable to direct implementation in programming languages with sufficient features. We also systematise many existing approaches, placing many existing constructions and concepts from the literature under the same umbrella. In Part I we identify and model two main properties of deep learning systems parametricity and bidirectionality by we expand on the previously defined construction of actegories and Para to study the former, and define weighted optics to study the latter. Combining them yields parametric weighted optics, a categorical model of artificial neural networks, and more. Part II justifies the abstractions from Part I, applying them to model backpropagation, architectures, and supervised learning. We provide a lens-theoretic axiomatisation of differentiation, covering not just smooth spaces, but discrete settings of boolean circuits as well. We survey existing, and develop new categorical models of neural network architectures. We formalise the notion of optimisers and lastly, combine all the existing concepts together, providing a uniform and compositional framework for supervised learning.
</html:p>
              </fr:mainmatter>
            </fr:tree>
          </fr:mainmatter>
        </fr:tree>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors>
              <fr:author>Pietro Vertechi</fr:author>
            </fr:authors>
            <fr:date>
              <fr:year>2023</fr:year>
              <fr:month>8</fr:month>
              <fr:day>7</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/vertechi-dep-optics/</fr:uri>
            <fr:display-uri>vertechi-dep-optics</fr:display-uri>
            <fr:route>/vertechi-dep-optics/</fr:route>
            <fr:title text="Dependent Optics">Dependent Optics</fr:title>
            <fr:taxon>Reference</fr:taxon>
            <fr:meta name="doi">10.4204/EPTCS.380.8</fr:meta>
            <fr:meta name="bibtex"><![CDATA[ @article
{vertechi-dep-optics, title={Dependent Optics}, volume={380}, ISSN={2075-2180}, DOI={10.4204/EPTCS.380.8}, abstractNote={A wide variety of bidirectional data accessors, ranging from mixed optics to functor lenses, can be formalized within a unique framework-dependent optics. Starting from two indexed categories, which encode what maps are allowed in the forward and backward directions, we define the category of dependent optics and establish under what assumptions it has coproducts. Different choices of indexed categories correspond to different families of optics: we discuss dependent lenses and prisms, as well as closed dependent optics. We introduce the notion of Tambara representation and use it to classify contravariant functors from the category of optics, thus generalizing the profunctor encoding of optics to the dependent case.}, url={https://arxiv.org/abs/2204.09547}, journal={Electronic Proceedings in Theoretical Computer Science}, author={Vertechi, Pietro}, year={2023}, month={Aug}, pages={128-144} }]]></fr:meta>
          </fr:frontmatter>
          <fr:mainmatter>
            <fr:tree show-metadata="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>Pietro Vertechi</fr:author>
                </fr:authors>
                <fr:date>
                  <fr:year>2023</fr:year>
                  <fr:month>8</fr:month>
                  <fr:day>7</fr:day>
                </fr:date>
                <fr:title text="Abstract">Abstract</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
A wide variety of bidirectional data accessors, ranging from mixed optics to functor lenses, can be formalized within a unique framework-dependent optics. Starting from two indexed categories, which encode what maps are allowed in the forward and backward directions, we define the category of dependent optics and establish under what assumptions it has coproducts. Different choices of indexed categories correspond to different families of optics: we discuss dependent lenses and prisms, as well as closed dependent optics. We introduce the notion of Tambara representation and use it to classify contravariant functors from the category of optics, thus generalizing the profunctor encoding of optics to the dependent case.
</html:p>
              </fr:mainmatter>
            </fr:tree>
          </fr:mainmatter>
        </fr:tree>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors>
              <fr:author>Seth Frey</fr:author>
              <fr:author>Jules Hedges</fr:author>
              <fr:author>Joshua Tan</fr:author>
              <fr:author>Philipp Zahn</fr:author>
            </fr:authors>
            <fr:date>
              <fr:year>2023</fr:year>
              <fr:month>3</fr:month>
              <fr:day>9</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/hedges-etal-institutions/</fr:uri>
            <fr:display-uri>hedges-etal-institutions</fr:display-uri>
            <fr:route>/hedges-etal-institutions/</fr:route>
            <fr:title text="Composing games into complex institutions">Composing games into complex institutions</fr:title>
            <fr:taxon>Reference</fr:taxon>
            <fr:meta name="doi">10.48550/arXiv.2108.05318</fr:meta>
            <fr:meta name="external">http://arxiv.org/abs/2108.05318</fr:meta>
            <fr:meta name="bibtex"><![CDATA[ @article
{hedges-etal-institutions, title={Composing games into complex institutions}, url={http://arxiv.org/abs/2108.05318}, DOI={10.48550/arXiv.2108.05318}, abstractNote={Game theory is used by all behavioral sciences, but its development has long centered around tools for relatively simple games and toy systems, such as the economic interpretation of equilibrium outcomes. Our contribution, compositional game theory, permits another approach of equally general appeal: the high-level design of large games for expressing complex architectures and representing real-world institutions faithfully. Compositional game theory, grounded in the mathematics underlying programming languages, and introduced here as a general computational framework, increases the parsimony of game representations with abstraction and modularity, accelerates search and design, and helps theorists across disciplines express real-world institutional complexity in well-defined ways. Relative to existing approaches in game theory, compositional game theory is especially promising for solving game systems with long-range dependencies, for comparing large numbers of structurally related games, and for nesting games into the larger logical or strategic flows typical of real world policy or institutional systems.}, number={arXiv:2108.05318}, publisher={arXiv}, author={Frey, Seth and Hedges, Jules and Tan, Joshua and Zahn, Philipp}, year={2023}, month={Mar} }]]></fr:meta>
          </fr:frontmatter>
          <fr:mainmatter>
            <fr:tree show-metadata="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>Seth Frey</fr:author>
                  <fr:author>Jules Hedges</fr:author>
                  <fr:author>Joshua Tan</fr:author>
                  <fr:author>Philipp Zahn</fr:author>
                </fr:authors>
                <fr:date>
                  <fr:year>2023</fr:year>
                  <fr:month>3</fr:month>
                  <fr:day>9</fr:day>
                </fr:date>
                <fr:title text="Abstract">Abstract</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
Game theory is used by all behavioral sciences, but its development has long centered around tools for relatively simple games and toy systems, such as the economic interpretation of equilibrium outcomes. Our contribution, compositional game theory, permits another approach of equally general appeal: the high-level design of large games for expressing complex architectures and representing real-world institutions faithfully. Compositional game theory, grounded in the mathematics underlying programming languages, and introduced here as a general computational framework, increases the parsimony of game representations with abstraction and modularity, accelerates search and design, and helps theorists across disciplines express real-world institutional complexity in well-defined ways. Relative to existing approaches in game theory, compositional game theory is especially promising for solving game systems with long-range dependencies, for comparing large numbers of structurally related games, and for nesting games into the larger logical or strategic flows typical of real world policy or institutional systems.
</html:p>
              </fr:mainmatter>
            </fr:tree>
          </fr:mainmatter>
        </fr:tree>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors>
              <fr:author>Matteo Capucci</fr:author>
              <fr:author>Bruno Gavranović</fr:author>
              <fr:author>Jules Hedges</fr:author>
              <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>2022</fr:year>
              <fr:month>11</fr:month>
              <fr:day>3</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/towards-cybercat/</fr:uri>
            <fr:display-uri>towards-cybercat</fr:display-uri>
            <fr:route>/towards-cybercat/</fr:route>
            <fr:title text="Towards Foundations of Categorical Cybernetics">Towards Foundations of Categorical Cybernetics</fr:title>
            <fr:taxon>Reference</fr:taxon>
            <fr:meta name="doi">10.4204/EPTCS.372.17</fr:meta>
            <fr:meta name="bibtex"><![CDATA[@article
{towards-cybercat, title={Towards Foundations of Categorical Cybernetics}, volume={372}, ISSN={2075-2180}, DOI={10.4204/EPTCS.372.17}, url={https://arxiv.org/abs/2105.06332}, journal={Electronic Proceedings in Theoretical Computer Science}, author={Capucci, Matteo and Gavranović, Bruno and Hedges, Jules and Rischel, Eigil Fjeldgren}, year={2022}, month={Nov}, pages={235–248} }]]></fr:meta>
          </fr:frontmatter>
          <fr:mainmatter>
            <fr:tree show-metadata="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>Matteo Capucci</fr:author>
                  <fr:author>Bruno Gavranović</fr:author>
                  <fr:author>Jules Hedges</fr:author>
                  <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>2022</fr:year>
                  <fr:month>11</fr:month>
                  <fr:day>3</fr:day>
                </fr:date>
                <fr:title text="Abstract">Abstract</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
We propose a categorical framework for processes which interact bidirectionally with both an environment and a “controller”. Examples include open learners, in which the controller is an optimiser such as gradient descent, and an approach to compositional game theory closely related to open games, in which the controller is a composite of game-theoretic agents. We believe that “cybernetic” is an appropriate name for the processes that can be described in this framework.
</html:p>
              </fr:mainmatter>
            </fr:tree>
          </fr:mainmatter>
        </fr:tree>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors>
              <fr:author>Dylan Braithwaite</fr:author>
              <fr:author>Jules Hedges</fr:author>
            </fr:authors>
            <fr:date>
              <fr:year>2022</fr:year>
              <fr:month>9</fr:month>
              <fr:day>29</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/hedges-braithwaite-dep/</fr:uri>
            <fr:display-uri>hedges-braithwaite-dep</fr:display-uri>
            <fr:route>/hedges-braithwaite-dep/</fr:route>
            <fr:title text="Dependent Bayesian Lenses: Categories of Bidirectional Markov Kernels with Canonical Bayesian Inversion">Dependent Bayesian Lenses: Categories of Bidirectional Markov Kernels with Canonical Bayesian Inversion</fr:title>
            <fr:taxon>Reference</fr:taxon>
            <fr:meta name="doi">10.48550/arXiv.2209.14728</fr:meta>
            <fr:meta name="external">http://arxiv.org/abs/2209.14728</fr:meta>
            <fr:meta name="bibtex"><![CDATA[ @article
{hedges-braithwaite-dep, title={Dependent Bayesian Lenses: Categories of Bidirectional Markov Kernels with Canonical Bayesian Inversion}, url={http://arxiv.org/abs/2209.14728}, DOI={10.48550/arXiv.2209.14728}, abstractNote={We generalise an existing construction of Bayesian Lenses to admit lenses between pairs of objects where the backwards object is dependent on states on the forwards object (interpreted as probability distributions). This gives a natural setting for studying stochastic maps with Bayesian inverses restricted to the points supported by a given prior. In order to state this formally we develop a proposed definition by Fritz of a support object in a Markov category and show that these give rise to a section into the category of dependent Bayesian lenses encoding a more canonical notion of Bayesian inversion.}, number={arXiv:2209.14728}, publisher={arXiv}, author={Braithwaite, Dylan and Hedges, Jules}, year={2022}, month={Sep} }]]></fr:meta>
          </fr:frontmatter>
          <fr:mainmatter>
            <fr:tree show-metadata="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>Dylan Braithwaite</fr:author>
                  <fr:author>Jules Hedges</fr:author>
                </fr:authors>
                <fr:date>
                  <fr:year>2022</fr:year>
                  <fr:month>9</fr:month>
                  <fr:day>29</fr:day>
                </fr:date>
                <fr:title text="Abstract">Abstract</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
We generalise an existing construction of Bayesian Lenses to admit lenses between pairs of objects where the backwards object is dependent on states on the forwards object (interpreted as probability distributions). This gives a natural setting for studying stochastic maps with Bayesian inverses restricted to the points supported by a given prior. In order to state this formally we develop a proposed definition by Fritz of a support object in a Markov category and show that these give rise to a section into the category of dependent Bayesian lenses encoding a more canonical notion of Bayesian inversion.
</html:p>
              </fr:mainmatter>
            </fr:tree>
          </fr:mainmatter>
        </fr:tree>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors>
              <fr:author>Andre Videla</fr:author>
              <fr:author>Matteo Capucci</fr:author>
            </fr:authors>
            <fr:date>
              <fr:year>2022</fr:year>
              <fr:month>3</fr:month>
              <fr:day>29</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/videla-capucci-servers/</fr:uri>
            <fr:display-uri>videla-capucci-servers</fr:display-uri>
            <fr:route>/videla-capucci-servers/</fr:route>
            <fr:title text="Lenses for Composable Servers">Lenses for Composable Servers</fr:title>
            <fr:taxon>Reference</fr:taxon>
            <fr:meta name="doi">10.48550/arXiv.2203.15633</fr:meta>
            <fr:meta name="external">http://arxiv.org/abs/2203.15633</fr:meta>
            <fr:meta name="bibtex"><![CDATA[ @article
{videla-capucci-servers, title={Lenses for Composable Servers}, url={http://arxiv.org/abs/2203.15633}, DOI={10.48550/arXiv.2203.15633}, abstractNote={We implement the semantics of server operations using parameterised lenses. They allow us to define endpoints and extend them using classical lens composition. The parameterised nature of lenses models state updates while the lens laws mimic properties expected from HTTP. This first approach to server development is extended to use dependent parameterised lenses. An upgrade necessary to model not only endpoints, but entire servers, unlocking the ability to compose them together.}, number={arXiv:2203.15633}, publisher={arXiv}, author={Videla, Andre and Capucci, Matteo}, year={2022}, month={Mar} }]]></fr:meta>
          </fr:frontmatter>
          <fr:mainmatter>
            <fr:tree show-metadata="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>Andre Videla</fr:author>
                  <fr:author>Matteo Capucci</fr:author>
                </fr:authors>
                <fr:date>
                  <fr:year>2022</fr:year>
                  <fr:month>3</fr:month>
                  <fr:day>29</fr:day>
                </fr:date>
                <fr:title text="Abstract">Abstract</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
We implement the semantics of server operations using parameterised lenses. They allow us to define endpoints and extend them using classical lens composition. The parameterised nature of lenses models state updates while the lens laws mimic properties expected from HTTP. This first approach to server development is extended to use dependent parameterised lenses. An upgrade necessary to model not only endpoints, but entire servers, unlocking the ability to compose them together.
</html:p>
              </fr:mainmatter>
            </fr:tree>
          </fr:mainmatter>
        </fr:tree>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors>
              <fr:author>Dylan Braithwaite</fr:author>
              <fr:author>Matteo Capucci</fr:author>
              <fr:author>Bruno Gavranović</fr:author>
              <fr:author>Jules Hedges</fr:author>
              <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>2021</fr:year>
              <fr:month>12</fr:month>
              <fr:day>21</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/fibre-optics-2021/</fr:uri>
            <fr:display-uri>fibre-optics-2021</fr:display-uri>
            <fr:route>/fibre-optics-2021/</fr:route>
            <fr:title text="Fibre optics">Fibre optics</fr:title>
            <fr:taxon>Reference</fr:taxon>
            <fr:meta name="doi">10.48550/arXiv.2112.11145</fr:meta>
            <fr:meta name="external">http://arxiv.org/abs/2112.11145</fr:meta>
            <fr:meta name="bibtex"><![CDATA[ @article
{fibre-optics-2021, title={Fibre optics}, url={http://arxiv.org/abs/2112.11145}, DOI={10.48550/arXiv.2112.11145}, number={arXiv:2112.11145}, publisher={arXiv}, author={Braithwaite, Dylan and Capucci, Matteo and Gavranović, Bruno and Hedges, Jules and Rischel, Eigil Fjeldgren}, year={2021}, month={Dec} }]]></fr:meta>
          </fr:frontmatter>
          <fr:mainmatter>
            <fr:tree show-metadata="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>Dylan Braithwaite</fr:author>
                  <fr:author>Matteo Capucci</fr:author>
                  <fr:author>Bruno Gavranović</fr:author>
                  <fr:author>Jules Hedges</fr:author>
                  <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>2021</fr:year>
                  <fr:month>12</fr:month>
                  <fr:day>21</fr:day>
                </fr:date>
                <fr:title text="Abstract">Abstract</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
Lenses, optics and dependent lenses (or equivalently morphisms of containers, or equivalently natural transformations of polynomial functors) are all widely used in applied category theory as models of bidirectional processes. From the definition of lenses over a finite product category, optics weaken the required structure to actions of monoidal categories, and dependent lenses make use of the additional property of finite completeness (or, in case of polynomials, even local cartesian closure). This has caused a split in the applied category theory literature between those using optics and those using dependent lenses. The goal of this paper is to unify optics with dependent lenses, by finding a definition of fibre optics admitting both as special cases.
</html:p>
              </fr:mainmatter>
            </fr:tree>
          </fr:mainmatter>
        </fr:tree>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors />
            <fr:date>
              <fr:year>2021</fr:year>
              <fr:month>12</fr:month>
              <fr:day>7</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/milewski-polylens/</fr:uri>
            <fr:display-uri>milewski-polylens</fr:display-uri>
            <fr:route>/milewski-polylens/</fr:route>
            <fr:title text="PolyLens">PolyLens</fr:title>
            <fr:taxon>Reference</fr:taxon>
            <fr:meta name="external">https://bartoszmilewski.com/2021/12/07/polylens/</fr:meta>
            <fr:meta name="bibtex"><![CDATA[ @misc
{milewski-polylens, url={https://bartoszmilewski.com/2021/12/07/polylens/}, author={Milewski, Bartosz}, journal={Bartosz Milewski's Programming Cafe}, year={2021}, month={Dec},language={en}, title={PolyLens}}]]></fr:meta>
          </fr:frontmatter>
          <fr:mainmatter />
        </fr:tree>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors>
              <fr:author>G. S. H. Cruttwell</fr:author>
              <fr:author>Bruno Gavranović</fr:author>
              <fr:author>Neil Ghani</fr:author>
              <fr:author>Paul Wilson</fr:author>
              <fr:author>Fabio Zanasi</fr:author>
            </fr:authors>
            <fr:date>
              <fr:year>2021</fr:year>
              <fr:month>7</fr:month>
              <fr:day>13</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/bruno-etal-categorical-learning-2021/</fr:uri>
            <fr:display-uri>bruno-etal-categorical-learning-2021</fr:display-uri>
            <fr:route>/bruno-etal-categorical-learning-2021/</fr:route>
            <fr:title text="Categorical Foundations of Gradient-Based Learning">Categorical Foundations of Gradient-Based Learning</fr:title>
            <fr:taxon>Reference</fr:taxon>
            <fr:meta name="doi">10.48550/arXiv.2103.01931</fr:meta>
            <fr:meta name="external">http://arxiv.org/abs/2103.01931</fr:meta>
            <fr:meta name="bibtex"><![CDATA[ @article
{bruno-etal-categorical-learning-2021, title={Categorical Foundations of Gradient-Based Learning}, url={http://arxiv.org/abs/2103.01931}, DOI={10.48550/arXiv.2103.01931}, abstractNote={We propose a categorical semantics of gradient-based machine learning algorithms in terms of lenses, parametrised maps, and reverse derivative categories. This foundation provides a powerful explanatory and unifying framework: it encompasses a variety of gradient descent algorithms such as ADAM, AdaGrad, and Nesterov momentum, as well as a variety of loss functions such as as MSE and Softmax cross-entropy, shedding new light on their similarities and differences. Our approach to gradient-based learning has examples generalising beyond the familiar continuous domains (modelled in categories of smooth maps) and can be realized in the discrete setting of boolean circuits. Finally, we demonstrate the practical significance of our framework with an implementation in Python.}, number={arXiv:2103.01931}, publisher={arXiv}, author={Cruttwell, G. S. H. and Gavranović, Bruno and Ghani, Neil and Wilson, Paul and Zanasi, Fabio}, year={2021}, month={Jul} }]]></fr:meta>
          </fr:frontmatter>
          <fr:mainmatter>
            <fr:tree show-metadata="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>G. S. H. Cruttwell</fr:author>
                  <fr:author>Bruno Gavranović</fr:author>
                  <fr:author>Neil Ghani</fr:author>
                  <fr:author>Paul Wilson</fr:author>
                  <fr:author>Fabio Zanasi</fr:author>
                </fr:authors>
                <fr:date>
                  <fr:year>2021</fr:year>
                  <fr:month>7</fr:month>
                  <fr:day>13</fr:day>
                </fr:date>
                <fr:title text="Abstract">Abstract</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
We propose a categorical semantics of gradient-based machine learning algorithms in terms of lenses, parametrised maps, and reverse derivative categories. This foundation provides a powerful explanatory and unifying framework: it encompasses a variety of gradient descent algorithms such as ADAM, AdaGrad, and Nesterov momentum, as well as a variety of loss functions such as as MSE and Softmax cross-entropy, shedding new light on their similarities and differences. Our approach to gradient-based learning has examples generalising beyond the familiar continuous domains (modelled in categories of smooth maps) and can be realized in the discrete setting of boolean circuits. Finally, we demonstrate the practical significance of our framework with an implementation in Python.
</html:p>
              </fr:mainmatter>
            </fr:tree>
          </fr:mainmatter>
        </fr:tree>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors>
              <fr:author>Elena Di Lavore</fr:author>
              <fr:author>Jules Hedges</fr:author>
              <fr:author>Pawel Sobocinski</fr:author>
            </fr:authors>
            <fr:date>
              <fr:year>2021</fr:year>
            </fr:date>
            <fr:uri>https://erischel.com/hedges-etal-graph-games/</fr:uri>
            <fr:display-uri>hedges-etal-graph-games</fr:display-uri>
            <fr:route>/hedges-etal-graph-games/</fr:route>
            <fr:title text="Compositional modelling of network games">Compositional modelling of network games</fr:title>
            <fr:taxon>Reference</fr:taxon>
            <fr:meta name="doi">10.4230/LIPIcs.CSL.2021.30</fr:meta>
            <fr:meta name="bibtex"><![CDATA[ @article
{hedges-etal-graph-games, title={Compositional modelling of network games}, volume={183}, ISSN={1868-8969}, DOI={10.4230/LIPIcs.CSL.2021.30}, abstractNote={The analysis of games played on graph-like structures is of increasing importance due to the prevalence of social networks, both virtual and physical, in our daily life. As well as being relevant in computer science, mathematical analysis and computer simulations of such distributed games are vital methodologies in economics, politics and epidemiology, amongst other fields. Our contribution is to give compositional semantics of a family of such games as a well-behaved mapping, a strict monoidal functor, from a category of open graphs (syntax) to a category of open games (semantics). As well as introducing the theoretical framework, we identify some applications of compositionality.}, url={https://arxiv.org/abs/2006.03493}, journal={LIPIcs, Volume 183, CSL 2021}, author={Lavore, Elena Di and Hedges, Jules and Sobocinski, Pawel}, year={2021}, pages={30:1-30:24} }]]></fr:meta>
          </fr:frontmatter>
          <fr:mainmatter>
            <fr:tree show-metadata="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>Elena Di Lavore</fr:author>
                  <fr:author>Jules Hedges</fr:author>
                  <fr:author>Pawel Sobocinski</fr:author>
                </fr:authors>
                <fr:date>
                  <fr:year>2021</fr:year>
                </fr:date>
                <fr:title text="Abstract">Abstract</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
The analysis of games played on graph-like structures is of increasing importance due to the prevalence of social networks, both virtual and physical, in our daily life. As well as being relevant in computer science, mathematical analysis and computer simulations of such distributed games are vital methodologies in economics, politics and epidemiology, amongst other fields. Our contribution is to give compositional semantics of a family of such games as a well-behaved mapping, a strict monoidal functor, from a category of open graphs (syntax) to a category of open games (semantics). As well as introducing the theoretical framework, we identify some applications of compositionality.
</html:p>
              </fr:mainmatter>
            </fr:tree>
          </fr:mainmatter>
        </fr:tree>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors>
              <fr:author>Joe Bolt</fr:author>
              <fr:author>Jules Hedges</fr:author>
              <fr:author>Philipp Zahn</fr:author>
            </fr:authors>
            <fr:date>
              <fr:year>2019</fr:year>
              <fr:month>10</fr:month>
              <fr:day>8</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/hedges-etal-bayesian-games/</fr:uri>
            <fr:display-uri>hedges-etal-bayesian-games</fr:display-uri>
            <fr:route>/hedges-etal-bayesian-games/</fr:route>
            <fr:title text="Bayesian open games">Bayesian open games</fr:title>
            <fr:taxon>Reference</fr:taxon>
            <fr:meta name="external">http://arxiv.org/abs/1910.03656</fr:meta>
            <fr:meta name="bibtex"><![CDATA[ @article
{hedges-etal-bayesian-games, title={Bayesian open games}, url={http://arxiv.org/abs/1910.03656}, journal={arXiv:1910.03656 [cs, math]}, author={Bolt, Joe and Hedges, Jules and Zahn, Philipp}, year={2019}, month={Oct},language={en} }]]></fr:meta>
          </fr:frontmatter>
          <fr:mainmatter>
            <fr:tree show-metadata="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>Joe Bolt</fr:author>
                  <fr:author>Jules Hedges</fr:author>
                  <fr:author>Philipp Zahn</fr:author>
                </fr:authors>
                <fr:date>
                  <fr:year>2019</fr:year>
                  <fr:month>10</fr:month>
                  <fr:day>8</fr:day>
                </fr:date>
                <fr:title text="Abstract">Abstract</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
This paper generalises the treatment of compositional game theory as introduced by the second and third authors with Ghani and Winschel, where games are modelled as morphisms of a symmetric monoidal category. From an economic modelling perspective, the existing notion of an open game is not expressive enough for many applications. This includes stochastic environments, stochastic choices by players, as well as incomplete information regarding the game being played. The current paper addresses these three issue all at once. To achieve this we make significant use of category theory, especially the "coend optics" of Riley.
</html:p>
              </fr:mainmatter>
            </fr:tree>
          </fr:mainmatter>
        </fr:tree>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors>
              <fr:author>Brendan Fong</fr:author>
              <fr:author>David I. Spivak</fr:author>
              <fr:author>Rémy Tuyéras</fr:author>
            </fr:authors>
            <fr:date>
              <fr:year>2019</fr:year>
              <fr:month>5</fr:month>
              <fr:day>1</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/backprop-as-functor/</fr:uri>
            <fr:display-uri>backprop-as-functor</fr:display-uri>
            <fr:route>/backprop-as-functor/</fr:route>
            <fr:title text="Backprop as Functor: A compositional perspective on supervised learning">Backprop as Functor: A compositional perspective on supervised learning</fr:title>
            <fr:taxon>Reference</fr:taxon>
            <fr:meta name="external">http://arxiv.org/abs/1711.10455</fr:meta>
            <fr:meta name="bibtex"><![CDATA[ @article
{backprop-as-functor, title={Backprop as Functor: A compositional perspective on supervised learning}, url={http://arxiv.org/abs/1711.10455}, abstractNote={A supervised learning algorithm searches over a set of functions A → B parametrised by a space P to ﬁnd the best approximation to some ideal function f : A → B. It does this by taking examples (a, f (a)) ∈ A × B, and updating the parameter according to some rule. We deﬁne a category where these update rules may be composed, and show that gradient descent—with respect to a ﬁxed step size and an error function satisfying a certain property—deﬁnes a monoidal functor from a category of parametrised functions to this category of update rules. A key contribution is the notion of request function. This provides a structural perspective on backpropagation, giving a broad generalisation of neural networks and linking it with structures from bidirectional programming and open games.}, journal={arXiv:1711.10455 [cs, math]}, author={Fong, Brendan and Spivak, David I. and Tuyéras, Rémy}, year={2019}, month={May},language={en} }]]></fr:meta>
          </fr:frontmatter>
          <fr:mainmatter>
            <fr:tree show-metadata="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>Brendan Fong</fr:author>
                  <fr:author>David I. Spivak</fr:author>
                  <fr:author>Rémy Tuyéras</fr:author>
                </fr:authors>
                <fr:date>
                  <fr:year>2019</fr:year>
                  <fr:month>5</fr:month>
                  <fr:day>1</fr:day>
                </fr:date>
                <fr:title text="Abstract">Abstract</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
A supervised learning algorithm searches over a set of functions A → B parametrised by a space P to ﬁnd the best approximation to some ideal function f : A → B. It does this by taking examples (a, f (a)) ∈ A × B, and updating the parameter according to some rule. We deﬁne a category where these update rules may be composed, and show that gradient descent—with respect to a ﬁxed step size and an error function satisfying a certain property—deﬁnes a monoidal functor from a category of parametrised functions to this category of update rules. A key contribution is the notion of request function. This provides a structural perspective on backpropagation, giving a broad generalisation of neural networks and linking it with structures from bidirectional programming and open games.
</html:p>
              </fr:mainmatter>
            </fr:tree>
          </fr:mainmatter>
        </fr:tree>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors>
              <fr:author>Jules Hedges</fr:author>
            </fr:authors>
            <fr:date>
              <fr:year>2018</fr:year>
              <fr:month>8</fr:month>
              <fr:day>16</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/jules-lenses-blogpost/</fr:uri>
            <fr:display-uri>jules-lenses-blogpost</fr:display-uri>
            <fr:route>/jules-lenses-blogpost/</fr:route>
            <fr:title text="Lenses for philosophers">Lenses for philosophers</fr:title>
            <fr:taxon>Reference</fr:taxon>
            <fr:meta name="external">https://julesh.com/2018/08/16/lenses-for-philosophers/</fr:meta>
            <fr:meta name="bibtex"><![CDATA[ @misc
{jules-lenses-blogpost, title={Lenses for philosophers}, url={https://julesh.com/2018/08/16/lenses-for-philosophers/}, journal={Jules Hedges, blog}, author={Jules Hedges}, year={2018}, month={Aug},language={en} }]]></fr:meta>
          </fr:frontmatter>
          <fr:mainmatter />
        </fr:tree>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors>
              <fr:author>Neil Ghani</fr:author>
              <fr:author>Jules Hedges</fr:author>
              <fr:author>Viktor Winschel</fr:author>
              <fr:author>Philipp Zahn</fr:author>
            </fr:authors>
            <fr:date>
              <fr:year>2018</fr:year>
              <fr:month>2</fr:month>
              <fr:day>15</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/hedges-etal-comp-gametheory/</fr:uri>
            <fr:display-uri>hedges-etal-comp-gametheory</fr:display-uri>
            <fr:route>/hedges-etal-comp-gametheory/</fr:route>
            <fr:title text="Compositional game theory">Compositional game theory</fr:title>
            <fr:taxon>Reference</fr:taxon>
            <fr:meta name="doi">10.48550/arXiv.1603.04641</fr:meta>
            <fr:meta name="external">http://arxiv.org/abs/1603.04641</fr:meta>
            <fr:meta name="bibtex"><![CDATA[ @article
{hedges-etal-comp-gametheory, title={Compositional game theory}, url={http://arxiv.org/abs/1603.04641}, DOI={10.48550/arXiv.1603.04641}, abstractNote={We introduce open games as a compositional foundation of economic game theory. A compositional approach potentially allows methods of game theory and theoretical computer science to be applied to large-scale economic models for which standard economic tools are not practical. An open game represents a game played relative to an arbitrary environment and to this end we introduce the concept of coutility, which is the utility generated by an open game and returned to its environment. Open games are the morphisms of a symmetric monoidal category and can therefore be composed by categorical composition into sequential move games and by monoidal products into simultaneous move games. Open games can be represented by string diagrams which provide an intuitive but formal visualisation of the information flows. We show that a variety of games can be faithfully represented as open games in the sense of having the same Nash equilibria and off-equilibrium best responses.}, number={arXiv:1603.04641}, publisher={arXiv}, author={Ghani, Neil and Hedges, Jules and Winschel, Viktor and Zahn, Philipp}, year={2018}, month={Feb} }]]></fr:meta>
          </fr:frontmatter>
          <fr:mainmatter>
            <fr:tree show-metadata="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>Neil Ghani</fr:author>
                  <fr:author>Jules Hedges</fr:author>
                  <fr:author>Viktor Winschel</fr:author>
                  <fr:author>Philipp Zahn</fr:author>
                </fr:authors>
                <fr:date>
                  <fr:year>2018</fr:year>
                  <fr:month>2</fr:month>
                  <fr:day>15</fr:day>
                </fr:date>
                <fr:title text="Abstract">Abstract</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
We introduce open games as a compositional foundation of economic game theory. A compositional approach potentially allows methods of game theory and theoretical computer science to be applied to large-scale economic models for which standard economic tools are not practical. An open game represents a game played relative to an arbitrary environment and to this end we introduce the concept of coutility, which is the utility generated by an open game and returned to its environment. Open games are the morphisms of a symmetric monoidal category and can therefore be composed by categorical composition into sequential move games and by monoidal products into simultaneous move games. Open games can be represented by string diagrams which provide an intuitive but formal visualisation of the information flows. We show that a variety of games can be faithfully represented as open games in the sense of having the same Nash equilibria and off-equilibrium best responses.
</html:p>
              </fr:mainmatter>
            </fr:tree>
          </fr:mainmatter>
        </fr:tree>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors>
              <fr:author>Mitchell Riley</fr:author>
            </fr:authors>
            <fr:date>
              <fr:year>2018</fr:year>
            </fr:date>
            <fr:uri>https://erischel.com/riley-optics/</fr:uri>
            <fr:display-uri>riley-optics</fr:display-uri>
            <fr:route>/riley-optics/</fr:route>
            <fr:title text="Categories of optics">Categories of optics</fr:title>
            <fr:taxon>Reference</fr:taxon>
            <fr:meta name="bibtex"><![CDATA[ @article
{riley-optics, title={Categories of optics}, journal={arXiv preprint arXiv:1809.00738}, author={Riley, Mitchell}, year={2018} }]]></fr:meta>
          </fr:frontmatter>
          <fr:mainmatter />
        </fr:tree>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors>
              <fr:author>Jm Hedges</fr:author>
            </fr:authors>
            <fr:date>
              <fr:year>2016</fr:year>
              <fr:month>10</fr:month>
              <fr:day>3</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/hedges-towards-compositional-thesis/</fr:uri>
            <fr:display-uri>hedges-towards-compositional-thesis</fr:display-uri>
            <fr:route>/hedges-towards-compositional-thesis/</fr:route>
            <fr:title text="Towards compositional game theory">Towards compositional game theory</fr:title>
            <fr:taxon>Reference</fr:taxon>
            <fr:meta name="external">https://qmro.qmul.ac.uk/xmlui/handle/123456789/23259</fr:meta>
            <fr:meta name="bibtex"><![CDATA[ @article
{hedges-towards-compositional-thesis, title={Towards compositional game theory}, url={https://qmro.qmul.ac.uk/xmlui/handle/123456789/23259}, abstractNote={We introduce a new foundation for game theory based on so-called open games. Unlike existing approaches open games are fully compositional: games are built using algebraic operations from standard components, such as players and outcome functions, with no fundamental distinction being made between the parts and the whole. Open games are intended to be applied at large scales where classical game theory becomes impractical to use, and this thesis therefore covers part of the theoretical foundation of a powerful new tool for economics and other subjects using game theory. Formally we defi ne a symmetric monoidal category whose morphisms are open games, which can therefore be combined either sequentially using categorical composition, or simultaneously using the monoidal product. Using this structure we can also graphically represent open games using string diagrams. We prove that the new de definitions give the same results (both equilibria and o -equilibrium best responses) as classical game theory in several important special cases: normal form games with pure and mixed strategy Nash equilibria, and perfect information games with subgame perfect equilibria. This thesis also includes work on higher order game theory, a related but simpler approach to game theory that uses higher order functions to model players. This has been extensively developed by Martin Escard o and Paulo Oliva for games of perfect information, and we extend it to normal form games. We show that this approach can be used to elegantly model coordination and di differentiation goals of players. We also argue that a modify cation of the solution concept used by Escard o and Oliva is more appropriate for such applications.}, author={Hedges, Jm}, year={2016}, month={Oct},language={en} }]]></fr:meta>
          </fr:frontmatter>
          <fr:mainmatter>
            <fr:tree show-metadata="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>Jm Hedges</fr:author>
                </fr:authors>
                <fr:date>
                  <fr:year>2016</fr:year>
                  <fr:month>10</fr:month>
                  <fr:day>3</fr:day>
                </fr:date>
                <fr:title text="Abstract">Abstract</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
We introduce a new foundation for game theory based on so-called open games. Unlike existing approaches open games are fully compositional: games are built using algebraic operations from standard components, such as players and outcome functions, with no fundamental distinction being made between the parts and the whole. Open games are intended to be applied at large scales where classical game theory becomes impractical to use, and this thesis therefore covers part of the theoretical foundation of a powerful new tool for economics and other subjects using game theory. Formally we defi ne a symmetric monoidal category whose morphisms are open games, which can therefore be combined either sequentially using categorical composition, or simultaneously using the monoidal product. Using this structure we can also graphically represent open games using string diagrams. We prove that the new de definitions give the same results (both equilibria and o -equilibrium best responses) as classical game theory in several important special cases: normal form games with pure and mixed strategy Nash equilibria, and perfect information games with subgame perfect equilibria. This thesis also includes work on higher order game theory, a related but simpler approach to game theory that uses higher order functions to model players. This has been extensively developed by Martin Escard o and Paulo Oliva for games of perfect information, and we extend it to normal form games. We show that this approach can be used to elegantly model coordination and di differentiation goals of players. We also argue that a modify cation of the solution concept used by Escard o and Oliva is more appropriate for such applications.
</html:p>
              </fr:mainmatter>
            </fr:tree>
          </fr:mainmatter>
        </fr:tree>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors>
              <fr:author>David Jaz Myers</fr:author>
            </fr:authors>
            <fr:uri>https://erischel.com/myers-cst/</fr:uri>
            <fr:display-uri>myers-cst</fr:display-uri>
            <fr:route>/myers-cst/</fr:route>
            <fr:title text="Categorical Systems Theory">Categorical Systems Theory</fr:title>
            <fr:taxon>Reference</fr:taxon>
            <fr:meta name="bibtex"><![CDATA[ @misc
{myers-cst, title={Categorical Systems Theory}, author={Myers, David Jaz},language={en} , url={http://davidjaz.com/Papers/DynamicalBook.pdf}}]]></fr:meta>
            <fr:meta name="external">http://davidjaz.com/Papers/DynamicalBook.pdf</fr:meta>
          </fr:frontmatter>
          <fr:mainmatter />
        </fr:tree>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors>
              <fr:author>Owen Lynch</fr:author>
              <fr:author>Eigil Fjeldgren Rischel</fr:author>
              <fr:author>David Jaz Myers</fr:author>
              <fr:author>Sam Staton</fr:author>
            </fr:authors>
            <fr:uri>https://erischel.com/lynch-myers-rischel-staton-stoch-clocks/</fr:uri>
            <fr:display-uri>lynch-myers-rischel-staton-stoch-clocks</fr:display-uri>
            <fr:route>/lynch-myers-rischel-staton-stoch-clocks/</fr:route>
            <fr:title text="Clock systems for stochastic and non-deterministic categorical systems theories">Clock systems for stochastic and non-deterministic categorical systems theories</fr:title>
            <fr:taxon>Reference</fr:taxon>
            <fr:meta name="bibtex"><![CDATA[ @unpublished
{lynch-myers-rischel-staton-stoch-clocks, title={Clock systems for stochastic and non-deterministic categorical systems theories}, year={2025}, author={Lynch, Owen and Myers, David Jaz and Rischel, Eigil Fjeldgren and Staton, Sam}, note={Applied Category Theory 2025}, }]]></fr:meta>
          </fr:frontmatter>
          <fr:mainmatter />
        </fr:tree>
      </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>5</fr:month>
              <fr:day>25</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/efr-0001/</fr:uri>
            <fr:display-uri>efr-0001</fr:display-uri>
            <fr:route>/efr-0001/</fr:route>
            <fr:title text="Markov Fibrations">Markov Fibrations</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>2025</fr:year>
                  <fr:month>4</fr:month>
                  <fr:day>6</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-HQ73/</fr:uri>
                <fr:display-uri>efr-HQ73</fr:display-uri>
                <fr:route>/efr-HQ73/</fr:route>
                <fr:title text="Introduction">Introduction</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  In applying category theory to fields as diverse as game theory (<fr:link href="/hedges-etal-comp-gametheory/" title="Compositional game theory" uri="https://erischel.com/hedges-etal-comp-gametheory/" display-uri="hedges-etal-comp-gametheory" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-etal-comp-gametheory/" display-uri="hedges-etal-comp-gametheory" /></fr:link>,<fr:link href="/hedges-etal-bayesian-games/" title="Bayesian open games" uri="https://erischel.com/hedges-etal-bayesian-games/" display-uri="hedges-etal-bayesian-games" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-etal-bayesian-games/" display-uri="hedges-etal-bayesian-games" /></fr:link>, <fr:link href="/hedges-etal-graph-games/" title="Compositional modelling of network games" uri="https://erischel.com/hedges-etal-graph-games/" display-uri="hedges-etal-graph-games" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-etal-graph-games/" display-uri="hedges-etal-graph-games" /></fr:link>), 
  machine learning (<fr:link href="/bruno-etal-categorical-learning-2021/" title="Categorical Foundations of Gradient-Based Learning" uri="https://erischel.com/bruno-etal-categorical-learning-2021/" display-uri="bruno-etal-categorical-learning-2021" type="local">Reference <fr:contextual-number uri="https://erischel.com/bruno-etal-categorical-learning-2021/" display-uri="bruno-etal-categorical-learning-2021" /></fr:link>, <fr:link href="/bruno-thesis-fundamental-components/" title="Fundamental Components of Deep Learning: A category-theoretic approach" uri="https://erischel.com/bruno-thesis-fundamental-components/" display-uri="bruno-thesis-fundamental-components" type="local">Reference <fr:contextual-number uri="https://erischel.com/bruno-thesis-fundamental-components/" display-uri="bruno-thesis-fundamental-components" /></fr:link>), dynamical systems (<fr:link href="/myers-cst/" title="Categorical Systems Theory" uri="https://erischel.com/myers-cst/" display-uri="myers-cst" type="local">Reference <fr:contextual-number uri="https://erischel.com/myers-cst/" display-uri="myers-cst" /></fr:link>, <fr:link href="/lynch-myers-rischel-staton-stoch-clocks/" title="Clock systems for stochastic and non-deterministic categorical systems theories" uri="https://erischel.com/lynch-myers-rischel-staton-stoch-clocks/" display-uri="lynch-myers-rischel-staton-stoch-clocks" type="local">Reference <fr:contextual-number uri="https://erischel.com/lynch-myers-rischel-staton-stoch-clocks/" display-uri="lynch-myers-rischel-staton-stoch-clocks" /></fr:link>), and server design (<fr:link href="/videla-capucci-servers/" title="Lenses for Composable Servers" uri="https://erischel.com/videla-capucci-servers/" display-uri="videla-capucci-servers" type="local">Reference <fr:contextual-number uri="https://erischel.com/videla-capucci-servers/" display-uri="videla-capucci-servers" /></fr:link>), people have found it useful to study categories whose morphisms describe processes or functions that take place in two "stages", where the second is dependent on the first, but composes in the other direction---so-called <html:em>lenses</html:em>. In many of these domains, stochastic phenomena play a role. There is a useful generalization of lenses to categories of stochastic maps---the so-called <html:em>optics</html:em> of Riley, <fr:link href="/riley-optics/" title="Categories of optics" uri="https://erischel.com/riley-optics/" display-uri="riley-optics" type="local">Reference <fr:contextual-number uri="https://erischel.com/riley-optics/" display-uri="riley-optics" /></fr:link>---but this does not accommodate another useful generalization, so called <html:em>dependent lenses</html:em> where not only the backwards process but the set it takes values in is indexed over the base. It has been a long-standing problem to develop a suitable common generalization, "dependent optics", of these two ideas. In this thesis, we solve this problem by developing a theory of <html:em>Markov fibrations</html:em> (<fr:link href="/efr-O088/" title="Markov Fibrations and Stochastic Lenses" uri="https://erischel.com/efr-O088/" display-uri="efr-O088" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-O088/" display-uri="efr-O088" /></fr:link>).
</html:p>
                <html:p>
  A Markov fibration is a weakening of the notion of (Grothendieck) fibration to include (subject to some assumptions) Markov categories of indexed families of objects (given by deterministic functions <fr:tex display="inline"><![CDATA[E \to  X]]></fr:tex>) and compatible stochastic maps (given by commutative squares). The main point of Markov fibrations is that they admit <html:em>fiberwise opposites</html:em>, which generalize the fiberwise opposites of ordinary categories. Just as the fiberwise opposite of the codomain fibration of a finitely complete category describes dependent lenses (see <fr:link href="/efr-ZCTD/" title="Optics and Lenses" uri="https://erischel.com/efr-ZCTD/" display-uri="efr-ZCTD" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-ZCTD/" display-uri="efr-ZCTD" /></fr:link>), the fiberwise opposite of these codomain Markov fibrations give a good notion of stochastic lens (see <fr:link href="/efr-K6NM/" title="https://erischel.com/efr-K6NM/" uri="https://erischel.com/efr-K6NM/" display-uri="efr-K6NM" type="local">Theorem <fr:contextual-number uri="https://erischel.com/efr-K6NM/" display-uri="efr-K6NM" /></fr:link>).
</html:p>
                <html:p>
  We will apply our theory chiefly to two problems. First, we will use them to generalize <html:em>open games</html:em> (Hedges, <fr:link href="/hedges-towards-compositional-thesis/" title="Towards compositional game theory" uri="https://erischel.com/hedges-towards-compositional-thesis/" display-uri="hedges-towards-compositional-thesis" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-towards-compositional-thesis/" display-uri="hedges-towards-compositional-thesis" /></fr:link>) to a larger class of interfaces (namely, indexed families of sets) while at the same time considering possibly-stochastic maps. This will allow us to construct the so-called <html:em>external choice</html:em> operator on open games, which describes branching.
</html:p>
                <html:p>
  Secondly, we will generalize Myers' categorical dynamical systems theory to allow for stochastic maps in the base. When combined with another generalization of these systems, to general parametrized lenses, this gives a more natural way of modeling certain stochastic dynamical systems, such as those associated to the training dynamics of machine learning models, see eg <fr:link href="/efr-RUTY/" title="Generative Adversarial Network" uri="https://erischel.com/efr-RUTY/" display-uri="efr-RUTY" type="local">Example <fr:contextual-number uri="https://erischel.com/efr-RUTY/" display-uri="efr-RUTY" /></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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:title text="A brief introduction to lenses">A brief introduction to lenses</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is a category with finite products, the category <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C})]]></fr:tex> of <html:em>lenses</html:em> in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> has objects pairs <fr:tex display="inline"><![CDATA[\binom {A}{X}]]></fr:tex> of objects in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, and morphisms <fr:tex display="inline"><![CDATA[\binom {A}{X} \leftrightarrows  \binom {B}{Y}]]></fr:tex> given by pairs <fr:tex display="inline"><![CDATA[f: X \to  Y, f^\#: B \times  X \to  A]]></fr:tex>. (Note that it is of course the morphisms, not the objects, that are called lenses). One way to generalize this is to ask for <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> to have pullbacks, and consider an object given by a more general map <fr:tex display="inline"><![CDATA[A \to  X]]></fr:tex>, and let a map be <fr:tex display="inline"><![CDATA[f: X \to  Y, f^\#: B \times _Y X \to  A]]></fr:tex> (so that the triangle over <fr:tex display="inline"><![CDATA[X]]></fr:tex> commutes). (Note that this recovers the "simple lenses" when the objects are of the form <fr:tex display="inline"><![CDATA[A \times  X \to  X]]></fr:tex>). Under the interpretation of a map <fr:tex display="inline"><![CDATA[A \to  X]]></fr:tex> as a family of objects <fr:tex display="inline"><![CDATA[A_x]]></fr:tex> indexed over the elements of <fr:tex display="inline"><![CDATA[X]]></fr:tex>, we see this as a "dependent lens" (since <fr:tex display="inline"><![CDATA[A]]></fr:tex> is a "dependent type"). There are various variations of this idea, which ultimately all fit the pattern of taking a Grothendieck fibration <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> and forming the fiberwise opposite---for the dependent lenses as above, this is the codomain fibration <fr:tex display="inline"><![CDATA[\mathcal {C}^\to  \to  \mathcal {C}]]></fr:tex>. 
</html:p>
                    <html:p>
  Meanwhile, another wide-ranging generalization of <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C})]]></fr:tex> are the <html:em>optics</html:em> of Riley (<fr:link href="/riley-optics/" title="Categories of optics" uri="https://erischel.com/riley-optics/" display-uri="riley-optics" type="local">Reference <fr:contextual-number uri="https://erischel.com/riley-optics/" display-uri="riley-optics" /></fr:link>). For <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> a monoidal category, the objects of <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C})]]></fr:tex> are again pairs <fr:tex display="inline"><![CDATA[\binom {A}{X}]]></fr:tex> of objects, but now the morphisms are elements of the coend <fr:tex display="block"><![CDATA[\int ^{M \in  \mathcal {C}}\mathcal {C}(X, M \otimes  Y) \times  \mathcal {C}(M \otimes  B, A).]]></fr:tex> That is, to give an optic <fr:tex display="inline"><![CDATA[\binom {A}{X} \leftrightarrows  \binom {B}{Y}]]></fr:tex> is to give an object <fr:tex display="inline"><![CDATA[M \in  \mathcal {C}]]></fr:tex> and morphisms <fr:tex display="inline"><![CDATA[l: X \to  M \otimes  Y, r: M \otimes  B \to  A]]></fr:tex>, up to the equivalence relation generated by, whenever <fr:tex display="inline"><![CDATA[s: N \to  M, l: X \to  N \otimes  Y, r: M \otimes  B \to  A,]]></fr:tex> identifying the two optics given by <fr:tex display="inline"><![CDATA[(M, (s \otimes  1_Y) \circ  l, r)]]></fr:tex> and <fr:tex display="inline"><![CDATA[(N, l, r \circ  (s \otimes  1_B))]]></fr:tex>. One can show that, in the case where <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is a Cartesian monoidal category, this set can be identified with the set of (simple) lenses.
</html:p>
                    <html:p>
  A vector field on a smooth manifold <fr:tex display="inline"><![CDATA[X]]></fr:tex> is simply a (smooth) section of the tangent bundle <fr:tex display="inline"><![CDATA[TX]]></fr:tex>.
  A section is a bundle map from the trivial bundle <fr:tex display="inline"><![CDATA[X \to  X]]></fr:tex>. This gives the idea of considering a <html:em>parametrized</html:em> dynamical system as consisting of a map <fr:tex display="inline"><![CDATA[X \to  A]]></fr:tex> to some other smooth manifold, a bundle <fr:tex display="inline"><![CDATA[E \to  A]]></fr:tex> (the points of <fr:tex display="inline"><![CDATA[E]]></fr:tex> are the parameters) and a bundle map <fr:tex display="inline"><![CDATA[E \times _A X \to  TX]]></fr:tex>.
  As we will see, such a bundle map is exactly a dependent lens in a category of bundles. Building on this idea, Myers (<fr:link href="/myers-cst/" title="Categorical Systems Theory" uri="https://erischel.com/myers-cst/" display-uri="myers-cst" type="local">Reference <fr:contextual-number uri="https://erischel.com/myers-cst/" display-uri="myers-cst" /></fr:link>) described a highly abstract theory of open dynamical systems, given by lenses out of tangent bundles (where the notion of space, bundle and tangent bundle are generalized to any fibration).
</html:p>
                    <html:p>
   It has been observed that, although a lens from the tangent bundle <fr:tex display="inline"><![CDATA[TS \leftrightarrows  A]]></fr:tex> may indeed be said to describe an open dynamical system with state space <fr:tex display="inline"><![CDATA[S]]></fr:tex>, the same can be said for a lens of type <fr:tex display="inline"><![CDATA[TS \otimes  A \leftrightarrows  I]]></fr:tex>---although a dynamical system of a different kind (essentially, the first type are the <html:em>Moore machines</html:em>, the second the <html:em>Mealy machines</html:em>---see the introduction to <fr:link href="/efr-000D/" title="The \mathsf {Para} construction in generic 2-categories" uri="https://erischel.com/efr-000D/" display-uri="efr-000D" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-000D/" display-uri="efr-000D" /></fr:link> for more on this). It is natural to consider parametrized maps <fr:tex display="inline"><![CDATA[TS \otimes  A \leftrightarrows  B]]></fr:tex> as a common generalization of these two concepts---and in fact, special cases of this idea, lenses parametrized by tangent bundles, have already been considered many times, for example in the semantics of gradient descent (see <fr:link href="/bruno-etal-categorical-learning-2021/" title="Categorical Foundations of Gradient-Based Learning" uri="https://erischel.com/bruno-etal-categorical-learning-2021/" display-uri="bruno-etal-categorical-learning-2021" type="local">Reference <fr:contextual-number uri="https://erischel.com/bruno-etal-categorical-learning-2021/" display-uri="bruno-etal-categorical-learning-2021" /></fr:link>, <fr:link href="/towards-cybercat/" title="Towards Foundations of Categorical Cybernetics" uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" type="local">Reference <fr:contextual-number uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" /></fr:link>, <fr:link href="/backprop-as-functor/" title="Backprop as Functor: A compositional perspective on supervised learning" uri="https://erischel.com/backprop-as-functor/" display-uri="backprop-as-functor" type="local">Reference <fr:contextual-number uri="https://erischel.com/backprop-as-functor/" display-uri="backprop-as-functor" /></fr:link>).</html:p>
                    <html:p>
  Since parametrized maps compose in an obvious way, we now have three different notions of morphisms between bundles---lenses, charts, and "generalized systems". These should form some sort of symmetric monoidal triple category, but the right axiomatisation of this concept is somewhat elusive.
</html:p>
                    <html:p>
  Lenses, in their various incarnations, have been widely used in applied category theory. For example, Hedges and his collaborators have developed a compositional approach to game theory (<fr:link href="/hedges-string-games/" title="String diagrams for game theory" uri="https://erischel.com/hedges-string-games/" display-uri="hedges-string-games" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-string-games/" display-uri="hedges-string-games" /></fr:link>, <fr:link href="/hedges-etal-comp-gametheory/" title="Compositional game theory" uri="https://erischel.com/hedges-etal-comp-gametheory/" display-uri="hedges-etal-comp-gametheory" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-etal-comp-gametheory/" display-uri="hedges-etal-comp-gametheory" /></fr:link>, <fr:link href="/hedges-etal-institutions/" title="Composing games into complex institutions" uri="https://erischel.com/hedges-etal-institutions/" display-uri="hedges-etal-institutions" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-etal-institutions/" display-uri="hedges-etal-institutions" /></fr:link>, <fr:link href="/hedges-etal-graph-games/" title="Compositional modelling of network games" uri="https://erischel.com/hedges-etal-graph-games/" display-uri="hedges-etal-graph-games" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-etal-graph-games/" display-uri="hedges-etal-graph-games" /></fr:link>, others). Recent work by Hedges and Sakamoto bring this idea to reinforcement learning (<fr:link href="/sakamoto-reinforcement-lenses/" title="Reinforcement Learning in Categorical Cybernetics" uri="https://erischel.com/sakamoto-reinforcement-lenses/" display-uri="sakamoto-reinforcement-lenses" type="local">Reference <fr:contextual-number uri="https://erischel.com/sakamoto-reinforcement-lenses/" display-uri="sakamoto-reinforcement-lenses" /></fr:link>). We briefly mentioned Myers' categorical systems theory above, and we will see much more of it later. As we discussed above, there is also a literature using lenses to study gradient descent in an abstract sense. This is without even mentioning their original role in the theory of functional programming (this is the origin of the somewhat confusing term <html:em>lens</html:em>), or their prehistory in Gödel's dialectica interpretation---see eg <fr:link href="/jules-lenses-blogpost/" title="Lenses for philosophers" uri="https://erischel.com/jules-lenses-blogpost/" display-uri="jules-lenses-blogpost" type="local">Reference <fr:contextual-number uri="https://erischel.com/jules-lenses-blogpost/" display-uri="jules-lenses-blogpost" /></fr:link> for a survey of this.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:title text="
    Dependent Optics
  ">
    Dependent Optics
  </fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
    An open game, in the sense of Hedges, has as its interface two objects in the category of lenses (of sets) <fr:tex display="inline"><![CDATA[\binom {S}{X}, \binom {R}{Y}]]></fr:tex> (that is, two pairs of sets). An open game with this interface consists of a set <fr:tex display="inline"><![CDATA[\Sigma ]]></fr:tex> of <html:em>strategies</html:em> equipped with a function <fr:tex display="inline"><![CDATA[\Sigma  \to  \mathsf {Lens}(\mathsf {Set})(\binom {S}{X},\binom {R}{Y}),]]></fr:tex> and a subset <fr:tex display="inline"><![CDATA[Eq(x, k) \subset  \Sigma ]]></fr:tex> of <html:em>equilibrium strategies</html:em> for each <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex> and <fr:tex display="inline"><![CDATA[k: Y \to  R]]></fr:tex>---note that such an <fr:tex display="inline"><![CDATA[x]]></fr:tex> is exactly a lens <fr:tex display="inline"><![CDATA[\binom {*}{*} \leftrightarrows  \binom {S}{X},]]></fr:tex> and such a <fr:tex display="inline"><![CDATA[k]]></fr:tex> is exactly a lens <fr:tex display="inline"><![CDATA[\binom {R}{Y} \to  \binom {*}{*}]]></fr:tex>. This view of open games makes the composition rule much simpler to define, although we will not delve into the details here, see eg <fr:link href="/hedges-etal-comp-gametheory/" title="Compositional game theory" uri="https://erischel.com/hedges-etal-comp-gametheory/" display-uri="hedges-etal-comp-gametheory" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-etal-comp-gametheory/" display-uri="hedges-etal-comp-gametheory" /></fr:link>. The idea is that the open game represents the strategies and preferences of a player or set of players---<fr:tex display="inline"><![CDATA[\sigma  \in  \Sigma ]]></fr:tex> are the possible strategies, <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex> is the information revealed to the player before they make their decision of which moves to make, the resulting <fr:tex display="inline"><![CDATA[y \in  Y]]></fr:tex> is the choice the player "sends" in response to <fr:tex display="inline"><![CDATA[x]]></fr:tex>, and the <fr:tex display="inline"><![CDATA[r \in  R]]></fr:tex> is the "utility", the value they eventually learn, depending on their choice <fr:tex display="inline"><![CDATA[y]]></fr:tex>, which they have some preferences over.
  </html:p>
                    <html:p>
    The above description gives a theory of deterministic games, but of course, it is completely essential for game theory to model both random decisions (mixed strategies) and decisions made under uncertainty. This motivates the replacement of lenses in this definition with optics in a category of probability kernels (the form of the equilibrium relation must be modified as well, see <fr:link href="/hedges-etal-bayesian-games/" title="Bayesian open games" uri="https://erischel.com/hedges-etal-bayesian-games/" display-uri="hedges-etal-bayesian-games" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-etal-bayesian-games/" display-uri="hedges-etal-bayesian-games" /></fr:link>, <fr:link href="/towards-cybercat/" title="Towards Foundations of Categorical Cybernetics" uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" type="local">Reference <fr:contextual-number uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" /></fr:link>)
  </html:p>
                    <html:p>
    In the abstract study of open games, it is desirable to define a "choice" operation <fr:tex display="inline"><![CDATA[\oplus ]]></fr:tex> on the objects (the pairs of sets) so that maps into <fr:tex display="inline"><![CDATA[\binom {R}{X} \oplus  \binom {R'}{X'}]]></fr:tex> represent players who are faced with some binary choice between <fr:tex display="inline"><![CDATA[X]]></fr:tex> and <fr:tex display="inline"><![CDATA[X']]></fr:tex>, after which play may proceed for a time in one of two branches. However, this is immediately problematic because the category of lenses do not have coproducts---inside the category of <html:em>dependent</html:em> lenses, however, we can form the coproduct simply as <fr:tex display="inline"><![CDATA[R \times  X + R' \times  X' \to  X + X']]></fr:tex>---that is, we get a family which is <fr:tex display="inline"><![CDATA[R]]></fr:tex> over <fr:tex display="inline"><![CDATA[X]]></fr:tex>, and <fr:tex display="inline"><![CDATA[R']]></fr:tex> over <fr:tex display="inline"><![CDATA[X']]></fr:tex>. This indeed does the job, but for game theory the extension to stochastic maps---optics---is absolutely essential. This motivates the search for a theory of <html:em>dependent optics</html:em>, a common generalization of optics and dependent lenses.
  </html:p>
                    <html:p>
    There have been a number of attempts at this---see eg <fr:link href="/fibre-optics-2021/" title="Fibre optics" uri="https://erischel.com/fibre-optics-2021/" display-uri="fibre-optics-2021" type="local">Reference <fr:contextual-number uri="https://erischel.com/fibre-optics-2021/" display-uri="fibre-optics-2021" /></fr:link>, <fr:link href="/hedges-braithwaite-dep/" title="Dependent Bayesian Lenses: Categories of Bidirectional Markov Kernels with Canonical Bayesian Inversion" uri="https://erischel.com/hedges-braithwaite-dep/" display-uri="hedges-braithwaite-dep" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-braithwaite-dep/" display-uri="hedges-braithwaite-dep" /></fr:link>, <fr:link href="/milewski-polylens/" title="PolyLens" uri="https://erischel.com/milewski-polylens/" display-uri="milewski-polylens" type="local">Reference <fr:contextual-number uri="https://erischel.com/milewski-polylens/" display-uri="milewski-polylens" /></fr:link>, <fr:link href="/vertechi-dep-optics/" title="Dependent Optics" uri="https://erischel.com/vertechi-dep-optics/" display-uri="vertechi-dep-optics" type="local">Reference <fr:contextual-number uri="https://erischel.com/vertechi-dep-optics/" display-uri="vertechi-dep-optics" /></fr:link>. While these efforts have to some extent succeeded in describing a theory that is general enough to contain the desired examples, it is generally very ad hoc. The construction of optics as a special case of Vertechi's dependent optics (<fr:link href="/vertechi-dep-optics/" title="Dependent Optics" uri="https://erischel.com/vertechi-dep-optics/" display-uri="vertechi-dep-optics" type="local">Reference <fr:contextual-number uri="https://erischel.com/vertechi-dep-optics/" display-uri="vertechi-dep-optics" /></fr:link>) gives them as fibre optics with the indexing bicategory being (the delooping of) a monoidal category <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex>, but embeds lenses using a bicategory of spans. Thus simple lenses admit two distinct encodings in this theory. Moreover, Vertechi's example of dependent monoidal optics fails to describe a supercategory of <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C})]]></fr:tex> when applied to Markov categories, and are thus not suitable for, for example, game theory.
  </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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:title text="Categorical Cybernetics">Categorical Cybernetics</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
    The observation that both open games and machine learning systems can be fruitfully described using lenses, naturally led to the idea that this could be used to develop a more thorough analogy between the two. After all, a machine learning system is also a player in a kind of game (with the objective of minimizing loss). Hedges coined the phrase <html:em>categorical cybernetics</html:em> to describe this locus of ideas (<fr:link href="/towards-cybercat/" title="Towards Foundations of Categorical Cybernetics" uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" type="local">Reference <fr:contextual-number uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" /></fr:link>, also used in <fr:link href="/sakamoto-reinforcement-lenses/" title="Reinforcement Learning in Categorical Cybernetics" uri="https://erischel.com/sakamoto-reinforcement-lenses/" display-uri="sakamoto-reinforcement-lenses" type="local">Reference <fr:contextual-number uri="https://erischel.com/sakamoto-reinforcement-lenses/" display-uri="sakamoto-reinforcement-lenses" /></fr:link>).
  </html:p>
                    <html:p>
    Myers' categorical systems theory also describes dynamical systems as lenses. However, where a cybernetic system in the sense of <fr:link href="/towards-cybercat/" title="Towards Foundations of Categorical Cybernetics" uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" type="local">Reference <fr:contextual-number uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" /></fr:link> is a parametrized lens <fr:tex display="inline"><![CDATA[\Sigma  \otimes  {\bar {X} \choose  X} \leftrightarrows  {\bar {Y} \choose  Y},]]></fr:tex> and thus has two different inputs - <fr:tex display="inline"><![CDATA[x \in  X,]]></fr:tex> which is the information on which basis they are allowed to choose their decision <fr:tex display="inline"><![CDATA[y \in  Y,]]></fr:tex> and <fr:tex display="inline"><![CDATA[y^\sharp  \in  \bar {Y},]]></fr:tex> which is their "utility", the information they are allowed to care about.
  </html:p>
                    <html:p>
    It is straightforward to describe the machine learning part of the categorical cybernetics analogy in terms of Myers' theory---a "learner" is simply a lens of the above form with <fr:tex display="inline"><![CDATA[\Sigma ]]></fr:tex> replace with a tangent bundle <fr:tex display="inline"><![CDATA[TS]]></fr:tex>. This idea (described in these terms, although not with the analogy to machine learning) has already been described by <fr:link href="/energy-driven-systems/" title="Organizing Physics with Open Energy-Driven Systems" uri="https://erischel.com/energy-driven-systems/" display-uri="energy-driven-systems" type="local">Reference <fr:contextual-number uri="https://erischel.com/energy-driven-systems/" display-uri="energy-driven-systems" /></fr:link>.
    However, for game theory, it is necessary that the output of a given system can be stochastically chosen (a player must be able to randomize their strategy). At the same time, for a machine learning system, the <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex> is usually some sort of sample from a training distribution---ie, it is random. Hence to really describe the training dynamics of machine learning systems using this theory, we are again naturally drawn to consider systems theories (that is, fibrations) which have stochastic maps in the base, not merely the fiber.
  </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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:title text="Overview and contributions">Overview and contributions</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
    We begin the thesis in <fr:link href="/efr-POD2/" title="Preliminaries" uri="https://erischel.com/efr-POD2/" display-uri="efr-POD2" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-POD2/" display-uri="efr-POD2" /></fr:link> with a review of some preliminary material. This chapter can largely be skipped for readers already familiar with the material (Markov categories, double categories, lenses and optics, fibrations, and categorical dynamical systems theory). The chapter on Markov categories introduces a few novel auxiliary notions, but these can be referred back to as necessary (they are primarily regularity conditions which hold in most Markov categories of interest). 
  </html:p>
                    <html:p>
    In <fr:link href="/efr-O088/" title="Markov Fibrations and Stochastic Lenses" uri="https://erischel.com/efr-O088/" display-uri="efr-O088" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-O088/" display-uri="efr-O088" /></fr:link>, we give the main technical contribution of the thesis by developing a theory of <html:em>Markov fibrations</html:em>. Their fiberwise opposites generalize both the fiberwise opposites of codomain fibrations (dependent lenses in a classical sense) and optics in Markov categories. <fr:link href="/efr-K6NM/" title="https://erischel.com/efr-K6NM/" uri="https://erischel.com/efr-K6NM/" display-uri="efr-K6NM" type="local">Theorem <fr:contextual-number uri="https://erischel.com/efr-K6NM/" display-uri="efr-K6NM" /></fr:link> provides the statement of the latter (the former is straightforward). We also give a description of monoidal structures on Markov fibrations (which pass to monoidal structures on the resulting categories of optics).
  </html:p>
                    <html:p>
    In <fr:link href="/efr-000D/" title="The \mathsf {Para} construction in generic 2-categories" uri="https://erischel.com/efr-000D/" display-uri="efr-000D" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-000D/" display-uri="efr-000D" /></fr:link>, we give a construction of the double category of <html:em>parametrized morphisms</html:em> for a category action (or actegory)---in fact, we do this  internally to any <fr:tex display="inline"><![CDATA[2]]></fr:tex>-category. This has the advantage of allowing us to construct more highly-structured versions of this double category by carrying out the construction internally to higher-structured actions. (Bicategorical versions of <fr:tex display="inline"><![CDATA[\mathsf {Para}]]></fr:tex> are a relatively old idea, and the double categorical version is a straightforward extension which has existed for some time as folklore, but the fully-internal construction here is novel).
  </html:p>
                    <html:p>
    In <fr:link href="/efr-GFG0/" title="Open Games with external choice in Markov Fibrations" uri="https://erischel.com/efr-GFG0/" display-uri="efr-GFG0" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-GFG0/" display-uri="efr-GFG0" /></fr:link>, we apply Markov fibrations to compositional game theory, and solve a longstanding problem by giving a category of stochastic open games with a general "external choice" operator. This construction is largely abstract over the particular category, and so can be applied to different Markov fibrations to describe games defined with different notions of stochasticity. We also review some previous work with Capucci, Hedges, and Gavranovic on abstract constructions of categories of open games (<fr:link href="/towards-cybercat/" title="Towards Foundations of Categorical Cybernetics" uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" type="local">Reference <fr:contextual-number uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" /></fr:link>). 
  </html:p>
                    <html:p>
    In <fr:link href="/efr-ZRUZ/" title="Categories of stochastic dynamical systems" uri="https://erischel.com/efr-ZRUZ/" display-uri="efr-ZRUZ" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-ZRUZ/" display-uri="efr-ZRUZ" /></fr:link>, we describe how to extend Myers' categorical systems theory to Markov fibrations, to give theories of systems which may have stochastic maps not merely in the fiber (as was already described by Myers in <fr:link href="/myers-cst/" title="Categorical Systems Theory" uri="https://erischel.com/myers-cst/" display-uri="myers-cst" type="local">Reference <fr:contextual-number uri="https://erischel.com/myers-cst/" display-uri="myers-cst" /></fr:link>) but also in the base. We also leverage our construction from <fr:link href="/efr-000D/" title="The \mathsf {Para} construction in generic 2-categories" uri="https://erischel.com/efr-000D/" display-uri="efr-000D" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-000D/" display-uri="efr-000D" /></fr:link> to give a description of a <html:em>symmetric monoidal triple category</html:em> whose three types of morphisms, are lenses, charts, and what we call <html:em>bisystems,</html:em> that is morphisms <fr:tex display="inline"><![CDATA[TS \otimes  A \leftrightarrows  B]]></fr:tex> - these are open dynamical systems which have two directions of interaction with the environment.
    We also describe a particular systems theory of smooth manifolds and smooth stochastic maps between them.
  </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>6</fr:month>
                      <fr:day>5</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0008/</fr:uri>
                    <fr:display-uri>efr-0008</fr:display-uri>
                    <fr:route>/efr-0008/</fr:route>
                    <fr:title text="Acknowledgements">Acknowledgements</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  I would like to extend a great thanks to the Mathematically Structured Programming group at the University of Strathclyde, my fellow PhD students in particular, for making my time there such a great one. A good chunk of this work was completed while I worked at the Compositional Systems Laboratory at the Tallinn University of Technology---I owe everyone there a great thanks as well.
</html:p>
                    <html:p>
  For conversations which contributed to this work, and to my mathematical development in general, I would like to thank Dylan Braithwaite, Matteo Capucci, Elena di Lavore, Tobias Fritz, Davidad, Tomáš Gonda, Bruno Gavranović, Diana Kessler, Owen Lynch, Jade Master, David Jaz Myers, Riu Nakamura, Chad Nester, Evan Patterson, Paolo Perrone, Mario Roman, Brandon Shapiro, Toby Smithe, Pawel Sobocinski, David Spivak, and Andre Videla. A special thanks to Dylan, Matteo, and Bruno, for serving their time with me in the dependent optics mines.
</html:p>
                    <html:p>
  To Neil Ghani, Radu Mardare, and Jules Hedges, a massive thanks for serving as my advisors during the somewhat tumultuous process that was the production of this thesis.
</html:p>
                    <html:p>
  Finally, I thank my wonderful family. Now you can stop asking me about it.
</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>2025</fr:year>
                  <fr:month>5</fr:month>
                  <fr:day>6</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-POD2/</fr:uri>
                <fr:display-uri>efr-POD2</fr:display-uri>
                <fr:route>/efr-POD2/</fr:route>
                <fr:title text="Preliminaries">Preliminaries</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:title text="Introduction">Introduction</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
    We will begin by reviewing some theory that plays a key role in this thesis. With a very few exceptions, nothing here is novel, but we find it useful to include these here---both for the convenience of the reader, to familiarize them with theory that we will make constant reference to, but also to set the stage for our contributions.
  </html:p>
                    <html:p>
    First, the theory of (Grothendieck) fibrations. There is far too much to say about these for such a brief space, so we will limit ourselves to what we need for the rest of the thesis, especially for the section on Markov fibrations.
  </html:p>
                    <html:p>
    Second, we will give an overview of <html:em>optics</html:em> and <html:em>lenses</html:em>, in a bit more detail than the introduction. We have already given a review of the sources there, but we will find it useful to put this on proper footing.
  </html:p>
                    <html:p>
    Next, we will review the theory of Markov categories. This is a synthetic approach to probability theory, introduced by Fritz <fr:link href="/fritz-synthetic-markov-cats/" title="A synthetic approach to Markov kernels, conditional independence and theorems on sufficient statistics" uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" type="local">Reference <fr:contextual-number uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" /></fr:link>, and since developed further by many collaborators, including the author. Here we note the only exceptions to the claim that nothing in this chapter is novel. First, the notion of <html:em>representable Markov category</html:em> <fr:link href="/efr-38FR/" title="Representable Markov category" uri="https://erischel.com/efr-38FR/" display-uri="efr-38FR" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-38FR/" display-uri="efr-38FR" /></fr:link> was introduced by Fritz, Gonda, Perrone, and the author in <fr:link href="/fritz-gonda-perrone-rischel-rep/" title="Representable Markov categories and comparison of statistical experiments in categorical probability" uri="https://erischel.com/fritz-gonda-perrone-rischel-rep/" display-uri="fritz-gonda-perrone-rischel-rep" type="local">Reference <fr:contextual-number uri="https://erischel.com/fritz-gonda-perrone-rischel-rep/" display-uri="fritz-gonda-perrone-rischel-rep" /></fr:link>. We will not give a thorough treatment here, but since representable Markov categories are so ubiquitous, we will frequently note how different properties or structure on a Markov category relates to representability. We will also introduce a few new concepts which play a role in the theory of Markov fibrations in <fr:link href="/efr-O088/" title="Markov Fibrations and Stochastic Lenses" uri="https://erischel.com/efr-O088/" display-uri="efr-O088" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-O088/" display-uri="efr-O088" /></fr:link>. These are of no great independent interest, as far as we can tell, nor are they difficult, but this seemed the best place to put them.
  </html:p>
                    <html:p>
    Finally, we give a brief review of Myers' <html:em>categorical systems theory</html:em>. This will mainly be to set the stage for <fr:link href="/efr-ZRUZ/" title="Categories of stochastic dynamical systems" uri="https://erischel.com/efr-ZRUZ/" display-uri="efr-ZRUZ" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-ZRUZ/" display-uri="efr-ZRUZ" /></fr:link>, where we develop a triple categorical version of the theory.
  </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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>28</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-3AEA/</fr:uri>
                    <fr:display-uri>efr-3AEA</fr:display-uri>
                    <fr:route>/efr-3AEA/</fr:route>
                    <fr:title text="Fibrations">Fibrations</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  In category theory, there are many families of categories indexed by the objects of some other category. For example, for each commutative ring, we have the category <fr:tex display="inline"><![CDATA[\mathsf {Mod}(R)]]></fr:tex>.
  Given a ring homomorphism <fr:tex display="inline"><![CDATA[\phi : R \to  S,]]></fr:tex> there is an induced <html:em>restriction of scalars</html:em> functor <fr:tex display="inline"><![CDATA[\phi ^*: \mathsf {Mod}(S) \to  \mathsf {Mod}(R)]]></fr:tex> (given simply by composing the module structure by <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex>), and this is (contravariant) functorial, assembling into a functor <fr:tex display="inline"><![CDATA[\mathsf {Mod}(-): \mathsf {CRing}^\mathrm {op} \to  \mathsf {Cat}]]></fr:tex>.
</html:p>
                    <html:p>
  In most cases, one can not expect strict functoriality as above. From an abstract point of view, it makes sense that one should really ask only for a natural isomorphism <fr:tex display="inline"><![CDATA[\phi ^*\psi ^* \simeq  (\psi \phi )^*]]></fr:tex>, up to some coherence conditions. This assembles into a so-called <html:em>pseudofunctor</html:em> into the 2-category <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex>.
</html:p>
                    <html:p>
  From a concrete point of view, there are many natural families of categories which arise as pseudofunctors. For example, restriction of scalars always has a left adjoint (extension of scalars, given by <fr:tex display="inline"><![CDATA[M \mapsto  M \otimes _R S,]]></fr:tex> viewing <fr:tex display="inline"><![CDATA[S]]></fr:tex> as an <fr:tex display="inline"><![CDATA[R]]></fr:tex>-module via the map <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex>)---since adjoints compose (that is, if <fr:tex display="inline"><![CDATA[F \vdash  G]]></fr:tex> and <fr:tex display="inline"><![CDATA[F' \vdash  G',]]></fr:tex> then <fr:tex display="inline"><![CDATA[FF' \vdash  G'G]]></fr:tex>) this must be functorial up to natural isomorphism, but this is the best we can promise. 
</html:p>
                    <html:p>
  To avoid the higher categorical algebra involved in working with pseudofunctors, Grothendieck introduced the notion of <html:em>fibration</html:em> in <fr:link href="/grothendieck-descent-fibrations/" title="Descent technique and existence theorems in algebraic geometry. I. Generalities. Descent by faithfully flat morphisms" uri="https://erischel.com/grothendieck-descent-fibrations/" display-uri="grothendieck-descent-fibrations" type="local">Reference <fr:contextual-number uri="https://erischel.com/grothendieck-descent-fibrations/" display-uri="grothendieck-descent-fibrations" /></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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>28</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-Z7EF/</fr:uri>
                        <fr:display-uri>efr-Z7EF</fr:display-uri>
                        <fr:route>/efr-Z7EF/</fr:route>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[p: \mathcal {D} \to  \mathcal {C}]]></fr:tex> be a functor. Given <fr:tex display="inline"><![CDATA[X \in  \mathcal {C}]]></fr:tex>, write <fr:tex display="inline"><![CDATA[\mathcal {D}_X]]></fr:tex> for the (strict) pullback <fr:tex display="inline"><![CDATA[\{x\} \times _\mathcal {C} \mathcal {D}]]></fr:tex>. Explicitly, this consists of the objects in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> with <fr:tex display="inline"><![CDATA[p(A) = X]]></fr:tex> and the morphisms with <fr:tex display="inline"><![CDATA[p(f) = 1_X]]></fr:tex>.
  
</html:p>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[f: X \to  Y \in  \mathcal {C}]]></fr:tex> be a morphism. 
</html:p>
                        <html:ol><html:li>
    A map <fr:tex display="inline"><![CDATA[\bar {f}: \bar {X} \to  \bar {Y}]]></fr:tex> with <fr:tex display="inline"><![CDATA[p(\bar {f}) = f]]></fr:tex> is <html:em>locally Cartesian</html:em> if for each <fr:tex display="inline"><![CDATA[\bar {X}']]></fr:tex> with <fr:tex display="inline"><![CDATA[p(\bar {X}') = X]]></fr:tex>, postcomposition with <fr:tex display="inline"><![CDATA[\bar {f}]]></fr:tex> induces a bijection 
    <fr:tex display="block"><![CDATA[\{g: \bar {X}' \to  \bar {X} \mid  p(g) = 1_X\} \xrightarrow {\sim } \{g' : \bar {X'} \to  \bar {Y} \mid  p(g') = f\}]]></fr:tex></html:li>
  <html:li>
    A map is <html:em>Cartesian</html:em> if for every <fr:tex display="inline"><![CDATA[g: Z \to  X]]></fr:tex> and <fr:tex display="inline"><![CDATA[\bar {Z}]]></fr:tex> with <fr:tex display="inline"><![CDATA[p(\bar {Z}) = Z,]]></fr:tex> there is a bijection
    <fr:tex display="block"><![CDATA[\{\bar {g} : \bar {Z} \to  \bar {X} \mid  p(\bar {g}) = g\} \to  \{\bar {g}' : \bar {Z} \to  \bar {Y} \mid  p(\bar {g'} = fg)\},]]></fr:tex>
    note that every Cartesian map is locally Cartesian (take <fr:tex display="inline"><![CDATA[g = 1_X]]></fr:tex>)
  </html:li>
  <html:li><fr:tex display="inline"><![CDATA[p]]></fr:tex> is a <html:em>Grothendieck fibration</html:em> (or just fibration) if, for every <fr:tex display="inline"><![CDATA[\bar {Y} \in  \mathcal {D}]]></fr:tex> such that <fr:tex display="inline"><![CDATA[p(\bar {Y}) = Y]]></fr:tex>, there exists a Cartesian map <fr:tex display="inline"><![CDATA[\bar {f}: \bar {X} \to  \bar {Y}]]></fr:tex> (for some <fr:tex display="inline"><![CDATA[\bar {Y}]]></fr:tex>) so that <fr:tex display="inline"><![CDATA[p(\bar {f}) = f]]></fr:tex></html:li></html:ol>
                      </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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>28</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-Z4L4/</fr:uri>
                        <fr:display-uri>efr-Z4L4</fr:display-uri>
                        <fr:route>/efr-Z4L4/</fr:route>
                        <fr:taxon>Lemma</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p><fr:tex display="inline"><![CDATA[p: \mathcal {D} \to  \mathcal {C}]]></fr:tex> is a Grothendieck fibration if and only if every <fr:tex display="inline"><![CDATA[f]]></fr:tex> admits a locally Cartesian lift, and the class of locally Cartesian morphisms in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> is stable under composition.
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>28</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-QHXA/</fr:uri>
                        <fr:display-uri>efr-QHXA</fr:display-uri>
                        <fr:route>/efr-QHXA/</fr:route>
                        <fr:taxon>Theorem</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> be a Grothendieck fibration. For every <fr:tex display="inline"><![CDATA[f: X \to  Y, \bar {Y} \in  \mathcal {D}_Y,]]></fr:tex> select a Cartesian lift <fr:tex display="inline"><![CDATA[f^*\bar {Y} \to  \bar {Y}]]></fr:tex> of <fr:tex display="inline"><![CDATA[f]]></fr:tex>.
  Then there is a unique extension of <fr:tex display="inline"><![CDATA[f^*]]></fr:tex> to a functor <fr:tex display="inline"><![CDATA[\mathcal {D}_Y \to  \mathcal {D}_X]]></fr:tex> so that the squares
  
  <html:figure><fr:resource hash="2fd239771c6b2718fd04e6a408e60fd6"><fr:resource-content><html:img src="/2fd239771c6b2718fd04e6a408e60fd6.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    f^*\bar {Y} \ar [r] \ar [d] & \bar {Y} \ar [d]\\
    f^*\bar {Y}' \ar [r] & \bar {Y}'
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  commute. With this, the assignment <fr:tex display="inline"><![CDATA[X \mapsto  \mathcal {D}_X, f \mapsto  f^*]]></fr:tex> assembles into a pseudofunctor <fr:tex display="inline"><![CDATA[\mathcal {C}^\mathrm {op} \to  \mathsf {Cat}]]></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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>5</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-WKG8/</fr:uri>
                        <fr:display-uri>efr-WKG8</fr:display-uri>
                        <fr:route>/efr-WKG8/</fr:route>
                        <fr:taxon>Remark</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> is such that each morphism admits merely a locally Cartesian lift (but these do not compose,) it is called a <html:em>prefibration</html:em>. Note that this is unrelated to our notion of <fr:link href="/efr-0019/" title="Markov prefibration" uri="https://erischel.com/efr-0019/" display-uri="efr-0019" type="local">Markov prefibration</fr:link> (reading ahead a bit, the "Cartesian" maps in a Markov prefibration do compose, but they enjoy the unique lifting property only for a subset of morphisms). This clash of terminology is perhaps unfortunate, but other potential prefixes seemed inferior (quasi-, pseudo-, semi-).
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>7</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-D7W0/</fr:uri>
                        <fr:display-uri>efr-D7W0</fr:display-uri>
                        <fr:route>/efr-D7W0/</fr:route>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be any category, and let <fr:tex display="inline"><![CDATA[\mathcal {C}^\to ]]></fr:tex> denote the arrow category. Then the codomain functor <fr:tex display="inline"><![CDATA[\mathcal {C}^\to  \to  \mathcal {C}]]></fr:tex> is a fibration if and only if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> admits all pullbacks, and in this case the functors <fr:tex display="inline"><![CDATA[f^*: \mathcal {C}_Y \to  \mathcal {C}_X,]]></fr:tex> given <fr:tex display="inline"><![CDATA[f: X \to  Y,]]></fr:tex> are given by pullback along <fr:tex display="inline"><![CDATA[f]]></fr:tex>.
</html:p>
                        <html:p>
  The functors <fr:tex display="inline"><![CDATA[f^*]]></fr:tex> are sometimes referred to as <html:em>pullback</html:em>, a convention we generally adopt. They are also sometimes called <html:em>base-change</html:em> functors.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  When <fr:tex display="inline"><![CDATA[f: X \to  Y]]></fr:tex> and <fr:tex display="inline"><![CDATA[A \in  \mathcal {D}_Y]]></fr:tex>, we may write <fr:tex display="inline"><![CDATA[A_X]]></fr:tex> for the object <fr:tex display="inline"><![CDATA[f^*A]]></fr:tex> if there is no chance of confusion. (Compare that the choice of <fr:tex display="inline"><![CDATA[f]]></fr:tex> is also suppressed in the notation <fr:tex display="inline"><![CDATA[A \times _Y X]]></fr:tex> for a pullback)
</html:p>
                    <html:p>
  We will not go into a comprehensive description of the theory of fibrations, but simply give a few basic results. We will give some examples in the next section. For a textbook treatment, see eg. <fr:link href="/jacobs-categorical-logic/" title="Categorical logic and type theory" uri="https://erischel.com/jacobs-categorical-logic/" display-uri="jacobs-categorical-logic" type="local">Reference <fr:contextual-number uri="https://erischel.com/jacobs-categorical-logic/" display-uri="jacobs-categorical-logic" /></fr:link> (chapters 1, 9), or <fr:link href="/borceux-handbook/" title="Handbook of Categorical Algebra" uri="https://erischel.com/borceux-handbook/" display-uri="borceux-handbook" type="local">Reference <fr:contextual-number uri="https://erischel.com/borceux-handbook/" display-uri="borceux-handbook" /></fr:link> (chapter 8). Note that we will not give a formal definition of the term "pseudofunctor" here. See eg <fr:link href="/jacobs-categorical-logic/" title="Categorical logic and type theory" uri="https://erischel.com/jacobs-categorical-logic/" display-uri="jacobs-categorical-logic" type="local">Reference <fr:contextual-number uri="https://erischel.com/jacobs-categorical-logic/" display-uri="jacobs-categorical-logic" /></fr:link>, def. 1.4.4.
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>28</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-KUW7/</fr:uri>
                        <fr:display-uri>efr-KUW7</fr:display-uri>
                        <fr:route>/efr-KUW7/</fr:route>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {A}: \mathcal {C}^\mathrm {op} \to  \mathsf {Cat}]]></fr:tex> be a pseudofunctor. Then there is a category <fr:tex display="inline"><![CDATA[\int _{X \in  \mathcal {C}}\mathcal {A}(X)]]></fr:tex> defined as follows:
  <html:ol><html:li>The objects are pairs <fr:tex display="inline"><![CDATA[{\bar {X}\in  \mathcal {A}(X) \choose  X \in  \mathcal {C}}]]></fr:tex></html:li>
    <html:li>The morphisms <fr:tex display="inline"><![CDATA[{\bar {X} \choose  X} \to  {\bar {Y} \choose  Y}]]></fr:tex> are pairs <fr:tex display="inline"><![CDATA[f: X \to  Y, f^\#: \bar {X} \to  \mathcal {A}(f)(\bar {Y}) \in  \mathcal {A}(X)]]></fr:tex></html:li>
    <html:li>Composition is given by the "chain rule" <fr:tex display="inline"><![CDATA[(f,f^\#) \circ  (g,g^\#) = (fg, \mathcal {A}(g)(f^\#)g^\#)]]></fr:tex></html:li></html:ol>
  There is an obvious forgetful functor <fr:tex display="inline"><![CDATA[\int _X \mathcal {A}(X) \to  \mathcal {C}]]></fr:tex>.
</html:p>
                        <html:p>
  The category <fr:tex display="inline"><![CDATA[\int _X \mathcal {A}(X)]]></fr:tex> is known as the <html:em>Grothendieck construction of <fr:tex display="inline"><![CDATA[\mathcal {A}]]></fr:tex></html:em></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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>28</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-TQ3W/</fr:uri>
                        <fr:display-uri>efr-TQ3W</fr:display-uri>
                        <fr:route>/efr-TQ3W/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p><fr:tex display="inline"><![CDATA[\int _X \mathcal {A}(X) \to  \mathcal {C}]]></fr:tex> is a Grothendieck fibration, and the pseudofunctor it induces is equivalent to <fr:tex display="inline"><![CDATA[\mathcal {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>2025</fr:year><fr:month>4</fr:month><fr:day>28</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Given <fr:tex display="inline"><![CDATA[f: X \to  Y]]></fr:tex> and <fr:tex display="inline"><![CDATA[\bar {Y} \in  \mathcal {A}(Y),]]></fr:tex> it is clear that the map <fr:tex display="inline"><![CDATA[{\mathcal {A}(f)(\bar {Y}) \choose  X} \to  {\bar {Y} \choose  Y}]]></fr:tex> given by <fr:tex display="inline"><![CDATA[f, 1_{\mathcal {A}(f)(\bar {Y})}]]></fr:tex> is locally Cartesian---the required bijection is the definition of maps in the Grothendieck construction. But it's straightforward to see that these compose.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Given a pseudofunctor <fr:tex display="inline"><![CDATA[\mathcal {A}: \mathcal {C}^\mathrm {op} \to  \mathsf {Cat},]]></fr:tex> it is obvious that the assignment <fr:tex display="inline"><![CDATA[\mathcal {A}(-)^\mathrm {op}]]></fr:tex> is pseudofunctorial as well (the required natural isomorphisms are just the formal opposites of the ones for <fr:tex display="inline"><![CDATA[\mathcal {A}]]></fr:tex>). Applying this through the equivalence of fibrations and pseudofunctors leads to the <html:em>fiberwise opposite</html:em> of a fibration. Explicitly:
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>28</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-8LGE/</fr:uri>
                        <fr:display-uri>efr-8LGE</fr:display-uri>
                        <fr:route>/efr-8LGE/</fr:route>
                        <fr:taxon>Corollary</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[p: \mathcal {D} \to  \mathcal {C}]]></fr:tex> be a fibration.
  Then there exists a category <fr:tex display="inline"><![CDATA[\mathcal {D}^\mathrm {fop}]]></fr:tex>, called the <html:em>fiberwise opposite of <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex></html:em>, whose objects are the same as <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>, and where a morphism <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> is a tuple <fr:tex display="inline"><![CDATA[(f: p(X) \to  p(Y), f^\#: f^*Y \to  X \in  \mathcal {D}_{p(X)})]]></fr:tex>.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>29</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-ZCTD/</fr:uri>
                    <fr:display-uri>efr-ZCTD</fr:display-uri>
                    <fr:route>/efr-ZCTD/</fr:route>
                    <fr:title text="Optics and Lenses">Optics and Lenses</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  We have already given somewhat of an account of lenses, optics, and their applications in the introduction. We briefly review the theory here, especially to normalize the notation and definitions. The best general source for this material is still <fr:link href="/riley-optics/" title="Categories of optics" uri="https://erischel.com/riley-optics/" display-uri="riley-optics" type="local">Reference <fr:contextual-number uri="https://erischel.com/riley-optics/" display-uri="riley-optics" /></fr:link>.
</html:p>
                    <html:p>
  The definition of optic relies on the notion of <html:em>coend</html:em>, which we briefly recall, see <fr:link href="/fosco-coend-calculus/" title="(Co)end Calculus" uri="https://erischel.com/fosco-coend-calculus/" display-uri="fosco-coend-calculus" type="local">Reference <fr:contextual-number uri="https://erischel.com/fosco-coend-calculus/" display-uri="fosco-coend-calculus" /></fr:link> for a textbook account. If <fr:tex display="inline"><![CDATA[F: \mathcal {I}^\mathrm {op} \times  \mathcal {I} \to  \mathcal {C}]]></fr:tex> is a functor, the <html:em>coend</html:em> <fr:tex display="inline"><![CDATA[\int ^{i \in  I} F(i,i)]]></fr:tex> is defined as the initial object receiving a map <fr:tex display="inline"><![CDATA[f_i : F(i,i) \to  \int ^{i \in  I} F(i,i)]]></fr:tex> for each <fr:tex display="inline"><![CDATA[i \in  I]]></fr:tex>, so that for each <fr:tex display="inline"><![CDATA[\phi : i \to  j]]></fr:tex>, the square
  
  <html:figure><fr:resource hash="93bc42b7152d38e565dd021d49ca6365"><fr:resource-content><html:img src="/93bc42b7152d38e565dd021d49ca6365.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    & F(i,i) \ar [rd] & \\
    F(j,i) \ar [ru] \ar [rd] & & \int ^I \\
    & F(j,j) \ar [ur]
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  commutes.
</html:p>
                    <html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> has enough colimits, we may express the coend as the coequalizer of the diagram
  <fr:tex display="block"><![CDATA[\coprod _{f : i \to  j \in  \mathcal {I}} F(i,j) \rightrightarrows  \coprod _{i} F(i,i),]]></fr:tex>
  where the two maps are given on each component by <fr:tex display="inline"><![CDATA[F(i,f): F(i,j) \to  F(i,i)]]></fr:tex> and <fr:tex display="inline"><![CDATA[F(f,j) : F(i,j) \to  F(j,j)]]></fr:tex>, respectively. (This is Remark 1.2.4 in <fr:link href="/fosco-coend-calculus/" title="(Co)end Calculus" uri="https://erischel.com/fosco-coend-calculus/" display-uri="fosco-coend-calculus" type="local">Reference <fr:contextual-number uri="https://erischel.com/fosco-coend-calculus/" display-uri="fosco-coend-calculus" /></fr:link>). Note that in particular this implies that if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> has all colimits, then it also has all coends.
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>29</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-MMQZ/</fr:uri>
                        <fr:display-uri>efr-MMQZ</fr:display-uri>
                        <fr:route>/efr-MMQZ/</fr:route>
                        <fr:title text="Optic">Optic</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex> be a monoidal category which acts on two categories <fr:tex display="inline"><![CDATA[\mathcal {C}, \mathcal {D}]]></fr:tex>. Then the category of <html:em>optics</html:em> <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {M}(\mathcal {C},\mathcal {D})]]></fr:tex> has
  <html:ol><html:li>
      Objects pairs <fr:tex display="inline"><![CDATA[{A \in  \mathcal {D} \choose  X \in  \mathcal {C}}]]></fr:tex></html:li>
    <html:li>
      The set of morphisms <fr:tex display="inline"><![CDATA[{A \choose  X} \to  {B \choose  Y}]]></fr:tex> given by the coend
      <fr:tex display="block"><![CDATA[\int ^{M \in  \mathcal {M}} \mathcal {C}(X, M \cdot  Y) \times  \mathcal {D}(M \cdot  B,A)]]></fr:tex></html:li>
    <html:li>
      Given two optics with representatives <fr:tex display="inline"><![CDATA[(M,f: X \to  M \cdot  Y,g : M \cdot  B \to  A), (N, f': Y \to  N \cdot  Z, g': N \cdot  C \to  B),]]></fr:tex> their composite is given
      by <fr:tex display="inline"><![CDATA[(M \otimes  N, (1_M \cdot  f')f, g (1_M \cdot  g')),]]></fr:tex> where we omit coherence morphisms.
    </html:li></html:ol></html:p>
                        <html:p>
  When <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is a monoidal category acting on itself by tensor, we write <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {C}(\mathcal {C},\mathcal {C}) =: \mathsf {Optic}(\mathcal {C})]]></fr:tex></html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Note that if <fr:tex display="inline"><![CDATA[\mathcal {M},\mathcal {C},\mathcal {D}]]></fr:tex> are symmetric monoidal and these actions are symmetric, <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {M}(\mathcal {C},\mathcal {D})]]></fr:tex> inherits a symmetric monoidal structure given by <fr:tex display="inline"><![CDATA[{A \choose  X} \otimes  {B \choose  Y} = {A \otimes  B \choose  X \otimes  Y}]]></fr:tex>. (Also given a braiding one can induce a non-symmetric monoidal structure, but this almost never comes up).
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>29</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-CRYH/</fr:uri>
                        <fr:display-uri>efr-CRYH</fr:display-uri>
                        <fr:route>/efr-CRYH/</fr:route>
                        <fr:title text="On notation">On notation</fr:title>
                        <fr:taxon>Remark</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Objects and morphisms in the category of optics have two parts---one going "forwards", in the same direction as the optic, and one going "backwards". In <fr:link href="/riley-optics/" title="Categories of optics" uri="https://erischel.com/riley-optics/" display-uri="riley-optics" type="local">Reference <fr:contextual-number uri="https://erischel.com/riley-optics/" display-uri="riley-optics" /></fr:link> the objects are written <fr:tex display="inline"><![CDATA[(X,A),]]></fr:tex> where <fr:tex display="inline"><![CDATA[X]]></fr:tex> is the forwards part. Hedges' work on open games used the binomial notation <fr:tex display="inline"><![CDATA[\binom {X}{A},]]></fr:tex> but wrote the forwards part on <html:em>top</html:em>.
</html:p>
                        <html:p>
  To make the connection to fibrations more natural, we instead write the forwards part on the <html:em>bottom</html:em>, <fr:tex display="inline"><![CDATA[{A \choose  X}]]></fr:tex>. It is the backwards part which depends on the forwards part, hence the forwards part is the base of the fibration (when one exists)---and every part of the language of fibrations is built around a mental model where the base is at the bottom and the fibers are over it (including the word "base"). When reading the references, this may cause some confusion, but hopefully this can be overcome.
</html:p>
                        <html:p>
  While we're at it, let us note that when talking about optics we will freely use terms like "the forwards part" "the backwards object" and so on---the meaning of this should now be clear. Of course, once we get to cooptics/charts, this would be more than a little confusing, since in that case both components are in the same direction. In those cases we will speak of either the primary (forwards) part or the secondary (backwards) part, or use the language of fibrations and speak of the map or object "in the base" and "in the fiber".
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  As noted above, the coend <fr:tex display="inline"><![CDATA[\int ^M \mathcal {C}(X, M \cdot  Y) \times  \mathcal {D}(M \cdot  B, A)]]></fr:tex> consists of triples <fr:tex display="inline"><![CDATA[(M, f: X \to  M \cdot  Y, g: M \cdot  B \to  A)]]></fr:tex> up to the equivalence relation which, for every <fr:tex display="inline"><![CDATA[\phi : M \to  M', f: X \to  M \cdot  Y, g: M' \cdot  B \to  A,]]></fr:tex> identifies the two tuples <fr:tex display="inline"><![CDATA[(M', (\phi  \cdot  1_Y) f, g)]]></fr:tex> and <fr:tex display="inline"><![CDATA[(M, f, g (\phi  \cdot  1_B))]]></fr:tex>. Note that this relation is not assumed to be inherently an equivalence relation---one takes the transitive-symmetric closure as usual.
</html:p>
                    <html:p>
  We call this relation the <html:em>sliding</html:em> relation (because we slide the map <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex> from the backwards part to the forwards part).
</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>2025</fr:year>
                          <fr:month>8</fr:month>
                          <fr:day>25</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-50T5/</fr:uri>
                        <fr:display-uri>efr-50T5</fr:display-uri>
                        <fr:route>/efr-50T5/</fr:route>
                        <fr:taxon>Remark</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Suppose <fr:tex display="inline"><![CDATA[\mathcal {M}, \mathcal {C}, \mathcal {D}]]></fr:tex> are small categories. Then the coend defining <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {M}(\mathcal {C},\mathcal {D})\left ( {A \choose  X}, {B \choose  Y} \right )]]></fr:tex> is a small colimit of small sets, hence again small. Since clearly the set of objects <fr:tex display="inline"><![CDATA[\operatorname {\mathbf {ob}} \mathcal {C} \times  \operatorname {\mathbf {ob}} \mathcal {D}]]></fr:tex> is small, <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {M}(\mathcal {C},\mathcal {D})]]></fr:tex> is again a small category.
</html:p>
                        <html:p>
  However, if <fr:tex display="inline"><![CDATA[\mathcal {M},\mathcal {D},\mathcal {C}]]></fr:tex> are merely assumed to be <html:em>locally</html:em> small, we can not guarantee the same is true of <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {M}(\mathcal {C},\mathcal {D})]]></fr:tex>, since the hom-sets are now defined by a coend/colimit with large indexing category. However, in many special cases, it can still be seen to be locally small, such as in the Cartesian case (where <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C})]]></fr:tex> is clearly locally small).
</html:p>
                        <html:p>
  In this thesis, we will not delve further into this subtlety, simply working inside some universe where all our categories are small. 
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Of course, we can also let the arrows in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> go in the same direction as <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. This does not seem to have played any role in the literature, but we will give this a name, as it is a useful example to have in mind for Markov fibrations (where we will construct our dependent optics, conceptually, as a fiberwise opposite)
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>29</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-G0YN/</fr:uri>
                        <fr:display-uri>efr-G0YN</fr:display-uri>
                        <fr:route>/efr-G0YN/</fr:route>
                        <fr:title text="Co-Optics">Co-Optics</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Given <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex> acting on <fr:tex display="inline"><![CDATA[\mathcal {C}, \mathcal {D}]]></fr:tex>, the category of <html:em>co-optics</html:em>, <fr:tex display="inline"><![CDATA[\mathsf {coOptic}_\mathcal {M}(\mathcal {C},\mathcal {D})]]></fr:tex> has objects pair <fr:tex display="inline"><![CDATA[{A \in  \mathcal {D} \choose  X \in  \mathcal {C}},]]></fr:tex> and morphisms given by the coend <fr:tex display="inline"><![CDATA[\int ^M \mathcal {C}(X, M \cdot  Y) \times  \mathcal {D}(M \cdot  A, B)]]></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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>7</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-J0WW/</fr:uri>
                        <fr:display-uri>efr-J0WW</fr:display-uri>
                        <fr:route>/efr-J0WW/</fr:route>
                        <fr:taxon>Remark</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  For any monoidal category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {C}\left ({A \choose  X}, {I \choose  I}\right ) = \mathcal {C}(X,A)]]></fr:tex>. One way to think of an optic <fr:tex display="inline"><![CDATA[{A \choose  X} \leftrightarrows  {B \choose  Y}]]></fr:tex> is as a string diagram <fr:tex display="inline"><![CDATA[X \to  A]]></fr:tex>, but which has a hole with space for a morphism <fr:tex display="inline"><![CDATA[B \to  Y]]></fr:tex>. One inserts such a morphism by composing the optic with the optic <fr:tex display="inline"><![CDATA[{B \choose  Y} \leftrightarrows  {I \choose  I}]]></fr:tex> representing it. This idea of "open diagrams" has been developed in much more detail by Román, <fr:link href="/roman-optics-coend/" title="Open Diagrams via Coend Calculus" uri="https://erischel.com/roman-optics-coend/" display-uri="roman-optics-coend" type="local">Reference <fr:contextual-number uri="https://erischel.com/roman-optics-coend/" display-uri="roman-optics-coend" /></fr:link>. 
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>7</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-UNIN/</fr:uri>
                        <fr:display-uri>efr-UNIN</fr:display-uri>
                        <fr:route>/efr-UNIN/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Suppose <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex> is semicartesian---in other words, that <fr:tex display="inline"><![CDATA[I \in  \mathcal {M}]]></fr:tex> is terminal. Then there is a functor <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {M}(\mathcal {C},\mathcal {D}) \to  \mathcal {C}]]></fr:tex>, which takes a <fr:tex display="inline"><![CDATA[{A \choose  X}]]></fr:tex> to <fr:tex display="inline"><![CDATA[X]]></fr:tex>, and pair <fr:tex display="inline"><![CDATA[\langle  f: X \to  M \cdot  Y, g \rangle ]]></fr:tex> to the composite <fr:tex display="inline"><![CDATA[X \to  M \cdot  Y \to  I \cdot  Y \cong  Y]]></fr:tex>.
</html:p>
                        <html:p>
  In the case of <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {M}),]]></fr:tex> the map <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {M})({I \choose  I}, {A \choose  X}) \to  \mathcal {M}(I,X)]]></fr:tex> is a bijection.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  The fact that in <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {M}),]]></fr:tex> states (maps from the monoidal unit) on <fr:tex display="inline"><![CDATA[{A \choose  X}]]></fr:tex> are given by states on <fr:tex display="inline"><![CDATA[X]]></fr:tex>, while costates are given by maps <fr:tex display="inline"><![CDATA[X \to  A]]></fr:tex> plays an important role in the use of optics to describe open games. See <fr:link href="/efr-GFG0/" title="Open Games with external choice in Markov Fibrations" uri="https://erischel.com/efr-GFG0/" display-uri="efr-GFG0" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-GFG0/" display-uri="efr-GFG0" /></fr:link> for more on this.
</html:p>
                    <html:p>
  Let us say a few things about lenses.
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>7</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-M19V/</fr:uri>
                        <fr:display-uri>efr-M19V</fr:display-uri>
                        <fr:route>/efr-M19V/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is Cartesian monoidal, <fr:tex display="block"><![CDATA[\mathsf {Optic}(\mathcal {C})\left ({A \choose  X},{B \choose  Y}\right ) \cong  \mathcal {C}(X,Y) \times  \mathcal {C}(X \times  B,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>2025</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><fr:tex display="block"><![CDATA[\int ^M \mathcal {C}(X, M \times  Y) \times  \mathcal {C}(M \times  B,A) \cong  \int ^M \mathcal {C}(X,Y) \times  \mathcal {C}(X,M) \times  \mathcal {C}(M \times  B,A)]]></fr:tex>
    <fr:tex display="block"><![CDATA[ \cong  \mathcal {C}(X,Y) \times  \mathcal {C}(X \times  B,A).]]></fr:tex></html:p>
  <html:p>
    Here we use a general fact about coends, that <fr:tex display="inline"><![CDATA[\int ^M \mathcal {C}(X,M) \times  F(M) \cong  F(X)]]></fr:tex>---this has been called the <html:em>ninja Yoneda lemma</html:em>, see <fr:link href="/fosco-coend-calculus/" title="(Co)end Calculus" uri="https://erischel.com/fosco-coend-calculus/" display-uri="fosco-coend-calculus" type="local">Reference <fr:contextual-number uri="https://erischel.com/fosco-coend-calculus/" display-uri="fosco-coend-calculus" /></fr:link>.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                    </fr:tree>
                    <html:p>
  In this case we sometimes write <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C})]]></fr:tex> for the category <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C})]]></fr:tex>. We have the following fact:
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>7</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-2793/</fr:uri>
                        <fr:display-uri>efr-2793</fr:display-uri>
                        <fr:route>/efr-2793/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  The functor <fr:tex display="inline"><![CDATA[{A \choose  X} \mapsto  X]]></fr:tex>, <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C}) \to  \mathcal {C}]]></fr:tex>, is a fibration. The fiber <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C})_X]]></fr:tex> has the following description:
  <html:ol><html:li>Its objects are the objects of <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>.</html:li>
    <html:li>A map <fr:tex display="inline"><![CDATA[A \to  B \in  \mathsf {Lens}(\mathcal {C})_X]]></fr:tex> is a map <fr:tex display="inline"><![CDATA[X \times  B \to  A \in  \mathcal {C}]]></fr:tex>.</html:li>
    <html:li>The composite of <fr:tex display="inline"><![CDATA[X \times  B \to  A,]]></fr:tex> <fr:tex display="inline"><![CDATA[X \times  C \to  B]]></fr:tex> is given by composing the two into <fr:tex display="inline"><![CDATA[X \times  X \times  C \to  A,]]></fr:tex> then using the diagonal.</html:li>
    <html:li>Given <fr:tex display="inline"><![CDATA[f: X \to  Y,]]></fr:tex> the pullback functor <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C})_Y \to  \mathsf {Lens}(\mathcal {C})_X]]></fr:tex> is given by precomposing by <fr:tex display="inline"><![CDATA[f]]></fr:tex>.</html:li></html:ol></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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>7</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-VTPS/</fr:uri>
                        <fr:display-uri>efr-VTPS</fr:display-uri>
                        <fr:route>/efr-VTPS/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> moreover admits pullbacks, there is a fibred functor <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C})^\mathrm {fop} \to  \mathcal {C}^\to  \to  \mathcal {C},]]></fr:tex> which carries an object <fr:tex display="inline"><![CDATA[{A \choose  X}]]></fr:tex> to <fr:tex display="inline"><![CDATA[X \times  A\xrightarrow {\pi _X} X,]]></fr:tex> and a morphism <fr:tex display="inline"><![CDATA[f:X \times  A \to  B]]></fr:tex> to the map <fr:tex display="inline"><![CDATA[X \times  A \xrightarrow {\langle  \pi _X,F \rangle } X \times  B]]></fr:tex> over <fr:tex display="inline"><![CDATA[X]]></fr:tex>. This is fully faithful.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  This is the first way to see the maps of <fr:tex display="inline"><![CDATA[(\mathcal {C}^\to )^\mathrm {fop}]]></fr:tex> as dependent lenses---they receive the category of lenses as a full subcategory. 
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>7</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-TZ0P/</fr:uri>
                        <fr:display-uri>efr-TZ0P</fr:display-uri>
                        <fr:route>/efr-TZ0P/</fr:route>
                        <fr:taxon>Remark</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  The squares
  
  <html:figure><fr:resource hash="bfbc655ed83f9a6f9cc2dd1491177322"><fr:resource-content><html:img src="/bfbc655ed83f9a6f9cc2dd1491177322.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    A \times  X \ar [d] \ar [r] & A \times  Y \ar [d]\\
    X \ar [r] & Y
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  are pullbacks in any category with products, even if it does not admit pullbacks in general.
  It follows that the full subcategory of <fr:tex display="inline"><![CDATA[\mathcal {C}^\to ]]></fr:tex> spanned by objects of this form is always a fibration over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, which is isomorphic to <fr:tex display="inline"><![CDATA[\mathsf {coOptic}(\mathcal {C})]]></fr:tex>---the fiberwise dual is isomorphic to <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C})]]></fr:tex>.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>18</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-E3HE/</fr:uri>
                    <fr:display-uri>efr-E3HE</fr:display-uri>
                    <fr:route>/efr-E3HE/</fr:route>
                    <fr:title text="Markov categories">Markov categories</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Recall that <html:em>Markov categories</html:em> (Fritz, <fr:link href="/fritz-synthetic-markov-cats/" title="A synthetic approach to Markov kernels, conditional independence and theorems on sufficient statistics" uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" type="local">Reference <fr:contextual-number uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" /></fr:link>) are semicartesian symmetric monoidal categories equipped with a suitably coherent system of comonoids <fr:tex display="inline"><![CDATA[(\mathrm {copy}_X: X \to  X \otimes  X, \mathrm {del}_X: X \to  I)]]></fr:tex> for each object <fr:tex display="inline"><![CDATA[X \in  \mathcal {C}]]></fr:tex>. These have been used as the basis for the categorical analysis of probability theory for a number of years, see eg <fr:link href="/rischel-fritz-infinite-products/" title="Infinite products and zero-one laws in categorical probability" uri="https://erischel.com/rischel-fritz-infinite-products/" display-uri="rischel-fritz-infinite-products" type="local">Reference <fr:contextual-number uri="https://erischel.com/rischel-fritz-infinite-products/" display-uri="rischel-fritz-infinite-products" /></fr:link>, <fr:link href="/markov-supports/" title="Absolute continuity, supports and idempotent splitting in categorical probability" uri="https://erischel.com/markov-supports/" display-uri="markov-supports" type="local">Reference <fr:contextual-number uri="https://erischel.com/markov-supports/" display-uri="markov-supports" /></fr:link>, <fr:link href="/law-large-nums-fritz-etal/" title="Empirical Measures and Strong Laws of Large Numbers in Categorical Probability" uri="https://erischel.com/law-large-nums-fritz-etal/" display-uri="law-large-nums-fritz-etal" type="local">Reference <fr:contextual-number uri="https://erischel.com/law-large-nums-fritz-etal/" display-uri="law-large-nums-fritz-etal" /></fr:link>, <fr:link href="/moss-perrone-ergodic/" title="A category-theoretic proof of the ergodic decomposition theorem" uri="https://erischel.com/moss-perrone-ergodic/" display-uri="moss-perrone-ergodic" type="local">Reference <fr:contextual-number uri="https://erischel.com/moss-perrone-ergodic/" display-uri="moss-perrone-ergodic" /></fr:link>. See <fr:link href="/fritz-synthetic-markov-cats/" title="A synthetic approach to Markov kernels, conditional independence and theorems on sufficient statistics" uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" type="local">Reference <fr:contextual-number uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" /></fr:link> for the basic theory, and <fr:link href="/fritz-gonda-perrone-rischel-rep/" title="Representable Markov categories and comparison of statistical experiments in categorical probability" uri="https://erischel.com/fritz-gonda-perrone-rischel-rep/" display-uri="fritz-gonda-perrone-rischel-rep" type="local">Reference <fr:contextual-number uri="https://erischel.com/fritz-gonda-perrone-rischel-rep/" display-uri="fritz-gonda-perrone-rischel-rep" /></fr:link> for the theory of representable Markov categories. We assume familiarity with this theory in general, but we will review some theory below, as well as a few new minor results which are helpful for the theory of Markov fibrations.
</html:p>
                    <html:p>
  The basic idea of a Markov category is to interpret morphisms <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> as "stochastic processes" or <html:em>kernels</html:em>---that is, functions valued in probability measures. A morphism <fr:tex display="inline"><![CDATA[P \to  X \otimes  Y]]></fr:tex> is a parametrized joint probability measure---the comonoid structure allows us to build a canonical such given parametrized measures <fr:tex display="inline"><![CDATA[P \to  X, P \to  Y]]></fr:tex> (by precomposing their tensor with the <fr:tex display="inline"><![CDATA[\mathrm {copy}_P]]></fr:tex> map). This is the product measure of the two---the fact that in general not every map has this form (because <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is not necessarily Cartesian) allows us to express the probabilistic dependence---as in, non-independence---of one variable on another.
</html:p>
                    <html:p>
  A morphism is called <html:em>deterministic</html:em> if it is a comonoid (co)homomorphism, which amounts to the claim that <fr:tex display="inline"><![CDATA[\mathrm {copy}_Y f = (f \otimes  f) \mathrm {copy}_X]]></fr:tex>---in other words, that running two independent copies of the kernel (with the same input) is equivalent to running one and copying the output. The deterministic morphisms form a Cartesian monoidal subcategory which is denoted <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det} \subseteq  \mathcal {C}]]></fr:tex>.
</html:p>
                    <html:p>
  We first note the following alternative characterization of Markov categories in terms of their deterministic 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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>2</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-5B0J/</fr:uri>
                        <fr:display-uri>efr-5B0J</fr:display-uri>
                        <fr:route>/efr-5B0J/</fr:route>
                        <fr:title text="Premarkov structure">Premarkov structure</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a symmetric monoidal category. A <html:em>premarkov structure</html:em> on <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is a wide symmetric monoidal subcategory <fr:tex display="inline"><![CDATA[\mathcal {C}' \subseteq  \mathcal {C}]]></fr:tex>---that is, a class of morphisms which contains all identities and structural isomorphisms, and is stable under composition and monoidal products---so that the monoidal category <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex> is Cartesian.
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>2</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-10HQ/</fr:uri>
                        <fr:display-uri>efr-10HQ</fr:display-uri>
                        <fr:route>/efr-10HQ/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a monoidal category. 
  <html:ol><html:li>Given a premarkov structure <fr:tex display="inline"><![CDATA[\mathcal {C}' \subseteq  \mathcal {C}]]></fr:tex>, there is a unique Markov structure on <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> so that each morphism in <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex> is deterministic.</html:li>
    <html:li>Given a Markov structure, <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det} \subseteq  \mathcal {C}]]></fr:tex> is a premarkov structure.</html:li>
    <html:li>A premarkov structure has the form <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> for some Markov structure if and only if it is maximal.</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>2025</fr:year><fr:month>5</fr:month><fr:day>2</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    The existence part first claim is clear: <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex> acquires a unique Markov structure since it is Cartesian, and the inclusion of that Markov structure into <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> gives a Markov structure on <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. Conversely, suppose <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is a Markov category and <fr:tex display="inline"><![CDATA[\mathcal {C}' \subseteq  \mathcal {C}_\mathrm {det}]]></fr:tex> is a class of deterministic morphisms which is still Cartesian. This means the projections <fr:tex display="inline"><![CDATA[X \otimes  Y \to  X,Y]]></fr:tex> still exhibit <fr:tex display="inline"><![CDATA[X \otimes  Y]]></fr:tex> as a product in <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex>. But since the pairing are the unique map lifting two given maps <fr:tex display="inline"><![CDATA[A \to  X,Y,]]></fr:tex> the pairing must be preserved by the inclusion <fr:tex display="inline"><![CDATA[\mathcal {C}' \to  \mathcal {C}_\mathrm {det}]]></fr:tex>. Since the canonical Markov structure is given as a pairing, this means the markov structure induced by <fr:tex display="inline"><![CDATA[\mathcal {C}' \to  \mathcal {C}]]></fr:tex> must agree with the one given by <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex>, which is just the original one.
  </html:p>
  <html:p>
    The second claim is straightforward---see eg <fr:link href="/fritz-synthetic-markov-cats/" title="A synthetic approach to Markov kernels, conditional independence and theorems on sufficient statistics" uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" type="local">Reference <fr:contextual-number uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" /></fr:link> remark 10.13.
  </html:p>
  <html:p>
    Now suppose <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det} \subseteq  \mathcal {C}' \subseteq  \mathcal {C}]]></fr:tex>, where <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex> is some larger premarkov structure. By the argument above, they must generate the same Markov structure on <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. But again, this implies that every map in <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex> is deterministic for this Markov structure, so we have <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det} = \mathcal {C}']]></fr:tex>. This finishes the proof.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Note that given a merely monoidal category, we can ask whether it is Cartesian, and if it is, it admits a unique symmetry induced by the universal property of the product. Hence if <fr:tex display="inline"><![CDATA[\mathcal {C}' \subseteq  \mathcal {C}]]></fr:tex> is a Cartesian wide monoidal subcategory, we may attempt to define a symmetry on <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> simply using the one from <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex>. However, it is not automatic that this symmetry is natural for all the morphisms in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>.
</html:p>
                    <html:p>
  This basic idea was already noted by Fritz (and goes back to Golubtsov's work in <fr:link href="/golubtsov-kleisli/" title="Monoidal Kleisli Category as a Background for Information Transformers Theory" uri="https://erischel.com/golubtsov-kleisli/" display-uri="golubtsov-kleisli" type="local">Reference <fr:contextual-number uri="https://erischel.com/golubtsov-kleisli/" display-uri="golubtsov-kleisli" /></fr:link>, an important part of the prehistory of Markov categories), although the precise statement above appears to be novel. Since the coherence conditions required of the comonoids in a Markov structure can be somewhat hard to remember, this characterization may be easier to understand.
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>6</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-38FR/</fr:uri>
                        <fr:display-uri>efr-38FR</fr:display-uri>
                        <fr:route>/efr-38FR/</fr:route>
                        <fr:title text="Representable Markov category">Representable Markov category</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  A Markov category is <html:em>representable</html:em> if the inclusion <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det} \hookrightarrow  \mathcal {C}]]></fr:tex> admits a right adjoint. In this case we denote the right adjoint <fr:tex display="inline"><![CDATA[P]]></fr:tex> and call the object <fr:tex display="inline"><![CDATA[PX]]></fr:tex> for <fr:tex display="inline"><![CDATA[X \in  \mathcal {C}]]></fr:tex> a <html:em>distribution object</html:em> for <fr:tex display="inline"><![CDATA[X]]></fr:tex>. Observe that <fr:tex display="inline"><![CDATA[\mathcal {C}(X,Y) = \mathcal {C}_\mathrm {det}(X,PY)]]></fr:tex> (by definition,) and hence <fr:tex display="inline"><![CDATA[\mathcal {C} = Kl(P)]]></fr:tex> where we denote the induced monad on <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> <fr:tex display="inline"><![CDATA[P]]></fr:tex> by an abuse of notation.
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>27</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-OSN1/</fr:uri>
                        <fr:display-uri>efr-OSN1</fr:display-uri>
                        <fr:route>/efr-OSN1/</fr:route>
                        <fr:title text="Commonly used Markov Categories">Commonly used Markov Categories</fr:title>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Here are some important Markov categories:
</html:p>
                        <html:ol><html:li><fr:tex display="inline"><![CDATA[\mathsf {Stoch}]]></fr:tex> (<fr:link href="/fritz-synthetic-markov-cats/" title="A synthetic approach to Markov kernels, conditional independence and theorems on sufficient statistics" uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" type="local">Reference <fr:contextual-number uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" /></fr:link>, section 4) is the category whose objects are measurable spaces, whose morphisms are Markov kernels, with composition given by the Chapman-Kolmogorov equation and monoidal structure given by product measures.
  </html:li>
  <html:li><fr:tex display="inline"><![CDATA[\mathsf {BorelStoch} \subseteq  \mathsf {Stoch}]]></fr:tex> (<fr:link href="/fritz-synthetic-markov-cats/" title="A synthetic approach to Markov kernels, conditional independence and theorems on sufficient statistics" uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" type="local">Reference <fr:contextual-number uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" /></fr:link>, section 4) is the full subcategory of <fr:tex display="inline"><![CDATA[\mathsf {Stoch}]]></fr:tex> spanned by the <html:em>standard Borel spaces,</html:em> that is by those measurable spaces arising as the Borel <fr:tex display="inline"><![CDATA[\sigma ]]></fr:tex>-algebra on separable, complete metric space.
  </html:li>
  <html:li><fr:tex display="inline"><![CDATA[\mathsf {FinStoch}]]></fr:tex> is the subcategory of <fr:tex display="inline"><![CDATA[\mathsf {Stoch}]]></fr:tex> spanned by finite sets in the powerset <fr:tex display="inline"><![CDATA[\sigma ]]></fr:tex>-algebra. A morphism <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathsf {FinStoch}]]></fr:tex> is equivalently a matrix <fr:tex display="inline"><![CDATA[f_{xy} : x \in  X, y \in  Y]]></fr:tex> with entries in <fr:tex display="inline"><![CDATA[\mathbb {R}_{\geq  0}]]></fr:tex> and with <fr:tex display="inline"><![CDATA[\sum _y f_{xy} = 1]]></fr:tex> for each <fr:tex display="inline"><![CDATA[x]]></fr:tex> (this is what is called a <html:em>stochastic matrix</html:em>).
  </html:li>
  <html:li>
    Let <fr:tex display="inline"><![CDATA[\Delta : \mathsf {Set} \to  \mathsf {Set}]]></fr:tex> be the monad which assigns to <fr:tex display="inline"><![CDATA[X \in  \mathsf {Set}]]></fr:tex> the set <fr:tex display="inline"><![CDATA[\Delta (X)]]></fr:tex> of countably-supported probability measures. Then the Kleisli category <fr:tex display="inline"><![CDATA[Kl(\Delta )]]></fr:tex> is a Markov category, sometimes called the category of <html:em>discrete</html:em> probability.
  </html:li>
  <html:li><fr:tex display="inline"><![CDATA[\mathsf {TychStoch}]]></fr:tex> (<fr:link href="/markov-supports/" title="Absolute continuity, supports and idempotent splitting in categorical probability" uri="https://erischel.com/markov-supports/" display-uri="markov-supports" type="local">Reference <fr:contextual-number uri="https://erischel.com/markov-supports/" display-uri="markov-supports" /></fr:link>, example A.1.4) is the category of <html:em>Tychonoff</html:em> topological spaces and kernels which are valued in Radon probability measures, and where the measure <fr:tex display="inline"><![CDATA[f(- \mid  x)]]></fr:tex> varies continuous in <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex> with respect to the weak topology---in other words, given any continuous function <fr:tex display="inline"><![CDATA[u \in  C(Y),]]></fr:tex> the resulting function on <fr:tex display="inline"><![CDATA[X]]></fr:tex> given by <fr:tex display="inline"><![CDATA[E_{y \sim  f(- \mid  x)}u(y)]]></fr:tex> is continuous. (A space <fr:tex display="inline"><![CDATA[X]]></fr:tex> is <html:em>Tychonoff</html:em> if it is Hausdorff and, given <fr:tex display="inline"><![CDATA[K \subset  X]]></fr:tex> closed and <fr:tex display="inline"><![CDATA[x_0]]></fr:tex> not in <fr:tex display="inline"><![CDATA[K]]></fr:tex>, there exists continuous <fr:tex display="inline"><![CDATA[f: X \to  [0,1]]]></fr:tex> with <fr:tex display="inline"><![CDATA[f(x_0)=0, f(k) =1]]></fr:tex> for <fr:tex display="inline"><![CDATA[k \in  K]]></fr:tex>. Every locally compact Hausdorff space is Tychonoff).
  </html:li></html:ol>
                      </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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>27</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-NKD7/</fr:uri>
                        <fr:display-uri>efr-NKD7</fr:display-uri>
                        <fr:route>/efr-NKD7/</fr:route>
                        <fr:title text="Diagram Markov Categories">Diagram Markov Categories</fr:title>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is a Markov category and <fr:tex display="inline"><![CDATA[I]]></fr:tex> is any ordinary category, there is a Markov category <fr:tex display="inline"><![CDATA[\mathsf {Fun}(I,\mathcal {C})]]></fr:tex> whose objects are functors <fr:tex display="inline"><![CDATA[I \to  \mathcal {C}_\mathrm {det},]]></fr:tex> and whose morphisms are natural transformations between these considered as functors into <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> (i.e natural transformations with stochastic components). The monoidal and Markov structure is defined simply component-wise.
</html:p>
                        <html:p>
  In particular, taking <fr:tex display="inline"><![CDATA[I = \to  = \{0 \to  1\}]]></fr:tex> the walking arrow, we obtain a Markov category of deterministic arrows <fr:tex display="inline"><![CDATA[\mathsf {Fun}(\to , \mathcal {C})]]></fr:tex>. We will denote this category simply <fr:tex display="inline"><![CDATA[\mathcal {C}^\to ]]></fr:tex>. Again, the objects of this category are the deterministic morphisms of <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, while the morphisms are the commutative squares with not-necessarily-deterministic sides
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>27</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-4VOU/</fr:uri>
                        <fr:display-uri>efr-4VOU</fr:display-uri>
                        <fr:route>/efr-4VOU/</fr:route>
                        <fr:title text="A note on terminology">A note on terminology</fr:title>
                        <fr:taxon>Remark</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  When we speak of a <html:em>stochastic</html:em> map in a Markov category, we always mean a map which is <html:em>not necessarily deterministic</html:em>---that is, a general map of <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>.
</html:p>
                        <html:p>
  Given a map <fr:tex display="inline"><![CDATA[p: P \to  X \otimes  Y]]></fr:tex> into a tensor product, the composites with the projections <fr:tex display="inline"><![CDATA[P \to  X, P \to  Y]]></fr:tex> are called the <html:em>marginals</html:em>. Given two maps <fr:tex display="inline"><![CDATA[f: P \to  X, g: P \to  Y]]></fr:tex>, we refer to any map <fr:tex display="inline"><![CDATA[P \to  X \otimes  Y]]></fr:tex> with those marginals as a <html:em>pairing</html:em> of the two. Note that there is always a canonical pairing given by <fr:tex display="inline"><![CDATA[(f \otimes  g) \mathrm {copy}_P]]></fr:tex>. We write <fr:tex display="inline"><![CDATA[\langle  f,g \rangle : P \to  X \otimes  Y]]></fr:tex> for this canonical pairing. For deterministic maps this is just the usual pairing using the universal property of the product. (We mostly use this in cases where one map is deterministic, so that the pairing is unique assuming positivity). When <fr:tex display="inline"><![CDATA[p = \langle  \pi _Xp, \pi _Yp \rangle ]]></fr:tex>, we say <fr:tex display="inline"><![CDATA[X \bot  Y \mid  P]]></fr:tex>, and say the two coordinates are <html:em>independent given <fr:tex display="inline"><![CDATA[P]]></fr:tex></html:em> (or just independent). 
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Recall that the codomain functor <fr:tex display="inline"><![CDATA[\mathcal {C}^\to  \to  \mathcal {C}]]></fr:tex> is a fibration if and only if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> admits pullbacks. Since Markov categories have terminal objects but not, in general, products, they clearly cannot be expected to have pullbacks.
  However, if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is <html:em>positive</html:em> (<fr:link href="/fritz-synthetic-markov-cats/" title="A synthetic approach to Markov kernels, conditional independence and theorems on sufficient statistics" uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" type="local">Reference <fr:contextual-number uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" /></fr:link>, def. 11.22---but see <fr:link href="/efr-OYB6/" title="Characterization of positivity" uri="https://erischel.com/efr-OYB6/" display-uri="efr-OYB6" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-OYB6/" display-uri="efr-OYB6" /></fr:link> below), given <fr:tex display="inline"><![CDATA[f: P \to  X]]></fr:tex> <html:em>deterministic</html:em>, every <fr:tex display="inline"><![CDATA[g: P \to  Y]]></fr:tex> has a unique pairing <fr:tex display="inline"><![CDATA[P \to  X \otimes  Y]]></fr:tex> with <fr:tex display="inline"><![CDATA[f]]></fr:tex>.
  Computing pullbacks <fr:tex display="inline"><![CDATA[X \otimes _Z Y]]></fr:tex> in the subcategory <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det},]]></fr:tex> we usually have a similar property. This will be the basic idea behind Markov prefibrations.
</html:p>
                    <html:p>
  By the following straightforward proposition, this property of having unique deterministic pairings is in fact equivalent to positivity:
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>26</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-OYB6/</fr:uri>
                        <fr:display-uri>efr-OYB6</fr:display-uri>
                        <fr:route>/efr-OYB6/</fr:route>
                        <fr:title text="Characterization of positivity">Characterization of positivity</fr:title>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a Markov category. The following are equivalent:
</html:p><html:ol><html:li>
    In <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, if <fr:tex display="inline"><![CDATA[f: P \to  X \otimes  Y]]></fr:tex> has deterministic marginal <fr:tex display="inline"><![CDATA[P \to  X,]]></fr:tex> then <fr:tex display="inline"><![CDATA[X \bot  Y \mid  P]]></fr:tex>. In other words, anything is independent of a deterministic variable.
  </html:li>
  <html:li>
    Given a deterministic morphism <fr:tex display="inline"><![CDATA[P \to  X]]></fr:tex> and any morphism <fr:tex display="inline"><![CDATA[P \to  Y,]]></fr:tex> there is a unique <fr:tex display="inline"><![CDATA[P \to  X \otimes  Y]]></fr:tex> with those marginals.
  </html:li>
  <html:li><fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is positive.
  </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>2025</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>
    Clearly 1 and 2 are equivalent, since independence just means <fr:tex display="inline"><![CDATA[f]]></fr:tex> is the independent pairing of the marginals---if it is uniquely determined by its marginals, it must be equal to the independent pairing, and conversely if it is necessarily independent, it is determined by its marginals. Now let us show this is equivalent to positivity.
  </html:p>
  <html:p>
    First suppose <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> has unique pairings in this sense. Let <fr:tex display="inline"><![CDATA[f,g]]></fr:tex> be as in the definition of positivity. Then the two maps <fr:tex display="inline"><![CDATA[X \to  Y \otimes  Z]]></fr:tex> indicated are pairings of <fr:tex display="inline"><![CDATA[gf]]></fr:tex> and <fr:tex display="inline"><![CDATA[f]]></fr:tex>, and since <fr:tex display="inline"><![CDATA[gf]]></fr:tex> is deterministic, they are identical by hypothesis.
  </html:p>
  <html:p>
    Finally, the implication <fr:tex display="inline"><![CDATA[3 \Rightarrow  1]]></fr:tex> is precisely <fr:link href="/fritz-synthetic-markov-cats/" title="A synthetic approach to Markov kernels, conditional independence and theorems on sufficient statistics" uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" type="local">Reference <fr:contextual-number uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" /></fr:link>, prop. 12.14.
  </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>2025</fr:year>
                          <fr:month>3</fr:month>
                          <fr:day>27</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-T3HM/</fr:uri>
                        <fr:display-uri>efr-T3HM</fr:display-uri>
                        <fr:route>/efr-T3HM/</fr:route>
                        <fr:title text="Pullback-positive">Pullback-positive</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a Markov category. We say <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is <html:em>pullback-positive</html:em> if <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> admits pullbacks and, given a diagram of this form where <fr:tex display="inline"><![CDATA[P \to  X]]></fr:tex> is deterministic, there is a unique map <fr:tex display="inline"><![CDATA[P \to  X \times _Z Y]]></fr:tex> making the squares commute.
</html:p>
                        <html:p>
                          <html:figure>
                            <fr:resource hash="753345ee0604c37973a17bffe67ddd62">
                              <fr:resource-content>
                                <html:img src="/753345ee0604c37973a17bffe67ddd62.svg" />
                              </fr:resource-content>
                              <fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source>
                              <fr:resource-source type="latex" part="body"><![CDATA[
  \begin {tikzcd}
  P \ar [dr, dashed] \ar [rrd] \ar [ddr] & & \\
  & X \times _Z Y \ar [r] \ar [d] & Y \ar [d]\\
  & X \ar [r] & Z
  \end {tikzcd}
]]></fr:resource-source>
                            </fr:resource>
                          </html:figure>
                        </html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Note that a pullback-positive category is in particular positive by taking <fr:tex display="inline"><![CDATA[Z = I]]></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>2025</fr:year>
                          <fr:month>9</fr:month>
                          <fr:day>14</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-A7K7/</fr:uri>
                        <fr:display-uri>efr-A7K7</fr:display-uri>
                        <fr:route>/efr-A7K7/</fr:route>
                        <fr:taxon>Remark</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  The pullbacks appearing in <fr:link href="/efr-T3HM/" title="Pullback-positive" uri="https://erischel.com/efr-T3HM/" display-uri="efr-T3HM" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-T3HM/" display-uri="efr-T3HM" /></fr:link> are of course pullbacks in <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex>, not <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, analogously to how <fr:tex display="inline"><![CDATA[X \otimes  Y]]></fr:tex> is a product in <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex>, not <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. We will still use the notation <fr:tex display="inline"><![CDATA[X \times _Z Y]]></fr:tex> for these pullbacks, which should not lead to any confusion. We may occasionally write <fr:tex display="inline"><![CDATA[X \times  Y]]></fr:tex> instead of <fr:tex display="inline"><![CDATA[X \otimes  Y]]></fr:tex>, if we are carrying out a construction which primarily involves <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex>. Since essentially no Markov categories have Cartesian products (except when the tensor product is Cartesian), this should also not lead to any ambiguity.
</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>2025</fr:year>
                          <fr:month>3</fr:month>
                          <fr:day>27</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-0YP1/</fr:uri>
                        <fr:display-uri>efr-0YP1</fr:display-uri>
                        <fr:route>/efr-0YP1/</fr:route>
                        <fr:taxon>Lemma</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:ol><html:li>Suppose any category <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex> admits products and <html:em>intersections</html:em>---that is, pullbacks <fr:tex display="inline"><![CDATA[U \times _X V]]></fr:tex> whenever <fr:tex display="inline"><![CDATA[U,V]]></fr:tex> are subobjects of <fr:tex display="inline"><![CDATA[X]]></fr:tex>. Then it admits all finite limits.</html:li>
  <html:li>
    Suppose <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> admits and <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det} \to  \mathcal {C}]]></fr:tex> preserves pullbacks along monomorphisms. Suppose further <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is positive. Then it is pullback-positive.
  </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>2025</fr:year><fr:month>3</fr:month><fr:day>27</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
<html:p>
  To see the first point, let <fr:tex display="inline"><![CDATA[f: X \to  Z, g: Y \to  Z]]></fr:tex> be arbitrary maps. Note that <fr:tex display="inline"><![CDATA[X \times _Z Y = (X \times  Y) \times _{X \times  Y \times  Z \times  Z} X \times  Y \times  Z]]></fr:tex>, where the horizontal map is given by <fr:tex display="inline"><![CDATA[(x,y) \mapsto  (x,y,f(x),g(y)),]]></fr:tex> and the top by <fr:tex display="inline"><![CDATA[(x,y,z) \mapsto  (x,y,z,z)]]></fr:tex>---in the sense that the universal property of this intersection is exactly the universal property of the given pullback.
</html:p>
<html:p>
  Now suppose <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det} \to  \mathcal {C}]]></fr:tex> preserves this intersection, and <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is positive. (Note that it doesn't follow that the inclusion preserves the pullback <fr:tex display="inline"><![CDATA[X \times _Z Y]]></fr:tex>, because it doesn't preserve the products). This amounts to the claim that a map <fr:tex display="inline"><![CDATA[P \to  X \otimes  Y]]></fr:tex> lifts to the pullback if and only if the composite <fr:tex display="inline"><![CDATA[P \to  X \otimes  Y \otimes  Z \otimes  Z]]></fr:tex> lifts over the map <fr:tex display="inline"><![CDATA[1_X \otimes  1_Y \otimes  \mathrm {copy}_Z]]></fr:tex> (note that the pullback of a monomorphism is a monomorphism).
</html:p>
<html:p>
  This implies in particular such a lift is always unique. Since if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is positive, given <fr:tex display="inline"><![CDATA[P \to  X, P \to  Y]]></fr:tex>, if the latter is deterministic there is a unique pairing <fr:tex display="inline"><![CDATA[P \to  X \otimes  Y,]]></fr:tex> this implies there is at most one map <fr:tex display="inline"><![CDATA[P \to  X \times _Z Y]]></fr:tex> pairing the two. On the other hand, since the composite <fr:tex display="inline"><![CDATA[P \to  Y \to  Z]]></fr:tex> is deterministic and equal to the composite <fr:tex display="inline"><![CDATA[P \to  X \to  Z]]></fr:tex>, they are both deterministic, and hence the pairing <fr:tex display="inline"><![CDATA[P \to  Z \otimes  Z]]></fr:tex> factors over the diagonal. Applying positivity again, to the tensor product <fr:tex display="inline"><![CDATA[(X \otimes  Y) \otimes  (Z \otimes  Z),]]></fr:tex> since the latter component is deterministic, this pairing is independent, and hence the map <fr:tex display="inline"><![CDATA[P \to  X \otimes  Y \to  X \otimes  Y \otimes  Z \otimes  Z]]></fr:tex> does indeed lift, finishing the proof.
</html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                    </fr:tree>
                    <html:p>
  The idea here is that a distribution on a subobject <fr:tex display="inline"><![CDATA[X' \subseteq  X]]></fr:tex> defined by some condition <fr:tex display="inline"><![CDATA[f(x \in  X) \in  U \subseteq  Y]]></fr:tex> is simply a distribution so that the condition is satisfied with probability <fr:tex display="inline"><![CDATA[1]]></fr:tex>. This is a natural condition which holds in many Markov categories.
</html:p>
                    <html:p>The assumption that <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is pullback-positive will play a key role in the development of the theory of Markov fibrations. Although the theory could possibly be developed without assuming the base category has deterministic pullbacks, positivity seems to be an essential part. </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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>27</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-MW29/</fr:uri>
                        <fr:display-uri>efr-MW29</fr:display-uri>
                        <fr:route>/efr-MW29/</fr:route>
                        <fr:taxon>Lemma</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is representable and positive, <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> has limits, and the monad <fr:tex display="inline"><![CDATA[P]]></fr:tex> preserves intersections, then <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is pullback-positive.
</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>2025</fr:year><fr:month>4</fr:month><fr:day>27</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    This is clear, since if the monad <fr:tex display="inline"><![CDATA[P]]></fr:tex> preserves a given limit, so does the inclusion into the Kleisli category (for completely abstract reasons), hence by <fr:link href="/efr-0YP1/" title="https://erischel.com/efr-0YP1/" uri="https://erischel.com/efr-0YP1/" display-uri="efr-0YP1" type="local">Lemma <fr:contextual-number uri="https://erischel.com/efr-0YP1/" display-uri="efr-0YP1" /></fr:link> we are done.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                    </fr:tree>
                    <html:p>
  We will need the notion of <html:em>support</html:em> in a Markov category, introduced in <fr:link href="/markov-supports/" title="Absolute continuity, supports and idempotent splitting in categorical probability" uri="https://erischel.com/markov-supports/" display-uri="markov-supports" type="local">Reference <fr:contextual-number uri="https://erischel.com/markov-supports/" display-uri="markov-supports" /></fr:link>, for certain examples, so we briefly record the definition and a few of its properties here.
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>3</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-AB57/</fr:uri>
                        <fr:display-uri>efr-AB57</fr:display-uri>
                        <fr:route>/efr-AB57/</fr:route>
                        <fr:title text="Support of a morphism">Support of a morphism</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[p: X \to  Y, q: A \to  Y]]></fr:tex> be two morphisms in a Markov category. We say <html:em><fr:tex display="inline"><![CDATA[q]]></fr:tex> is absolutely continuous with respect to <fr:tex display="inline"><![CDATA[p]]></fr:tex></html:em> and write <fr:tex display="inline"><![CDATA[q << p]]></fr:tex> if, whenever two maps <fr:tex display="inline"><![CDATA[Y \to  Z]]></fr:tex> are <fr:tex display="inline"><![CDATA[p]]></fr:tex>-almost surely equal, they are also <fr:tex display="inline"><![CDATA[q]]></fr:tex>-almost surely equal.
</html:p>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[p: X \to  Y]]></fr:tex> be a morphism in a Markov category. The <html:em>support</html:em> of <fr:tex display="inline"><![CDATA[p]]></fr:tex>, if it exists, is an object which represents the functor <fr:tex display="inline"><![CDATA[\mathcal {C}(-,Y)_{<<p}]]></fr:tex> of morphisms into <fr:tex display="inline"><![CDATA[Y]]></fr:tex> which are absolutely continuous with respect to <fr:tex display="inline"><![CDATA[p]]></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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>3</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-8MYE/</fr:uri>
                        <fr:display-uri>efr-8MYE</fr:display-uri>
                        <fr:route>/efr-8MYE/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:ol><html:li>
    The support of <fr:tex display="inline"><![CDATA[p: X \to  A]]></fr:tex> is equipped with a canonical deterministic monomorphism <fr:tex display="inline"><![CDATA[S_p \hookrightarrow  A]]></fr:tex>, so that a map into <fr:tex display="inline"><![CDATA[A]]></fr:tex> is absolutely continuous with respect to <fr:tex display="inline"><![CDATA[p]]></fr:tex> if and only if it factors over the support.
  </html:li>
  <html:li>Two maps <fr:tex display="inline"><![CDATA[A \otimes  W \to  B]]></fr:tex> are <fr:tex display="inline"><![CDATA[p]]></fr:tex>-almost surely equal if and only if they are strictly equal on the support.</html:li></html:ol>
                      </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>2025</fr:year>
                      <fr:month>6</fr:month>
                      <fr:day>18</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-NC0R/</fr:uri>
                    <fr:display-uri>efr-NC0R</fr:display-uri>
                    <fr:route>/efr-NC0R/</fr:route>
                    <fr:title text="Double Categories">Double Categories</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>2025</fr:year>
                          <fr:month>6</fr:month>
                          <fr:day>18</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-RXP4/</fr:uri>
                        <fr:display-uri>efr-RXP4</fr:display-uri>
                        <fr:route>/efr-RXP4/</fr:route>
                        <fr:title text="Double Category">Double Category</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  A (strict) <html:em>double category</html:em> is a category internal to the category <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex> of categories.
  Concretely, it consists of:
</html:p>
                        <html:ol><html:li>
    A set of objects <fr:tex display="inline"><![CDATA[\operatorname {\mathbf {ob}} \mathbb {C}]]></fr:tex></html:li>
  <html:li>
    A collection of <html:em>vertical morphisms</html:em> forming a category <fr:tex display="inline"><![CDATA[\mathbb {C}_v]]></fr:tex> with <fr:tex display="inline"><![CDATA[\operatorname {\mathbf {ob}} \mathbb {C}_v = \operatorname {\mathbf {ob}} \mathbb {C}]]></fr:tex></html:li>
  <html:li>
    A collection of <html:em>horizontal morphisms</html:em> forming a category <fr:tex display="inline"><![CDATA[\mathbb {C}_h]]></fr:tex> with <fr:tex display="inline"><![CDATA[\operatorname {\mathbf {ob}} \mathbb {C}_h = \operatorname {\mathbf {ob}} \mathbb {C}]]></fr:tex></html:li>
  <html:li>
    An a collection of <html:em>squares</html:em>. Each square has a left and right boundary given by vertical morphisms <fr:tex display="inline"><![CDATA[l,r]]></fr:tex>, and top and bottom boundary given by horizontal morphisms <fr:tex display="inline"><![CDATA[t,b]]></fr:tex> so that <fr:tex display="inline"><![CDATA[\operatorname {\mathrm {dom}} t = \operatorname {\mathrm {dom}} l, \operatorname {\mathrm {cod}} t = \operatorname {\mathrm {dom}} r]]></fr:tex> and so on:
    
  <html:figure><fr:resource hash="c5a343e9ca9c520fa1dd6392b4d281d1"><fr:resource-content><html:img src="/c5a343e9ca9c520fa1dd6392b4d281d1.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
      \begin {tikzcd}
      X \ar [r, "t"] \ar [d, "l"] & Y \ar [d, "r"]\\
      A \ar [r, "b"] & B
      \end {tikzcd}
    ]]></fr:resource-source></fr:resource></html:figure>

    The squares compose horizontally and vertically in the obvious way, each of which form a category (in particular, there are <html:em>identity squares</html:em> for each vertical and horizontal map).
  </html:li></html:ol>
                        <html:p>
  A double functor is a mapping on objects, vertical and horizontal morphisms, and squares, which preserves all the identities and composition.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  There is also a notion of <html:em>pseudo double category</html:em>, which weakens the horizontal composition to only be associative and unital up to a coherent system of squares. We will not go into the details here, see <fr:link href="/efr-000D/" title="The \mathsf {Para} construction in generic 2-categories" uri="https://erischel.com/efr-000D/" display-uri="efr-000D" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-000D/" display-uri="efr-000D" /></fr:link> for more on this.
</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>2025</fr:year>
                          <fr:month>6</fr:month>
                          <fr:day>18</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-BEJ6/</fr:uri>
                        <fr:display-uri>efr-BEJ6</fr:display-uri>
                        <fr:route>/efr-BEJ6/</fr:route>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  There is a pseudo double category <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Cat}]]></fr:tex> where the objects are categories, the vertical maps are functors, the horizontal maps are <html:em>profunctors</html:em> (functors <fr:tex display="inline"><![CDATA[\mathcal {C} \times  \mathcal {D}^\mathrm {op} \to  \mathsf {Set},]]></fr:tex> sometimes called bimodules), and the squares are natural transformations.
</html:p>
                        <html:p>
  For any category with pullbacks <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, there is a pseudo double category <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Span}(\mathcal {C})]]></fr:tex> with <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> as the vertical category, spans as the horizontal morphisms, and commutative diagrams as the squares.
</html:p>
                        <html:p>
  There is a double category <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Rel}]]></fr:tex> of sets, functions, and relations.
</html:p>
                        <html:p>
  For any Markov category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, there is a double category with <fr:tex display="inline"><![CDATA[\mathbb {C}_v = \mathcal {C}_\mathrm {det}]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathbb {C}_h = \mathcal {C}]]></fr:tex>.
</html:p>
                        <html:p>
  For any category at all, there is a double category <fr:tex display="inline"><![CDATA[\operatorname {Sq}(\mathcal {C})]]></fr:tex> with <fr:tex display="inline"><![CDATA[\operatorname {Sq}(\mathcal {C})_v = \operatorname {Sq}(\mathcal {C})_h = \mathcal {C}]]></fr:tex> and commutative squares as the pullback squares.
</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>2025</fr:year>
                          <fr:month>6</fr:month>
                          <fr:day>18</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-Y1S5/</fr:uri>
                        <fr:display-uri>efr-Y1S5</fr:display-uri>
                        <fr:route>/efr-Y1S5/</fr:route>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  A double category is <html:em>thin</html:em> if, for each compatible square of vertical and horizontal morphisms, there is at most one square filling it. In other words, such a square either commutes or doesn't.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Sometimes the two classes of morphism are instead called <html:em>loose</html:em> and <html:em>tight</html:em>, especially in cases where the composition of the loose class is not associative, or if the loose class is a superset of the tight class.
</html:p>
                    <html:p>
  Although the explicit description above is probably the best way to think about the data of a double category, on a technical level it is often useful to think in terms of internal categories. An <html:em>internal category</html:em> in a category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is a pair of objects <fr:tex display="inline"><![CDATA[C_0, C_1]]></fr:tex>, maps <fr:tex display="inline"><![CDATA[d,c: C_1 \to  C_0, i: C_0 \to  C_1]]></fr:tex> (the domain, codomain and identity), and a map <fr:tex display="inline"><![CDATA[m: C_1 \times _{C_0} C_1 \to  C_1]]></fr:tex> (the multiplication), satisfying the usual laws of a category. A double category in the above sense is then an internal category in the category of categories.
</html:p>
                    <html:p>
  In the terms of <fr:link href="/efr-RXP4/" title="Double Category" uri="https://erischel.com/efr-RXP4/" display-uri="efr-RXP4" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-RXP4/" display-uri="efr-RXP4" /></fr:link>, <fr:tex display="inline"><![CDATA[C_0]]></fr:tex> is <fr:tex display="inline"><![CDATA[\mathbb {C}_v]]></fr:tex>, and <fr:tex display="inline"><![CDATA[C_1]]></fr:tex> is the category whose <html:em>objects</html:em> are horizontal arrows, and whose morphisms are squares (composed vertically). Obviously, we could just as easily have oriented things horizontally, but this is the convention usually adopted.
</html:p>
                    <html:p>
  Given a double category <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex>, there is another double category <fr:tex display="inline"><![CDATA[\mathbb {C}^T]]></fr:tex> called the <html:em>transpose</html:em> of <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex>, which has the same objects but exchanges the horizontal and vertical morphisms. In many cases it is not clear which of <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathbb {C}^T]]></fr:tex> is the "correct" one to work with, and we may have to pass back and forth between them. We try to stick to the convention that the horizontal morphisms are the "loose" ones. To avoid confusion, we will also simply specify the classes of morphisms directly, speaking for example of "the lenses" or "the charts" when working with the double category <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}(\mathcal {A})]]></fr:tex> (<fr:link href="/efr-0025/" title="Arenas" uri="https://erischel.com/efr-0025/" display-uri="efr-0025" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-0025/" display-uri="efr-0025" /></fr:link>).
</html:p>
                    <html:p>
  The concept of double category goes back to <fr:link href="/ehresmann-dblcats/" title="Categories structures" uri="https://erischel.com/ehresmann-dblcats/" display-uri="ehresmann-dblcats" type="local">Reference <fr:contextual-number uri="https://erischel.com/ehresmann-dblcats/" display-uri="ehresmann-dblcats" /></fr:link>. See <fr:link href="/johnson-yau-2dim-categories/" title="2-Dimensional Categories" uri="https://erischel.com/johnson-yau-2dim-categories/" display-uri="johnson-yau-2dim-categories" type="local">Reference <fr:contextual-number uri="https://erischel.com/johnson-yau-2dim-categories/" display-uri="johnson-yau-2dim-categories" /></fr:link>, section 12.3 for a textbook treatment. They have been widely used in applied category theory. An early application is in <fr:link href="/baez-courser-structured-cospans/" title="Structured cospans" uri="https://erischel.com/baez-courser-structured-cospans/" display-uri="baez-courser-structured-cospans" type="local">Reference <fr:contextual-number uri="https://erischel.com/baez-courser-structured-cospans/" display-uri="baez-courser-structured-cospans" /></fr:link>, which constructed a "structured" version of the double category of cospans. Here the philosophy is that the horizontal morphisms are the "systems" (in a general sense) which are being wired together by horizontal composition, while the vertical morphisms (and squares) are "structure-preserving maps between systems". This is similar to the our double category of "bisystems" (<fr:link href="/efr-MWCE/" title="The triple category of dynamical systems" uri="https://erischel.com/efr-MWCE/" display-uri="efr-MWCE" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-MWCE/" display-uri="efr-MWCE" /></fr:link>). Recent work by Lambert and Patterson <fr:link href="/patterson-lambert-dbltheory/" title="Cartesian double theories: A double-categorical framework for categorical doctrines" uri="https://erischel.com/patterson-lambert-dbltheory/" display-uri="patterson-lambert-dbltheory" type="local">Reference <fr:contextual-number uri="https://erischel.com/patterson-lambert-dbltheory/" display-uri="patterson-lambert-dbltheory" /></fr:link> applies double categories to categorical algebra, with many applications to systems modeling, see <fr:link href="/catcolab-introducing/" title="Introducing CatColab" uri="https://erischel.com/catcolab-introducing/" display-uri="catcolab-introducing" type="local">Reference <fr:contextual-number uri="https://erischel.com/catcolab-introducing/" display-uri="catcolab-introducing" /></fr:link> (as well as to classical category theory). In the next section we'll see their application to categorical systems theory, and later see them applied to parametrized morphisms.
</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>6</fr:month>
                      <fr:day>30</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0023/</fr:uri>
                    <fr:display-uri>efr-0023</fr:display-uri>
                    <fr:route>/efr-0023/</fr:route>
                    <fr:title text="Review of Categorical Systems Theory">Review of Categorical Systems Theory</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  We will give a review of the framework called <html:em>categorical systems theory</html:em>, due to Myers (<fr:link href="/myers-cst/" title="Categorical Systems Theory" uri="https://erischel.com/myers-cst/" display-uri="myers-cst" type="local">Reference <fr:contextual-number uri="https://erischel.com/myers-cst/" display-uri="myers-cst" /></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>6</fr:month>
                          <fr:day>6</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-000A/</fr:uri>
                        <fr:display-uri>efr-000A</fr:display-uri>
                        <fr:route>/efr-000A/</fr:route>
                        <fr:title text="Theory of Dynamical Systems">Theory of Dynamical Systems</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  A <html:em>theory of dynamical systems</html:em> is an indexed category <fr:tex display="inline"><![CDATA[\mathcal {A}: \mathcal {C}^\mathrm {op} \to  \mathsf {Cat}]]></fr:tex> equipped with a section of its Grothendieck construction <fr:tex display="inline"><![CDATA[T: \mathcal {C} \to  \int  \mathcal {A}]]></fr:tex>.
</html:p>
                        <html:p>
  It is called <html:em>monoidal</html:em> if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is a monoidal category, and <fr:tex display="inline"><![CDATA[\mathcal {A}]]></fr:tex> is a lax monoidal functor. It is further called symmetric monoidal if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is a symmetric monoidal category and <fr:tex display="inline"><![CDATA[\mathcal {A}]]></fr:tex> is a symmetric lax monoidal functor. Note that this is equivalent to requiring <fr:tex display="inline"><![CDATA[\int  \mathcal {A} \to  \mathcal {C}]]></fr:tex> to be a (symmetric) 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>).
</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>6</fr:month>
                          <fr:day>30</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-0024/</fr:uri>
                        <fr:display-uri>efr-0024</fr:display-uri>
                        <fr:route>/efr-0024/</fr:route>
                        <fr:title text="Lenses and charts">Lenses and charts</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {A}: \mathcal {C}^\mathrm {op} \to  \mathsf {Cat}]]></fr:tex> be an indexed category. A <html:em>chart</html:em> is simply a morphism in the Grothendieck construction <fr:tex display="inline"><![CDATA[\int  \mathcal {A}]]></fr:tex>. A <html:em>lens</html:em> is a morphism in the fiberwise opposite <fr:tex display="inline"><![CDATA[\int  \mathcal {A}(-)^\mathrm {op}]]></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>6</fr:month>
                          <fr:day>30</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-0025/</fr:uri>
                        <fr:display-uri>efr-0025</fr:display-uri>
                        <fr:route>/efr-0025/</fr:route>
                        <fr:title text="Arenas">Arenas</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Given an indexed category <fr:tex display="inline"><![CDATA[\mathcal {A}: \mathcal {C}^\mathrm {op} \to  \mathsf {Cat}]]></fr:tex>, the double category <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}]]></fr:tex> of <html:em>arenas</html:em> has
</html:p>
                        <html:ol><html:li>Objects the objects of <fr:tex display="inline"><![CDATA[\int  \mathcal {A}]]></fr:tex>---note that these are the same as the objects of <fr:tex display="inline"><![CDATA[\int  \mathcal {A}(-)^\mathrm {op}]]></fr:tex></html:li>
  <html:li>Vertical morphisms the lenses</html:li>
  <html:li>Horizontal morphisms the charts</html:li>
  <html:li>The double category is thin. Given a square of this form
  
  
  <html:figure><fr:resource hash="60840dd42cc5f965da59ec029657ab5b"><fr:resource-content><html:img src="/60840dd42cc5f965da59ec029657ab5b.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    {\bar {A}_1 \choose  A_1} \ar [r] \ar [d] & {\bar {B}_1 \choose  B_1} \ar [d]\\
    {\bar {A}_2 \choose  A_2} \ar [r] & {\bar {B}_2 \choose  B_2},
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  
  we can first project it to a square in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. If this commutes, we can pull the lenses and charts back to a square in <fr:tex display="inline"><![CDATA[\mathcal {A}(A_1)]]></fr:tex>. The above square of lenses and charts will be said to commute if both of these squares commute.</html:li></html:ol>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  We will write arenas either as <fr:tex display="inline"><![CDATA[{\bar {A} \in  \mathcal {A}(A) \choose  A \in  \mathcal {C}}]]></fr:tex>, or, for brevity when there is no need to discuss the two levels separately, simply with a symbol <fr:tex display="inline"><![CDATA[A]]></fr:tex>. We will also write both <fr:tex display="inline"><![CDATA[{\bar {TS} \choose  S}]]></fr:tex> and <fr:tex display="inline"><![CDATA[TS]]></fr:tex> as the situation calls for---there should be no confusion resulting from this.
</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>6</fr:month>
                          <fr:day>30</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-0028/</fr:uri>
                        <fr:display-uri>efr-0028</fr:display-uri>
                        <fr:route>/efr-0028/</fr:route>
                        <fr:title text="Dynamical system with interface A">Dynamical system with interface <fr:tex display="inline"><![CDATA[A]]></fr:tex></fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>Let <fr:tex display="inline"><![CDATA[A]]></fr:tex> be an arena. A <html:em>dynamical system</html:em> with interface <fr:tex display="inline"><![CDATA[A]]></fr:tex> is an object <fr:tex display="inline"><![CDATA[S \in  \mathcal {C}]]></fr:tex> and a lens <fr:tex display="inline"><![CDATA[TS \leftrightarrows  A]]></fr:tex>. A morphism of systems is a map <fr:tex display="inline"><![CDATA[S \to  S']]></fr:tex> so that this square commutes in <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}]]></fr:tex>:</html:p>
                        <html:p>
                          <html:figure>
                            <fr:resource hash="76ffbbe8b3989376dab62c35b6479118">
                              <fr:resource-content>
                                <html:img src="/76ffbbe8b3989376dab62c35b6479118.svg" />
                              </fr:resource-content>
                              <fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source>
                              <fr:resource-source type="latex" part="body"><![CDATA[
  \begin {tikzcd}
  TS \ar [d] \ar [r] & A \ar [d, equals]\\
  TS' \ar [r] & A
  \end {tikzcd}
]]></fr:resource-source>
                            </fr:resource>
                          </html:figure>
                        </html:p>
                        <html:p>
  The category of systems with interface <fr:tex display="inline"><![CDATA[A]]></fr:tex> is denoted <fr:tex display="inline"><![CDATA[\mathsf {Sys}(A)]]></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>6</fr:month>
                          <fr:day>30</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-0029/</fr:uri>
                        <fr:display-uri>efr-0029</fr:display-uri>
                        <fr:route>/efr-0029/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Given a lens <fr:tex display="inline"><![CDATA[A \leftrightarrows  A',]]></fr:tex> postcomposition gives a functor <fr:tex display="inline"><![CDATA[\mathsf {Sys}(A) \to  \mathsf {Sys}(A')]]></fr:tex>.
  Given a chart <fr:tex display="inline"><![CDATA[A \rightrightarrows  A']]></fr:tex>, there is a <html:em>profunctor</html:em> <fr:tex display="inline"><![CDATA[\mathsf {Sys}(A) \nrightarrow  \mathsf {Sys}(A'),]]></fr:tex>
  where the set over <fr:tex display="inline"><![CDATA[TS \leftrightarrows  A]]></fr:tex> and <fr:tex display="inline"><![CDATA[TS' \leftrightarrows  A']]></fr:tex> is the set of maps <fr:tex display="inline"><![CDATA[S \to  S']]></fr:tex> so that this square commutes:
</html:p>
                        <html:p>
                          <html:figure>
                            <fr:resource hash="cb42698df8a57bc9800ebdf68b391f2b">
                              <fr:resource-content>
                                <html:img src="/cb42698df8a57bc9800ebdf68b391f2b.svg" />
                              </fr:resource-content>
                              <fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source>
                              <fr:resource-source type="latex" part="body"><![CDATA[
  \begin {tikzcd}
  TS \ar [d] \ar [r] & A \ar [d]\\
  TS' \ar [r] & A'
  \end {tikzcd}
]]></fr:resource-source>
                            </fr:resource>
                          </html:figure>
                        </html:p>
                        <html:p>
  This defines a double functor <fr:tex display="inline"><![CDATA[\mathsf {Sys}: \mathsf {\mathbb  Arena} \to  \mathsf {\mathbb  Cat}]]></fr:tex>.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  The fibration <fr:tex display="inline"><![CDATA[\int  \mathcal {A} \to  \mathcal {C}]]></fr:tex> encodes what sort of information can be "indexed over a space", while the section <fr:tex display="inline"><![CDATA[T: \mathcal {C} \to  \int  \mathcal {A}]]></fr:tex> tells us what sort of information (such as a next step, or a gradient vector) must be produced to give a dynamical system. In this respect, the theory is very similar to the coalgebraic approach to dynamical systems, or systems that "do something", and indeed we have the following:
</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>6</fr:month>
                          <fr:day>30</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-0026/</fr:uri>
                        <fr:display-uri>efr-0026</fr:display-uri>
                        <fr:route>/efr-0026/</fr:route>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[F: \mathsf {Set} \to  \mathsf {Set}]]></fr:tex> be a functor.
  Then there is a dynamical systems theory where <fr:tex display="inline"><![CDATA[\mathcal {C} = \mathsf {Set}]]></fr:tex>, <fr:tex display="inline"><![CDATA[\mathcal {A}]]></fr:tex> is constant at <fr:tex display="inline"><![CDATA[\mathsf {Set}]]></fr:tex>,
  and <fr:tex display="inline"><![CDATA[T(X) = (X,F(X))]]></fr:tex>. It is easy to see that the category of closed dynamical systems in this theory is equivalently the category of <fr:tex display="inline"><![CDATA[F]]></fr:tex>-coalgebras.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Of course, coalgebras can already encode systems with input and output---the point of the CST framework is to separate out the input and output of systems so that they can be acted on in a compositional manner.
</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>7</fr:month>
                          <fr:day>2</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-002F/</fr:uri>
                        <fr:display-uri>efr-002F</fr:display-uri>
                        <fr:route>/efr-002F/</fr:route>
                        <fr:title text="The theory of discrete dynamical systems">The theory of discrete dynamical systems</fr:title>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  There is a theory of dynamical systems with category of spaces <fr:tex display="inline"><![CDATA[\mathcal {C} = \mathsf {Set}]]></fr:tex>, category of bundles <fr:tex display="inline"><![CDATA[\mathcal {A}(X) = \mathsf {Set}_{/X}]]></fr:tex> (with pullbacks for reindexing), and tangent bundle <fr:tex display="inline"><![CDATA[TX = X \times  X \xrightarrow {\pi _0} X]]></fr:tex>.
  We call this the theory of <html:em>discrete dynamical systems</html:em>. (In the sense that they are both discrete-time and discrete-space).
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  In another direction, we have the following comparison result:
</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>6</fr:month>
                          <fr:day>30</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-0027/</fr:uri>
                        <fr:display-uri>efr-0027</fr:display-uri>
                        <fr:route>/efr-0027/</fr:route>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  In the theory of discrete dynamical systems:
  <html:ol><html:li>The category of lenses <fr:tex display="inline"><![CDATA[\int  \mathcal {A}(-)^\mathrm {op}]]></fr:tex> is equivalently the category of <html:em>polynomial functors</html:em> and natural transformations between them.</html:li>
    <html:li>Using this equivalence, the category of dynamical systems with interface <fr:tex display="inline"><![CDATA[p]]></fr:tex> is exactly the category of <fr:tex display="inline"><![CDATA[p]]></fr:tex>-coalgebras and homomorphisms</html:li></html:ol></html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  The first part here (which works, suitably formulated, for any locally Cartesian closed category), is a classical part of the theory of polynomial functors, see eg <fr:link href="/kock-poly-classical/" title="Polynomial functors and polynomial monads" uri="https://erischel.com/kock-poly-classical/" display-uri="kock-poly-classical" type="local">Reference <fr:contextual-number uri="https://erischel.com/kock-poly-classical/" display-uri="kock-poly-classical" /></fr:link>. The second part is due to Spivak, see <fr:link href="/spivak-poly-abundant/" title="Poly: An abundant categorical setting for mode-dependent dynamics" uri="https://erischel.com/spivak-poly-abundant/" display-uri="spivak-poly-abundant" type="local">Reference <fr:contextual-number uri="https://erischel.com/spivak-poly-abundant/" display-uri="spivak-poly-abundant" /></fr:link>. There is an extensive body of work on the description of interacting (discrete, deterministic) dynamical systems in terms of polynomial functors, see e.g. also <fr:link href="/shapiro-spivak-dynamic-operads/" title="Dynamic Operads, Dynamic Categories: From Deep Learning to Prediction Markets" uri="https://erischel.com/shapiro-spivak-dynamic-operads/" display-uri="shapiro-spivak-dynamic-operads" type="local">Reference <fr:contextual-number uri="https://erischel.com/shapiro-spivak-dynamic-operads/" display-uri="shapiro-spivak-dynamic-operads" /></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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>7</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-GXJ0/</fr:uri>
                        <fr:display-uri>efr-GXJ0</fr:display-uri>
                        <fr:route>/efr-GXJ0/</fr:route>
                        <fr:title text="The theory of stochastic discrete dynamical systems">The theory of stochastic discrete dynamical systems</fr:title>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  There is a systems theory where <fr:tex display="inline"><![CDATA[\mathcal {C} = \mathsf {Set}, \mathcal {A}(X) = Kl(\Delta )^X]]></fr:tex> (with the evident reindexing maps) and <fr:tex display="inline"><![CDATA[T(X) = X \times  X]]></fr:tex>.
</html:p>
                        <html:p>
  In this theory, a closed dynamical system is a set equipped with a map <fr:tex display="inline"><![CDATA[X \to  \Delta (X)]]></fr:tex>. An open dynamical system has stochastic <html:em>update</html:em> function, but output which depends deterministically on the current system state.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  In fact this example works for any monad on the category of sets.
</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>2025</fr:year>
                          <fr:month>6</fr:month>
                          <fr:day>17</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-KZEM/</fr:uri>
                        <fr:display-uri>efr-KZEM</fr:display-uri>
                        <fr:route>/efr-KZEM/</fr:route>
                        <fr:title text="The theory of smooth dynamical systems">The theory of smooth dynamical systems</fr:title>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  There is a dynamical systems theory where <fr:tex display="inline"><![CDATA[\mathcal {C} = \mathsf {SmMfd}]]></fr:tex> is the category of smooth manifolds, <fr:tex display="inline"><![CDATA[\mathcal {A}_X]]></fr:tex> is the category of fiber bundles over <fr:tex display="inline"><![CDATA[X]]></fr:tex>, with <fr:tex display="inline"><![CDATA[f^*: \mathcal {A}_Y \to  \mathcal {A}_X]]></fr:tex> given by pullback along <fr:tex display="inline"><![CDATA[f: X \to  Y]]></fr:tex> (note that pullbacks of bundles always exist), and with <fr:tex display="inline"><![CDATA[TX]]></fr:tex> being the tangent bundle of <fr:tex display="inline"><![CDATA[X]]></fr:tex> in the ordinary sense. In this case, closed dynamical systems are manifolds equipped with (smooth) vector fields, which is what is classically thought of as a smooth dynamical system.
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>7</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-9WQU/</fr:uri>
                        <fr:display-uri>efr-9WQU</fr:display-uri>
                        <fr:route>/efr-9WQU/</fr:route>
                        <fr:title text="Clock system">Clock system</fr:title>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Consider the theory of discrete-time, discrete dynamical systems from <fr:link href="/efr-002F/" title="The theory of discrete dynamical systems" uri="https://erischel.com/efr-002F/" display-uri="efr-002F" type="local">Example <fr:contextual-number uri="https://erischel.com/efr-002F/" display-uri="efr-002F" /></fr:link>. Let <fr:tex display="inline"><![CDATA[\xi : TS \leftrightarrows  {I \choose  O}]]></fr:tex> be a system.
  Consider the system <fr:tex display="inline"><![CDATA[c: T\mathbb {N} \leftrightarrows  {* \choose  \mathbb {N}}]]></fr:tex> given by <fr:tex display="inline"><![CDATA[n \mapsto  n]]></fr:tex> in the forwards direction, and <fr:tex display="inline"><![CDATA[(n,*) \mapsto  n+1]]></fr:tex> in the backwards direction. (To be clear, the object denoted <fr:tex display="inline"><![CDATA[{* \choose  \mathbb {N}}]]></fr:tex> is the map <fr:tex display="inline"><![CDATA[\mathbb {N} \to  \mathbb {N}]]></fr:tex>---it is a singleton <html:em>in each fiber</html:em>). Then a morphism of systems <fr:tex display="inline"><![CDATA[c \to  \xi ]]></fr:tex> consists of the following data:
</html:p>
                        <html:ol><html:li>
    A function <fr:tex display="inline"><![CDATA[x: \mathbb {N} \to  S]]></fr:tex>.
  </html:li>
  <html:li>
    Another function <fr:tex display="inline"><![CDATA[o: \mathbb {N} \to  O]]></fr:tex>.
  </html:li>
  <html:li>
    A third function <fr:tex display="inline"><![CDATA[i: \mathbb {N} \to  I]]></fr:tex> so that <fr:tex display="inline"><![CDATA[i(n) \in  I_{o(n)}]]></fr:tex>.
  </html:li>
  <html:li>
    So that <fr:tex display="inline"><![CDATA[o(n) = \xi (x(n))]]></fr:tex> and <fr:tex display="inline"><![CDATA[\xi ^\#(x(n),i(n)) = x(n+1)]]></fr:tex></html:li></html:ol>
                        <html:p>
  That is, it is a choice of a sequence <fr:tex display="inline"><![CDATA[x_n]]></fr:tex> of points in the state-space, and a sequence of inputs <fr:tex display="inline"><![CDATA[i_n]]></fr:tex> compatible with the outputs, so that this sequence <html:em>obeys the dynamics</html:em>. In other words, it is a <html:em>trajectory of the system.</html:em></html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Because of this, one views a generic chart map as a <html:em>generalized trajectory</html:em>, of a type given by the domain system. As another example, taking the state space to be <fr:tex display="inline"><![CDATA[\{1,2, \dots , n\}]]></fr:tex> with an update map that carries <fr:tex display="inline"><![CDATA[n]]></fr:tex> to <fr:tex display="inline"><![CDATA[1,]]></fr:tex> one finds a system which classifies <html:em><fr:tex display="inline"><![CDATA[n]]></fr:tex>-periodic</html:em> trajectories. Similarly, in the smooth case, the system <fr:tex display="inline"><![CDATA[(\mathbb {R}, d/dt: \mathbb {R} \to  T\mathbb {R})]]></fr:tex> classifies solutions of a smooth differential equation (those which extend to infinity).
  Recent work by Lynch, Myers, Staton, and the author (<fr:link href="/lynch-myers-rischel-staton-stoch-clocks/" title="Clock systems for stochastic and non-deterministic categorical systems theories" uri="https://erischel.com/lynch-myers-rischel-staton-stoch-clocks/" display-uri="lynch-myers-rischel-staton-stoch-clocks" type="local">Reference <fr:contextual-number uri="https://erischel.com/lynch-myers-rischel-staton-stoch-clocks/" display-uri="lynch-myers-rischel-staton-stoch-clocks" /></fr:link>) constructs clock systems for theories of stochastic, discrete-time doctrines, although we will not delve into this here.
</html:p>
                    <html:p>
  Because this thesis is about Markov fibrations, we have chosen to present these ideas in terms of fibrations equipped with sections. Myers' book <fr:link href="/myers-cst/" title="Categorical Systems Theory" uri="https://erischel.com/myers-cst/" display-uri="myers-cst" type="local">Reference <fr:contextual-number uri="https://erischel.com/myers-cst/" display-uri="myers-cst" /></fr:link> actually prefers the presentation in terms of indexed categories. Similarly, we construct a double category of systems which is fibred (in a certain sense) over the double category of arenas. Myers instead displays this as a <html:em>doubly indexed category</html:em> <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena} \to  \mathsf {\mathbb  Cat}]]></fr:tex>, which carries lenses to functors and charts to profunctors.
</html:p>
                    <html:p>
  In a recent paper <fr:link href="/double-operadic-systems/" title="Towards a double operadic theory of systems" uri="https://erischel.com/double-operadic-systems/" display-uri="double-operadic-systems" type="local">Reference <fr:contextual-number uri="https://erischel.com/double-operadic-systems/" display-uri="double-operadic-systems" /></fr:link>, Myers and Libkind further develop the category theory of what they term <html:em>double operadic categorical systems theory,</html:em> which again concerns notions of "composable system" which are described in terms of such doubly indexed category (although for technical reasons, they use the language of <html:em>right modules</html:em> in that paper and a somewhat different presentation, the concept is the same.)
</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>2025</fr:year>
                  <fr:month>3</fr:month>
                  <fr:day>26</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-O088/</fr:uri>
                <fr:display-uri>efr-O088</fr:display-uri>
                <fr:route>/efr-O088/</fr:route>
                <fr:title text="Markov Fibrations and Stochastic Lenses">Markov Fibrations and Stochastic Lenses</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>7</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-X0ZV/</fr:uri>
                    <fr:display-uri>efr-X0ZV</fr:display-uri>
                    <fr:route>/efr-X0ZV/</fr:route>
                    <fr:title text="Introduction">Introduction</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[Kl(\Delta )]]></fr:tex> denote the Kleisli category of the discrete (countable) distribution monad on <fr:tex display="inline"><![CDATA[\mathsf {Set}]]></fr:tex>. This is a simple setting for working with probability theory---sufficient for many applications. In order to study compositional Bayesian game theory (<fr:link href="/hedges-etal-bayesian-games/" title="Bayesian open games" uri="https://erischel.com/hedges-etal-bayesian-games/" display-uri="hedges-etal-bayesian-games" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-etal-bayesian-games/" display-uri="hedges-etal-bayesian-games" /></fr:link>, <fr:link href="/towards-cybercat/" title="Towards Foundations of Categorical Cybernetics" uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" type="local">Reference <fr:contextual-number uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" /></fr:link>) one studies the category <fr:tex display="inline"><![CDATA[\mathsf {Optic}(Kl(\Delta ))]]></fr:tex> of optics in <fr:tex display="inline"><![CDATA[Kl(\Delta )]]></fr:tex>. These have the right level of expressivity to talk about players taking random actions, and where payoff depends stochastically on players' decisions.
</html:p>
                    <html:p>
  In <fr:tex display="inline"><![CDATA[\mathsf {Optic}(Kl(\Delta )),]]></fr:tex> <fr:tex display="inline"><![CDATA[{R \choose  X} + {R \choose  Y} \cong  {R \choose  X+Y}]]></fr:tex>. Games with this codomain naturally describe the situation of a player who has a binary choice between <fr:tex display="inline"><![CDATA[X]]></fr:tex> or <fr:tex display="inline"><![CDATA[Y]]></fr:tex>. We call coproducts of this form the "good" coproducts---note that also <fr:tex display="inline"><![CDATA[{* \choose  *} + {\emptyset  \choose  *} = {\emptyset  \choose  2}]]></fr:tex>, but this is considered somewhat pathological, since it relies on the nonexistence of any morphism <fr:tex display="inline"><![CDATA[{\emptyset  \choose  X} \to  {A \choose  Y}]]></fr:tex> when <fr:tex display="inline"><![CDATA[A]]></fr:tex> and <fr:tex display="inline"><![CDATA[X]]></fr:tex> are nonempty.
</html:p>
                    <html:p>
  In order to describe this structure on <fr:tex display="inline"><![CDATA[\mathsf {Optic}(Kl(\Delta )),]]></fr:tex> it would be useful if it had all coproducts. Unfortunately this is not the case. <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathsf {Set}) = \mathsf {Lens}(\mathsf {Set})]]></fr:tex> has a well-known extension with all coproducts, given by the fiberwise opposite of the fibration <fr:tex display="inline"><![CDATA[\mathsf {Fam}(\mathsf {Set}) \to  \mathsf {Set}]]></fr:tex> (this is <fr:link href="/efr-VTPS/" title="https://erischel.com/efr-VTPS/" uri="https://erischel.com/efr-VTPS/" display-uri="efr-VTPS" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-VTPS/" display-uri="efr-VTPS" /></fr:link> in the case <fr:tex display="inline"><![CDATA[\mathcal {C} = \mathsf {Set}]]></fr:tex>). Extending this to stochastic maps would be the obvious way of constructing such a category of "dependent optics".
</html:p>
                    <html:p>
  Consider a category <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex> defined as follows. Its objects are the objects of <fr:tex display="inline"><![CDATA[\mathsf {Set}^\to ]]></fr:tex>---that is, they are indexed families of sets. A map in <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex> is a stochastic map in the base <fr:tex display="inline"><![CDATA[X \to  Y \in  Kl(\Delta )]]></fr:tex>, and a stochastic map on the total spaces <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {Y}]]></fr:tex> which is compatible with it. Note that if <fr:tex display="inline"><![CDATA[\bar {X} \to  X]]></fr:tex> is surjective, the map on the base is fully determined by the map on the fibers, which must merely satisfy the condition that the distribution of the indexing point in <fr:tex display="inline"><![CDATA[Y]]></fr:tex> depends only on the indexing point in <fr:tex display="inline"><![CDATA[X]]></fr:tex>, not the specific point in the fiber <fr:tex display="inline"><![CDATA[\bar {X}_x]]></fr:tex>.
</html:p>
                    <html:p>
  We claim <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex> is a reasonable notion of "stochastic charts". Recall that by "chart" we mean something like "lenses where both maps go forward". If stochastic <html:em>lenses</html:em> are supposed to include optics as the full subcategory spanned by the "non-dependent" objects, then the charts should include "co-optics"---that is, maps between <fr:tex display="inline"><![CDATA[X' \otimes  X \to  X]]></fr:tex> and <fr:tex display="inline"><![CDATA[Y' \otimes  Y \to  Y]]></fr:tex> should be given by the coend <fr:tex display="inline"><![CDATA[\int ^M \operatorname {\mathrm {Hom}}(X, M \otimes  Y) \times  \operatorname {\mathrm {Hom}}(X' \otimes  M, Y')]]></fr:tex></html:p>
                    <html:p>
  And in fact this is the case:  Clearly there is a map from this coend to maps in <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex>. By taking <fr:tex display="inline"><![CDATA[M = X \otimes  Y]]></fr:tex> and conditioning on <fr:tex display="inline"><![CDATA[Y]]></fr:tex>, we see this is surjective. Finally, by restricting to the support of the forwards part inside <fr:tex display="inline"><![CDATA[X \otimes  Y]]></fr:tex>, we obtain a representative for each element of the coend which is uniquely determined by <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> and <fr:tex display="inline"><![CDATA[X' \times  X \to  Y']]></fr:tex> (since the conditional is well-defined on the support).
</html:p>
                    <html:p>
  Note: This relies both on the fact that <fr:tex display="inline"><![CDATA[Kl(\Delta )]]></fr:tex> has conditionals, and on the existence of supports. We've previously seen these defined in abstract Markov categories (<fr:link href="/efr-AB57/" title="Support of a morphism" uri="https://erischel.com/efr-AB57/" display-uri="efr-AB57" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-AB57/" display-uri="efr-AB57" /></fr:link>)--supports in <fr:tex display="inline"><![CDATA[Kl(\Delta )]]></fr:tex> of a morphism <fr:tex display="inline"><![CDATA[p: A \to  B]]></fr:tex> are simply given by those <fr:tex display="inline"><![CDATA[b]]></fr:tex> so that <fr:tex display="inline"><![CDATA[p(b | a) > 0]]></fr:tex>. Note that the existence of <html:em>both</html:em> conditionals and supports is a very strong assumption---the only categories we are aware of with both properties are those whose probability distributions have a discrete character, like <fr:tex display="inline"><![CDATA[Kl(\Delta )]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathsf {FinStoch}]]></fr:tex>. Neither will be essential to the theory, but both will play a role in certain theorems---we will see more of this later.
</html:p>
                    <html:p>
  The goal of the theory of Markov fibrations is to give a notion of "fiberwise opposite" which can be applied to the codomain functor <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to  \to  Kl(\Delta )]]></fr:tex> to give a reasonable notion of "stochastic lenses". In particular, we should recover the usual category of optics in the previous case.
</html:p>
                    <html:p>
  It is clear that the codomain functor is not a (Grothendieck) fibration, since this would require <fr:tex display="inline"><![CDATA[Kl(\Delta )]]></fr:tex> to have pullbacks, which can only hold for a Cartesian Markov category. However, we can do some things. Namely, given a Cartesian (pullback) square in <fr:tex display="inline"><![CDATA[\mathsf {Set}]]></fr:tex></html:p>
                    <html:p>
                      <html:figure>
                        <fr:resource hash="41b46030f1ca3fef3d667f63069c757c">
                          <fr:resource-content>
                            <html:img src="/41b46030f1ca3fef3d667f63069c757c.svg" />
                          </fr:resource-content>
                          <fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source>
                          <fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
      \bar {A} \ar [d] \ar [r] & \bar {B} \ar [d]\\
      A \ar [r] & B
    \end {tikzcd}
  ]]></fr:resource-source>
                        </fr:resource>
                      </html:figure>
                    </html:p>
                    <html:p>
  and a map <fr:tex display="inline"><![CDATA[{\bar {X} \choose  X} \to  {\bar {B} \choose  B}]]></fr:tex> where the base map <fr:tex display="inline"><![CDATA[X \to  B]]></fr:tex> is deterministic, for each deterministic factorizing map <fr:tex display="inline"><![CDATA[X \to  A]]></fr:tex> there is a unique lift <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {A}]]></fr:tex>. In other words, the pullback over <fr:tex display="inline"><![CDATA[\mathsf {Set} \hookrightarrow  Kl(\Delta )]]></fr:tex> is a fibration---in fact, it is simply the family fibration <fr:tex display="inline"><![CDATA[\mathsf {Fam}(\mathsf {Kl}(\Delta ))]]></fr:tex>.
</html:p>
                    <html:p>
  Furthermore, if <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {B}]]></fr:tex> is itself deterministic, there is such a unique lift even without assuming that the factorization <fr:tex display="inline"><![CDATA[X \to  A]]></fr:tex> is deterministic.
</html:p>
                    <html:p>
  Moreover, we can factor any map in <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex> as such an induced map followed by a map over a deterministic base, as follows:
</html:p>
                    <html:p>
                      <html:figure>
                        <fr:resource hash="8232f78c8fea516bf6dae4020120a135">
                          <fr:resource-content>
                            <html:img src="/8232f78c8fea516bf6dae4020120a135.svg" />
                          </fr:resource-content>
                          <fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source>
                          <fr:resource-source type="latex" part="body"><![CDATA[
  \begin {tikzcd}
  \bar {X} \ar [r, dashed, bend left=10] \ar [d] & p^*\bar {X} \ar [l] \ar [r, "\phi "] \ar [d] & \bar {Y} \ar [d]\\
  X \ar [r, dashed, bend left=10] & M \ar [l, "p"] \ar [r, "p'"], & Y
  \end {tikzcd}
]]></fr:resource-source>
                        </fr:resource>
                      </html:figure>
                    </html:p>
                    <html:p>
  This gives us a hope that we can, in some way, control the category <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex> using the pullback over <fr:tex display="inline"><![CDATA[\mathsf {Set}]]></fr:tex>, which <html:em>is</html:em> a fibration, and some information somehow given by these extra maps. Note also that the diagram above is equivalent to giving: a span <fr:tex display="inline"><![CDATA[X \leftarrow  M \to  Y]]></fr:tex> and a section <fr:tex display="inline"><![CDATA[X \to  M]]></fr:tex>, which all lives in the base, and a map <fr:tex display="inline"><![CDATA[p^*\bar {X} \to  p^{'*}\bar {Y}]]></fr:tex> in the fiber over <fr:tex display="inline"><![CDATA[M]]></fr:tex>. Thus it would seem to be very amenable to fiberwise dualization.
</html:p>
                    <html:p>
  Analogous to our argument above that "co-optics" are equivalent to maps in <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ,]]></fr:tex> we can do the following:
</html:p>
                    <html:p>
  Suppose given two tuples <fr:tex display="inline"><![CDATA[(M_0,p_0,p_0',s_0,\phi _0), (M_1,p_1,p_1',s_1,\phi _1)]]></fr:tex> as above. Suppose there exists a map <fr:tex display="inline"><![CDATA[f: M_0 \to  M_1]]></fr:tex> over <fr:tex display="inline"><![CDATA[X,Y]]></fr:tex>, so that <fr:tex display="inline"><![CDATA[f s_0 = s_1]]></fr:tex>.
  Then there is a canonical map <fr:tex display="inline"><![CDATA[p_0^*\bar {X} \to  p_1^*\bar {X}]]></fr:tex> over <fr:tex display="inline"><![CDATA[f]]></fr:tex>, because pullbacks commute. If the triangle
  
  <html:figure><fr:resource hash="da549b63f0d30f06aad9eedee9868252"><fr:resource-content><html:img src="/da549b63f0d30f06aad9eedee9868252.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
      {p_0^*\bar {X}} \ar [r] \ar [dr] & {p_1^*\bar {X}} \ar [d]\\
      & \bar {Y} 
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  moreover commutes, then these two triples represent the same map in <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex></html:p>
                    <html:p>
  These equivalence relations correspond to "sliding" for <html:em>deterministic</html:em> morphisms <fr:tex display="inline"><![CDATA[M \to  M']]></fr:tex>. Note that the condition here can be checked just on the fibration <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to  \times _{Kl(\Delta )} \mathsf {Set} \to  \mathsf {Set}]]></fr:tex>.
</html:p>
                    <html:p>
  To obtain the full set of sliding equations, we will need to use stochastic maps <fr:tex display="inline"><![CDATA[M \to  M']]></fr:tex>, and thus leave that fibration behind. However, we are tantalizingly close to realizing <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex> as being presented by some sort of additional structure on the fibration <fr:tex display="inline"><![CDATA[\mathsf {Fam}(\mathsf {Kl}(\Delta ))]]></fr:tex>. (For a general monad <fr:tex display="inline"><![CDATA[T]]></fr:tex> acting on <fr:tex display="inline"><![CDATA[C]]></fr:tex>, the category <fr:tex display="inline"><![CDATA[\mathsf {Optic}_{\mathcal {C}}(Kl(T),Kl(T))]]></fr:tex>, of effectful optics up to sliding of pure morphisms, was studied by Riley in <fr:link href="/riley-optics/" title="Categories of optics" uri="https://erischel.com/riley-optics/" display-uri="riley-optics" type="local">Reference <fr:contextual-number uri="https://erischel.com/riley-optics/" display-uri="riley-optics" /></fr:link>, section 4.9, and by Hedges in <fr:link href="/hedges-blog-optics-effect/" title="Enriched Closed Lenses" uri="https://erischel.com/hedges-blog-optics-effect/" display-uri="hedges-blog-optics-effect" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-blog-optics-effect/" display-uri="hedges-blog-optics-effect" /></fr:link>)
</html:p>
                    <html:p>
  In this chapter we will indeed provide such a structure, and analyze it. In <fr:link href="/efr-2IMZ/" title="Markov Prefibrations" uri="https://erischel.com/efr-2IMZ/" display-uri="efr-2IMZ" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-2IMZ/" display-uri="efr-2IMZ" /></fr:link>, we'll axiomatise the lifting property of <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex> discussed above into a property we call a <html:em>Markov prefibration</html:em> (<fr:link href="/efr-0019/" title="Markov prefibration" uri="https://erischel.com/efr-0019/" display-uri="efr-0019" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-0019/" display-uri="efr-0019" /></fr:link>). In <fr:link href="/efr-GO6R/" title="Free Markov Prefibrations" uri="https://erischel.com/efr-GO6R/" display-uri="efr-GO6R" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-GO6R/" display-uri="efr-GO6R" /></fr:link>, we exhibit a free Markov prefibration associated to a fibration---its morphisms are precisely spans of the form seen above. Naturally, given a prefibration <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex>, its underlying fibration on <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> becomes an algebra for the monad of this adjunction. In <fr:link href="/efr-U4RA/" title="Markov Fibrations" uri="https://erischel.com/efr-U4RA/" display-uri="efr-U4RA" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-U4RA/" display-uri="efr-U4RA" /></fr:link>, we characterize the class of prefibrations which are presented by their underlying algebra in this way---these are the <html:em>Markov fibrations</html:em> (<fr:link href="/efr-HVUT/" title="Markov Fibration" uri="https://erischel.com/efr-HVUT/" display-uri="efr-HVUT" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-HVUT/" display-uri="efr-HVUT" /></fr:link>). Since the monad commutes with fiberwise opposites, this yields a notion of fiberwise opposite for Markov fibrations.
</html:p>
                    <html:p>
  Following this, we review a few properties of the theory of Markov fibrations, including the existence of coproducts in the fibration (<fr:link href="/efr-QAV2/" title="https://erischel.com/efr-QAV2/" uri="https://erischel.com/efr-QAV2/" display-uri="efr-QAV2" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-QAV2/" display-uri="efr-QAV2" /></fr:link>), the stability of Markov fibrations under limits (<fr:link href="/efr-HWAZ/" title="
  Limits of Markov fibrations
" uri="https://erischel.com/efr-HWAZ/" display-uri="efr-HWAZ" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-HWAZ/" display-uri="efr-HWAZ" /></fr:link>), and induced monoidal structures (<fr:link href="/efr-LTEL/" title="Monoidal Markov Fibrations" uri="https://erischel.com/efr-LTEL/" display-uri="efr-LTEL" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-LTEL/" display-uri="efr-LTEL" /></fr:link>). Combining these, we can prove:
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>27</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-OSH4/</fr:uri>
                        <fr:display-uri>efr-OSH4</fr:display-uri>
                        <fr:route>/efr-OSH4/</fr:route>
                        <fr:taxon>Theorem</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  There exists a (strong) symmetric monoidal functor <fr:tex display="inline"><![CDATA[\mathsf {Optic}(Kl(\Delta )) \to  \mathsf {SLens}(Kl(\Delta )^\to )]]></fr:tex> which
  <html:ol><html:li>Is fully faithful.</html:li>
    <html:li>Preserves the good coproducts.</html:li>
    <html:li>So that the image has all coproducts, and every object of the image is a coproduct of objects in <fr:tex display="inline"><![CDATA[\mathsf {Optic}(Kl(\Delta ))]]></fr:tex></html:li>
    <html:li>And so that moreover the monoidal structure on the image is distributive</html:li></html:ol></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>2025</fr:year>
                      <fr:month>3</fr:month>
                      <fr:day>26</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-2IMZ/</fr:uri>
                    <fr:display-uri>efr-2IMZ</fr:display-uri>
                    <fr:route>/efr-2IMZ/</fr:route>
                    <fr:title text="Markov Prefibrations">Markov Prefibrations</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>11</fr:month>
                          <fr:day>21</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-0045/</fr:uri>
                        <fr:display-uri>efr-0045</fr:display-uri>
                        <fr:route>/efr-0045/</fr:route>
                        <fr:taxon>Remark</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Markov categories generally do not have pullbacks, for the same reason that they usually don't have products. This issue generally hinders the construction of fibrations, in the ordinary sense, of Markov categories. However, we can go part of the way. The idea of the following definitions is that given a pullback in the deterministic category, say <fr:tex display="inline"><![CDATA[A \times _Y X]]></fr:tex>, a map <fr:tex display="inline"><![CDATA[P \to  A \times _Y X]]></fr:tex> <html:em>where the <fr:tex display="inline"><![CDATA[X]]></fr:tex>-coordinate is deterministic</html:em> should be uniquely determined by a choice of (deterministic) map <fr:tex display="inline"><![CDATA[P \to  X]]></fr:tex> and (stochastic) <fr:tex display="inline"><![CDATA[P \to  A]]></fr:tex> such that the square commutes---as we claimed above (and will see below), this holds for the Markov category of discrete probability <fr:tex display="inline"><![CDATA[Kl(\Delta )]]></fr:tex>. The analogous statement for products---that a map <fr:tex display="inline"><![CDATA[P \to  A \otimes  X]]></fr:tex> with deterministic <fr:tex display="inline"><![CDATA[X]]></fr:tex>-component is uniquely determined by the projections (or marginals) <fr:tex display="inline"><![CDATA[P \to  X, P \to  A]]></fr:tex>---is a consequence of positivity (see <fr:link href="/efr-OYB6/" title="Characterization of positivity" uri="https://erischel.com/efr-OYB6/" display-uri="efr-OYB6" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-OYB6/" display-uri="efr-OYB6" /></fr:link>), and hence holds in most Markov categories of interest.
</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>6</fr:month>
                          <fr:day>24</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-0019/</fr:uri>
                        <fr:display-uri>efr-0019</fr:display-uri>
                        <fr:route>/efr-0019/</fr:route>
                        <fr:title text="Markov prefibration">Markov prefibration</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
    Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a Markov category, and let <fr:tex display="inline"><![CDATA[p: \mathcal {D} \to  \mathcal {C}]]></fr:tex> be a functor into it.
    Then we call <fr:tex display="inline"><![CDATA[p]]></fr:tex> a <html:em>Markov prefibration</html:em> if the following two conditions hold:
    <html:ol><html:li>The pullback <fr:tex display="inline"><![CDATA[\mathcal {D} \times _\mathcal {C} \mathcal {C}_\mathrm {det} \to  \mathcal {C}_\mathrm {det}]]></fr:tex> is a (Grothendieck) fibration</html:li>
        <html:li>Given maps <fr:tex display="inline"><![CDATA[f: A \to  C]]></fr:tex>, <fr:tex display="inline"><![CDATA[g:B \to  C]]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>, such that <fr:tex display="inline"><![CDATA[p(f),p(g)]]></fr:tex> are deterministic and <fr:tex display="inline"><![CDATA[f,g]]></fr:tex> are Cartesian for the above fibration, <fr:tex display="inline"><![CDATA[p]]></fr:tex> induces a bijection between maps <fr:tex display="inline"><![CDATA[h: A \to  B \in  \mathcal {C}]]></fr:tex> such that <fr:tex display="inline"><![CDATA[gh = f]]></fr:tex>, and maps <fr:tex display="inline"><![CDATA[h': p(A) \to  p(B)]]></fr:tex> so that <fr:tex display="inline"><![CDATA[p(g)h' = p(f)]]></fr:tex>. Note that when restricted to those maps where <fr:tex display="inline"><![CDATA[p(h)]]></fr:tex> is deterministic, this being a bijection is the defining property of <fr:tex display="inline"><![CDATA[g]]></fr:tex> being Cartesian (for any <fr:tex display="inline"><![CDATA[f]]></fr:tex>, not necessarily a Cartesian one).</html:li></html:ol></html:p>
                        <html:p>
  Given a Markov prefibration <fr:tex display="inline"><![CDATA[\mathcal {D},]]></fr:tex> we write <fr:tex display="inline"><![CDATA[\mathcal {D}|_\mathrm {det}]]></fr:tex> for <fr:tex display="inline"><![CDATA[\mathcal {D} \times _\mathcal {C} \mathcal {C}_\mathrm {det}]]></fr:tex>. We will refer to this as the <html:em>deterministic part</html:em> of <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>---note that this does have the potential for confusion, as when <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> is itself a Markov category, this is not necessarily the same as the deterministic subcategory of <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>. When <fr:tex display="inline"><![CDATA[f \in  \mathcal {D}]]></fr:tex> lies inside <fr:tex display="inline"><![CDATA[\mathcal {D}|_\mathrm {det}]]></fr:tex>, and is Cartesian for that fibration, we will simply refer to it as a Cartesian map in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> (there are no other types of Cartesian maps, so this should not lead to confusion). A <html:em>morphism of Markov prefibrations</html:em> is a functor <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {D}']]></fr:tex> over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> which preserves Cartesian maps. The category of Markov prefibrations over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> thus defined is denoted <fr:tex display="inline"><![CDATA[\mathsf {MarkPreFib}(\mathcal {C})]]></fr:tex>. Taking the deterministic part defines a functor <fr:tex display="inline"><![CDATA[(-)|_\mathrm {det}: \mathsf {MarkPreFib}(\mathcal {C}) \to  \mathsf {Fib}(\mathcal {C}_\mathrm {det})]]></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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>6</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-EQ41/</fr:uri>
                        <fr:display-uri>efr-EQ41</fr:display-uri>
                        <fr:route>/efr-EQ41/</fr:route>
                        <fr:title text="On 2-category theory">On 2-category theory</fr:title>
                        <fr:taxon>Remark</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Since we will shortly be working with a number of functors between categories whose objects are themselves categories with some structure, it may be thought that we should give some consideration to the strictness of our constructions---for example, we will shortly construct a left adjoint to <fr:tex display="inline"><![CDATA[(-)|_\mathrm {det}: \mathsf {MarkPreFib}(\mathcal {C}_\mathrm {det}) \to  \mathsf {Fib}(\mathcal {C}),]]></fr:tex> and it may well be asked how strict this adjoint is, whether we need to consider the definition of <html:em>pseudomonad</html:em> when we get so far, et cetera.
</html:p>
                        <html:p>
  However, we can largely avoid this issue. The key observation is that none of our functors will alter the <html:em>objects</html:em> of the underlying category (since <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det} \to  \mathcal {C}]]></fr:tex> is identity on objects,). Hence, all the natural transformations that we would ordinarily ask to be <html:em>equivalences</html:em> of categories will instead be isomorphisms, and we can largely ignore considerations of higher category theory---similarly, all our functors will be strictly functorial. As a simple example of this, observe that the pullback functor <fr:tex display="inline"><![CDATA[(-)|_\mathrm {det}]]></fr:tex> is automatically strict---it simply consists in restriction to a subset of the morphisms in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> (which is automatically closed under composition), and thus clearly preserves composition strictly.
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>29</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-DINO/</fr:uri>
                        <fr:display-uri>efr-DINO</fr:display-uri>
                        <fr:route>/efr-DINO/</fr:route>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  In a Markov prefibration <fr:tex display="inline"><![CDATA[p: \mathcal {D} \to  \mathcal {C}]]></fr:tex> (as previously noted), a morphism <fr:tex display="inline"><![CDATA[f: \bar {X} \to  \bar {Y}]]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> is called <html:em>Cartesian</html:em> if <fr:tex display="inline"><![CDATA[p(f)]]></fr:tex> is deterministic and <fr:tex display="inline"><![CDATA[f]]></fr:tex> is Cartesian in the fibration <fr:tex display="inline"><![CDATA[\mathcal {D}|_\mathrm {det} \to  \mathcal {C}_\mathrm {det}]]></fr:tex>. It is called <html:em>vertical</html:em> if <fr:tex display="inline"><![CDATA[p(f)]]></fr:tex> is an identity. It is called a <html:em>stochastic-Cartesian</html:em> if there exists a Cartesian map <fr:tex display="inline"><![CDATA[r: \bar {Y} \to  \bar {X}]]></fr:tex> so that <fr:tex display="inline"><![CDATA[rf = 1_{\bar {X}}]]></fr:tex> (recall that in this case <fr:tex display="inline"><![CDATA[f]]></fr:tex> is uniquely determined by <fr:tex display="inline"><![CDATA[r]]></fr:tex> and <fr:tex display="inline"><![CDATA[p(f)]]></fr:tex>). Note that if <fr:tex display="inline"><![CDATA[f]]></fr:tex> is stochastic-Cartesian and <fr:tex display="inline"><![CDATA[p(f)]]></fr:tex> is deterministic, then <fr:tex display="inline"><![CDATA[f]]></fr:tex> is Cartesian.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  The introduction to this chapter contains the argument that <fr:tex display="inline"><![CDATA[Kl(\Delta )]]></fr:tex> is a Markov prefibration. This is a key motivating example.
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>8</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-CJTH/</fr:uri>
                        <fr:display-uri>efr-CJTH</fr:display-uri>
                        <fr:route>/efr-CJTH/</fr:route>
                        <fr:title text="Markov prefibrations over Cartesian base">Markov prefibrations over Cartesian base</fr:title>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a Markov category which is Cartesian (that is, one where all morphisms are deterministic). Then a Markov prefibration over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is simply a Grothendieck fibration.
</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>11</fr:month>
                          <fr:day>19</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-0044/</fr:uri>
                        <fr:display-uri>efr-0044</fr:display-uri>
                        <fr:route>/efr-0044/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
    Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a Markov category. Then <fr:tex display="inline"><![CDATA[\mathcal {C}^\to  \to  \mathcal {C}]]></fr:tex> is a Markov prefibration with Cartesian maps given by pullback squares, if and only if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is pullback-positive.
</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>11</fr:month><fr:day>19</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
    <html:p>
        Assume first <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is pullback-positive. It is clear that computing pullbacks in <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> gives the required Cartesian lifts---pullback positivity is precisely the claim that lifts exist uniquely in the definition of a Cartesian morphism (since the map to the base leg of the pullback is always deterministic in this case). Since Cartesian lifts can be taken to be deterministic (we have just constructed deterministic Cartesian lifts, and such lifts are unique up to unique isomorphism), the second condition also follows from this assumption, simply taking the other leg to be deterministic.
    </html:p>
    <html:p>
        Conversely, suppose <fr:tex display="inline"><![CDATA[\mathcal {C}^\to  \to  \mathcal {C}]]></fr:tex> is a Markov prefibration and suppose the Cartesian maps are given by the deterministic pullback squares.
        Let <fr:tex display="inline"><![CDATA[Y \to  Z]]></fr:tex> be an object of <fr:tex display="inline"><![CDATA[\mathcal {C}^\to ]]></fr:tex> and let <fr:tex display="inline"><![CDATA[X \to  Z]]></fr:tex> be a deterministic map, and form the pullback <fr:tex display="inline"><![CDATA[X \times _Z Y]]></fr:tex>, which is Cartesian. Let <fr:tex display="inline"><![CDATA[P \to  X]]></fr:tex> be deterministic and let <fr:tex display="inline"><![CDATA[P \to  Y]]></fr:tex> be any map. Expanding the latter into a map from the object <fr:tex display="inline"><![CDATA[P \to  P]]></fr:tex> to <fr:tex display="inline"><![CDATA[Y \to  Z,]]></fr:tex> the Cartesian property of the square implies there is a unique pairing <fr:tex display="inline"><![CDATA[P \to  X \times _Z Y]]></fr:tex></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>11</fr:month>
                          <fr:day>19</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-0040/</fr:uri>
                        <fr:display-uri>efr-0040</fr:display-uri>
                        <fr:route>/efr-0040/</fr:route>
                        <fr:taxon>Remark</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
    In a general Markov category, not every isomorphism is necessarily deterministic. This means that, in general, fibres over isomorphic objects in a Markov prefibration are not necessarily isomorphic or even equivalent as categories. This seemingly immoral situation is, in fact, in accordance with other results indicating that <html:em>deterministic isomorphism</html:em> is really the proper notion of identification in a Markov category. See eg <fr:link href="/rischel-fritz-infinite-products/" title="Infinite products and zero-one laws in categorical probability" uri="https://erischel.com/rischel-fritz-infinite-products/" display-uri="rischel-fritz-infinite-products" type="local">Reference <fr:contextual-number uri="https://erischel.com/rischel-fritz-infinite-products/" display-uri="rischel-fritz-infinite-products" /></fr:link>, Section 4, for further discussion of this point. (Since the basic idea of a Markov category involves objects equipped with some structure which is not preserved by all the morphisms, it is not so paradoxical that an isomorphism in this situation should be insufficient to render two objects identical).
</html:p>
                        <html:p>
    Under very weak assumptions on the Markov category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, such as positivity, all isomorphisms are deterministic. This implies that all Markov prefibrations over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> are isofibrations, and thus rules out any sort of behavior like the above. As noted, we are only concerned with positive Markov categories.
</html:p>
                        <html:p>
    Relatedly, in the proof of <fr:link href="/efr-0044/" title="https://erischel.com/efr-0044/" uri="https://erischel.com/efr-0044/" display-uri="efr-0044" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-0044/" display-uri="efr-0044" /></fr:link>, a careless prover may have erroneously concluded after the first step that all Cartesian lifts are deterministic---but since Cartesian lifts are characterized only up to <html:em>isomorphism</html:em>, not necessarily <html:em>deterministic</html:em> isomorphism, this does not automatically follow. (But of course replacing a nondeterministic lift with an isomorphic deterministic one in this situation cannot alter the unique existence of the factorization, so it does not matter).
</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>11</fr:month>
                          <fr:day>19</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-0042/</fr:uri>
                        <fr:display-uri>efr-0042</fr:display-uri>
                        <fr:route>/efr-0042/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
    Let <fr:tex display="inline"><![CDATA[p: \mathcal {D} \to  \mathcal {C}]]></fr:tex> be a <fr:link href="/efr-0019/" title="Markov prefibration" uri="https://erischel.com/efr-0019/" display-uri="efr-0019" type="local">Markov prefibration</fr:link>, let <fr:tex display="inline"><![CDATA[\mathcal {C}' \subseteq  \mathcal {C}, \mathcal {D}' \subseteq  \mathcal {D}]]></fr:tex> be full subcategories so that <fr:tex display="inline"><![CDATA[p(\mathcal {D}')]]></fr:tex> is contained in <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex>,
    and suppose <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex> is a monoidal subcategory (which is then automatically a sub-Markov category). Suppose finally <fr:tex display="inline"><![CDATA[\mathcal {D}']]></fr:tex> is stable under pullback along deterministic morphisms in <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex>. Then <fr:tex display="inline"><![CDATA[\mathcal {D}' \to  \mathcal {C}']]></fr:tex> is again a <fr:link href="/efr-0019/" title="Markov prefibration" uri="https://erischel.com/efr-0019/" display-uri="efr-0019" type="local">Markov prefibration</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>11</fr:month><fr:day>19</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
    <html:p>
        By assumption, given <fr:tex display="inline"><![CDATA[Y \in  \mathcal {D}']]></fr:tex> and <fr:tex display="inline"><![CDATA[f: X \to  p(Y) \in  \mathcal {C}']]></fr:tex>, the Cartesian lift <fr:tex display="inline"><![CDATA[X' \to  Y]]></fr:tex> is again in <fr:tex display="inline"><![CDATA[\mathcal {D}']]></fr:tex>. The fullness of the subcategory inclusions suffices to prove the existence and uniqueness of the required lifts so that this is still Cartesian after restricting. For the same reason, since we have just observed that the Cartesian lifts are the same as in <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex>, the second part of the definition also holds.
    </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>2025</fr:year>
                          <fr:month>3</fr:month>
                          <fr:day>27</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-NC7D/</fr:uri>
                        <fr:display-uri>efr-NC7D</fr:display-uri>
                        <fr:route>/efr-NC7D/</fr:route>
                        <fr:title text="\mathsf {Stoch}^\to  as Markov prefibration"><fr:tex display="inline"><![CDATA[\mathsf {Stoch}^\to ]]></fr:tex> as Markov prefibration</fr:title>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Recall that the deterministic maps in <fr:tex display="inline"><![CDATA[\mathsf {Stoch}]]></fr:tex> are those kernels valued in <fr:tex display="inline"><![CDATA[\{0,1\}]]></fr:tex>-valued measures. (And that these are <html:em>not</html:em> the same thing as the measurable maps).
  Given a pair <fr:tex display="inline"><![CDATA[f:X \to  Z, g: Y \to  Z]]></fr:tex> of such maps, we claim that the subset of <fr:tex display="inline"><![CDATA[X \times  Y]]></fr:tex> given by those points where <fr:tex display="inline"><![CDATA[f(x) = g(y)]]></fr:tex> as measures on <fr:tex display="inline"><![CDATA[Z]]></fr:tex>, equipped with the subset <fr:tex display="inline"><![CDATA[\sigma ]]></fr:tex>-algebra and its inclusions into <fr:tex display="inline"><![CDATA[X]]></fr:tex> and <fr:tex display="inline"><![CDATA[Y]]></fr:tex>, is a pullback in <fr:tex display="inline"><![CDATA[\mathsf {Stoch}_\mathrm {det}]]></fr:tex>.
</html:p>
                        <html:p>
  To see this, observe that <fr:tex display="inline"><![CDATA[\mathsf {Stoch}_\mathrm {det}]]></fr:tex> is the Kleisli category for the submonad <fr:tex display="inline"><![CDATA[G_{0,1}]]></fr:tex> of the Giry monad which takes a space to the subspace of <fr:tex display="inline"><![CDATA[0,1]]></fr:tex>-valued probability measures on it. Note that by the general theory of Markov categories this has products given by the products in <fr:tex display="inline"><![CDATA[\mathsf {Meas}]]></fr:tex>. It hence suffices to prove that the pullback of <fr:tex display="inline"><![CDATA[f \times  g: X \times  Y \to  Z \times  Z]]></fr:tex> along the diagonal <fr:tex display="inline"><![CDATA[Z \to  Z \times  Z]]></fr:tex> exists---if it does, it has the universal property of the product <fr:tex display="inline"><![CDATA[X \times _Y Z]]></fr:tex>.
</html:p>
                        <html:p>
  To see that it does (and that it's given by the space described above), note that the diagonal is a split monomorphism, so it suffices to show that <fr:tex display="inline"><![CDATA[h: P \to  X \times  Y \in  \mathsf {Stoch}_\mathrm {det}]]></fr:tex> factors over <fr:tex display="inline"><![CDATA[X \times _Y Z]]></fr:tex> if and only if the composite to <fr:tex display="inline"><![CDATA[Z \times  Z]]></fr:tex> lifts over the diagonal.
</html:p>
                        <html:p>
  Now this lift over <fr:tex display="inline"><![CDATA[Z]]></fr:tex> exists if and only if the probability of the diagonal <fr:tex display="inline"><![CDATA[\operatorname {im}(Z) \subseteq  Z \times  Z]]></fr:tex> under the composite is <fr:tex display="inline"><![CDATA[1]]></fr:tex>. By definition, it is
  <fr:tex display="block"><![CDATA[\int  f(\operatorname {im}(Z) \mid  x) g(\operatorname {im}(Z) \mid  y) h(dx,y \mid  p)]]></fr:tex>
  Since the function being integrated is an indicator, this is simply the measure of the set <fr:tex display="inline"><![CDATA[\{(x,y) : \mathbb {P}(\operatorname {im}(Z) \mid  x,y) = 1\}.]]></fr:tex>
  If the probability of the diagonal is one, clearly the two marginals agree. Conversely, since <fr:tex display="inline"><![CDATA[\mathsf {Stoch}_\mathrm {det}]]></fr:tex> is Cartesian, it must be the case that if the marginals agree the probability of the diagonal is 1. Therefore this is equal to the subset <fr:tex display="inline"><![CDATA[X \times _Z Y \subseteq  X \times  Y]]></fr:tex> described at the start. But for this to have measure <fr:tex display="inline"><![CDATA[1]]></fr:tex> for all <fr:tex display="inline"><![CDATA[p \in  P]]></fr:tex> is equivalent to the desired lifting property. This finishes the argument. 
</html:p>
                        <html:p>
  Moreover, this argument relied only on the <fr:tex display="inline"><![CDATA[0,1]]></fr:tex>-valuedness of the maps <fr:tex display="inline"><![CDATA[f,g]]></fr:tex>, not <fr:tex display="inline"><![CDATA[h: P \to  X \times  Y]]></fr:tex> or its marginals. Hence this also proves that the pullback along the diagonal is preserved by the inclusion <fr:tex display="inline"><![CDATA[\mathsf {Stoch}_\mathrm {det} \to  \mathsf {Stoch}]]></fr:tex>.
  Since <fr:tex display="inline"><![CDATA[\mathsf {Stoch}]]></fr:tex> is known to be positive, this implies <fr:tex display="inline"><![CDATA[\mathsf {Stoch}^\to  \to  \mathsf {Stoch}]]></fr:tex> is a Markov prefibration.
</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>11</fr:month>
                          <fr:day>19</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-0041/</fr:uri>
                        <fr:display-uri>efr-0041</fr:display-uri>
                        <fr:route>/efr-0041/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
    The codomain functor <fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}^\to  \to  \mathsf {BorelStoch}]]></fr:tex> is a <fr:link href="/efr-0019/" title="Markov prefibration" uri="https://erischel.com/efr-0019/" display-uri="efr-0019" type="local">Markov prefibration</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>11</fr:month><fr:day>19</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
    <html:p>
        We wish to apply <fr:link href="/efr-0042/" title="https://erischel.com/efr-0042/" uri="https://erischel.com/efr-0042/" display-uri="efr-0042" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-0042/" display-uri="efr-0042" /></fr:link>. The only thing to check is that standard Borel spaces are stable under pullbacks in <fr:tex display="inline"><![CDATA[\mathsf {Meas}]]></fr:tex>.
        But standard Borel spaces are known to be stable under products and measurable subsets, and this is enough (see eg. <fr:link href="/srivastava-borelsets/" title="A Course on Borel Sets" uri="https://erischel.com/srivastava-borelsets/" display-uri="srivastava-borelsets" type="local">Reference <fr:contextual-number uri="https://erischel.com/srivastava-borelsets/" display-uri="srivastava-borelsets" /></fr:link> propositions 3.1.23 and 3.3.15)
    </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>11</fr:month>
                          <fr:day>19</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-0043/</fr:uri>
                        <fr:display-uri>efr-0043</fr:display-uri>
                        <fr:route>/efr-0043/</fr:route>
                        <fr:taxon>Corollary</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p><fr:tex display="inline"><![CDATA[\mathsf {FinStoch}^\to  \to  \mathsf {FinStoch}]]></fr:tex> is a Markov prefibration.
</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>2025</fr:year>
                          <fr:month>3</fr:month>
                          <fr:day>29</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-8B5X/</fr:uri>
                        <fr:display-uri>efr-8B5X</fr:display-uri>
                        <fr:route>/efr-8B5X/</fr:route>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  The functor <fr:tex display="block"><![CDATA[\mathsf {Optic}(\mathsf {BorelStoch}) \to  \mathsf {BorelStoch}]]></fr:tex> is not a Markov prefibration, although its pullback over <fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}_\mathrm {det}]]></fr:tex> is a Grothendieck fibration.
</html:p>
                        <html:p>
  To see this, first consider the deterministic pullback. An optic <fr:tex display="inline"><![CDATA[\binom {A}{X} \to  \binom {B}{Y}]]></fr:tex> with deterministic base can be identified with a map <fr:tex display="inline"><![CDATA[X \otimes  B \to  A]]></fr:tex> (and the base deterministic map <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex>). To see this, first observe that the subset of <fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}(X, Y \otimes  M)]]></fr:tex> with the marginal <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> deterministic is in bijection with <fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}_\mathrm {det}(X,Y) \times  \mathsf {BorelStoch}(X,M)]]></fr:tex>, since <fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}]]></fr:tex> is positive. Hence we can calculate

  <fr:tex display="block"><![CDATA[\int ^M \mathsf {BorelStoch}_\mathrm {det}(X,Y) \times  \mathsf {BorelStoch}(X,M) \times  \mathsf {BorelStoch}(M \otimes  B, A)]]></fr:tex>
  <fr:tex display="block"><![CDATA[ \cong  \mathsf {BorelStoch}_\mathrm {det}(X,Y) \times  \mathsf {BorelStoch}(X \times  B, A),]]></fr:tex>
  using the ninja yoneda lemma as in <fr:link href="/efr-M19V/" title="https://erischel.com/efr-M19V/" uri="https://erischel.com/efr-M19V/" display-uri="efr-M19V" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-M19V/" display-uri="efr-M19V" /></fr:link>.
  
  Hence this part is a fibration with the fiber over <fr:tex display="inline"><![CDATA[X]]></fr:tex> being the coKleisli category of the <fr:tex display="inline"><![CDATA[X \times  -]]></fr:tex> monad, and the pullback functors given by reindexing these parametrized maps. The Cartesian lift of a map <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> at <fr:tex display="inline"><![CDATA[\binom {B}{Y}]]></fr:tex> is given by the optic <fr:tex display="inline"><![CDATA[\binom {B}{X} \to  \binom {B}{Y}]]></fr:tex> with unit residual and identity backwards component.
</html:p>
                        <html:p>
  Now, let <fr:tex display="inline"><![CDATA[g: I \to  \mathbb {R}]]></fr:tex> denote the standard Gaussian distribution, let <fr:tex display="inline"><![CDATA[f: \mathbb {R} \otimes  \mathbb {R} \to  \mathbb {R}]]></fr:tex> be the function given by <fr:tex display="inline"><![CDATA[f(x,y) = 0]]></fr:tex> if <fr:tex display="inline"><![CDATA[x=y]]></fr:tex> and <fr:tex display="inline"><![CDATA[y]]></fr:tex> otherwise, and consider the two optics <fr:tex display="inline"><![CDATA[\binom {\mathbb {R}}{*} \to  \binom {\mathbb {R}}{\mathbb {R}}]]></fr:tex> given by <fr:tex display="inline"><![CDATA[(I, g: I \to  \mathbb {R}, 1_\mathbb {R}: \mathbb {R} \to  \mathbb {R}), (\mathbb {R}, \mathrm {copy}_\mathbb {R} g : I \to  \mathbb {R} \otimes  \mathbb {R}, f: \mathbb {R} \otimes  \mathbb {R} \to  \mathbb {R})]]></fr:tex> (where we recall that the first argument is the residual). They cannot be equal, as postcomposition with the optic <fr:tex display="inline"><![CDATA[\binom {\mathbb {R}}{\mathbb {R}} \to  \binom {*}{*}]]></fr:tex> given by the identity <fr:tex display="inline"><![CDATA[\mathbb {R} \to  \mathbb {R}]]></fr:tex> yields, for the former, the standard Gaussian <fr:tex display="inline"><![CDATA[g: I \to  \mathbb {R}]]></fr:tex>, and for the latter, the constant zero map. But postcomposition with the projection <fr:tex display="inline"><![CDATA[\binom {\mathbb {R}}{\mathbb {R}} \to  \binom {\mathbb {R}}{*}]]></fr:tex> does give the same optic (the identity), because, for every fixed <fr:tex display="inline"><![CDATA[y \in  \mathbb {R}]]></fr:tex>, when <fr:tex display="inline"><![CDATA[x]]></fr:tex> is normally distributed, <fr:tex display="inline"><![CDATA[f(x,y) = y]]></fr:tex> with probability one. Hence the unique lifting of Cartesian maps over Cartesian maps cannot hold.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  This counterexample indicates that, although <fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}^\to ]]></fr:tex> is a Markov prefibration, we can not expect a dual version of this prefibration---in fact, since over deterministic maps <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathsf {BorelStoch})]]></fr:tex> <html:em>is</html:em> the fiberwise dual of (the restriction to trivially-indexed objects of) <fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}^\to ,]]></fr:tex> this example shows that there is <html:em>no Markov prefibration whose deterministic part is the fiberwise dual of <fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}]]></fr:tex></html:em>. Moreover, as the example indicates, this is not a mere technical issue, but an unavoidable fact about optics in general measurable spaces---even up to behavioral equivalence, they simply don't satisfy the conditions of being a Markov prefibration. (But see <fr:link href="/efr-K6NM/" title="https://erischel.com/efr-K6NM/" uri="https://erischel.com/efr-K6NM/" display-uri="efr-K6NM" type="local">Theorem <fr:contextual-number uri="https://erischel.com/efr-K6NM/" display-uri="efr-K6NM" /></fr:link>)
</html:p>
                    <html:p>
  On the other hand, we have:
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>3</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-UDS9/</fr:uri>
                        <fr:display-uri>efr-UDS9</fr:display-uri>
                        <fr:route>/efr-UDS9/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a positive Markov category with supports. Then <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C}) \to  \mathcal {C}]]></fr:tex> is a Markov prefibration.
</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>2025</fr:year><fr:month>4</fr:month><fr:day>3</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
<html:p>
  As above, we see that the deterministic part is a fibration, so take <fr:tex display="inline"><![CDATA[X \to  Y \leftarrow  Z]]></fr:tex> deterministic maps, and let <fr:tex display="inline"><![CDATA[\binom {A}{X} \to  \binom {A}{Z}]]></fr:tex> be an optic so that the induced triangle with the two Cartesian lifts to <fr:tex display="inline"><![CDATA[\binom {A}{Y}]]></fr:tex> commutes. Let the two parts be <fr:tex display="inline"><![CDATA[f: X \to  M \otimes  Y, g: M \otimes  A \to  A]]></fr:tex>. The implication is that <fr:tex display="inline"><![CDATA[X \to  M \otimes  Y \to  M]]></fr:tex> -almost surely, <fr:tex display="inline"><![CDATA[g]]></fr:tex> is equal to the projection to <fr:tex display="inline"><![CDATA[A]]></fr:tex> (and <fr:tex display="inline"><![CDATA[X \to  M \otimes  Y \to  Y]]></fr:tex> renders the triangle in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> commutative). Note that <fr:tex display="inline"><![CDATA[f]]></fr:tex> factors over the support of this map, hence we can assume the marginal <fr:tex display="inline"><![CDATA[X \to  M]]></fr:tex> has full support. Hence up to sliding equivalence, <fr:tex display="inline"><![CDATA[g]]></fr:tex> is strictly equal to the projection. This implies the lift is uniquely determined as desired.
</html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                    </fr:tree>
                    <html:p>
  The existence of supports rules out the pathological behaviour. Essentially, in the presence of supports, we can sensibly reason about "the points of measure zero" and exclude them from consideration---and <fr:link href="/efr-8MYE/" title="https://erischel.com/efr-8MYE/" uri="https://erischel.com/efr-8MYE/" display-uri="efr-8MYE" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-8MYE/" display-uri="efr-8MYE" /></fr:link> implies that the independent pairing of two measures always have the <html:em>least</html:em> "points of measure zero", and so that what can be proven equivalent under the assumption of independence will always be equivalent. By contrast, the map <fr:tex display="inline"><![CDATA[f: \mathbb {R} \times  \mathbb {R} \to  \mathbb {R}]]></fr:tex> from <fr:link href="/efr-8B5X/" title="https://erischel.com/efr-8B5X/" uri="https://erischel.com/efr-8B5X/" display-uri="efr-8B5X" type="local">Example <fr:contextual-number uri="https://erischel.com/efr-8B5X/" display-uri="efr-8B5X" /></fr:link> satisfies <fr:tex display="inline"><![CDATA[f(x,y) = y]]></fr:tex> for almost all <fr:tex display="inline"><![CDATA[x]]></fr:tex> when <fr:tex display="inline"><![CDATA[x]]></fr:tex> is normally distributed, for all <fr:tex display="inline"><![CDATA[y]]></fr:tex>, but this does not imply that for all measures on <fr:tex display="inline"><![CDATA[x,y]]></fr:tex> with this marginal, <fr:tex display="inline"><![CDATA[f(x,y)]]></fr:tex> is distributed as the marginal of <fr:tex display="inline"><![CDATA[y]]></fr:tex>.
</html:p>
                    <html:p>
  One point of view is that the map <fr:tex display="inline"><![CDATA[f]]></fr:tex> is simply pathological, and we should restrict our attention to maps that are continuous in some sense (from the point of view of computer science, one argument for this is that <html:em>computable</html:em> maps are necessarily continuous). The category <fr:tex display="inline"><![CDATA[\mathsf {TychStoch}]]></fr:tex> of Tychonoff spaces and weakly continuous kernels does indeed have supports. However, since it lacks <html:em>conditionals,</html:em> it is still not ideal from our point of view.
</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>2025</fr:year>
                      <fr:month>3</fr:month>
                      <fr:day>26</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-GO6R/</fr:uri>
                    <fr:display-uri>efr-GO6R</fr:display-uri>
                    <fr:route>/efr-GO6R/</fr:route>
                    <fr:title text="Free Markov Prefibrations">Free Markov Prefibrations</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Because every map in <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex> factors into arrows which are "induced" from arrows in <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to |_\mathrm {det}]]></fr:tex> and the Markov prefibration property, it may initially be hoped that <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex> is in some sense "free" on the data of the fibration <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to |_\mathrm {det} \to  \mathsf {Set}]]></fr:tex> and the inclusion <fr:tex display="inline"><![CDATA[\mathsf {Set} \to  Kl(\Delta )]]></fr:tex>. If that was true, we may further hope that taking the fiberwise opposite of the fibration and applying the same free generation principle would generate a good notion of stochastic lens.
</html:p>
                    <html:p>
  Unfortunately, this is not the case. We will see that the free prefibration is given by gadgets which look a bit like an indexed version of optics, up to a sliding equivalence for <html:em>deterministic</html:em> maps on the residual. This prompts us to look for some extra structure on the fibration <fr:tex display="inline"><![CDATA[\mathcal {D}|_\mathrm {det} \to  \mathcal {C}_\mathrm {det}]]></fr:tex> which describes sliding equivalences for stochastic maps on the residual. In the next section, we will see that this is exactly the structure of an Eilenberg-Moore algebra for the free prefibration monad on <fr:tex display="inline"><![CDATA[\mathsf {Fib}(\mathcal {C}_\mathrm {det})]]></fr:tex>. 
</html:p>
                    <html:p>In this section, we will give a description of the free Markov prefibration on a fibration <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \to  \mathcal {C}_{\mathrm {det}}]]></fr:tex> (assuming <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is pullback positive). There is a fairly simple description of the hom-sets, but their composition is a bit tricky, and verifying associativity even more so. Hence we will employ a technical trick: by characterizing the hom-sets as "freely generated" in a certain sense from the hom-sets in <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex>, we can identify them with sets of natural transformations using a Yoneda-type argument, and infer composition and associativity from there.</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>6</fr:month>
                          <fr:day>25</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-001I/</fr:uri>
                        <fr:display-uri>efr-001I</fr:display-uri>
                        <fr:route>/efr-001I/</fr:route>
                        <fr:title text="Indexed copresheaf">Indexed copresheaf</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
    Let <fr:tex display="inline"><![CDATA[p: \mathcal {D} \to  \mathcal {C}]]></fr:tex> be a functor. An <html:em>indexed copresheaf</html:em> on <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> is a tuple <fr:tex display="inline"><![CDATA[(X \in  \mathcal {C}, F: \mathcal {D} \to  \mathsf {Set}, \alpha : F(-) \to  \mathcal {C}(X,p(-)))]]></fr:tex> consisting of a copresheaf, an object of <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, and a natural transformation <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex> as indicated. We say the indexed copresheaf is <html:em>over</html:em> <fr:tex display="inline"><![CDATA[X]]></fr:tex>, and we will abuse the terminology by referring to <fr:tex display="inline"><![CDATA[F]]></fr:tex> itself as an indexed copresheaf, leaving the transformation <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex> implicit (for example, "let <fr:tex display="inline"><![CDATA[F]]></fr:tex> be an indexed copresheaf over <fr:tex display="inline"><![CDATA[X]]></fr:tex>").
</html:p>
                        <html:p>
    We denote the subset <fr:tex display="inline"><![CDATA[\alpha ^{-1}(\{f\}) \subseteq  F(\bar {A}),]]></fr:tex> for <fr:tex display="inline"><![CDATA[f: X \to  p(\bar {A})]]></fr:tex> by <fr:tex display="inline"><![CDATA[F(\bar {A})_f]]></fr:tex>.
</html:p>
                        <html:p>
    A map of indexed copresheaves <fr:tex display="inline"><![CDATA[(X,F,\alpha ) \to  (Y,G,\beta )]]></fr:tex> is a natural transformation <fr:tex display="inline"><![CDATA[F \to  G]]></fr:tex> and a map <fr:tex display="inline"><![CDATA[Y \to  X \in  \mathcal {C}]]></fr:tex> so that the obvious square of natural transformations commutes. We denote the category of indexed copresheaves by <fr:tex display="inline"><![CDATA[\mathsf {IcoPSh}(\mathcal {C} / \mathcal {D})]]></fr:tex>. Note that there is an obvious forgetful functor <fr:tex display="inline"><![CDATA[\mathsf {IcoPSh}(\mathcal {D} / \mathcal {C})^\mathrm {op} \to  \mathcal {C}]]></fr:tex></html:p>
                        <html:p>
    Observe that for each object <fr:tex display="inline"><![CDATA[A \in  \mathcal {D}]]></fr:tex>, there is a corepresentable copresheaf <fr:tex display="inline"><![CDATA[(p(A), \mathcal {D}(A,-), p)]]></fr:tex>. Maps between these obey the Yoneda lemma, in the sense that they are in bijection with maps between the underlying objects in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>. This defines a fully faithful functor <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathsf {IcoPSh}(\mathcal {D} / \mathcal {C})^\mathrm {op}]]></fr:tex> over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. 
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Of course, there is a dual notion of indexed presheaf, but this will not interest us.
</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>2025</fr:year>
                          <fr:month>3</fr:month>
                          <fr:day>27</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-FOJT/</fr:uri>
                        <fr:display-uri>efr-FOJT</fr:display-uri>
                        <fr:route>/efr-FOJT/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[p: \mathcal {D} \to  \mathcal {C}]]></fr:tex> be any functor and let <fr:tex display="inline"><![CDATA[\mathcal {C}_0 \to  \mathcal {C}]]></fr:tex> be an identity-on-objects functor. Write <fr:tex display="inline"><![CDATA[\mathcal {D}_0 = \mathcal {D} \times _\mathcal {C} \mathcal {C}_0]]></fr:tex> for the pullback. If <fr:tex display="inline"><![CDATA[F: \mathcal {D} \to  \mathsf {Set}]]></fr:tex> is a copresheaf indexed over <fr:tex display="inline"><![CDATA[X \in  \mathcal {C}]]></fr:tex>,
  the pullback <fr:tex display="inline"><![CDATA[\bar {A} \mapsto  F(\bar {A}) \times _{\mathcal {C}(X,p\bar {A})} \mathcal {C}_0(X,p\bar {A})]]></fr:tex> is a copresheaf on <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> indexed over <fr:tex display="inline"><![CDATA[X]]></fr:tex> again in a unique way. This defines a functor <fr:tex display="inline"><![CDATA[\mathsf {IcoPSh}(\mathcal {D} / \mathcal {C}) \to  \mathsf {IcoPSh}(\mathcal {D}_0 / \mathcal {C}_0)]]></fr:tex>. Moreover, this functor preserves the corepresentable copresheaves (since <fr:tex display="inline"><![CDATA[\mathcal {C}_0 \to  \mathcal {C}]]></fr:tex> is identity on objects, so is <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \to  \mathcal {D}]]></fr:tex>, so this statement makes sense).
</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>2025</fr:year>
                          <fr:month>3</fr:month>
                          <fr:day>27</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-FRQG/</fr:uri>
                        <fr:display-uri>efr-FRQG</fr:display-uri>
                        <fr:route>/efr-FRQG/</fr:route>
                        <fr:taxon>Corollary</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \to  \mathcal {C}_0]]></fr:tex> be a functor and let <fr:tex display="inline"><![CDATA[\mathcal {C}_0 \to  \mathcal {C}]]></fr:tex> be identity-on-objects and faithful.
  Then the pullback of the composite <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \to  \mathcal {C}]]></fr:tex> and the inclusion <fr:tex display="inline"><![CDATA[\mathcal {C}_0 \to  \mathcal {C}]]></fr:tex> is identical to <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex>.
  Therefore, <fr:link href="/efr-FOJT/" title="https://erischel.com/efr-FOJT/" uri="https://erischel.com/efr-FOJT/" display-uri="efr-FOJT" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-FOJT/" display-uri="efr-FOJT" /></fr:link> gives a functor <fr:tex display="inline"><![CDATA[\mathsf {IcoPSh}(\mathcal {D}_0 / \mathcal {C}) \to  \mathsf {IcoPSh}(\mathcal {D}_0 / \mathcal {C}_0)]]></fr:tex>.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  The idea of our construction of the free Markov prefibration is to give a certain monad on <fr:tex display="inline"><![CDATA[\mathsf {IcoPSh}(\mathcal {D}_0 / \mathcal {C})]]></fr:tex> and consider the Kleisli maps between the representable copresheaves.
</html:p>
                    <html:p>
  At this point, the notion of a deterministic map <fr:tex display="inline"><![CDATA[M \to  X]]></fr:tex> equipped with a stochastic (ie not <html:em>necessarily</html:em> deterministic) section begins playing a key role. The phrase "stochastic section" will always carry an implicit "of a deterministic map". In most cases the map that the section is a section <html:em>of</html:em> will be clear from the context.
</html:p>
                    <html:p>
  Note that, given a stochastic section <fr:tex display="inline"><![CDATA[Y \to  M]]></fr:tex> and a deterministic map <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex>, if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is <fr:link href="/efr-T3HM/" title="Pullback-positive" uri="https://erischel.com/efr-T3HM/" display-uri="efr-T3HM" type="local">pullback-positive</fr:link>, there is a unique lifting of this to a section of the projection <fr:tex display="inline"><![CDATA[Y \times _X M \to  Y]]></fr:tex>. We will use this fact several times.
</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>2025</fr:year>
                          <fr:month>3</fr:month>
                          <fr:day>27</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-Y926/</fr:uri>
                        <fr:display-uri>efr-Y926</fr:display-uri>
                        <fr:route>/efr-Y926/</fr:route>
                        <fr:title text="Stochastic Module">Stochastic Module</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a Markov category, and let <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \to  \mathcal {C}_\mathrm {det}]]></fr:tex> be a fibration.
  Then a <html:em>stochastic module</html:em> consists of
  <html:ol><html:li>An indexed copresheaf <fr:tex display="inline"><![CDATA[F = (A,F,\rho ) \in  \mathsf {IcoPSh}(\mathcal {D}_0 / \mathcal {C})]]></fr:tex></html:li>
    <html:li>For each <fr:tex display="inline"><![CDATA[\bar {X} \in  \mathcal {D}_0]]></fr:tex>, Cartesian morphism <fr:tex display="inline"><![CDATA[\bar {a}: \bar {X}_M \to  \bar {X}]]></fr:tex> lying over <fr:tex display="inline"><![CDATA[a: M \to  X]]></fr:tex>, and stochastic section <fr:tex display="inline"><![CDATA[\alpha : X \to  M]]></fr:tex>, a function <fr:tex display="inline"><![CDATA[ \alpha _*: F(\bar {X}) \to  F(\bar {X}_M)]]></fr:tex>, which acts on the underlying morphisms in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> as composition with <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex></html:li>
    <html:li>Satisfying, whenever given a commutative square of Cartesian morphisms:

      
  <html:figure><fr:resource hash="ee9d13d4f08cb72c9f286fa50f61ebf5"><fr:resource-content><html:img src="/ee9d13d4f08cb72c9f286fa50f61ebf5.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
        \begin {tikzcd}
        \bar {Y}_M \ar [r, "\bar {f}"] \ar [d, "\bar {a}"] & \bar {Y}_N \ar [d, "\bar {b}"] \\
        \bar {Y}_X \ar [r, "\bar {g}"] & \bar {Y}
        \end {tikzcd}
      ]]></fr:resource-source></fr:resource></html:figure>


      and stochastic sections <fr:tex display="inline"><![CDATA[\alpha ,\beta ]]></fr:tex> lying over <fr:tex display="inline"><![CDATA[a = p(\bar {a}), b = p(\bar {b}),]]></fr:tex> so that we have a digram in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>:

      
  <html:figure><fr:resource hash="8db0401b9bf5cc479c6d4f03a4291076"><fr:resource-content><html:img src="/8db0401b9bf5cc479c6d4f03a4291076.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
        \begin {tikzcd}
        M \ar [r, "f"] \ar [d,"a"] & N \ar [d,"b"] \\
        X \ar [r, "g"] \ar [u, "\alpha ", bend left=30] & Y \ar [u, "\beta ", bend left=30]
        \end {tikzcd}
      ]]></fr:resource-source></fr:resource></html:figure>

      Where the maps except <fr:tex display="inline"><![CDATA[\alpha ,\beta ]]></fr:tex> are deterministic, <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex> and <fr:tex display="inline"><![CDATA[\beta ]]></fr:tex> are sections of <fr:tex display="inline"><![CDATA[a]]></fr:tex> and <fr:tex display="inline"><![CDATA[b]]></fr:tex>, and both the square of deterministic maps and the square involving <fr:tex display="inline"><![CDATA[\alpha ,\beta ]]></fr:tex> commute, the condition that the square
      
  <html:figure><fr:resource hash="52399c066692cc547952bd3dfae41d15"><fr:resource-content><html:img src="/52399c066692cc547952bd3dfae41d15.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
        \begin {tikzcd}
        {F(\bar {Y}_M)} \ar [r, "F(\bar {f})"] & F(\bar {Y}_N)\\
        F(\bar {Y}_X) \ar [r, "F(\bar {g})"] \ar [u, "\alpha _*"] & F(\bar {Y}) \ar [u, "\beta _*"]
        \end {tikzcd}
      ]]></fr:resource-source></fr:resource></html:figure>

      commutes.
    </html:li>
    <html:li>
      And satisfying furthermore the equation, for every two stochastic sections <fr:tex display="inline"><![CDATA[\alpha :X \to  M,]]></fr:tex> <fr:tex display="inline"><![CDATA[\beta : M \to  N,]]></fr:tex> the equation <fr:tex display="inline"><![CDATA[(\beta \alpha )_* = \beta _*\alpha _*]]></fr:tex> (note that this makes sense because pullbacks compose).
    </html:li></html:ol></html:p>
                        <html:p>
  A morphism of stochastic modules is an indexed natural transformation which preserves the operations <fr:tex display="inline"><![CDATA[\alpha _*]]></fr:tex>. The category of stochastic modules is denoted <fr:tex display="inline"><![CDATA[\mathsf {SMod}(\mathcal {D}_0 / \mathcal {C})]]></fr:tex>. There is an apparent forgetful functor <fr:tex display="inline"><![CDATA[\mathsf {SMod}(\mathcal {D}_0 / \mathcal {C}) \to  \mathsf {IcoPSh}(\mathcal {D}_0 / \mathcal {C})]]></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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>27</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-GL6R/</fr:uri>
                        <fr:display-uri>efr-GL6R</fr:display-uri>
                        <fr:route>/efr-GL6R/</fr:route>
                        <fr:taxon>Remark</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Note that <fr:tex display="inline"><![CDATA[\alpha _*]]></fr:tex> of course depends on <fr:tex display="inline"><![CDATA[f]]></fr:tex>, not just <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex>.
</html:p>
                        <html:p>
  If <fr:tex display="inline"><![CDATA[f: M \to  X]]></fr:tex> is a deterministic map, <fr:tex display="inline"><![CDATA[\alpha :X \to  M]]></fr:tex> is a stochastic section, and <fr:tex display="inline"><![CDATA[\bar {X}_M, \bar {X}_M' \to  \bar {X}]]></fr:tex> are two Cartesian lifts of <fr:tex display="inline"><![CDATA[f]]></fr:tex> to <fr:tex display="inline"><![CDATA[\bar {X} \in  \mathcal {D}_X]]></fr:tex>, then applying the commutativity axiom for stochastic modules implies that the triangle
  
  <html:figure><fr:resource hash="4364481ca86502a72a5c18bf1272c7d7"><fr:resource-content><html:img src="/4364481ca86502a72a5c18bf1272c7d7.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    F(\bar {X}) \ar [r, "\alpha _*"] \ar [dr, "\alpha _*"] & F(\bar {X}_M) \ar [d, "\mathbin {\rotatebox [origin=c]{90}{$\sim $}}"] \\
    & F(\bar {X}_M')
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  commutes. In what follows, we will simply write <fr:tex display="inline"><![CDATA[f^*\bar {X}]]></fr:tex> for some choice of cartesian lift, and speak of <fr:tex display="inline"><![CDATA[\alpha _* : F(\bar {X}) \to  F(f^*\bar {X})]]></fr:tex>. The above shows that this is a harmless abuse---the actions <fr:tex display="inline"><![CDATA[\alpha _*]]></fr:tex> are preserved by the identification of different Cartesian lifts. In particular, we will often make arguments as if pullbacks compose strictly, although in general they only compose up to isomorphism. The above triangle means this is harmless.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  The term "stochastic module" is not very good, but this is mostly a nonce definition in any case, so we won't worry too much about it.
</html:p>
                    <html:p>
  Stochastic modules over a given <fr:tex display="inline"><![CDATA[X \in  \mathcal {C}]]></fr:tex> can be seen to be monadic over the category of indexed copresheaves over that <fr:tex display="inline"><![CDATA[X]]></fr:tex>. However, the compatibility of these local left adjoints with the structure of the rest of the category is somewhat subtle. However, we do have free stochastic modules on <html:em>representable</html:em> indexed copresheaves, as we will soon see.
</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>2025</fr:year>
                          <fr:month>3</fr:month>
                          <fr:day>27</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-2XPE/</fr:uri>
                        <fr:display-uri>efr-2XPE</fr:display-uri>
                        <fr:route>/efr-2XPE/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> be a Markov prefibration, and let <fr:tex display="inline"><![CDATA[\mathcal {D}_0 = \mathcal {D} \times _\mathcal {C} \mathcal {C}_\mathrm {det}]]></fr:tex>. Then the corepresentable copresheaf <fr:tex display="inline"><![CDATA[\mathcal {D}(\bar {A},-)]]></fr:tex>, restricted to <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex>, (but not pulled back---that is, we remember the whole set <fr:tex display="inline"><![CDATA[\mathcal {D}(\bar {A},\bar {X})]]></fr:tex>, even the part over stochastic <fr:tex display="inline"><![CDATA[f]]></fr:tex>, but only the <html:em>composition</html:em> with maps in <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex>) is a stochastic module in a canonical way, with <fr:tex display="inline"><![CDATA[\alpha _*: F(\bar {X}) \to  F(f^*\bar {X})]]></fr:tex> given by composition with the unique induced lift of <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex>. Moreover, any morphism of Markov prefibrations <fr:tex display="inline"><![CDATA[\phi : \mathcal {D} \to  \mathcal {D}']]></fr:tex> induces a homomorphism of stochastic modules <fr:tex display="inline"><![CDATA[\mathcal {D}(\bar {A},-) \to  \mathcal {D}'(\phi (\bar {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>2025</fr:year><fr:month>3</fr:month><fr:day>27</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Given <fr:tex display="inline"><![CDATA[f: M \to  X]]></fr:tex> and a stochastic section <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex>, it's clear that composition with the unique lift <fr:tex display="inline"><![CDATA[\bar {X} \to  f^*\bar {X}]]></fr:tex> is a map of the right type, so we just have to verify the equations.
    For the first equation (item 3 in the definition of stochastic module), we are comparing two maps <fr:tex display="inline"><![CDATA[F(g^*\bar {X}) \to  F(b^*\bar {X})]]></fr:tex>. These are given by composition with two maps, let's call them <fr:tex display="inline"><![CDATA[\\phi, \psi : g^*\bar {X} \to  b^*\bar {X}]]></fr:tex>. These two maps are lifts of <fr:tex display="inline"><![CDATA[f\alpha ]]></fr:tex> and <fr:tex display="inline"><![CDATA[\beta  g]]></fr:tex>, but by assumption these two are equal. Hence by the uniqueness property of Markov prefibrations, <fr:tex display="inline"><![CDATA[\phi  = \psi ]]></fr:tex>, and we have our equation. The other equation follows in a completely analogous way.
  </html:p>
  <html:p>


  To prove the homomorphism property, note that a morphism of prefibrations preserves Cartesian morphisms, and hence (by uniqueness) must preserve the unique lifts of stochastic sections. Then by functoriality it must preserve composition with these, which finishes 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>2025</fr:year>
                          <fr:month>3</fr:month>
                          <fr:day>27</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-OH7U/</fr:uri>
                        <fr:display-uri>efr-OH7U</fr:display-uri>
                        <fr:route>/efr-OH7U/</fr:route>
                        <fr:taxon>Lemma</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:ol><html:li>
    Let <fr:tex display="inline"><![CDATA[\bar {X} \in  \mathcal {D}_0]]></fr:tex> be an object. Then there is a free stochastic module <fr:tex display="inline"><![CDATA[T\mathcal {D}_0(\bar {X},-)]]></fr:tex> on its representable copresheaf, in the sense that if <fr:tex display="inline"><![CDATA[F]]></fr:tex> is another stochastic module, homomorphisms <fr:tex display="inline"><![CDATA[T\mathcal {D}_0(\bar {X},-) \to  F]]></fr:tex> are in bijection with indexed natural transformations <fr:tex display="inline"><![CDATA[\mathcal {D}_0(\bar {X},-) \to  F]]></fr:tex></html:li>
  <html:li>The free stochastic module on a corepresentable presheaf is given as follows: an element of <fr:tex display="inline"><![CDATA[T\mathcal {D}_0(\bar {X},-)(\bar {Y})]]></fr:tex> consists of a diagram in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> of the form
    
  <html:figure><fr:resource hash="e0e1a55e9553273879b5ba4bf43c5b54"><fr:resource-content><html:img src="/e0e1a55e9553273879b5ba4bf43c5b54.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
      \begin {tikzcd}
      & M \ar [dr, "f"] \ar [dl, "g"] &\\
      X \ar [ur, "s", bend left=20] & & Y 
      \end {tikzcd}
    ]]></fr:resource-source></fr:resource></html:figure>

    (where <fr:tex display="inline"><![CDATA[X = p(\bar {X}), Y = p(\bar {Y})]]></fr:tex>,) where <fr:tex display="inline"><![CDATA[fs = 1_X]]></fr:tex> and <fr:tex display="inline"><![CDATA[f,g]]></fr:tex> are deterministic, plus a map <fr:tex display="inline"><![CDATA[f^*\bar {X} \to  \bar {Y}]]></fr:tex> lying over <fr:tex display="inline"><![CDATA[g]]></fr:tex>. This is up to the equivalence relation which, given some other such tuple, identifies them whenever there exists deterministic <fr:tex display="inline"><![CDATA[h: N \to  M]]></fr:tex> as in this diagram:

    
  <html:figure><fr:resource hash="42d4d22ca9a63a8eb04bd91ac09e2e11"><fr:resource-content><html:img src="/42d4d22ca9a63a8eb04bd91ac09e2e11.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
      \begin {tikzcd}
      & N \ar [ddl, swap, "{f'}"] \ar [d, "h"] \ar [ddr] & \\
      & M \ar [dl, "f"] \ar [dr] & \\ 
      X \ar [ruu, bend left=30, "{s'}"] \ar [ru, bend right=30, swap, "s"] & & Y
      \end {tikzcd}
    ]]></fr:resource-source></fr:resource></html:figure>


    so that the two deterministic triangles commute, <fr:tex display="inline"><![CDATA[hs' = s,]]></fr:tex> and so that the unique Cartesian map <fr:tex display="inline"><![CDATA[f'^*\bar {X} \to  f^*\bar {X}]]></fr:tex> over <fr:tex display="inline"><![CDATA[h]]></fr:tex> forms a commutative triangle with the two maps to <fr:tex display="inline"><![CDATA[\bar {Y}]]></fr:tex>. (Note that we do not claim the relation just described is inherently an equivalence relation, rather we form the equivalence relation generated by this). It is clear how a map <fr:tex display="inline"><![CDATA[\bar {Y} \to  \bar {Z}]]></fr:tex> acts on this to make it a copresheaf. It is indexed by taking a tuple as above to the composite <fr:tex display="inline"><![CDATA[X \to  M \to  Y]]></fr:tex>. Given <fr:tex display="inline"><![CDATA[N \to  Y]]></fr:tex> with a stochastic section <fr:tex display="inline"><![CDATA[s': Y \to  N,]]></fr:tex>, and an element of <fr:tex display="inline"><![CDATA[T\mathcal {D}_0(\bar {X},-)(\bar {Y}),]]></fr:tex> the induced element in <fr:tex display="inline"><![CDATA[T\mathcal {D}_0(\bar {X},-)(s'^*\bar {Y})]]></fr:tex> is given by forming the pullback <fr:tex display="inline"><![CDATA[M \times _Y N,]]></fr:tex> taking the pullback of the map over <fr:tex display="inline"><![CDATA[g]]></fr:tex> to one lying over the projection <fr:tex display="inline"><![CDATA[M \times _Y N \to  N,]]></fr:tex> and composing the section <fr:tex display="inline"><![CDATA[s]]></fr:tex> with the induced lift <fr:tex display="inline"><![CDATA[M \to  M \times _Y N]]></fr:tex>
    
  <html:figure><fr:resource hash="2f58a9c493053fa46ce49c4b2e2d33e1"><fr:resource-content><html:img src="/2f58a9c493053fa46ce49c4b2e2d33e1.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
      \begin {tikzcd}
      & & M \times _Y N \ar [dr] \ar [dl] & \\
      & M \ar [dr] \ar [dl] \ar [ur, bend left=20] & & N\ar [dl] \\
      X \ar [ur, bend left=20] & & Y \ar [ur, bend left=20]& \\
      \end {tikzcd}
    ]]></fr:resource-source></fr:resource></html:figure></html:li>
  <html:li>The underlying copresheaf of this respects Cartesian maps in <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \to  \mathcal {C}_\mathrm {det}]]></fr:tex>, in the sense that given a Cartesian map <fr:tex display="inline"><![CDATA[\bar {A} \to  \bar {B}]]></fr:tex> and an element <fr:tex display="inline"><![CDATA[\phi  \in  T\mathcal {D}_0(\bar {X},-)(\bar {B})]]></fr:tex> lying over a deterministic map <fr:tex display="inline"><![CDATA[X \to  B,]]></fr:tex> the natural map from lifts <fr:tex display="inline"><![CDATA[\psi  \in  T\mathcal {D}_0(\bar {X},-)(\bar {A})]]></fr:tex> to lifts <fr:tex display="inline"><![CDATA[X \to  A]]></fr:tex> is a bijection.</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>2025</fr:year><fr:month>3</fr:month><fr:day>27</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
<html:p>
  First, we have to verify the equations of a stochastic module for <fr:tex display="inline"><![CDATA[T\mathcal {D}_0(\overline {X},-)]]></fr:tex>. For the first case, suppose we are given a square
  
  <html:figure><fr:resource hash="3195df3de083eca61d6b9d797f63de6e"><fr:resource-content><html:img src="/3195df3de083eca61d6b9d797f63de6e.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    N \ar [r] \ar [d] & W \ar [d]\\
    Y \ar [r] \ar [u, bend left, "\alpha "] & Z \ar [u, bend left, "\beta "]
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>


  with all but the upwards maps stochastic. Now let <fr:tex display="inline"><![CDATA[\bar {Z}]]></fr:tex> be some object over <fr:tex display="inline"><![CDATA[Z]]></fr:tex> and suppose we are given an element of <fr:tex display="inline"><![CDATA[T\mathcal {D}_0(\bar {X}, \bar {Z}_Y)]]></fr:tex>, represented by a span
  <fr:tex display="inline"><![CDATA[X \leftarrow  M \to  Y]]></fr:tex>, a section <fr:tex display="inline"><![CDATA[X \to  M]]></fr:tex> and a map <fr:tex display="inline"><![CDATA[\phi : \bar {X}_M \to  \bar {Z}_M]]></fr:tex> over <fr:tex display="inline"><![CDATA[M]]></fr:tex>. 
  
  Consider then the below diagram:

  
  <html:figure><fr:resource hash="6966a2d5f6fb9145bf439a32fb810f5e"><fr:resource-content><html:img src="/6966a2d5f6fb9145bf439a32fb810f5e.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	&& {M \times _Z W} \\
	&& {M \times _Y N} \\
	& M && N \\
	X && Y && W \\
	&&& {Z,}
	\arrow [from=1-3, to=3-2]
	\arrow [from=1-3, to=4-5]
	\arrow [from=2-3, to=1-3]
	\arrow [from=2-3, to=3-2]
	\arrow [from=2-3, to=3-4]
	\arrow [shift left=3, curve={height=-12pt}, from=3-2, to=1-3]
	\arrow [curve={height=-6pt}, from=3-2, to=2-3]
	\arrow [from=3-2, to=4-1]
	\arrow [from=3-2, to=4-3]
	\arrow [from=3-4, to=4-3]
	\arrow [from=3-4, to=4-5]
	\arrow [curve={height=-6pt}, from=4-1, to=3-2]
	\arrow [curve={height=-6pt}, from=4-3, to=3-4]
	\arrow [from=4-3, to=5-4]
	\arrow [from=4-5, to=5-4]
	\arrow [curve={height=-6pt}, from=5-4, to=4-5]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>


  By definition, the first of the two possible elements of <fr:tex display="inline"><![CDATA[T\mathcal {D}_0(\bar {Z}_W)]]></fr:tex> are given by either forming the pullback <fr:tex display="inline"><![CDATA[M \times _Y N]]></fr:tex>, taking the lift of <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex> to <fr:tex display="inline"><![CDATA[M \to  M \times _Y N]]></fr:tex> and composing to get a section <fr:tex display="inline"><![CDATA[X \to  M \times _Y N]]></fr:tex>, and pulling back <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex> along the projection to get a map <fr:tex display="inline"><![CDATA[\bar {X}_{M \times _Y N} \to  \bar {Z}_{M \times _Y N}]]></fr:tex>, then taking the span <fr:tex display="inline"><![CDATA[X \leftarrow  M \times _Y N \to  W]]></fr:tex>.
  The second is given by first composing with the map <fr:tex display="inline"><![CDATA[Y \to  Z]]></fr:tex>, then applying the above procedure with the pullback <fr:tex display="inline"><![CDATA[M \times _Z W]]></fr:tex>. The induced map <fr:tex display="inline"><![CDATA[M \times _Y N \to  M \times _Z W]]></fr:tex> exhibits the equality of these two under the equivalence relation defining <fr:tex display="inline"><![CDATA[T\mathcal {D}_0(\bar {X},-)]]></fr:tex> (commutativity of the bottom-right square implies that triangle of stochastic sections commutes.)
</html:p>

<html:p>
  Given some other stochastic module <fr:tex display="inline"><![CDATA[F]]></fr:tex> over <fr:tex display="inline"><![CDATA[A]]></fr:tex> with a map of indexed copresheaves <fr:tex display="inline"><![CDATA[\mathcal {D}_0(\bar {X},-) \to  F,]]></fr:tex> over <fr:tex display="inline"><![CDATA[A \to  X]]></fr:tex>, there is at most one extension to a map of stochastic presheaves <fr:tex display="inline"><![CDATA[T\mathcal {D}_0(\bar {X},-) \to  F]]></fr:tex> over <fr:tex display="inline"><![CDATA[A \to  X]]></fr:tex>---given an element with representative <fr:tex display="inline"><![CDATA[(s:X \to  M, X \leftarrow  M \to  Y, \bar {X}_M \to  \bar {Y}_M),]]></fr:tex> it must go to the identity element of <fr:tex display="inline"><![CDATA[F(\bar {X}),]]></fr:tex> acted on by the stochastic section <fr:tex display="inline"><![CDATA[s]]></fr:tex> to produce an element of <fr:tex display="inline"><![CDATA[F(\bar {X}_M),]]></fr:tex> followed by <fr:tex display="inline"><![CDATA[F]]></fr:tex> applied to the map <fr:tex display="inline"><![CDATA[\bar {X}_M \to  \bar {Y}]]></fr:tex> over <fr:tex display="inline"><![CDATA[M \to  Y]]></fr:tex>.
</html:p>
<html:p>
  But it is not hard to see that the equivalence relation imposed by <fr:tex display="inline"><![CDATA[T\mathcal {D}_0(\bar {X},-)]]></fr:tex> is implied by the equations of a stochastic module, and so this map is well-defined, establishing the property.
</html:p>
<html:p>
  Secondly, let <fr:tex display="inline"><![CDATA[\bar {A} \to  \bar {B}]]></fr:tex> be a Cartesian map over <fr:tex display="inline"><![CDATA[A \to  B,]]></fr:tex> and take a commutative triangle
  
  <html:figure><fr:resource hash="7af6ba69d08ca3ed8e06b8a1b3361b07"><fr:resource-content><html:img src="/7af6ba69d08ca3ed8e06b8a1b3361b07.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    & A \ar [d]\\
    X \ar [ur] \ar [r] & B
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  of deterministic maps. Finally take an element of <fr:tex display="inline"><![CDATA[T\mathcal {D}_0(\bar {X},-)(\bar {B})]]></fr:tex> over the given map <fr:tex display="inline"><![CDATA[X \to  B]]></fr:tex>. We must show it has a unique lift to <fr:tex display="inline"><![CDATA[A]]></fr:tex> over the given map <fr:tex display="inline"><![CDATA[X \to  A]]></fr:tex>.
  Let us take a representative given by a diagram:
  
  <html:figure><fr:resource hash="3d44c21827a78bcc7e75245a129d0bd7"><fr:resource-content><html:img src="/3d44c21827a78bcc7e75245a129d0bd7.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    & M \ar [dl] \ar [dr] &\\
    X \ar [ru, bend left=30] \ar [rr, dashed] & & B
    \end {tikzcd} 
  ]]></fr:resource-source></fr:resource></html:figure>

  First, note that the two maps <fr:tex display="inline"><![CDATA[M \to  X \to  B]]></fr:tex> and <fr:tex display="inline"><![CDATA[M \to  B]]></fr:tex> do not necessarily agree. However, we can remedy this by replacing <fr:tex display="inline"><![CDATA[M]]></fr:tex> by their equalizer---note that as we argued above, this gives an equivalent element of the stochastic module. (By writing their equalizer in <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> as the split pullback <fr:tex display="inline"><![CDATA[M \times _{B \times  B} B,]]></fr:tex> we can see that the section factors over this, even if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> does not have all equalizers in general). Hence we can assume the triangle formed by adding the dashed arrow commutes.
</html:p>
<html:p>
  Since <fr:tex display="inline"><![CDATA[M \to  B]]></fr:tex> now factors over <fr:tex display="inline"><![CDATA[X]]></fr:tex>, the lift <fr:tex display="inline"><![CDATA[X \to  A]]></fr:tex> gives a lift <fr:tex display="inline"><![CDATA[M \to  A]]></fr:tex>. Now by the Cartesian property of <fr:tex display="inline"><![CDATA[\bar {A} \to  \bar {B}]]></fr:tex>, there is a unique lift of <fr:tex display="inline"><![CDATA[p^*\bar {X} \to  \bar {B}]]></fr:tex> to this map (here we just use the fact that <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> is a fibration). This gives the desired lift.
</html:p>
<html:p>
  Finally, given two distinct lifts (again, we can assume their maps <fr:tex display="inline"><![CDATA[M \to  A]]></fr:tex> factor over <fr:tex display="inline"><![CDATA[X]]></fr:tex>,) clearly any map <fr:tex display="inline"><![CDATA[N \to  M]]></fr:tex> witnessing an identity between their composites <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {Y}]]></fr:tex> would likewise exhibit an identity between their lifts (since pullbacks compose). This proves uniqueness, and finishes the proof.
</html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                    </fr:tree>
                    <html:p>
  We are now ready to prove the main proposition of this section:
</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>2025</fr:year>
                          <fr:month>3</fr:month>
                          <fr:day>27</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-LGOA/</fr:uri>
                        <fr:display-uri>efr-LGOA</fr:display-uri>
                        <fr:route>/efr-LGOA/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a <fr:link href="/efr-T3HM/" title="Pullback-positive" uri="https://erischel.com/efr-T3HM/" display-uri="efr-T3HM" type="local">pullback-positive</fr:link> Markov category and let <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \to  \mathcal {C}_\mathrm {det}]]></fr:tex> be a fibration. Consider the full subcategory of stochastic modules spanned by the free modules on the corepresentables. Denote the opposite of this category <fr:tex display="inline"><![CDATA[\bar {\mathcal {D}_0}]]></fr:tex>. Clearly there is a commutative diagram
  
  <html:figure><fr:resource hash="241c6e6dcb2f9418c9c542d60e6b362d"><fr:resource-content><html:img src="/241c6e6dcb2f9418c9c542d60e6b362d.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    \mathcal {D}_0 \ar [d] \ar [r] & \bar {\mathcal {D}_0} \ar [d]\\
    \mathcal {C}_\mathrm {det} \ar [r] & \mathcal {C}
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  We claim:
</html:p>
                        <html:ol><html:li><fr:tex display="inline"><![CDATA[\bar {\mathcal {D}_0} \to  \mathcal {C}]]></fr:tex> is a Markov prefibration.
  </html:li>
  <html:li>
    There is a bijection <fr:tex display="inline"><![CDATA[\bar {\mathcal {D}_0}(\bar {A},-) \cong  T(\mathcal {D}_0(\bar {A},-))]]></fr:tex>. When the left-hand side is equipped with the canonical stochastic module structure, and the right is equipped with the free one, this is moreover a homomorphism (hence isomorphism) of stochastic modules.
  </html:li>
  <html:li><fr:tex display="inline"><![CDATA[\bar {\mathcal {D}_0} \to  \mathcal {C}]]></fr:tex> is initial among Markov prefibrations receiving a map from <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex>. In other words, this construction gives a left adjoint to the pullback functor <fr:tex display="inline"><![CDATA[\mathsf {MarkPreFib}(\mathcal {C}) \to  \mathsf {Fib}(\mathcal {C}_\mathrm {det})]]></fr:tex></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>2025</fr:year>
                              <fr:month>3</fr:month>
                              <fr:day>27</fr:day>
                            </fr:date>
                            <fr:uri>https://erischel.com/efr-0BES/</fr:uri>
                            <fr:display-uri>efr-0BES</fr:display-uri>
                            <fr:route>/efr-0BES/</fr:route>
                            <fr:taxon>Proof</fr:taxon>
                          </fr:frontmatter>
                          <fr:mainmatter>
                            <html:p>
  First observe that, by <fr:link href="/efr-OH7U/" title="https://erischel.com/efr-OH7U/" uri="https://erischel.com/efr-OH7U/" display-uri="efr-OH7U" type="local">Lemma <fr:contextual-number uri="https://erischel.com/efr-OH7U/" display-uri="efr-OH7U" /></fr:link>, the pullback <fr:tex display="inline"><![CDATA[\bar {\mathcal {D}_0}\times _\mathcal {C} \mathcal {C}_\mathrm {det} \to  \mathcal {C}_\mathrm {det}]]></fr:tex> is indeed a fibration, with the image of the Cartesian lifts under the functor <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \to  \bar {\mathcal {D}_0}]]></fr:tex> being Cartesian again. (This also establishes that <fr:tex display="inline"><![CDATA[\bar {\mathcal {D}_0}]]></fr:tex> really does receive a map of fibrations from <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex>)
</html:p>
                            <html:p>
  Given Cartesian <fr:tex display="inline"><![CDATA[f: \bar {A} \to  \bar {B} \leftarrow  \bar {C}]]></fr:tex>, and a stochastic lift <fr:tex display="inline"><![CDATA[A \to  C (= p\bar {A} \to  p\bar {C}),]]></fr:tex> consider the pullback <fr:tex display="inline"><![CDATA[A \times _B C]]></fr:tex>, and the pullback of <fr:tex display="inline"><![CDATA[\bar {A}]]></fr:tex> to it. There is a unique lift of <fr:tex display="inline"><![CDATA[A \to  C]]></fr:tex> to a section <fr:tex display="inline"><![CDATA[A \to  A \times _B C]]></fr:tex>, and this induces a unique lift <fr:tex display="inline"><![CDATA[\bar {A} \to  (f\pi _1)^*\bar {A}]]></fr:tex> using the stochastic module structure. The composite of this with the projection to <fr:tex display="inline"><![CDATA[B]]></fr:tex> is a lift of <fr:tex display="inline"><![CDATA[\bar {A \to  \bar {B}}]]></fr:tex> over <fr:tex display="inline"><![CDATA[A \to  C]]></fr:tex>, as required by a Markov prefibration.
</html:p>
                            <html:p>
  Analogously to the proof of <fr:link href="/efr-OH7U/" title="https://erischel.com/efr-OH7U/" uri="https://erischel.com/efr-OH7U/" display-uri="efr-OH7U" type="local">Lemma <fr:contextual-number uri="https://erischel.com/efr-OH7U/" display-uri="efr-OH7U" /></fr:link>, given some other lift <fr:tex display="inline"><![CDATA[A \leftarrow  N \to  C, h: A \to  N, h^*\bar {A} \to  \bar {C}]]></fr:tex>, the fact this is a factorization implies the existence of some <fr:tex display="inline"><![CDATA[M]]></fr:tex> with maps <fr:tex display="inline"><![CDATA[M \to  A, M \to  N]]></fr:tex> and a lift <fr:tex display="inline"><![CDATA[A \to  M]]></fr:tex> of the section <fr:tex display="inline"><![CDATA[A \to  N]]></fr:tex>, so that the induced map between the pullbacks over <fr:tex display="inline"><![CDATA[M]]></fr:tex> and <fr:tex display="inline"><![CDATA[N]]></fr:tex> of <fr:tex display="inline"><![CDATA[\bar {A}]]></fr:tex> makes the triangle into <fr:tex display="inline"><![CDATA[\bar {B}]]></fr:tex> commute. But then since this is a triangle over <html:em>deterministic</html:em> bases, this implies the lifted triangle to <fr:tex display="inline"><![CDATA[\bar {C}]]></fr:tex> also commutes, hence this <fr:tex display="inline"><![CDATA[M]]></fr:tex> lifts to another representative of the lift we started with. But then it's not hard to see that this <fr:tex display="inline"><![CDATA[M]]></fr:tex> maps to <fr:tex display="inline"><![CDATA[A \times _B C]]></fr:tex> and exhibits an equation with the previously constructed "canonical" lift.
</html:p>
                            <html:p>
  Hence <fr:tex display="inline"><![CDATA[\bar {\mathcal {D}_0}]]></fr:tex> is a Markov prefibration, and by the above, the induced stochastic module structure on the corepresentable presheaves <fr:tex display="inline"><![CDATA[\bar {\mathcal {D}_0}(\bar {A},-) = T(\mathcal {D}_0(\bar {A},-))]]></fr:tex> is exactly the one given by <fr:tex display="inline"><![CDATA[T]]></fr:tex> (in other words this equation is not merely a bijection of sets, but an isomorphism of stochastic modules).
</html:p>
                            <html:p>
  Let <fr:tex display="inline"><![CDATA[\phi : \mathcal {D}_0 \to  \mathcal {D}']]></fr:tex> be a functor over <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det} \to  \mathcal {C}]]></fr:tex> into some other Markov prefibration which preserves Cartesian maps. Using the algebra structure on <fr:tex display="inline"><![CDATA[\mathcal {D}'(\phi \bar {B},-),]]></fr:tex> we see there is a unique extension of <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex> to <fr:tex display="inline"><![CDATA[\bar {\mathcal {D}_0}(\bar {X},-)]]></fr:tex> which respects the stochastic module structure. By chasing the diagram around it's easy to see that this is functorial, and hence gives a map of Markov prefibrations---conversely, any such map extending <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex> must be a stochastic module homomorphism. Thus there is a unique functor, proving initiality.
</html:p>
                          </fr:mainmatter>
                        </fr:tree>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  This characterization of the left adjoint makes it fairly easy to understand the induced monad on <fr:tex display="inline"><![CDATA[\mathsf {Fib}(\mathcal {C}_\mathrm {det})]]></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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>28</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-ACIV/</fr:uri>
                        <fr:display-uri>efr-ACIV</fr:display-uri>
                        <fr:route>/efr-ACIV/</fr:route>
                        <fr:taxon>Remark</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  We will sometimes refer to the morphisms of <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}_0}]]></fr:tex> as <html:em>precharts</html:em>. Taking the fibration <fr:tex display="inline"><![CDATA[\mathcal {C}^\to |_\mathrm {det} \to  \mathcal {C}_\mathrm {det}]]></fr:tex> as an example, it is not too hard to see that the precharts between <fr:tex display="inline"><![CDATA[X \otimes  A \to  X]]></fr:tex> and <fr:tex display="inline"><![CDATA[B \otimes  Y \to  Y]]></fr:tex> are representatives of co-optics <fr:tex display="inline"><![CDATA[{A \choose  X} \rightrightarrows  {B \choose  Y}]]></fr:tex>. (To see this, note that any prechart is equivalent to one where the apex of the span has the form <fr:tex display="inline"><![CDATA[M \otimes  Y]]></fr:tex> and the right leg is the projection to <fr:tex display="inline"><![CDATA[Y]]></fr:tex>. Then the rest of the data is a map <fr:tex display="inline"><![CDATA[X \to  M \otimes  Y]]></fr:tex> and a map <fr:tex display="inline"><![CDATA[M \otimes  B \to  A]]></fr:tex>, since the <fr:tex display="inline"><![CDATA[X]]></fr:tex>-coordiante of the latter map is determined by the span).
  
</html:p>
                        <html:p>In fact their equivalence relation is given by sliding equivalence for <html:em>deterministic</html:em> maps (i.e morphisms in <fr:tex display="inline"><![CDATA[\mathsf {Optic}_{\mathcal {C}_\mathrm {det}}(\mathcal {C}_\mathrm {det}, \mathcal {C})]]></fr:tex>). The precharts in <fr:tex display="inline"><![CDATA[\mathcal {D}_0^\mathrm {fop}]]></fr:tex> will be called <html:em>prelenses</html:em>. We will speak of the tuple
  <fr:tex display="block"><![CDATA[(M, p:M \to  X, p':M \to  Y, s: X \to  M, \phi : p^*\bar {X} \to  p^*\bar {Y})]]></fr:tex>
  representing a prechart just as a "decorated span (representing ...)". When part of the structure is understood, or can just be left abstracted, we will denote such a decorated span simply by <fr:tex display="inline"><![CDATA[(M,s,\phi ),]]></fr:tex> or even just <fr:tex display="inline"><![CDATA[(M,\phi )]]></fr:tex>. It will be clear from context which part of the structure is being specified.
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>7</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-A08L/</fr:uri>
                        <fr:display-uri>efr-A08L</fr:display-uri>
                        <fr:route>/efr-A08L/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> be a fibration. Then the underlying fibration of the free Markov prefibration, <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}_0}|_\mathrm {det},]]></fr:tex> has fiber over <fr:tex display="inline"><![CDATA[X \in  \mathcal {C}]]></fr:tex> given by
</html:p>
                        <html:ol><html:li>Objects are simply objects of <fr:tex display="inline"><![CDATA[\mathcal {D}_{0,X}]]></fr:tex></html:li>
  <html:li>A morphism <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {X}']]></fr:tex> consists of a deterministic <fr:tex display="inline"><![CDATA[f: M \to  X]]></fr:tex>, a stochastic section <fr:tex display="inline"><![CDATA[s: X \to  M,]]></fr:tex> and a map <fr:tex display="inline"><![CDATA[\phi : f^*\bar {X} \to  f^*\bar {X}']]></fr:tex>, up to the equivalence relation generated by, whenever <fr:tex display="inline"><![CDATA[g: N \to  M]]></fr:tex> is deterministic and <fr:tex display="inline"><![CDATA[s': X \to  N]]></fr:tex> is a factorization of <fr:tex display="inline"><![CDATA[s]]></fr:tex>, identifying <fr:tex display="inline"><![CDATA[(M,f,s,\phi )]]></fr:tex> with <fr:tex display="inline"><![CDATA[(N,fg, s', g^*(\phi ))]]></fr:tex>.</html:li>
  <html:li>Given two such morphisms <fr:tex display="inline"><![CDATA[(M,f,s,\phi ), (N,f',s',\psi )]]></fr:tex>, their composite is represented by <fr:tex display="inline"><![CDATA[M \times _X N \to  X]]></fr:tex> equipped with the section formed as the composite of <fr:tex display="inline"><![CDATA[X \to  M]]></fr:tex> and the lift of <fr:tex display="inline"><![CDATA[X \to  N]]></fr:tex> to the pullback, and the composite <fr:tex display="inline"><![CDATA[\pi _M^*(\phi )\pi _N^*(\psi ) \in  \mathcal {D}_{0,M\times _X N}]]></fr:tex></html:li>
  <html:li>Given deterministic <fr:tex display="inline"><![CDATA[f: X \to  Y]]></fr:tex>, the pullback is given on such a map by taking the pullback <fr:tex display="inline"><![CDATA[M \times _Y X \to  X,]]></fr:tex> the induced section, and the pullback of the map <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex> along the projection <fr:tex display="inline"><![CDATA[M \times _Y X \to  M]]></fr:tex></html:li></html:ol>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  It is immediately obvious that we have:
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>7</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-ILIQ/</fr:uri>
                        <fr:display-uri>efr-ILIQ</fr:display-uri>
                        <fr:route>/efr-ILIQ/</fr:route>
                        <fr:taxon>Corollary</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  The free Markov prefibration monad <fr:tex display="inline"><![CDATA[\overline {(-)}|_\mathrm {det}]]></fr:tex> commutes with fiberwise opposites. In particular, algebra structures on <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> are in bijection with algebra structures on <fr:tex display="inline"><![CDATA[\mathcal {D}_0^\mathrm {fop},]]></fr:tex> and fiberwise opposites lifts to an involution of <fr:tex display="inline"><![CDATA[\mathsf {Alg}(\overline {(-)}|_\mathrm {det})]]></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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>25</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-OEFJ/</fr:uri>
                        <fr:display-uri>efr-OEFJ</fr:display-uri>
                        <fr:route>/efr-OEFJ/</fr:route>
                        <fr:title text="Stochastic Module Fibration">Stochastic Module Fibration</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a pullback-positive Markov category.
  The adjunction <fr:tex display="inline"><![CDATA[\overline {(-)} \dashv  (-)|_\mathrm {det}]]></fr:tex> induces a monad on <fr:tex display="inline"><![CDATA[\mathsf {Fib}(\mathcal {C}_\mathrm {det})]]></fr:tex>.
  A module for this monad is called a <html:em>stochastic module over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex></html:em> (or, to distinguish it from the copresheaves of <fr:link href="/efr-Y926/" title="Stochastic Module" uri="https://erischel.com/efr-Y926/" display-uri="efr-Y926" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-Y926/" display-uri="efr-Y926" /></fr:link>, a stochastic module fibration).
  The category of stochastic module fibrations is denoted <fr:tex display="inline"><![CDATA[\mathsf {SFib}(\mathcal {C})]]></fr:tex></html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Let us try to understand the structure of a stochastic module fibration. It is easiest to understand in the case of a projection map <fr:tex display="inline"><![CDATA[P \times  X \to  X]]></fr:tex>. Suppose we have two objects <fr:tex display="inline"><![CDATA[A,B]]></fr:tex> over <fr:tex display="inline"><![CDATA[X]]></fr:tex>.
  Then we think of a map <fr:tex display="inline"><![CDATA[f: \pi _X^*A \to  \pi _X^*B]]></fr:tex> over <fr:tex display="inline"><![CDATA[P \times  X]]></fr:tex> as a map <fr:tex display="inline"><![CDATA[P \times  A \to  B]]></fr:tex>, that is a map parameterized by <fr:tex display="inline"><![CDATA[P]]></fr:tex> (this is literally the case for a codomain fibration).
  Given a stochastic section <fr:tex display="inline"><![CDATA[s]]></fr:tex> of <fr:tex display="inline"><![CDATA[\pi _X]]></fr:tex>, which amounts to a stochastic map <fr:tex display="inline"><![CDATA[X \to  P]]></fr:tex>, the stochastic module stucture picks out a new map <fr:tex display="inline"><![CDATA[s_*f]]></fr:tex>, which is given over each point <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex> by choosing the parameter according to <fr:tex display="inline"><![CDATA[s]]></fr:tex>, then applying <fr:tex display="inline"><![CDATA[f]]></fr:tex>.
</html:p>
                    <html:p>
  The definition of the composite in <fr:link href="/efr-A08L/" title="https://erischel.com/efr-A08L/" uri="https://erischel.com/efr-A08L/" display-uri="efr-A08L" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-A08L/" display-uri="efr-A08L" /></fr:link>, in these terms, tells us that given maps <fr:tex display="inline"><![CDATA[f: P \times  A \to  B, g: Q \times  B \to  C]]></fr:tex>, and maps <fr:tex display="inline"><![CDATA[s: X \to  P, t: X \to  Q]]></fr:tex>, the composite of <fr:tex display="inline"><![CDATA[s_*(f)]]></fr:tex> and <fr:tex display="inline"><![CDATA[t_*(q)]]></fr:tex> is equal to the map obtained by forming the parameterized composite <fr:tex display="inline"><![CDATA[Q \times  P \times  A \to  C]]></fr:tex> and applying the independent pairing <fr:tex display="inline"><![CDATA[\langle  t,s \rangle : X \to  Q \times  P]]></fr:tex>. This is of course how composition is supposed to work in a Markov category.
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>25</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-VF6V/</fr:uri>
                        <fr:display-uri>efr-VF6V</fr:display-uri>
                        <fr:route>/efr-VF6V/</fr:route>
                        <fr:taxon>Lemma</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> be a stochastic module over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, and let 
  
  <html:figure><fr:resource hash="dd23056ecfaec5ba834a33b00172bb6f"><fr:resource-content><html:img src="/dd23056ecfaec5ba834a33b00172bb6f.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}[row sep=large]
    P \ar [rrd, "h"] \ar [ddr] & & \\
    & X \times _Z Y \ar [r, "\pi _Y"] \ar [d] & Y \ar [d, "f"]\\
    & X \ar [r, "g"] \ar [ur, "s"] \ar [u, bend left=20, "s'" near end] \ar [uul, bend left=20, "t"] & Z
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  be given, so that every map except <fr:tex display="inline"><![CDATA[s,s',t]]></fr:tex> is deterministic. Suppose the deterministic part of the diagram commutes, <fr:tex display="inline"><![CDATA[fs = g]]></fr:tex>, <fr:tex display="inline"><![CDATA[s']]></fr:tex> is the induced section, and <fr:tex display="inline"><![CDATA[t]]></fr:tex> is a section. Let <fr:tex display="inline"><![CDATA[\bar {A},\bar {B}]]></fr:tex> be two objects over <fr:tex display="inline"><![CDATA[Z]]></fr:tex>. Suppose given a map <fr:tex display="inline"><![CDATA[\phi : f^*\bar {A} \to  f^*\bar {B}]]></fr:tex>. Then <fr:tex display="inline"><![CDATA[t^*h^*(P) = (s')^*\pi _Y^*(P) : g^*\bar {A} \to  g^*\bar {B}]]></fr:tex></html:p>
                        <html:p>
  In particular, this operation depends only on <fr:tex display="inline"><![CDATA[s]]></fr:tex>. Moreover, it is functorial, in the sense that given a diagram
  
  <html:figure><fr:resource hash="1e72a8b11e0676320b0a44b1f9b173ed"><fr:resource-content><html:img src="/1e72a8b11e0676320b0a44b1f9b173ed.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    X \ar [dr] \ar [r, "s" ] & Y \ar [d] \ar [r, "t"] & Z \ar [dl] \\
    & W
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  with the downwards maps deterministic, <fr:tex display="inline"><![CDATA[s^*t^* = (ts)^*]]></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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>25</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-U436/</fr:uri>
                        <fr:display-uri>efr-U436</fr:display-uri>
                        <fr:route>/efr-U436/</fr:route>
                        <fr:taxon>Remark</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  The operations <fr:tex display="inline"><![CDATA[\alpha ^*]]></fr:tex> associated to stochastic lifts are "functorial" in the sense that <fr:tex display="inline"><![CDATA[(\alpha \beta )^* = \beta ^*\alpha ^*]]></fr:tex>. However they are <html:em>not</html:em> functorial in the sense that <fr:tex display="inline"><![CDATA[\alpha ^*(fg) = \alpha ^*(f)\alpha ^*(g)]]></fr:tex></html:p>
                        <html:p>
  To make sense of this, consider a simple case of a map <fr:tex display="inline"><![CDATA[m: I \to  X]]></fr:tex> in <fr:tex display="inline"><![CDATA[Kl(\Delta )]]></fr:tex>.
  Given two objects over <fr:tex display="inline"><![CDATA[*]]></fr:tex> (in <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex>), a map <fr:tex display="inline"><![CDATA[\bar {A}_X \to  \bar {B}_X]]></fr:tex> is equivalent to a parametrized map <fr:tex display="inline"><![CDATA[X \times  \bar {A} \to  \bar {B}]]></fr:tex>. The operation <fr:tex display="inline"><![CDATA[m^*]]></fr:tex> consists in sampling this parameter according to the distribution <fr:tex display="inline"><![CDATA[m]]></fr:tex>---but since composition in the fiber over <fr:tex display="inline"><![CDATA[X]]></fr:tex> is defined by <html:em>copying</html:em> the parameter, but composition in the fiber over <fr:tex display="inline"><![CDATA[*]]></fr:tex> (i.e just <fr:tex display="inline"><![CDATA[Kl(\Delta )]]></fr:tex>) is defined by composing the kernels under conditional independence, these only agree if the distribution <fr:tex display="inline"><![CDATA[m]]></fr:tex> is assumed to be deterministic.
</html:p>
                        <html:p>
  Note that if either <fr:tex display="inline"><![CDATA[f]]></fr:tex> or <fr:tex display="inline"><![CDATA[g]]></fr:tex> is pulled back from a map <fr:tex display="inline"><![CDATA[\bar {A} \to  \bar {B}]]></fr:tex> (i.e, if they do not depend on the parameter <fr:tex display="inline"><![CDATA[X]]></fr:tex>), the composition <html:em>is</html:em> preserved.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  By construction, two morphisms in <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}}_0]]></fr:tex> represented by spans with apex <fr:tex display="inline"><![CDATA[M,M',]]></fr:tex> are identified if there exists a zig-zag <fr:tex display="inline"><![CDATA[M \to  K_0 \leftarrow  K_1 \to  \cdots  \leftarrow  M']]></fr:tex> of spans (decorated with sections from the domain <fr:tex display="inline"><![CDATA[X]]></fr:tex> and morphisms in the fiber, satisfying equations, etc). We will now prove a lemma that allows us to cut this down to a smaller set in many conditions. We will need the following hypothesis:
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>15</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-2MH5/</fr:uri>
                        <fr:display-uri>efr-2MH5</fr:display-uri>
                        <fr:route>/efr-2MH5/</fr:route>
                        <fr:title text="Weak conditionals">Weak conditionals</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[p: \mathcal {D} \to  \mathcal {C}]]></fr:tex> be a Markov prefibration. We say <fr:tex display="inline"><![CDATA[p]]></fr:tex> (or, abusing notation, <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>) <html:em>admits weak conditionals</html:em> if, given a Cartesian map <fr:tex display="inline"><![CDATA[\bar {Y} \to  \bar {Z}]]></fr:tex> and any map <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {Z},]]></fr:tex> the existence part of the Cartesian condition holds---that is, every factorization <fr:tex display="inline"><![CDATA[p(\bar {X}) \to  p(\bar {Y})]]></fr:tex> admits a lift, although not necessarily a unique one.
</html:p>
                        <html:p>
  We say a Markov category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> admits weak conditionals if its codomain functor <fr:tex display="inline"><![CDATA[\mathcal {C}^\to  \to  \mathcal {C}]]></fr:tex> is a prefibration which admits weak conditionals---this is equivalent to requiring that it is pullback-positive, and that <html:em>all</html:em> deterministic pullbacks are carried to weak pullbacks by the inclusion <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det} \to  \mathcal {C}]]></fr:tex> (in other words, that they satisfy the existence part of the universal property even for pairs of nondeterministic maps).
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Observe that, if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> admits conditionals, it certainly admits weak conditionals: given a pullback <fr:tex display="inline"><![CDATA[X \times _Z Y,]]></fr:tex> and maps <fr:tex display="inline"><![CDATA[P \to  X,Y,]]></fr:tex> form a Bayesian inverse of <fr:tex display="inline"><![CDATA[Y \to  Z]]></fr:tex> with respect to the given measure, and use that to build a lifting <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex>, which gives <fr:tex display="inline"><![CDATA[X \to  X \times _Z Y]]></fr:tex>---then a diagram chase verifies that this map has the desired properties.
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>11</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-TZ3Y/</fr:uri>
                        <fr:display-uri>efr-TZ3Y</fr:display-uri>
                        <fr:route>/efr-TZ3Y/</fr:route>
                        <fr:taxon>Lemma</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Suppose <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> admits weak conditionals, and let <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}_\mathrm {det}]]></fr:tex> be a fibration.
  Then two morphisms <fr:tex display="inline"><![CDATA[f_0,f_1: \bar {X} \to  \bar {Y}]]></fr:tex> in <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}}]]></fr:tex>, represented by commutative diagrams
  
  <html:figure><fr:resource hash="9e20b805699778dad4b2902cb20c2133"><fr:resource-content><html:img src="/9e20b805699778dad4b2902cb20c2133.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    & M_{i} \ar [dl] \ar [dr] & \\
    X \ar [ru, bend left=30] & & Y,
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  as well as <fr:tex display="inline"><![CDATA[\phi _i: \bar {X}_{M_i} \to  \bar {Y}_{M_i}]]></fr:tex>, for <fr:tex display="inline"><![CDATA[i=0,1]]></fr:tex>, are equal if and only if there exists a span <fr:tex display="inline"><![CDATA[M_0 \leftarrow  K \to  M_1]]></fr:tex> over <fr:tex display="inline"><![CDATA[X,Y]]></fr:tex>, with a stochastic section <fr:tex display="inline"><![CDATA[X \to  K]]></fr:tex> lifting both the sections to <fr:tex display="inline"><![CDATA[M_0,M_1]]></fr:tex>, so that the pullbacks of <fr:tex display="inline"><![CDATA[\phi _0,\phi _1]]></fr:tex> to <fr:tex display="inline"><![CDATA[K]]></fr:tex> agree.
</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>2025</fr:year><fr:month>4</fr:month><fr:day>11</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    The relation here described clearly implies identity, and contains all the generating identities, so it suffices to show it is an equivalence relation. Reflexivity and symmetry are clear, so transitivity is the only issue. It suffices to show that, given a span <fr:tex display="inline"><![CDATA[X \leftarrow  S \to  Y]]></fr:tex> and maps <fr:tex display="inline"><![CDATA[M_0 \to  S \leftarrow  M_1]]></fr:tex> so that the triangles commute, and so that the two induced sections <fr:tex display="inline"><![CDATA[X \to  S]]></fr:tex> agree, and a map <fr:tex display="inline"><![CDATA[\bar {X}_S \to  \bar {Y}_S]]></fr:tex> which pulls back to <fr:tex display="inline"><![CDATA[\phi _0,\phi _1]]></fr:tex>, we can find <fr:tex display="inline"><![CDATA[K]]></fr:tex> as above.
  </html:p>
  <html:p>
    To do this, take <fr:tex display="inline"><![CDATA[K = M_0 \times _S M_1]]></fr:tex>. Clearly the maps to <fr:tex display="inline"><![CDATA[M_0, M_1]]></fr:tex> are over <fr:tex display="inline"><![CDATA[X,Y]]></fr:tex>, and by the existence of weak conditionals there exists a common lift of the sections to <fr:tex display="inline"><![CDATA[X \to  K]]></fr:tex>. By functoriality of pullbacks, the pullbacks of <fr:tex display="inline"><![CDATA[\phi _0,\phi _1]]></fr:tex> to <fr:tex display="inline"><![CDATA[K]]></fr:tex> agree.
  </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>2025</fr:year>
                      <fr:month>3</fr:month>
                      <fr:day>29</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-U4RA/</fr:uri>
                    <fr:display-uri>efr-U4RA</fr:display-uri>
                    <fr:route>/efr-U4RA/</fr:route>
                    <fr:title text="Markov Fibrations">Markov Fibrations</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Recall that, given a functor <fr:tex display="inline"><![CDATA[R: \mathcal {C} \to  \mathcal {D}]]></fr:tex> with left adjoint <fr:tex display="inline"><![CDATA[L]]></fr:tex>, there is a "standard resolution" of any object <fr:tex display="inline"><![CDATA[X \in  \mathcal {C}]]></fr:tex>, given by the "cofork" <fr:tex display="inline"><![CDATA[LRLRX \rightrightarrows  LRX \to  X]]></fr:tex>, where the two parallel maps are the two possible applications of the adjunction counit. The adjunction is monadic if and only if this is always a coequalizer, in which case the <fr:tex display="inline"><![CDATA[RL]]></fr:tex>-algebra corresponding to <fr:tex display="inline"><![CDATA[X]]></fr:tex> is <fr:tex display="inline"><![CDATA[RLRX \to  RX]]></fr:tex>---conversely, given an algebra <fr:tex display="inline"><![CDATA[\alpha : RLA \to  A]]></fr:tex>, there are two parallel maps <fr:tex display="inline"><![CDATA[LRLA \rightrightarrows  LA]]></fr:tex> (given by <fr:tex display="inline"><![CDATA[L(\alpha )]]></fr:tex> and the counit,) and the object in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> corresponding to this algebra is given by this coequalizer.
</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>2025</fr:year>
                          <fr:month>3</fr:month>
                          <fr:day>29</fr:day>
                        </fr:date>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
    Consider the adjunction <fr:tex display="inline"><![CDATA[|-|: \mathsf {Mon} \leftrightarrows  \mathsf {Set} : (-)^*]]></fr:tex> between the category of monoids and the category of sets. Given a monoid <fr:tex display="inline"><![CDATA[M]]></fr:tex>, <fr:tex display="inline"><![CDATA[|M|^*]]></fr:tex> consists of lists of elements in <fr:tex display="inline"><![CDATA[M]]></fr:tex>, and <fr:tex display="inline"><![CDATA[||M|^*|^*
  ]]></fr:tex> consists of lists of such lists. The two maps <fr:tex display="inline"><![CDATA[||M|^*|^* \to  |M|^*]]></fr:tex> consist in either concatenating the lists, or replacing each list with its product. Clearly these two maps are coequalized by the product map <fr:tex display="inline"><![CDATA[|M|^* \to  M]]></fr:tex>. Moreover it's clear that two lists have the same product if and only if they are identified in this coequalizer (simply consider a singleton list-of-lists, which identifies any given list with the singleton corresponding to its product).
  </html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  As a generalization of this, if this coequalizer exists for every algebra, they form a left adjoint to the canonical functor <fr:tex display="inline"><![CDATA[\mathcal {C} \to  \mathsf {Alg}_\mathcal {D}(RL)]]></fr:tex>. Since we have seen that the monad of free Markov prefibrations commutes with taking fiberwise opposites, we may hope that such a left adjoint exists---a simple argument shows that, if it is, it is fully faithful, and we may say that those prefibrations in the image are the "fibrations" and define their fiberwise opposite as the fiberwise opposite applied to their underlying algebras. Although it turns out to not be quite so simple, we will take this idea as our starting point.
</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>2025</fr:year>
                          <fr:month>3</fr:month>
                          <fr:day>29</fr:day>
                        </fr:date>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
    Let <fr:tex display="inline"><![CDATA[\mathsf {GrpTop}]]></fr:tex> be the category of topological groups, and let <fr:tex display="inline"><![CDATA[R: \mathsf {GrpTop} \to  \mathsf {Set}]]></fr:tex> forget both the group structure and the topology. Clearly this is right adjoint to the free group in the discrete topology, and the monad of this adjunction is the free group monad, which we write <fr:tex display="inline"><![CDATA[RL]]></fr:tex> for now. The canonical comparison functor <fr:tex display="inline"><![CDATA[\mathsf {GrpTop} \to  \mathsf {Grp}]]></fr:tex> just forgets the topology. Given a (non-topological) group, described by a map <fr:tex display="inline"><![CDATA[RLG \to  G]]></fr:tex>, we can form the diagram of topological groups <fr:tex display="inline"><![CDATA[LRLG \rightrightarrows  LG]]></fr:tex>. Here <fr:tex display="inline"><![CDATA[LG]]></fr:tex> is the free, discrete group on <fr:tex display="inline"><![CDATA[G]]></fr:tex> and <fr:tex display="inline"><![CDATA[LRLG]]></fr:tex> is the free discrete group on the underlying set of <fr:tex display="inline"><![CDATA[LG]]></fr:tex>. Their coequalizer is simply <fr:tex display="inline"><![CDATA[G]]></fr:tex> equipped with the discrete topology, which is indeed the left adjoint to <fr:tex display="inline"><![CDATA[\mathsf {GrpTop} \to  \mathsf {Grp}]]></fr:tex></html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  In what follows, we will denote the monad <fr:tex display="inline"><![CDATA[\overline {(-)}|_\mathrm {det}]]></fr:tex> simply by <fr:tex display="inline"><![CDATA[\operatorname {Free}]]></fr:tex> to avoid too many complicated nestings of overlines and parentheses.
</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>2025</fr:year>
                          <fr:month>3</fr:month>
                          <fr:day>27</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-HVUT/</fr:uri>
                        <fr:display-uri>efr-HVUT</fr:display-uri>
                        <fr:route>/efr-HVUT/</fr:route>
                        <fr:title text="Markov Fibration">Markov Fibration</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> is a Markov prefibration, we call it a <html:em>Markov fibration</html:em> if the diagram <fr:tex display="inline"><![CDATA[\overline {\operatorname {Free}(\mathcal {D}|_\mathrm {det})} \rightrightarrows  \overline {\mathcal {D}|_\mathrm {det}} \to  \mathcal {D}]]></fr:tex> is a coequalizer in <fr:tex display="inline"><![CDATA[\mathsf {Cat}_{/\mathcal {C}}]]></fr:tex>.
</html:p>
                        <html:p>
  Given an algebra <fr:tex display="inline"><![CDATA[\alpha : \operatorname {Free}(\mathcal {D}_0) \to  \mathcal {D}_0]]></fr:tex> of the free Markov prefibration monad, let <fr:tex display="inline"><![CDATA[\overline {\operatorname {Free}(\mathcal {D}_0)} \rightrightarrows  \overline {\mathcal {D}_0} \in  \mathsf {MarkPreFib}]]></fr:tex> be as above. We say <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex> <html:em>presents a Markov fibration</html:em> if the coequalizer of these maps in <fr:tex display="inline"><![CDATA[\mathsf {Cat}_{/\mathcal {C}}]]></fr:tex> is a Markov prefibration.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  The terminology "presents a Markov fibration" is justified by the following proposition.
</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>2025</fr:year>
                          <fr:month>3</fr:month>
                          <fr:day>27</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-MAUM/</fr:uri>
                        <fr:display-uri>efr-MAUM</fr:display-uri>
                        <fr:route>/efr-MAUM/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\alpha : \operatorname {Free}(\mathcal {D}_0) \to  \mathcal {D}_0]]></fr:tex> be stochastic module which presents a Markov fibration. Then the underlying algebra of the Markov prefibration obtained as the coequalizer of <fr:tex display="inline"><![CDATA[\overline {\operatorname {Free}(\mathcal {D}_0)} \rightrightarrows  \bar {\mathcal {D}_0}]]></fr:tex> is isomorphic to <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex>, and in particular this prefibration <html:em>is</html:em> a Markov fibration.
</html:p><html:p>
  This correspondence determines an equivalence of categories between the full subcategory <fr:tex display="inline"><![CDATA[\mathsf {MarkFib}(\mathcal {C})]]></fr:tex> of <fr:tex display="inline"><![CDATA[\mathsf {MarkPreFib}(\mathcal {C})]]></fr:tex> spanned by the Markov fibrations, and the full subcategory <fr:tex display="inline"><![CDATA[\mathsf {SFib}(\mathcal {C})^p \subseteq  \mathsf {SFib}(\mathcal {C})]]></fr:tex> spanned by those algebras which present a Markov fibration.
</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>2025</fr:year><fr:month>3</fr:month><fr:day>27</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Let <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex> be an algebra as assumed, and let <fr:tex display="inline"><![CDATA[\mathcal {D}_0^\alpha  \in  \mathsf {MarkPreFib}]]></fr:tex> denote the coequalizer given. By general nonsense there is an induced functor <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \to  \mathcal {D}_0^\alpha |_\mathrm {det}]]></fr:tex> which is moreover an algebra homomorphism---the claim is that this is an isomorphism. By <fr:link href="/efr-L7L2/" title="https://erischel.com/efr-L7L2/" uri="https://erischel.com/efr-L7L2/" display-uri="efr-L7L2" type="local">Lemma <fr:contextual-number uri="https://erischel.com/efr-L7L2/" display-uri="efr-L7L2" /></fr:link>, pullback to the deterministic part preserves these coequalizers, so this amounts to the claim that the diagram <fr:tex display="inline"><![CDATA[\operatorname {Free}^2(\mathcal {D}_0) \rightrightarrows  \operatorname {Free}(\mathcal {D}_0) \to  \mathcal {D}_0]]></fr:tex> is a coequalizer. But this is true for any algebra of any monad (in fact, the unit gives a splitting of this coequalizer).
  </html:p>
  <html:p>
    By general nonsense the fibration associated to an algebra which presents a fibration forms a partial left adjoint to <fr:tex display="inline"><![CDATA[\mathsf {MarkPreFib}(\mathcal {C}) \to  \mathsf {SFib}(\mathcal {C})]]></fr:tex>. This left adjoint, by the above, has its image inside <fr:tex display="inline"><![CDATA[\mathsf {MarkFib},]]></fr:tex> and hence there is an adjunction <fr:tex display="inline"><![CDATA[\mathsf {MarkFib}(\mathcal {C}) \leftrightarrows  \mathsf {SFib}(\mathcal {C})^p]]></fr:tex>. The preceding furthermore proves that the unit of this adjunction is the identity, which implies that the left adjoint is fully faithful---but by definition it is essentially surjective, finishing the argument.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Let us briefly summarize the relationship between Markov prefibrations, Markov fibrations, and stochastic module fibrations at this stage.
  <html:ul><html:li>
      A stochastic module fibration is a (Grothendieck) fibration <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> over <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex>, equipped with some extra structure involving the whole category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>.
      Given a deterministic map <fr:tex display="inline"><![CDATA[f: A \to  B]]></fr:tex> two objects <fr:tex display="inline"><![CDATA[X,Y \in  \mathcal {D}_B]]></fr:tex>, and a map <fr:tex display="inline"><![CDATA[\phi : f^*X \to  f^*Y]]></fr:tex>, we can think of this as a map parameterized by the fibers <fr:tex display="inline"><![CDATA[A_b]]></fr:tex>. Given a stochastic section <fr:tex display="inline"><![CDATA[s: B \to  A]]></fr:tex>, the stochastic module structure picks out a map <fr:tex display="inline"><![CDATA[X \to  Y \in  \mathcal {D}_B]]></fr:tex> corresponding to choosing this parameter randomly according to <fr:tex display="inline"><![CDATA[s]]></fr:tex>.
    </html:li>
    <html:li>
      A Markov prefibration is a category <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> with a particular unique lifting property. In the above situation, it gives a unique lift <fr:tex display="inline"><![CDATA[X \to  f^*X]]></fr:tex> of <fr:tex display="inline"><![CDATA[s]]></fr:tex>, corresponding to choosing <fr:tex display="inline"><![CDATA[a \in  A_b]]></fr:tex> according to <fr:tex display="inline"><![CDATA[s]]></fr:tex> and leaving the <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex>-coordinate unchangd. By composing this lift with <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex>, then with the Cartesian <fr:tex display="inline"><![CDATA[f^*Y \to  Y]]></fr:tex>, we get a stochastic module structure on the part of <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> lying over deterministic maps (which is also a Grothendieck fibration).
    </html:li>
    <html:p>
      Given a stochastic module structure, there is a way of generating a category over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, by freely adding the lifts corresponding to a Markov prefibration, then quotienting by the relations implied by the stochastic module structure. This does not necessarily yield a Markov prefibration. 
    </html:p>
    <html:p>
      A Markov prefibration is called a Markov fibration if it is presented by its underlying stochastic module in the above sense.
    </html:p></html:ul></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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>8</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-YFV2/</fr:uri>
                        <fr:display-uri>efr-YFV2</fr:display-uri>
                        <fr:route>/efr-YFV2/</fr:route>
                        <fr:title text="Weak supports">Weak supports</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \to  \mathcal {C}_\mathrm {det}]]></fr:tex> be a stochastic module fibration.
</html:p>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\alpha : X \to  M]]></fr:tex> be a stochastic section, let <fr:tex display="inline"><![CDATA[\bar {X} \in  \mathcal {D}_{0,X}]]></fr:tex> be an object, and let <fr:tex display="inline"><![CDATA[\phi : \bar {X}_M \to  \bar {X}_M \in  \mathcal {D}_{0,M}]]></fr:tex> be an endomorphism of its pullback. Observe that if there exists <fr:tex display="inline"><![CDATA[f: N \to  M]]></fr:tex> so that <fr:tex display="inline"><![CDATA[f^*(\phi ) = 1]]></fr:tex> and <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex> factors over <fr:tex display="inline"><![CDATA[f]]></fr:tex>, then <fr:tex display="inline"><![CDATA[\alpha _*(\phi ) = 1]]></fr:tex>. We say <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> has <html:em>weak supports</html:em> if this implication is an equivalence
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  We will make use of the following lemma:
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>5</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-L7L2/</fr:uri>
                        <fr:display-uri>efr-L7L2</fr:display-uri>
                        <fr:route>/efr-L7L2/</fr:route>
                        <fr:taxon>Lemma</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[F,G: \mathcal {D} \rightrightarrows  \mathcal {D}']]></fr:tex> be a parallel pair in <fr:tex display="inline"><![CDATA[\mathsf {Cat}_{/\mathcal {C}}]]></fr:tex>, and suppose both are identity on objects. Suppose moreover this is a reflexive pair, i.e there is some <fr:tex display="inline"><![CDATA[S: \mathcal {D}' \to  \mathcal {D}]]></fr:tex> so that <fr:tex display="inline"><![CDATA[FS = GS = 1_{\mathcal {D}'}]]></fr:tex>. Then the coequalizer in <fr:tex display="inline"><![CDATA[\mathsf {Cat}_{/\mathcal {C}}]]></fr:tex> is again identity on objects, and is given on hom-sets simply by the coequalizer of the parallel pair <fr:tex display="inline"><![CDATA[\mathcal {D}(x,y) \rightrightarrows  \mathcal {D}'(x,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>2025</fr:year><fr:month>4</fr:month><fr:day>5</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    The only nontrivial part is to verify that composition is well-defined on the equivalence classes in <fr:tex display="inline"><![CDATA[\mathcal {D}'(x,y)/\sim ]]></fr:tex>. It suffices to see that post- and precomposition with a fixed morphism both preserve this equivalence relation. Take some <fr:tex display="inline"><![CDATA[f: x \to  y \in  \mathcal {C}]]></fr:tex>, and <fr:tex display="inline"><![CDATA[h : y \to  z \in  \mathcal {C}']]></fr:tex>. We must show that <fr:tex display="inline"><![CDATA[hF(f) = hG(f)]]></fr:tex>. But simply write
    <fr:tex display="block"><![CDATA[hF(f) = F(S(h)f) \sim  G(S(h)f) = hG(f),]]></fr:tex>
    and we are done. Clearly the other side follows by duality, 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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>5</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-TBZZ/</fr:uri>
                        <fr:display-uri>efr-TBZZ</fr:display-uri>
                        <fr:route>/efr-TBZZ/</fr:route>
                        <fr:title text="Construction of \mathsf {SChart}(\mathcal {D}_0)">Construction of <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex></fr:title>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> be a fibration equipped with a stochastic module structure. Consider the equivalence relation on <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}_0}(\bar {X},\bar {Y})]]></fr:tex> which identifies two precharts <fr:tex display="inline"><![CDATA[(M, \phi ), (N, \phi ')]]></fr:tex> if there exists a map <fr:tex display="inline"><![CDATA[f: N \to  M]]></fr:tex> over <fr:tex display="inline"><![CDATA[X,Y]]></fr:tex> and a stochastic section <fr:tex display="inline"><![CDATA[s]]></fr:tex> of <fr:tex display="inline"><![CDATA[f]]></fr:tex> which preserves the section from <fr:tex display="inline"><![CDATA[X]]></fr:tex>, so that <fr:tex display="inline"><![CDATA[s^*\phi ' = \phi ]]></fr:tex> (note that this makes sense because pullbacks compose). 
  
  
  <html:figure><fr:resource hash="284e22cfea26152078b2126f7501065e"><fr:resource-content><html:img src="/284e22cfea26152078b2126f7501065e.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    & N \ar [d, "p"] \ar [ddr] \ar [ddl] & \\
    & M \ar [ld, "q"] \ar [rd, "r"] \ar [u, bend left=30, "s"] & \\
    X \ar [ur, bend left=30] \ar [uur, bend left=30] & & Y
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  
  Then:
</html:p><html:ol><html:li>This equivalence relation respects composition, and so defines a category which we denote <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex></html:li>
  <html:li>In <fr:tex display="inline"><![CDATA[\mathsf {Cat}_{/\mathcal {C}}]]></fr:tex>, <fr:tex display="inline"><![CDATA[\overline {\operatorname {Free}(\mathcal {D}_0)} \rightrightarrows  \overline {\mathcal {D}_0} \to  \mathsf {SChart}(\mathcal {D}_0)]]></fr:tex> is a coequalizer diagram. In particular, <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> presents a Markov fibration if and only if <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex> is a Markov prefibration (in which case <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex> is the fibration it presents)</html:li>
  <html:li>If <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> has <fr:link href="/efr-YFV2/" title="Weak supports" uri="https://erischel.com/efr-YFV2/" display-uri="efr-YFV2" type="local">weak supports</fr:link>, <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex> is a prefibration</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>2025</fr:year><fr:month>4</fr:month><fr:day>5</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
<html:p>
  Recall that the fibration <fr:tex display="inline"><![CDATA[\operatorname {Free}(\mathcal {D}_0)]]></fr:tex> has fibers whose morphisms <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {X}']]></fr:tex> are given by tuples <fr:tex display="inline"><![CDATA[s: X \to  M: p,]]></fr:tex> <fr:tex display="inline"><![CDATA[p^*\bar {X} \to  p^*\bar {X}']]></fr:tex> (up to a certain equivalence relation). Forming the free Markov prefibration <fr:tex display="inline"><![CDATA[\overline {\operatorname {Free}(\mathcal {D}_0)}]]></fr:tex> on this fibration, we find that the morphisms are given by diagrams

  
  <html:figure><fr:resource hash="56fc109f1c681c74b721a5bb9fe98d7d"><fr:resource-content><html:img src="/56fc109f1c681c74b721a5bb9fe98d7d.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    & N \ar [d, "p"] & \\
    & M \ar [ld, "q"] \ar [rd, "r"] \ar [u, bend left=30] & \\
    X \ar [ur, bend left=30] & & Y
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>


  equipped with a map <fr:tex display="inline"><![CDATA[\phi : p^*q^*\bar {X} \to  p^*r^*\bar {Y}]]></fr:tex>. The two maps <fr:tex display="inline"><![CDATA[\overline {\operatorname {Free}(\mathcal {D}_0)} \to  \overline {\mathcal {D}_0}]]></fr:tex> carry such a thing to first, the map resulting from forgetting <fr:tex display="inline"><![CDATA[M]]></fr:tex> and just composing <fr:tex display="inline"><![CDATA[q,r]]></fr:tex> with <fr:tex display="inline"><![CDATA[p]]></fr:tex> to get a span (and composing the sections to get a new section), and secondly, the map with apex <fr:tex display="inline"><![CDATA[M]]></fr:tex> obtained by using the stochastic module structure to push <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex> down into a map over <fr:tex display="inline"><![CDATA[M]]></fr:tex>. It is clear that this is equivalently the equation described in the theorem. This establishes points 1. and 2., since by <fr:link href="/efr-L7L2/" title="https://erischel.com/efr-L7L2/" uri="https://erischel.com/efr-L7L2/" display-uri="efr-L7L2" type="local">Lemma <fr:contextual-number uri="https://erischel.com/efr-L7L2/" display-uri="efr-L7L2" /></fr:link> we can compute such coequalizers hom-set by hom-set.
</html:p>
<html:p>
  Now we wish to prove that <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex> is a Markov prefibration given weak supports. Since by the coequalizer presentation, its deterministic part is isomorphic to <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex>, the fibration property is automatic. It remains to verify that, given a triangle
  
  <html:figure><fr:resource hash="80ceffa4893b63c9d684e66e96a5e227"><fr:resource-content><html:img src="/80ceffa4893b63c9d684e66e96a5e227.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    & Z\ar [d]\\
    X \ar [r] \ar [ru] & Y
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> with the vertical and horizontal maps deterministic, an object <fr:tex display="inline"><![CDATA[\bar {A} \in  \mathcal {D}_{0,Y}]]></fr:tex> and Cartesian maps <fr:tex display="inline"><![CDATA[\bar {A}_X \to  \bar {A} \leftarrow  \bar {A}_Z]]></fr:tex>, there exists a unique lift <fr:tex display="inline"><![CDATA[\bar {A}_X \to  \bar {A}_Z]]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex>.
</html:p>
<html:p>
  Such a lift is given by a diagram
  
  <html:figure><fr:resource hash="16633b474b25e23143ed3986c9bf1621"><fr:resource-content><html:img src="/16633b474b25e23143ed3986c9bf1621.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    & M \ar [ld, "p"] \ar [rd, "q" ] &\\
    X \ar [ru, bend left=30] & & Z\\ 
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  equipped with <fr:tex display="inline"><![CDATA[p^*\bar {A}_X \to  q^*\bar {A}_Z]]></fr:tex>. By taking the equalizer of the two maps <fr:tex display="inline"><![CDATA[M \to  Y]]></fr:tex> (the section factors over this), we may assume these two are equal, which implies that the pulled-back objects are equal---denote this object <fr:tex display="inline"><![CDATA[\bar {A}_M]]></fr:tex>. Now the hypothesis is that after postcomposing with the Cartesian map <fr:tex display="inline"><![CDATA[\bar {A}_Z \to  \bar {A},]]></fr:tex> this gives the map <fr:tex display="inline"><![CDATA[\bar {A}_X \to  \bar {A}]]></fr:tex>. This postcomposition is given simply by postcomposing the leg <fr:tex display="inline"><![CDATA[M \to  Z]]></fr:tex> with the map <fr:tex display="inline"><![CDATA[Z \to  Y]]></fr:tex> (and observing that, by functoriality of pullbacks, this does not alter the pulled-back object). Then the claim is that integrating this map <fr:tex display="inline"><![CDATA[\bar {A}_M \to  \bar {A}_M]]></fr:tex> down into a map <fr:tex display="inline"><![CDATA[\bar {A}_X \to  \bar {A}_X,]]></fr:tex> it gives the identity. But by assumption this means we can pull back to some object <fr:tex display="inline"><![CDATA[M' \to  M]]></fr:tex> (lifting the section from <fr:tex display="inline"><![CDATA[X]]></fr:tex>) where the two maps are already equal to the identity. But this pull-back can be applied to the original map <fr:tex display="inline"><![CDATA[\bar {A}_X \to  \bar {A}_Z]]></fr:tex> as well. But this implies every such map is equal to the one represented by the diagram 

  
  <html:figure><fr:resource hash="c017698b29cf0612c4e797913f0b87f0"><fr:resource-content><html:img src="/c017698b29cf0612c4e797913f0b87f0.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    & X \otimes  Y \ar [ld] \ar [rd] & \\
    X \ar [ur] & & Y
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>


  and the identity on <fr:tex display="inline"><![CDATA[\bar {A}_{X \otimes  Y},]]></fr:tex> with the map <fr:tex display="inline"><![CDATA[M' \to  X \otimes  Y]]></fr:tex> giving the witness, since identities pull back. This map only depends on the underlying <fr:tex display="inline"><![CDATA[X \to  Y,]]></fr:tex> hence <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex> is indeed a prefibration.
</html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                    </fr:tree>
                    <html:p>
  It is not apparent whether weak supports are necessary for <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex> to be a prefibration. We have not found any counterexample, but in general the equivalence relation on charts is fairly complicated, so it is not apparent how to prove the necessity. We will generally not be too bothered about assuming weak supports instead of the more nebulous assumption that <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> presents a Markov fibration.
</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>2025</fr:year>
                          <fr:month>9</fr:month>
                          <fr:day>13</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-26SF/</fr:uri>
                        <fr:display-uri>efr-26SF</fr:display-uri>
                        <fr:route>/efr-26SF/</fr:route>
                        <fr:taxon>Lemma</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[(M,\phi )]]></fr:tex> and <fr:tex display="inline"><![CDATA[(N,\psi )]]></fr:tex> be two representatives of charts.
  Given some possibly stochastic map <fr:tex display="inline"><![CDATA[f: M \to  N]]></fr:tex> over <fr:tex display="inline"><![CDATA[X]]></fr:tex> and <fr:tex display="inline"><![CDATA[Y]]></fr:tex>, recall (<fr:link href="/efr-VF6V/" title="https://erischel.com/efr-VF6V/" uri="https://erischel.com/efr-VF6V/" display-uri="efr-VF6V" type="local">Lemma <fr:contextual-number uri="https://erischel.com/efr-VF6V/" display-uri="efr-VF6V" /></fr:link>) that we can define <fr:tex display="inline"><![CDATA[f^*\psi ]]></fr:tex>, regardless of whether <fr:tex display="inline"><![CDATA[f]]></fr:tex> is deterministic or the section of a deterministic map. If there exists such a map <fr:tex display="inline"><![CDATA[f]]></fr:tex>, we can always factor it over the pullback <fr:tex display="inline"><![CDATA[M \times _{X \times  Y} N]]></fr:tex> as a section followed by a deterministic map. Hence the equivalence relation defining <fr:tex display="inline"><![CDATA[\mathsf {SChart}]]></fr:tex> is equivalent to the relation identifying two representatives whenever there exists such an <fr:tex display="inline"><![CDATA[f]]></fr:tex> with <fr:tex display="inline"><![CDATA[f^*\psi  = \phi ]]></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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>29</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-XZRN/</fr:uri>
                        <fr:display-uri>efr-XZRN</fr:display-uri>
                        <fr:route>/efr-XZRN/</fr:route>
                        <fr:taxon>Remark</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  By construction, for each Markov prefibration <fr:tex display="inline"><![CDATA[\mathcal {D},]]></fr:tex> there is a canonical functor <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}|_\mathrm {det}) \to  \mathcal {D}]]></fr:tex> over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, which restricts to an isomorphism on the deterministic part (and in particular preserves Cartesian morphisms). <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> is a Markov fibration if and only if this is an isomorphism.
</html:p>
                        <html:p>
  Also by construction, given a morphism of stochastic modules <fr:tex display="inline"><![CDATA[F: \mathcal {D}_0 \to  \mathcal {D}_0',]]></fr:tex> there is an induced functor <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}) \to  \mathsf {SChart}(\mathcal {D}')]]></fr:tex> over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. This restricts to <fr:tex display="inline"><![CDATA[F]]></fr:tex> on the deterministic part and in particular preserves Cartesian morphisms.
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>27</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-1YS9/</fr:uri>
                        <fr:display-uri>efr-1YS9</fr:display-uri>
                        <fr:route>/efr-1YS9/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> be a stochastic module fibration. Then <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> presents a Markov fibration if and only if <fr:tex display="inline"><![CDATA[\mathcal {D}_0^\mathrm {fop}]]></fr:tex> does it. 
</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>2025</fr:year><fr:month>4</fr:month><fr:day>27</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Consider a triangle of this for in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>:
  
  <html:figure><fr:resource hash="e5d5ab972658d3ed2a558521e77e7975"><fr:resource-content><html:img src="/e5d5ab972658d3ed2a558521e77e7975.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    & Y \ar [d]\\
    X \ar [ur, "f"] \ar [r] & Z
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  where the maps to <fr:tex display="inline"><![CDATA[Z]]></fr:tex> are deterministic. Suppose given Cartesian lifts <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {Z}, \bar {Y} \to  \bar {Z}]]></fr:tex> of the cospan. These are the same in both cases, coming from Cartesian maps in <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \mathcal {D}_0^\mathrm {fop}]]></fr:tex> (which are the same). We must show that there is a unique lift of <fr:tex display="inline"><![CDATA[f]]></fr:tex> to a chart in <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex> if and only if there is a unique lift to a chart in <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0^\mathrm {fop})]]></fr:tex>. Clearly it suffices to prove the "only if" implication, so suppose <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex> is a prefibration.
  </html:p>
  <html:p>
    By passing to the equalizer as in the proof that <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}_0}]]></fr:tex> is a prefibration, we may assume that any such lift is represented by a diagram
    
  <html:figure><fr:resource hash="2e385df99eca54aa98b20e847174380d"><fr:resource-content><html:img src="/2e385df99eca54aa98b20e847174380d.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
      \begin {tikzcd}
      M \ar [r] \ar [d] & Y \ar [d]\\
      X \ar [u, bend left=20, "f'"] \ar [ur] \ar [r] & Z
      \end {tikzcd}
    ]]></fr:resource-source></fr:resource></html:figure>

    where the outer square and the triangle <fr:tex display="inline"><![CDATA[X \to  M \to  Y]]></fr:tex> commutes, and <fr:tex display="inline"><![CDATA[f']]></fr:tex> is a section.
  </html:p>
  <html:p>
    Take such a diagram and let <fr:tex display="inline"><![CDATA[\phi : \bar {Z}_M \to  \bar {Z}_M]]></fr:tex> be the map representing a chart. Then the claim is there exists some zig-zag of chart equivalences identifying <fr:tex display="inline"><![CDATA[(M,\phi )]]></fr:tex> with <fr:tex display="inline"><![CDATA[(M,1)]]></fr:tex>. But clearly this is invariant under passing to the fiberwise opposite, and so <fr:tex display="inline"><![CDATA[\mathcal {D}^\mathrm {fop}]]></fr:tex> is also a prefibration.
  </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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>6</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-ANBC/</fr:uri>
                        <fr:display-uri>efr-ANBC</fr:display-uri>
                        <fr:route>/efr-ANBC/</fr:route>
                        <fr:title text="Stochastic charts and lenses">Stochastic charts and lenses</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  We refer to <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex> as the category of <html:em>stochastic charts</html:em> in <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex>. We refer to <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0^\mathrm {fop})]]></fr:tex> as <html:em>stochastic lenses</html:em> and denote it also <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathcal {D}_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>2025</fr:year>
                          <fr:month>3</fr:month>
                          <fr:day>28</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-IAFO/</fr:uri>
                        <fr:display-uri>efr-IAFO</fr:display-uri>
                        <fr:route>/efr-IAFO/</fr:route>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p><fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex> is a Markov fibration. We have already seen that it is a Markov prefibration, and that the map from the coreflection is full. So it suffices to prove faithfulness.
  Consider a map in <fr:tex display="inline"><![CDATA[{Kl(\Delta )^\to |_\mathrm {det}}]]></fr:tex>, given by a diagram

</html:p>
                        <html:p>
                          <html:figure>
                            <fr:resource hash="1ec160d52144793fd672289a6c3930b8">
                              <fr:resource-content>
                                <html:img src="/1ec160d52144793fd672289a6c3930b8.svg" />
                              </fr:resource-content>
                              <fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source>
                              <fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    \bar {X} \ar [d] \ar [r, bend right=20] & M \times _X \bar {X} \ar [l] \ar [r] \ar [d] & \bar {Y} \ar [d]\\
    X \ar [r, bend right=20] & M \ar [l] \ar [r] & Y
    \end {tikzcd}
  ]]></fr:resource-source>
                            </fr:resource>
                          </html:figure>
                        </html:p>
                        <html:p>
  We can factor the section <fr:tex display="inline"><![CDATA[X \to  M]]></fr:tex> as <fr:tex display="inline"><![CDATA[X \to  X \times  Y \to  M]]></fr:tex>, where the first map is just the pairing and the second is a conditional distribution.
  This induces a factorization of the lift <fr:tex display="inline"><![CDATA[\bar {X} \to  M \times _X \bar {X}]]></fr:tex> over <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {X} \times  Y]]></fr:tex>. By composing the map <fr:tex display="inline"><![CDATA[M \times _X \bar {X} \to  \bar {Y}]]></fr:tex> with this factorization to build the map <fr:tex display="inline"><![CDATA[\bar {X} \times  Y \to  \bar {Y}]]></fr:tex>, we have found a new representative for the same map.
</html:p>
                        <html:p>
  Hence every map over <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> has a representative where the residual is <fr:tex display="inline"><![CDATA[X \times  Y]]></fr:tex>. We would like to argue that, since the map <fr:tex display="inline"><![CDATA[\bar {X} \times  Y \to  \bar {Y}]]></fr:tex> is given by the conditional distribution of the composite map <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {Y},]]></fr:tex> it is uniquely determined by it, and thus if two distinct maps in <fr:tex display="inline"><![CDATA[\overline {Kl(\Delta )^\to |_\mathrm {det}}]]></fr:tex> have the same underlying map in <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ,]]></fr:tex> they must have equal representatives of this form, and so be identified in the coreflection (which must therefore be isomorphic to <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex>). But of course, the two maps may only be <html:em>almost certainly</html:em> equal.
</html:p>
                        <html:p>
  In this case, there is a simple fix: instead of taking <fr:tex display="inline"><![CDATA[X \times  Y]]></fr:tex> as the residual, take the subset <fr:tex display="inline"><![CDATA[S]]></fr:tex> given by those pairs <fr:tex display="inline"><![CDATA[(x,y)]]></fr:tex> where <fr:tex display="inline"><![CDATA[y]]></fr:tex> has positive probability given <fr:tex display="inline"><![CDATA[x]]></fr:tex>. The pairing factors over this, of course, and two maps <fr:tex display="inline"><![CDATA[\bar {X} \times _X S \to  \bar {Y}]]></fr:tex> which give the same distribution <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {Y}]]></fr:tex> really must have the same value on every point. This proves that <fr:tex display="inline"><![CDATA[\mathsf {SChart}(Kl(\Delta )^\to ) \to  (Kl(\Delta ))^\to ]]></fr:tex> is faithful and hence an isomorphism.
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>6</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-C5RE/</fr:uri>
                        <fr:display-uri>efr-C5RE</fr:display-uri>
                        <fr:route>/efr-C5RE/</fr:route>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p><fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}^\to ]]></fr:tex>, as we have noted, is a Markov prefibration, and hence induces a stochastic module structure on <fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}^\to |_\mathrm {det}]]></fr:tex>. This structure does not present a Markov fibration. To see this, note that in that case its fiberwise opposite would also present a Markov fibration. Then this fibration, <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathsf {BorelStoch}^\to |_\mathrm {det})]]></fr:tex>, would be a prefibration whose deterministic part was <fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}^\to |_\mathrm {det}^\mathrm {fop}]]></fr:tex>. But <fr:link href="/efr-8B5X/" title="https://erischel.com/efr-8B5X/" uri="https://erischel.com/efr-8B5X/" display-uri="efr-8B5X" type="local">Example <fr:contextual-number uri="https://erischel.com/efr-8B5X/" display-uri="efr-8B5X" /></fr:link> shows that this is impossible.
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>6</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-8SXB/</fr:uri>
                        <fr:display-uri>efr-8SXB</fr:display-uri>
                        <fr:route>/efr-8SXB/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a Markov category with supports. Then the stochastic module induced by <fr:tex display="inline"><![CDATA[\mathcal {C}^\to  \to  \mathcal {C}]]></fr:tex> presents a Markov fibration. If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> has conditionals, this Markov fibration is isomorphic to <fr:tex display="inline"><![CDATA[\mathcal {C}^\to ]]></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>2025</fr:year><fr:month>4</fr:month><fr:day>6</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
<html:p>
  Given a section <fr:tex display="inline"><![CDATA[s: X \to  M:p]]></fr:tex> and <fr:tex display="inline"><![CDATA[\phi : A \times _X M \to  A \times _X A]]></fr:tex>, simply take the pullback to the support of <fr:tex display="inline"><![CDATA[s]]></fr:tex>. It must be the case that <fr:tex display="inline"><![CDATA[\phi (a,m) = (a,m)]]></fr:tex> <fr:tex display="inline"><![CDATA[s]]></fr:tex>-almost surely, which implies strict equality on the support. Hence by <fr:link href="/efr-TBZZ/" title="Construction of \mathsf {SChart}(\mathcal {D}_0)" uri="https://erischel.com/efr-TBZZ/" display-uri="efr-TBZZ" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-TBZZ/" display-uri="efr-TBZZ" /></fr:link>, <fr:tex display="inline"><![CDATA[\mathcal {C}^\to ]]></fr:tex> presents a Markov fibration.
</html:p>
<html:p>
  There is an induced map <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {C}^\to |_\mathrm {det}) \to  \mathcal {C}^\to ]]></fr:tex>, which we claim is an isomorphism. So consider a map in <fr:tex display="inline"><![CDATA[\mathcal {C}^\to ]]></fr:tex>:
  
  
  <html:figure><fr:resource hash="cfa47088a80c102ed79b40c0a5f3652a"><fr:resource-content><html:img src="/cfa47088a80c102ed79b40c0a5f3652a.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
      \bar {X} \ar [r] \ar [d] & \bar {Y}\ar [d]\\
      X \ar [r] & Y.
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>


  This map is in the image of
  
  <html:figure><fr:resource hash="0018a8fa104b5b3fde1cca0a8a0c14fd"><fr:resource-content><html:img src="/0018a8fa104b5b3fde1cca0a8a0c14fd.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
      \bar {X} \ar [r, bend left=30] \ar [d] & \bar {X} \times  Y \ar [r] \ar [d] & \bar {Y} \ar [d]\\
      X \ar [r, bend left= 30] & X \times  Y \ar [l] \ar [r] & Y,
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  where the map <fr:tex display="inline"><![CDATA[\bar {X} \times  Y \to  \bar {Y}]]></fr:tex> is taken to be a conditional. Note that every map in <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {C}^\to |_\mathrm {det})]]></fr:tex> can be represented in this form, by taking a conditional of <fr:tex display="inline"><![CDATA[M]]></fr:tex> given <fr:tex display="inline"><![CDATA[Y]]></fr:tex> to build a section to <fr:tex display="inline"><![CDATA[M \to  X \otimes  Y]]></fr:tex>. Since conditionals are almost-surely equal, by restricting to the support of <fr:tex display="inline"><![CDATA[X \to  X \otimes  Y]]></fr:tex>, we can find a representative which only depends on the overall map <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {Y},]]></fr:tex> which proves that the map from <fr:tex display="inline"><![CDATA[\mathsf {SChart}]]></fr:tex> is faithful, concluding the proof.

</html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Continuing from <fr:link href="/efr-CJTH/" title="Markov prefibrations over Cartesian base" uri="https://erischel.com/efr-CJTH/" display-uri="efr-CJTH" type="local">Example <fr:contextual-number uri="https://erischel.com/efr-CJTH/" display-uri="efr-CJTH" /></fr:link>, we have the following trivial case: 
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>8</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-Z75A/</fr:uri>
                        <fr:display-uri>efr-Z75A</fr:display-uri>
                        <fr:route>/efr-Z75A/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is Cartesian (even if it does not admit pullbacks), the definition of Markov fibration over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> still makes sense, the Markov fibrations are exactly the Grothendieck fibrations, and their fiberwise opposites are simply their fiberwise opposites in the usual sense.
</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>2025</fr:year><fr:month>4</fr:month><fr:day>8</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    This is trivial because <fr:tex display="inline"><![CDATA[\mathsf {MarkPreFib}(\mathcal {C}) \to  \mathsf {Fib}(\mathcal {C}_\mathrm {det} = \mathcal {C})]]></fr:tex> is simply the identity functor, hence it is monadic (with the identity monad,) hence every fibration/prefibration presents a Markov fibration, namely itself, and is in particular a Markov fibration. The fiberwise opposite is simply given by applying the identity (taking the stochastic module on the deterministic part), taking the fiberwise opposite, then applying the identity again (passing to the presented markov fibration).
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                    </fr:tree>
                    <html:p>
  It is worth noting that, even in the case where <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0^\mathrm {fop})]]></fr:tex> is not a prefibration, it may still deserve the name "stochastic lenses". For example the stochastic lenses in <fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}]]></fr:tex> can be seen to contain <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathsf {BorelStoch})]]></fr:tex> as a full subcategory, even though it does not form a Markov fibration (see <fr:link href="/efr-K6NM/" title="https://erischel.com/efr-K6NM/" uri="https://erischel.com/efr-K6NM/" display-uri="efr-K6NM" type="local">Theorem <fr:contextual-number uri="https://erischel.com/efr-K6NM/" display-uri="efr-K6NM" /></fr:link> below).
</html:p>
                    <html:p>
  Part of the motivation for the theory of dependent optics is to identify a category of stochastic optics which admits all coproducts. If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is distributive, <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C})]]></fr:tex> satisfies <fr:tex display="inline"><![CDATA[\binom {A}{X} + \binom {A}{Y} = \binom {A}{X+Y},]]></fr:tex> but this coproduct fails to exist in general if the two secondary objects are distinct. The idea is that this coproduct <fr:tex display="inline"><![CDATA[\binom {A}{X} + \binom {A'}{Y}]]></fr:tex> should exist as a family indexed by <fr:tex display="inline"><![CDATA[X + Y]]></fr:tex>, where <fr:tex display="inline"><![CDATA[E_x = A]]></fr:tex> for <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex>, and <fr:tex display="inline"><![CDATA[E_y = A']]></fr:tex> for <fr:tex display="inline"><![CDATA[y \in  Y]]></fr:tex>. Our theory accommodates this example under the mild additional hypothesis of <html:em>extensiveness</html:em></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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>6</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-B2P7/</fr:uri>
                        <fr:display-uri>efr-B2P7</fr:display-uri>
                        <fr:route>/efr-B2P7/</fr:route>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  A Markov category is said to be an <html:em>extensive Markov category</html:em> if it admits finite coproducts, whose injections are deterministic, and which satisfy the following equivalent conditions:
</html:p>
                        <html:ol><html:li>If we let <fr:tex display="inline"><![CDATA[\mathcal {C}_{/a}^\mathrm {det}]]></fr:tex> refer to the full subcategory of the slice spanned by the deterministic morphism <fr:tex display="inline"><![CDATA[x \to  a]]></fr:tex>, we have an equivalence of categories <fr:tex display="inline"><![CDATA[\mathcal {C}_{/a}^\mathrm {det} \times  \mathcal {C}_{/b}^\mathrm {det} \cong  \mathcal {C}_{/a + b}^\mathrm {det}]]></fr:tex>, given by taking coproducts</html:li>
  <html:li><fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> is an extensive category in the usual sense and the inclusion <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det} \to  \mathcal {C}]]></fr:tex> preserves pullbacks along coproduct inclusions.</html:li></html:ol>
                      </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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>6</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-QAV2/</fr:uri>
                        <fr:display-uri>efr-QAV2</fr:display-uri>
                        <fr:route>/efr-QAV2/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be an extensive Markov category, let <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \to  \mathcal {C}_\mathrm {det}]]></fr:tex> be a fibration which satisfies <fr:tex display="inline"><![CDATA[\mathcal {D}_{0,X+Y} = \mathcal {D}_{0,X} \times  \mathcal {D}_{0,Y}]]></fr:tex>. Note that this implies <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> admits finite coproducts, and they're given exactly by this pairing. Suppose <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> is equipped with a stochastic module structure. Then <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \hookrightarrow  \mathsf {SChart}(\mathcal {D}_0)]]></fr:tex> preserves the finite coproducts. In particular, <fr:tex display="inline"><![CDATA[\mathcal {D}_0^\mathrm {fop}]]></fr:tex> has the same coproducts as <fr:tex display="inline"><![CDATA[\mathcal {D}_0,]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathcal {D}_0^\mathrm {fop} \to  \mathsf {SLens}(\mathcal {D}_0)]]></fr:tex> preserves them 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>2025</fr:year><fr:month>4</fr:month><fr:day>6</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    This is straightforward to check---the residual <fr:tex display="inline"><![CDATA[M \to  X_1 + X_2]]></fr:tex> splits into <fr:tex display="inline"><![CDATA[M_1 + M_2]]></fr:tex> by extensivity of <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, which also implies the section must split as the copairing of a section <fr:tex display="inline"><![CDATA[s_1: X_1 \to  M_1, s_2: X_2 \to  M_2]]></fr:tex>. By the condition on the fibration, the map in the fiber over <fr:tex display="inline"><![CDATA[M]]></fr:tex> splits into a map over <fr:tex display="inline"><![CDATA[M_1]]></fr:tex> and a map over <fr:tex display="inline"><![CDATA[M_2]]></fr:tex>. Using the extensivity again, it is straightforward to see that this decomposition respects the equivalence relation. 
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                    </fr:tree>
                    <html:p>
  In particular, <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {C}^\to |_\mathrm {det}), \mathsf {SLens}(\mathcal {C}^\to |_\mathrm {det})]]></fr:tex> both admit coproducts given simply as coproducts in <fr:tex display="inline"><![CDATA[\mathcal {C}^\to ]]></fr:tex>, if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is extensive.
</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>2025</fr:year>
                          <fr:month>3</fr:month>
                          <fr:day>29</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-XFAO/</fr:uri>
                        <fr:display-uri>efr-XFAO</fr:display-uri>
                        <fr:route>/efr-XFAO/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Suppose <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> is a Markov fibration so that each pullback functor <fr:tex display="inline"><![CDATA[f^*: \mathcal {D}_Y \to  \mathcal {D}_X]]></fr:tex> for <fr:tex display="inline"><![CDATA[f: X \to  Y \in  \mathcal {C}_\mathrm {det}]]></fr:tex> can be taken to be bijective on objects, and that these can furthermore be chosen strictly functorial (so that <fr:tex display="inline"><![CDATA[(fg)^* = g^*f^*]]></fr:tex>). Then, writing objects <fr:tex display="inline"><![CDATA[\bar {X} \in  \mathcal {D}_X]]></fr:tex> as <fr:tex display="inline"><![CDATA[\binom {A \in  \mathcal {D}_*}{X \in  \mathcal {C}},]]></fr:tex> where <fr:tex display="inline"><![CDATA[A]]></fr:tex> is the unique object in <fr:tex display="inline"><![CDATA[\mathcal {D}_*]]></fr:tex> which pulls back to <fr:tex display="inline"><![CDATA[\bar {X}]]></fr:tex> under the deletion <fr:tex display="inline"><![CDATA[X \to  *,]]></fr:tex> (note that this means <fr:tex display="inline"><![CDATA[f^*\binom {A}{Y} = \binom {A}{X}]]></fr:tex>) we may characterize the fiberwise dual as having hom-sets
  <fr:tex display="block"><![CDATA[\mathcal {D}^{\mathrm {fop}}(\binom {A}{X},\binom {B}{Y}) = \mathcal {D}(\binom {B}{X},\binom {A}{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>2025</fr:year><fr:month>3</fr:month><fr:day>29</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    The correspondence in both directions is obvious by just formally reversing the direction of the map <fr:tex display="inline"><![CDATA[f: \binom {A}{M} \to  \binom {B}{M}]]></fr:tex> in a representing tuple <fr:tex display="inline"><![CDATA[X \leftarrow  M \to  Y, a: X \to  M, f]]></fr:tex>---the fact that this assignment respects the equivalence relation follows from the fact that the monad preserves fiberwise opposites.
  </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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>8</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-HWAZ/</fr:uri>
                    <fr:display-uri>efr-HWAZ</fr:display-uri>
                    <fr:route>/efr-HWAZ/</fr:route>
                    <fr:title text="
  Limits of Markov fibrations
">
  Limits of Markov fibrations
</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  The class of fibrations is stable under pullback. This turns <fr:tex display="inline"><![CDATA[\mathsf {Fib}(-)]]></fr:tex> into an indexed category, which represents a fibration over <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex>---this is the "global" category of fibrations <fr:tex display="inline"><![CDATA[\mathsf {Fib}]]></fr:tex>, whose objects are fibrations <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C},]]></fr:tex> and whose morphisms are commutative squares

  
  <html:figure><fr:resource hash="8c7acc7648a9e407cdf11812bfe9c61b"><fr:resource-content><html:img src="/8c7acc7648a9e407cdf11812bfe9c61b.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    \mathcal {D} \ar [r] \ar [d] & \mathcal {D}' \ar [d]\\
    \mathcal {C} \ar [r] & \mathcal {C}'
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>


  where the top map preserves Cartesian morphisms.
</html:p>
                    <html:p>
  By considering universal constructions like limits and colimits in <fr:tex display="inline"><![CDATA[\mathsf {Fib}]]></fr:tex>, additional fibrations can be constructed. It would similarly be useful to study limits in the category of Markov fibrations. Moreover, the products in <fr:tex display="inline"><![CDATA[\mathsf {Fib}]]></fr:tex> allow one to express notions of internal pseudomonoid---these turn out to be <html:em>monoidal fibrations</html:em>, and this is a key part of Moeller and Vasilakopoulou's treatment of the monoidal Grothendieck construction, <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>. Since we want to study monoidal Markov fibrations, we should study their limits.
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>9</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-9VAH/</fr:uri>
                        <fr:display-uri>efr-9VAH</fr:display-uri>
                        <fr:route>/efr-9VAH/</fr:route>
                        <fr:taxon>Lemma</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> be a Markov prefibration, and let <fr:tex display="inline"><![CDATA[F: \mathcal {C}' \to  \mathcal {C}]]></fr:tex> be any functor from another Markov category which preserves deterministic maps. Then the pullback <fr:tex display="inline"><![CDATA[\mathcal {D}' = \mathcal {D} \times _{\mathcal {C}} \mathcal {C}' \to  \mathcal {C}']]></fr:tex> is again a Markov prefibration, and the functor <fr:tex display="inline"><![CDATA[\mathcal {D}' \to  \mathcal {D}]]></fr:tex> preserves Cartesian maps.
</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>2025</fr:year><fr:month>4</fr:month><fr:day>9</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
<html:p>
  Since pullbacks compose, <fr:tex display="inline"><![CDATA[\mathcal {D}'|_\mathrm {det} \to  \mathcal {C}'_\mathrm {det}]]></fr:tex> is the pullback of <fr:tex display="inline"><![CDATA[\mathcal {D}|_\mathrm {det}]]></fr:tex> along <fr:tex display="inline"><![CDATA[\mathcal {C}'_\mathrm {det} \to  \mathcal {C}_\mathrm {det}]]></fr:tex>. Since fibrations are stable under pullback, this is a fibration.
</html:p>
<html:p>
  Now consider a triangle in <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex>:
</html:p>
<html:p><html:figure><fr:resource hash="9a66b4b1d181f43c0431a7485501a919"><fr:resource-content><html:img src="/9a66b4b1d181f43c0431a7485501a919.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
  \begin {tikzcd}
  & A \ar [d]\\
  X \ar [ur, "f"] \ar [r] & B,
  \end {tikzcd}
]]></fr:resource-source></fr:resource></html:figure></html:p>
<html:p>
  with <fr:tex display="inline"><![CDATA[X, A \to  B]]></fr:tex> deterministic, and let <fr:tex display="inline"><![CDATA[\bar {B}_X \to  \bar {B} \leftarrow  \bar {B}_A]]></fr:tex> be Cartesian maps lying over these. We must show there is a unique lift <fr:tex display="inline"><![CDATA[\bar {f}: \bar {B}_X \to  \bar {B}_A]]></fr:tex> rendering the lifted triangle commutative. By definition, to give such a morphism is to given one over <fr:tex display="inline"><![CDATA[F(f)]]></fr:tex>, and the triangle commutes if and only if its image in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> commutes.
</html:p>
<html:p>
  The triangle in <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex> goes to a triangle of the same class in <fr:tex display="inline"><![CDATA[\mathcal {C},]]></fr:tex> and the Cartesian maps go to Cartesian maps of the same type. Hence there is a unique lift of <fr:tex display="inline"><![CDATA[F(f)]]></fr:tex> of the given type, which is exactly what we needed to show.
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>9</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-Z8X4/</fr:uri>
                        <fr:display-uri>efr-Z8X4</fr:display-uri>
                        <fr:route>/efr-Z8X4/</fr:route>
                        <fr:taxon>Remark</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Given any functor <fr:tex display="inline"><![CDATA[F: \mathcal {C} \to  \mathcal {C}']]></fr:tex> between Markov categories, we may attempt to define an oplax monoidal structure <fr:tex display="inline"><![CDATA[F(X \otimes  Y) \to  F(X) \otimes  F(Y)]]></fr:tex> by pairing the projections.
</html:p>
                        <html:p>
  This is not necessarily a natural transformation. However, if it is, <fr:tex display="inline"><![CDATA[F]]></fr:tex> it automatically equips <fr:tex display="inline"><![CDATA[F]]></fr:tex> with the structure of an oplax monoidal functor. Recall that oplax monoidal functors carry comonoids to comonoids. An oplax monoidal functor between Markov categories preserves the given comonoids if and only if it is induced like this.
</html:p>
                        <html:p>
  Hence, there is at most one way to equip a functor between Markov categories with such a structure---it is a property, not extra structure. Call such a functor an <html:em>oplax Markov functor</html:em>. Note that oplax Markov functors preserve deterministic morphisms.
</html:p>
                        <html:p>
  (Fritz <fr:link href="/fritz-synthetic-markov-cats/" title="A synthetic approach to Markov kernels, conditional independence and theorems on sufficient statistics" uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" type="local">Reference <fr:contextual-number uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" /></fr:link> defines a <html:em>Markov functor</html:em> to be a <html:em>strong</html:em> monoidal functor which preserves the comonoids. Clearly this is a proper subset of our oplax markov functors.)
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>9</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-FNYQ/</fr:uri>
                        <fr:display-uri>efr-FNYQ</fr:display-uri>
                        <fr:route>/efr-FNYQ/</fr:route>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  We will denote by <fr:tex display="inline"><![CDATA[\mathsf {MarkPreFib}]]></fr:tex> the category whose objects are Markov prefibrations <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex>,
  and whose functors are commutative squares
  
  <html:figure><fr:resource hash="23e380a862b3e63f7e216c068b883739"><fr:resource-content><html:img src="/23e380a862b3e63f7e216c068b883739.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    \mathcal {D} \ar [r,"\bar {F}"] \ar [d] & \mathcal {D}'\ar [d]\\
    \mathcal {C} \ar [r, "F"] & \mathcal {C}'
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  where <fr:tex display="inline"><![CDATA[\bar {F}]]></fr:tex> preserves Cartesian maps, and <fr:tex display="inline"><![CDATA[F]]></fr:tex> is an oplax Markov functor.
</html:p>
                        <html:p>
  We will let <fr:tex display="inline"><![CDATA[\mathsf {Markov}^\mathrm {oplax}]]></fr:tex> denote the category of Markov categories and oplax Markov functors. Note that by <fr:link href="/efr-9VAH/" title="https://erischel.com/efr-9VAH/" uri="https://erischel.com/efr-9VAH/" display-uri="efr-9VAH" type="local">Lemma <fr:contextual-number uri="https://erischel.com/efr-9VAH/" display-uri="efr-9VAH" /></fr:link>, the forgetful functor <fr:tex display="inline"><![CDATA[\mathsf {MarkPreFib} \to  \mathsf {Markov}^\mathrm {oplax}]]></fr:tex> is a fibration.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  There is an obvious functor <fr:tex display="inline"><![CDATA[\mathsf {MarkPreFib} \to  \mathsf {Fib} \times _\mathsf {Cat} \mathsf {Markov}^\mathrm {oplax},]]></fr:tex> which carries a prefibration to the pair of its Markov category and its underlying fibration onto the deterministic part. On each fiber, this admits a left adjoint, as constructed in <fr:link href="/efr-GO6R/" title="Free Markov Prefibrations" uri="https://erischel.com/efr-GO6R/" display-uri="efr-GO6R" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-GO6R/" display-uri="efr-GO6R" /></fr:link>. By abstract nonsense these left adjoints commute <html:em>laxly</html:em> with the pullbacks---that is, given an oplax Markov functor <fr:tex display="inline"><![CDATA[f: \mathcal {C} \to  \mathcal {C}']]></fr:tex> and a map of fibrations <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {D}']]></fr:tex> over the deterministic part, there is an induced functor <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}} \to  \overline {\mathcal {D}'}]]></fr:tex> over <fr:tex display="inline"><![CDATA[f]]></fr:tex>, although this assignment does not preserve Cartesian squares.
</html:p>
                    <html:p>
  However this does give a functor <fr:tex display="inline"><![CDATA[\mathsf {Fib} \times _\mathsf {Cat} \mathsf {Markov}^\mathrm {oplax} \to  \mathsf {MarkPreFib}]]></fr:tex>, left adjoint to the restriction. The category of algebras over this monad is fibred over <fr:tex display="inline"><![CDATA[\mathsf {Markov}^\mathrm {oplax},]]></fr:tex> with each fiber being the category of stochastic modules over that markov category, and we get a global functor from <fr:tex display="inline"><![CDATA[\mathsf {MarkPreFib}]]></fr:tex>. In the same way, we get a global functor <fr:tex display="inline"><![CDATA[\mathsf {SChart}(-)]]></fr:tex> to <fr:tex display="inline"><![CDATA[\mathsf {Cat}^\to ]]></fr:tex> which carries each stochastic module <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \to  \mathcal {C}_\mathrm {det} \to  \mathcal {C}]]></fr:tex> to the functor <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0) \to  \mathcal {C}]]></fr:tex></html:p>
                    <html:p>
  We would like to study the limits in here. At this point, we are forced to consider for a moment a bit of higher category theory. Structures on a category defined "up to isomorphism" generally don't play well together with limits in the category <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex>, since they are defined "up to equality". For example, we cannot infer from the fact that <fr:tex display="inline"><![CDATA[\mathcal {C},\mathcal {D}]]></fr:tex> have products and the functors <fr:tex display="inline"><![CDATA[F,G: \mathcal {C} \rightrightarrows  \mathcal {D}]]></fr:tex> preserve them that the equalizer of <fr:tex display="inline"><![CDATA[F,G]]></fr:tex> has products, since given <fr:tex display="inline"><![CDATA[A,B]]></fr:tex> in the equalizer, we have <fr:tex display="inline"><![CDATA[F(A \times  B) \cong  G(A \times  B)]]></fr:tex>, but not necessarily equality!
</html:p>
                    <html:p>
  For the moment we will restrict ourselves to limits of <html:em>strict</html:em> (and in particular, strong) monoidal Markov functors, since these always exist. In general one should probably consider some form of homotopy limit, but we will not go into that now. We clearly have:
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>9</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-OMMA/</fr:uri>
                        <fr:display-uri>efr-OMMA</fr:display-uri>
                        <fr:route>/efr-OMMA/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathsf {Markov}_s \subseteq  \mathsf {Markov}^\mathrm {oplax}]]></fr:tex> denote the subcategory of <html:em>strictly monoidal</html:em> Markov functors (i.e those where the oplaxator <fr:tex display="inline"><![CDATA[F(X \otimes  Y) \to  F(X) \otimes  F(Y)]]></fr:tex> is the <html:em>identity</html:em>).
</html:p>
                        <html:ol><html:li><fr:tex display="inline"><![CDATA[\mathsf {Markov}_s]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathsf {Markov}^\mathrm {oplax}]]></fr:tex> admit all products, computed simply as products in <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex>.
  </html:li>
  <html:li><fr:tex display="inline"><![CDATA[\mathsf {Markov}_s]]></fr:tex> admits all finite limits, and these are preserved by the inclusion into <fr:tex display="inline"><![CDATA[\mathsf {Markov}^\mathrm {oplax}]]></fr:tex></html:li></html:ol>
                      </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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>11</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-G0AN/</fr:uri>
                        <fr:display-uri>efr-G0AN</fr:display-uri>
                        <fr:route>/efr-G0AN/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  The category <fr:tex display="inline"><![CDATA[\mathsf {MarkPreFib}(\mathcal {C})]]></fr:tex> admits all products, and pullbacks along isofibrations. These are simply computed as limits in <fr:tex display="inline"><![CDATA[\mathsf {Cat}_{/\mathcal {C}}]]></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>2025</fr:year><fr:month>4</fr:month><fr:day>11</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    It is immediately apparent that products (that is, pullbacks over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>) of prefibrations are again prefibrations, since the Cartesian lifts can simply be computed coordinatewise, and the uniqueness property checked coordinatewise.
  </html:p>
  <html:p>
    Let <fr:tex display="inline"><![CDATA[\mathcal {D} \times _\mathcal {E} \mathcal {D}']]></fr:tex> be a pullback of Markov prefibrations, with <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {E}]]></fr:tex> an isofibration. (Note that their pullback in <fr:tex display="inline"><![CDATA[\mathsf {Cat}_{/\mathcal {C}}]]></fr:tex> is simply their pullback in <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex>). First note that since limits commute, the deterministic part is given by <fr:tex display="inline"><![CDATA[\mathcal {D}_\mathrm {det} \times _{\mathcal {E}_\mathrm {det}} \mathcal {D}'_\mathrm {det}]]></fr:tex>. Thus to prove this is a fibration, it suffices to note that fibrations are stable under pullback along isofibrations. Given <fr:tex display="inline"><![CDATA[f: X \to  Y \in  \mathcal {C}]]></fr:tex> and two lifts <fr:tex display="inline"><![CDATA[\bar {Y},\bar {Y}']]></fr:tex> which are identified in <fr:tex display="inline"><![CDATA[\bar {E},]]></fr:tex> we get two Cartesian lifts <fr:tex display="inline"><![CDATA[f^*\bar {Y} \to  \bar {Y}, f^*\bar {Y}' \to  \bar {Y}']]></fr:tex>. These go to two Cartesian lifts in <fr:tex display="inline"><![CDATA[\mathcal {E}]]></fr:tex>, and are therefore identified <html:em>up to isomorphism,</html:em> but we can lift this isomorphism to <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> and obtain a pair of lifts in the strict pullback---this is a Cartesian lift.
  </html:p>
  <html:p>
    Since Cartesian lifts are given by pointwise Cartesian lifts, given a triangle <fr:tex display="inline"><![CDATA[X \to  Y \leftarrow  Z]]></fr:tex> and a stochastic lift <fr:tex display="inline"><![CDATA[X \to  Y,]]></fr:tex> we have a unique lift in both <fr:tex display="inline"><![CDATA[\mathcal {D}, \mathcal {D}']]></fr:tex>. These both go to lifts in <fr:tex display="inline"><![CDATA[\mathcal {E}]]></fr:tex>---since such a lift is also unique, they are identified. Hence there is a unique lift in the pullback.
  </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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>10</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-FXBP/</fr:uri>
                        <fr:display-uri>efr-FXBP</fr:display-uri>
                        <fr:route>/efr-FXBP/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  The functor <fr:tex display="inline"><![CDATA[\overline {(-)}: \mathsf {Fib} \times _\mathsf {Cat} \mathsf {Markov}^\mathrm {oplax} \to  \mathsf {MarkPreFib}]]></fr:tex> preserves products. 
</html:p><html:p>
  For each Markov category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> with weak conditionals, <fr:tex display="inline"><![CDATA[\overline {(-)}: \mathsf {Fib}(\mathcal {C}_\mathrm {det}) \to  \mathsf {MarkPreFib}(\mathcal {C})]]></fr:tex> preserves the terminal object, and pullbacks along isofibrations.
</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>2025</fr:year><fr:month>4</fr:month><fr:day>10</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    The product-preservation is clear from the description of <fr:tex display="inline"><![CDATA[\overline {(-)}]]></fr:tex>. Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> admit weak conditionals. It suffices to show that <fr:tex display="inline"><![CDATA[\overline {(-)}]]></fr:tex> preserves the terminal object and pullbacks in <fr:tex display="inline"><![CDATA[\mathsf {Fib}(\mathcal {C}_\mathrm {det})]]></fr:tex></html:p>
  <html:p>
    The terminal fibration is <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det} \to  \mathcal {C}_\mathrm {det}]]></fr:tex>. Clearly the terminal Markov prefibration is <fr:tex display="inline"><![CDATA[\mathcal {C} \to  \mathcal {C},]]></fr:tex> so we must show that <fr:tex display="inline"><![CDATA[\overline {\mathcal {C}_\mathrm {det}} \to  \mathcal {C}]]></fr:tex> is an isomorphism.
  </html:p>
  <html:p>
    Its morphisms are simply spans <fr:tex display="inline"><![CDATA[X \leftarrow  M \to  Y]]></fr:tex> with the left leg equipped with a stochastic section <fr:tex display="inline"><![CDATA[s:X \to  M]]></fr:tex>, which goes to the composite <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex>. As noted before, this is clearly <html:em>full,</html:em> by taking <fr:tex display="inline"><![CDATA[M = X \otimes  Y]]></fr:tex>, and faithful because the pairing <fr:tex display="inline"><![CDATA[M \to  X \otimes  Y]]></fr:tex> exhibits the equality of this canonical representative with any other.
  </html:p>
  <html:p>
    Now let <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {E} \leftarrow  \mathcal {D}']]></fr:tex> be a cospan of fibrations over <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex>, with <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {E}]]></fr:tex> an isofibration, and consider the pullback <fr:tex display="inline"><![CDATA[\mathcal {D} \times _\mathcal {E} \mathcal {D}']]></fr:tex>. There is a natural transformation
    <fr:tex display="block"><![CDATA[\overline {\mathcal {D} \times _\mathcal {E} \mathcal {D}'} \to  \overline {\mathcal {D}} \times _{\overline {\mathcal {E}}} \overline {\mathcal {D}'}]]></fr:tex>
    which we must show to be an isomorphism.
  </html:p>
  <html:p>
    Maps on the left-hand side are given by a span <fr:tex display="inline"><![CDATA[X \leftarrow  M \to  Y]]></fr:tex>, a stochastic section <fr:tex display="inline"><![CDATA[X \to  M]]></fr:tex>, and a map in the pullback of the fibers <fr:tex display="inline"><![CDATA[\mathcal {D}_M \times _{\mathcal {E}_M} \mathcal {D}'_M]]></fr:tex>. A map on the right-hand side is given by two spans each equipped with a map, so that they become identified in <fr:tex display="inline"><![CDATA[\overline {\mathcal {E}}]]></fr:tex>. Let the apexes of the two spans be <fr:tex display="inline"><![CDATA[M, M']]></fr:tex>. It suffices to consider the case of a span <fr:tex display="inline"><![CDATA[M \leftarrow  K \to  M']]></fr:tex> with a common lifting <fr:tex display="inline"><![CDATA[X \to  K]]></fr:tex>, so that the pullbacks of the two maps to <fr:tex display="inline"><![CDATA[\mathcal {E}_K]]></fr:tex> agree. But then the original maps may also be pulled back to have <fr:tex display="inline"><![CDATA[K]]></fr:tex> as the underlying span, and thus are in the completion of the pullback.
  </html:p>
  <html:p>
    Similarly, given two maps which become identified in the image, we can again use the identifying maps in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> to identify the original maps, proving faithfulness. This finishes 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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>29</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-TZ9L/</fr:uri>
                        <fr:display-uri>efr-TZ9L</fr:display-uri>
                        <fr:route>/efr-TZ9L/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  For any (pullback-positive) <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, the monad <fr:tex display="inline"><![CDATA[\overline {(-)}|_\mathrm {det}]]></fr:tex> on <fr:tex display="inline"><![CDATA[\mathsf {Fib}(\mathcal {C}_\mathrm {det})]]></fr:tex> preserves products.
</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>2025</fr:year><fr:month>4</fr:month><fr:day>29</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    There is a canonical map <fr:tex display="inline"><![CDATA[\overline {\mathcal {D} \times _\mathcal {C} \mathcal {D}'}|_\mathrm {det} \to  \bar {\mathcal {D}}|_\mathrm {det} \times _\mathcal {C} \bar {\mathcal {D}}|_\mathrm {det}]]></fr:tex>. Clearly the deterministic parts are both isomorphic to <fr:tex display="inline"><![CDATA[\mathcal {D} \times _\mathcal {C} \mathcal {D}']]></fr:tex>, and so on this part it is an isomorphism---in particular, bijective on objects. To see it is full, consider an morphism in the codomain, given by a pair of maps <fr:tex display="inline"><![CDATA[M', M \to  X]]></fr:tex>, sections <fr:tex display="inline"><![CDATA[s: X \to  M, s': X\to  M',]]></fr:tex> and maps <fr:tex display="inline"><![CDATA[\phi  ,\phi ']]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathcal {D}_M, \mathcal {D}'_{M'}]]></fr:tex>. Then this pair is equivalent to <fr:tex display="inline"><![CDATA[M \times _X M']]></fr:tex> equipped with the pairing <fr:tex display="inline"><![CDATA[\langle  s,s' \rangle : X \to  M \times _X M']]></fr:tex> and the pullbacks of <fr:tex display="inline"><![CDATA[\phi ,\phi ']]></fr:tex>, which is in the image. Given two maps <fr:tex display="inline"><![CDATA[M \to  N, M' \to  N']]></fr:tex> witnessing equations with another pair of maps, it's easy to see that this lifts to a map <fr:tex display="inline"><![CDATA[M \times _X M' \to  N \times _X N']]></fr:tex> witnessing the identity between these, so it's faithful. This 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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>11</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-UF7B/</fr:uri>
                        <fr:display-uri>efr-UF7B</fr:display-uri>
                        <fr:route>/efr-UF7B/</fr:route>
                        <fr:taxon>Lemma</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  The property of having weak supports is stable under equalizers in stochastic module fibrations over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> has weak conditionals, it is also stable under finite products (hence all finite limits).
</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>2025</fr:year><fr:month>4</fr:month><fr:day>11</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    (Note that stochastic modules themselves do not admit all finite limits, requiring some sort of isofibration property---we merely claim here that if the limit exists, it again admits weak supports)
  </html:p>
  <html:p>
    It is clear that the terminal object <fr:tex display="inline"><![CDATA[1_\mathcal {C}: \mathcal {C} \to  \mathcal {C}]]></fr:tex> has weak supports (regardless of <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>).
    Given an equalizer <fr:tex display="inline"><![CDATA[\mathcal {E} \hookrightarrow  \mathcal {D} \rightrightarrows  \mathcal {D}']]></fr:tex>, if <fr:tex display="inline"><![CDATA[M \to  X]]></fr:tex> is a deterministic map with a stochastic section and <fr:tex display="inline"><![CDATA[\phi : \bar {X}_M \to  \bar {X}_M]]></fr:tex> is a map in <fr:tex display="inline"><![CDATA[\mathcal {E}_M]]></fr:tex> which goes to the identity in <fr:tex display="inline"><![CDATA[\mathcal {E}_X]]></fr:tex>, find a factorization <fr:tex display="inline"><![CDATA[X \to  N \to  M]]></fr:tex> so that the image in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> pulls back to the identity over <fr:tex display="inline"><![CDATA[N]]></fr:tex>. Then clearly the same is true for <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex> itself.
  </html:p>
  <html:p>
    Now consider a product <fr:tex display="inline"><![CDATA[\mathcal {D} \times _{\mathcal {C}} \mathcal {D}']]></fr:tex>. The point is that given a pair of maps that go to the identity, we can find <fr:tex display="inline"><![CDATA[N_0 \to  M, N_1 \to  M]]></fr:tex> where the pullbacks are the identity. We form the pullback <fr:tex display="inline"><![CDATA[N_0 \times _M N_1,]]></fr:tex> and use the weak conditionals to find a common lift of the two given sections to this. This gives the required weak supports.
  </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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>26</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-LTEL/</fr:uri>
                    <fr:display-uri>efr-LTEL</fr:display-uri>
                    <fr:route>/efr-LTEL/</fr:route>
                    <fr:title text="Monoidal Markov Fibrations">Monoidal Markov Fibrations</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Recall that if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is symmetric monoidal, <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C})]]></fr:tex> inherits a symmetric monoidal structure. At the same time, if <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> is a monoidal fibration, the fiberwise opposite retains a monoidal structure. Since these monoidal structures play an important role both in compositional game theory (where it would not be much of an exaggeration to say the entire point is to use string diagrammatic syntax to work with games) and in categorical systems theory, it is clearly important to understand the monoidal structure on Markov fibrations. Luckily, as we will see in this section, there are essentially no difficulties in accounting for the monoidal structure.
</html:p>
                    <html:p>
  The theory of monoidal fibrations has been developed by Moeller and Vasilakopoulou, <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>, and Shulman <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>. We briefly sketch it here for convenience. There are essentially two available notions of monoidal fibration:
</html:p>
                    <html:ol><html:li>
    For any category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, the 2-category <fr:tex display="inline"><![CDATA[\mathsf {Fib}(\mathcal {C})]]></fr:tex> admits products, and we can ask for an internal pseudomonoid in this 2-category. This is equivalent to asking for a functor <fr:tex display="inline"><![CDATA[\mathcal {C}^\mathrm {op} \to  \mathsf {MonCat}]]></fr:tex>---in other words, for a monoidal structure on each fiber so that the base-change functors become (strong) monoidal.
  </html:li>
  <html:li>
    The global category of fibrations <fr:tex display="inline"><![CDATA[\mathsf {Fib}]]></fr:tex> admits products, and we may ask for an internal pseudomonoid here. This is what Shulman calls a monoidal fibration: a fibration where <fr:tex display="inline"><![CDATA[\mathcal {D}, \mathcal {C}]]></fr:tex> both come equipped with monoidal structures, the fibration is a <html:em>strict</html:em> monoidal functor, and Cartesian maps are stable under monoidal product.
  </html:li></html:ol>
                    <html:p>
  By a result of Moeller and Vasilakopoulou, these notions coincide in the case where <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is Cartesian monoidal. Since we are only interested in ordinary fibrations over <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det},]]></fr:tex> which is indeed Cartesian, we may apply this result. However, our notion of monoidal Markov fibration will be a modified version of the latter.
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>25</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-CSLQ/</fr:uri>
                        <fr:display-uri>efr-CSLQ</fr:display-uri>
                        <fr:route>/efr-CSLQ/</fr:route>
                        <fr:title text="Monoidal markov prefibration">Monoidal markov prefibration</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  A <html:em>monoidal Markov prefibration</html:em> is a markov prefibration <fr:tex display="inline"><![CDATA[p: \mathcal {D} \to  \mathcal {C}]]></fr:tex> equipped with a monoidal category structure on <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> so that <fr:tex display="inline"><![CDATA[p]]></fr:tex> is <html:em>strict</html:em> monoidal and so that the underlying fibration is a monoidal fibration (i.e so that <fr:tex display="inline"><![CDATA[p]]></fr:tex> preserves Cartesian lifts).
</html:p>
                        <html:p>
  A <html:em>braided</html:em> or <html:em>symmetric</html:em> monoidal Markov prefibration is a monoidal prefibration equipped with a braiding or symmetry on <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> so that <fr:tex display="inline"><![CDATA[p]]></fr:tex> is moreover a braided monoidal functor.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Note that a monoidal Markov prefibration is the same thing as an internal pseudomonoid in the global category of prefibrations. We will not delve further into this point, however.
</html:p>
                    <html:p>
  We will need this lemma:
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>26</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-7GH5/</fr:uri>
                        <fr:display-uri>efr-7GH5</fr:display-uri>
                        <fr:route>/efr-7GH5/</fr:route>
                        <fr:taxon>Lemma</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[F,G: \mathcal {C}' \rightrightarrows  \mathcal {C}]]></fr:tex>, <fr:tex display="inline"><![CDATA[S: \mathcal {C} \to  \mathcal {C}']]></fr:tex> be a reflexive pair of identity-on-objects, strict monoidal functors.
  Let <fr:tex display="inline"><![CDATA[E: \mathcal {C} \to  \mathcal {D}]]></fr:tex> be the coequalizer in <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex>. Then <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> inherits a monoidal structure making <fr:tex display="inline"><![CDATA[E]]></fr:tex> strict monoidal.
  Moreover, if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is symmetric or braided, <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> inherits this structure making <fr:tex display="inline"><![CDATA[E]]></fr:tex> a braided functor.
</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>2025</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 only thing to check is that the equivalence relation on morphisms is stable under tensoring. But this is clear: let <fr:tex display="inline"><![CDATA[f : X \to  Y \in  \mathcal {C}', g: A \to  B \in  \mathcal {C}]]></fr:tex>.
  Then <fr:tex display="inline"><![CDATA[f \otimes  S(g)]]></fr:tex> witnesses the identification of <fr:tex display="inline"><![CDATA[F(f) \otimes  g]]></fr:tex> and <fr:tex display="inline"><![CDATA[G(f) \otimes  g]]></fr:tex>. Tensoring on the right is analogous. This finishes the proof for the monoidal structure.
</html:p>
<html:p>
  In the braided or symmetric case, it is clear that the image of the braiding of <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> becomes a braiding on <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> it clearly satisfies the coherence equations (being a quotient), and naturality follows by simply choosing representatives and noting that the tensor in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> is defined by tensoring representatives in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. Finally if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is symmetric clearly the equation <fr:tex display="inline"><![CDATA[\sigma _{A,B}\sigma _{B,A} = 1]]></fr:tex> passes to <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>. 
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>25</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-85DX/</fr:uri>
                        <fr:display-uri>efr-85DX</fr:display-uri>
                        <fr:route>/efr-85DX/</fr:route>
                        <fr:taxon>Theorem</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:ol><html:li>
    The free prefibration monad on <fr:tex display="inline"><![CDATA[\mathsf {Fib}(\mathcal {C}_\mathrm {det})]]></fr:tex> has a canonical lifting to <fr:tex display="inline"><![CDATA[\mathsf {MonFib}(\mathcal {C}_\mathrm {det})]]></fr:tex></html:li>
  <html:li>
    Given a monoidal prefibration, its underlying stochastic module acquires the structure of an algebra of this lifted monad.
  </html:li>
  <html:li>
    Given an algebra for the lifted monad <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex>, <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex> acquires a monoidal structure so that <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0) \to  \mathcal {C}]]></fr:tex> is a strict monoidal functor.
  </html:li>
  <html:li>
    If <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> moreover has weak supports, this forgetful functor is a monoidal prefibration.
  </html:li>
  <html:p>
    Every statement holds also for braided or symmetric fibrations.
  </html:p></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>2025</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>By <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>, <fr:tex display="inline"><![CDATA[\mathsf {MonFib}(\mathcal {C}_\mathrm {det})]]></fr:tex> is equivalent to the category of pseudomonoids in <fr:tex display="inline"><![CDATA[\mathsf {Fib}(\mathcal {C}_det)]]></fr:tex>. Since the monad preserves products, it must preserve pseudomonoids, which is all we need.</html:p>
  <html:p>Now suppose <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> is a monoidal prefibration. Then its underlying fibration is a monoidal fibration, hence an object of <fr:tex display="inline"><![CDATA[\mathsf {MonFib}(\mathcal {C}_\mathrm {det})]]></fr:tex>. The claim is that the functor <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}|_\mathrm {det}}|_\mathrm {det} \to  \mathcal {D}|_\mathrm {det}]]></fr:tex> is monoidal. The induced monoidal structure is given on objects by <fr:tex display="inline"><![CDATA[\otimes _\mathcal {D}]]></fr:tex> and takes a pair of morphisms in the fiber represented by sections <fr:tex display="inline"><![CDATA[(s: X \to  M, \phi : \bar {X_0}_M) \to  \bar {X_1}_M]]></fr:tex> and <fr:tex display="inline"><![CDATA[s': X \to  M', \phi ': \bar {X'_0}_M \to  \bar {X'_1}_M]]></fr:tex> to <fr:tex display="inline"><![CDATA[\langle  s,s' \rangle  : X \to  M \times _X M', \pi _M^*\phi  \otimes _\mathcal {D} \pi _{M'}^*\phi ']]></fr:tex>. Recalling that the algebra structure is defined by taking <fr:tex display="inline"><![CDATA[(s,\phi )]]></fr:tex> to the composite <fr:tex display="inline"><![CDATA[\bar {X_0} \to  \bar {X_0}_M \xrightarrow {\phi } \bar {X_1}_M \to  \bar {X_1},]]></fr:tex> and chasing the below diagram around, it is apparent that the algebra structure preserves the monoidal structure.
  </html:p>
  <html:p><html:figure><fr:resource hash="4bcd814d2389eff897d3addf7d09ab26"><fr:resource-content><html:img src="/4bcd814d2389eff897d3addf7d09ab26.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    & M\times _X M' \ar [dr] \ar [dl] & \\
    M \ar [dr] \ar [ur, bend left=20] & & M' \ar [dl] \ar [ul, bend right=20]\\
    & X \ar [ur, bend right=20] \ar [ul, bend left=20]
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure></html:p>
  <html:p>
    Now let <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> be a monoidal stochastic module in this sense. It suffices to show that the free prefibration <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}_0}]]></fr:tex> is a monoidal prefibration, by <fr:link href="/efr-7GH5/" title="https://erischel.com/efr-7GH5/" uri="https://erischel.com/efr-7GH5/" display-uri="efr-7GH5" type="local">Lemma <fr:contextual-number uri="https://erischel.com/efr-7GH5/" display-uri="efr-7GH5" /></fr:link>, and the induced functor <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0) \to  \mathcal {C}]]></fr:tex> will clearly be strict monoidal if <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}_0} \to  \mathcal {C}]]></fr:tex> is.
  </html:p>
  <html:p>
    To construct this monoidal structure on <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex>, simply note that since <fr:tex display="inline"><![CDATA[\overline {(-)}]]></fr:tex> preserves global limits as well, there is an induced monoidal structure on <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}_0}]]></fr:tex> so that the forgetful functor is strict monoidal. Recalling that the Cartesian lifts of <fr:tex display="inline"><![CDATA[f: X \to  Y \in  \mathcal {C}]]></fr:tex> to <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}_0}]]></fr:tex> are given by the span <fr:tex display="inline"><![CDATA[X = X \to  Y]]></fr:tex> and the morphism <fr:tex display="inline"><![CDATA[1_{f^*\bar {Y}}]]></fr:tex>, it is easy to see by unwinding the definition that these are stable under tensor.
  </html:p>
  <html:p>
    If <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> has weak supports, we have already proven that <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0) \to  \mathcal {C}]]></fr:tex> is a strict monoidal functor, and weak supports are equivalent to the claim that it is a prefibration. Since the Cartesian lifts are just the equivalence classes of the Cartesian lifts in <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}_0},]]></fr:tex> the preceding claim that they are stable under tensor implies the same for <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0),]]></fr:tex> finishing the proof.
  </html:p>
  <html:p>
    The last point is mostly trivial. The product preservation still establishes the lifting to <fr:tex display="inline"><![CDATA[\mathsf {BrMonFib}(\mathcal {C}_\mathrm {det})]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathsf {SymMonFib}(\mathcal {C}_\mathrm {det})]]></fr:tex>. Given a braided or symmetric monoidal prefibration, the braidings are Cartesian and in the deterministic part, so the underlying fibration is braided/symmetric and they are preserves by the stochastic module structure. The braiding/symmetry on <fr:tex display="inline"><![CDATA[\mathsf {SChart}]]></fr:tex> follows again from <fr:link href="/efr-7GH5/" title="https://erischel.com/efr-7GH5/" uri="https://erischel.com/efr-7GH5/" display-uri="efr-7GH5" type="local">Lemma <fr:contextual-number uri="https://erischel.com/efr-7GH5/" display-uri="efr-7GH5" /></fr:link>, and there is nothing to show for the last point.
  </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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>26</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-T9F4/</fr:uri>
                        <fr:display-uri>efr-T9F4</fr:display-uri>
                        <fr:route>/efr-T9F4/</fr:route>
                        <fr:title text="Monoidal Markov fibration">Monoidal Markov fibration</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>A <html:em>monoidal Markov fibration</html:em> is a monoidal prefibration <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> which is a Markov fibration. It is <html:em>braided</html:em> or <html:em>symmetric</html:em> if it is braided or symmetric as a prefibration</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>26</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-KMX6/</fr:uri>
                        <fr:display-uri>efr-KMX6</fr:display-uri>
                        <fr:route>/efr-KMX6/</fr:route>
                        <fr:taxon>Remark</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Since <fr:tex display="inline"><![CDATA[\overline {(-)}]]></fr:tex> preserves both global products and fiberwise ones, it induces both a fiberwise monoidal structure and a "global" monoidal structure on <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}_0}]]></fr:tex>. Here we only use the global one. If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> were Cartesian, the global one would be induced from the local one by, given maps <fr:tex display="inline"><![CDATA[\bar {X_1} \to  \bar {X_2}, \bar {Y_1} \to  \bar {Y_2},]]></fr:tex> pulling each of them back along the square
  
  <html:figure><fr:resource hash="fb0d1cfb8a11b6dde83c1ba486eb2d64"><fr:resource-content><html:img src="/fb0d1cfb8a11b6dde83c1ba486eb2d64.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    X_1 \otimes  Y_1 \ar [d] \ar [r] & X_2 \otimes  Y_2 \ar [d]\\
    X_1 \ar [r]& X_2
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  (and the analogous one for <fr:tex display="inline"><![CDATA[Y]]></fr:tex>) and tensoring them over <fr:tex display="inline"><![CDATA[X_1\otimes  Y_1]]></fr:tex>. In a Markov prefibration, of course, these pullbacks are not unique unless <fr:tex display="inline"><![CDATA[X_1 \to  X_2]]></fr:tex> is deterministic, but there are "canonical" lifts given by tensoring globally with the (fiberwise) unit map over <fr:tex display="inline"><![CDATA[Y_1 \to  Y_2]]></fr:tex>, and the global tensor is indeed given by the tensor of these canonical lifts (this doesn't provide a noncircular definition of the global tensor, of course). This provides a consistency relation between the two tensor products. Again, we will not dwell on this point.
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>30</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-P4T0/</fr:uri>
                        <fr:display-uri>efr-P4T0</fr:display-uri>
                        <fr:route>/efr-P4T0/</fr:route>
                        <fr:title text="Markov structure on stochastic charts">Markov structure on stochastic charts</fr:title>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> be a monoidal stochastic module fibration over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> and suppose each fiber <fr:tex display="inline"><![CDATA[\mathcal {D}_X]]></fr:tex> is a Markov category, and this structure is preserved by the pullback functors <fr:tex display="inline"><![CDATA[f^*]]></fr:tex>.
  Then <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D})]]></fr:tex> carries the structure of a Markov category, so that <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}) \to  \mathcal {C}]]></fr:tex> is a Markov functor.
</html:p><html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> is a Markov prefibration which is also a strict Markov functor, the induced monoidal structure on <fr:tex display="inline"><![CDATA[\mathcal {D}|_\mathrm {det}]]></fr:tex> acquires a fiberwise Markov structure.
</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>2025</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>
    Every equation in the definition of Markov category involves only deterministic maps, so this can be verified entirely over <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex>. Thus this reduces to the claim: given a monoidal fibration over a Cartesian base, if each fiber has a Markov structure, the global monoidal structure has one as well.
    Given an object <fr:tex display="inline"><![CDATA[\bar {X} = {\bar {X} \choose  X},]]></fr:tex> a map <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {X} \otimes  \bar {X}]]></fr:tex> is by definition a map <fr:tex display="inline"><![CDATA[f: X \to  X \otimes  X]]></fr:tex> plus a map <fr:tex display="inline"><![CDATA[\bar {X} \to  f^*(\bar {X} \otimes  \bar {X})]]></fr:tex>. Taking <fr:tex display="inline"><![CDATA[f]]></fr:tex> to be the copy map, the codomain there is by definition the monoidal product in the fiber <fr:tex display="inline"><![CDATA[\mathcal {D}_X,]]></fr:tex> and so we simply use the copying map of the fiberwise monoidal structure.
  </html:p>
  <html:p>
    Given a Markov structure on the total category <fr:tex display="inline"><![CDATA[\mathcal {D},]]></fr:tex> we simply apply this idea in reverse and take the map <fr:tex display="inline"><![CDATA[\bar {X} \to  \mathrm {copy}_X^*(\bar (X) \otimes  \bar {X}) =: \bar {X} \otimes _X \bar {X}]]></fr:tex> to be the copy map.
  </html:p>
  <html:p>
    The deletion maps can be handled in an analogous way.
  </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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>30</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-FT8J/</fr:uri>
                        <fr:display-uri>efr-FT8J</fr:display-uri>
                        <fr:route>/efr-FT8J/</fr:route>
                        <fr:taxon>Corollary</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> be a stochastic module fibration, and suppose each fiber has <html:em>coproducts,</html:em> and these are preserved by the pullback functors. Then <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathcal {D})]]></fr:tex> is a Markov category, with monoidal structure given by 
  <fr:tex display="block"><![CDATA[\binom {\bar {X}}{X} \& \binom {\bar {Y}}{Y} = \binom {\pi _X^*\bar {X} + \pi _Y^*\bar {Y}}{X \otimes  Y}]]></fr:tex></html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  The Markov structure of <fr:link href="/efr-FT8J/" title="https://erischel.com/efr-FT8J/" uri="https://erischel.com/efr-FT8J/" display-uri="efr-FT8J" type="local">Corollary <fr:contextual-number uri="https://erischel.com/efr-FT8J/" display-uri="efr-FT8J" /></fr:link> is a generalization of the fact that, if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> has products and coproducts, and the products distribute over the coproducts, then <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C})]]></fr:tex> has products given by <fr:tex display="inline"><![CDATA[\binom {A}{X} \times  \binom {B}{Y} \cong  \binom {A \coprod  B}{X \times  Y}]]></fr:tex>. See eg <fr:link href="/hedges-morphisms-open-games/" title="Morphisms of Open Games" uri="https://erischel.com/hedges-morphisms-open-games/" display-uri="hedges-morphisms-open-games" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-morphisms-open-games/" display-uri="hedges-morphisms-open-games" /></fr:link>, section 8 for more on this.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>28</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-IMLW/</fr:uri>
                    <fr:display-uri>efr-IMLW</fr:display-uri>
                    <fr:route>/efr-IMLW/</fr:route>
                    <fr:title text="Examples">Examples</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  We have already noted several examples throughout. We'll gather a few more here, and also collect a few scattered throughout to make the picture more clear.
</html:p>
                    <html:p>First, let us make explicit the example of optics, as strongly as it can be stated</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>28</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-A6YR/</fr:uri>
                        <fr:display-uri>efr-A6YR</fr:display-uri>
                        <fr:route>/efr-A6YR/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> act on <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>. Then <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {C}(\mathcal {D}) := \mathsf {Optic}_\mathcal {C}(\mathcal {C},\mathcal {D})]]></fr:tex> has a functor to <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. The deterministic part <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {C}(\mathcal {D})|_\mathrm {det}]]></fr:tex> admits the structure of a stochastic module fibration. There is an isomorphism <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {C}(\mathcal {D}) \to  \mathsf {SChart}(\mathsf {Optic}_\mathcal {C}(\mathcal {D})|_\mathrm {det})]]></fr:tex>. 
</html:p><html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> is itself symmetric monoidal and the action is symmetric (meaning it is given by <fr:tex display="inline"><![CDATA[M \cdot  A = F(M) \otimes  A]]></fr:tex> for some symmetric monoidal functor <fr:tex display="inline"><![CDATA[F: \mathcal {C} \to  \mathcal {D}]]></fr:tex>, see <fr:link href="/actegories-amthematician-capucci-gavranovic/" title="Actegories for the Working Amthematician" uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" type="local">Reference <fr:contextual-number uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" /></fr:link> 5.4.3 and 5.5.12), this stochastic module is symmetric monoidal and the isomorphism is an isomorphism of symmetric monoidal categories.
</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>2025</fr:year><fr:month>4</fr:month><fr:day>28</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    We have essentially already seen that the deterministic part <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {C}(\mathcal {D})|_\mathrm {det} \to  \mathcal {C}_\mathrm {det}]]></fr:tex> is a fibration, with maps <fr:tex display="inline"><![CDATA[{A \choose  X} \leftrightarrows  {B \choose  X}]]></fr:tex> over <fr:tex display="inline"><![CDATA[X]]></fr:tex> given by <fr:tex display="inline"><![CDATA[X \cdot  B \to  A]]></fr:tex>, and with the pullback functors acting by reparametrization. Since a map <fr:tex display="inline"><![CDATA[X \to  M \otimes  Y]]></fr:tex> with deterministic marginal on <fr:tex display="inline"><![CDATA[Y]]></fr:tex> is always equal to the independent pairing of <fr:tex display="inline"><![CDATA[X \to  M, X \to  Y,]]></fr:tex> we can slide the former through and identify each optic over a given <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> with a map <fr:tex display="inline"><![CDATA[X \times  B \to  A,]]></fr:tex> and note that this map is conversely an invariant of an optic, since it is obtained by postcomposing with <fr:tex display="inline"><![CDATA[{B \choose  Y} \to  {B \choose  *}]]></fr:tex>.
  </html:p>
  <html:p>
    Given <fr:tex display="inline"><![CDATA[M \to  X]]></fr:tex>, objects <fr:tex display="inline"><![CDATA[{A \choose  X}, {B \choose  X},]]></fr:tex> and a map over <fr:tex display="inline"><![CDATA[M]]></fr:tex> classified by <fr:tex display="inline"><![CDATA[M \cdot  B \to  A,]]></fr:tex> a section <fr:tex display="inline"><![CDATA[s :X \to  M]]></fr:tex> act by reparametrization. It is clear that this gives the structure of a stochastic module.
  </html:p>
  <html:p>
    The functor from optics takes <fr:tex display="inline"><![CDATA[f: X \to  M \otimes  Y, g: M \cdot  B \to  A]]></fr:tex> to the span <fr:tex display="inline"><![CDATA[X \leftarrow  M \otimes  X \otimes  Y \to  Y]]></fr:tex> equipped with the obvious map <fr:tex display="inline"><![CDATA[(M \otimes  X \otimes  Y) \cdot  B \to  A]]></fr:tex> that simply forgets <fr:tex display="inline"><![CDATA[X,Y]]></fr:tex>. Note that every chart is equivalent to one of this form (given <fr:tex display="inline"><![CDATA[X \leftarrow  M' \to  Y]]></fr:tex> and <fr:tex display="inline"><![CDATA[\phi : M' \cdot  B \to  A,]]></fr:tex> the map <fr:tex display="inline"><![CDATA[M' \to  M' \otimes  X \otimes  Y]]></fr:tex> exhibits the required equivalence), hence the functor is full.
  </html:p>
  <html:p>
    Moreover, note that each chart is associated with a well-defined optic, given by the maps <fr:tex display="inline"><![CDATA[X \to  M \to  M \otimes  Y, M \cdot  B \to  A]]></fr:tex>. Is is straightforward to see both of these maps are preserved by chart equivalence. This gives an inverse to the functor, proving it is faithful. Since it is identity on objects, this finishes the argument.
  </html:p>
  <html:p>
    In the symmetric monoidal case, it is immediately clear that the fibration on <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> is symmetric monoidal. Since the action is symmetric monoidal, given maps <fr:tex display="inline"><![CDATA[X \to  M, X \to  M']]></fr:tex> and <fr:tex display="inline"><![CDATA[M \cdot  B \to  A,]]></fr:tex> <fr:tex display="inline"><![CDATA[M' \cdot  B' \to  A',]]></fr:tex> it is clear that composing to get maps <fr:tex display="inline"><![CDATA[X \cdot  B \to  A, X \cdot  B' \to  A',]]></fr:tex> then tensoring and composing with the diagonal to get <fr:tex display="inline"><![CDATA[X \cdot  (B \otimes  B' ) \to  A \otimes  A',]]></fr:tex> gives the same map as tensoring, then using the map <fr:tex display="inline"><![CDATA[X \to  M \otimes  M']]></fr:tex>. Hence we have a symmetric monoidal module. It's straightforward to see the functor is symmetric monoidal, and that finishes the argument.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                    </fr:tree>
                    <html:p>Slightly orthogonally, we have the following comparison between <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathcal {C}^\to )]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C})]]></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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>28</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-K6NM/</fr:uri>
                        <fr:display-uri>efr-K6NM</fr:display-uri>
                        <fr:route>/efr-K6NM/</fr:route>
                        <fr:taxon>Theorem</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be any pullback-positive Markov category. Then <fr:tex display="inline"><![CDATA[\mathcal {C}^\to  \to  \mathcal {C}]]></fr:tex> is a Markov prefibration which thus induces a stochastic module structure on <fr:tex display="inline"><![CDATA[\mathcal {C}^\to |_\mathrm {det}]]></fr:tex>.
  Writing simply <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {C}), \mathsf {SLens}(\mathcal {C})]]></fr:tex> for <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {C}^\to |_\mathrm {det}), \mathsf {SLens}(\mathcal {C}^\to |_\mathrm {det})]]></fr:tex>, we have:
</html:p>
                        <html:ol><html:li>
    There is a functor <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C}) \to  \mathsf {SLens}(\mathcal {C}),]]></fr:tex> which is fully faithful. Dually there is a functor <fr:tex display="inline"><![CDATA[\mathsf {coOptic}(\mathcal {C}) \to  \mathsf {SChart}(\mathcal {C})]]></fr:tex> which is fully faithful.
  </html:li>
  <html:li><fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathcal {C})]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {C})]]></fr:tex> both admit symmetric monoidal structures, which make the functors <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {C}), \mathsf {SLens}(\mathcal {C}) \to  \mathcal {C}]]></fr:tex> strict symmetric monoidal, as well as the functors <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C}) \to  \mathsf {SLens}(\mathcal {C}), \mathsf {coOptic}(\mathcal {C}) \to  \mathsf {SChart}(\mathcal {C})]]></fr:tex> strong symmetric monoidal.
  </html:li>
  <html:li>
    If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is extensive, this functor preserves the coproducts <fr:tex display="inline"><![CDATA[{A \choose  X} + {A \choose  Y} = {A \choose  X+Y},]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {C}),\mathsf {SLens}(\mathcal {C})]]></fr:tex> both admit all finite coproducts.
  </html:li>
  <html:li>
    If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> moreover has conditionals and supports, <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {C}) = \mathcal {C}^\to ]]></fr:tex></html:li></html:ol>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Thus we have our previous claim that <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathsf {BorelStoch}^\to |_\mathrm {det})]]></fr:tex> contains <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathsf {BorelStoch})]]></fr:tex>.
</html:p>
                    <html:p>
  We also have some examples of an analytic flavor:
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>28</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-TO9K/</fr:uri>
                        <fr:display-uri>efr-TO9K</fr:display-uri>
                        <fr:route>/efr-TO9K/</fr:route>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Given a compact Hausdorff space <fr:tex display="inline"><![CDATA[X]]></fr:tex>, a <html:em>Banach space bundle</html:em> is a space over <fr:tex display="inline"><![CDATA[X]]></fr:tex>, <fr:tex display="inline"><![CDATA[V \to  X]]></fr:tex>, equipped with a fiberwise (complex) vector space structure <fr:tex display="inline"><![CDATA[+: V \times _X V \to  V]]></fr:tex>, <fr:tex display="inline"><![CDATA[\cdot : \mathbb {C} \times  V \to  V]]></fr:tex>, so that there exists a cover <fr:tex display="inline"><![CDATA[\{U_i\}]]></fr:tex> of <fr:tex display="inline"><![CDATA[X]]></fr:tex> so that for each <fr:tex display="inline"><![CDATA[U_i]]></fr:tex>, there exists a Banach space <fr:tex display="inline"><![CDATA[V_i]]></fr:tex> and a homeomorphism <fr:tex display="inline"><![CDATA[V \times _X U_i =: V_{U_i} \cong  V_i \times  U_i]]></fr:tex> over <fr:tex display="inline"><![CDATA[U_i,]]></fr:tex> which is moreover linear in each fiber, where <fr:tex display="inline"><![CDATA[V_i]]></fr:tex> is equipped with the norm topology.
</html:p>
                        <html:p>
  Note that this determines a <html:em>local</html:em> norm on each <fr:tex display="inline"><![CDATA[V_{U_i}]]></fr:tex> (and in particular each <fr:tex display="inline"><![CDATA[V_x]]></fr:tex>) up to equivalence (but no stricter than that). In particular each <fr:tex display="inline"><![CDATA[V_x]]></fr:tex> is a Banach space.
</html:p>
                        <html:p>
  A morphism of Banach space bundles is a continuous map <fr:tex display="inline"><![CDATA[f: V \to  W]]></fr:tex> over <fr:tex display="inline"><![CDATA[X]]></fr:tex> which is linear on each bundle. Note that this implies that on a suitable cover <fr:tex display="inline"><![CDATA[U_i,]]></fr:tex> the maps <fr:tex display="inline"><![CDATA[f: V_{U_i} \to  W_{U_i}]]></fr:tex> obey <fr:tex display="inline"><![CDATA[\left  \lVert  f(v) \right \rVert  \leq  C_i \left  \lVert  v \right \rVert ]]></fr:tex> for some <fr:tex display="inline"><![CDATA[C_i \in  \mathbb {R}]]></fr:tex>, for any local norms inducing the topologies, and hence by compactness there exists some <fr:tex display="inline"><![CDATA[C]]></fr:tex> so that <fr:tex display="inline"><![CDATA[\left  \lVert  f(v) \right \rVert  \leq  C \left  \lVert  v \right \rVert ]]></fr:tex> for each <fr:tex display="inline"><![CDATA[v]]></fr:tex>.
</html:p>
                        <html:p>
  If <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> is a continuous map, there is a pullback functor <fr:tex display="inline"><![CDATA[\mathsf {Ban}_Y \to  \mathsf {Ban}_X]]></fr:tex>. The Grothendieck construction of this gives a fibration <fr:tex display="inline"><![CDATA[\mathsf {BanBun} \to  \mathsf {CHaus}]]></fr:tex></html:p>
                        <html:p>
  Note that Tychonoff spaces include all compact Hausdorff spaces. Therfore consider the full subcategory <fr:tex display="inline"><![CDATA[\mathsf {CHausStoch} \hookrightarrow  \mathsf {TychStoch}]]></fr:tex> spanned by these. The fibration <fr:tex display="inline"><![CDATA[\mathsf {BanBun}]]></fr:tex> admits the structure of a stochastic module: given <fr:tex display="inline"><![CDATA[M \to  X]]></fr:tex>, <fr:tex display="inline"><![CDATA[s: X \to  M]]></fr:tex> a kernel, and a linear continuous map <fr:tex display="inline"><![CDATA[f: V \times _X M \to  W \times _X M,]]></fr:tex> given <fr:tex display="inline"><![CDATA[v \in  V_x,]]></fr:tex> there is an induced function <fr:tex display="inline"><![CDATA[M_x \to  W_x]]></fr:tex> given by <fr:tex display="inline"><![CDATA[f(v,-)]]></fr:tex>. Since this is bounded (being continuous on a compact space) it is (Bochner) integrable, define <fr:tex display="inline"><![CDATA[s^*f(v)]]></fr:tex> to be this integral.
</html:p>
                        <html:p>
  This example is analogous to optics for the action of categories of markov kernels on categories of vector spaces (as in <fr:link href="/efr-A6YR/" title="https://erischel.com/efr-A6YR/" uri="https://erischel.com/efr-A6YR/" display-uri="efr-A6YR" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-A6YR/" display-uri="efr-A6YR" /></fr:link>). Note that we do <html:em>not</html:em> expect this type of example to present a Markov fibration. The reason is simply that, given a parametrized linear map <fr:tex display="inline"><![CDATA[M \times  \mathbb {R}^n \to  \mathbb {R}^n]]></fr:tex> and a measure on <fr:tex display="inline"><![CDATA[M]]></fr:tex>, the fact that the expectation map <fr:tex display="inline"><![CDATA[\mathbb {R}^n \to  \mathbb {R}^n]]></fr:tex> is the identity by no means implies that the original map is almost surely the identity or anything like that. If <fr:tex display="inline"><![CDATA[(m,e_0) \mapsto  e_1]]></fr:tex> and <fr:tex display="inline"><![CDATA[m]]></fr:tex> has positive probability, this can be canceled out by <fr:tex display="inline"><![CDATA[(m',e_0) \mapsto  -e_1]]></fr:tex>. This is impossible for probability kernels. 
</html:p>
                        <html:p>
  If we add an assumption of positivity, it seems plausible that examples of this type will present Markov fibrations---but of course, that brings us quite close to categories of Markov kernels in any case.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Note that, as in this example, we do not generally expect <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {C}(\mathcal {C},\mathcal {D})]]></fr:tex> to yield a Markov fibration if <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> is not another Markov category (and not even then in general, as the case of <fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}]]></fr:tex> shows).---for these, we expect to need a sort of positivity in the fiber as well, which restricts us to things that look like probability kernels.
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>2</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-O6GQ/</fr:uri>
                        <fr:display-uri>efr-O6GQ</fr:display-uri>
                        <fr:route>/efr-O6GQ/</fr:route>
                        <fr:title text="Stochastic module of P-algebras">Stochastic module of <fr:tex display="inline"><![CDATA[P]]></fr:tex>-algebras</fr:title>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a representable, positive Markov category so that <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> admits intersections and the probability monad <fr:tex display="inline"><![CDATA[P]]></fr:tex> preserves them.
  Then each slice <fr:tex display="inline"><![CDATA[(\mathcal {C}_\mathrm {det})_{/X}]]></fr:tex> inherits a monad structure given by <fr:tex display="inline"><![CDATA[P_X(B \to  X) = P(B) \times _{P(X)} X]]></fr:tex>. This is pseudofunctorial in <fr:tex display="inline"><![CDATA[X]]></fr:tex>. Moreover, the stochastic module structure on <fr:tex display="inline"><![CDATA[\mathcal {C}^\to |_\mathrm {det}]]></fr:tex> extends to a stochastic module structure on the fibration representing the pseudofunctor <fr:tex display="inline"><![CDATA[X \mapsto  \mathsf {Alg}(P_X)]]></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>2025</fr:year><fr:month>5</fr:month><fr:day>2</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    The monad is induced by the adjunction <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}{/X} \leftrightarrows  \mathsf {Alg}(P)_{PX}]]></fr:tex>. Let <fr:tex display="inline"><![CDATA[f: X \to  Y]]></fr:tex> (deterministic). For abstract reasons there is a natural transformation <fr:tex display="inline"><![CDATA[P_Yf^* \to  f^*P_X]]></fr:tex>. Writing this out, we find
    <fr:tex display="block"><![CDATA[P(A \times _Y X) \times _{PX} X \to  P(A) \times _{PY} X]]></fr:tex></html:p>
  <html:p>
    By representability, the unit <fr:tex display="inline"><![CDATA[X \to  PX]]></fr:tex> is a monomorphism. Hence a map into <fr:tex display="inline"><![CDATA[P(A \times _Y X) \times _{PX} X]]></fr:tex> is precisely a map in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> into <fr:tex display="inline"><![CDATA[A \times _Y X]]></fr:tex> so that the marginal on <fr:tex display="inline"><![CDATA[X]]></fr:tex> is deterministic. But by pullback-positivity this is precisely a map (in <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex>) into <fr:tex display="inline"><![CDATA[P(A) \times _{PY} X]]></fr:tex>.
  </html:p>
  <html:p>
    Let <fr:tex display="inline"><![CDATA[M \to  X]]></fr:tex>, two <fr:tex display="inline"><![CDATA[P_X]]></fr:tex>-algebras <fr:tex display="inline"><![CDATA[A, B]]></fr:tex>, and a map <fr:tex display="inline"><![CDATA[M \times _X A \to  M \times _X B]]></fr:tex> which is a homomorphism for the induced <fr:tex display="inline"><![CDATA[P_M]]></fr:tex>-algebras,
    and a map <fr:tex display="inline"><![CDATA[X \to  PM]]></fr:tex> be given. Note that by the above, <fr:tex display="inline"><![CDATA[P_M(M \times _X A) \cong  M \times _X P_XA]]></fr:tex>. Then the induced map <fr:tex display="inline"><![CDATA[A \to  B]]></fr:tex> is given by
    <fr:tex display="block"><![CDATA[A \to  PM \times _{PX} A \cong  P_X(M) \times _X A \hookrightarrow  P_X(M \times _X A) \to  P_X(B) \to  B]]></fr:tex></html:p>
  <html:p>
    We must show this is a <fr:tex display="inline"><![CDATA[P_X]]></fr:tex>-homomorphism. Let us simplify by working internally to <fr:tex display="inline"><![CDATA[(\mathcal {C}_{\mathrm {det}})_{/X}]]></fr:tex>---thus we have a Cartesian category equipped with a strong commutative monad <fr:tex display="inline"><![CDATA[P]]></fr:tex>, a map <fr:tex display="inline"><![CDATA[* \to  PM]]></fr:tex>, and a map <fr:tex display="inline"><![CDATA[M \times  A \to  B]]></fr:tex> which is a parametrized algebra homomorphism, in the sense that the diagram 
  </html:p>

  <html:p><html:figure><fr:resource hash="f17dab4b8aff84fae10587dd7d11a42f"><fr:resource-content><html:img src="/f17dab4b8aff84fae10587dd7d11a42f.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
      \begin {tikzcd}
	{M \times  PA} & {P(M \times  A)} & {P(B)} \\
	{M \times  A} && B
	\arrow [from=1-1, to=1-2]
	\arrow [from=1-1, to=2-1]
	\arrow [from=1-2, to=1-3]
	\arrow [from=1-3, to=2-3]
	\arrow [from=2-1, to=2-3]
\end {tikzcd}
    ]]></fr:resource-source></fr:resource></html:figure></html:p>
  <html:p>
    commutes. Now we must show the map <fr:tex display="inline"><![CDATA[A \to  PM \times  A \to  P(M \times  A) \to  PB \to  B]]></fr:tex> is a <fr:tex display="inline"><![CDATA[P]]></fr:tex>-homomorphism. Write <fr:tex display="inline"><![CDATA[E_A,E_B]]></fr:tex> for the structure maps of the two algebras. Consider this diagram:
  </html:p>
  
  <html:figure><fr:resource hash="2985cef8be68131089d96ddd7efe8181"><fr:resource-content><html:img src="/2985cef8be68131089d96ddd7efe8181.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
\begin {tikzcd}
	PA & {P(PM \times  A)} && {P^2(M\times  A)} & {P^2(B)} & PB \\
	& {PM \times  PA} &&& {} \\
	&& {P(M \times  P(A))} \\
	\\
	A & {PM \times  A} & {P(M \times  A)} && {P(B)} & B
	\arrow ["{P(m \times  A)}"{pos=0.2}, from=1-1, to=1-2]
	\arrow [from=1-1, to=2-2]
	\arrow ["{E_A}", from=1-1, to=5-1]
	\arrow [from=1-2, to=1-4]
	\arrow [from=1-4, to=1-5]
	\arrow ["{P(E_B)}", from=1-5, to=1-6]
	\arrow ["\mu ", from=1-5, to=5-5]
	\arrow ["{E_B}", from=1-6, to=5-6]
	\arrow [from=2-2, to=1-2]
	\arrow [from=2-2, to=3-3]
	\arrow ["{PM \times  E_A}", from=2-2, to=5-2]
	\arrow [from=3-3, to=1-4]
	\arrow [from=3-3, to=5-3]
	\arrow ["{m \times  A}", from=5-1, to=5-2]
	\arrow [from=5-2, to=5-3]
	\arrow [from=5-3, to=1-6]
	\arrow [from=5-3, to=5-5]
	\arrow ["{E_B}"', from=5-5, to=5-6]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  <html:p>
    The triangle at the top left commutes because <fr:tex display="inline"><![CDATA[P]]></fr:tex> is strong. The square to the right does not commute in general---however, since <fr:tex display="inline"><![CDATA[P]]></fr:tex> is commutative, the composite maps <fr:tex display="inline"><![CDATA[PM \times  PA \to  P^2(M \times  A) \xrightarrow {\mu } P(X \times  A)]]></fr:tex> agree. Since the map <fr:tex display="inline"><![CDATA[P^2(M \times  A) \to  B]]></fr:tex> factors over this, we may replace one edge of this square with another. The square to the right of that is simply <fr:tex display="inline"><![CDATA[P(-)]]></fr:tex> applied to the previous diagram, and so commutes by assumption. The "triangle" under that is just two copies of the same maps, so commutes. The square on the left of the diagram commutes by functoriality of product. The square to the right of that commutes again because <fr:tex display="inline"><![CDATA[P]]></fr:tex> is strong. Hence the outer square commutes, which is precisely the homomorphism property we wanted.
  </html:p>


  <html:p>
    It is apparent that, if <fr:tex display="inline"><![CDATA[A, B = P_XA', P_B']]></fr:tex> are free algebras, this restricts to the stochastic module structure of <fr:tex display="inline"><![CDATA[\mathcal {C}^\to |_\mathrm {det}]]></fr:tex> (viewing <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> as the Kleisli category of <fr:tex display="inline"><![CDATA[P]]></fr:tex>). But since every algebra is a coequalizer of free algebras, it follows that the action on general algebras is determined uniquely by this. This implies the equations of a stochastic module.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                    </fr:tree>
                    <html:p>
  As in <fr:link href="/efr-TO9K/" title="https://erischel.com/efr-TO9K/" uri="https://erischel.com/efr-TO9K/" display-uri="efr-TO9K" type="local">Example <fr:contextual-number uri="https://erischel.com/efr-TO9K/" display-uri="efr-TO9K" /></fr:link>, this cannot be expected to come from a Markov prefibration in general.
</html:p>
                    <html:p>
  The vast majority of examples seem to occur as subcategories of stochastic modules of the form given by <fr:link href="/efr-O6GQ/" title="Stochastic module of P-algebras" uri="https://erischel.com/efr-O6GQ/" display-uri="efr-O6GQ" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-O6GQ/" display-uri="efr-O6GQ" /></fr:link> (of course, <fr:tex display="inline"><![CDATA[\mathcal {C}^\to ]]></fr:tex> is just the subcategory spanned fiberwise by the free algebras). In fact, since a stochastic module necessitates in some sense an action of <fr:tex display="inline"><![CDATA[P]]></fr:tex> on the objects of the fiber, it seems they do all have this form in a generalized way, although we have not found a better way to make this precise than the existing definition of stochastic module.
</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>13</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-000D/</fr:uri>
                <fr:display-uri>efr-000D</fr:display-uri>
                <fr:route>/efr-000D/</fr:route>
                <fr:title text="The \mathsf {Para} construction in generic 2-categories">The <fr:tex display="inline"><![CDATA[\mathsf {Para}]]></fr:tex> construction in generic 2-categories</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>7</fr:month>
                      <fr:day>22</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-003P/</fr:uri>
                    <fr:display-uri>efr-003P</fr:display-uri>
                    <fr:route>/efr-003P/</fr:route>
                    <fr:title text="Introduction">Introduction</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Myers' theory of categorical systems theory (see <fr:link href="/efr-0023/" title="Review of Categorical Systems Theory" uri="https://erischel.com/efr-0023/" display-uri="efr-0023" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-0023/" display-uri="efr-0023" /></fr:link>) gives a rich categorical structure to a wide variety of types of dynamical system. The central idea can be summarized by saying that there are two different, but tightly related, notions of morphism at play in dynamical systems. Open dynamical systems themselves involve a bidirectional information flow, captured by the notion of lens <fr:tex display="inline"><![CDATA[{X' \choose  X} \leftrightarrows  {Y' \choose  Y},]]></fr:tex> and composition of such lenses describes the composition of subsystems into systems. But morphisms <html:em>between</html:em> systems are unidirectional, captured by the notion of chart <fr:tex display="inline"><![CDATA[{X' \choose  X} \rightrightarrows  {Y' \choose  Y},]]></fr:tex>. Algebraically, the relationship between these two notions is that they assemble into a <html:em>double category</html:em>, which indexes the category of systems.
</html:p>
                    <html:p>
  There is another double category involving lenses which has been considered in the categorical study of systems. That is the double category of <html:em>parametrized morphisms,</html:em> applied to the monoidal category of lenses. These have been studied as an abstraction for gradient descent in several papers, see eg <fr:link href="/bruno-etal-categorical-learning-2021/" title="Categorical Foundations of Gradient-Based Learning" uri="https://erischel.com/bruno-etal-categorical-learning-2021/" display-uri="bruno-etal-categorical-learning-2021" type="local">Reference <fr:contextual-number uri="https://erischel.com/bruno-etal-categorical-learning-2021/" display-uri="bruno-etal-categorical-learning-2021" /></fr:link>, <fr:link href="/bruno-thesis-fundamental-components/" title="Fundamental Components of Deep Learning: A category-theoretic approach" uri="https://erischel.com/bruno-thesis-fundamental-components/" display-uri="bruno-thesis-fundamental-components" type="local">Reference <fr:contextual-number uri="https://erischel.com/bruno-thesis-fundamental-components/" display-uri="bruno-thesis-fundamental-components" /></fr:link>, (the idea goes back to <fr:link href="/backprop-as-functor/" title="Backprop as Functor: A compositional perspective on supervised learning" uri="https://erischel.com/backprop-as-functor/" display-uri="backprop-as-functor" type="local">Reference <fr:contextual-number uri="https://erischel.com/backprop-as-functor/" display-uri="backprop-as-functor" /></fr:link>). Given any action of a monoidal category <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex> on another category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> (most simply, if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is monoidal it acts on itself,) we obtain a category of parametrized morphisms <fr:tex display="inline"><![CDATA[f: X \cdot  P \to  Y]]></fr:tex> (where <fr:tex display="inline"><![CDATA[P \in  \mathcal {M}, X, Y \in  \mathcal {C}]]></fr:tex>,) and these turn out to be extremely useful. We will mention two applications:
  <html:ol><html:li>A parametrized lens <fr:tex display="inline"><![CDATA[{P \choose  P} \otimes  {X \choose  X} \to  {Y \choose  Y}]]></fr:tex> is essentially what is called a <html:em>learner</html:em> in <fr:link href="/backprop-as-functor/" title="Backprop as Functor: A compositional perspective on supervised learning" uri="https://erischel.com/backprop-as-functor/" display-uri="backprop-as-functor" type="local">Reference <fr:contextual-number uri="https://erischel.com/backprop-as-functor/" display-uri="backprop-as-functor" /></fr:link>---it contains the information necessary to compute a new parameter value <fr:tex display="inline"><![CDATA[p']]></fr:tex> given an existing <fr:tex display="inline"><![CDATA[p \in  P]]></fr:tex> and a sample pair <fr:tex display="inline"><![CDATA[x \in  X, y \in  Y]]></fr:tex>, as well as the additional information required to compose such things. Thus the functoriality of backpropagation can be derived from two facts: the reverse derivative defines a monoidal functor <fr:tex display="inline"><![CDATA[\mathsf {Euc} \to  \mathsf {Lens}(\mathsf {Euc}),]]></fr:tex> and the construction <fr:tex display="inline"><![CDATA[\mathsf {Para}(-),]]></fr:tex> taking a category to its category of parametrized maps, is itself functorial. This viewpoint has been significantly developed in <fr:link href="/bruno-etal-categorical-learning-2021/" title="Categorical Foundations of Gradient-Based Learning" uri="https://erischel.com/bruno-etal-categorical-learning-2021/" display-uri="bruno-etal-categorical-learning-2021" type="local">Reference <fr:contextual-number uri="https://erischel.com/bruno-etal-categorical-learning-2021/" display-uri="bruno-etal-categorical-learning-2021" /></fr:link> and other papers.</html:li>
    <html:li>An <html:em>open game</html:em>, in the sense of Hedges <fr:link href="/hedges-etal-comp-gametheory/" title="Compositional game theory" uri="https://erischel.com/hedges-etal-comp-gametheory/" display-uri="hedges-etal-comp-gametheory" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-etal-comp-gametheory/" display-uri="hedges-etal-comp-gametheory" /></fr:link>, is almost the same thing as a parametrized lens <fr:tex display="inline"><![CDATA[{\Sigma ' \choose  \Sigma } \otimes  {S \choose  X} \leftrightarrows  {R \choose  Y}]]></fr:tex>, equipped with a subset <fr:tex display="inline"><![CDATA[E \subset  \Sigma  \times  \mathsf {Set}(\Sigma ,\Sigma ')]]></fr:tex>. Given a context for the game---that is, a state <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex> (describing the state of information when the decision is made) and a continuation <fr:tex display="inline"><![CDATA[Y \to  R]]></fr:tex> (describing how decisions <fr:tex display="inline"><![CDATA[y \in  Y]]></fr:tex> map to outcomes <fr:tex display="inline"><![CDATA[r \in  R]]></fr:tex>,) we obtain a function <fr:tex display="inline"><![CDATA[k: \Sigma  \to  \Sigma ']]></fr:tex>, and we say <fr:tex display="inline"><![CDATA[\sigma  \in  \Sigma ]]></fr:tex> is an equilibrium strategy if <fr:tex display="inline"><![CDATA[(\sigma ,k) \in  E]]></fr:tex>. Since <fr:tex display="inline"><![CDATA[\mathsf {Set}(\Sigma ,\Sigma ') = \mathsf {Lens}(\mathsf {Set})({\Sigma ' \choose  \Sigma },I),]]></fr:tex> and <fr:tex display="inline"><![CDATA[\Sigma  = \mathsf {Lens}(\mathsf {Set})(I,{\Sigma ' \choose  \Sigma }),]]></fr:tex> this neatly captures the extra data of an open game in terms of the category of lenses. The potential of this idea as a generalized approach to "cybernetic systems" is explored in <fr:link href="/towards-cybercat/" title="Towards Foundations of Categorical Cybernetics" uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" type="local">Reference <fr:contextual-number uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" /></fr:link>.
    </html:li></html:ol></html:p>
                    <html:p>
  In this chapter, we will develop the theory of the category <fr:tex display="inline"><![CDATA[\mathsf {Para}]]></fr:tex> of parametrized maps. We will begin by reviewing the existing literature briefly. We will describe a double categorical version of this category---this does not seem to have appeared in the literature yet, although it has been folklore for at least a few years (and there is nothing complicated about this construction, certainly). The remainder of this chapter will be dedicated to lifting this construction to a generic 2-category <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex> (with the above being the specialization to <fr:tex display="inline"><![CDATA[\mathbb {C} = \mathsf {Cat}]]></fr:tex> ). We will derive this lifting using the machinery of 2-category theory. We will see how this generalization accounts for much structure which can be seen to exist on <fr:tex display="inline"><![CDATA[\mathsf {Para}]]></fr:tex>, such as its symmetric monoidal structure (assuming <fr:tex display="inline"><![CDATA[\mathcal {M},\mathcal {C}]]></fr:tex> are symmetric monoidal). But the true application of this will be in <fr:link href="/efr-ZRUZ/" title="Categories of stochastic dynamical systems" uri="https://erischel.com/efr-ZRUZ/" display-uri="efr-ZRUZ" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-ZRUZ/" display-uri="efr-ZRUZ" /></fr:link>, where we use this to construct a <html:em>triple category</html:em> of open dynamical systems.
</html:p>
                    <html:p>
  The definition of the double category <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}]]></fr:tex> involves two types of categorical structure with which the reader may be unfamiliar---<html:em>actegories</html:em>, which are the input to the construction, and pseudo double categories, which are the output. Since we will shortly introduce the abstract internal versions of these, internal pseudomonoid actions and internal pseudocategories, we will not give a separate introduction here. The reader who is unfamiliar with these should refer to <fr:link href="/actegories-amthematician-capucci-gavranovic/" title="Actegories for the Working Amthematician" uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" type="local">Reference <fr:contextual-number uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" /></fr:link> for actegories, and <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> for (pseudo) double categories. A reader who simply needs a definition may look at <fr:link href="/efr-OFNV/" title="Actegory" uri="https://erischel.com/efr-OFNV/" display-uri="efr-OFNV" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-OFNV/" display-uri="efr-OFNV" /></fr:link> and <fr:link href="/efr-ZRUY/" title="https://erischel.com/efr-ZRUY/" uri="https://erischel.com/efr-ZRUY/" display-uri="efr-ZRUY" type="local">Example <fr:contextual-number uri="https://erischel.com/efr-ZRUY/" display-uri="efr-ZRUY" /></fr:link>.
</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>7</fr:month>
                      <fr:day>2</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-002H/</fr:uri>
                    <fr:display-uri>efr-002H</fr:display-uri>
                    <fr:route>/efr-002H/</fr:route>
                    <fr:title text="The Para Construction as a double category">The Para Construction as a double category</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  In many different situations, we want to understand some morphism as <html:em>parametrized</html:em> by some data. For example, in machine learning one tries to find a function <fr:tex display="inline"><![CDATA[f: X \to  Y]]></fr:tex> with some desirable behaviour by choosing a parametrization <fr:tex display="inline"><![CDATA[F: P \times  X \to  Y]]></fr:tex> and searching for some <fr:tex display="inline"><![CDATA[p \in  P]]></fr:tex> so that <fr:tex display="inline"><![CDATA[F(p,-)]]></fr:tex> has this behaviour (for example by gradient descent on <fr:tex display="inline"><![CDATA[p]]></fr:tex>).
</html:p>
                    <html:p>
  In situations where we want to understand <fr:tex display="inline"><![CDATA[F]]></fr:tex> as being built up as a composite of multiple functions (for example, the layers of a neural network), it is convenient to introduce a category of parametrized morphisms, where the composition combines the parameter spaces of each composite map. We can do this in a general setting with the following definition:
</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>7</fr:month>
                          <fr:day>2</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-002G/</fr:uri>
                        <fr:display-uri>efr-002G</fr:display-uri>
                        <fr:route>/efr-002G/</fr:route>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex> be a monoidal category, and let <fr:tex display="inline"><![CDATA[\bullet : \mathcal {M} \times  \mathcal {C} \to  \mathcal {C}]]></fr:tex> be an action of <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex> on another category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>.
  Then the <html:em><fr:tex display="inline"><![CDATA[\mathsf {Para}]]></fr:tex> construction</html:em> is the category <fr:tex display="inline"><![CDATA[\mathsf {Para}_\mathcal {M}(\mathcal {C})]]></fr:tex> where
  <html:ol><html:li>Objects are objects of <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex></html:li>
    <html:li>Morphisms <fr:tex display="inline"><![CDATA[A \to  B]]></fr:tex> are tuples <fr:tex display="inline"><![CDATA[P \in  \mathcal {M}, P \bullet  A \to  B]]></fr:tex> up to the natural notion of isomorphism.</html:li>
    <html:li>Composition is by tensoring the parameter objects and composing.</html:li></html:ol></html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  The fact that the parametrization object may live in a different category than the domain and codomain objects, which initially seems like a superfluous generalization, is in fact highly useful. For example, we will often want to consider parametrized morphisms where the parameter space is decorated with some additional data, for example a probability distribution. In most such cases, the category of spaces decorated with such data will act on the category of spaces without such data (simply by forgetting the data and tensoring), and hence we can realize such parametrized morphisms as examples of this <fr:tex display="inline"><![CDATA[\mathsf {Para}]]></fr:tex> construction. We may also want only Euclidean parameter space (so that we can run gradient descent simply), but allow the parametrized morphism to go between more general manifolds.
</html:p>
                    <html:p><fr:tex display="inline"><![CDATA[\mathsf {Para}]]></fr:tex>, and generalizations of it, have been introduced many times. One of the earliest occurrences is by Hermida and Tennent, <fr:link href="/hermida-monoidal-indeterminates/" title="Monoidal indeterminates and categories of possible worlds" uri="https://erischel.com/hermida-monoidal-indeterminates/" display-uri="hermida-monoidal-indeterminates" type="local">Reference <fr:contextual-number uri="https://erischel.com/hermida-monoidal-indeterminates/" display-uri="hermida-monoidal-indeterminates" /></fr:link>, in the special case of a symmetric monoidal category acting on another such via a functor <fr:tex display="inline"><![CDATA[i: \mathcal {C} \to  \mathcal {D}]]></fr:tex> (by a result of Capucci and Gavranović, <fr:link href="/actegories-amthematician-capucci-gavranovic/" title="Actegories for the Working Amthematician" uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" type="local">Reference <fr:contextual-number uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" /></fr:link>, every "structure-preserving" action of a symmetric monoidal category on another has this form). Hermida and Tennent actually give a very intuitive universal property of <fr:tex display="inline"><![CDATA[\mathsf {Para}_\mathcal {C}(\mathcal {D})]]></fr:tex>: it is freely generated by adding a morphism <fr:tex display="inline"><![CDATA[I \to  i(C)]]></fr:tex> for each <fr:tex display="inline"><![CDATA[C \in  \mathcal {C}]]></fr:tex>, subject to the equations that this must be a monoidal natural transformation. This type of idea actually goes all the way back to Pavlović in <fr:link href="/pavlovic-categorical-names/" title="Categorical logic of names and abstraction in action calculi" uri="https://erischel.com/pavlovic-categorical-names/" display-uri="pavlovic-categorical-names" type="local">Reference <fr:contextual-number uri="https://erischel.com/pavlovic-categorical-names/" display-uri="pavlovic-categorical-names" /></fr:link>.
</html:p>
                    <html:p>
  The notation <fr:tex display="inline"><![CDATA[\mathsf {Para}]]></fr:tex> was introduced in<fr:link href="/backprop-as-functor/" title="Backprop as Functor: A compositional perspective on supervised learning" uri="https://erischel.com/backprop-as-functor/" display-uri="backprop-as-functor" type="local">Reference <fr:contextual-number uri="https://erischel.com/backprop-as-functor/" display-uri="backprop-as-functor" /></fr:link>, where the special case of parametrized morphisms of euclidean spaces was used to study gradient descent.
  In <fr:link href="/towards-cybercat/" title="Towards Foundations of Categorical Cybernetics" uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" type="local">Reference <fr:contextual-number uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" /></fr:link>, a bicategorical variant (replacing the quotient by isomorphism in the above variant in the obvious way) is introduced.
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>29</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-MN7C/</fr:uri>
                        <fr:display-uri>efr-MN7C</fr:display-uri>
                        <fr:route>/efr-MN7C/</fr:route>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a monoidal category, and let <fr:tex display="inline"><![CDATA[S: \mathcal {C} \to  \mathsf {Set}]]></fr:tex> be any functor. Recall that <fr:tex display="inline"><![CDATA[\int  S]]></fr:tex> is the category whose objects are pairs <fr:tex display="inline"><![CDATA[(X \in  \mathcal {C}, s \in  S(X))]]></fr:tex> and whose morphisms <fr:tex display="inline"><![CDATA[(X,s) \to  (Y,s')]]></fr:tex> are <fr:tex display="inline"><![CDATA[f: X \to  Y]]></fr:tex> so that <fr:tex display="inline"><![CDATA[S(f)(s) = s']]></fr:tex>. If <fr:tex display="inline"><![CDATA[S]]></fr:tex> is lax monoidal (for <fr:tex display="inline"><![CDATA[(\mathsf {Set},\times )]]></fr:tex>,) <fr:tex display="inline"><![CDATA[\int  S]]></fr:tex> acquires a lax monoidal structure making the forgetful functor <fr:tex display="inline"><![CDATA[\int  S \to  \mathcal {C}]]></fr:tex> strong (even strict) monoidal.
</html:p>
                        <html:p>
  With the action induced by this functor, the bicategory <fr:tex display="inline"><![CDATA[\mathsf {Para}_{\int  S}(\mathcal {C})]]></fr:tex> has morphisms given by maps <fr:tex display="inline"><![CDATA[M \otimes  X \to  Y, m \in  S(M),]]></fr:tex> and maps given by reparametrizations which preserve the decoration <fr:tex display="inline"><![CDATA[m]]></fr:tex>.
</html:p>
                        <html:p>
  For example, let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a Markov category and let <fr:tex display="inline"><![CDATA[S(X) = \mathcal {C}(I,X)]]></fr:tex>. Then morphisms are parametrized maps equipped with a measure on the parameter space.
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-WEST/</fr:uri>
                        <fr:display-uri>efr-WEST</fr:display-uri>
                        <fr:route>/efr-WEST/</fr:route>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  If <fr:tex display="inline"><![CDATA[\mathbb {C} = \mathsf {Set}]]></fr:tex> regarded as a discrete 2-category, as noted, a pseudomonoid action is just a monoid action in the ordinary sense---that is, a monoid <fr:tex display="inline"><![CDATA[M]]></fr:tex>, a set <fr:tex display="inline"><![CDATA[X]]></fr:tex> and a function <fr:tex display="inline"><![CDATA[m \cdot  x]]></fr:tex> so that <fr:tex display="inline"><![CDATA[m \cdot  (n \cdot  x) = (mn) \cdot  x]]></fr:tex>. The para construction is then the <html:em>action category,</html:em> whose objects are the points of <fr:tex display="inline"><![CDATA[X]]></fr:tex> and whose morphisms <fr:tex display="inline"><![CDATA[x \to  y]]></fr:tex> are elements <fr:tex display="inline"><![CDATA[m]]></fr:tex> so that <fr:tex display="inline"><![CDATA[m \cdot  x = y]]></fr:tex> (with multiplication as composition).
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-QH7O/</fr:uri>
                        <fr:display-uri>efr-QH7O</fr:display-uri>
                        <fr:route>/efr-QH7O/</fr:route>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\operatorname {\mathsf {Ab} - \mathsf {Cat}}]]></fr:tex> be the 2-category of <fr:tex display="inline"><![CDATA[\mathsf {Ab}]]></fr:tex>-enriched categories, functors and natural transformations. Recall that a ring <fr:tex display="inline"><![CDATA[R]]></fr:tex> is the same as a one-object category enriched in <fr:tex display="inline"><![CDATA[\mathsf {Ab}]]></fr:tex>, and it admits a monoidal structure if and only if it is commutative (this is not particular to <fr:tex display="inline"><![CDATA[\mathsf {Ab}]]></fr:tex>-enriched categories). An enriched <fr:tex display="inline"><![CDATA[R]]></fr:tex>-action on an <fr:tex display="inline"><![CDATA[\mathsf {Ab}]]></fr:tex>-category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is then an <fr:tex display="inline"><![CDATA[R]]></fr:tex>-module structure on each hom-set so that composition is <fr:tex display="inline"><![CDATA[R]]></fr:tex>-linear in each variable.
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-KL7V/</fr:uri>
                        <fr:display-uri>efr-KL7V</fr:display-uri>
                        <fr:route>/efr-KL7V/</fr:route>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  If a category has coproducts, then <fr:tex display="inline"><![CDATA[\mathsf {Set}]]></fr:tex> acts on it via <fr:tex display="inline"><![CDATA[S \cdot  X = \coprod _{s \in  S}X]]></fr:tex>. (This is the <fr:tex display="inline"><![CDATA[\mathsf {Set}]]></fr:tex>-enriched case of what in enriched categories is called a <html:em>copower</html:em> or <html:em>tensor</html:em>, the dual of the power objects from <fr:link href="/efr-K3YI/" title="Particular weighted limits" uri="https://erischel.com/efr-K3YI/" display-uri="efr-K3YI" type="local">Example <fr:contextual-number uri="https://erischel.com/efr-K3YI/" display-uri="efr-K3YI" /></fr:link>). The morphisms of <fr:tex display="inline"><![CDATA[\mathsf {Para}_\mathsf {Set}(\mathcal {C})]]></fr:tex> are pairs <fr:tex display="inline"><![CDATA[(I \in  \mathsf {Set}, (f_i: X \to  Y \in  \mathcal {C})_{i \in  I})]]></fr:tex>, which compose in the obvious way.
</html:p>
                        <html:p>
  Note that this definition clearly makes sense even if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> does not actually have coproducts. This is an example of another construction which has been called <fr:tex display="inline"><![CDATA[\mathsf {Para}]]></fr:tex>, which takes a monoidal category <fr:tex display="inline"><![CDATA[\mathcal {V}]]></fr:tex> and a <fr:tex display="inline"><![CDATA[\mathcal {V}]]></fr:tex>-enriched category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> and constructs a double category where the morphisms are pairs <fr:tex display="inline"><![CDATA[(J \in  \mathcal {V}, J \to  \mathcal {C}(X,Y))]]></fr:tex>. It is not hard to see that this also extends to a double category in the same way, but we do not presently know the correct definition of <html:em>internal enriched object</html:em> that would replace pseudomonoid actions to replicate our general theory for this case. (note that the literature contains a notion of <html:em>internal enriched category</html:em>, <fr:link href="/internal-enriched/" title="Internal enriched categories" uri="https://erischel.com/internal-enriched/" display-uri="internal-enriched" type="local">Reference <fr:contextual-number uri="https://erischel.com/internal-enriched/" display-uri="internal-enriched" /></fr:link>, but these are categories enriched over <html:em>internal monoidal categories</html:em>---that is, the ambient category <fr:tex display="inline"><![CDATA[\mathcal {E}]]></fr:tex> is a 1-category and the categorical structure of the base of enrichment <fr:tex display="inline"><![CDATA[\mathcal {V}]]></fr:tex> is formulated on top of this, not as part of the structure of the objects of the category <fr:tex display="inline"><![CDATA[\mathcal {E}]]></fr:tex>)
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  There is a very natural <html:em>double</html:em> categorical version of <fr:tex display="inline"><![CDATA[\mathsf {Para}]]></fr:tex>, where the vertical morphisms are just the unparametrized morphisms of <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, and the 2-cells with this boundary:
  
  <html:figure><fr:resource hash="72db837560dac11db9765d4a19ee6a29"><fr:resource-content><html:img src="/72db837560dac11db9765d4a19ee6a29.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	X & Y \\
	{X'} & {Y'}
	\arrow [""{name=0, anchor=center, inner sep=0}, from=1-1, to=1-2, "f"]
	\arrow [from=1-1, to=2-1]
	\arrow [from=1-2, to=2-2]
	\arrow [""{name=1, anchor=center, inner sep=0}, from=2-1, to=2-2]
	\arrow [shorten <=4pt, shorten >=4pt, Rightarrow, from=0, to=1, "g"]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  are morphisms <fr:tex display="inline"><![CDATA[M \to  N]]></fr:tex> (if <fr:tex display="inline"><![CDATA[f]]></fr:tex> is parametrized by <fr:tex display="inline"><![CDATA[M]]></fr:tex>, <fr:tex display="inline"><![CDATA[g]]></fr:tex> by <fr:tex display="inline"><![CDATA[N]]></fr:tex>) so that the square
  
  <html:figure><fr:resource hash="9c0e25cf17a3b4d8d5709467b47d6ab4"><fr:resource-content><html:img src="/9c0e25cf17a3b4d8d5709467b47d6ab4.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	{M \cdot  X} & Y \\
	{M \cdot  X'} & {Y'}
	\arrow [from=1-1, to=1-2]
	\arrow [from=1-1, to=2-1]
	\arrow [from=1-2, to=2-2]
	\arrow [from=2-1, to=2-2]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  commutes.
</html:p>
                    <html:p>
  This notion is not original---we learned of it from Matteo Capucci---but it seems to have remained somewhat on the level of folklore. Our main goal for this section will be to construct this (pseudo) double category, and show that it is functorial---that is, given a homomorphism of actions, there is an induced functor between double categories. In fact, we will show that this construction works in any 2-category. Later we will apply it to a pseudomonoid action in (strict) double categories to construct a pseudocategory internal to double categories---our triple category of bimachines.
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>29</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-55CC/</fr:uri>
                        <fr:display-uri>efr-55CC</fr:display-uri>
                        <fr:route>/efr-55CC/</fr:route>
                        <fr:taxon>Theorem</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex> be a monoidal category, and let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a category with an <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex>-action.
</html:p><html:p>
  Then there is a pseudo double category <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}_\mathcal {M}(\mathcal {C}),]]></fr:tex> with
  <html:ol><html:li><fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}_\mathcal {M}(\mathcal {C})_0 = \mathcal {C}]]></fr:tex></html:li>
    <html:li><fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}_\mathcal {M}(\mathcal {C})_1 = \mathcal {M} \times  \mathcal {C} \downarrow  \mathcal {C}]]></fr:tex>, with domain and codomain given by the two projections to <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex></html:li>
    <html:li>
      The identities map <fr:tex display="inline"><![CDATA[\mathcal {C} \to  \mathcal {M} \times  \mathcal {C} \downarrow  \mathcal {C}]]></fr:tex> is given by <fr:tex display="inline"><![CDATA[(I, 1_\mathcal {C}, 1_\mathcal {C}, \lambda ),]]></fr:tex> where <fr:tex display="inline"><![CDATA[\lambda : I \cdot - \to  -]]></fr:tex> is the left unitor of <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex>.
    </html:li>
    <html:li>
      The horizontal composition map is the composition in <fr:tex display="inline"><![CDATA[\mathsf {Para}:]]></fr:tex> given <fr:tex display="inline"><![CDATA[M \cdot  X \to  Y, N \cdot  Y \to  Z,]]></fr:tex> their composite is given by <fr:tex display="inline"><![CDATA[(N \otimes  M) \cdot  X \cong  N \cdot  (M \cdot  X) \to  N \cdot  Y \to  Z.]]></fr:tex> The horizontal composition of 2-cells is defined analogously.
    </html:li></html:ol></html:p><html:p>
  Moreover, if <fr:tex display="inline"><![CDATA[\mathcal {C} \to  \mathcal {D}]]></fr:tex> is <html:em>strict</html:em> homomorphism of <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex>-modules, there is an induced pseudofunctor <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}_\mathcal {M}(\mathcal {C}) \to  \mathsf {\mathbb  Para}_\mathcal {M}(\mathcal {D})]]></fr:tex>. If <fr:tex display="inline"><![CDATA[\mathcal {N} \to  \mathcal {M}]]></fr:tex> is a strict monoidal functor, then regarding <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> as an <fr:tex display="inline"><![CDATA[\mathcal {N}]]></fr:tex>-module along this map, there is an induced pseudofunctor <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}_\mathcal {N}(\mathcal {C}) \to  \mathsf {\mathbb  Para}_\mathcal {M}(\mathcal {C})]]></fr:tex>. These combine into a 2-functor <fr:tex display="inline"><![CDATA[\mathsf {Act}_s \to  \mathsf {PsDbl}_s]]></fr:tex> between the 2-category of actions and strictly linear functors and the category of pseudo double categories and strict double functors. This functor preserves (strict) limits.
</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>2025</fr:year><fr:month>4</fr:month><fr:day>29</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Note that every actegory <fr:tex display="inline"><![CDATA[\mathcal {M} \curvearrowright  \mathcal {C}]]></fr:tex> is equivalent to a strict action of a strict monoidal category <fr:tex display="inline"><![CDATA[\mathcal {M}_s \curvearrowright  \mathcal {C}_s]]></fr:tex> (in the sense that there exists <fr:tex display="inline"><![CDATA[\mathcal {M}_s \xrightarrow {\sim } \mathcal {M}]]></fr:tex> strong monoidal equivalence and <fr:tex display="inline"><![CDATA[\mathcal {C}_s \xrightarrow {\sim } \mathcal {C}]]></fr:tex> an equivalence such that these maps together form a map of actegories). It follows that it suffices to show unitality and associativity for our composition in the strict case (since these are plainly preserved by equivalence). 
  </html:p>

  <html:p>
    Let <fr:tex display="inline"><![CDATA[\mathcal {M} \curvearrowright  \mathcal {C}, \mathcal {M}' \curvearrowright  \mathcal {C}']]></fr:tex>, <fr:tex display="inline"><![CDATA[F: \mathcal {M} \to  \mathcal {M}']]></fr:tex> be a strict monoidal functor, and let <fr:tex display="inline"><![CDATA[G: \mathcal {C} \to  \mathcal {C}']]></fr:tex> be a linear functor "over <fr:tex display="inline"><![CDATA[F]]></fr:tex>", that is a (strict) <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex>-linear functor when <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex> is viewed as a <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex>-actegory along <fr:tex display="inline"><![CDATA[F]]></fr:tex>. Then the induced functor <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}_\mathcal {M}(\mathcal {C}) \to  \mathsf {\mathbb  Para}_{\mathcal {M}'}(\mathcal {C}')]]></fr:tex> is given by <fr:tex display="inline"><![CDATA[G]]></fr:tex> on the vertical category, and on the horizontal category by 
    <fr:tex display="block"><![CDATA[(M,X,X',\phi : M \cdot  X \to  X') \mapsto  (F(M), G(X), G(X'), F(M) \cdot  G(X) \simeq  G(M \cdot  X) \to  G(X'))]]></fr:tex>
    where the isomorphism is the linearity---noting that the <fr:tex display="inline"><![CDATA[M]]></fr:tex>-action on <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex> is precisely acting by <fr:tex display="inline"><![CDATA[F(M)]]></fr:tex>.
  </html:p>
  <html:p>
    By naturality of the lineator it is straightforward to see that this is a functor, and it clearly preserves domain and codomain. It preserves units (strictly!) by the compatibility between the unitor and lineator. It remains to see that this preserves composition. For brevity, denote the induced functor <fr:tex display="inline"><![CDATA[H]]></fr:tex> from here.
  </html:p>
  <html:p>
    It suffices to verify this for strict actions. So the composite of <fr:tex display="inline"><![CDATA[M \cdot  X \to  Y, N \cdot  Y \to  Z]]></fr:tex> is given by the composite
    <fr:tex display="block"><![CDATA[(N \otimes  M) \cdot  X = N \cdot  M \cdot  X \to  N \cdot  Y \to  Z.]]></fr:tex></html:p>
<html:p>
  Given two such composable maps, call them <fr:tex display="inline"><![CDATA[f,g]]></fr:tex>, the two objects <fr:tex display="inline"><![CDATA[H(fg), H(f)H(g)]]></fr:tex> are given by <fr:tex display="inline"><![CDATA[(F(M \otimes  N), G(X), G(Z), \beta ), (F(M) \otimes  F(N), G(X), G(Z), \alpha )]]></fr:tex> ,where <fr:tex display="inline"><![CDATA[\alpha , \beta ]]></fr:tex> are respectively the maps across the top and bottom of this diagram:
</html:p>
<html:p><html:figure><fr:resource hash="57ae8a952e148cf43a1d565e9c0cc44e"><fr:resource-content><html:img src="/57ae8a952e148cf43a1d565e9c0cc44e.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
 \begin {tikzcd}[column sep=small]
	{F(N) \otimes  F(M) \cdot  G(X)} & {F(N)\cdot  F(M) \cdot  G(X)} & {F(N)\cdot  G(M \cdot  X)} & {F(N)\cdot  G(Y)} \\
	&&&&& {G(Z)} \\
	\\
	{F(N \otimes  M)\cdot  G(X)} & {G(N \otimes  M \cdot  X)} & {G(N \cdot  (M \cdot  X))} & {G(N\cdot  Y)}
	\arrow ["\sim "', from=1-1, to=1-2]
	\arrow ["\alpha "', bend left=40, from=1-1, to=2-6]
	\arrow [equals, from=1-1, to=4-1]
	\arrow [equals, from=1-2, to=1-3]
	\arrow [from=1-3, to=1-4]
	\arrow [from=1-3, to=4-3]
	\arrow [from=1-4, to=2-6]
	\arrow [equals, from=1-4, to=4-4]
	\arrow ["\beta "', bend right=40, from=4-1, to=2-6]
	\arrow [equals, from=4-1, to=4-2]
	\arrow ["\sim ", from=4-2, to=4-3]
	\arrow [from=4-3, to=4-4]
	\arrow [from=4-4, to=2-6]
\end {tikzcd}
]]></fr:resource-source></fr:resource></html:figure></html:p>
<html:p>
This proves that <fr:tex display="inline"><![CDATA[H]]></fr:tex> preserves the composition strictly, as desired. (The rightmost triangle commutes by definition, and the leftmost rectangle is a lineator coherence)
</html:p>
  <html:p>
    Since the strict limits in <fr:tex display="inline"><![CDATA[\mathsf {PsDbl}_s]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathsf {Act}_s]]></fr:tex> are computed levelwise, it suffices to observe that the slice category also preserves limits, being a weighted limit itself.
  </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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>29</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-HUEE/</fr:uri>
                        <fr:display-uri>efr-HUEE</fr:display-uri>
                        <fr:route>/efr-HUEE/</fr:route>
                        <fr:taxon>Remark</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Note that <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}_\mathcal {M}(\mathcal {C})]]></fr:tex> comes equipped with a strict functor to <fr:tex display="inline"><![CDATA[B\mathcal {M}]]></fr:tex> (viewed as a double category). In fact, one can recover the action <fr:tex display="inline"><![CDATA[\cdot  : \mathcal {M} \times  \mathcal {C} \to  \mathcal {C}]]></fr:tex> from this data: the object <fr:tex display="inline"><![CDATA[M \cdot  X]]></fr:tex> is characterized up to isomorphism by its universal property: parametrized maps <fr:tex display="inline"><![CDATA[M \cdot  X \nrightarrow  Y]]></fr:tex> with parameter <fr:tex display="inline"><![CDATA[N]]></fr:tex> are in bijection with maps <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> parametrized by <fr:tex display="inline"><![CDATA[N \otimes  M]]></fr:tex>.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-9I1M/</fr:uri>
                    <fr:display-uri>efr-9I1M</fr:display-uri>
                    <fr:route>/efr-9I1M/</fr:route>
                    <fr:title text="2-Limit sketches">2-Limit sketches</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-L9JB/</fr:uri>
                        <fr:display-uri>efr-L9JB</fr:display-uri>
                        <fr:route>/efr-L9JB/</fr:route>
                        <fr:title text="Weighted limit">Weighted limit</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex> be a 2-category, let <fr:tex display="inline"><![CDATA[D: \mathbb {I} \to  \mathbb {C}]]></fr:tex> be a 2-diagram in it, and let <fr:tex display="inline"><![CDATA[W: \mathbb {I} \to  \mathsf {Cat}]]></fr:tex> be another 2-functor.
  A <html:em>limit of <fr:tex display="inline"><![CDATA[D]]></fr:tex> weighted by {W}</html:em> is an object <fr:tex display="inline"><![CDATA[\lim ^W D \in  \mathbb {C}]]></fr:tex> equipped with a natural isomorphism of categories <fr:tex display="inline"><![CDATA[\mathbb {C}(X,\lim ^W D) \cong  [ {\mathbb {I} }, {\mathbb {C}} ] (W, \mathbb {C}(X,D(-)))]]></fr:tex> (natural in <fr:tex display="inline"><![CDATA[X \in  \mathbb {C}]]></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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-K3YI/</fr:uri>
                        <fr:display-uri>efr-K3YI</fr:display-uri>
                        <fr:route>/efr-K3YI/</fr:route>
                        <fr:title text="Particular weighted limits">Particular weighted limits</fr:title>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  If <fr:tex display="inline"><![CDATA[W(-) = *]]></fr:tex> is constant at the point, and <fr:tex display="inline"><![CDATA[\mathbb {I}]]></fr:tex> is an 1-category, then a weighted limit is simply a <fr:tex display="inline"><![CDATA[L \to  D(i)]]></fr:tex> in the underlying category <fr:tex display="inline"><![CDATA[\mathbb {C}_0]]></fr:tex> so that there is additionally an isomorphism of categories <fr:tex display="inline"><![CDATA[\mathbb {C}(X,L) \xrightarrow {\sim } \lim _i \mathbb {C}(X,D(I))]]></fr:tex>. Note that this <html:em>is</html:em> stronger than just a limit in <fr:tex display="inline"><![CDATA[\mathbb {C}_0]]></fr:tex>. We will refer to limits of this form by their ordinary names---speaking for example of pullbacks, products, and so on.
</html:p>
                        <html:p>
  If <fr:tex display="inline"><![CDATA[I = *]]></fr:tex>, <fr:tex display="inline"><![CDATA[D(*) = D \in  \mathbb {C}]]></fr:tex>, and <fr:tex display="inline"><![CDATA[W(*) = C \in  \mathsf {Cat},]]></fr:tex> the universal property of the weighted limit is that <fr:tex display="inline"><![CDATA[\mathbb {C}(X, \lim ^W D) = \mathsf {Cat}(C, \mathbb {C}(X,D))]]></fr:tex>. In this case we write <fr:tex display="inline"><![CDATA[C \pitchfork  D]]></fr:tex> for this limit if it exists, and call it a <html:em>power</html:em> of <fr:tex display="inline"><![CDATA[D]]></fr:tex> by <fr:tex display="inline"><![CDATA[C]]></fr:tex>.
</html:p>
                        <html:p>
  If <fr:tex display="inline"><![CDATA[\mathbb {I} = \{A \to  B \leftarrow  C\}]]></fr:tex> and the weighting is given by <fr:tex display="inline"><![CDATA[W(B) = \{1 \to  2\}, W(A) = \{1\}, W(B) = \{2\}]]></fr:tex> (with the obvious inclusions), then the weighted limit is called the <html:em>comma object</html:em> and will be denoted <fr:tex display="inline"><![CDATA[D(A) \downarrow _{D(B)} D(C)]]></fr:tex>. Note that if <fr:tex display="inline"><![CDATA[\mathbb {C} = \mathsf {Cat}]]></fr:tex> this is precisely the ordinary comma category.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  The analogue for a cone on an object <fr:tex display="inline"><![CDATA[C]]></fr:tex> in the setting of weighted limits is called a <html:em>cylinder:</html:em> it is a natural transformation <fr:tex display="inline"><![CDATA[W(-) \to  \mathbb {C}(C, D(-))]]></fr:tex>.
  A cylinder on <fr:tex display="inline"><![CDATA[C]]></fr:tex> induces a natural transformation <fr:tex display="inline"><![CDATA[\mathbb {C}(X,C) \to  [ {\mathbb {I} }, {\mathbb {C}} ] (W(-),\mathbb {C}(X,D(-))),]]></fr:tex> and we say it's a limit cylinder if this 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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-40Q5/</fr:uri>
                        <fr:display-uri>efr-40Q5</fr:display-uri>
                        <fr:route>/efr-40Q5/</fr:route>
                        <fr:title text="2-limit sketch">2-limit sketch</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  A <html:em>2-limit sketch</html:em> is a small 2-category <fr:tex display="inline"><![CDATA[\mathcal {T}]]></fr:tex> equipped with a (small) set of cylinders <fr:tex display="inline"><![CDATA[\Theta ]]></fr:tex>.
  A <html:em>model</html:em> of the sketch in <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex> is a 2-functor <fr:tex display="inline"><![CDATA[\mathcal {T} \to  \mathbb {C}]]></fr:tex> which carries each cylinder in <fr:tex display="inline"><![CDATA[\Theta ]]></fr:tex> to a limit cylinder.
  We write the category of models and natural transformations <fr:tex display="inline"><![CDATA[\mathsf {Mod}(\mathcal {T},\mathbb {C})]]></fr:tex> (leaving the set of cylinders implicit).
  If <fr:tex display="inline"><![CDATA[\mathbb {C} = \mathsf {Cat},]]></fr:tex> we write simply <fr:tex display="inline"><![CDATA[\mathsf {Mod}(\mathcal {T})]]></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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-D7EH/</fr:uri>
                        <fr:display-uri>efr-D7EH</fr:display-uri>
                        <fr:route>/efr-D7EH/</fr:route>
                        <fr:taxon>Lemma</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {T}]]></fr:tex> be a 2-limit sketch.
  Then the functor <fr:tex display="inline"><![CDATA[\mathsf {Mod}(\mathcal {T},\mathbb {C}) \to  [\mathbb {C}^\mathrm {op},\mathsf {Mod}(\mathcal {T})]]]></fr:tex> given by <fr:tex display="inline"><![CDATA[A \in  \mathsf {Mod}(\mathcal {T},\mathbb {C}) \mapsto  (C \mapsto  (S \in  \mathcal {T} \mapsto  \mathbb {C}(C,A(S))))]]></fr:tex> is fully faithful, and its essential image consists of those functors <fr:tex display="inline"><![CDATA[F]]></fr:tex> so that each <fr:tex display="inline"><![CDATA[F(-)(S) : \mathbb {C}^\mathrm {op} \to  \mathsf {Cat}, S \in  \mathcal {T}]]></fr:tex> is representable,
</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>2025</fr:year><fr:month>5</fr:month><fr:day>4</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    First note that the codomain can be identified with the subcategory of <fr:tex display="inline"><![CDATA[[\mathbb {C}^\mathrm {op} \times  \mathcal {T}, \mathsf {Cat}]]]></fr:tex> spanned by those <fr:tex display="inline"><![CDATA[F]]></fr:tex> where each <fr:tex display="inline"><![CDATA[F(C,-)]]></fr:tex> is a model. Since the Yoneda embedding preserves limits, the functor <fr:tex display="inline"><![CDATA[A \mapsto  \operatorname {\mathrm {Hom}}(-, A(=))]]></fr:tex> from <fr:tex display="inline"><![CDATA[\mathsf {Mod}(\mathcal {T})]]></fr:tex> clearly lands inside here. Since <fr:tex display="inline"><![CDATA[\mathsf {Mod}(\mathcal {T},\mathbb {C})]]></fr:tex> is itself a full subcategory of the functor category <fr:tex display="inline"><![CDATA[[\mathcal {T},\mathbb {C}],]]></fr:tex> this is fully faithful.
  </html:p>
  <html:p>
    Clearly for each model <fr:tex display="inline"><![CDATA[A]]></fr:tex> and for each <fr:tex display="inline"><![CDATA[S \in  \mathcal {T},]]></fr:tex> the functor <fr:tex display="inline"><![CDATA[\mathbb {C}(-,A(S))]]></fr:tex> is representable, by <fr:tex display="inline"><![CDATA[A(S)]]></fr:tex>. Conversely, if <fr:tex display="inline"><![CDATA[F(C,S)]]></fr:tex> is such that each <fr:tex display="inline"><![CDATA[F(-,S)]]></fr:tex> is representable, then the currying of <fr:tex display="inline"><![CDATA[F]]></fr:tex> <fr:tex display="inline"><![CDATA[\mathcal {T} \to  [\mathbb {C}^\mathrm {op},\mathsf {Cat}]]]></fr:tex> factors over <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex>, and since the Yoneda embedding preserves those limits that exist, this factorization must be a model as well.
  </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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-9O7K/</fr:uri>
                        <fr:display-uri>efr-9O7K</fr:display-uri>
                        <fr:route>/efr-9O7K/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {T},\mathcal {T}']]></fr:tex> be limit sketches and suppose given a functor <fr:tex display="inline"><![CDATA[F: \mathsf {Mod}(\mathcal {T}) \to  \mathsf {Mod}(\mathcal {T}')]]></fr:tex> which preserves limits and is <html:em>accessible,</html:em> that is it preserved <fr:tex display="inline"><![CDATA[\kappa ]]></fr:tex>-filtered colimits for some <fr:tex display="inline"><![CDATA[\kappa ]]></fr:tex>. Then <fr:tex display="inline"><![CDATA[F]]></fr:tex> admits a left adjoint <fr:tex display="inline"><![CDATA[L]]></fr:tex>. 
</html:p>
                        <html:p>
  In particular, <fr:tex display="inline"><![CDATA[F(A)(S) = \mathsf {Mod}(\mathcal {T})(L(y(S)),A)]]></fr:tex></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>2025</fr:year>
                      <fr:month>3</fr:month>
                      <fr:day>21</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-ZRUW/</fr:uri>
                    <fr:display-uri>efr-ZRUW</fr:display-uri>
                    <fr:route>/efr-ZRUW/</fr:route>
                    <fr:title text="Pseudocategories">Pseudocategories</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
    Given a 2-category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, there is a natural loosening of the notion of "internal category in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>", given by requiring that associativity and unitality hold only up to chosen coherent isomorphism 2-cells. This is the notion of <html:em>pseudocategory</html:em>. We refer to <fr:link href="/pseudocategories/" title="Pseudo-categories" uri="https://erischel.com/pseudocategories/" display-uri="pseudocategories" type="local">Reference <fr:contextual-number uri="https://erischel.com/pseudocategories/" display-uri="pseudocategories" /></fr:link> for a thorough description of this concept (as well as a review of the earlier literature). However, we will review the basic facts here for convenience.
</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>2025</fr:year>
                          <fr:month>3</fr:month>
                          <fr:day>21</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-ZRUX/</fr:uri>
                        <fr:display-uri>efr-ZRUX</fr:display-uri>
                        <fr:route>/efr-ZRUX/</fr:route>
                        <fr:title text="Internal pseudocategory">Internal pseudocategory</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
    Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a 2-category with pullbacks. Then an <html:em>internal pseudocategory in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex></html:em> (or simply a pseudocategory in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>) consists of the following data:
</html:p>
                        <html:ol><html:li>Two objects <fr:tex display="inline"><![CDATA[C_0, C_1 \in  \mathcal {C}]]></fr:tex></html:li>
    <html:li>Morphisms <fr:tex display="inline"><![CDATA[d,c: C_1 \to  C_0, e: C_0 \to  C_1]]></fr:tex> so that <fr:tex display="inline"><![CDATA[de = ce = 1_{A_0}]]></fr:tex></html:li>.
    <html:li>A morphism <fr:tex display="inline"><![CDATA[m: C_1 \times _{C_0} C_1 \to  C_1]]></fr:tex>, so that <fr:tex display="inline"><![CDATA[dm = d\pi _2, cm = c\pi _1]]></fr:tex></html:li>
    <html:li>Isomorphism 2-cells <fr:tex display="inline"><![CDATA[\alpha : m(1_{C_1} \times _{C_0} m) \to  m(m \times _{C_0} 1_{C_1})]]></fr:tex>, <fr:tex display="inline"><![CDATA[\lambda : m \langle  ec, 1_{C_1} \rangle  \to  1_CA_1]]></fr:tex></html:li>, and <fr:tex display="inline"><![CDATA[\rho : m\langle  1_{A_1}, ed \rangle  \to  1_{A_1}]]></fr:tex>
    <html:li>Satisfying the following equations: <html:ol><html:li><fr:tex display="inline"><![CDATA[d \circ  \lambda  = 1_d = d \circ  \rho ]]></fr:tex></html:li>
        <html:li><fr:tex display="inline"><![CDATA[c \circ  \lambda  = 1_c = c \circ  \rho ]]></fr:tex></html:li>
        <html:li><fr:tex display="inline"><![CDATA[d \circ  \alpha  = 1_{d\pi _3}]]></fr:tex>, <fr:tex display="inline"><![CDATA[c \circ  \alpha  = 1_{c\pi _1}]]></fr:tex></html:li>
        <html:li><fr:tex display="inline"><![CDATA[\lambda  \circ  e = \rho  \circ  e]]></fr:tex></html:li></html:ol></html:li>
    <html:li>And so that the following diagrams commute:</html:li></html:ol>
                        <html:p>
                          <html:figure>
                            <fr:resource hash="e004c7f759ff82b4c72efeeca472d23e">
                              <fr:resource-content>
                                <html:img src="/e004c7f759ff82b4c72efeeca472d23e.svg" />
                              </fr:resource-content>
                              <fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source>
                              <fr:resource-source type="latex" part="body"><![CDATA[
        \begin {tikzcd}
	& \bullet  && \bullet  \\
	\\
	\bullet  &&&& \bullet  \\
	&& \bullet 
	\arrow ["{m \circ (1_{C_1}\times _{C_0}\alpha )}", from=1-2, to=1-4]
	\arrow ["{\alpha \circ (1_{C_1}\times _{C_0}1_{C_1}\times _{C_0}m)}"', from=1-2, to=3-1]
	\arrow ["{\alpha  \circ  (1_{C_1} \times _{C_0} m \times _{C_0} 1_{C_1})}", from=1-4, to=3-5]
	\arrow ["{\alpha  \circ (m \times _{C_0}1_{C_1}\times _{C_0}1_{C_1})}"', from=3-1, to=4-3]
	\arrow ["{m \circ (\alpha  \times _{C_0}1_{C_1})}"', from=3-5, to=4-3]
\end {tikzcd}
    ]]></fr:resource-source>
                            </fr:resource>
                          </html:figure>
                        </html:p>
                        <html:p>
                          <html:figure>
                            <fr:resource hash="82f92699536e80e219865122e308f712">
                              <fr:resource-content>
                                <html:img src="/82f92699536e80e219865122e308f712.svg" />
                              </fr:resource-content>
                              <fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source>
                              <fr:resource-source type="latex" part="body"><![CDATA[
        \begin {tikzcd}
	\bullet  && \bullet  \\
	& \bullet 
	\arrow ["{\alpha \circ (1_{C_1}\times _{C_0}\langle  ec, 1_{C_1}\rangle )}", from=1-1, to=1-3]
	\arrow ["{m \circ (1_{C_1} \times _{C_0}\lambda )}"', from=1-1, to=2-2]
	\arrow ["{m \circ  (\rho  \times _{C_0}1_{C_1})}", from=1-3, to=2-2]
\end {tikzcd}
    ]]></fr:resource-source>
                            </fr:resource>
                          </html:figure>
                        </html:p>
                        <html:p>
    A <html:em>homomorphism</html:em> or <html:em>strict functor</html:em> of pseudocategories <fr:tex display="inline"><![CDATA[A \to  B]]></fr:tex> is a pair of morphisms <fr:tex display="inline"><![CDATA[F_1: A_1 \to  B_1, F_0: A_0 \to  B_0]]></fr:tex> which commute with all the structure---that is, <fr:tex display="inline"><![CDATA[dF_1 = F_0d]]></fr:tex>, <fr:tex display="inline"><![CDATA[F_1 \alpha  = \alpha  (F_1 \times _{F_0} F_1 \times _{F_0} F_1)]]></fr:tex>, and so on. There is a clear notion of natural transformation of homomorphisms. We write <fr:tex display="inline"><![CDATA[\mathsf {PsCat}_s(\mathbb {C})]]></fr:tex> for the 2-category of pseudocategories, homomorphisms and natural transformations in <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex>.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
    It is important to note that, although this is a weakening of the definition of internal category, pseudocategories are themselves a strict concept---they are defined in terms of equations that must hold up to <html:em>strict</html:em> equality. Thus for example there is an enriched monad (a 2-monad) on <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex> whose <html:em>strict</html:em> algebras are the pseudo double categories.
</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>2025</fr:year>
                          <fr:month>3</fr:month>
                          <fr:day>21</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-ZRUY/</fr:uri>
                        <fr:display-uri>efr-ZRUY</fr:display-uri>
                        <fr:route>/efr-ZRUY/</fr:route>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:ol><html:li>
        An internal pseudocategory in <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex> is, as mentioned above, a pseudo double category.
    </html:li>
    <html:li>
        An internal pseudocategory <fr:tex display="inline"><![CDATA[A]]></fr:tex> with <fr:tex display="inline"><![CDATA[A_0]]></fr:tex> terminal is the same thing as an internal pseudomonoid. If we fix a specific terminal object <fr:tex display="inline"><![CDATA[*]]></fr:tex> and require <fr:tex display="inline"><![CDATA[A_0 = *]]></fr:tex>, this is an <html:em>isomorphism</html:em> of 2-categories (both for the categories of pseudomorphisms and homomorphisms).
    </html:li>
    <html:li>
        An internal pseudocategory with <fr:tex display="inline"><![CDATA[\alpha ,\lambda ,\rho ]]></fr:tex> identities is the same thing as a (strict) internal category. In particular, internal pseudocategories in discrete 2-categories are merely internal categories.
    </html:li></html:ol>
                      </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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-LTJQ/</fr:uri>
                        <fr:display-uri>efr-LTJQ</fr:display-uri>
                        <fr:route>/efr-LTJQ/</fr:route>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathsf {MonCat}_s]]></fr:tex> be the 2-category of monoidal categories, <html:em>strict</html:em> monoidal functors and monoidal natural transformations. Note that this has pullbacks.
  Then the objects of <fr:tex display="inline"><![CDATA[\mathsf {PsCat}(\mathsf {MonCat})]]></fr:tex> are a stricter version of <html:em>monoidal pseudo double categories</html:em>: they are pseudo double categories <fr:tex display="inline"><![CDATA[C_1,C_0]]></fr:tex> where both <fr:tex display="inline"><![CDATA[C_1,C_0]]></fr:tex> carry a monoidal structure so that <fr:tex display="inline"><![CDATA[d,c,e,m]]></fr:tex> are strict monoidal functors and <fr:tex display="inline"><![CDATA[\rho ,\lambda ,\alpha ]]></fr:tex> are monoidal natural transformations.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
    Here we are already beginning to feel the limitations of this internalization a bit---really we should ask for <fr:tex display="inline"><![CDATA[m]]></fr:tex>, at least, to be only a strong monoidal functor. But we move on for now with this problematic definition.
</html:p>
                    <html:p>
    Of course, there is a very crucial notion of <html:em>pseudofunctor</html:em> between pseudo double categories. This has an internal formulation in terms of <html:em>pseudomorphisms:</html:em></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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-8YZ9/</fr:uri>
                        <fr:display-uri>efr-8YZ9</fr:display-uri>
                        <fr:route>/efr-8YZ9/</fr:route>
                        <fr:title text="Pseudomorphism of pseudocategories">Pseudomorphism of pseudocategories</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let 
  <fr:tex display="block"><![CDATA[C = (C_0,C_1, d,c,e,m,\alpha ,\lambda ,\rho )]]></fr:tex>
  <fr:tex display="block"><![CDATA[D = (D_0,D_1, d',c',e',m',\alpha ',\lambda ',\rho ')]]></fr:tex>
   be internal pseudocategories in a 2-category <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex>. A <html:em>pseudomorphism <fr:tex display="inline"><![CDATA[F: C \to  D]]></fr:tex></html:em> consists of the following data:
  <html:ol><html:li>Morphisms <fr:tex display="inline"><![CDATA[F_0: C_0 \to  D_0]]></fr:tex>, <fr:tex display="inline"><![CDATA[F_1:C_1 \to  D_1]]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex></html:li>
    <html:li>Isomorphism 2-cells <fr:tex display="inline"><![CDATA[\mu : F_1m \to  m(F_1 \times _{F_0} F_1)]]></fr:tex> and <fr:tex display="inline"><![CDATA[\epsilon  : F_1e \to  eF_0]]></fr:tex></html:li></html:ol>
  So that the following equations hold:
  <html:ol><html:li><fr:tex display="inline"><![CDATA[d'F_1 = F_0d, c'F_1 = F_0c]]></fr:tex></html:li>
    <html:li><fr:tex display="inline"><![CDATA[d' \circ  \mu  = 1_{F_0}d\pi _2, c' \circ  \mu  = 1_{F_0c\pi _1}]]></fr:tex></html:li>
    <html:li><fr:tex display="inline"><![CDATA[d' \circ  \epsilon  = 1_{F_0}, c'\circ  \epsilon  = 1_{F_0}]]></fr:tex></html:li></html:ol>
  And so that the following diagrams commute:
  
  <html:figure><fr:resource hash="e0bc8fd0dd9a0aa0df6e0b07e8f9358d"><fr:resource-content><html:img src="/e0bc8fd0dd9a0aa0df6e0b07e8f9358d.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	& \bullet  & \bullet  \\
	\bullet  &&& \bullet  \\
	& \bullet  & \bullet 
	\arrow ["{\mu (1 \times _{C_0} m)}", from=1-2, to=1-3]
	\arrow ["{F_1\alpha }"', from=1-2, to=2-1]
	\arrow ["{m'(1_{F_1} \times  \mu )}", from=1-3, to=2-4]
	\arrow ["{\mu (m \times _{C_0}1)}"', from=2-1, to=3-2]
	\arrow ["{\alpha ' (F_1\times _{F_0}F_1 \times _{F_0} F_1)}", from=2-4, to=3-3]
	\arrow ["{m'(\mu  \times  1_{F_1})}"', from=3-2, to=3-3]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  
  <html:figure><fr:resource hash="fe17a4599cc11546710758c59803fac5"><fr:resource-content><html:img src="/fe17a4599cc11546710758c59803fac5.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	\bullet  & \bullet  \\
	\bullet  & \bullet  \\
	\bullet  & \bullet  \\
	\bullet  & \bullet 
	\arrow ["{F_1\rho }", from=1-1, to=1-2]
	\arrow ["{\mu \langle  1, ed \rangle }"', from=1-1, to=2-1]
	\arrow ["{m'(1_{F_1} \times  \epsilon )}"', from=2-1, to=2-2]
	\arrow ["{\mu 'F_1}"', from=2-2, to=1-2]
	\arrow ["{F_1\lambda }", from=3-1, to=3-2]
	\arrow ["{\mu \langle  ec, 1\rangle }"', from=3-1, to=4-1]
	\arrow ["{m'(\epsilon  \times  1_{F_1})}"', from=4-1, to=4-2]
	\arrow ["{\mu ' F_1}"', from=4-2, to=3-2]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure></html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
    One should not spend too much time looking at <fr:link href="/efr-8YZ9/" title="Pseudomorphism of pseudocategories" uri="https://erischel.com/efr-8YZ9/" display-uri="efr-8YZ9" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-8YZ9/" display-uri="efr-8YZ9" /></fr:link>. This is clearly a horrible concept, and we will prefer to work around it rather than referring to it explicitly. It may be a useful exercise to convince oneself that, when <fr:tex display="inline"><![CDATA[C_0 = *]]></fr:tex> and the pseudocategory is a pseudomonoid---eg a monoidal category---this coincides with the notion of strong monoidal functor.
</html:p>
                    <html:p>
    One can also define lax and oplax functors between pseudo double categories, but we will not need that concept here.
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-7ZZG/</fr:uri>
                        <fr:display-uri>efr-7ZZG</fr:display-uri>
                        <fr:route>/efr-7ZZG/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  There exists a <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex>-limit sketch <fr:tex display="inline"><![CDATA[(\mathcal {T}_\mathsf {PsCat}, \Theta _\mathsf {PsCat})]]></fr:tex> whose strict models are internal pseudocategories, and whose strict natural transformations are homomorphisms.
</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>2025</fr:year><fr:month>5</fr:month><fr:day>4</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    There is nothing surprising about this to those familiar with limit sketch presentations of other algebraic gadgets, but for completeness we give an explicit construction here.
  </html:p>
  <html:p>
    Take <fr:tex display="inline"><![CDATA[\mathcal {T}_\mathsf {PsMon}]]></fr:tex> to have objects <fr:tex display="inline"><![CDATA[C_0,C_1,C_2,C_3,C_4]]></fr:tex>. The 2-category is freely generated by these objects and the following data:
  </html:p>
  <html:ol><html:li>
      Morphisms <fr:tex display="inline"><![CDATA[d,c : C_1 \to  C_0]]></fr:tex></html:li>
    <html:li>
      Morphisms <fr:tex display="inline"><![CDATA[\pi _1^i, \pi _2^i: C_{i+1} \to  C_i]]></fr:tex> for <fr:tex display="inline"><![CDATA[i=1,2,3,]]></fr:tex> so that
      
  <html:figure><fr:resource hash="91a48e75c0c38f524d96fb0ce765f76c"><fr:resource-content><html:img src="/91a48e75c0c38f524d96fb0ce765f76c.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
        \begin {tikzcd}
	{C_{i+2}} & {C_{i+1}} \\
	\bullet  & \bullet 
	\arrow ["{\pi _2^{i+1}}", from=1-1, to=1-2]
	\arrow ["{\pi _1^{i+1}}"', from=1-1, to=2-1]
	\arrow ["{\pi ^i_1}", from=1-2, to=2-2]
	\arrow ["{\pi ^i_2}"', from=2-1, to=2-2]
\end {tikzcd}
      ]]></fr:resource-source></fr:resource></html:figure>

      commutes.
    </html:li>
    <html:li>
      Morphisms <fr:tex display="inline"><![CDATA[m: C_2 \to  C_1]]></fr:tex> and <fr:tex display="inline"><![CDATA[e: C_0 \to  C_1]]></fr:tex> satisfying <fr:tex display="inline"><![CDATA[dm = d\pi _1^1, cm = c\pi _2^1, de = ce = 1_{C_0}]]></fr:tex></html:li>
    <html:li>
      Further morphisms, and invertible 2-cells <fr:tex display="inline"><![CDATA[\alpha ,\lambda ,\rho ,]]></fr:tex> as in the following diagrams:
      
  <html:figure><fr:resource hash="2f208819248a5c1100a5200a69d67848"><fr:resource-content><html:img src="/2f208819248a5c1100a5200a69d67848.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
        \begin {tikzcd}
	{C_3} & {C_2} \\
	{C_2} & {C_1}
	\arrow ["{\langle  m, 1_{C_1}\rangle }", from=1-1, to=1-2]
	\arrow ["{\langle  1_{C_1}, m\rangle }"', from=1-1, to=2-1]
	\arrow ["\alpha "', shorten <=4pt, shorten >=4pt, Rightarrow, from=1-2, to=2-1]
	\arrow ["m", from=1-2, to=2-2]
	\arrow ["m"', from=2-1, to=2-2]
\end {tikzcd}
      ]]></fr:resource-source></fr:resource></html:figure>

      
  <html:figure><fr:resource hash="54965addd8835a691d2201e881082bf4"><fr:resource-content><html:img src="/54965addd8835a691d2201e881082bf4.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
        \begin {tikzcd}
	{C_1} & {C_2} & {C_1} \\
	& {C_1}
	\arrow ["{\langle  e, 1_{C_1} \rangle }", from=1-1, to=1-2]
	\arrow [""{name=0, anchor=center, inner sep=0}, "{1_{C_1}}"', from=1-1, to=2-2]
	\arrow [""{name=1, anchor=center, inner sep=0}, "m"{description}, from=1-2, to=2-2]
	\arrow ["{\langle  1_{C_1}, e \rangle }"', from=1-3, to=1-2]
	\arrow [""{name=2, anchor=center, inner sep=0}, "{1_{C_1}}", from=1-3, to=2-2]
	\arrow ["\lambda ", shorten <=3pt, shorten >=3pt, Rightarrow, from=0, to=1]
	\arrow ["\rho "', shorten <=3pt, shorten >=3pt, Rightarrow, from=2, to=1]
\end {tikzcd}
      ]]></fr:resource-source></fr:resource></html:figure>

      and all the other induced morphisms appearing in <fr:link href="/efr-ZRUX/" title="Internal pseudocategory" uri="https://erischel.com/efr-ZRUX/" display-uri="efr-ZRUX" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-ZRUX/" display-uri="efr-ZRUX" /></fr:link>, subject to those equations holding.
    </html:li>
    <html:li>
      Equations asserting that the morphisms and 2-cells with codomain <fr:tex display="inline"><![CDATA[C_i, i>1]]></fr:tex> behave as expected under postcomposition with the pullback projections.
    </html:li></html:ol>
  <html:p>
    The prescribed pullback cones <fr:tex display="inline"><![CDATA[\Theta ]]></fr:tex> are the diagrams involving <fr:tex display="inline"><![CDATA[\pi _j^i]]></fr:tex> for <fr:tex display="inline"><![CDATA[i=0,1,2]]></fr:tex>.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                    </fr:tree>
                    <html:p>
    An explicit description of this sketch seems not to have appeared in the literature until <fr:link href="/varkor-bourke-ko-sketches/" title="Enhanced 2-categorical structures, two-dimensional limit sketches and the symmetry of internalisation" uri="https://erischel.com/varkor-bourke-ko-sketches/" display-uri="varkor-bourke-ko-sketches" type="local">Reference <fr:contextual-number uri="https://erischel.com/varkor-bourke-ko-sketches/" display-uri="varkor-bourke-ko-sketches" /></fr:link> (example 5.13). Note that they construct a richer object, what they term an <html:em><fr:tex display="inline"><![CDATA[\mathcal {F}]]></fr:tex>-sketch,</html:em> which includes the information that the domain and codomain are "tight" and must be preserved strictly by pseudofunctors, but composition and identities are "loose" and may be preserved only up to natural isomorphism. This idea will be highly useful later, although we will not go into a full treatment of their theory.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-NI76/</fr:uri>
                    <fr:display-uri>efr-NI76</fr:display-uri>
                    <fr:route>/efr-NI76/</fr:route>
                    <fr:title text="Actegories">Actegories</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-OFNV/</fr:uri>
                        <fr:display-uri>efr-OFNV</fr:display-uri>
                        <fr:route>/efr-OFNV/</fr:route>
                        <fr:title text="Actegory">Actegory</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex> be a monoidal category. A <html:em><fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex>-actegory</html:em> (also <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex>-module, <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex>-action) is a category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> equipped with a functor
  <fr:tex display="inline"><![CDATA[\cdot : \mathcal {M} \times  \mathcal {C} \to  \mathcal {C}]]></fr:tex> called the <html:em>action</html:em> (written infix, <fr:tex display="inline"><![CDATA[M \cdot  C]]></fr:tex>), and natural isomorphisms <fr:tex display="inline"><![CDATA[\mu : (M \otimes  M') \cdot  C \to  M \cdot  (M' \cdot  C), \eta : I \cdot  C \to  C]]></fr:tex> satisfying the following coherence equations: 
</html:p>
                        <html:p><html:figure><fr:resource hash="3405d248c3510b048b20a84395b47bc9"><fr:resource-content><html:img src="/3405d248c3510b048b20a84395b47bc9.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	{M \cdot  (N \cdot  (P \cdot  C))} && {(M \otimes  N) \cdot  (P \cdot  C)} \\
	{M \cdot  ((N \otimes  P) \cdot  C)} && {((M \otimes  N) \otimes  P) \cdot  C} \\
	& {(M \otimes  (N \otimes  P)) \cdot  C}
	\arrow ["{\mu _{M,N,P\cdot  C}}", from=1-1, to=1-3]
	\arrow ["{M \cdot  \mu _{N,P,C}}"', from=1-1, to=2-1]
	\arrow ["{\mu _{M \otimes  N, P, C}}", from=1-3, to=2-3]
	\arrow ["{\mu _{M, N \otimes  P, C}}"', from=2-1, to=3-2]
	\arrow ["{\alpha _{M,N,P}\cdot  C}", from=2-3, to=3-2]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  
  <html:figure><fr:resource hash="5665f2d69c4c1ac00b5773889131f408"><fr:resource-content><html:img src="/5665f2d69c4c1ac00b5773889131f408.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	{I\cdot  (M \cdot  C)} & {(I \otimes  M) \cdot  C} \\
	& {M\cdot  C}
	\arrow ["{\mu _{I,M,C}}", from=1-1, to=1-2]
	\arrow ["{\eta _{M\cdot  C}^{-1}}"', from=1-1, to=2-2]
	\arrow ["{\lambda _M \cdot  C}", from=1-2, to=2-2]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  
  <html:figure><fr:resource hash="5ddcd0cfdbc7007f8671e0f9d966a7c3"><fr:resource-content><html:img src="/5ddcd0cfdbc7007f8671e0f9d966a7c3.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
\begin {tikzcd}
	{M \cdot  (I \cdot  C)} & {(M \otimes  I) \cdot  C} \\
	& {M\cdot  C}
	\arrow ["{\mu _{I,M,C}}", from=1-1, to=1-2]
	\arrow ["{M \cdot  \eta _C^{-1}}"', from=1-1, to=2-2]
	\arrow ["{\rho  \cdot  C}", from=1-2, to=2-2]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure></html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Actegories are a very natural concept, and as one would expect their history goes back a long way. The concept has been considered by Benabou all the way back in <fr:link href="/benabou-bicategories/" title="Introduction to bicategories" uri="https://erischel.com/benabou-bicategories/" display-uri="benabou-bicategories" type="local">Reference <fr:contextual-number uri="https://erischel.com/benabou-bicategories/" display-uri="benabou-bicategories" /></fr:link>, and used many times since them. We will not delve too deeply into their theory here---see <fr:link href="/actegories-amthematician-capucci-gavranovic/" title="Actegories for the Working Amthematician" uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" type="local">Reference <fr:contextual-number uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" /></fr:link> for a thorough treatment. 
</html:p>
                    <html:p>
  Just as pseudo double categories, actegories really make sense in every 2-category, as a weakening of monoid actions.
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-IOLJ/</fr:uri>
                        <fr:display-uri>efr-IOLJ</fr:display-uri>
                        <fr:route>/efr-IOLJ/</fr:route>
                        <fr:title text="Pseudomonoid action">Pseudomonoid action</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex> be a 2-category. A pseudomonoid action internal to <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex> consists of the following data: An internal pseudomonoid <fr:tex display="inline"><![CDATA[M]]></fr:tex>, an object <fr:tex display="inline"><![CDATA[C]]></fr:tex>, a morphism <fr:tex display="inline"><![CDATA[\cdot : M \times  C \to  C,]]></fr:tex> natural isomorphisms <fr:tex display="inline"><![CDATA[\mu : \cdot  (\otimes  \times  1_C) \to  \cdot  (1_M \times  \cdot )]]></fr:tex> and <fr:tex display="inline"><![CDATA[\eta : \cdot  \langle  e, 1_C \rangle  \to  1_C]]></fr:tex>, satisfying the coherence equations from <fr:link href="/efr-OFNV/" title="Actegory" uri="https://erischel.com/efr-OFNV/" display-uri="efr-OFNV" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-OFNV/" display-uri="efr-OFNV" /></fr:link>.
</html:p>
                        <html:p>
  A <html:em>strict homomorphism of actions</html:em> is a pair <fr:tex display="inline"><![CDATA[F_m: M \to  M', F_c: C \to  C']]></fr:tex> so that <fr:tex display="inline"><![CDATA[F_m]]></fr:tex> is a strictly monoidal functor and <fr:tex display="inline"><![CDATA[F_c]]></fr:tex> preserves the action strictly, i.e <fr:tex display="inline"><![CDATA[F_m(M) \cdot  F_c(C) = F_c(M \cdot  C)]]></fr:tex>, <fr:tex display="inline"><![CDATA[F_c(\eta ) = \eta ',]]></fr:tex> etc. Note that this makes sense even if the monoidal category or action is not itself strict.
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-6S13/</fr:uri>
                        <fr:display-uri>efr-6S13</fr:display-uri>
                        <fr:route>/efr-6S13/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  There is a limit sketch <fr:tex display="inline"><![CDATA[\mathcal {T}_\mathsf {Act}, \Theta _\mathsf {Act}]]></fr:tex> whose models are tuples <fr:tex display="inline"><![CDATA[(M,C,\cdot )]]></fr:tex> of a pseudomonoid <fr:tex display="inline"><![CDATA[M = (M,\otimes ,I)]]></fr:tex>, an object <fr:tex display="inline"><![CDATA[C]]></fr:tex> and an action <fr:tex display="inline"><![CDATA[\cdot ]]></fr:tex> of <fr:tex display="inline"><![CDATA[M]]></fr:tex> on <fr:tex display="inline"><![CDATA[C]]></fr:tex>. The strict natural transformations between models are strictly linear functors.
</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>2025</fr:year><fr:month>5</fr:month><fr:day>4</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    As above, there is nothing difficult about this.
    Let <fr:tex display="inline"><![CDATA[\mathcal {T}_\mathsf {Act}]]></fr:tex> contain as a subcategory the sketch of pseudomonoids <fr:tex display="inline"><![CDATA[\mathcal {T}_\mathsf {PsMon}]]></fr:tex>, along with three additional objects <fr:tex display="inline"><![CDATA[C, MC, MMC,]]></fr:tex> projections <fr:tex display="inline"><![CDATA[\pi ^1_M, \pi ^1_C: MC \to  M,C,]]></fr:tex> <fr:tex display="inline"><![CDATA[\pi ^2_{M_1}, \pi ^2_{M_2}, \pi ^2_{C} : MMC \to  M, M, C]]></fr:tex>, and limit cones expressing these as the products <fr:tex display="inline"><![CDATA[M \times  C]]></fr:tex> and <fr:tex display="inline"><![CDATA[M \times  M \times  C]]></fr:tex> respectively, a morphism <fr:tex display="inline"><![CDATA[\cdot : MC \to  C,]]></fr:tex> and isomorphism 2-cells <fr:tex display="inline"><![CDATA[\eta : 1_C \Rightarrow  \cdot  \langle  I, 1_C \rangle ]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mu : \cdot  \langle  \pi ^2_{M_1}, \cdot  \langle  \pi ^2_{M_2}, \pi ^2_C \rangle  \rangle  \to  \cdot  \langle   \otimes  \langle  \pi ^2_{M_1}, \pi ^2_{M_2} \rangle , \pi ^2_C \rangle ]]></fr:tex>, subject to the coherence equations in <fr:link href="/efr-OFNV/" title="Actegory" uri="https://erischel.com/efr-OFNV/" display-uri="efr-OFNV" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-OFNV/" display-uri="efr-OFNV" /></fr:link>.
  </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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-I33G/</fr:uri>
                        <fr:display-uri>efr-I33G</fr:display-uri>
                        <fr:route>/efr-I33G/</fr:route>
                        <fr:title text="Discrete pseudomonoid">Discrete pseudomonoid</fr:title>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  If <fr:tex display="inline"><![CDATA[\mathbb {C} = \mathcal {C}]]></fr:tex> is an ordinary category with finite products (viewed as a discrete 2-category), a pseudomonoid is simply an internal monoid, and an action is just a monoid action in the ordinary sense.
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-ARIX/</fr:uri>
                        <fr:display-uri>efr-ARIX</fr:display-uri>
                        <fr:route>/efr-ARIX/</fr:route>
                        <fr:title text="Monoidal and symmetric monoidal actegories">Monoidal and symmetric monoidal actegories</fr:title>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  In <fr:link href="/actegories-amthematician-capucci-gavranovic/" title="Actegories for the Working Amthematician" uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" type="local">Reference <fr:contextual-number uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" /></fr:link>, the authors study actegories with extra monoidal structure. Although they do not introduce pseudomonoid actions in a general 2-category, they study actegories internal to monoidal categories, which they call <html:em>monoidal actegories.</html:em> It is straightforward to check that pseudomonoid actions in <fr:tex display="inline"><![CDATA[\mathsf {MonCat}]]></fr:tex> agree with their notion: such an action consists of a braided monoidal category <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex>, an ordinary monoidal category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, a monoidal functor <fr:tex display="inline"><![CDATA[\mathcal {M} \times  \mathcal {C} \to  \mathcal {C},]]></fr:tex> and monoidal natural transformations <fr:tex display="inline"><![CDATA[\mu ,\eta ]]></fr:tex> satisfying the coherence equations for an actegory.
</html:p>
                        <html:p>
  (Note that since the functor <fr:tex display="inline"><![CDATA[\otimes ]]></fr:tex> appears on one side of <fr:tex display="inline"><![CDATA[\mu ]]></fr:tex>, to speak of <fr:tex display="inline"><![CDATA[\mu ]]></fr:tex> being a monoidal natural transformation we must have a monoidal structure on <fr:tex display="inline"><![CDATA[\otimes ]]></fr:tex>---this makes <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex> into a braided monoidal category).
</html:p>
                        <html:p>
  For the case of symmetric monoidal actegories, since <fr:tex display="inline"><![CDATA[\mathsf {SymMonCat}]]></fr:tex> is cocartesian, <fr:tex display="inline"><![CDATA[\mathsf {PsMon}(\mathsf {SymMonCat}) \simeq  \mathsf {SymMonCat}]]></fr:tex>. Given two symmetric monoidal categories <fr:tex display="inline"><![CDATA[\mathcal {M},\mathcal {C},]]></fr:tex> <fr:link href="/actegories-amthematician-capucci-gavranovic/" title="Actegories for the Working Amthematician" uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" type="local">Reference <fr:contextual-number uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" /></fr:link> show that an action is simply given by a strong symmetric monoidal functor <fr:tex display="inline"><![CDATA[f: \mathcal {M} \to  \mathcal {C}]]></fr:tex> (and in this case the action is <fr:tex display="inline"><![CDATA[M \cdot  C = F(M) \otimes  C]]></fr:tex>). Unwinding this construction we see that <fr:tex display="inline"><![CDATA[\mathsf {Act}_s(\mathsf {SymMonCat})]]></fr:tex> is bi-equivalent to a category which has as objects strong (but not strict) symmetric monoidal functors <fr:tex display="inline"><![CDATA[C \to  C',]]></fr:tex> and morphisms squares
  
  <html:figure><fr:resource hash="900cdb97ab52b72c832dd31866f4500f"><fr:resource-content><html:img src="/900cdb97ab52b72c832dd31866f4500f.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	C & D \\
	{C'} & {D'}
	\arrow [from=1-1, to=1-2]
	\arrow [squiggly, from=1-1, to=2-1]
	\arrow [squiggly, from=1-2, to=2-2]
	\arrow [squiggly, from=2-1, to=2-2]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  of symmetric monoidal functors, where the top map is strict, and which commute strictly.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Again, as expected, the notion of strict linear morphism is usually too strict. One can expect an equation like <fr:tex display="inline"><![CDATA[F_m(M) \cdot  F_c(C) = F_c(M \cdot  C)]]></fr:tex> to hold only up to coherent isomorphism. Let us now make this clear:
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-L5QG/</fr:uri>
                        <fr:display-uri>efr-L5QG</fr:display-uri>
                        <fr:route>/efr-L5QG/</fr:route>
                        <fr:title text="Pseudolinear map">Pseudolinear map</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex> be a 2-category, and let <fr:tex display="inline"><![CDATA[(M,C,\cdot ), (N,D,\star )]]></fr:tex> be internal pseudomonoid actions. A <html:em>pseudolinear map</html:em> (or just <html:em>linear</html:em>) is a pair of maps <fr:tex display="inline"><![CDATA[F_m: M \to  N, F_c: C \to  D]]></fr:tex>, equipped with a pseudomonoid pseudohomomorphism structure <fr:tex display="inline"><![CDATA[\phi , \tau ]]></fr:tex> on <fr:tex display="inline"><![CDATA[F_m]]></fr:tex> and a natural isomorphism <fr:tex display="inline"><![CDATA[l: F_m(-) \cdot  F_c(=) \to  F_c(- \cdot  =)]]></fr:tex> satisfying the following coherence conditions (note that writing functors using element-notation like this is well-defined)
</html:p>
                        <html:p><html:figure><fr:resource hash="4869c39e3c3f12fd94a39d56bc1a145c"><fr:resource-content><html:img src="/4869c39e3c3f12fd94a39d56bc1a145c.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	{F_m(M)\star (F_m(N)\star  F_c(C))} && {F_m(M) \star  F_c(N \cdot  C)} \\
	{(F_m(M) \otimes  F_m(N)) \star  F_c(C)} \\
	{F_m(M\otimes  N)\star  F_c(C)} && {F_c(M \cdot  (N \cdot  C))} \\
	& {F_c((M \otimes  N)\cdot  C)}
	\arrow ["{F_m(M)\star  l_{N,C}}"', from=1-1, to=1-3]
	\arrow ["{\mu ^\star _{F_m(M),F_m(N),F_c(C)}}", from=1-1, to=2-1]
	\arrow ["{l_{M,N \cdot  C}}"', from=1-3, to=3-3]
	\arrow ["{\phi _{M,N}\star  F_c(C)}", from=2-1, to=3-1]
	\arrow ["{l_{M\otimes  N, C}}", from=3-1, to=4-2]
	\arrow ["{F_c(\mu ^\cdot _{M,N,C})}"', from=3-3, to=4-2]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  
  <html:figure><fr:resource hash="36a3d6b86496833017485d04528e625b"><fr:resource-content><html:img src="/36a3d6b86496833017485d04528e625b.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	{F_m(I)\star  F_c(C)} & {F(I\cdot  C)} \\
	{I'\star  F_c(C)} & {F_c(C)}
	\arrow ["{l_{I,C}}", from=1-1, to=1-2]
	\arrow ["\tau ", from=2-1, to=1-1]
	\arrow ["{\eta ^\star _{F_c(C)}}"', from=2-1, to=2-2]
	\arrow ["{F_c(\eta _C)}"', from=2-2, to=1-2]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure></html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  In <fr:link href="/actegories-amthematician-capucci-gavranovic/" title="Actegories for the Working Amthematician" uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" type="local">Reference <fr:contextual-number uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" /></fr:link>, these are defined in two steps: first linear functors for the same <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex> (those with <fr:tex display="inline"><![CDATA[F_m = 1_\mathcal {M}]]></fr:tex>) are considered. Then, given a strong monoidal <fr:tex display="inline"><![CDATA[\mathcal {M} \to  \mathcal {N},]]></fr:tex> a functorial assignment of an <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex>-action to every <fr:tex display="inline"><![CDATA[\mathcal {N}]]></fr:tex>-action is constructed, and the full category of actions is defined as the Grothendieck construction of this. There is nothing preventing this from working in the setting of a general 2-category, and it is straightforward to verify that our notion of linear morphism of actions agrees with theirs.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-GZH4/</fr:uri>
                    <fr:display-uri>efr-GZH4</fr:display-uri>
                    <fr:route>/efr-GZH4/</fr:route>
                    <fr:title text="\mathsf {\mathbb  Para} for a general 2-category"><fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}]]></fr:tex> for a general 2-category</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  We are now almost ready to prove:
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-I897/</fr:uri>
                        <fr:display-uri>efr-I897</fr:display-uri>
                        <fr:route>/efr-I897/</fr:route>
                        <fr:taxon>Theorem</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex> be a 2-category which admits pullbacks, products and comma objects.
  Then there is a functor <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}: \mathsf {Act}(\mathbb {C}) \to  \mathsf {PsCat}(\mathbb {C})]]></fr:tex> from the 2-category of pseudomonoid actions and pseudolinear maps to the 2-category of pseudocategories and pseudofunctors, with <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}_\mathcal {M}(\mathcal {C})_0 = \mathcal {C}]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}_\mathcal {M}(\mathcal {C})_1 = \mathcal {M} \times  \mathcal {C} \downarrow  \mathcal {C}]]></fr:tex>. 
  
   This functor preserves strict maps, limits, and filtered colimits.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  The main ingredient missing is a characterization of the respective notions of pseudomorphism in terms of the limit sketches. This we do now:
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-NZ0X/</fr:uri>
                        <fr:display-uri>efr-NZ0X</fr:display-uri>
                        <fr:route>/efr-NZ0X/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex> be a 2-category and let <fr:tex display="inline"><![CDATA[C,D : \mathcal {T}_\mathsf {PsCat} \to  \mathbb {C}]]></fr:tex> be pseudocategories, represented as models of the theory.
  Then a pseudonatural transformation <fr:tex display="inline"><![CDATA[F: C \to  D]]></fr:tex> which is strict on <fr:tex display="inline"><![CDATA[c,d,e]]></fr:tex> and the limit projections <fr:tex display="inline"><![CDATA[\pi ^i_j]]></fr:tex> is equivalently a pseudomorphism between the pseudocategories.
</html:p><html:p>
  Now let <fr:tex display="inline"><![CDATA[(M,C), (N,D) : \mathcal {T}_\mathsf {Act} \to  \mathbb {C}]]></fr:tex> be pseudomonoid actions. Then a pseudonatural transformation <fr:tex display="inline"><![CDATA[F_m, F_c]]></fr:tex> which preserves the product projections strictly is equivalently a pair of a pseudomorphism <fr:tex display="inline"><![CDATA[F_m : M \to  N]]></fr:tex> and a functor <fr:tex display="inline"><![CDATA[F_c: C \to  D]]></fr:tex> which is pseudolinear with respect to the action <fr:tex display="inline"><![CDATA[F_m(-) \cdot  =]]></fr:tex> of <fr:tex display="inline"><![CDATA[M]]></fr:tex> on <fr:tex display="inline"><![CDATA[D]]></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>2025</fr:year><fr:month>5</fr:month><fr:day>4</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Both of these are essentially a matter of unwinding the definitions. Let us start with pseudocategories. The requirement that <fr:tex display="inline"><![CDATA[F]]></fr:tex> is strict on the product projections amounts to requiring that <fr:tex display="inline"><![CDATA[F_{C_2} : C_2 \to  D_2]]></fr:tex> is given <html:em>strictly</html:em> as the pullback <fr:tex display="inline"><![CDATA[F_1 \times _{F_0} F_1,]]></fr:tex> and not merely up to 2-isomorphism. With this, <fr:tex display="inline"><![CDATA[\mu ]]></fr:tex> is just a naturality transformation for <fr:tex display="inline"><![CDATA[m]]></fr:tex>, and <fr:tex display="inline"><![CDATA[\epsilon ]]></fr:tex> is a naturality transformation for <fr:tex display="inline"><![CDATA[e]]></fr:tex>. Note that since every map in <fr:tex display="inline"><![CDATA[\mathcal {T}_\mathsf {PsCat}]]></fr:tex> is induced from <fr:tex display="inline"><![CDATA[m, e, c,d]]></fr:tex> and the pullback structure, this means the other naturality transformations are determined by <fr:tex display="inline"><![CDATA[\mu , \epsilon ]]></fr:tex></html:p>
  <html:p>
    The composite <fr:tex display="inline"><![CDATA[m'(1_{F_1} \times  \mu ) \mu (1 \times _{C_0} m)]]></fr:tex> is the naturality transformation for the map <fr:tex display="inline"><![CDATA[m (1 \times  m)]]></fr:tex>, and analogously for the composite <fr:tex display="inline"><![CDATA[m'(\mu  \times  1_{F_1})\mu (m \times _{C_0} 1)]]></fr:tex>. Hence the hexagon is a pseudonaturality coherence for the 2-cell <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex>. Analogously the two squares can be obtained as coherence 2-cells. Conversely, these suffice to make <fr:tex display="inline"><![CDATA[F]]></fr:tex> a pseudonatural transformation, again since all the other 2-cells are generated by <fr:tex display="inline"><![CDATA[\alpha , \rho ,\lambda ]]></fr:tex>. 
  </html:p>
  <html:p>
    Now let us look at pseudomonoid actions. As above, such a pseudonatural transformation is determined by the functors <fr:tex display="inline"><![CDATA[F_m: M \to  N]]></fr:tex> and <fr:tex display="inline"><![CDATA[F_c: C \to  D]]></fr:tex> plus some 2-cells involving these and their products. As a special case of the above when <fr:tex display="inline"><![CDATA[C_0, D_0 = *]]></fr:tex> we find that the restriction <fr:tex display="inline"><![CDATA[F_m]]></fr:tex> of the pseudonatural transformation to the pseudomonoid part is equivalently a strong monoidal functor. Now the required lineator <fr:tex display="inline"><![CDATA[l: \cdot _D (F_m \times  F_c) \to  F_m(\cdot )]]></fr:tex> is a naturality square for the multiplication map <fr:tex display="inline"><![CDATA[\cdot  \in  \mathcal {T}_\mathsf {Act}]]></fr:tex>. As above this determines all the other naturality transformations because all the other maps are generated from <fr:tex display="inline"><![CDATA[\cdot ]]></fr:tex> (and the pseudomonoid structure) using the product structure. Also analogously to the above argument, the coherence pentagon is a pseudonaturality coherence for the natural isomorphism <fr:tex display="inline"><![CDATA[\mu ]]></fr:tex>, and the coherence triangle for <fr:tex display="inline"><![CDATA[\eta ]]></fr:tex>.
  </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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-T667/</fr:uri>
                        <fr:display-uri>efr-T667</fr:display-uri>
                        <fr:route>/efr-T667/</fr:route>
                        <fr:taxon>Remark</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  This characterization of the notions of pseudomorphism cannot help but seem a little ad hoc.
  The basic idea here seems to go back to Power in <fr:link href="/power-enriched-lawvere/" title="Enriched Lawvere Theories" uri="https://erischel.com/power-enriched-lawvere/" display-uri="power-enriched-lawvere" type="local">Reference <fr:contextual-number uri="https://erischel.com/power-enriched-lawvere/" display-uri="power-enriched-lawvere" /></fr:link>. After constructing an enriched Lawvere theory (which is just a special kind of limit sketch) corresponding to any finitary enriched monad, he notes that in the <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex>-enriched case the pseudomorphisms of monad algebras correspond to exactly those pseudonatural transformations which preserve the products strictly.
</html:p>
                        <html:p>
  An elegant theory which generalizes this basic idea has recently been developed by Bourke, Ko, and Varkor in <fr:link href="/varkor-bourke-ko-sketches/" title="Enhanced 2-categorical structures, two-dimensional limit sketches and the symmetry of internalisation" uri="https://erischel.com/varkor-bourke-ko-sketches/" display-uri="varkor-bourke-ko-sketches" type="local">Reference <fr:contextual-number uri="https://erischel.com/varkor-bourke-ko-sketches/" display-uri="varkor-bourke-ko-sketches" /></fr:link> (as we mentioned briefly before). Their theory involves decorating the sketch with a set of <html:em>tight</html:em> morphisms, which the transformations must be strictly natural with respect to. Beyond developing a general theory of this (not specialized to a few examples as above,) they also show how to construct the categories of <html:em>(op)lax</html:em> homomorphisms, and develop a commutativity of internalization principle for their models. This could be profitably applied in our case to understand better, for example, the implied notion of monoidal triple category, but we will not pursue this here.
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-0BHI/</fr:uri>
                        <fr:display-uri>efr-0BHI</fr:display-uri>
                        <fr:route>/efr-0BHI/</fr:route>
                        <fr:title text="Proof of Theorem [https://erischel.com/efr-I897/]">Proof of <fr:link href="/efr-I897/" title="https://erischel.com/efr-I897/" uri="https://erischel.com/efr-I897/" display-uri="efr-I897" type="local">Theorem <fr:contextual-number uri="https://erischel.com/efr-I897/" display-uri="efr-I897" /></fr:link></fr:title>
                        <fr:taxon>Proof</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  First recall that <fr:tex display="inline"><![CDATA[\mathsf {Mod}(\mathcal {T},\mathbb {C})]]></fr:tex> can be identified with the subcategory of <fr:tex display="inline"><![CDATA[[\mathbb {C}^\mathrm {op}, \mathsf {Mod}(\mathcal {T})]]]></fr:tex> spanned by the levelwise representable presheaves.
  Note that for <fr:tex display="inline"><![CDATA[\mathcal {T} = \mathcal {T}_\mathsf {PsCat},]]></fr:tex> it suffices to verify representability for <fr:tex display="inline"><![CDATA[C_0,C_1 \in  \mathcal {T}_\mathsf {PsCat},]]></fr:tex> since the rest are pullbacks of these, and pullbacks of representable presheaves are again representable since <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex> admits pullbacks.
</html:p>
                        <html:p>
  Postcomposition with the previously-constructed functor <fr:tex display="inline"><![CDATA[\mathsf {Mod}(\mathcal {T}_\mathsf {Act}) = \mathsf {Act}(\mathsf {Cat}) \to  \mathsf {PsCat}(\mathsf {Act}) = \mathsf {Mod}(\mathcal {T}_\mathsf {PsCat})]]></fr:tex> gives a functor <fr:tex display="inline"><![CDATA[[\mathbb {C}^\mathrm {op},\mathsf {Mod}(\mathcal {T}_\mathsf {Act})] \to  [\mathbb {C}^\mathrm {op},\mathsf {Mod}(\mathcal {T}_\mathsf {PsCat})]]]></fr:tex>. Clearly this functor preserves representability (again, since limits of representable functors are representable). This gives the desired functor <fr:tex display="inline"><![CDATA[\mathsf {Mod}_s(\mathcal {T}_\mathsf {Act}, \mathbb {C}) \to  \mathsf {Mod}_s(\mathcal {T}_\mathsf {PsCat}, \mathbb {C})]]></fr:tex>.
</html:p>
                        <html:p>
    Under the identification of <fr:tex display="inline"><![CDATA[\mathsf {Mod}(\mathcal {T},\mathbb {C})]]></fr:tex> with a subcategory of <fr:tex display="inline"><![CDATA[[\mathbb {C}^\mathrm {op} \times  \mathcal {T}, \mathsf {Cat}],]]></fr:tex> it is clear that the pseudonatural transformations of models correspond to those pseudonatural transformations which are strict on morphisms in <fr:tex display="inline"><![CDATA[\mathbb {C}^\mathrm {op}]]></fr:tex>. This implies the full category <fr:tex display="inline"><![CDATA[\mathsf {Mod}_p(\mathbb {C})]]></fr:tex> of models and pseudonatural transformations can be identified with the subcategory of <fr:tex display="inline"><![CDATA[[\mathbb {C}^\mathrm {op},\mathsf {Mod}_p(\mathcal {T},\mathsf {Cat})]]]></fr:tex> spanned by those 2-functors which come from models---that is, <fr:tex display="inline"><![CDATA[A: \mathbb {C}^\mathrm {op} \to  \mathsf {Mod}_p(\mathcal {T}) = \mathsf {Mod}_p(\mathcal {T},\mathsf {Cat})]]></fr:tex> must factor over <fr:tex display="inline"><![CDATA[\mathsf {Mod}(\mathcal {T}) \hookrightarrow  \mathsf {Mod}_p(\mathcal {T})]]></fr:tex>. 
</html:p>
                        <html:p>
    (To be clear: the morphisms in <fr:tex display="inline"><![CDATA[[\mathbb {C}^\mathrm {op}, \mathsf {Mod}_p(\mathcal {T})]]]></fr:tex> are strictly natural transformations between functors <fr:tex display="inline"><![CDATA[\mathbb {C}^\mathrm {op} \to  \mathsf {Mod}_p(\mathcal {T})]]></fr:tex>, but each component <fr:tex display="inline"><![CDATA[A(C) \to  B(C)]]></fr:tex> of such a natural transformation is a pseudonatural transformation of models).
</html:p>
                        <html:p>
    Under <html:em>this</html:em> identification, it is clear that pseudofunctors correspond to those natural transformations in <fr:tex display="inline"><![CDATA[[\mathbb {C}^\mathrm {op}, \mathsf {Mod}_p(\mathcal {T}_\mathsf {PsCat})]]]></fr:tex> which are valued in pseudofunctors, and analogously for pseudolinear morphisms and maps <fr:tex display="inline"><![CDATA[[\mathbb {C}^\mathrm {op}, \mathsf {Mod}_p(\mathcal {T}_\mathsf {Act})]]]></fr:tex>. Hence it suffices to observe that the <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex>-valued version <fr:tex display="inline"><![CDATA[\mathsf {Mod}(\mathcal {T}_\mathsf {Act}) \to  \mathsf {Mod}(\mathcal {T}_\mathsf {PsCat})]]></fr:tex> carries pseudolinear maps to pseudofunctors.
</html:p>
                        <html:p>
    Note that <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}: \mathsf {Mod}(\mathcal {T}_\mathsf {Act}) \to  \mathsf {Mod}(\mathcal {T}_\mathsf {PsCat})]]></fr:tex> is given objectwise as a finite limit. Moreover, since the limit sketch of pseudocategories only involved finite limits, the class of pseudocategories is stable under filtered colimits in <fr:tex display="inline"><![CDATA[[\mathcal {T}_\mathsf {PsCat}, \mathsf {Cat}]]]></fr:tex>. Hence <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}]]></fr:tex> commutes with filtered colimits, and is in particular accessible.
    Hence it admits a left adjoint <fr:tex display="inline"><![CDATA[L]]></fr:tex> <fr:tex display="inline"><![CDATA[(M,C) \mapsto  \operatorname {\mathrm {Hom}}_{\mathsf {Mod}(\mathcal {T}_\mathsf {Act})(L(-), (M,C))}]]></fr:tex> where <fr:tex display="inline"><![CDATA[L: \mathcal {T}_\mathsf {PsCat}^\mathrm {op} \to  [\mathcal {T}_\mathsf {Act},\mathsf {Cat}]]]></fr:tex> is the restriction of the left adjoint of <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}]]></fr:tex>. Both forming the hom-category <fr:tex display="inline"><![CDATA[\operatorname {\mathrm {Hom}}(-, (M,C))]]></fr:tex> and precomposing with <fr:tex display="inline"><![CDATA[L]]></fr:tex> are 2-functors, and as such preserve pseudonatural transformations. Thus it only remains to observe that <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}]]></fr:tex> also preserves the partial strictness property, but this clear.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  We have not yet given any thought to functoriality in <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex>, but passing through the constructions, it is apparent that we have:
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-TY4G/</fr:uri>
                        <fr:display-uri>efr-TY4G</fr:display-uri>
                        <fr:route>/efr-TY4G/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  If <fr:tex display="inline"><![CDATA[\mathbb {C} \to  \mathbb {D}]]></fr:tex> is a 2-functor that preserves finite 2-limits, the square
</html:p>
                        <html:p>
                          <html:figure>
                            <fr:resource hash="1ed26f96ac51f42384959de08dfb7a89">
                              <fr:resource-content>
                                <html:img src="/1ed26f96ac51f42384959de08dfb7a89.svg" />
                              </fr:resource-content>
                              <fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source>
                              <fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    \mathsf {Act}(\mathbb {C}) \ar [d] \ar [r] & \mathsf {Act}(\mathbb {D}) \ar [d]\\
    \mathsf {PsCat}(\mathbb {C}) \ar [r] & \mathsf {PsCat}(\mathbb {D})
    \end {tikzcd}
  ]]></fr:resource-source>
                            </fr:resource>
                          </html:figure>
                        </html:p>
                        <html:p>
  commutes up to strict natural isomorphism. (In particular, the square involving the subcategories of strict homomorphisms also commutes up to natural isomorphism).
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  (It may seem wrong that, after working strictly all this time, this square commutes only up to natural isomorphism, but in fact that is the strict notion---the weak version of this statement would be that it commuted up to natural <html:em>equivalence</html:em>. Note that eg. the comma objects <fr:tex display="inline"><![CDATA[M \times  C \downarrow  C]]></fr:tex> are only characterized up to isomorphism, so this is really the best we can hope for)
</html:p>
                    <html:p>
  The main problem with <fr:link href="/efr-I897/" title="https://erischel.com/efr-I897/" uri="https://erischel.com/efr-I897/" display-uri="efr-I897" type="local">Theorem <fr:contextual-number uri="https://erischel.com/efr-I897/" display-uri="efr-I897" /></fr:link> is that for many 2-categorical notions of interest, requiring (for example) the action <fr:tex display="inline"><![CDATA[\mathcal {M} \times  \mathcal {C} \to  \mathcal {C}]]></fr:tex> to be a strict homomorphism of whatever structure under consideration is too strict to work, while working with the full category of pseudomorphisms prevents the pullbacks required for pseudocategories from existing. Thus for example, an internal pseudomonoid in <fr:tex display="inline"><![CDATA[\mathsf {MonCat}_s]]></fr:tex> is a <html:em>commutative</html:em> monoidal category, which is far too strict for most purposes---generally speaking, symmetric monoidal categories can <html:em>not</html:em> be strictified into commutative ones.
</html:p>
                    <html:p>
  In <fr:link href="/efr-ZRUZ/" title="Categories of stochastic dynamical systems" uri="https://erischel.com/efr-ZRUZ/" display-uri="efr-ZRUZ" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-ZRUZ/" display-uri="efr-ZRUZ" /></fr:link>, we will want to construct a symmetric monoidal "triple category"---that is, a symmetric monoidal pseudocategory in strict double categories.
  We will manage this via the preceding by noting that since <fr:tex display="inline"><![CDATA[\mathsf {Act}(\mathbb {C}) \to  \mathsf {PsCat}(\mathbb {C})]]></fr:tex> preserves products, it carries (symmetric) pseudomonoids to pseudomonoids---in other words, we can apply the internalization the other way around, taking pseudomonoids in actions rather than actions in pseudomonoids. This works because strict <html:em>products</html:em> still exist in the category of pseudohomomorphisms, but for a more general categorical structure, we would be in trouble.
</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>2025</fr:year>
                  <fr:month>5</fr:month>
                  <fr:day>4</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-GFG0/</fr:uri>
                <fr:display-uri>efr-GFG0</fr:display-uri>
                <fr:route>/efr-GFG0/</fr:route>
                <fr:title text="Open Games with external choice in Markov Fibrations">Open Games with external choice in Markov Fibrations</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-7EHV/</fr:uri>
                    <fr:display-uri>efr-7EHV</fr:display-uri>
                    <fr:route>/efr-7EHV/</fr:route>
                    <fr:title text="Introduction">Introduction</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Game theory is a field of economics which studies mathematical models of human decisionmaking. Classically, game theory is particularly interested in the behavior resulting from individual agents optimizing simple objectives (such as the expected value of some real-valued function of each players' decision) when multiple such players interact. Although the analysis of games, obviously, has a long prehistory, the field was put on its modern theoretical footing by Von Neumann in 1928 (<fr:link href="/neumann-games/" title="Zur Theorie der Gesellschaftsspiele" uri="https://erischel.com/neumann-games/" display-uri="neumann-games" type="local">Reference <fr:contextual-number uri="https://erischel.com/neumann-games/" display-uri="neumann-games" /></fr:link>, see also <fr:link href="/neumann-morgenstern-games/" title="Theory of games and economic behavior" uri="https://erischel.com/neumann-morgenstern-games/" display-uri="neumann-morgenstern-games" type="local">Reference <fr:contextual-number uri="https://erischel.com/neumann-morgenstern-games/" display-uri="neumann-morgenstern-games" /></fr:link> for a more thorough treatment from this era). The basic problem studied here is this: given two finite sets <fr:tex display="inline"><![CDATA[\Sigma _1, \Sigma _2]]></fr:tex> of <html:em>strategies</html:em>---that is, the choices available to the two players---and a function <fr:tex display="inline"><![CDATA[f: \Sigma _1 \times  \Sigma _2 \to  \mathbb {R}]]></fr:tex> which assigns to a pair of such choices a score, which player 1 seeks to maximize and player 2 seeks to minimize, what can be said about the rational decisionmaking of each player? 
</html:p>
                    <html:p>
  Suppose each player has access to some source of randomness, so that they may each choose a distribution on their respective strategy set to play. This is called a <html:em>mixed strategy</html:em>. Suppose player 2 has the opportunity to move <html:em>knowing</html:em> the distribution chosen by player 1 (but not the value drawn from it), and suppose he prefers to minimize the expected outcome of the game. Writing <fr:tex display="inline"><![CDATA[f(\mu _1,\mu _2)]]></fr:tex> for <fr:tex display="inline"><![CDATA[E_{x \sim  \mu _1, y \sim  \mu _2}f(x,y)]]></fr:tex> for brevity, if player 1 selects the distribution <fr:tex display="inline"><![CDATA[\mu _1]]></fr:tex>, clearly player 2 must select the distribution <fr:tex display="inline"><![CDATA[\mathrm {argmin}_{\mu _2} f(\mu _1,\mu _2)]]></fr:tex>. Knowing this, player 1 will select the distribution <fr:tex display="block"><![CDATA[\mathrm {argmax}_{\mu _1} \min _{\mu _2} f(\mu _1,\mu _2),]]></fr:tex> and the expected score of the game will be <fr:tex display="block"><![CDATA[\max _{\mu _1} \min _{\mu _2} f(\mu _1,\mu _2).]]></fr:tex></html:p>
                    <html:p>
  If the selection happens in the other order, of course, the result will be <fr:tex display="block"><![CDATA[\min _{\mu _2} \max _{\mu _1} f(\mu _1,\mu _2).]]></fr:tex> Clearly choosing <html:em>knowing</html:em> your opponent's (mixed) strategy can not be a disadvantage compared to choosing with no information, and so we have 
  <fr:tex display="block"><![CDATA[\min _{\mu _2} \max _{\mu _1} f(\mu _1,\mu _2) \leq  \max _{\mu _1} \min _{\mu _2} f(\mu _1,\mu _2).]]></fr:tex> Von Neumann's great <html:em>minimax</html:em> theorem is that these values agree, and this implies that by choosing as if your opponent would know your (mixed) strategy, you obtain a result as good as you could have obtained if you knew your opponents' strategy---hence neither player <html:em>could</html:em> improve their outcome, even if they had the advantage of greater information.
</html:p>
                    <html:p>
  This is a strong argument for the optimality of such decisions. The key assumption is that the players are perfectly opposed, that is, player 2 seeks to minimize precisely the value that player 1 seeks to maximize. Nash in <fr:link href="/nash-noncoop-games/" title="Non-Cooperative Games" uri="https://erischel.com/nash-noncoop-games/" display-uri="nash-noncoop-games" type="local">Reference <fr:contextual-number uri="https://erischel.com/nash-noncoop-games/" display-uri="nash-noncoop-games" /></fr:link> extended the theory to the more general class of games where players simply each have their own utility function, although it should be noted that Nash merely proved the <html:em>existence</html:em> of equilibria---that is, strategy sets where no player can improve their situation by switching strategies. It is computationally intractable (<fr:link href="/nash-complexity/" title="The Complexity of Computing a Nash Equilibrium" uri="https://erischel.com/nash-complexity/" display-uri="nash-complexity" type="local">Reference <fr:contextual-number uri="https://erischel.com/nash-complexity/" display-uri="nash-complexity" /></fr:link>) to identify Nash equilibria in an arbitrary game, and so to apply the theory we're forced to analyze each game in an ad hoc way.
</html:p>
                    <html:p>
  We will not go intro a serious review of game theory here, we mention the above details mainly to contextualize our future definitions. For a modern reference on game theory see eg <fr:link href="/game-theory-maschler-textbook/" title="Game theory" uri="https://erischel.com/game-theory-maschler-textbook/" display-uri="game-theory-maschler-textbook" type="local">Reference <fr:contextual-number uri="https://erischel.com/game-theory-maschler-textbook/" display-uri="game-theory-maschler-textbook" /></fr:link>, or <fr:link href="/osborne-intro-gametheory/" title="An Introduction to Game Theory" uri="https://erischel.com/osborne-intro-gametheory/" display-uri="osborne-intro-gametheory" type="local">Reference <fr:contextual-number uri="https://erischel.com/osborne-intro-gametheory/" display-uri="osborne-intro-gametheory" /></fr:link> for a textbook treatment.
</html:p>
                    <html:p>
  In his thesis (<fr:link href="/hedges-towards-compositional-thesis/" title="Towards compositional game theory" uri="https://erischel.com/hedges-towards-compositional-thesis/" display-uri="hedges-towards-compositional-thesis" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-towards-compositional-thesis/" display-uri="hedges-towards-compositional-thesis" /></fr:link>), Hedges introduced a novel approach to game theory which he named <html:em>compositional game theory,</html:em> studying objects called <html:em>open games</html:em>. The idea of open games is to describe a type of "partial" game which has an interface to the world---some part of the payoff function being dependent on an undetermined environment, into which hole can be inserted another game. This is the sense in which they are <html:em>open</html:em>. Based on these, one can build a complex game up out of simpler subparts, as well as leverage a string diagramattical syntax to analyze games.
</html:p>
                    <html:p>
  The original definition of open game cannot help but seem somewhat ad hoc. It was quickly realized that a large part of the definition can be understood to say that a game is a function <fr:tex display="inline"><![CDATA[\Sigma  \to  \mathsf {Lens}({S \choose  X},{R \choose  Y})]]></fr:tex> from a strategy set into a set of lenses, and this part of the game composes by lens composition.
</html:p>
                    <html:p>
  The additional data of an open game is a so-called <html:em>equilibrium relation</html:em>, which determines which strategies are equilibria in a given situation (each strategy really represents a set of strategies, one for each player). In <fr:link href="/towards-cybercat/" title="Towards Foundations of Categorical Cybernetics" uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" type="local">Reference <fr:contextual-number uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" /></fr:link>, the author, Capucci, Gavranovic and Hedges demonstrated that this can be further simplified by realizing an open game as a parametrized map in lenses---a morphism in <fr:tex display="inline"><![CDATA[\mathsf {Para}(\mathsf {Lens}(\mathcal {C}))]]></fr:tex> (in fact, one often wants to consider <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C})]]></fr:tex> for, for example, Markov categories <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, to account for mixed strategies) along with a notion of equilibrium relation defined on the parameter object <fr:tex display="inline"><![CDATA[{\Omega  \choose  \Sigma }]]></fr:tex>. We will begin this chapter by recapping this idea.
</html:p>
                    <html:p>
  On a conceptual level, there is a natural operation on games, called <html:em>external choice,</html:em> which assigns to two open games <fr:tex display="inline"><![CDATA[{A_1 \choose  X_1} \to  {B_1 \choose  Y_1}, {A_2 \choose  X_2} \to  {B_2 \choose  Y_2}]]></fr:tex> a new game, whose environment begins by making a choice between one of these games, lets that one happen, then provides some payoff for it at the end. The natural type for the interface of this operation is <fr:tex display="inline"><![CDATA[{A_1 \choose  X_1} + {A_2 \choose  X_2} \to  {B_1 \choose  Y_1} + {B_2 \choose  Y_2},]]></fr:tex> but unfortunately the category of optics doesn't have coproducts. The category of <html:em>lenses</html:em> can be extended with coproducts (into dependent lenses), but the analysis of mixed strategies makes probability an absolute necessity for a useful theory of games.
</html:p>
                    <html:p>
  The introduction of Markov fibrations provides a solution to this problem, and in the second half of this chapter, we provide such an external choice operation on open games. Although the approach based on Markov fibrations is novel, the approach to defining the external choice operator is otherwise very similar to one appearing in presently unpublished work by the author, Braithwaite, Hedges and Videla (this paper used a more specialized approach to adding coproducts to <fr:tex display="inline"><![CDATA[\mathsf {Optic}]]></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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-CA6T/</fr:uri>
                    <fr:display-uri>efr-CA6T</fr:display-uri>
                    <fr:route>/efr-CA6T/</fr:route>
                    <fr:title text="Open games in Monoidal categories">Open games in Monoidal categories</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-EGK8/</fr:uri>
                        <fr:display-uri>efr-EGK8</fr:display-uri>
                        <fr:route>/efr-EGK8/</fr:route>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a monoidal category. A <html:em>selection relation</html:em> on an object <fr:tex display="inline"><![CDATA[A \in  \mathcal {C}]]></fr:tex> is a relation <fr:tex display="inline"><![CDATA[\epsilon  \subseteq  \mathcal {C}(I,A) \times  \mathcal {C}(A,I)]]></fr:tex>. We write <fr:tex display="inline"><![CDATA[\epsilon (a,k)]]></fr:tex> for the statement <fr:tex display="inline"><![CDATA[(a,k) \in  \epsilon ]]></fr:tex>.
</html:p>
                        <html:p>
  Selection relations are ordered by inclusion, and so form a (posetal) category, which we denote <fr:tex display="inline"><![CDATA[\mathbb {S}_\mathcal {C}(A)]]></fr:tex>.
  Given <fr:tex display="inline"><![CDATA[f: A \to  B,]]></fr:tex> we define the pushforward on selection relations by <fr:tex display="inline"><![CDATA[f_*\epsilon  = \{(fx,k) \mid  (x, kf) \in  \epsilon \}]]></fr:tex>. In other words, <fr:tex display="inline"><![CDATA[f_*\epsilon (y,k)]]></fr:tex> if and only if there exists <fr:tex display="inline"><![CDATA[x: I \to  X]]></fr:tex> so that <fr:tex display="inline"><![CDATA[fx = y]]></fr:tex> and <fr:tex display="inline"><![CDATA[\epsilon (x, kf)]]></fr:tex>. 
</html:p>
                        <html:p>
  It is clear that pushforward is monotone, so that this defines a functor <fr:tex display="inline"><![CDATA[\mathbb {S}_\mathcal {C} : \mathcal {C} \to  \mathsf {Cat}]]></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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-YKR3/</fr:uri>
                        <fr:display-uri>efr-YKR3</fr:display-uri>
                        <fr:route>/efr-YKR3/</fr:route>
                        <fr:taxon>Remark</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Of course, there is an equally good "pull-back" operation on selection relations given by <fr:tex display="inline"><![CDATA[\{(x,kf) \mid  (fx, k) \in  \epsilon \}]]></fr:tex> (this is the pushforward in <fr:tex display="inline"><![CDATA[\mathbb {S}_{\mathcal {C}^\mathrm {op}}]]></fr:tex>). These are adjoint representatives of the same profunctor, which should arguably be regarded as the primary object of interest---that is, we could work with a functor <fr:tex display="inline"><![CDATA[\mathcal {C} \to  \mathsf {\mathbb  Cat}]]></fr:tex>, the category of categories and profunctors, where we say two selection relations <fr:tex display="inline"><![CDATA[\epsilon  \in  \mathbb {S}_X, \epsilon ' \in  \mathbb {S}_Y]]></fr:tex> are related by <fr:tex display="inline"><![CDATA[f :X \to  Y]]></fr:tex> if <fr:tex display="inline"><![CDATA[\epsilon (x, kf) \Rightarrow  \epsilon '(fx, k)]]></fr:tex>.
</html:p>
                        <html:p>
  However, we will stick with the pushforward definition for now, since it is conceptually simpler and good enough for our purposes.
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>5</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-BNB2/</fr:uri>
                        <fr:display-uri>efr-BNB2</fr:display-uri>
                        <fr:route>/efr-BNB2/</fr:route>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:ol><html:li>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C} = \mathsf {Optic}(\mathsf {Set})]]></fr:tex>. There is a selection function <fr:tex display="inline"><![CDATA[\mathrm {argmax}_X \in  \mathbb {S}({\mathbb {R} \choose  X})]]></fr:tex> defined by <fr:tex display="inline"><![CDATA[\mathrm {argmax}(x,f)]]></fr:tex> if and only if <fr:tex display="inline"><![CDATA[x]]></fr:tex> is a maximum of <fr:tex display="inline"><![CDATA[f]]></fr:tex>. (Identifying maps <fr:tex display="inline"><![CDATA[I \to  {\mathbb {R} \choose  X}]]></fr:tex> with points <fr:tex display="inline"><![CDATA[x \in  X,]]></fr:tex> and maps <fr:tex display="inline"><![CDATA[{\mathbb {R} \choose  X} \to  I]]></fr:tex> with functions <fr:tex display="inline"><![CDATA[X \to  \mathbb {R}]]></fr:tex>)</html:li>
  <html:li>
    In the same category, for each <fr:tex display="inline"><![CDATA[r \in  \mathbb {R},]]></fr:tex> there is a selection function given by <fr:tex display="inline"><![CDATA[\epsilon (x,f) \Leftrightarrow  f(x) \geq  r]]></fr:tex>. This corresponds to <html:em>satisficing</html:em> at the value <fr:tex display="inline"><![CDATA[r]]></fr:tex> (<fr:link href="/simon-environment-satisficing/" title="Rational choice and the structure of the environment" uri="https://erischel.com/simon-environment-satisficing/" display-uri="simon-environment-satisficing" type="local">Reference <fr:contextual-number uri="https://erischel.com/simon-environment-satisficing/" display-uri="simon-environment-satisficing" /></fr:link>)---that is, selecting any strategy which achieves this value or greater.
  </html:li>
  <html:li>
    For <fr:tex display="inline"><![CDATA[\mathcal {C} = \mathsf {Optic}(\mathcal {C}'),]]></fr:tex> with <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex> semiCartesian, there is a selection function <fr:tex display="inline"><![CDATA[\epsilon (x,k) \Leftrightarrow  kx = x]]></fr:tex> (using the same identification as above). The agents with this selection function are called <html:em>predicting agents</html:em> in <fr:link href="/bolt-hedges-winschel-predicting/" title="The algebra of predicting agents" uri="https://erischel.com/bolt-hedges-winschel-predicting/" display-uri="bolt-hedges-winschel-predicting" type="local">Reference <fr:contextual-number uri="https://erischel.com/bolt-hedges-winschel-predicting/" display-uri="bolt-hedges-winschel-predicting" /></fr:link>. These agents attempt to predict the value the environment will return to them. 
  </html:li>
  <html:li>
    For <fr:tex display="inline"><![CDATA[\mathcal {C} = \mathsf {Bun}^\mathrm {fop},]]></fr:tex> the fiberwise opposite of manifolds and smooth bundles---that is, the category of lenses between smooth manifolds---there is a selection function on the tangent bundle <fr:tex display="inline"><![CDATA[TX]]></fr:tex> given by <fr:tex display="inline"><![CDATA[\epsilon (x,k)]]></fr:tex> if and only if <fr:tex display="inline"><![CDATA[k(x) = 0]]></fr:tex>---that is, if <fr:tex display="inline"><![CDATA[x]]></fr:tex> is a fixpoint of the dynamical system identified by <fr:tex display="inline"><![CDATA[k: X \to  TX]]></fr:tex>.
  </html:li>
  <html:li>
    Let <fr:tex display="inline"><![CDATA[\mathcal {A} \to  \mathcal {C}]]></fr:tex> be a dynamical systems theory and work in the category of lenses. Suppose the monoidal structure on <fr:tex display="inline"><![CDATA[\mathcal {A}]]></fr:tex> is Cartesian, so that a lens <fr:tex display="inline"><![CDATA[I \to  {A \choose  X}]]></fr:tex> is the same as a map <fr:tex display="inline"><![CDATA[* \to  X]]></fr:tex>. Note that <fr:tex display="inline"><![CDATA[I = T(*)]]></fr:tex> has a distinguished section given by the identity. Then there is a selection function on each object <fr:tex display="inline"><![CDATA[TX]]></fr:tex> where a lens <fr:tex display="inline"><![CDATA[I \to  TX]]></fr:tex>, given by <fr:tex display="inline"><![CDATA[x: * \to  X,]]></fr:tex> is in equilibrium with respect to a lens <fr:tex display="inline"><![CDATA[TX \leftrightarrows  I]]></fr:tex> if <fr:tex display="inline"><![CDATA[x]]></fr:tex> is a trajectory between those systems---that is, if it is an equilibrium state of the smooth dynamical system <fr:tex display="inline"><![CDATA[TX \leftrightarrows  I]]></fr:tex>. This subsumes the two previous examples.
  </html:li></html:ol>
                      </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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-PTAE/</fr:uri>
                        <fr:display-uri>efr-PTAE</fr:display-uri>
                        <fr:route>/efr-PTAE/</fr:route>
                        <fr:title text="The Nash Product">The Nash Product</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\epsilon  \in  \mathbb {S}(X), \epsilon ' \in  \mathbb {S}(Y)]]></fr:tex> be selection relations.
  Their <html:em>Nash product</html:em> <fr:tex display="inline"><![CDATA[\epsilon  \boxtimes  \epsilon ' \in  \mathbb {S}(X \otimes  Y)]]></fr:tex> is given by <fr:tex display="inline"><![CDATA[\{(x \otimes  y, k) \mid  \epsilon (x,k(1_X \otimes  y)), \epsilon '(y, k(x \otimes  1_Y))\}]]></fr:tex></html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Let us unpack this very dense definition.
  Given a context <fr:tex display="inline"><![CDATA[k: X \otimes  Y \to  I]]></fr:tex>, a strategy <fr:tex display="inline"><![CDATA[I \to  X \otimes  Y]]></fr:tex> is in equilibrium if:
  <html:ol><html:li>
      It decomposes as a tensor product of <fr:tex display="inline"><![CDATA[x: I \to  X, y: I \to  Y]]></fr:tex>.
    </html:li>
    <html:li>
      Composing <fr:tex display="inline"><![CDATA[k]]></fr:tex> with <fr:tex display="inline"><![CDATA[y]]></fr:tex>, we obtain a map <fr:tex display="inline"><![CDATA[X \to  I]]></fr:tex>. This is the context of the first player assuming the second player plays <fr:tex display="inline"><![CDATA[y]]></fr:tex>. <fr:tex display="inline"><![CDATA[x]]></fr:tex> must be an equilibrium strategy for this map. Simultaneously, <fr:tex display="inline"><![CDATA[y]]></fr:tex> must be an equilibrium for the analogous composite of <fr:tex display="inline"><![CDATA[k]]></fr:tex> and <fr:tex display="inline"><![CDATA[x]]></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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>5</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-5E1V/</fr:uri>
                        <fr:display-uri>efr-5E1V</fr:display-uri>
                        <fr:route>/efr-5E1V/</fr:route>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Consider the selection relation <fr:tex display="inline"><![CDATA[\mathrm {argmax}_X \boxtimes  \mathrm {argmax}_Y]]></fr:tex> on <fr:tex display="inline"><![CDATA[{\mathbb {R} \times  \mathbb {R} \choose  X \times  Y}]]></fr:tex>. A point <fr:tex display="inline"><![CDATA[(x,y)]]></fr:tex> is an equilibrium for a function <fr:tex display="inline"><![CDATA[k: X \times  Y \to  \mathbb {R}^2]]></fr:tex> if and only if <fr:tex display="inline"><![CDATA[x]]></fr:tex> maximizes <fr:tex display="inline"><![CDATA[k_1(-,y)]]></fr:tex> and <fr:tex display="inline"><![CDATA[y]]></fr:tex> maximizes <fr:tex display="inline"><![CDATA[k_2(x,-)]]></fr:tex>. In other words, if <fr:tex display="inline"><![CDATA[x,y]]></fr:tex> is a Nash equilibrium (<fr:link href="/nash-noncoop-games/" title="Non-Cooperative Games" uri="https://erischel.com/nash-noncoop-games/" display-uri="nash-noncoop-games" type="local">Reference <fr:contextual-number uri="https://erischel.com/nash-noncoop-games/" display-uri="nash-noncoop-games" /></fr:link>) in the usual sense for the game with payoff matrix <fr:tex display="inline"><![CDATA[k]]></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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>4</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-Z2BR/</fr:uri>
                        <fr:display-uri>efr-Z2BR</fr:display-uri>
                        <fr:route>/efr-Z2BR/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  The <fr:link href="/efr-PTAE/" title="The Nash Product" uri="https://erischel.com/efr-PTAE/" display-uri="efr-PTAE" type="local">Nash product</fr:link> <fr:tex display="inline"><![CDATA[\mathbb {S}(X) \times  \mathbb {S}(Y) \to  \mathbb {S}(X \otimes  Y),]]></fr:tex> along with the map <fr:tex display="inline"><![CDATA[* \to  \mathbb {S}(I)]]></fr:tex> given by the full set <fr:tex display="inline"><![CDATA[S(I) \times  S(I)]]></fr:tex> equips <fr:tex display="inline"><![CDATA[\mathbb {S}]]></fr:tex> with a lax monoidal structure.
</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>2025</fr:year><fr:month>5</fr:month><fr:day>4</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    It is trivial to verify associativity and unitality of the monoidal structure. The only hard part is to verify that <fr:tex display="inline"><![CDATA[\boxtimes ]]></fr:tex> is actually a natural transformation. To that end, let <fr:tex display="inline"><![CDATA[f: X \to  Y]]></fr:tex> and <fr:tex display="inline"><![CDATA[g: X' \to  Y']]></fr:tex> be morphisms of <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. Let <fr:tex display="inline"><![CDATA[\epsilon  \in  \mathbb {S}(X), \epsilon ' \in  \mathbb {S}(Y)]]></fr:tex>.
  </html:p>
  <html:p>
    First consider the statement <fr:tex display="inline"><![CDATA[(f \otimes  g)_*(\epsilon  \boxtimes  \epsilon ')(s,k)]]></fr:tex>. This holds if and only if <fr:tex display="inline"><![CDATA[s: I \to  X \otimes  Y]]></fr:tex> factors as <fr:tex display="inline"><![CDATA[(f \otimes  g)s']]></fr:tex> so that <fr:tex display="inline"><![CDATA[(\epsilon  \boxtimes  \epsilon ')(s', k(f \otimes  g))]]></fr:tex>. This in turn means <fr:tex display="inline"><![CDATA[s' = x \otimes  x']]></fr:tex> and <fr:tex display="inline"><![CDATA[\epsilon (x, k(f \otimes  f')(1_X \otimes  x'))]]></fr:tex> and analogously for <fr:tex display="inline"><![CDATA[\epsilon ']]></fr:tex>.
  </html:p>
  <html:p>
    Now consider the statement <fr:tex display="inline"><![CDATA[f_*\epsilon  \boxtimes  g_*\epsilon ']]></fr:tex>. This means that <fr:tex display="inline"><![CDATA[s]]></fr:tex> factors as <fr:tex display="inline"><![CDATA[y \otimes  y']]></fr:tex> so that <fr:tex display="inline"><![CDATA[f_*\epsilon (y, k(1_Y \otimes  y'))]]></fr:tex> and analogously for <fr:tex display="inline"><![CDATA[y']]></fr:tex>, which in turn means that <fr:tex display="inline"><![CDATA[y]]></fr:tex> factors as <fr:tex display="inline"><![CDATA[fx]]></fr:tex> so that <fr:tex display="inline"><![CDATA[\epsilon (x, k(1_Y \otimes  y')f)]]></fr:tex>. Using the axioms of a monoidal category, it is straightforward to see that these two requirements on <fr:tex display="inline"><![CDATA[x, x']]></fr:tex> are equivalent, hence we have our naturality.
  </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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>5</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-UI90/</fr:uri>
                        <fr:display-uri>efr-UI90</fr:display-uri>
                        <fr:route>/efr-UI90/</fr:route>
                        <fr:taxon>Corollary</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Since <fr:tex display="inline"><![CDATA[\mathbb {S}]]></fr:tex> is lax monoidal, its Grothendieck construction <fr:tex display="inline"><![CDATA[\int  \mathbb {S}_\mathcal {C}]]></fr:tex> acquires a monoidal structure (<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>).
  We write this category <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathbb {S}]]></fr:tex>---explicitly, it is given as follows:
</html:p>
                        <html:ol><html:li>The objects are pairs <fr:tex display="inline"><![CDATA[(X,\epsilon )]]></fr:tex> where <fr:tex display="inline"><![CDATA[X \in  \mathcal {C}]]></fr:tex> and <fr:tex display="inline"><![CDATA[\epsilon  \in  \mathbb {S}(X)]]></fr:tex> is a selection relation on it</html:li>
  <html:li>The morphisms are morphisms <fr:tex display="inline"><![CDATA[f: X \to  Y]]></fr:tex> so that, for every <fr:tex display="inline"><![CDATA[x: I \to  X, k: Y \to  I]]></fr:tex>, <fr:tex display="inline"><![CDATA[\epsilon (x, kf) \Rightarrow  \epsilon (fx, k)]]></fr:tex></html:li>
  <html:li>The monoidal structure is given by <fr:tex display="inline"><![CDATA[(X,\epsilon ) \otimes  (Y,\epsilon ') = (X \otimes  Y, \epsilon  \boxtimes  \epsilon ')]]></fr:tex></html:li></html:ol>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Now we are ready to make the slick definition of open games.
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>5</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-1WGM/</fr:uri>
                        <fr:display-uri>efr-1WGM</fr:display-uri>
                        <fr:route>/efr-1WGM/</fr:route>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a semiCartesian symmetric monoidal category. The symmetric monoidal double category of <html:em>open games in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex></html:em> is <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {Game}}(\mathcal {C}) = \mathsf {\mathbb  Para}_{\mathsf {Optic}(\mathcal {C})_\mathbb {S}}(\mathsf {Optic}(\mathcal {C}))]]></fr:tex>.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Note that in this case, <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C})(I, {A \choose  X}) = \mathcal {C}(I,X),]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C})({A \choose  X},I) = \mathcal {C}(X,A)]]></fr:tex>. Thus a selection function decides, for each <html:em>payoff function <fr:tex display="inline"><![CDATA[X \to  A]]></fr:tex></html:em>, which of the states <fr:tex display="inline"><![CDATA[I \to  X]]></fr:tex> are suitable equilibria.
</html:p>
                    <html:p>
  Before we proceed to the case of stochastic lenses, we will pause briefly to make a small modification to the preceding theory as presented in <fr:link href="/towards-cybercat/" title="Towards Foundations of Categorical Cybernetics" uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" type="local">Reference <fr:contextual-number uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" /></fr:link>. In a game with forwards play function <fr:tex display="inline"><![CDATA[\Sigma  \times  X \to  Y,]]></fr:tex> there are two ways to talk about the player's "choice"---we may say that the player chooses a strategy <fr:tex display="inline"><![CDATA[\sigma  \in  \Sigma ,]]></fr:tex> which then has some effect. Or we may say that the choice is really the <fr:tex display="inline"><![CDATA[y \in  Y,]]></fr:tex> and the strategy <fr:tex display="inline"><![CDATA[\sigma ]]></fr:tex> is the "precommitment" of choosing what to do given each possible <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex>.
</html:p>
                    <html:p>
  Once we introduce randomness---working in <fr:tex display="inline"><![CDATA[Kl(\Delta )]]></fr:tex>, for example---we see that there are two <html:em>distinct</html:em> ways for a player to make a random choice: first, his strategy <fr:tex display="inline"><![CDATA[I \to  \Delta (\Sigma )]]></fr:tex> may be stochastic---that is, he is choosing a random strategy. Or the morphism <fr:tex display="inline"><![CDATA[\Sigma  \times  X \to  \Delta (Y)]]></fr:tex> may be stochastic---this means each strategy <fr:tex display="inline"><![CDATA[\sigma ]]></fr:tex> contains a specification of how to randomly choose <fr:tex display="inline"><![CDATA[y]]></fr:tex> given each possible <fr:tex display="inline"><![CDATA[x]]></fr:tex>.
</html:p>
                    <html:p>
  In the case where <fr:tex display="inline"><![CDATA[X = *]]></fr:tex>, the distinction is between taking <fr:tex display="inline"><![CDATA[\Sigma  = Y]]></fr:tex> and letting the play function be the identity, and taking <fr:tex display="inline"><![CDATA[\Sigma  = \Delta (Y)]]></fr:tex> and letting the play function be the <html:em>sampling map</html:em> which stochastically draws an element from a distribution.
</html:p>
                    <html:p>
  We take the view that the latter is the proper presentation of this game---this goes along with the terminology in the classical game theory literature, which would certainly regard a distribution on the set of possible moves as a (mixed) strategy. Having represented our games like this, we may restrict ourselves to considering <html:em>deterministic</html:em> maps <fr:tex display="inline"><![CDATA[I \to  \Sigma ]]></fr:tex> as strategies. This also fixes the awkwardness in the definition of the Nash product, since now every strategy in <fr:tex display="inline"><![CDATA[\Sigma _1 \otimes  \Sigma _2]]></fr:tex> decomposes uniquely as a pair of strategies.
</html:p>
                    <html:p>
  We quickly modify the preceding definitions to make sense of this. Note that we also modify the reparametrization maps to be deterministic (in the base).
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>6</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-6I8U/</fr:uri>
                        <fr:display-uri>efr-6I8U</fr:display-uri>
                        <fr:route>/efr-6I8U/</fr:route>
                        <fr:title text="Open games in a stochastic module">Open games in a stochastic module</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> be a symmetric monoidal stochastic module fibration over the Markov category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. Recall that <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathcal {D})]]></fr:tex> acquires a symmetric monoidal structure. Denote as usual <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathcal {D})|_\mathrm {det} = \mathsf {SLens}(\mathcal {D}) \times _{\mathcal {C}} \mathcal {C}_\mathrm {det}]]></fr:tex>. Note that this is stable under the monoidal product, and acts on <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathcal {D})]]></fr:tex> via the inclusion.
</html:p>
                        <html:p>
  Then the category of <html:em>open games in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex></html:em> is the category <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {Game}} = \mathsf {Para}_{(\mathsf {SLens}(\mathcal {D})|_\mathrm {det})_\mathbb {S}}(\mathsf {SLens}(\mathcal {D}))]]></fr:tex>.
</html:p>
                        <html:p>
  When <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> is a Markov prefibration, we overload the notation by writing <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {Game}}(\mathcal {D}) = \mathsf {Game}(\mathcal {D}|_\mathrm {det})]]></fr:tex>.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  We now introduce the notion of <html:em>strategic equivalence,</html:em> which identified two open games if they have the same equilibria for every costate <fr:tex display="inline"><![CDATA[\overline {\Sigma } \to  I]]></fr:tex> which can actually occur as a result of pasting the game <fr:tex display="inline"><![CDATA[\overline {\Sigma } \otimes  \bar {X} \to  \bar {Y}]]></fr:tex> into some larger diagram.
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>6</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-K0Y8/</fr:uri>
                        <fr:display-uri>efr-K0Y8</fr:display-uri>
                        <fr:route>/efr-K0Y8/</fr:route>
                        <fr:title text="Context">Context</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[X,Y]]></fr:tex> be objects of a symmetric monoidal category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. A <html:em>context</html:em> for <fr:tex display="inline"><![CDATA[X,Y]]></fr:tex> is a tuple <fr:tex display="inline"><![CDATA[M \in  \mathcal {C}, s: I \to  X \otimes  M, k: Y \otimes  M \to  I]]></fr:tex>. We denote the set of contexts <fr:tex display="inline"><![CDATA[\mathrm {Ctx}(X,Y)]]></fr:tex>.
</html:p>
                        <html:p>
  Given a morphism <fr:tex display="inline"><![CDATA[f: P \otimes  X \to  Y,]]></fr:tex> and a context <fr:tex display="inline"><![CDATA[c = (M,s,k),]]></fr:tex> the costate <fr:tex display="inline"><![CDATA[k(f \otimes  1_M)(1_{P} \otimes  s)]]></fr:tex> will be called the induced 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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>6</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-I1K5/</fr:uri>
                        <fr:display-uri>efr-I1K5</fr:display-uri>
                        <fr:route>/efr-I1K5/</fr:route>
                        <fr:taxon>Remark</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  The preceding definition clearly works in a non-symmetric monoidal category as well.
  In this case, arguably, a context should be defined to consist of maps <fr:tex display="inline"><![CDATA[I \to  M_1 \otimes  X \otimes  M_2, M_1 \otimes  Y \otimes  M_2 \to  I]]></fr:tex>. However, the problem with this from our point of view is that it doesn't allow the definition of a costate on <fr:tex display="inline"><![CDATA[P]]></fr:tex> given a parametrized map (since one cannot commute the <fr:tex display="inline"><![CDATA[P]]></fr:tex> past the <fr:tex display="inline"><![CDATA[M_1]]></fr:tex>), which is what we're interested in.
</html:p>
                        <html:p>
  It is also worth observing that contexts are essentially the same thing as optics <fr:tex display="inline"><![CDATA[{I \choose  I} \to  {Y \choose  X}]]></fr:tex>. We have not specified an equivalence relation on contexts (we do not need it,) but it is easy to see that for any parametrized map, two contexts that are sliding equivalent give the same induced 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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>6</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-R46X/</fr:uri>
                        <fr:display-uri>efr-R46X</fr:display-uri>
                        <fr:route>/efr-R46X/</fr:route>
                        <fr:title text="Strategic Equivalence">Strategic Equivalence</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> be a monoidal stochastic module fibration over a Markov category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, and consider a 2-cell <fr:tex display="inline"><![CDATA[\alpha : G_1 \to  G_2: \bar {X} \to  \bar {Y} \in  \widetilde {\mathsf {Game}}(\mathsf {SLens}(\mathcal {D}))]]></fr:tex>. 
</html:p>
                        <html:p>
  We say this is a <html:em>strategic equivalence</html:em> if the underlying map <fr:tex display="inline"><![CDATA[\Sigma _1 \to  \Sigma _2]]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is an isomorphism, and for every context <fr:tex display="inline"><![CDATA[c \in  \mathrm {Ctx}(\bar {X},\bar {Y})]]></fr:tex>, the induced costate <fr:tex display="inline"><![CDATA[k]]></fr:tex> on <fr:tex display="inline"><![CDATA[\overline {\Sigma _2}]]></fr:tex> has the same equilibria (under this isomorphism) as the composite costate <fr:tex display="inline"><![CDATA[k\alpha ]]></fr:tex> on <fr:tex display="inline"><![CDATA[\overline {\Sigma _1}]]></fr:tex></html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Note that a game up to strategic equivalence is determined by a relation between strategies <fr:tex display="inline"><![CDATA[I \to  \Sigma ]]></fr:tex> and contexts. This brings us closer to Hedges' original definition of open game from <fr:link href="/hedges-etal-comp-gametheory/" title="Compositional game theory" uri="https://erischel.com/hedges-etal-comp-gametheory/" display-uri="hedges-etal-comp-gametheory" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-etal-comp-gametheory/" display-uri="hedges-etal-comp-gametheory" /></fr:link>. The chief difference is that a game in our sense is prevented from "inspecting" the context <fr:tex display="inline"><![CDATA[Y \to  \bar {Y}]]></fr:tex> for those <fr:tex display="inline"><![CDATA[y \in  Y]]></fr:tex> which are not in the image of <fr:tex display="inline"><![CDATA[X \times  \Sigma  \to  Y]]></fr:tex>, in the sense that whether a given strategy is in equilibrium or not cannot depend on this (since we only see a certain costate on <fr:tex display="inline"><![CDATA[\Sigma ]]></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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>6</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-HLIX/</fr:uri>
                        <fr:display-uri>efr-HLIX</fr:display-uri>
                        <fr:route>/efr-HLIX/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Strategic equivalence is compatible with composition and tensor in <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {Game}}(\mathsf {SLens}(\mathcal {D}))]]></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>2025</fr:year><fr:month>5</fr:month><fr:day>6</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Let <fr:tex display="inline"><![CDATA[\alpha : (G_1 \to  G_1'): \bar {X} \to  \bar {Y}, \beta  : (G_2 \to  G_2') : \bar {Y} \to  \bar {Z}]]></fr:tex> be strategic equivalences. By 2-cell composition there is a map <fr:tex display="inline"><![CDATA[G_2G_1 \to  G_2'G_1']]></fr:tex>, which we must show is a strategic equivalence.
  </html:p>
  <html:p>
    Let <fr:tex display="inline"><![CDATA[c = s,k]]></fr:tex> be a context in <fr:tex display="inline"><![CDATA[\mathrm {Ctx}(\bar {X},\bar {Z})]]></fr:tex>. Now a pair of strategies <fr:tex display="inline"><![CDATA[\sigma _1, \sigma _2]]></fr:tex> for <fr:tex display="inline"><![CDATA[G_1,G_2]]></fr:tex> are in Nash equilibrium for the costate induced by this context if and only if <fr:tex display="inline"><![CDATA[\sigma _1]]></fr:tex> is in equilibrium for the costate induced by the context <fr:tex display="inline"><![CDATA[s: I \to  \bar {X} \otimes  \bar {M}, k(p_2(\sigma _2) \otimes  1_{\bar {M}}),]]></fr:tex> where <fr:tex display="inline"><![CDATA[p_2]]></fr:tex> is the play function of <fr:tex display="inline"><![CDATA[G_2]]></fr:tex>, and the analogous condition holds for <fr:tex display="inline"><![CDATA[\sigma _2]]></fr:tex>.
  </html:p>
  <html:p>
    But if <fr:tex display="inline"><![CDATA[\alpha ,\beta ]]></fr:tex> are equivalences, this is clearly equivalent to asking that <fr:tex display="inline"><![CDATA[\sigma _1,\sigma _2]]></fr:tex> be in Nash equilibrium for the costate induced by <fr:tex display="inline"><![CDATA[c]]></fr:tex> on <fr:tex display="inline"><![CDATA[\overline {\Sigma _1'} \otimes  \overline {\Sigma _2}']]></fr:tex>. This 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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>6</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-U99C/</fr:uri>
                        <fr:display-uri>efr-U99C</fr:display-uri>
                        <fr:route>/efr-U99C/</fr:route>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  We denote by <fr:tex display="inline"><![CDATA[\mathsf {Game}(\mathsf {SLens}(\mathcal {D}))]]></fr:tex> the symmetric monoidal category of strategic equivalence classes of open games.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Note that this category of open games retains a 2-categorical structure, given by deterministic maps <fr:tex display="inline"><![CDATA[\Sigma _1 \to  \Sigma _2]]></fr:tex> which preserve equilibria in every context. However, we will leave a deeper investigation of this structure for future work.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>30</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-SREZ/</fr:uri>
                    <fr:display-uri>efr-SREZ</fr:display-uri>
                    <fr:route>/efr-SREZ/</fr:route>
                    <fr:title text="Open Games with External Choice">Open Games with External Choice</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be an extensive Markov category. Let <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> be a monoidal stochastic module fibration with Markov structure, which has coproducts which are preserved by the pullbacks.
  Recall that <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathcal {D})]]></fr:tex> acquires two monoidal structures: one from dualizing the given monoidal structure on <fr:tex display="inline"><![CDATA[\mathcal {D},]]></fr:tex> which we simply denote <fr:tex display="inline"><![CDATA[\otimes ,I]]></fr:tex>, and one from taking the coCartesian monoidal structure in the fiber (which is Cartesian after taking the fiberwise dual, of course), which we denote <fr:tex display="inline"><![CDATA[\&, \top ]]></fr:tex>. Note that <fr:tex display="inline"><![CDATA[(\mathsf {SLens}(\mathcal {D}), \&)]]></fr:tex> is a Markov category. For the rest of this section, fix <fr:tex display="inline"><![CDATA[\mathcal {D}, \mathcal {C}]]></fr:tex> like this.
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>5</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-Y2ZN/</fr:uri>
                        <fr:display-uri>efr-Y2ZN</fr:display-uri>
                        <fr:route>/efr-Y2ZN/</fr:route>
                        <fr:taxon>Lemma</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\bar {X},\bar {Y}]]></fr:tex> be objects in <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathcal {D})]]></fr:tex>, and let <fr:tex display="inline"><![CDATA[I \to  I + I]]></fr:tex> be a morphism in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>.
  Then there is a canonical map <fr:tex display="inline"><![CDATA[\bar {X} \& \bar {Y} \to  \bar {X} + \bar {Y},]]></fr:tex> so that the underlying map is <fr:tex display="inline"><![CDATA[X \otimes  Y \to  (X \otimes  Y) \otimes  (I + I) \cong  X \otimes  Y + X \otimes  Y \to  X + 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>2025</fr:year><fr:month>5</fr:month><fr:day>5</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
  The first map in the factorization has a deterministic retract (deleting the <fr:tex display="inline"><![CDATA[I+I]]></fr:tex> component,) and using the coproduct-preservation, the coproduct over <fr:tex display="inline"><![CDATA[X + Y]]></fr:tex> and <fr:tex display="inline"><![CDATA[\bar {X} \& \bar {Y}]]></fr:tex> pull back to the same object over <fr:tex display="inline"><![CDATA[X \otimes  Y \otimes  (I + I)]]></fr:tex>. Composing the induced stochastic-Cartesian map and the Cartesian map gives the canonical map we wanted.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                    </fr:tree>
                    <html:p>
  With the interpretation that <fr:tex display="inline"><![CDATA[\overline {X} \& \overline {Y}]]></fr:tex> is the object <fr:tex display="inline"><![CDATA[\overline {X}_x + \overline {Y}_y]]></fr:tex> indexed over <fr:tex display="inline"><![CDATA[X \otimes  Y,]]></fr:tex> this map simply selects one branch randomly and marginalizes to that coordinate in <fr:tex display="inline"><![CDATA[X \otimes  Y,]]></fr:tex> then includes the returned value into the coproduct.
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>30</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-98DR/</fr:uri>
                        <fr:display-uri>efr-98DR</fr:display-uri>
                        <fr:route>/efr-98DR/</fr:route>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  When <fr:tex display="inline"><![CDATA[\mathcal {C}, \mathcal {D}]]></fr:tex> as above, <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {Game}}(\mathsf {SLens}(\mathcal {D}))]]></fr:tex> acquires a monoidal structure which we call <html:em>external choice,</html:em> and write <fr:tex display="inline"><![CDATA[\oplus ]]></fr:tex>, given on objects by the coproduct <fr:tex display="inline"><![CDATA[+]]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathcal {D}),]]></fr:tex>
  and on morphisms by the following formula:
</html:p>
                        <html:p>
  Given two open games <fr:tex display="inline"><![CDATA[G_1 = (\overline {\Sigma _A} \otimes  \overline {A_1} \to  \overline {A_2}, \epsilon _A), G_2 = (\overline {\Sigma _B} \otimes  \overline {B_1} \to  \overline {B_2}, \epsilon _B),]]></fr:tex> their external choice is has parameter <fr:tex display="inline"><![CDATA[\Sigma _A \& \Sigma _B]]></fr:tex>. The play map is given by 
  <fr:tex display="block"><![CDATA[(\Sigma _A \& \Sigma _B) \otimes  (A_1 + B_1) \cong  (\Sigma _A \& \Sigma _B) \otimes  A_1 + (\Sigma _A \& \Sigma _B) \otimes  B_1 \to  \Sigma _A \otimes  A_1 + \Sigma _B \otimes  B_1 \to  A_2 + B_2]]></fr:tex>

  The selection relation <fr:tex display="inline"><![CDATA[\epsilon _A \oplus  \epsilon _A]]></fr:tex> is given (up to equivalence) as follows:
  Given a context <fr:tex display="inline"><![CDATA[k: \overline {\Sigma _A} \& \overline {\Sigma _B} \to  I,]]></fr:tex> and a deterministic state <fr:tex display="inline"><![CDATA[I \to  \overline {\Sigma _A} \& \overline {\Sigma _B}]]></fr:tex>, they are in equilibrium if
  <html:ol><html:li><fr:tex display="inline"><![CDATA[k]]></fr:tex> factors over the canonical <fr:tex display="inline"><![CDATA[\overline {\Sigma _A} \& \overline {\Sigma _B} \to  \overline {\Sigma _A} + \overline {\Sigma _B}]]></fr:tex> for some <fr:tex display="inline"><![CDATA[c: I \to  I + I]]></fr:tex>.
    </html:li>
    <html:li>
      The factorization being given by <fr:tex display="inline"><![CDATA[k_A, k_B : \overline {\Sigma _A}, \overline {\Sigma _B} \to  I]]></fr:tex> ,and <fr:tex display="inline"><![CDATA[I \to  \overline {\Sigma _A} \& \overline {\Sigma _B}]]></fr:tex> being given by <fr:tex display="inline"><![CDATA[\sigma _A, \sigma _B : I \to  \overline {\Sigma _A}, \overline {\Sigma _B}]]></fr:tex>, we have <fr:tex display="inline"><![CDATA[\epsilon _A(\sigma _A,k_A), \epsilon _B(\sigma _B, k_B)]]></fr:tex></html:li></html:ol></html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  The idea behind the external choice operator is that, for all the contexts which can actually occur as a result of pasting a game <fr:tex display="inline"><![CDATA[G \oplus  G']]></fr:tex> into a larger string diagram, the map <fr:tex display="inline"><![CDATA[X \times  X' \to  \overline {X} + \overline {X}']]></fr:tex> has the given form---that is, the probability of landing in each of the two fibers does not depend on the chosen <fr:tex display="inline"><![CDATA[x,x']]></fr:tex> and the conditional distributions on the <fr:tex display="inline"><![CDATA[\overline {X}]]></fr:tex> component of the fiber depend only on <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex>. Hence we need only concern ourselves with which states are equilibria for contexts of this form. The choice of the empty set of equilibria for other contexts is merely a 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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>30</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-VB6A/</fr:uri>
                        <fr:display-uri>efr-VB6A</fr:display-uri>
                        <fr:route>/efr-VB6A/</fr:route>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Given a state <fr:tex display="inline"><![CDATA[I \to  A + B]]></fr:tex> in a Markov category with coproducts, we say a pair <fr:tex display="inline"><![CDATA[I \to  A, I \to  B]]></fr:tex> form a pair of conditionals if the copairing <fr:tex display="inline"><![CDATA[I + I \to  A + B]]></fr:tex> is a Bayesian inverse of the map <fr:tex display="inline"><![CDATA[A + B \to  I + I]]></fr:tex>.
</html:p>
                        <html:p>
  Given a state <fr:tex display="inline"><![CDATA[I \to  \bar {X} + \bar {Y}]]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathcal {D})]]></fr:tex>, we say a pair of maps <fr:tex display="inline"><![CDATA[I \to  \bar {X}, I \to  \bar {Y}]]></fr:tex> form a pair of conditionals if the underlying maps do. 
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>5</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-MLF1/</fr:uri>
                        <fr:display-uri>efr-MLF1</fr:display-uri>
                        <fr:route>/efr-MLF1/</fr:route>
                        <fr:taxon>Theorem</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  As defined above, <fr:tex display="inline"><![CDATA[\oplus ]]></fr:tex> is a symmetric monoidal structure on <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {Game}}(\mathsf {SLens}(\mathcal {D}))]]></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>2025</fr:year><fr:month>5</fr:month><fr:day>5</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    The monoidal coherences come from the monoidal structure of <fr:tex display="inline"><![CDATA[+,]]></fr:tex> and it is trivial to see that they preserve the selection relations. The only nontrivial part is proving that <fr:tex display="inline"><![CDATA[\oplus ]]></fr:tex> is functorial. Hence let <fr:tex display="inline"><![CDATA[G_1: A_1 \to  B_1, G_1' : B_1 \to  C_1, G_2: A_2 \to  B_2, G_2' : B_2 \to  C_2]]></fr:tex> be games.
    The strategy set of <fr:tex display="inline"><![CDATA[(G_1' \oplus  G_2')\circ (G_1 \oplus  G_2)]]></fr:tex> is given by <fr:tex display="inline"><![CDATA[(\Sigma _1 \& \Sigma _2) \otimes  (\Sigma _1' \otimes  \Sigma _2')]]></fr:tex>
    For <fr:tex display="inline"><![CDATA[(G_1' \circ  G_1) \oplus  (G_2' \circ  G_2),]]></fr:tex> by <fr:tex display="inline"><![CDATA[(\Sigma _1 \otimes  \Sigma _1') \& (\Sigma _2 \otimes  \Sigma _2')]]></fr:tex>.
  </html:p>
  <html:p>
    In the base, these are the same object <fr:tex display="inline"><![CDATA[\Sigma _1 \otimes  \Sigma _2 \otimes  \Sigma _1' \otimes  \Sigma _2']]></fr:tex>. In the fiber, they are given respectively by 
    <fr:tex display="block"><![CDATA[(\overline {\Sigma _1} + \overline {\Sigma _2}) \otimes  (\overline {\Sigma _1}' + \overline {\Sigma _2'})]]></fr:tex> and 
    <fr:tex display="block"><![CDATA[(\overline {\Sigma _1} \otimes  \overline {\Sigma _1'}) + (\overline {\Sigma _2} \otimes  \overline {\Sigma _2}').]]></fr:tex>
    Note the coproducts here are the fiberwise ones. There is an obvious lens from the former to the latter (given by the identity map on the base, and the inclusion of two summands in a fourfold coproduct---note that lenses go backwards in the fiber). Letting <fr:tex display="inline"><![CDATA[I \to  (A_1 \oplus  A_2) \otimes  M, (C_1 \oplus  C_2) \otimes  M \to  I]]></fr:tex> be a context, and going through the definitions, it is clear that the resulting contexts for the former game factors as this lens followed by the context for the latter game. In other words, this lens is a reparametrization map between the two games. It suffices to verify it is an equivalence.
  </html:p>
  <html:p>
    Unpacking the equivalence relation on <fr:tex display="inline"><![CDATA[(G_1' \oplus  G_2')(G_1 \oplus  G_2)]]></fr:tex>, note that (in all the possible contexts,) the signal to <fr:tex display="inline"><![CDATA[G_1]]></fr:tex> does not depend on the action of <fr:tex display="inline"><![CDATA[G_2']]></fr:tex> and vice versa, and so for <fr:tex display="inline"><![CDATA[G_1']]></fr:tex> and <fr:tex display="inline"><![CDATA[G_2]]></fr:tex>. Hence they are in equilibrium if and only if they are in equilibrium in <fr:tex display="inline"><![CDATA[G_1'G_1]]></fr:tex> for the given context (conditioned on that branch), and similarly the other two. This proves the desired equivalence.
  </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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>30</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-4CSL/</fr:uri>
                        <fr:display-uri>efr-4CSL</fr:display-uri>
                        <fr:route>/efr-4CSL/</fr:route>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Consider the (Grothendieck) fibration <fr:tex display="inline"><![CDATA[\mathsf {Set}^\to  \to  \mathsf {Set}]]></fr:tex>, which can be viewed as a Markov fibration.
  Let <fr:tex display="inline"><![CDATA[f: {\mathbb {R} \choose  \Sigma } \otimes  {\bar {X} \choose  X} \leftrightarrows  {\bar {Y} \choose  Y}]]></fr:tex> be a parameterized lens.
  Denote by <fr:tex display="inline"><![CDATA[\mathrm {argmax}_f]]></fr:tex> the open game <fr:tex display="inline"><![CDATA[{\bar {X} \choose  X} \to  {\bar {Y} \choose  Y}]]></fr:tex> with parameters <fr:tex display="inline"><![CDATA[{\mathbb {R} \choose  \Sigma }]]></fr:tex>, underlying parameterized lens <fr:tex display="inline"><![CDATA[f]]></fr:tex>, and equilibrium relation given by <fr:tex display="inline"><![CDATA[\mathrm {argmax}]]></fr:tex>.
</html:p>
                        <html:p>
  Then if <fr:tex display="inline"><![CDATA[g: {\mathbb {R} \choose  \Sigma '} \otimes  {\overline {X'} \choose  X'} \leftrightarrows  {\overline {Y'} \choose  Y'}]]></fr:tex> is another parameterized lens,
  we have
  <fr:tex display="block"><![CDATA[\mathrm {argmax}_f \oplus  \mathrm {argmax}_g \cong  \mathrm {argmax}_{f \oplus  g},]]></fr:tex>
  where by an abuse of notation <fr:tex display="inline"><![CDATA[f \oplus  g]]></fr:tex> denotes the paramterized lens
  <fr:tex display="block"><![CDATA[{\mathbb {R} \choose  \Sigma  \times  \Sigma '} \otimes  ({\overline {X} \choose  X} \oplus  {\overline {X'} \choose  X'}) \to  {\overline {Y} \choose  Y} \oplus  {\overline {Y'} \choose  Y'}]]></fr:tex>
  given by distributing into the coproduct, then projecting into the relevant factor of the product <fr:tex display="inline"><![CDATA[\Sigma  \times  \Sigma ']]></fr:tex> and applying either <fr:tex display="inline"><![CDATA[f]]></fr:tex> or <fr:tex display="inline"><![CDATA[g]]></fr:tex></html:p>
                        <html:p>
  A context for either of these games consists of an element of <fr:tex display="inline"><![CDATA[X + X']]></fr:tex> and a function <fr:tex display="inline"><![CDATA[k: Y + Y' \to  \mathbb {R}]]></fr:tex>. The external choice game can be seen as having two players, one who gets to play if the context chooses an element in <fr:tex display="inline"><![CDATA[X]]></fr:tex>, who must output an element <fr:tex display="inline"><![CDATA[y \in  Y]]></fr:tex> and optimize <fr:tex display="inline"><![CDATA[k(y)]]></fr:tex> (according to his private utility function <fr:tex display="inline"><![CDATA[\Sigma  \times  X \times  \bar {Y} \to  \mathbb {R}]]></fr:tex>), the other playing when the input is in <fr:tex display="inline"><![CDATA[X']]></fr:tex> and who must choose an element in <fr:tex display="inline"><![CDATA[y']]></fr:tex>. The single argmax game can be seen as a single player, who is constrained to play inside the same "branch" of the game as the input (this constraint is encoded in the lens <fr:tex display="inline"><![CDATA[f \oplus  g]]></fr:tex>), and whose utility function is given by the first players' in the first branch, and the second players' in the second branch.x
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>5</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-BNT1/</fr:uri>
                        <fr:display-uri>efr-BNT1</fr:display-uri>
                        <fr:route>/efr-BNT1/</fr:route>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[G: {* \choose  X} \to  {R \choose  Y}]]></fr:tex> be a game, representing an agent who is optimizing the return value <fr:tex display="inline"><![CDATA[r \in  R]]></fr:tex> in some sense. Then <fr:tex display="inline"><![CDATA[G \otimes  (1_I \oplus  1_I = 1_{I + I})]]></fr:tex> represents the same agent, whose payoff may now depend on an additional bit (a value in <fr:tex display="inline"><![CDATA[I + I]]></fr:tex>), but whose decisions may not depend on that bit (his selection function may still depend on its distribution).
</html:p>
                        <html:p>
  On the other hand, <fr:tex display="inline"><![CDATA[G \oplus  G (\cong  G \otimes  1_I \oplus  G \otimes  1_I)]]></fr:tex> represents the same situation, but where the player's strategy <html:em>may</html:em> depend on the bit---he provides two strategies <fr:tex display="inline"><![CDATA[\sigma _1,\sigma _2]]></fr:tex>, one for each possibility.
</html:p>
                        <html:p>
  This proves that <fr:tex display="inline"><![CDATA[\otimes ]]></fr:tex> does not distribute over <fr:tex display="inline"><![CDATA[\oplus ]]></fr:tex></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>2025</fr:year>
                  <fr:month>4</fr:month>
                  <fr:day>8</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-ZRUZ/</fr:uri>
                <fr:display-uri>efr-ZRUZ</fr:display-uri>
                <fr:route>/efr-ZRUZ/</fr:route>
                <fr:title text="Categories of stochastic dynamical systems">Categories of stochastic dynamical systems</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-5QC5/</fr:uri>
                    <fr:display-uri>efr-5QC5</fr:display-uri>
                    <fr:route>/efr-5QC5/</fr:route>
                    <fr:title text="Introduction">Introduction</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Given a set of inputs <fr:tex display="inline"><![CDATA[A]]></fr:tex> and a set of outputs <fr:tex display="inline"><![CDATA[B]]></fr:tex>, there are essentially two make sense of the informal description "finite-state automaton which reads inputs from <fr:tex display="inline"><![CDATA[A]]></fr:tex> and produces outputs in <fr:tex display="inline"><![CDATA[B]]></fr:tex>".
  These are the notions of <html:em>Mealy machine</html:em> and <html:em>Moore machine</html:em>. Simply put, if the set of states is <fr:tex display="inline"><![CDATA[S]]></fr:tex>, a mealy machine is a function <fr:tex display="inline"><![CDATA[A \times  S \to  B \times  S,]]></fr:tex> whereas a Moore machine is a pair <fr:tex display="inline"><![CDATA[A \times  S \to  S, S \to  B]]></fr:tex>. In other words, in a Moore machine the output does not depend on the current input, but only on previous inputs (through their effect on the state), but in a Mealy machine, the input can be passed through directly.
</html:p>
                    <html:p>
  Using the language of categorical systems theory, we can make the following definitions:
</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>25</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-0006/</fr:uri>
                        <fr:display-uri>efr-0006</fr:display-uri>
                        <fr:route>/efr-0006/</fr:route>
                        <fr:title text="Moore Machine">Moore Machine</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  In a dynamical systems theory, a <html:em>Moore machine</html:em> with state space <fr:tex display="inline"><![CDATA[S]]></fr:tex> and interface <fr:tex display="inline"><![CDATA[A]]></fr:tex> is a lens <fr:tex display="inline"><![CDATA[TS \leftrightarrows  A]]></fr:tex>. The category of Moore machines with interface <fr:tex display="inline"><![CDATA[A]]></fr:tex> is the slice category of the functor <fr:tex display="inline"><![CDATA[T]]></fr:tex> over <fr:tex display="inline"><![CDATA[A]]></fr:tex>---that is, a morphism of Moore machines is a morphism <fr:tex display="inline"><![CDATA[S \to  S']]></fr:tex> so that the obvious triangle commutes.
</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>25</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-0005/</fr:uri>
                        <fr:display-uri>efr-0005</fr:display-uri>
                        <fr:route>/efr-0005/</fr:route>
                        <fr:title text="Mealy Machine">Mealy Machine</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  In a dynamical systems theory, a <html:em>Mealy machine</html:em> with state space <fr:tex display="inline"><![CDATA[S]]></fr:tex> and interface <fr:tex display="inline"><![CDATA[A]]></fr:tex> consists of a costate lens <fr:tex display="inline"><![CDATA[TS \otimes  A \leftrightarrows  I]]></fr:tex>. The category of Mealy machines with interface <fr:tex display="inline"><![CDATA[A]]></fr:tex> is the comma category of the functor <fr:tex display="inline"><![CDATA[T(-) \otimes  A]]></fr:tex> over <fr:tex display="inline"><![CDATA[I]]></fr:tex>---that is, a morphism of Mealy machines is <fr:tex display="inline"><![CDATA[S \to  S']]></fr:tex> so that the obvious triangle commutes.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  A Moore machine in the sense of <fr:link href="/efr-0006/" title="Moore Machine" uri="https://erischel.com/efr-0006/" display-uri="efr-0006" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-0006/" display-uri="efr-0006" /></fr:link> is what Myers calls a (open) dynamical system, and they are the central object of study in <fr:link href="/myers-cst/" title="Categorical Systems Theory" uri="https://erischel.com/myers-cst/" display-uri="myers-cst" type="local">Reference <fr:contextual-number uri="https://erischel.com/myers-cst/" display-uri="myers-cst" /></fr:link>. Arguably, both Moore machines and Mealy machines deserve the name of "open dynamical system"---the difference is how they interact with the external world.
</html:p>
                    <html:p>
  Observe in particular that, if <fr:tex display="inline"><![CDATA[A=I]]></fr:tex>, the categories of Mealy and Moore machines agree, both being equal to the slice of <fr:tex display="inline"><![CDATA[T]]></fr:tex> over the unit <fr:tex display="inline"><![CDATA[I]]></fr:tex>. In other words, the two notions of <html:em>closed</html:em> dynamical system coincide.
</html:p>
                    <html:p>
  It is clear that both Mealy and Moore machines, in this sense, are special kinds of <html:em>parametrized morphism</html:em> in lenses, namely those parametrized by an object of the form <fr:tex display="inline"><![CDATA[TS]]></fr:tex>. This leads naturally to the idea that there should be a triple category of morphisms of this type, charts, and lenses.
</html:p>
                    <html:p>
  We call the parametrized lenses <fr:tex display="inline"><![CDATA[TS \otimes  \bar {A} \leftrightarrows  \bar {B}]]></fr:tex> <html:em>bisystems</html:em> since they generalize the two types of machine, Moore and Mealy (but we choose to stick with "system" rather than "machine").
</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>6</fr:month>
                          <fr:day>13</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-000E/</fr:uri>
                        <fr:display-uri>efr-000E</fr:display-uri>
                        <fr:route>/efr-000E/</fr:route>
                        <fr:title text="Machine Learning as a bisystem">Machine Learning as a bisystem</fr:title>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>

  It is an observation which goes back at least to <fr:link href="/backprop-as-functor/" title="Backprop as Functor: A compositional perspective on supervised learning" uri="https://erischel.com/backprop-as-functor/" display-uri="backprop-as-functor" type="local">Reference <fr:contextual-number uri="https://erischel.com/backprop-as-functor/" display-uri="backprop-as-functor" /></fr:link>, and was more thoroughly developed in <fr:link href="/bruno-etal-categorical-learning-2021/" title="Categorical Foundations of Gradient-Based Learning" uri="https://erischel.com/bruno-etal-categorical-learning-2021/" display-uri="bruno-etal-categorical-learning-2021" type="local">Reference <fr:contextual-number uri="https://erischel.com/bruno-etal-categorical-learning-2021/" display-uri="bruno-etal-categorical-learning-2021" /></fr:link>, that the process of training a machine learning algorithm by gradient descent can be abstracted in the following way:
</html:p>
                        <html:ul><html:li>Wanting to learn a function <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex>, we choose a parametrized function <fr:tex display="inline"><![CDATA[f: X \times  P \to  Y]]></fr:tex>, where all these are, in the simplest case, Euclidean spaces <fr:tex display="inline"><![CDATA[\mathbb {R}^k]]></fr:tex></html:li>
    <html:li>We take the backwards derivative of <fr:tex display="inline"><![CDATA[f,]]></fr:tex> obtaining a <html:em>lens:</html:em>
    <fr:tex display="block"><![CDATA[(f,Df): {TX \choose  X} \otimes  {TP \choose  P} \leftrightarrows  {TY \choose  Y}]]></fr:tex></html:li>
    <html:li>For each datum <fr:tex display="inline"><![CDATA[(x_n,y_n),]]></fr:tex> we compute the loss gradient <fr:tex display="inline"><![CDATA[\nabla  L(-,y_n) : Y \to  TY]]></fr:tex>, and combining this with <fr:tex display="inline"><![CDATA[x_n \in  X]]></fr:tex> and the current parameter <fr:tex display="inline"><![CDATA[p]]></fr:tex>, we get a gradient on the parameter space which we can use to update
    </html:li></html:ul>
                        <html:p>
  Thus a machine learning algorithm is a sort of bisystem. Indeed our bisystems are essentially an abstracted version of the <html:em>learners</html:em> of Fong--Spivak--Tuyeras. The functoriality of this assignment is the main point of the above-mentioned papers. 
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  In this chapter, we will put together the ingredients we have assembled so far and construct a triple category of stochastic dynamical systems. We will also give the construction of triple categories of systems in the ordinary case.
</html:p>
                    <html:p>
  Note that the theory of Markov fibrations does not quite generalize the ordinary theory of fibrations---only fibrations with a Cartesian base (<fr:link href="/efr-CJTH/" title="Markov prefibrations over Cartesian base" uri="https://erischel.com/efr-CJTH/" display-uri="efr-CJTH" type="local">Example <fr:contextual-number uri="https://erischel.com/efr-CJTH/" display-uri="efr-CJTH" /></fr:link> and <fr:link href="/efr-Z75A/" title="https://erischel.com/efr-Z75A/" uri="https://erischel.com/efr-Z75A/" display-uri="efr-Z75A" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-Z75A/" display-uri="efr-Z75A" /></fr:link>). Since the pullbacks in <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> play such a key role in the theory, it is not clear that this can be dispensed with. Although Cartesian bases certainly cover the vast majority of examples from the literature on categorical systems, it is of course worth noting that they are not a requirement. Moreover, we will see that the construction of the double category of lenses and charts encounters certain problems for a general Markov fibration not seen for ordinary fibrations. Hence we will give a separate description of the triple categories in each of the two cases.
</html:p>
                    <html:p>
  The notions of Mealy and Moore machine are both quite old, going back to <fr:link href="/mealy-circuits/" title="A method for synthesizing sequential circuits" uri="https://erischel.com/mealy-circuits/" display-uri="mealy-circuits" type="local">Reference <fr:contextual-number uri="https://erischel.com/mealy-circuits/" display-uri="mealy-circuits" /></fr:link>, <fr:link href="/moore-gedanken-sequential/" title="Gedanken-Experiments on Sequential Machines" uri="https://erischel.com/moore-gedanken-sequential/" display-uri="moore-gedanken-sequential" type="local">Reference <fr:contextual-number uri="https://erischel.com/moore-gedanken-sequential/" display-uri="moore-gedanken-sequential" /></fr:link>. While we do obtain finite-state automata of these types as special cases, our interest is primarily in the analysis of dynamical systems, which tends to ask rather different questions than automata theory. Thus, despite using the terminology, we will not be particularly interested in the actual theory of Mealy and Moore machines. We do mention one recent paper, <fr:link href="/semibicategory-of-moore-automata/" title="The semibicategory of Moore automata" uri="https://erischel.com/semibicategory-of-moore-automata/" display-uri="semibicategory-of-moore-automata" type="local">Reference <fr:contextual-number uri="https://erischel.com/semibicategory-of-moore-automata/" display-uri="semibicategory-of-moore-automata" /></fr:link>, which has a category-theoretic approach similar in spirit to our own. Their category of Mealy machines can be obtained, not as our category of Mealy machines above, but by considering maps <fr:tex display="inline"><![CDATA[TS \otimes  A \to  B]]></fr:tex> in the case where <fr:tex display="inline"><![CDATA[A = {* \choose  A}, B = {* \choose  B}]]></fr:tex> are trivial in the secondary component. In the discrete case, such a map is given by <fr:tex display="inline"><![CDATA[A \times  S \to  B \times  S]]></fr:tex>.
</html:p>
                    <html:p>
  It should also be noted that the idea of embedding Mealy machines as the morphisms <fr:tex display="inline"><![CDATA[TS \otimes  A \to  I]]></fr:tex> is not original, but was communicated to the author by Matteo Capucci. It seems not to have appeared in the literature so far. The idea that there "should" be a triple category of systems, like the one we will construct, has also circulated as folklore, although again an explicit construction has yet to appear. Very similar ideas appear in the work of Shapiro and Spivak, see for example <fr:link href="/shapiro-spivak-dynamic-operads/" title="Dynamic Operads, Dynamic Categories: From Deep Learning to Prediction Markets" uri="https://erischel.com/shapiro-spivak-dynamic-operads/" display-uri="shapiro-spivak-dynamic-operads" type="local">Reference <fr:contextual-number uri="https://erischel.com/shapiro-spivak-dynamic-operads/" display-uri="shapiro-spivak-dynamic-operads" /></fr:link>. 
</html:p>
                    <html:p>
  We begin this chapter with a treatment of double categories of charts and lenses in the context of Markov fibrations (and <fr:link href="/efr-OEFJ/" title="Stochastic Module Fibration" uri="https://erischel.com/efr-OEFJ/" display-uri="efr-OEFJ" type="local">stochastic modules</fr:link>). The construction does not work quite as well as in the classical case---the difficulty is essentially that the equivalence relation which defines <fr:link href="/efr-TBZZ/" title="Construction of \mathsf {SChart}(\mathcal {D}_0)" uri="https://erischel.com/efr-TBZZ/" display-uri="efr-TBZZ" type="local">stochastic charts</fr:link> has a directed nature, and given a 2-cell defined in an obvious way <fr:tex display="inline"><![CDATA[\phi  \to  \psi ,]]></fr:tex> and an equation <fr:tex display="inline"><![CDATA[\psi  \xleftarrow {\sim } \psi ',]]></fr:tex> there is not (apparently) in general a way to lift this to an arrow <fr:tex display="inline"><![CDATA[\phi ' \to  \psi ']]></fr:tex> (with <fr:tex display="inline"><![CDATA[\phi ' \simeq  \phi ]]></fr:tex>). However, we can construct a double category whose globular horizontal 2-category have <html:em>connected components</html:em> given by the stochastic charts (or lenses).
</html:p>
                    <html:p>
  We proceed to give an account of categorical systems theory for these double categories. The chief problem posed by the above is that we may not have any good clock systems (<fr:link href="/efr-9WQU/" title="Clock system" uri="https://erischel.com/efr-9WQU/" display-uri="efr-9WQU" type="local">Example <fr:contextual-number uri="https://erischel.com/efr-9WQU/" display-uri="efr-9WQU" /></fr:link>). Two equivalent charts should represent the same system, but they may receive different sets of maps from the supposed clock system (and thus have different sets of trajectories). We resolve this by proving that, for lenses with a deterministic base, every equivalence class of lenses has an initial representative. Moreover, mapping out of this initial representative to a representative of some other lens, a 2-cell exists filling a given square if and only if it commutes as a map of lenses and charts in the classical case (recall that over deterministic bases, Markov fibrations become ordinary fibrations). In particular the trajectories of a system with respect to such a clock system depend only on their equivalence class.
</html:p>
                    <html:p>
  We follow this up by constructing the above discussed triple categories of "bimachines", that is systems which combine Mealy and Moore machines. We do this both for stochastic and the ordinary case---the procedure is exactly the same, but of course they are different objects, neither generalizing the other.
</html:p>
                    <html:p>
  We end by constructing a stochastic dynamical systems theory for <html:em>smooth</html:em> dynamical systems---requiring a brief detour to construct a suitable Markov category of smooth kernels.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>24</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-SIE7/</fr:uri>
                    <fr:display-uri>efr-SIE7</fr:display-uri>
                    <fr:route>/efr-SIE7/</fr:route>
                    <fr:title text="Double categories of stochastic charts and lenses">Double categories of stochastic charts and lenses</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  To construct the double category <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}(\mathcal {A})]]></fr:tex> of charts and lenses for an ordinary fibration <fr:tex display="inline"><![CDATA[\mathcal {A} \to  \mathcal {C}]]></fr:tex>, one can use the following procedure:
</html:p>
                    <html:ol><html:li>
    Form the square double category <fr:tex display="inline"><![CDATA[\mathcal {A}^\to  \rightrightarrows  \mathcal {A}]]></fr:tex></html:li>
  <html:li>
    Take the fiberwise opposite of these objects: <fr:tex display="inline"><![CDATA[(\mathcal {A}^\to )^\mathrm {fop} \rightrightarrows  \mathcal {A}^\mathrm {fop}]]></fr:tex>.
  </html:li>
  <html:li>
    Observe that fiberwise opposite preserves pullbacks, and hence this is again a double category.
  </html:li></html:ol>
                    <html:p>
  Here we used the following result: If <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> is a Grothendieck fibration and <fr:tex display="inline"><![CDATA[\mathcal {A}]]></fr:tex> is any category, then <fr:tex display="inline"><![CDATA[\mathcal {D}^\mathcal {A} \to  \mathcal {C}^\mathcal {A}]]></fr:tex> is again a fibration (which classifies the lax limits of the composite <fr:tex display="inline"><![CDATA[\mathcal {A}^\mathrm {op} \to  \mathcal {C}^\mathrm {op} \to  \mathsf {Cat}]]></fr:tex>), and a natural transformation is Cartesian iff it is levelwise Cartesian. It would be neat to obtain a similar result for Markov fibrations.
</html:p>
                    <html:p>
  The first problem with this is that <fr:tex display="inline"><![CDATA[\mathcal {C}^\mathcal {A}]]></fr:tex> does not generally inherit a Markov structure from <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. As we noted when we introduced diagram Markov categories, one has to consider the category <fr:tex display="inline"><![CDATA[\mathsf {Fun}(\mathcal {A},\mathcal {C})]]></fr:tex> of deterministic diagrams instead.
</html:p>
                    <html:p>
  First, we will see that this indeed works for Markov <html:em>prefibrations</html:em>. This implies that <fr:tex display="inline"><![CDATA[(-)^\mathcal {A}]]></fr:tex> lifts from fibrations to stochastic modules.
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>8</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-6G7N/</fr:uri>
                        <fr:display-uri>efr-6G7N</fr:display-uri>
                        <fr:route>/efr-6G7N/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> be a Markov prefibration. Recall that by <fr:tex display="inline"><![CDATA[\mathcal {C}^\to ]]></fr:tex> we denote the category of <html:em>deterministic</html:em> arrows in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. Let <fr:tex display="inline"><![CDATA[\mathsf {Ar}(\mathcal {C})]]></fr:tex> denote the ordinary arrow category. Let now <fr:tex display="inline"><![CDATA[\mathcal {D}^\to ]]></fr:tex> denote the category <fr:tex display="inline"><![CDATA[\mathsf {Ar}(\mathcal {D}) \times _{\mathsf {Ar}(\mathcal {C})} \mathcal {C}^\to ]]></fr:tex> consisting of those arrows in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> which lie over a deterministic base (but again, where the morphisms consist of commutative squares whose other sides do not necessarily have deterministic bases). Then <fr:tex display="inline"><![CDATA[\mathcal {D}^\to  \to  \mathcal {C}^\to ]]></fr:tex> is a Markov prefibration.
</html:p><html:p>
  This yields a functor <fr:tex display="inline"><![CDATA[\mathsf {MarkPreFib}(\mathcal {C}) \to  \mathsf {MarkPreFib}(\mathcal {C}^\to )]]></fr:tex>, so that <fr:tex display="inline"><![CDATA[(\mathcal {D}^\to )|_\mathrm {det} = (\mathcal {D}|_\mathrm {det})^\to ]]></fr:tex>. This equation induces a natural transformation <fr:tex display="inline"><![CDATA[\overline {(\mathcal {D}_0^\to )}|_\mathrm {det} \to  (\overline {\mathcal {D}_0}|_\mathrm {det})^\to ]]></fr:tex>, which in turns gives a lift of <fr:tex display="inline"><![CDATA[(-)^\to ]]></fr:tex> to the category of stochastic module fibrations, where the induced algebra structure acts pointwise.
</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>2025</fr:year><fr:month>4</fr:month><fr:day>8</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Noting that <fr:tex display="inline"><![CDATA[\mathcal {C}^\to ]]></fr:tex> is a Markov category with the "pointwise" structure, and the deterministic maps consist precisely of the pointwise deterministic maps, clearly <fr:tex display="inline"><![CDATA[\mathcal {D}^\to |_\mathrm {det} = \mathcal {D}|_\mathrm {det}^\to ]]></fr:tex>, and fibrations are stable under the formation of arrow categories, with Cartesian maps formed pointwise.
  </html:p>
  <html:p>
    It is <html:em>not</html:em> trivial that this is a prefibration, because given a triangle in <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}^\to ]]></fr:tex>---a "prism"---and a Cartesian lifting, we only know that the maps "at the ends" are Cartesian, not the maps between the triangles.

Therefore we can not immediately apply the unique lifting property to say that the square between the induced lifts <fr:tex display="inline"><![CDATA[\bar {Y_i}_{X_i} \to  \bar {Y_i}_{Z_i}]]></fr:tex> commute, given some map <fr:tex display="inline"><![CDATA[\bar {Y}_0 \to  \bar {Y}_1]]></fr:tex> over <fr:tex display="inline"><![CDATA[Y_0 \to  Y_1]]></fr:tex>. However, by taking the pullback on both sides (and noting that pullbacks are functorial,) we can factor this square into two which live entirely over a deterministic base, and where the Cartesian property therefore imply commutativity.
  </html:p>
  <html:p>
    We have already argued that this commutes with restriction to the deterministic part. The natural transformation is induced for completely abstract reasons, by applying <fr:tex display="inline"><![CDATA[(-)^\to ]]></fr:tex> to the unit to obtain a map <fr:tex display="inline"><![CDATA[\mathcal {D}_0^\to  \to  (\overline {\mathcal {D}_0}|_\mathrm {det})^\to  = (\overline {\mathcal {D}_0}^\to )|_\mathrm {det},]]></fr:tex> which by the universal property of <fr:tex display="inline"><![CDATA[\overline {(-)}]]></fr:tex> induces the desired map <fr:tex display="inline"><![CDATA[\overline {(\mathcal {D}_0^\to )}|_\mathrm {det} \to  (\overline {\mathcal {D}_0}|_\mathrm {det})^\to ]]></fr:tex>.
  </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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>6</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-DXJR/</fr:uri>
                        <fr:display-uri>efr-DXJR</fr:display-uri>
                        <fr:route>/efr-DXJR/</fr:route>
                        <fr:taxon>Corollary</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {A}]]></fr:tex> be a small category, and let <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> be a Markov prefibration. Let <fr:tex display="inline"><![CDATA[\mathsf {Fun}(\mathcal {A},\mathcal {D}) := \mathcal {D}^\mathcal {A} \times _{\mathcal {C}^\mathcal {A}} \mathsf {Fun}(\mathcal {A},\mathcal {C})]]></fr:tex>. Then the functor <fr:tex display="inline"><![CDATA[\mathsf {Fun}(\mathcal {A},\mathcal {D}) \to  \mathsf {Fun}(\mathcal {A},\mathcal {C})]]></fr:tex> is a Markov prefibration.
</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>2025</fr:year><fr:month>5</fr:month><fr:day>6</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Note that <fr:tex display="inline"><![CDATA[\mathsf {Fun}(\mathcal {A},\mathcal {D})]]></fr:tex> is a limit of the categories <fr:tex display="inline"><![CDATA[\mathcal {D}^\to ]]></fr:tex> and prefibrations are stable under these limits.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                    </fr:tree>
                    <html:p>
  The question is now
</html:p>
                    <html:ol><html:li>If <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> is a Markov fibration, we get a stochastic module structure on <fr:tex display="inline"><![CDATA[\mathcal {D}|_\mathrm {det}^\mathcal {A}]]></fr:tex>---does it present a markov fibration?</html:li>
  <html:li>There is an induced map <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathsf {Fun}(\mathcal {A},\mathcal {D}|_\mathrm {det})) \to  \mathsf {Fun}(\mathcal {A},\mathcal {D})]]></fr:tex> (where the latter is taken by convention to mean the full subcategory of functors whose image in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> consists of deterministic arrows). Is this an isomorphism? (If it is, clearly this implies point 1)</html:li></html:ol>
                    <html:p>
  Unfortunately it's not clear that either of these are true---the surjectivity of <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}|_\mathrm {det}) \to  \mathcal {D}]]></fr:tex> cannot a priori be lifted to the arrow category. The issue is that, given a map in <fr:tex display="inline"><![CDATA[\mathcal {D}^\to ]]></fr:tex> consisting of, say <fr:tex display="inline"><![CDATA[\phi _0,\phi _1,]]></fr:tex> it is not sufficient to find charts representing each of these---we must find a <html:em>chart of squares</html:em> representing the square. This is not guaranteed by the Markov fibration structure, and a similar issue comes into play for the equivalence witnesses. 
</html:p>
                    <html:p>
  We may attempt to ignore this issue and simply try to form a double category <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathcal {D}^\to ) \rightrightarrows  \mathsf {SLens}(\mathcal {D}),]]></fr:tex> given a stochastic module <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>, but here the problem is that <fr:tex display="inline"><![CDATA[\mathsf {SLens}]]></fr:tex> does not commute with limits in general. Hence we can not easily define a composition on the 2-cells of lenses obtained this way.
</html:p>
                    <html:p>
  There are various ways we might attempt to remedy this problem. One approach would be to formulate a behavioural notion of "commutativity" for squares of stochastic lenses and charts, but the problem with this is that it is not obvious whether this property is stable under composition.
</html:p>
                    <html:p>
  The basic problem stems from the fact that chart equivalences have a "directed" nature, and given a morphism of precharts <fr:tex display="inline"><![CDATA[(M,\phi ) \to  (N,\psi )]]></fr:tex> and an equivalence <fr:tex display="inline"><![CDATA[(N,\psi ) \leftarrow  (N',\psi ')]]></fr:tex> (for example given by a stochastic section <fr:tex display="inline"><![CDATA[N' \to  N]]></fr:tex> satisfying suitable conditions), there is not in general a way to lift this back into an equivalent <fr:tex display="inline"><![CDATA[(M',\phi ')]]></fr:tex> with a map to <fr:tex display="inline"><![CDATA[N']]></fr:tex>. 
</html:p>
                    <html:p>
  This observation leads to the idea that we might define a double category of precharts which has the directed equivalences among its morphisms (going only in one direction). We will begin by constructing this double category.
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>23</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-KO4T/</fr:uri>
                        <fr:display-uri>efr-KO4T</fr:display-uri>
                        <fr:route>/efr-KO4T/</fr:route>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> be a (Grothendieck) fibration, and let <fr:tex display="inline"><![CDATA[\mathcal {C} \to  \mathcal {C}']]></fr:tex> be a faithful, identity-on-objects functor. Suppose <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> admits pullbacks, and given a pair of morphisms <fr:tex display="inline"><![CDATA[P \to  X,Y \in  \mathcal {C}']]></fr:tex> over <fr:tex display="inline"><![CDATA[Z]]></fr:tex>, where <fr:tex display="inline"><![CDATA[P \to  X]]></fr:tex> is in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, there is a unique common factorization <fr:tex display="inline"><![CDATA[P \to  X \times _Z Y]]></fr:tex>.
</html:p>
                        <html:ol><html:li>The double category <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Span}_{\mathcal {C}'}(\mathcal {C})]]></fr:tex> has <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> as the vertical category, spans <fr:tex display="inline"><![CDATA[X \leftarrow  P \to  Y]]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> equipped with a section <fr:tex display="inline"><![CDATA[X \to  P \in  {\mathcal {C}'}]]></fr:tex> as horizontal cells, and maps of spans which commute with the sections as 2-cells.</html:li>
  <html:li>
    The double category <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Span}_{\mathcal {C}'}(\mathcal {D} / \mathcal {C})]]></fr:tex> lying over <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Span}_{\mathcal {C}'}(\mathcal {C})]]></fr:tex> has <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> as the vertical category, and spans <fr:tex display="inline"><![CDATA[\bar {X} \xleftarrow {f} \bar {P} \xrightarrow {g} \bar {Y}]]></fr:tex> where <fr:tex display="inline"><![CDATA[f]]></fr:tex> is Cartesian, decorated with a section <fr:tex display="inline"><![CDATA[X \to  P]]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex> as the horizontal cells, and maps of such spans (so that the underlying thing commutes with the sections) as the 2-cells. We will call the horizontal cells <html:em>decorated spans</html:em>.
  </html:li>
  <html:li>
    There is an apparent forgetful functor <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Span}_{\mathcal {C}'}(\mathcal {D} / \mathcal {C}) \to  \mathsf {\mathbb  Span}_{\mathcal {C}'}(\mathcal {C})]]></fr:tex></html:li></html:ol>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  To spell it out, a 2-cell in <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Span}_{\mathcal {C}'}(\mathcal {D} / \mathcal {C})]]></fr:tex> consists of a diagram of this form in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>, where <fr:tex display="inline"><![CDATA[f_1,f_2]]></fr:tex> are Cartesian,
  and (writing <fr:tex display="inline"><![CDATA[X_1]]></fr:tex> for the object underlying <fr:tex display="inline"><![CDATA[\overline {X_1}]]></fr:tex>, and so on) two sections <fr:tex display="inline"><![CDATA[s_1,s_2]]></fr:tex> of the underlying maps in <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex>, so that the second diagram also commutes in <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex>:
  
  <html:figure><fr:resource hash="680ab8cb5c0984d0fcc3fa132d420533"><fr:resource-content><html:img src="/680ab8cb5c0984d0fcc3fa132d420533.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	{\overline {X_1}} & {\overline {P_1}} & {\overline {Y_1}} \\
	{\overline {X_2}} & {\overline {P_2}} & {\overline {Y_2}} \\
	{X_1} & {P_1} & {Y_1} \\
	{X_2} & {P_2} & {Y_2}
	\arrow [from=1-1, to=2-1]
	\arrow ["{f_1}"', from=1-2, to=1-1]
	\arrow [from=1-2, to=1-3]
	\arrow [from=1-2, to=2-2]
	\arrow [from=1-3, to=2-3]
	\arrow ["{f_2}"', from=2-2, to=2-1]
	\arrow [from=2-2, to=2-3]
	\arrow ["{s_1}", shift left=3, curve={height=-6pt}, from=3-1, to=3-2]
	\arrow [from=3-1, to=4-1]
	\arrow [from=3-2, to=3-3]
	\arrow [from=3-2, to=4-2]
	\arrow [from=3-3, to=4-3]
	\arrow ["{s_2}", shift left=3, curve={height=-6pt}, from=4-1, to=4-2]
	\arrow [from=4-2, to=4-3]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure></html:p>
                    <html:p>
  Naturally, we are interested in the case of <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Span}_{\mathcal {C}}(\mathcal {D} / \mathcal {C}_\mathrm {det})]]></fr:tex> for a stochastic module <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>. Then the decorated spans are representatives for stochastic charts. We will start by introducing a loosed notion of 2-cell for these spans, which combines the directed equivalences with the ordinary deterministic 2-cells of spans.
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>24</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-RD28/</fr:uri>
                        <fr:display-uri>efr-RD28</fr:display-uri>
                        <fr:route>/efr-RD28/</fr:route>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a Markov category and let <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> be a stochastic module over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>.
  Let <fr:tex display="inline"><![CDATA[(M_1, \phi _1): \bar {X_1} \leftrightarrows  \bar {Y_1}, (M_2, \phi _2): \bar {X_2} \leftrightarrows  \bar {Y_2}]]></fr:tex> be decorated spans in <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Span}_{\mathcal {C}}(\mathcal {D} / \mathcal {C}_\mathrm {det})]]></fr:tex>, and let <fr:tex display="inline"><![CDATA[f: \bar {X_1} \rightrightarrows  \bar {X_2}, g: \bar {Y_1} \to  \bar {Y_2}]]></fr:tex> be morphisms in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>, so that we have a square
   
  <html:figure><fr:resource hash="2a41c791e808afcedadf6b8fde97aaaa"><fr:resource-content><html:img src="/2a41c791e808afcedadf6b8fde97aaaa.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	{\overline {X_1}} & {\overline {X_1}_{M_1}} & {\overline {Y_1}} \\
	{\overline {X_2}} & {\overline {X_2}_{M_2}} & {\overline {Y_2}}
	\arrow ["f"', from=1-1, to=2-1]
	\arrow [from=1-2, to=1-1]
	\arrow ["{\phi _1}", from=1-2, to=1-3]
	\arrow ["g", from=1-3, to=2-3]
	\arrow [from=2-2, to=2-1]
	\arrow ["{\phi _2}", from=2-2, to=2-3]
  \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure></html:p>
                        <html:p>
  A <html:em>2-cell of decorated spans</html:em> for this data consists of a morphism <fr:tex display="inline"><![CDATA[m: M_1 \to  M_2 \in  \mathcal {C}]]></fr:tex> (that is, possibly stochastic), satisfying the following two conditions. First, the diagram
  
  <html:figure><fr:resource hash="f12e5548bfe27285f85f4f1fbc6e327b"><fr:resource-content><html:img src="/f12e5548bfe27285f85f4f1fbc6e327b.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	{X_1} & {M_1} & {Y_1} \\
	{X_2} & {M_2} & {Y_2}
	\arrow [from=1-1, to=2-1]
	\arrow [from=1-2, to=1-1]
	\arrow [from=1-2, to=1-3]
	\arrow [from=1-2, to=2-2]
	\arrow [from=1-3, to=2-3]
	\arrow [from=2-2, to=2-1]
	\arrow [from=2-2, to=2-3]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  in the base must commute. Given this, there is an induced square
  

  
  <html:figure><fr:resource hash="ec6ccb71a02049172ceaeb2864de40c0"><fr:resource-content><html:img src="/ec6ccb71a02049172ceaeb2864de40c0.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	{\overline {X_1}_{M_1}} & {\overline {Y_1}_{M_1}} \\
	{\overline {X_2}_{M_1}} & {\overline {Y_2}_{M_1}}
	\arrow [from=1-1, to=1-2]
	\arrow [from=1-1, to=2-1]
	\arrow [from=1-2, to=2-2]
	\arrow [from=2-1, to=2-2]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>


  in <fr:tex display="inline"><![CDATA[\mathcal {D}_{M_1}]]></fr:tex>, where the bottom map is given by pulling back <fr:tex display="inline"><![CDATA[\phi _2]]></fr:tex> along <fr:tex display="inline"><![CDATA[m]]></fr:tex>, in the sense of <fr:link href="/efr-VF6V/" title="https://erischel.com/efr-VF6V/" uri="https://erischel.com/efr-VF6V/" display-uri="efr-VF6V" type="local">Lemma <fr:contextual-number uri="https://erischel.com/efr-VF6V/" display-uri="efr-VF6V" /></fr:link>. The second condition is that this square must also commute.
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>24</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-DRU6/</fr:uri>
                        <fr:display-uri>efr-DRU6</fr:display-uri>
                        <fr:route>/efr-DRU6/</fr:route>
                        <fr:taxon>Lemma</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  2-cells of decorated spans compose---that is, given a diagram
  
  <html:figure><fr:resource hash="87b15b5a65e5214eaed0c0c992b146af"><fr:resource-content><html:img src="/87b15b5a65e5214eaed0c0c992b146af.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    \bar {X_1} \ar [d] \ar [r, "\phi _1"] & \bar {Y_1} \ar [d]\\
    \bar {X_2} \ar [r, "\phi _2"] \ar [d] & \bar {Y_2} \ar [d]\\
    \bar {X_3} \ar [r, "\phi _3"]        & \bar {Y_3}
    \end {tikzcd} 
  ]]></fr:resource-source></fr:resource></html:figure>

  where the horizontal maps are decorated spans, and the vertical maps are maps in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> with deterministic base, and given maps of decorated spans <fr:tex display="inline"><![CDATA[\phi _1 \xrightarrow {\alpha } \phi _2 \xrightarrow {\beta } \phi _3,]]></fr:tex> there is a map of decorated spans <fr:tex display="inline"><![CDATA[\phi _1 \to  \phi _3]]></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>2025</fr:year><fr:month>4</fr:month><fr:day>24</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    We can easily compose the two maps to get <fr:tex display="inline"><![CDATA[M_1 \to  M_3]]></fr:tex>. Now, the question is whether the perimeter of this diagram commutes:
    
  <html:figure><fr:resource hash="3149db008b83c3e087bc9fc128a59ebf"><fr:resource-content><html:img src="/3149db008b83c3e087bc9fc128a59ebf.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
      \begin {tikzcd}
      \bar {X_1}_{M_1} \ar [d] \ar [r] & \bar {Y_1}_{M_1}\ar [d]\\
      \bar {X_2}_{M_1} \ar [r] \ar [d] & \bar {Y_2}_{M_1} \ar [d]\\
      \bar {X_3}_{M_1} \ar [r] & \bar {Y_3}_{M_1}
      \end {tikzcd}
    ]]></fr:resource-source></fr:resource></html:figure>

    Note that the top square is commutative by assumption, since pullbacks compose (even along stochastic maps) and this is the assumption that <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex> is a cell. The bottom square is the result of pulling back a commutative square over <fr:tex display="inline"><![CDATA[M_2]]></fr:tex> again along <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex>. Note that pullback along stochastic morphisms is not in general functorial---but since the vertical parts of this square are themselves pulled back from <fr:tex display="inline"><![CDATA[X_2,Y_2]]></fr:tex>, this composition is preserved by pullback along <fr:tex display="inline"><![CDATA[\alpha : M_1 \to  M_2]]></fr:tex>. This finishes 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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>24</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-L7X0/</fr:uri>
                        <fr:display-uri>efr-L7X0</fr:display-uri>
                        <fr:route>/efr-L7X0/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  2-cells of decorated spans compose horizontally: Given a square
  
  <html:figure><fr:resource hash="044058098396c2550b40b2246241c406"><fr:resource-content><html:img src="/044058098396c2550b40b2246241c406.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    \bar {X_1} \ar [r, "\phi _1"] \ar [d] & \bar {Y_1} \ar [r, "\psi _1"] \ar [d] & \bar {Z_1} \ar [d]\\
    \bar {X_2} \ar [r, "\phi _2"] & \bar {Y_2} \ar [r, "\psi _2"] & \bar {Z_2}
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  where the horizontal maps are precharts and the vertical maps are morphisms in <fr:tex display="inline"><![CDATA[\mathcal {D}|_\mathrm {det}]]></fr:tex>, and given <fr:tex display="inline"><![CDATA[\alpha : \phi _1 \to  \phi _2]]></fr:tex> and <fr:tex display="inline"><![CDATA[\beta : \psi _1 \to  \psi _2]]></fr:tex>, there is a prechart morphism <fr:tex display="inline"><![CDATA[\psi _1\phi _1 \to  \psi _2\phi _2]]></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>2025</fr:year><fr:month>4</fr:month><fr:day>24</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Unlike the proof of <fr:link href="/efr-DRU6/" title="https://erischel.com/efr-DRU6/" uri="https://erischel.com/efr-DRU6/" display-uri="efr-DRU6" type="local">Lemma <fr:contextual-number uri="https://erischel.com/efr-DRU6/" display-uri="efr-DRU6" /></fr:link>, this is straightforward: If the carrier of <fr:tex display="inline"><![CDATA[\phi _i]]></fr:tex> is <fr:tex display="inline"><![CDATA[M_i]]></fr:tex>, and of <fr:tex display="inline"><![CDATA[\psi _i,]]></fr:tex> <fr:tex display="inline"><![CDATA[N_i]]></fr:tex> (for <fr:tex display="inline"><![CDATA[i=1,2]]></fr:tex>), then by definition the composites are carried by the pullback <fr:tex display="inline"><![CDATA[M_i \times _{Y_i} N_i]]></fr:tex>. There is a canonical map <fr:tex display="inline"><![CDATA[M_1 \times _{Y_1} N_1 \to  M_2 \times _{Y_2} N_2]]></fr:tex> over <fr:tex display="inline"><![CDATA[M_2, N_2]]></fr:tex>, given by the independent pairing of <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex> and <fr:tex display="inline"><![CDATA[\beta ]]></fr:tex>.
  </html:p>
  <html:p>Since pullbacks compose, the square over <fr:tex display="inline"><![CDATA[M_1 \times _{Y_1} N_1]]></fr:tex> that must commute is given by the two commutative squares induced by <fr:tex display="inline"><![CDATA[\alpha ,\beta ]]></fr:tex>, pulled back and composed with each other. Here we are pulling back along the deterministic projections from the pullback, and hence these commutative squares are preserved, and hence the composite square commutes as well.
  </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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>6</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-MUNG/</fr:uri>
                        <fr:display-uri>efr-MUNG</fr:display-uri>
                        <fr:route>/efr-MUNG/</fr:route>
                        <fr:taxon>Corollary</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> be a stochastic module over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. There is a double category <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {\mathbb  Span}}(\mathcal {D})^\mathrm {chart}]]></fr:tex> which has decorated spans as its horizontal maps, morphisms in <fr:tex display="inline"><![CDATA[\mathcal {D}|_\mathrm {det}]]></fr:tex> as its vertical maps, and decorated span 2-cells as its 2-cells.
</html:p>
                        <html:p>
  Moreover, there is another double category <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {\mathbb  Span}}(\mathcal {D})^\mathrm {lens}]]></fr:tex> which has decorated spans <html:em>in <fr:tex display="inline"><![CDATA[\mathcal {D}^\mathrm {fop}]]></fr:tex></html:em> as its horizontal maps instead.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  (The modification of everything above to lenses instead of charts is obvious).
</html:p>
                    <html:p>
  In fact, the globular 2-cells are in a sense exactly the equations defining the set of charts:
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>6</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-CU3J/</fr:uri>
                        <fr:display-uri>efr-CU3J</fr:display-uri>
                        <fr:route>/efr-CU3J/</fr:route>
                        <fr:taxon>Lemma</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\phi , \psi : \bar {A} \to  \bar {B}]]></fr:tex> be parallel decorated spans in <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {\mathbb  Span}}(\mathcal {D})^\mathrm {chart}]]></fr:tex> (or <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {\mathbb  Span}}(\mathcal {D})^\mathrm {lens}]]></fr:tex> ).
</html:p><html:p>
  They represent the same stochastic chart (lens) if and only if there exists a zig-zag of globular 2-cells between them.
</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>2025</fr:year><fr:month>5</fr:month><fr:day>6</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Unwinding the definitions, a 2-cell <fr:tex display="inline"><![CDATA[M_\phi  \to  M_\psi ]]></fr:tex> is precisely a map exhibiting the equality of the two decorated spans, as in <fr:link href="/efr-26SF/" title="https://erischel.com/efr-26SF/" uri="https://erischel.com/efr-26SF/" display-uri="efr-26SF" type="local">Lemma <fr:contextual-number uri="https://erischel.com/efr-26SF/" display-uri="efr-26SF" /></fr:link></html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                    </fr:tree>
                    <html:p>
  The following straightforward lemma shows that charts over deterministic bases have initial representatives as spans. This will be important later:
</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>24</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-10CM/</fr:uri>
                        <fr:display-uri>efr-10CM</fr:display-uri>
                        <fr:route>/efr-10CM/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Suppose given a square 

   
  <html:figure><fr:resource hash="fb807ce7b994fdac1f2421d06ec261de"><fr:resource-content><html:img src="/fb807ce7b994fdac1f2421d06ec261de.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    \bar {X_1} \ar [d, "f"] \ar [r, "\phi _1"] & \bar {Y_1} \ar [d, "g"]\\
    \bar {X_2} \ar [r, "\phi _2"]  & \bar {Y_2}
    \end {tikzcd} 
  ]]></fr:resource-source></fr:resource></html:figure>

  in <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {\mathbb  Span}}(\mathcal {D})^\mathrm {lens}]]></fr:tex> (or <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {\mathbb  Span}}(\mathcal {D})^\mathrm {chart}]]></fr:tex>) Suppose further the underlying square in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is deterministic. Then:
</html:p><html:ol><html:li>
    If there exists a filling decorated span 2-cell, the image in <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}(\mathcal {D}|_\mathrm {det})]]></fr:tex> commutes.
  </html:li>
  <html:li>
    If <fr:tex display="inline"><![CDATA[M_1]]></fr:tex> is the carrier of <fr:tex display="inline"><![CDATA[\phi _1]]></fr:tex> and the left leg <fr:tex display="inline"><![CDATA[M_1 \to  X_1]]></fr:tex> is an isomorphism, then this implication is an equivalence.
  </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>2025</fr:year><fr:month>4</fr:month><fr:day>24</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Given a stochastic chart carried by <fr:tex display="inline"><![CDATA[X \leftarrow  M \to  Y,]]></fr:tex> so that <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> is deterministic, recall that we can first pull back to the equalizer <fr:tex display="inline"><![CDATA[M' \hookrightarrow  M]]></fr:tex> of the two maps <fr:tex display="inline"><![CDATA[M \to  X \to  Y, M \to  Y]]></fr:tex>, then along the prescribed section <fr:tex display="inline"><![CDATA[X \to  M']]></fr:tex>. Note that this gives a 2-cell from this canonical representative with carrier <fr:tex display="inline"><![CDATA[X]]></fr:tex> to the initial representative.
  </html:p>
  <html:p>
    Given two such cells, we get a square
    
  <html:figure><fr:resource hash="4f8c6c98052ea0ab8ded5b94c3385625"><fr:resource-content><html:img src="/4f8c6c98052ea0ab8ded5b94c3385625.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
      \begin {tikzcd}
      M_1 \ar [r] & M_2\\
      X_1 \ar [u] & X_2 \ar [u]
      \end {tikzcd}
    ]]></fr:resource-source></fr:resource></html:figure>

    But as part of the square surrounding the 2-cell, there is given a map <fr:tex display="inline"><![CDATA[X_1 \to  X_2]]></fr:tex>, which must make this square commute. The functoriality of base change (pulling back the map <fr:tex display="inline"><![CDATA[\phi _2]]></fr:tex>) proves this bottom map is again a 2-cell.
  </html:p>
  <html:p>
    But the property for this map to be a 2-cell is exactly the property for this square to be a commutative square in <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}{\mathcal {D}|_\mathrm {det}}]]></fr:tex>. This proves both parts of the statement.
  </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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>8</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-7DV5/</fr:uri>
                    <fr:display-uri>efr-7DV5</fr:display-uri>
                    <fr:route>/efr-7DV5/</fr:route>
                    <fr:title text="Double Categories of Stochastic Dynamical System">Double Categories of Stochastic Dynamical System</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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>25</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-HS7G/</fr:uri>
                        <fr:display-uri>efr-HS7G</fr:display-uri>
                        <fr:route>/efr-HS7G/</fr:route>
                        <fr:title text="Stochastic Dynamical Systems Theories">Stochastic Dynamical Systems Theories</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  A <html:em>stochastic dynamical systems theory</html:em> consists of a stochastic module <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> equipped with a section <fr:tex display="inline"><![CDATA[T: \mathcal {C}_\mathrm {det} \to  \mathcal {D}|_\mathrm {det}]]></fr:tex> of the underlying fibration.
</html:p>
                        <html:p>
  We adopt the notation <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {\mathbb  Arena}}(\mathcal {D})]]></fr:tex> for the double category which was denoted <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {\mathbb  Span}}(\mathcal {D})^\mathrm {lens}]]></fr:tex> above. We use the symbol <fr:tex display="inline"><![CDATA[\leftrightarrows ]]></fr:tex> for the horizontal (span) morphisms and <fr:tex display="inline"><![CDATA[\rightrightarrows ]]></fr:tex> for the vertical morphisms (in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>).
</html:p>
                        <html:p>
  Given a stochastic dynamical systems theory <fr:tex display="inline"><![CDATA[(\mathcal {D}, T)]]></fr:tex>, the <html:em>double category of dynamical systems</html:em> <fr:tex display="inline"><![CDATA[\mathsf {Sys}(\mathcal {D},T)]]></fr:tex> has
  <html:ol><html:li>Objects triples <fr:tex display="inline"><![CDATA[S \in  \mathcal {C}, \bar {A} \in  \mathcal {D}, \xi : TS \leftrightarrows  \bar {A} \in  \widetilde {\mathsf {\mathbb  Arena}}]]></fr:tex></html:li>
    <html:li>Horizontal morphisms given by a pair <fr:tex display="inline"><![CDATA[f: S \to  S', g: \bar {A} \rightrightarrows  \bar {B} \in  \mathcal {D}, c]]></fr:tex> where <fr:tex display="inline"><![CDATA[c]]></fr:tex> is a square filling <fr:tex display="inline"><![CDATA[\xi , \xi ', Tf, g]]></fr:tex></html:li>
    <html:li>Vertical morphisms given by a pair <fr:tex display="inline"><![CDATA[f: S \to  S', g: \bar {A} \leftrightarrows  \bar {B} \in  \overline {\mathcal {D}}, c]]></fr:tex> where <fr:tex display="inline"><![CDATA[c]]></fr:tex> is a square filling <fr:tex display="inline"><![CDATA[Tf, g \xi , \xi ', 1_{\bar {B}}]]></fr:tex></html:li></html:ol></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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>25</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-N5V5/</fr:uri>
                        <fr:display-uri>efr-N5V5</fr:display-uri>
                        <fr:route>/efr-N5V5/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[T,\mathcal {D}]]></fr:tex> be a stochastic dynamical systems theory.
  Then <fr:tex display="inline"><![CDATA[T,\mathcal {D}|_\mathrm {det}]]></fr:tex> is an ordinary dynamical systems theory.
  There is a double functor <fr:tex display="inline"><![CDATA[\mathsf {Sys}(T,\mathcal {D}|_\mathrm {det}) \to  \mathsf {Sys}(T,\mathcal {C})]]></fr:tex>. This functor is full on vertical morphisms, and on 2-cells.
</html:p><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathsf {Sys}(T,\mathcal {D})_\mathrm {det}]]></fr:tex> denote the subcategory spanned by systems with deterministic readout, prelenses with deterministic base, and all the morphisms of <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>. Then the restricted functor <fr:tex display="inline"><![CDATA[\mathsf {Sys}(T,\mathcal {D}|_\mathrm {det}) \to  \mathsf {Sys}(T,\mathcal {D})_\mathrm {det}]]></fr:tex> admits a chartwise right adjoint, which assigns to each system or prelens its equivalence class.
</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>2025</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>
    The functor simply acts as the functor in <fr:link href="/efr-JQI9/" title="https://erischel.com/efr-JQI9/" uri="https://erischel.com/efr-JQI9/" display-uri="efr-JQI9" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-JQI9/" display-uri="efr-JQI9" /></fr:link>. Since that inclusion is full on 2-cells, this one is full on vertical morphisms, and since a 2-cell in <fr:tex display="inline"><![CDATA[\mathsf {Sys}]]></fr:tex> is merely a 2-cell in <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}]]></fr:tex> between specific objects, it is also full on 2-cells.
  </html:p>
  <html:p>
    The right adjoint property likewise follows from the analogous property of the inclusion functor on arenas.
  </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>2025</fr:year>
                          <fr:month>4</fr:month>
                          <fr:day>25</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-JQI9/</fr:uri>
                        <fr:display-uri>efr-JQI9</fr:display-uri>
                        <fr:route>/efr-JQI9/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> be a Markov prefibration. Then there is a double functor <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}(\mathcal {D}|_\mathrm {det}) \to  \widetilde {\mathsf {\mathbb  Arena}}(\mathcal {D}),]]></fr:tex> which acts as identity on the morphisms of <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>, and carries each lens <fr:tex display="inline"><![CDATA[(f: X \to  Y, \phi : f^*\bar {Y} \to  \bar {X})]]></fr:tex> to the prelens <fr:tex display="inline"><![CDATA[(X \leftarrow  X \to  Y, \phi )]]></fr:tex>. This double functor is full on 2-cells.
</html:p><html:p>
  The restriction to <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}(\mathcal {D}|_\mathrm {det}) \to  \mathsf {\mathbb  Arena}(\mathcal {D})_\mathrm {det}]]></fr:tex> admits a right adjoint, which carries every prelens to its equivalence class.
</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>2025</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>
    First we must verify functoriality with respect to lens composition. To that end, let <fr:tex display="inline"><![CDATA[X \xrightarrow {f} Y \xrightarrow {g} Z]]></fr:tex> be deterministic morphisms and <fr:tex display="inline"><![CDATA[\phi ,\psi ]]></fr:tex> be lenses over them.
    Their composite as prelenses has carrier <fr:tex display="inline"><![CDATA[X \times _Y Y = X]]></fr:tex> and <fr:tex display="inline"><![CDATA[f^*(\psi )\phi ]]></fr:tex> as the morphism in the fiber, which is exactly the prelens associated to their composite as lenses.
  </html:p>
  <html:p>
    Second, we must verify fullness on 2-cells. But this is a special case of <fr:link href="/efr-10CM/" title="https://erischel.com/efr-10CM/" uri="https://erischel.com/efr-10CM/" display-uri="efr-10CM" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-10CM/" display-uri="efr-10CM" /></fr:link>.
  </html:p>
  <html:p>
    Finally, <fr:link href="/efr-10CM/" title="https://erischel.com/efr-10CM/" uri="https://erischel.com/efr-10CM/" display-uri="efr-10CM" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-10CM/" display-uri="efr-10CM" /></fr:link> is precisely the statement that assigning a prelens to its equivalence class lens is right adjoint to this (and in particular that it forms a functor) 
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Recall that in Myers' categorical dynamical systems theory, trajectories of a system <fr:tex display="inline"><![CDATA[\xi : TS \leftrightarrows  \bar {A}]]></fr:tex> are identified with chart morphisms from a "clock" system---thus for example trajectories of a smooth dynamical system <fr:tex display="inline"><![CDATA[M \to  TM]]></fr:tex> are exactly those maps <fr:tex display="inline"><![CDATA[\gamma : \mathbb {R} \to  M]]></fr:tex> which, when <fr:tex display="inline"><![CDATA[\mathbb {R}]]></fr:tex> is equipped with the vectorfield <fr:tex display="inline"><![CDATA[dx/dt = 1]]></fr:tex>, are homomorphisms.
</html:p>
                    <html:p>
  In general this presents an issue for our replacement category <fr:tex display="inline"><![CDATA[\mathsf {Sys}(T,\mathcal {D})]]></fr:tex>---since we wish to regard two systems given by equivalent lenses as equivalent, but their set of homomorphisms from a given clock system is not necessarily in bijection. In the general case, we do not presently have a way around this problem---but at least for clock systems with deterministic readout, the above presents a solution: choosing the initial representative for such a system, we find that the set of trajectories does not depend on the equivalence class of the target system.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-MWCE/</fr:uri>
                    <fr:display-uri>efr-MWCE</fr:display-uri>
                    <fr:route>/efr-MWCE/</fr:route>
                    <fr:title text="The triple category of dynamical systems">The triple category of dynamical systems</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Having done the prep-work in <fr:link href="/efr-000D/" title="The \mathsf {Para} construction in generic 2-categories" uri="https://erischel.com/efr-000D/" display-uri="efr-000D" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-000D/" display-uri="efr-000D" /></fr:link> (and <fr:link href="/efr-0023/" title="Review of Categorical Systems Theory" uri="https://erischel.com/efr-0023/" display-uri="efr-0023" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-0023/" display-uri="efr-0023" /></fr:link>), we can jump directly into the construction:
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>6</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-EPI9/</fr:uri>
                        <fr:display-uri>efr-EPI9</fr:display-uri>
                        <fr:route>/efr-EPI9/</fr:route>
                        <fr:title text="\mathsf {BiSys}">
                          <fr:tex display="inline"><![CDATA[\mathsf {BiSys}]]></fr:tex>
                        </fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {A} \to  \mathcal {C}, T: \mathcal {C} \to  \mathcal {A}]]></fr:tex> be a symmetric monoidal dynamical systems theory. Then this diagram:
  
  <html:figure><fr:resource hash="4f18520c092bbb565136eec5ffadca87"><fr:resource-content><html:img src="/4f18520c092bbb565136eec5ffadca87.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	{(\mathcal {C}^\to )^\simeq } & {\mathsf {Arena}(\mathcal {A})_1} \\
	{\mathcal {C}^\simeq } & {\mathsf {Arena}(\mathcal {A})_0}
	\arrow ["{(T^\to )}"', from=1-1, to=1-2]
	\arrow [shift right, from=1-1, to=2-1]
	\arrow [shift left, from=1-1, to=2-1]
	\arrow [shift right, from=1-2, to=2-2]
	\arrow [shift left, from=1-2, to=2-2]
	\arrow ["T"', from=2-1, to=2-2]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  depicts two strict double categories, each with a symmetric monoidal structure, and a strict double functor between them which is (non-strictly) a symmetric monoidal functor. This induces an object of <fr:tex display="inline"><![CDATA[\mathsf {SymMon}(\mathsf {Act}(\mathsf {DblCat}))]]></fr:tex>. Applying <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}(-)]]></fr:tex> under <fr:tex display="inline"><![CDATA[\mathsf {SymMon}(-),]]></fr:tex> we obtain a symmetric pseudomonoid in internal pseudocategories in <fr:tex display="inline"><![CDATA[\mathsf {DblCat}]]></fr:tex>. Denote by <fr:tex display="inline"><![CDATA[\mathsf {BiSys}(\mathcal {C},\mathcal {A},T)]]></fr:tex> this induced object.
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>6</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-WX1V/</fr:uri>
                        <fr:display-uri>efr-WX1V</fr:display-uri>
                        <fr:route>/efr-WX1V/</fr:route>
                        <fr:title text="The Structure of \mathsf {BiSys}">The Structure of <fr:tex display="inline"><![CDATA[\mathsf {BiSys}]]></fr:tex></fr:title>
                        <fr:taxon>Remark</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p><fr:tex display="inline"><![CDATA[\mathsf {BiSys}(\mathcal {C},\mathcal {A},T)]]></fr:tex> has the following structure: The objects are simply the objects of <fr:tex display="inline"><![CDATA[\mathcal {A}]]></fr:tex>---the bundles.
</html:p>
                        <html:p>
  There are three types of 1-cell: Lenses, that is morphism in <fr:tex display="inline"><![CDATA[\mathcal {A}^\mathrm {fop}]]></fr:tex>, which we write <fr:tex display="inline"><![CDATA[A \leftrightarrows  B]]></fr:tex>, charts, that is morphisms in <fr:tex display="inline"><![CDATA[\mathcal {A}]]></fr:tex>, which we write <fr:tex display="inline"><![CDATA[A \rightrightarrows  B]]></fr:tex>, and <html:em>bisystems,</html:em> which are pairs <fr:tex display="inline"><![CDATA[(S \in  \mathcal {C}, TS \otimes  A \leftrightarrows  B)]]></fr:tex>, and which we write <fr:tex display="inline"><![CDATA[A \nrightarrow  B]]></fr:tex>.
</html:p>
                        <html:p>
  Moreover there are three types of 2-cell:
  <html:ol><html:li>
    Lens-chart cells, which are the 2-cells of <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}(\mathcal {A})]]></fr:tex>. Note that this double category is thin. We will say a square of lenses and charts <html:em>commutes</html:em> if it is filled by such a 2-cell.
  </html:li>
  <html:li>
    Chart-bisystem cells---given charts <fr:tex display="inline"><![CDATA[A_1 \rightrightarrows  B_1, A_2 \rightrightarrows  B_2]]></fr:tex> and systems <fr:tex display="inline"><![CDATA[TS \otimes  A_1 \leftrightarrows  A_2, TS' \otimes  A_2 \leftrightarrows  B_2,]]></fr:tex> a square filling this is a choice of map <fr:tex display="inline"><![CDATA[S \to  S' \in  \mathcal {C}]]></fr:tex> so that the resulting lens-chart square
    
  <html:figure><fr:resource hash="8adf27fc64b7821f1bd8034d14f98f85"><fr:resource-content><html:img src="/8adf27fc64b7821f1bd8034d14f98f85.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
      \begin {tikzcd}
	{TS \otimes  A_1} & {A_2} \\
	{TS'\otimes  B_1} & {B_2}
	\arrow [shift right, from=1-1, to=1-2]
	\arrow [shift right, from=1-1, to=2-1]
	\arrow [shift left, from=1-1, to=2-1]
	\arrow [shift right, from=1-2, to=1-1]
	\arrow [shift right, from=1-2, to=2-2]
	\arrow [shift left, from=1-2, to=2-2]
	\arrow [shift right, from=2-1, to=2-2]
	\arrow [shift right, from=2-2, to=2-1]
\end {tikzcd}
    ]]></fr:resource-source></fr:resource></html:figure>

    commutes.
  </html:li>
  <html:li>
    Lens-bisystem cells. Given lenses <fr:tex display="inline"><![CDATA[A_1 \leftrightarrows  B_1, A_2 \leftrightarrows  B_2,]]></fr:tex> and systems <fr:tex display="inline"><![CDATA[TS' \otimes  A_1 \leftrightarrows  A_2, TS' \otimes  B_1 \leftrightarrows  B_2,]]></fr:tex> a 2-cell consists of an <html:em>isomorphism <fr:tex display="inline"><![CDATA[S' \xrightarrow {\sim } S']]></fr:tex></html:em> so that the resulting square of lenses commutes (recall that isomorphism charts are the same as isomorphism lenses).
    
  <html:figure><fr:resource hash="49ed69ceec6149ec04b7972983f3c45f"><fr:resource-content><html:img src="/49ed69ceec6149ec04b7972983f3c45f.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
      \begin {tikzcd}
	{TS \otimes  A_1} & {A_2} \\
	{TS'\otimes  B_1} & {B_2}
	\arrow [shift right, from=1-1, to=1-2]
	\arrow [shift right, from=1-1, to=2-1]
	\arrow [shift right, from=1-2, to=1-1]
	\arrow [shift right, from=1-2, to=2-2]
	\arrow [shift right, from=2-1, to=1-1]
	\arrow [shift right, from=2-1, to=2-2]
	\arrow [shift right, from=2-2, to=1-2]
	\arrow [shift right, from=2-2, to=2-1]
\end {tikzcd}
    ]]></fr:resource-source></fr:resource></html:figure></html:li></html:ol></html:p>
                        <html:p>
  The charts, bisystems and chart-bisystem cells form a pseudo double category with the obvious composition. So do the lenses, bisystems and lens-bisystem cells. Finally, there is a notion of 3-cell given by a box whose sides are 2-cells of each kind, so that the resulting diagram in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> (with isomorphisms on two sides) commutes.
</html:p>
                        <html:p>
  The lens-bisystem double category is <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}_{\mathcal {C}^\simeq }(\mathsf {\mathbb  Arena}{\mathcal {A}}_0)]]></fr:tex> (recall that <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}{\mathcal {A}}_0 = \mathcal {A}^\mathrm {fop}]]></fr:tex>), with the action given by the functor <fr:tex display="inline"><![CDATA[T]]></fr:tex> (restricted to isomorphisms). The chart-bisystem double category is the result of taking <fr:tex display="inline"><![CDATA[\mathsf {BiSys}(\mathcal {C},\mathcal {A},T)]]></fr:tex>, a pseudocategory in double categories, and applying <fr:tex display="inline"><![CDATA[\mathsf {PsCat}((-)_h) : \mathsf {PsCat}(\mathsf {DblCat}) \to  \mathsf {PsCat}(\mathsf {Cat})]]></fr:tex> where <fr:tex display="inline"><![CDATA[(-)_h]]></fr:tex> takes the <html:em>horizontal</html:em> category of a (strict) double category.
</html:p>
                        <html:p>
  The 3-cells, of course, are the 2-cells of <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}_{(\mathcal {C}^\to )^\simeq }(\mathsf {\mathbb  Arena}(\mathcal {A})_1)]]></fr:tex>. Analogously to the above, for each class of 1-cells, there is a 
  double category with those as the objects, the two types of cell as the two morphisms, and the 3-cells as the 2-cells.
</html:p>
                        <html:p>
  All of these six double categories admit a symmetric monoidal structure.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  We can recover the ordinary category of (Moore) systems as the slice over <fr:tex display="inline"><![CDATA[I]]></fr:tex>, in the following sense:
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>6</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-2M0M/</fr:uri>
                        <fr:display-uri>efr-2M0M</fr:display-uri>
                        <fr:route>/efr-2M0M/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  There is a pullback diagram
  
  <html:figure><fr:resource hash="0899852ac4840df9e05a97fed26e440b"><fr:resource-content><html:img src="/0899852ac4840df9e05a97fed26e440b.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	{\mathsf {Sys}(T)} & {\mathsf {BiSys}(T)_1} \\
	\bullet  & {\mathsf {BiSys}(T)_0}
	\arrow [from=1-1, to=1-2]
	\arrow [from=1-1, to=2-1]
	\arrow ["\lrcorner "{anchor=center, pos=0.125}, draw=none, from=1-1, to=2-2]
	\arrow ["d"', from=1-2, to=2-2]
	\arrow ["I", from=2-1, to=2-2]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  in <fr:tex display="inline"><![CDATA[\mathsf {DblCat}]]></fr:tex></html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  In a double category <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex>, there is a "horizontal slice" 1-category having objects the horizontal maps <fr:tex display="inline"><![CDATA[A \to  B]]></fr:tex> and morphisms given by 2-cells that are identity on the left boundary, composed vertically. Similarly there is a "vertical slice". This is given by a similar pullback in <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex>---we simply do this one level up.
</html:p>
                    <html:p>
  Note that Myers' construction of the double fibration <fr:tex display="inline"><![CDATA[\mathsf {Sys}(\mathcal {C},\mathcal {A},T) \to  \mathsf {\mathbb  Arena}{\mathsf {Cat}}]]></fr:tex> in fact uses the vertical slice in this sense.
</html:p>
                    <html:p>
  This somewhat trivial observation means that any composition in <fr:tex display="inline"><![CDATA[\mathsf {BiSys}(\mathcal {C},\mathcal {A},T)]]></fr:tex> which produces 2-cell under <fr:tex display="inline"><![CDATA[I]]></fr:tex> in fact produces a morphism of systems in the ordinary sense. Replacing <fr:tex display="inline"><![CDATA[I]]></fr:tex> with another object, we may regard the slices as further-parametrized versions of <fr:tex display="inline"><![CDATA[\mathsf {Sys}(\mathcal {C},\mathcal {A},T)]]></fr:tex>.  
</html:p>
                    <html:p>
  There is essentially no difficulty in applying this to the Markov case:
</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>2025</fr:year>
                          <fr:month>6</fr:month>
                          <fr:day>20</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-W413/</fr:uri>
                        <fr:display-uri>efr-W413</fr:display-uri>
                        <fr:route>/efr-W413/</fr:route>
                        <fr:title text="\mathsf {BiSys}^M">
                          <fr:tex display="inline"><![CDATA[\mathsf {BiSys}^M]]></fr:tex>
                        </fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[(\mathcal {C}, \mathcal {A}, T)]]></fr:tex> be a stochastic dynamical systems theory. Consider the double category whose vertical category is <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> and horizontal category is <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, with commutative squares as the 2-cells (this is the <html:em>transpose</html:em> of <fr:tex display="inline"><![CDATA[\mathcal {C}^\to  \rightrightarrows  \mathcal {C}]]></fr:tex>). This carries an obvious symmetric monoidal structure, and acts on the double category of stochastic arenas <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {\mathbb  Arena}}(\mathcal {A})]]></fr:tex> via the functor <fr:tex display="inline"><![CDATA[T]]></fr:tex>. Denote by <fr:tex display="inline"><![CDATA[\mathsf {BiSys}^M(\mathcal {C},\mathcal {A},T)]]></fr:tex> the symmetric monoidal triple category induced as in <fr:link href="/efr-EPI9/" title="\mathsf {BiSys}" uri="https://erischel.com/efr-EPI9/" display-uri="efr-EPI9" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-EPI9/" display-uri="efr-EPI9" /></fr:link> by this data.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  The information contained in <fr:tex display="inline"><![CDATA[\mathsf {BiSys}^M(\mathcal {C},\mathcal {A},T)]]></fr:tex> is much as above, although the complications involved in the double category of stochastic arenas remain present.
</html:p>
                    <html:p>
  Our bisystems are reminiscent of the <html:em>energy-driven systems</html:em> of Capucci, Lynch, and Spivak (<fr:link href="/energy-driven-systems/" title="Organizing Physics with Open Energy-Driven Systems" uri="https://erischel.com/energy-driven-systems/" display-uri="energy-driven-systems" type="local">Reference <fr:contextual-number uri="https://erischel.com/energy-driven-systems/" display-uri="energy-driven-systems" /></fr:link>). Indeed, their <fr:tex display="inline"><![CDATA[\mathbb {C} \mathsf {org}]]></fr:tex> is essentially the bisystems in the (ordinary) doctrine of smooth dynamical systems. As we mentioned in the introduction, Shapiro and Spivak (<fr:link href="/shapiro-spivak-dynamic-operads/" title="Dynamic Operads, Dynamic Categories: From Deep Learning to Prediction Markets" uri="https://erischel.com/shapiro-spivak-dynamic-operads/" display-uri="shapiro-spivak-dynamic-operads" type="local">Reference <fr:contextual-number uri="https://erischel.com/shapiro-spivak-dynamic-operads/" display-uri="shapiro-spivak-dynamic-operads" /></fr:link>) have previous developed a structure <fr:tex display="inline"><![CDATA[\mathbb {O} \mathsf {rg}]]></fr:tex> which consists of the bisystems for the discrete dynamical systems doctrine (i.e <fr:tex display="inline"><![CDATA[\mathsf {Set}^\to  \to  \mathsf {Set}]]></fr:tex>). <fr:tex display="inline"><![CDATA[\mathbb {O} \mathsf {rg}]]></fr:tex> has a tremendous amount of structure coming from the representation of lenses in this doctrine as the category of polynomial functors, which can't be replicated for a general systems theory (and certainly not for a general <html:em>stochastic</html:em> systems theory).
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-9J8G/</fr:uri>
                    <fr:display-uri>efr-9J8G</fr:display-uri>
                    <fr:route>/efr-9J8G/</fr:route>
                    <fr:title text="A Stochastic Dynamical Systems Theory of Smooth Manifolds">A Stochastic Dynamical Systems Theory of Smooth Manifolds</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  In this section, as the title suggests, we construct a stochastic dynamical systems theory of smooth manifolds, with the usual tangent bundle.
  The main point is to construct a Markov category containing the smooth manifolds which is pullback-positive. We do this by considering the larger category of <html:em>diffeological spaces</html:em>. In order to make the topology work, we need to complicate the notion of diffeological space a bit, but having done so, we obtain a representable Markov category which is pullback-positive, and contains <fr:tex display="inline"><![CDATA[\mathsf {SmMfd}]]></fr:tex> as a full subcategory of the deterministic maps. A kernel <fr:tex display="inline"><![CDATA[p: M \to  N]]></fr:tex> is a Markov kernel valued in Radon measures which is weakly continuous---so induces a linear map <fr:tex display="inline"><![CDATA[C(N) \to  C(M)]]></fr:tex> taking <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex> to the function <fr:tex display="inline"><![CDATA[x \mapsto  E_{p_x}\phi ]]></fr:tex> on the spaces of continuous functions---and which furthermore smooth in the sense that this operation preserves the smooth functions. 
</html:p>
                    <html:p>
  This Markov category of "smooth stochastic maps" may be of some independent interest.
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>2</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-CBBU/</fr:uri>
                        <fr:display-uri>efr-CBBU</fr:display-uri>
                        <fr:route>/efr-CBBU/</fr:route>
                        <fr:title text="\mathsf {CartSp}">
                          <fr:tex display="inline"><![CDATA[\mathsf {CartSp}]]></fr:tex>
                        </fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathsf {CartSp}]]></fr:tex> denote the full subcategory of <fr:tex display="inline"><![CDATA[\mathsf {SmMfd}]]></fr:tex> spanned by the objects <fr:tex display="inline"><![CDATA[\mathbb {R}^n]]></fr:tex> for each <fr:tex display="inline"><![CDATA[n]]></fr:tex>. Note that <fr:tex display="inline"><![CDATA[\mathsf {CartSp}]]></fr:tex> has finite products, and is generated by the object <fr:tex display="inline"><![CDATA[\mathbb {R}]]></fr:tex> under finite products.
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>2</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-E1SZ/</fr:uri>
                        <fr:display-uri>efr-E1SZ</fr:display-uri>
                        <fr:route>/efr-E1SZ/</fr:route>
                        <fr:title text="Diffeological Space">Diffeological Space</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  A <html:em>smooth space</html:em> is a sheaf on <fr:tex display="inline"><![CDATA[\mathsf {SmMfd}]]></fr:tex> in the standard topology of open covers.
  A smooth space <fr:tex display="inline"><![CDATA[X]]></fr:tex> is a <html:em>diffeological space</html:em> if, for each <fr:tex display="inline"><![CDATA[M \in  \mathsf {SmMfd},]]></fr:tex> the map <fr:tex display="inline"><![CDATA[X(M) \to  \prod _{p \in  M} X(\{p\})]]></fr:tex> is injective.
</html:p>
                        <html:p>
  A diffeological space with underlying set <fr:tex display="inline"><![CDATA[X]]></fr:tex> is called a <html:em>diffeology</html:em> on <fr:tex display="inline"><![CDATA[X]]></fr:tex>, and consists of specifying which maps <fr:tex display="inline"><![CDATA[\mathbb {R}^n \to  X]]></fr:tex> are smooth. We call these maps <html:em>smooth plots</html:em>.
</html:p>
                        <html:p>
  Given a subset <fr:tex display="inline"><![CDATA[X' \subset  X,]]></fr:tex> there is an obvious canonical diffeology on <fr:tex display="inline"><![CDATA[X']]></fr:tex> given by taking the plots to be those functions whose image in <fr:tex display="inline"><![CDATA[X]]></fr:tex> is smooth. We call this the <html:em>subspace diffeology</html:em>.
</html:p>
                        <html:p>
  A morphism of diffeological spaces is called a <html:em>smooth map</html:em>. It is equivalently a function <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> which carries smooth plots to smooth plots.
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>2</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-DX6S/</fr:uri>
                        <fr:display-uri>efr-DX6S</fr:display-uri>
                        <fr:route>/efr-DX6S/</fr:route>
                        <fr:title text="Diffeo-Topological space">Diffeo-Topological space</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  A <html:em>diffeo-topological space</html:em> is a diffeological space <fr:tex display="inline"><![CDATA[X]]></fr:tex> equipped with a topology <fr:tex display="inline"><![CDATA[\tau ]]></fr:tex> so that all the smooth plots are continuous.
  A map of diffeo-topological spaces is a smooth map (for the diffeology) which is also continuous (for the topology).
</html:p>
                        <html:p>
  Given a subset <fr:tex display="inline"><![CDATA[X' \subset  X,]]></fr:tex> there is an obvious canonical diffeo-topology on <fr:tex display="inline"><![CDATA[X']]></fr:tex> given by taking the plots to be those functions whose image in <fr:tex display="inline"><![CDATA[X]]></fr:tex> is smooth, and equipping <fr:tex display="inline"><![CDATA[X']]></fr:tex> with the subspace topology.
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>2</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-42SC/</fr:uri>
                        <fr:display-uri>efr-42SC</fr:display-uri>
                        <fr:route>/efr-42SC/</fr:route>
                        <fr:taxon>Lemma</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  The category of diffeo-topological spaces admits all limits, given by taking the limits in topological spaces and diffeological spaces (which have the same underlying set).
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>2</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-7RS2/</fr:uri>
                        <fr:display-uri>efr-7RS2</fr:display-uri>
                        <fr:route>/efr-7RS2/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[X]]></fr:tex> be a diffeo-topological space whose underlying space is Tychonoff. Then the space of probability measures <fr:tex display="inline"><![CDATA[P(X)]]></fr:tex> has a canonical diffeology given by those plots <fr:tex display="inline"><![CDATA[f: U \to  P(X)]]></fr:tex> so that for each continuous function <fr:tex display="inline"><![CDATA[g]]></fr:tex> on <fr:tex display="inline"><![CDATA[X,]]></fr:tex> the resulting map <fr:tex display="inline"><![CDATA[u \mapsto  E_{f(u)g}]]></fr:tex> is continuous, and if <fr:tex display="inline"><![CDATA[g]]></fr:tex> is smooth, then this is smooth as well. With this diffeology, and the topology of weak convergence, <fr:tex display="inline"><![CDATA[P(X)]]></fr:tex> is a diffeo-topological space. This defines a commutative affine monad on <fr:tex display="inline"><![CDATA[\mathsf {TychDiff},]]></fr:tex> the category of such diffeo-topological spaces. 
</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>2025</fr:year><fr:month>5</fr:month><fr:day>2</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    The topology of weak convergence on <fr:tex display="inline"><![CDATA[P(X)]]></fr:tex> is such that <fr:tex display="inline"><![CDATA[A \to  P(X)]]></fr:tex> is continuous if and only if the expectation map carries continuous functions to continuous functions. But this is part of the requirement to be a smooth plot, so certainly this is a diffeo-topological space.
  </html:p>
  <html:p>
    Since the linear operator associated to <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex> under the unit <fr:tex display="inline"><![CDATA[X \to  P(X)]]></fr:tex> is merely evaluation at <fr:tex display="inline"><![CDATA[x,]]></fr:tex> the unit is clearly smooth.
    Consider <fr:tex display="inline"><![CDATA[\mu : PPX \to  PX]]></fr:tex>. To test this is smooth, let <fr:tex display="inline"><![CDATA[f: U \to  PP(X)]]></fr:tex> be a plot. We must show <fr:tex display="inline"><![CDATA[\mu  f]]></fr:tex> is a plot. So let <fr:tex display="inline"><![CDATA[v: X \to  \mathbb {R}]]></fr:tex> be a continuous (resp. smooth) function. We must show its expectation a is continuous (resp. smooth) function of <fr:tex display="inline"><![CDATA[u \in  U]]></fr:tex>. 
  </html:p>
  <html:p>
    By construction <fr:tex display="inline"><![CDATA[E(v) : PX \to  \mathbb {R}]]></fr:tex> is continuous (resp. smooth), and so since <fr:tex display="inline"><![CDATA[f]]></fr:tex> is a plot, the map <fr:tex display="inline"><![CDATA[u \mapsto  E_{f(u)}E(v)]]></fr:tex> is continuous (resp. smooth). But this is exactly what we wanted.
  </html:p>
  <html:p>
    The monad laws follow from their holding in <fr:tex display="inline"><![CDATA[\mathsf {Tych}]]></fr:tex>. Since a commutative monad is equivalently a strong monad satisfying a certain equation (which holds for this monad in <fr:tex display="inline"><![CDATA[\mathsf {Tych}]]></fr:tex> and therefore also here), it suffices to show that the strength <fr:tex display="inline"><![CDATA[P(X) \times  Y \to  P(X \times  Y)]]></fr:tex> is smooth. This follows by a completely analogous argument.
  </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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>2</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-S87B/</fr:uri>
                        <fr:display-uri>efr-S87B</fr:display-uri>
                        <fr:route>/efr-S87B/</fr:route>
                        <fr:taxon>Corollary</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  The category <fr:tex display="inline"><![CDATA[\mathsf {TychDiffStoch}]]></fr:tex> of Tychonoff diffeological spaces and Kleisli maps for the monad <fr:tex display="inline"><![CDATA[P]]></fr:tex> described in <fr:link href="/efr-7RS2/" title="https://erischel.com/efr-7RS2/" uri="https://erischel.com/efr-7RS2/" display-uri="efr-7RS2" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-7RS2/" display-uri="efr-7RS2" /></fr:link> is a pullback-positive Markov category. Its deterministic category is <fr:tex display="inline"><![CDATA[\mathsf {TychDiff}]]></fr:tex>. There is a fully faithful functor <fr:tex display="inline"><![CDATA[\mathsf {SmMfd} \to  \mathsf {TychDiff}]]></fr:tex> which preserves transverse pullbacks.
  The maps between smooth manifolds are given by weakly continuous families of Radon probability measures, so that the expectation operator carries smooth maps to smooth maps.
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>2</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-LPX2/</fr:uri>
                        <fr:display-uri>efr-LPX2</fr:display-uri>
                        <fr:route>/efr-LPX2/</fr:route>
                        <fr:taxon>Remark</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Since we describe properties of kernels in terms of their corresponding linear operator on function spaces, it would seem natural to take the function spaces as the basic object. Hence we might consider the category <fr:tex display="inline"><![CDATA[C^\infty ]]></fr:tex>-algebras with some relaxed notion of maps between them. The tricky part there is to find some reasonable class of maps so that the tensor product (coproduct) of <fr:tex display="inline"><![CDATA[C^\infty ]]></fr:tex>-algebras extends to these. (Since it is not the same as the tensor product of <fr:tex display="inline"><![CDATA[\mathbb {R}]]></fr:tex>-algebras, linear maps do not automatically extend to the tensor product). In particular, when considering kernels <fr:tex display="inline"><![CDATA[*_1 \to  X]]></fr:tex> where <fr:tex display="inline"><![CDATA[*_1]]></fr:tex> is a "fat point of order 1"---that is, functions on <fr:tex display="inline"><![CDATA[1_*]]></fr:tex> have a value at the point and a derivative---it is not clear what sort of continuity condition the derivative operation on <fr:tex display="inline"><![CDATA[C^\infty (X)]]></fr:tex> should satisfy, nor how to define this in a general way for all <fr:tex display="inline"><![CDATA[C^\infty ]]></fr:tex>-algebras. It would certainly be of interest to synthetic computational geometry to have such a Markov category, but we leave this for future work.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  We will now give an example of how to represent the training dynamics of a machine learning system using the tools developed so far.
  As discussed previously, given a parameterized function <fr:tex display="inline"><![CDATA[F: P \times  X \to  Y]]></fr:tex>, its reverse derivative naturally becomes a parameterized lens, and the composition of these describe how gradient vectors are passed around to compute an update during training. It is natural to want to compose this lens with the data-generating distribution <fr:tex display="inline"><![CDATA[I \to  X \otimes  Y]]></fr:tex>, (along with some more context describing the loss function, etc) to obtain the training dynamics of such a model. This requires a category of parameterized lenses which allows stochastic maps in the base. The goal of combining this feature with non-trivial tangent bundles was one of the original motivations for developing a theory of stochastic lenses.
</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>2025</fr:year>
                          <fr:month>5</fr:month>
                          <fr:day>3</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-IMZ3/</fr:uri>
                        <fr:display-uri>efr-IMZ3</fr:display-uri>
                        <fr:route>/efr-IMZ3/</fr:route>
                        <fr:taxon>Example</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Consider the Markov prefibration <fr:tex display="inline"><![CDATA[\mathsf {TychDiffStoch}^\to  \to  \mathsf {TychDiffStoch}]]></fr:tex>. Equip this with the section <fr:tex display="inline"><![CDATA[T(X) = X \otimes  X \xrightarrow {\pi _0} X]]></fr:tex> - this described discrete-time systems (whose update is required to be smooth in the input and present state). This is clearly a symmetric monoidal functor and thus defines a systems theory. Note that this is completely different from the ordinary tangent bundle, despite the coincidence of notation.
</html:p>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[m_1: TS_2 \otimes  X_1 \leftrightarrows  Y_1]]></fr:tex> and <fr:tex display="inline"><![CDATA[m_2: TS_2 \otimes  X_2 \leftrightarrows  Y_2]]></fr:tex> be two bisystems in this theory.
  As in <fr:link href="/efr-SREZ/" title="Open Games with External Choice" uri="https://erischel.com/efr-SREZ/" display-uri="efr-SREZ" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-SREZ/" display-uri="efr-SREZ" /></fr:link>, we may define a parameterized lens <fr:tex display="inline"><![CDATA[(TS_1 \& TS_2) \otimes  (X_1 \oplus  X_2) \leftrightarrows  (Y_1 \oplus  X_2)]]></fr:tex>, denoting by <fr:tex display="inline"><![CDATA[\oplus ]]></fr:tex> the coproduct in lenses, and by <fr:tex display="inline"><![CDATA[\&]]></fr:tex> the Markov structure defined in <fr:link href="/efr-FT8J/" title="https://erischel.com/efr-FT8J/" uri="https://erischel.com/efr-FT8J/" display-uri="efr-FT8J" type="local">Corollary <fr:contextual-number uri="https://erischel.com/efr-FT8J/" display-uri="efr-FT8J" /></fr:link>. Observe that <fr:tex display="inline"><![CDATA[TS_1 \& TS_2]]></fr:tex> is simply the indexed set <fr:tex display="inline"><![CDATA[(S_1 \coprod  S_2) \otimes  S_1 \otimes  S_2 \to  S_1\otimes  S_2]]></fr:tex>. There is an obvious indexed map from this to <fr:tex display="inline"><![CDATA[T(S_1 \otimes  S_2) = S_1 \otimes  S_2 \otimes  S_1 \otimes  S_2]]></fr:tex>, given by <fr:tex display="inline"><![CDATA[(\operatorname {inl} s_1', s_1,s_2) \mapsto  (s_1', s_2, s_1, s_2)]]></fr:tex> and <fr:tex display="inline"><![CDATA[(\operatorname {inr} s_2', s_1, s_2) \mapsto  (s_1,s_2',s_1,s_2)]]></fr:tex>. In words, we receive an update either to the <fr:tex display="inline"><![CDATA[S]]></fr:tex>-state or to the <fr:tex display="inline"><![CDATA[S']]></fr:tex>-state. We apply this update to the relevant state and leave the other alone. This defines a lens <fr:tex display="inline"><![CDATA[T(S_1 \otimes  S_2) \leftrightarrows  T(S_1) \& T(S_2)]]></fr:tex>, which we may compose with the above to obtain a bisystem <fr:tex display="inline"><![CDATA[T(S_1 \otimes  S_2) \otimes  (X_1 \oplus  X_2) \leftrightarrows  Y_1 \oplus  Y_2]]></fr:tex>. Let us denote this by <fr:tex display="inline"><![CDATA[m_1 \oplus  m_2]]></fr:tex>. 
</html:p>
                        <html:p>
  This has very much the same flavor as the external choice for open games, although we will not develop the theory of this operation in detail here.
</html:p>
                        <html:p>
  Now, given a smooth (deterministic) map <fr:tex display="inline"><![CDATA[F: P \times  X \to  Y]]></fr:tex>, where <fr:tex display="inline"><![CDATA[P,X,Y]]></fr:tex> are smooth manifolds (not merely diffeo-toplogical spaces), we obtain a lens <fr:tex display="inline"><![CDATA[T^*(F): {T^*P \choose  P} \otimes  {T^*X \choose  X} \leftrightarrows  {T^*Y \choose  Y}]]></fr:tex>, where <fr:tex display="inline"><![CDATA[T^*(-)]]></fr:tex> denotes the cotangent bundle. (This does not, prima facie, make sense for a general diffeo-topological space).
</html:p>
                        <html:p>
  Let us take as given some family of lenses <fr:tex display="inline"><![CDATA[T(S) = {S \otimes  S \choose  S} \leftrightarrows  {T^*S \choose  S}]]></fr:tex> for various <fr:tex display="inline"><![CDATA[S]]></fr:tex>. Such an operation amounts to choosing a way of updating <fr:tex display="inline"><![CDATA[s \in  S]]></fr:tex> given a cotangent vector---hence we can see it as an optimization algorithm. One example of such would be gradient descent, which given a choice of Riemann structure on <fr:tex display="inline"><![CDATA[S]]></fr:tex>, takes a step of a given length in the direction which most quickly decreases the given covector.
</html:p>
                        <html:p>
  (It should be noted that there are more complicated optimization strategies which don't fit this particular pattern - for example, <html:em>momentum</html:em> algorithms have to maintain some extra internal state other than <fr:tex display="inline"><![CDATA[s \in  S]]></fr:tex>. But let's stick with this pattern for this example). Note also that we're not assuming the optimizers are a natural transformation or anything like that.
</html:p>
                        <html:p>
  Now we are ready to build the neural network architecture known as a generative adversarial network, or GAN (<fr:link href="/gan-paper/" title="Generative Adversarial Networks" uri="https://erischel.com/gan-paper/" display-uri="gan-paper" type="local">Reference <fr:contextual-number uri="https://erischel.com/gan-paper/" display-uri="gan-paper" /></fr:link>). Let us first describe the idea. Our goal is to generate additional samples from some distribution, given a set of existing samples---for example, our goal may be to generate more pictures in the same style as an existing corpus. Suppose our data is of type <fr:tex display="inline"><![CDATA[X]]></fr:tex>, and let <fr:tex display="inline"><![CDATA[d: I \to  X]]></fr:tex> be the data distribution. We fix some <html:em>latent distribution</html:em> <fr:tex display="inline"><![CDATA[\lambda : I \to  L]]></fr:tex>, where <fr:tex display="inline"><![CDATA[L]]></fr:tex> is any space of our choice---usually, <fr:tex display="inline"><![CDATA[L]]></fr:tex> is <fr:tex display="inline"><![CDATA[\mathbb {R}^n]]></fr:tex> and <fr:tex display="inline"><![CDATA[\lambda ]]></fr:tex> is a Gaussian. Finally we choose two neural networks, the <html:em>generator</html:em> <fr:tex display="inline"><![CDATA[G: P_G \otimes  L \to  X]]></fr:tex>, and the <html:em>discriminator</html:em> <fr:tex display="inline"><![CDATA[D: P_D \otimes  X \to  \mathbb {R}]]></fr:tex>. The goal of the discriminator is to discriminate real samples from the data from generated samples, by providing a low value on the generated samples and a high value on the true samples.
</html:p>
                        <html:p>
  The training process now goes as follows: for each step of training, we either sample from the latent distribution, and have the generator use this to generate a sample, or draw a sample from the data distribution (choosing between these with some probability <fr:tex display="inline"><![CDATA[p]]></fr:tex>). Then in either case, we have the discriminator score the generated sample. If the sample was generated by the generator, the discriminator's loss is equal to its output, otherwise it is equal to <fr:tex display="inline"><![CDATA[-1]]></fr:tex> times its output. We update the discriminator according to the gradient of this loss (minimizing it), and update the generator (if we are in the branch where it was run) according to the negative of the gradient of this loss with respect to the generator parameters---this amounts to doing a gradient descent update on the generator for the negative of the discriminator loss.
</html:p>
                        <html:p>
  We can represent this schematically using the following <html:em>tape diagram</html:em> (see <fr:link href="/tape-diags-monoidal-monads/" title="Tape Diagrams for Monoidal Monads" uri="https://erischel.com/tape-diags-monoidal-monads/" display-uri="tape-diags-monoidal-monads" type="local">Reference <fr:contextual-number uri="https://erischel.com/tape-diags-monoidal-monads/" display-uri="tape-diags-monoidal-monads" /></fr:link>):
</html:p>
                        <html:p>
                          <html:figure>
                            <fr:resource hash="5bf26e6cfd93cd6cb88b878dc6e64734">
                              <fr:resource-content>
                                <html:img src="/5bf26e6cfd93cd6cb88b878dc6e64734.svg" />
                              </fr:resource-content>
                              <fr:resource-source type="latex" part="preamble"><![CDATA[
  \usepackage {/Users/eigil/Projects/eigil-forest/assets/tikzit}
\usetikzlibrary {backgrounds}
\usetikzlibrary {arrows}
\usetikzlibrary {shapes,shapes.geometric,shapes.misc}
\usepackage {circuitikz}
]]></fr:resource-source>
                              <fr:resource-source type="latex" part="body"><![CDATA[


  
\tikzstyle {System}=[fill=white, draw=black, shape=rectangle, minimum height=1cm]
\tikzstyle {Operation}=[fill=white, draw=black, shape=circle]
\tikzstyle {State}=[fill=white, draw=black, shape=isosceles triangle, shape border rotate=180]
\tikzstyle {ground}=[fill=white, draw=black, shape=ground, rotate=270]

\tikzstyle {Arrow}=[->]
\tikzstyle {Tape boundary}=[-, draw={rgb,255: red,191; green,0; blue,64}]

\resizebox {\textwidth }{!}{
\begin {tikzpicture}[scale=0.5]
	\begin {pgfonlayer}{nodelayer}
		\node  [style=State] (0) at (-5.5, -2.5) {Data};
		\node  [style=State] (2) at (-10, 5.25) {Latent};
		\node  [style=System] (4) at (-4.5, 5.25) {Generator};
		\node  [style=State] (6) at (-4.5, 3) {+1};
		\node  [style=State] (7) at (-5.5, -5.25) {-1};
		\node  [style=System] (8) at (4.75, 0.25) {};
		\node  [style=System] (9) at (4.75, 0.25) {Discriminator};
		\node  [style=System] (10) at (9.25, 0.25) {Loss};
		\node  [style=none] (11) at (-3.75, 5) {};
		\node  [style=none] (12) at (-1.75, 4.75) {};
		\node  [style=none] (13) at (1.5, 0.25) {};
		\node  [style=none] (14) at (3.25, 0.5) {};
		\node  [style=none] (15) at (5, 0) {};
		\node  [style=none] (16) at (5, 0.5) {};
		\node  [style=none] (17) at (9, 0) {};
		\node  [style=none] (18) at (9, 0.5) {};
		\node  [style=none] (19) at (6.5, -1) {};
		\node  [style=none] (20) at (0.5, -1) {};
		\node  [style=none] (21) at (0.5, 0.5) {};
		\node  [style=none] (22) at (0.5, 1.25) {};
		\node  [style=none] (23) at (3.75, 0) {};
		\node  [style=none] (24) at (3.75, 0.5) {};
		\node  [style=none] (25) at (9, -0.5) {};
		\node  [style=none] (26) at (-3.75, 5.5) {};
		\node  [style=none] (27) at (-9.5, 5) {};
		\node  [style=none] (29) at (-5.25, 5) {};
		\node  [style=none] (30) at (-5.25, 5.5) {};
		\node  [style=none] (31) at (-7.5, 5) {};
		\node  [style=none] (32) at (-7, 5.5) {};
		\node  [style=none] (33) at (-7.5, 5) {};
		\node  [style=System] (34) at (-4.5, 8.25) {Optimizer};
		\node  [style=none] (35) at (-4.75, 8) {};
		\node  [style=none] (36) at (-4.75, 5.5) {};
		\node  [style=none] (37) at (-4.75, 6.75) {};
		\node  [style=none] (38) at (-4.25, 5.5) {};
		\node  [style=none] (39) at (-4.25, 6.75) {};
		\node  [style=none] (40) at (-4.25, 8) {};
		\node  [style=none] (41) at (4.5, 0.5) {};
		\node  [style=System] (42) at (4.75, 3.25) {Optimizer};
		\node  [style=none] (43) at (4.5, 3) {};
		\node  [style=none] (44) at (4.5, 1.75) {};
		\node  [style=none] (45) at (5, 2) {};
		\node  [style=none] (46) at (5, 3) {};
		\node  [style=none] (47) at (4.5, 3.5) {};
		\node  [style=none] (48) at (5, 3.5) {};
		\node  [style=none] (49) at (4.5, 7.5) {};
		\node  [style=none] (50) at (5, 8) {};
		\node  [style=none] (51) at (4.5, 10.25) {};
		\node  [style=none] (52) at (5, 10.25) {};
		\node  [style=none] (53) at (-4.75, 11.25) {};
		\node  [style=none] (54) at (-4.25, 10.75) {};
		\node  [style=none] (55) at (-4.75, 13.25) {};
		\node  [style=none] (56) at (-4.25, 13.25) {};
		\node  [style=none] (57) at (-4.75, 8.5) {};
		\node  [style=none] (58) at (-4.25, 8.5) {};
		\node  [style=none] (59) at (-2, -0.25) {};
		\node  [style=none] (60) at (-15, -0.25) {};
		\node  [style=none] (61) at (-10.25, 10) {};
		\node  [style=none] (62) at (9.25, 2.75) {};
		\node  [style=none] (63) at (1, 8.25) {};
		\node  [style=none] (64) at (9, -3.75) {};
		\node  [style=none] (65) at (-0.75, -7) {};
		\node  [style=none] (66) at (-6.5, -7) {};
		\node  [style=none] (67) at (-2, 0.25) {};
		\node  [style=none] (68) at (-15, 0.25) {};
		\node  [style=none] (69) at (13, -2.25) {};
		\node  [style=none] (70) at (13, 1.75) {};
		\node  [style=none] (71) at (-15, 1.5) {};
		\node  [style=none] (72) at (-15, -1.5) {};
		\node  [style=State] (73) at (-16, 0) {Branch};
		\node  [style=ground] (74) at (-2.75, -1.5) {};
		\node  [style=none] (75) at (-1.25, -1) {};
		\node  [style=none] (76) at (-19.25, -1.5) {};
		\node  [style=none] (77) at (-19.25, 1.5) {};
		\node  [style=ground] (78) at (-7, 5.5) {};
	\end {pgfonlayer}
	\begin {pgfonlayer}{edgelayer}
		\draw  [style=Arrow] (15.center) to (17.center);
		\draw  [style=Arrow] (18.center) to (16.center);
		\draw  [bend left=45, looseness=0.75] (6) to (20.center);
		\draw  [bend right, looseness=1.50] (7) to (20.center);
		\draw  [bend left, looseness=1.25] (11.center) to (21.center);
		\draw  [bend right, looseness=1.25] (0) to (21.center);
		\draw  [style=Arrow] (21.center) to (13.center);
		\draw  [style=Arrow] (20.center) to (19.center);
		\draw  [style=Arrow, bend right, looseness=1.25] (22.center) to (12.center);
		\draw  (22.center) to (14.center);
		\draw  (13.center) to (23.center);
		\draw  [in=-180, out=0, looseness=1.25] (19.center) to (25.center);
		\draw  (12.center) to (26.center);
		\draw  [style=Arrow] (27.center) to (33.center);
		\draw  [style=Arrow] (30.center) to (32.center);
		\draw  (33.center) to (29.center);
		\draw  [style=Arrow] (43.center) to (44.center);
		\draw  [style=Arrow] (16.center) to (45.center);
		\draw  (45.center) to (46.center);
		\draw  (44.center) to (41.center);
		\draw  [style=Arrow] (48.center) to (50.center);
		\draw  [style=Arrow] (51.center) to (49.center);
		\draw  (50.center) to (52.center);
		\draw  (49.center) to (47.center);
		\draw  [style=Arrow] (35.center) to (37.center);
		\draw  [style=Arrow] (38.center) to (39.center);
		\draw  [style=Arrow] (58.center) to (54.center);
		\draw  [style=Arrow] (55.center) to (53.center);
		\draw  (53.center) to (57.center);
		\draw  (54.center) to (56.center);
		\draw  (39.center) to (40.center);
		\draw  (37.center) to (36.center);
		\draw  [style=Tape boundary] (60.center) to (59.center);
		\draw  [style=Tape boundary] (66.center) to (65.center);
		\draw  [style=Tape boundary, bend right=15] (65.center) to (64.center);
		\draw  [style=Tape boundary] (68.center) to (67.center);
		\draw  [style=Tape boundary, bend right=90, looseness=2.25] (59.center) to (67.center);
		\draw  [style=Tape boundary, in=150, out=0] (61.center) to (63.center);
		\draw  [style=Tape boundary, in=135, out=-30] (63.center) to (62.center);
		\draw  [style=Tape boundary, in=-180, out=-30] (62.center) to (70.center);
		\draw  [style=Tape boundary, in=-180, out=30] (64.center) to (69.center);
		\draw  [style=Tape boundary, bend right=270, looseness=1.75] (60.center) to (68.center);
		\draw  [style=Tape boundary, in=0, out=180, looseness=0.75] (66.center) to (72.center);
		\draw  [style=Tape boundary, in=0, out=-180, looseness=0.50] (61.center) to (71.center);
		\draw  [style=Arrow, bend left=15, looseness=1.75] (22.center) to (75.center);
		\draw  [bend left=15] (75.center) to (74);
		\draw  [style=Tape boundary] (77.center) to (71.center);
		\draw  [style=Tape boundary] (76.center) to (72.center);
		\draw  (32.center) to (78);
	\end {pgfonlayer}
\end {tikzpicture}}



]]></fr:resource-source>
                            </fr:resource>
                          </html:figure>
                        </html:p>
                        <html:p>
  The two "tapes" branching off at the start represent two maps (bisystems) composed by <fr:tex display="inline"><![CDATA[\oplus ]]></fr:tex>, while the backwards wires indicate the flow of the gradients. The ground symbol indicates a value being discarded. Note that the theory of tape diagrams has only been developed formally for <html:em>distributive</html:em> categories, and for essentilly the same reason as in <fr:link href="/efr-SREZ/" title="Open Games with External Choice" uri="https://erischel.com/efr-SREZ/" display-uri="efr-SREZ" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-SREZ/" display-uri="efr-SREZ" /></fr:link>, we do not have distributivity in this case. However, the interpretation of this diagram is still unambiguous---distributivity is required to make tape diagrams <html:em>complete</html:em>, not to make them sound. Concretely, if we tried to represent the tensoring of this system with another system, we would have no way of doing it, but if the category was distributive we could do so by adding this additional system to each of the branches. Still, the figure is best viewed as a visual aid rather than a formal representation.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                  </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 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>2025</fr:year>
              <fr:month>6</fr:month>
              <fr:day>20</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/efr-RUTY/</fr:uri>
            <fr:display-uri>efr-RUTY</fr:display-uri>
            <fr:route>/efr-RUTY/</fr:route>
            <fr:title text="Generative Adversarial Network">Generative Adversarial Network</fr:title>
            <fr:taxon>Example</fr:taxon>
          </fr:frontmatter>
          <fr:mainmatter>
            <html:p>
  The idea of a <html:em>generative adversarial network,</html:em> or GAN (<fr:link href="/gan-paper/" title="Generative Adversarial Networks" uri="https://erischel.com/gan-paper/" display-uri="gan-paper" type="local">Reference <fr:contextual-number uri="https://erischel.com/gan-paper/" display-uri="gan-paper" /></fr:link>), is to generate synthetic data which appears to be drawn from the same distribution as a given dataset. The basic idea is to train two networks in parallel: a discriminator, which is trained to distinguish the generator's output from the real dataset, and a generator, which is trained to fool the discriminator. In each training step, one of two things happen:
  <html:ol><html:li>
      We take a sample from the dataset, have the discriminator score it, and update it according to gradient descent to maximize the score.
    </html:li>
    <html:li>
      We take a sample from the <html:em>latent distribution</html:em>, run the generator on it, then run the discriminator on the output. Then we update the discriminator with gradient descent to <html:em>minimize</html:em> the score, and update the generator with gradient descent to <html:em>maximize</html:em> the score in this case.
    </html:li></html:ol></html:p>
            <html:p>
  A GAN is naturally thought of as a sort of game played between two players, and hence has been an interesting example to study the parallels between the algebraic structure of machine learning and open games. However, since the game is essentially probabilistic, modeling this requires a category of lenses which contains both smooth manifolds, their tangent bundles and derivatives, as well as a good supply of stochastic maps. Additionally, the most natural way to model a GAN is as a morphism on a coproduct of spaces - hence we want coproducts in the lens category as well. The systems doctrine constructed in this section has all these features.
</html:p>
            <html:p>
  Fix a distribution <fr:tex display="inline"><![CDATA[\mu _D]]></fr:tex> on <fr:tex display="inline"><![CDATA[\mathbb {R}^N]]></fr:tex>, the <html:em>data distribution</html:em>. Typically this will be a discrete distribution given by a dataset, perhaps of images.
  Also fix a <html:em>latent distribution</html:em> <fr:tex display="inline"><![CDATA[\mu _L]]></fr:tex> on <fr:tex display="inline"><![CDATA[\mathbb {R}^L]]></fr:tex>. Typically this will be something like an uncorrelated Gaussian.
  Choose a <html:em>generator network</html:em> <fr:tex display="inline"><![CDATA[G: \mathbb {R}^{P_g} \times  \mathbb {R}^L \to  \mathbb {R}^N]]></fr:tex> and a <html:em>discriminator network</html:em> <fr:tex display="inline"><![CDATA[D: \mathbb {R}^{P_d} \times  \mathbb {R}^N \to  [0,1]]]></fr:tex>. In practice these are given by neural networks, but for now we require them simply to be smooth maps.
  (Actually, neural networks with ReLU activations are not smooth, but we ignore this subtlety for now)
</html:p>
            <html:p>
  Finally choose optimization algorithms <fr:tex display="inline"><![CDATA[T\mathbb {R}^{P_g} \leftrightarrows  T^*\mathbb {R}^{P_g}]]></fr:tex> and <fr:tex display="inline"><![CDATA[T\mathbb {R}^{P_d} \leftrightarrows  T^*\mathbb {R}^{P_d}]]></fr:tex> for the generator and discriminator networks.
  Given this data, we obtain a bisystem <fr:tex display="inline"><![CDATA[{T^*\mathbb {R}^N + T^*\mathbb {R}^L \choose  \mathbb {R}^N + \mathbb {R}^L} \nrightarrow  {* \choose  \mathbb {R}^N \times  [0,1]}]]></fr:tex> with parameter space <fr:tex display="inline"><![CDATA[\mathbb {R}^{P_g} \times  \mathbb {R}^{P_d}]]></fr:tex> as follows:
  <html:ol><html:li>
      First, there is a morphism <fr:tex display="inline"><![CDATA[\mathbb {R}^{P_g} \times  (\mathbb {R}^N + \mathbb {R}^L) \to  \mathbb {R}^N + \mathbb {R}^N]]></fr:tex> given by <fr:tex display="inline"><![CDATA[(_, \iota _0(d)) \mapsto  d, (p_g, \iota _1(l)) \mapsto  G(p_g,l)]]></fr:tex>.
      Applying <fr:tex display="inline"><![CDATA[T^*]]></fr:tex> to this, and composing with the optimization algorithm for the generator we obtain a bisystem <fr:tex display="inline"><![CDATA[T^*(\mathbb {R}^N + \mathbb {R}^L) \to  T^*\mathbb {R}^N + T^*\mathbb {R}^N]]></fr:tex> with parameter space <fr:tex display="inline"><![CDATA[\mathbb {R}^{P_g}]]></fr:tex>. Call this <fr:tex display="inline"><![CDATA[\hat {G}]]></fr:tex></html:li>
    <html:li>
      Second, there is an obvious morphism <fr:tex display="inline"><![CDATA[\mathbb {R}^{P_d} \times  (\mathbb {R}^N + \mathbb {R}^N) \to  ([0,1] + [0,1])]]></fr:tex> which simply runs the discriminator in both cases.
      Taking the reverse derivative of this, and applying the optimization algorithm for the generator, we obtain a bisystem <fr:tex display="inline"><![CDATA[T^*\mathbb {R}^N + T^*\mathbb {R}^N \to  T^*[0,1] + T^*[0,1]]]></fr:tex>. Call this <fr:tex display="inline"><![CDATA[\hat {D}]]></fr:tex></html:li>
    <html:li>
      Now there is an endomorphism lens <fr:tex display="inline"><![CDATA[T^*\mathbb {R}^N \leftrightarrows  T^*\mathbb {R}^N]]></fr:tex> which is the identity <fr:tex display="inline"><![CDATA[1_{\mathbb {R}^N}]]></fr:tex> in the forwards direction, and multiplication by <fr:tex display="inline"><![CDATA[-1]]></fr:tex> in the backwards direction. Call this <fr:tex display="inline"><![CDATA[N]]></fr:tex>.
    </html:li>
    <html:li>
      The composite <fr:tex display="inline"><![CDATA[\hat {G} ; 1 + N ; \hat {N}]]></fr:tex> is now a bisystem <fr:tex display="inline"><![CDATA[T^*(\mathbb {R}^N + \mathbb {R}^L) \to  T^*[0,1] + T^*[0,1]]]></fr:tex>. Finally, we compose this with the covector field <fr:tex display="inline"><![CDATA[[0,1] \to  T^*[0,1]]]></fr:tex> given by <fr:tex display="inline"><![CDATA[d \mathrm {id}]]></fr:tex> in the first branch, and by <fr:tex display="inline"><![CDATA[- d \mathrm {id}]]></fr:tex> in the second branch.
    </html:li></html:ol>
  <html:p>
    The semantics of this when given a data point <fr:tex display="inline"><![CDATA[x \in  \mathbb {R}^N]]></fr:tex> is to run the discriminator, then update according to the gradient of the output---that is, to maximize the output. Given a latent sample <fr:tex display="inline"><![CDATA[x \in  \mathbb {R}^L]]></fr:tex>, we first run the generator, then the discriminator. The discriminator is now updated in the opposite direction---to <html:em>minimize</html:em> the output on this value, while the generator is updated in the positive direction---to maximize the value of its generation on this sample.
  </html:p>
  <html:p>
    So far we have worked inside the doctrine of smooth dynamical systems. However, passing into the stochastic doctrine just described, we may precompose these bisystems with the map <fr:tex display="inline"><![CDATA[I \to  \mathbb {R}^N + \mathbb {R}^L]]></fr:tex> given by sampling from <fr:tex display="inline"><![CDATA[\mu _D]]></fr:tex> with probability <fr:tex display="inline"><![CDATA[p]]></fr:tex> and from <fr:tex display="inline"><![CDATA[\mu _L]]></fr:tex> with probability <fr:tex display="inline"><![CDATA[1-p]]></fr:tex>. The resulting dynamical system describes the <html:em>training dynamics</html:em> of the GAN.
  </html:p>
  <html:p>
    (One can also consider more complicated versions of this, where the number <fr:tex display="inline"><![CDATA[p]]></fr:tex> is controlled by another dynamical system. One can also embed a controller which weighs the gradients sent to the two networks, so that for example if the discriminator is too good, one slows down its learning rate compared to the generator for a while.)
  </html:p></html:p>
          </fr:mainmatter>
        </fr:tree>
        <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>2025</fr:year>
              <fr:month>5</fr:month>
              <fr:day>6</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/efr-POD2/</fr:uri>
            <fr:display-uri>efr-POD2</fr:display-uri>
            <fr:route>/efr-POD2/</fr:route>
            <fr:title text="Preliminaries">Preliminaries</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>2025</fr:year>
                  <fr:month>5</fr:month>
                  <fr:day>6</fr:day>
                </fr:date>
                <fr:title text="Introduction">Introduction</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
    We will begin by reviewing some theory that plays a key role in this thesis. With a very few exceptions, nothing here is novel, but we find it useful to include these here---both for the convenience of the reader, to familiarize them with theory that we will make constant reference to, but also to set the stage for our contributions.
  </html:p>
                <html:p>
    First, the theory of (Grothendieck) fibrations. There is far too much to say about these for such a brief space, so we will limit ourselves to what we need for the rest of the thesis, especially for the section on Markov fibrations.
  </html:p>
                <html:p>
    Second, we will give an overview of <html:em>optics</html:em> and <html:em>lenses</html:em>, in a bit more detail than the introduction. We have already given a review of the sources there, but we will find it useful to put this on proper footing.
  </html:p>
                <html:p>
    Next, we will review the theory of Markov categories. This is a synthetic approach to probability theory, introduced by Fritz <fr:link href="/fritz-synthetic-markov-cats/" title="A synthetic approach to Markov kernels, conditional independence and theorems on sufficient statistics" uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" type="local">Reference <fr:contextual-number uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" /></fr:link>, and since developed further by many collaborators, including the author. Here we note the only exceptions to the claim that nothing in this chapter is novel. First, the notion of <html:em>representable Markov category</html:em> <fr:link href="/efr-38FR/" title="Representable Markov category" uri="https://erischel.com/efr-38FR/" display-uri="efr-38FR" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-38FR/" display-uri="efr-38FR" /></fr:link> was introduced by Fritz, Gonda, Perrone, and the author in <fr:link href="/fritz-gonda-perrone-rischel-rep/" title="Representable Markov categories and comparison of statistical experiments in categorical probability" uri="https://erischel.com/fritz-gonda-perrone-rischel-rep/" display-uri="fritz-gonda-perrone-rischel-rep" type="local">Reference <fr:contextual-number uri="https://erischel.com/fritz-gonda-perrone-rischel-rep/" display-uri="fritz-gonda-perrone-rischel-rep" /></fr:link>. We will not give a thorough treatment here, but since representable Markov categories are so ubiquitous, we will frequently note how different properties or structure on a Markov category relates to representability. We will also introduce a few new concepts which play a role in the theory of Markov fibrations in <fr:link href="/efr-O088/" title="Markov Fibrations and Stochastic Lenses" uri="https://erischel.com/efr-O088/" display-uri="efr-O088" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-O088/" display-uri="efr-O088" /></fr:link>. These are of no great independent interest, as far as we can tell, nor are they difficult, but this seemed the best place to put them.
  </html:p>
                <html:p>
    Finally, we give a brief review of Myers' <html:em>categorical systems theory</html:em>. This will mainly be to set the stage for <fr:link href="/efr-ZRUZ/" title="Categories of stochastic dynamical systems" uri="https://erischel.com/efr-ZRUZ/" display-uri="efr-ZRUZ" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-ZRUZ/" display-uri="efr-ZRUZ" /></fr:link>, where we develop a triple categorical version of the theory.
  </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>2025</fr:year>
                  <fr:month>4</fr:month>
                  <fr:day>28</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-3AEA/</fr:uri>
                <fr:display-uri>efr-3AEA</fr:display-uri>
                <fr:route>/efr-3AEA/</fr:route>
                <fr:title text="Fibrations">Fibrations</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  In category theory, there are many families of categories indexed by the objects of some other category. For example, for each commutative ring, we have the category <fr:tex display="inline"><![CDATA[\mathsf {Mod}(R)]]></fr:tex>.
  Given a ring homomorphism <fr:tex display="inline"><![CDATA[\phi : R \to  S,]]></fr:tex> there is an induced <html:em>restriction of scalars</html:em> functor <fr:tex display="inline"><![CDATA[\phi ^*: \mathsf {Mod}(S) \to  \mathsf {Mod}(R)]]></fr:tex> (given simply by composing the module structure by <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex>), and this is (contravariant) functorial, assembling into a functor <fr:tex display="inline"><![CDATA[\mathsf {Mod}(-): \mathsf {CRing}^\mathrm {op} \to  \mathsf {Cat}]]></fr:tex>.
</html:p>
                <html:p>
  In most cases, one can not expect strict functoriality as above. From an abstract point of view, it makes sense that one should really ask only for a natural isomorphism <fr:tex display="inline"><![CDATA[\phi ^*\psi ^* \simeq  (\psi \phi )^*]]></fr:tex>, up to some coherence conditions. This assembles into a so-called <html:em>pseudofunctor</html:em> into the 2-category <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex>.
</html:p>
                <html:p>
  From a concrete point of view, there are many natural families of categories which arise as pseudofunctors. For example, restriction of scalars always has a left adjoint (extension of scalars, given by <fr:tex display="inline"><![CDATA[M \mapsto  M \otimes _R S,]]></fr:tex> viewing <fr:tex display="inline"><![CDATA[S]]></fr:tex> as an <fr:tex display="inline"><![CDATA[R]]></fr:tex>-module via the map <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex>)---since adjoints compose (that is, if <fr:tex display="inline"><![CDATA[F \vdash  G]]></fr:tex> and <fr:tex display="inline"><![CDATA[F' \vdash  G',]]></fr:tex> then <fr:tex display="inline"><![CDATA[FF' \vdash  G'G]]></fr:tex>) this must be functorial up to natural isomorphism, but this is the best we can promise. 
</html:p>
                <html:p>
  To avoid the higher categorical algebra involved in working with pseudofunctors, Grothendieck introduced the notion of <html:em>fibration</html:em> in <fr:link href="/grothendieck-descent-fibrations/" title="Descent technique and existence theorems in algebraic geometry. I. Generalities. Descent by faithfully flat morphisms" uri="https://erischel.com/grothendieck-descent-fibrations/" display-uri="grothendieck-descent-fibrations" type="local">Reference <fr:contextual-number uri="https://erischel.com/grothendieck-descent-fibrations/" display-uri="grothendieck-descent-fibrations" /></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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>28</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-Z7EF/</fr:uri>
                    <fr:display-uri>efr-Z7EF</fr:display-uri>
                    <fr:route>/efr-Z7EF/</fr:route>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[p: \mathcal {D} \to  \mathcal {C}]]></fr:tex> be a functor. Given <fr:tex display="inline"><![CDATA[X \in  \mathcal {C}]]></fr:tex>, write <fr:tex display="inline"><![CDATA[\mathcal {D}_X]]></fr:tex> for the (strict) pullback <fr:tex display="inline"><![CDATA[\{x\} \times _\mathcal {C} \mathcal {D}]]></fr:tex>. Explicitly, this consists of the objects in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> with <fr:tex display="inline"><![CDATA[p(A) = X]]></fr:tex> and the morphisms with <fr:tex display="inline"><![CDATA[p(f) = 1_X]]></fr:tex>.
  
</html:p>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[f: X \to  Y \in  \mathcal {C}]]></fr:tex> be a morphism. 
</html:p>
                    <html:ol><html:li>
    A map <fr:tex display="inline"><![CDATA[\bar {f}: \bar {X} \to  \bar {Y}]]></fr:tex> with <fr:tex display="inline"><![CDATA[p(\bar {f}) = f]]></fr:tex> is <html:em>locally Cartesian</html:em> if for each <fr:tex display="inline"><![CDATA[\bar {X}']]></fr:tex> with <fr:tex display="inline"><![CDATA[p(\bar {X}') = X]]></fr:tex>, postcomposition with <fr:tex display="inline"><![CDATA[\bar {f}]]></fr:tex> induces a bijection 
    <fr:tex display="block"><![CDATA[\{g: \bar {X}' \to  \bar {X} \mid  p(g) = 1_X\} \xrightarrow {\sim } \{g' : \bar {X'} \to  \bar {Y} \mid  p(g') = f\}]]></fr:tex></html:li>
  <html:li>
    A map is <html:em>Cartesian</html:em> if for every <fr:tex display="inline"><![CDATA[g: Z \to  X]]></fr:tex> and <fr:tex display="inline"><![CDATA[\bar {Z}]]></fr:tex> with <fr:tex display="inline"><![CDATA[p(\bar {Z}) = Z,]]></fr:tex> there is a bijection
    <fr:tex display="block"><![CDATA[\{\bar {g} : \bar {Z} \to  \bar {X} \mid  p(\bar {g}) = g\} \to  \{\bar {g}' : \bar {Z} \to  \bar {Y} \mid  p(\bar {g'} = fg)\},]]></fr:tex>
    note that every Cartesian map is locally Cartesian (take <fr:tex display="inline"><![CDATA[g = 1_X]]></fr:tex>)
  </html:li>
  <html:li><fr:tex display="inline"><![CDATA[p]]></fr:tex> is a <html:em>Grothendieck fibration</html:em> (or just fibration) if, for every <fr:tex display="inline"><![CDATA[\bar {Y} \in  \mathcal {D}]]></fr:tex> such that <fr:tex display="inline"><![CDATA[p(\bar {Y}) = Y]]></fr:tex>, there exists a Cartesian map <fr:tex display="inline"><![CDATA[\bar {f}: \bar {X} \to  \bar {Y}]]></fr:tex> (for some <fr:tex display="inline"><![CDATA[\bar {Y}]]></fr:tex>) so that <fr:tex display="inline"><![CDATA[p(\bar {f}) = f]]></fr:tex></html:li></html:ol>
                  </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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>28</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-Z4L4/</fr:uri>
                    <fr:display-uri>efr-Z4L4</fr:display-uri>
                    <fr:route>/efr-Z4L4/</fr:route>
                    <fr:taxon>Lemma</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p><fr:tex display="inline"><![CDATA[p: \mathcal {D} \to  \mathcal {C}]]></fr:tex> is a Grothendieck fibration if and only if every <fr:tex display="inline"><![CDATA[f]]></fr:tex> admits a locally Cartesian lift, and the class of locally Cartesian morphisms in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> is stable under composition.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>28</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-QHXA/</fr:uri>
                    <fr:display-uri>efr-QHXA</fr:display-uri>
                    <fr:route>/efr-QHXA/</fr:route>
                    <fr:taxon>Theorem</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> be a Grothendieck fibration. For every <fr:tex display="inline"><![CDATA[f: X \to  Y, \bar {Y} \in  \mathcal {D}_Y,]]></fr:tex> select a Cartesian lift <fr:tex display="inline"><![CDATA[f^*\bar {Y} \to  \bar {Y}]]></fr:tex> of <fr:tex display="inline"><![CDATA[f]]></fr:tex>.
  Then there is a unique extension of <fr:tex display="inline"><![CDATA[f^*]]></fr:tex> to a functor <fr:tex display="inline"><![CDATA[\mathcal {D}_Y \to  \mathcal {D}_X]]></fr:tex> so that the squares
  
  <html:figure><fr:resource hash="2fd239771c6b2718fd04e6a408e60fd6"><fr:resource-content><html:img src="/2fd239771c6b2718fd04e6a408e60fd6.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    f^*\bar {Y} \ar [r] \ar [d] & \bar {Y} \ar [d]\\
    f^*\bar {Y}' \ar [r] & \bar {Y}'
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  commute. With this, the assignment <fr:tex display="inline"><![CDATA[X \mapsto  \mathcal {D}_X, f \mapsto  f^*]]></fr:tex> assembles into a pseudofunctor <fr:tex display="inline"><![CDATA[\mathcal {C}^\mathrm {op} \to  \mathsf {Cat}]]></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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>5</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-WKG8/</fr:uri>
                    <fr:display-uri>efr-WKG8</fr:display-uri>
                    <fr:route>/efr-WKG8/</fr:route>
                    <fr:taxon>Remark</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> is such that each morphism admits merely a locally Cartesian lift (but these do not compose,) it is called a <html:em>prefibration</html:em>. Note that this is unrelated to our notion of <fr:link href="/efr-0019/" title="Markov prefibration" uri="https://erischel.com/efr-0019/" display-uri="efr-0019" type="local">Markov prefibration</fr:link> (reading ahead a bit, the "Cartesian" maps in a Markov prefibration do compose, but they enjoy the unique lifting property only for a subset of morphisms). This clash of terminology is perhaps unfortunate, but other potential prefixes seemed inferior (quasi-, pseudo-, semi-).
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>7</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-D7W0/</fr:uri>
                    <fr:display-uri>efr-D7W0</fr:display-uri>
                    <fr:route>/efr-D7W0/</fr:route>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be any category, and let <fr:tex display="inline"><![CDATA[\mathcal {C}^\to ]]></fr:tex> denote the arrow category. Then the codomain functor <fr:tex display="inline"><![CDATA[\mathcal {C}^\to  \to  \mathcal {C}]]></fr:tex> is a fibration if and only if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> admits all pullbacks, and in this case the functors <fr:tex display="inline"><![CDATA[f^*: \mathcal {C}_Y \to  \mathcal {C}_X,]]></fr:tex> given <fr:tex display="inline"><![CDATA[f: X \to  Y,]]></fr:tex> are given by pullback along <fr:tex display="inline"><![CDATA[f]]></fr:tex>.
</html:p>
                    <html:p>
  The functors <fr:tex display="inline"><![CDATA[f^*]]></fr:tex> are sometimes referred to as <html:em>pullback</html:em>, a convention we generally adopt. They are also sometimes called <html:em>base-change</html:em> functors.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  When <fr:tex display="inline"><![CDATA[f: X \to  Y]]></fr:tex> and <fr:tex display="inline"><![CDATA[A \in  \mathcal {D}_Y]]></fr:tex>, we may write <fr:tex display="inline"><![CDATA[A_X]]></fr:tex> for the object <fr:tex display="inline"><![CDATA[f^*A]]></fr:tex> if there is no chance of confusion. (Compare that the choice of <fr:tex display="inline"><![CDATA[f]]></fr:tex> is also suppressed in the notation <fr:tex display="inline"><![CDATA[A \times _Y X]]></fr:tex> for a pullback)
</html:p>
                <html:p>
  We will not go into a comprehensive description of the theory of fibrations, but simply give a few basic results. We will give some examples in the next section. For a textbook treatment, see eg. <fr:link href="/jacobs-categorical-logic/" title="Categorical logic and type theory" uri="https://erischel.com/jacobs-categorical-logic/" display-uri="jacobs-categorical-logic" type="local">Reference <fr:contextual-number uri="https://erischel.com/jacobs-categorical-logic/" display-uri="jacobs-categorical-logic" /></fr:link> (chapters 1, 9), or <fr:link href="/borceux-handbook/" title="Handbook of Categorical Algebra" uri="https://erischel.com/borceux-handbook/" display-uri="borceux-handbook" type="local">Reference <fr:contextual-number uri="https://erischel.com/borceux-handbook/" display-uri="borceux-handbook" /></fr:link> (chapter 8). Note that we will not give a formal definition of the term "pseudofunctor" here. See eg <fr:link href="/jacobs-categorical-logic/" title="Categorical logic and type theory" uri="https://erischel.com/jacobs-categorical-logic/" display-uri="jacobs-categorical-logic" type="local">Reference <fr:contextual-number uri="https://erischel.com/jacobs-categorical-logic/" display-uri="jacobs-categorical-logic" /></fr:link>, def. 1.4.4.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>28</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-KUW7/</fr:uri>
                    <fr:display-uri>efr-KUW7</fr:display-uri>
                    <fr:route>/efr-KUW7/</fr:route>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {A}: \mathcal {C}^\mathrm {op} \to  \mathsf {Cat}]]></fr:tex> be a pseudofunctor. Then there is a category <fr:tex display="inline"><![CDATA[\int _{X \in  \mathcal {C}}\mathcal {A}(X)]]></fr:tex> defined as follows:
  <html:ol><html:li>The objects are pairs <fr:tex display="inline"><![CDATA[{\bar {X}\in  \mathcal {A}(X) \choose  X \in  \mathcal {C}}]]></fr:tex></html:li>
    <html:li>The morphisms <fr:tex display="inline"><![CDATA[{\bar {X} \choose  X} \to  {\bar {Y} \choose  Y}]]></fr:tex> are pairs <fr:tex display="inline"><![CDATA[f: X \to  Y, f^\#: \bar {X} \to  \mathcal {A}(f)(\bar {Y}) \in  \mathcal {A}(X)]]></fr:tex></html:li>
    <html:li>Composition is given by the "chain rule" <fr:tex display="inline"><![CDATA[(f,f^\#) \circ  (g,g^\#) = (fg, \mathcal {A}(g)(f^\#)g^\#)]]></fr:tex></html:li></html:ol>
  There is an obvious forgetful functor <fr:tex display="inline"><![CDATA[\int _X \mathcal {A}(X) \to  \mathcal {C}]]></fr:tex>.
</html:p>
                    <html:p>
  The category <fr:tex display="inline"><![CDATA[\int _X \mathcal {A}(X)]]></fr:tex> is known as the <html:em>Grothendieck construction of <fr:tex display="inline"><![CDATA[\mathcal {A}]]></fr:tex></html:em></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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>28</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-TQ3W/</fr:uri>
                    <fr:display-uri>efr-TQ3W</fr:display-uri>
                    <fr:route>/efr-TQ3W/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p><fr:tex display="inline"><![CDATA[\int _X \mathcal {A}(X) \to  \mathcal {C}]]></fr:tex> is a Grothendieck fibration, and the pseudofunctor it induces is equivalent to <fr:tex display="inline"><![CDATA[\mathcal {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>2025</fr:year><fr:month>4</fr:month><fr:day>28</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Given <fr:tex display="inline"><![CDATA[f: X \to  Y]]></fr:tex> and <fr:tex display="inline"><![CDATA[\bar {Y} \in  \mathcal {A}(Y),]]></fr:tex> it is clear that the map <fr:tex display="inline"><![CDATA[{\mathcal {A}(f)(\bar {Y}) \choose  X} \to  {\bar {Y} \choose  Y}]]></fr:tex> given by <fr:tex display="inline"><![CDATA[f, 1_{\mathcal {A}(f)(\bar {Y})}]]></fr:tex> is locally Cartesian---the required bijection is the definition of maps in the Grothendieck construction. But it's straightforward to see that these compose.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
                <html:p>
  Given a pseudofunctor <fr:tex display="inline"><![CDATA[\mathcal {A}: \mathcal {C}^\mathrm {op} \to  \mathsf {Cat},]]></fr:tex> it is obvious that the assignment <fr:tex display="inline"><![CDATA[\mathcal {A}(-)^\mathrm {op}]]></fr:tex> is pseudofunctorial as well (the required natural isomorphisms are just the formal opposites of the ones for <fr:tex display="inline"><![CDATA[\mathcal {A}]]></fr:tex>). Applying this through the equivalence of fibrations and pseudofunctors leads to the <html:em>fiberwise opposite</html:em> of a fibration. Explicitly:
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>28</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-8LGE/</fr:uri>
                    <fr:display-uri>efr-8LGE</fr:display-uri>
                    <fr:route>/efr-8LGE/</fr:route>
                    <fr:taxon>Corollary</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[p: \mathcal {D} \to  \mathcal {C}]]></fr:tex> be a fibration.
  Then there exists a category <fr:tex display="inline"><![CDATA[\mathcal {D}^\mathrm {fop}]]></fr:tex>, called the <html:em>fiberwise opposite of <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex></html:em>, whose objects are the same as <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>, and where a morphism <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> is a tuple <fr:tex display="inline"><![CDATA[(f: p(X) \to  p(Y), f^\#: f^*Y \to  X \in  \mathcal {D}_{p(X)})]]></fr:tex>.
</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>2025</fr:year>
                  <fr:month>4</fr:month>
                  <fr:day>29</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-ZCTD/</fr:uri>
                <fr:display-uri>efr-ZCTD</fr:display-uri>
                <fr:route>/efr-ZCTD/</fr:route>
                <fr:title text="Optics and Lenses">Optics and Lenses</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  We have already given somewhat of an account of lenses, optics, and their applications in the introduction. We briefly review the theory here, especially to normalize the notation and definitions. The best general source for this material is still <fr:link href="/riley-optics/" title="Categories of optics" uri="https://erischel.com/riley-optics/" display-uri="riley-optics" type="local">Reference <fr:contextual-number uri="https://erischel.com/riley-optics/" display-uri="riley-optics" /></fr:link>.
</html:p>
                <html:p>
  The definition of optic relies on the notion of <html:em>coend</html:em>, which we briefly recall, see <fr:link href="/fosco-coend-calculus/" title="(Co)end Calculus" uri="https://erischel.com/fosco-coend-calculus/" display-uri="fosco-coend-calculus" type="local">Reference <fr:contextual-number uri="https://erischel.com/fosco-coend-calculus/" display-uri="fosco-coend-calculus" /></fr:link> for a textbook account. If <fr:tex display="inline"><![CDATA[F: \mathcal {I}^\mathrm {op} \times  \mathcal {I} \to  \mathcal {C}]]></fr:tex> is a functor, the <html:em>coend</html:em> <fr:tex display="inline"><![CDATA[\int ^{i \in  I} F(i,i)]]></fr:tex> is defined as the initial object receiving a map <fr:tex display="inline"><![CDATA[f_i : F(i,i) \to  \int ^{i \in  I} F(i,i)]]></fr:tex> for each <fr:tex display="inline"><![CDATA[i \in  I]]></fr:tex>, so that for each <fr:tex display="inline"><![CDATA[\phi : i \to  j]]></fr:tex>, the square
  
  <html:figure><fr:resource hash="93bc42b7152d38e565dd021d49ca6365"><fr:resource-content><html:img src="/93bc42b7152d38e565dd021d49ca6365.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    & F(i,i) \ar [rd] & \\
    F(j,i) \ar [ru] \ar [rd] & & \int ^I \\
    & F(j,j) \ar [ur]
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  commutes.
</html:p>
                <html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> has enough colimits, we may express the coend as the coequalizer of the diagram
  <fr:tex display="block"><![CDATA[\coprod _{f : i \to  j \in  \mathcal {I}} F(i,j) \rightrightarrows  \coprod _{i} F(i,i),]]></fr:tex>
  where the two maps are given on each component by <fr:tex display="inline"><![CDATA[F(i,f): F(i,j) \to  F(i,i)]]></fr:tex> and <fr:tex display="inline"><![CDATA[F(f,j) : F(i,j) \to  F(j,j)]]></fr:tex>, respectively. (This is Remark 1.2.4 in <fr:link href="/fosco-coend-calculus/" title="(Co)end Calculus" uri="https://erischel.com/fosco-coend-calculus/" display-uri="fosco-coend-calculus" type="local">Reference <fr:contextual-number uri="https://erischel.com/fosco-coend-calculus/" display-uri="fosco-coend-calculus" /></fr:link>). Note that in particular this implies that if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> has all colimits, then it also has all coends.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>29</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-MMQZ/</fr:uri>
                    <fr:display-uri>efr-MMQZ</fr:display-uri>
                    <fr:route>/efr-MMQZ/</fr:route>
                    <fr:title text="Optic">Optic</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex> be a monoidal category which acts on two categories <fr:tex display="inline"><![CDATA[\mathcal {C}, \mathcal {D}]]></fr:tex>. Then the category of <html:em>optics</html:em> <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {M}(\mathcal {C},\mathcal {D})]]></fr:tex> has
  <html:ol><html:li>
      Objects pairs <fr:tex display="inline"><![CDATA[{A \in  \mathcal {D} \choose  X \in  \mathcal {C}}]]></fr:tex></html:li>
    <html:li>
      The set of morphisms <fr:tex display="inline"><![CDATA[{A \choose  X} \to  {B \choose  Y}]]></fr:tex> given by the coend
      <fr:tex display="block"><![CDATA[\int ^{M \in  \mathcal {M}} \mathcal {C}(X, M \cdot  Y) \times  \mathcal {D}(M \cdot  B,A)]]></fr:tex></html:li>
    <html:li>
      Given two optics with representatives <fr:tex display="inline"><![CDATA[(M,f: X \to  M \cdot  Y,g : M \cdot  B \to  A), (N, f': Y \to  N \cdot  Z, g': N \cdot  C \to  B),]]></fr:tex> their composite is given
      by <fr:tex display="inline"><![CDATA[(M \otimes  N, (1_M \cdot  f')f, g (1_M \cdot  g')),]]></fr:tex> where we omit coherence morphisms.
    </html:li></html:ol></html:p>
                    <html:p>
  When <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is a monoidal category acting on itself by tensor, we write <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {C}(\mathcal {C},\mathcal {C}) =: \mathsf {Optic}(\mathcal {C})]]></fr:tex></html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  Note that if <fr:tex display="inline"><![CDATA[\mathcal {M},\mathcal {C},\mathcal {D}]]></fr:tex> are symmetric monoidal and these actions are symmetric, <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {M}(\mathcal {C},\mathcal {D})]]></fr:tex> inherits a symmetric monoidal structure given by <fr:tex display="inline"><![CDATA[{A \choose  X} \otimes  {B \choose  Y} = {A \otimes  B \choose  X \otimes  Y}]]></fr:tex>. (Also given a braiding one can induce a non-symmetric monoidal structure, but this almost never comes up).
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>29</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-CRYH/</fr:uri>
                    <fr:display-uri>efr-CRYH</fr:display-uri>
                    <fr:route>/efr-CRYH/</fr:route>
                    <fr:title text="On notation">On notation</fr:title>
                    <fr:taxon>Remark</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Objects and morphisms in the category of optics have two parts---one going "forwards", in the same direction as the optic, and one going "backwards". In <fr:link href="/riley-optics/" title="Categories of optics" uri="https://erischel.com/riley-optics/" display-uri="riley-optics" type="local">Reference <fr:contextual-number uri="https://erischel.com/riley-optics/" display-uri="riley-optics" /></fr:link> the objects are written <fr:tex display="inline"><![CDATA[(X,A),]]></fr:tex> where <fr:tex display="inline"><![CDATA[X]]></fr:tex> is the forwards part. Hedges' work on open games used the binomial notation <fr:tex display="inline"><![CDATA[\binom {X}{A},]]></fr:tex> but wrote the forwards part on <html:em>top</html:em>.
</html:p>
                    <html:p>
  To make the connection to fibrations more natural, we instead write the forwards part on the <html:em>bottom</html:em>, <fr:tex display="inline"><![CDATA[{A \choose  X}]]></fr:tex>. It is the backwards part which depends on the forwards part, hence the forwards part is the base of the fibration (when one exists)---and every part of the language of fibrations is built around a mental model where the base is at the bottom and the fibers are over it (including the word "base"). When reading the references, this may cause some confusion, but hopefully this can be overcome.
</html:p>
                    <html:p>
  While we're at it, let us note that when talking about optics we will freely use terms like "the forwards part" "the backwards object" and so on---the meaning of this should now be clear. Of course, once we get to cooptics/charts, this would be more than a little confusing, since in that case both components are in the same direction. In those cases we will speak of either the primary (forwards) part or the secondary (backwards) part, or use the language of fibrations and speak of the map or object "in the base" and "in the fiber".
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  As noted above, the coend <fr:tex display="inline"><![CDATA[\int ^M \mathcal {C}(X, M \cdot  Y) \times  \mathcal {D}(M \cdot  B, A)]]></fr:tex> consists of triples <fr:tex display="inline"><![CDATA[(M, f: X \to  M \cdot  Y, g: M \cdot  B \to  A)]]></fr:tex> up to the equivalence relation which, for every <fr:tex display="inline"><![CDATA[\phi : M \to  M', f: X \to  M \cdot  Y, g: M' \cdot  B \to  A,]]></fr:tex> identifies the two tuples <fr:tex display="inline"><![CDATA[(M', (\phi  \cdot  1_Y) f, g)]]></fr:tex> and <fr:tex display="inline"><![CDATA[(M, f, g (\phi  \cdot  1_B))]]></fr:tex>. Note that this relation is not assumed to be inherently an equivalence relation---one takes the transitive-symmetric closure as usual.
</html:p>
                <html:p>
  We call this relation the <html:em>sliding</html:em> relation (because we slide the map <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex> from the backwards part to the forwards part).
</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>2025</fr:year>
                      <fr:month>8</fr:month>
                      <fr:day>25</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-50T5/</fr:uri>
                    <fr:display-uri>efr-50T5</fr:display-uri>
                    <fr:route>/efr-50T5/</fr:route>
                    <fr:taxon>Remark</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Suppose <fr:tex display="inline"><![CDATA[\mathcal {M}, \mathcal {C}, \mathcal {D}]]></fr:tex> are small categories. Then the coend defining <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {M}(\mathcal {C},\mathcal {D})\left ( {A \choose  X}, {B \choose  Y} \right )]]></fr:tex> is a small colimit of small sets, hence again small. Since clearly the set of objects <fr:tex display="inline"><![CDATA[\operatorname {\mathbf {ob}} \mathcal {C} \times  \operatorname {\mathbf {ob}} \mathcal {D}]]></fr:tex> is small, <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {M}(\mathcal {C},\mathcal {D})]]></fr:tex> is again a small category.
</html:p>
                    <html:p>
  However, if <fr:tex display="inline"><![CDATA[\mathcal {M},\mathcal {D},\mathcal {C}]]></fr:tex> are merely assumed to be <html:em>locally</html:em> small, we can not guarantee the same is true of <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {M}(\mathcal {C},\mathcal {D})]]></fr:tex>, since the hom-sets are now defined by a coend/colimit with large indexing category. However, in many special cases, it can still be seen to be locally small, such as in the Cartesian case (where <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C})]]></fr:tex> is clearly locally small).
</html:p>
                    <html:p>
  In this thesis, we will not delve further into this subtlety, simply working inside some universe where all our categories are small. 
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  Of course, we can also let the arrows in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> go in the same direction as <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. This does not seem to have played any role in the literature, but we will give this a name, as it is a useful example to have in mind for Markov fibrations (where we will construct our dependent optics, conceptually, as a fiberwise opposite)
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>29</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-G0YN/</fr:uri>
                    <fr:display-uri>efr-G0YN</fr:display-uri>
                    <fr:route>/efr-G0YN/</fr:route>
                    <fr:title text="Co-Optics">Co-Optics</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Given <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex> acting on <fr:tex display="inline"><![CDATA[\mathcal {C}, \mathcal {D}]]></fr:tex>, the category of <html:em>co-optics</html:em>, <fr:tex display="inline"><![CDATA[\mathsf {coOptic}_\mathcal {M}(\mathcal {C},\mathcal {D})]]></fr:tex> has objects pair <fr:tex display="inline"><![CDATA[{A \in  \mathcal {D} \choose  X \in  \mathcal {C}},]]></fr:tex> and morphisms given by the coend <fr:tex display="inline"><![CDATA[\int ^M \mathcal {C}(X, M \cdot  Y) \times  \mathcal {D}(M \cdot  A, B)]]></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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>7</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-J0WW/</fr:uri>
                    <fr:display-uri>efr-J0WW</fr:display-uri>
                    <fr:route>/efr-J0WW/</fr:route>
                    <fr:taxon>Remark</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  For any monoidal category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {C}\left ({A \choose  X}, {I \choose  I}\right ) = \mathcal {C}(X,A)]]></fr:tex>. One way to think of an optic <fr:tex display="inline"><![CDATA[{A \choose  X} \leftrightarrows  {B \choose  Y}]]></fr:tex> is as a string diagram <fr:tex display="inline"><![CDATA[X \to  A]]></fr:tex>, but which has a hole with space for a morphism <fr:tex display="inline"><![CDATA[B \to  Y]]></fr:tex>. One inserts such a morphism by composing the optic with the optic <fr:tex display="inline"><![CDATA[{B \choose  Y} \leftrightarrows  {I \choose  I}]]></fr:tex> representing it. This idea of "open diagrams" has been developed in much more detail by Román, <fr:link href="/roman-optics-coend/" title="Open Diagrams via Coend Calculus" uri="https://erischel.com/roman-optics-coend/" display-uri="roman-optics-coend" type="local">Reference <fr:contextual-number uri="https://erischel.com/roman-optics-coend/" display-uri="roman-optics-coend" /></fr:link>. 
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>7</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-UNIN/</fr:uri>
                    <fr:display-uri>efr-UNIN</fr:display-uri>
                    <fr:route>/efr-UNIN/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Suppose <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex> is semicartesian---in other words, that <fr:tex display="inline"><![CDATA[I \in  \mathcal {M}]]></fr:tex> is terminal. Then there is a functor <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {M}(\mathcal {C},\mathcal {D}) \to  \mathcal {C}]]></fr:tex>, which takes a <fr:tex display="inline"><![CDATA[{A \choose  X}]]></fr:tex> to <fr:tex display="inline"><![CDATA[X]]></fr:tex>, and pair <fr:tex display="inline"><![CDATA[\langle  f: X \to  M \cdot  Y, g \rangle ]]></fr:tex> to the composite <fr:tex display="inline"><![CDATA[X \to  M \cdot  Y \to  I \cdot  Y \cong  Y]]></fr:tex>.
</html:p>
                    <html:p>
  In the case of <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {M}),]]></fr:tex> the map <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {M})({I \choose  I}, {A \choose  X}) \to  \mathcal {M}(I,X)]]></fr:tex> is a bijection.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  The fact that in <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {M}),]]></fr:tex> states (maps from the monoidal unit) on <fr:tex display="inline"><![CDATA[{A \choose  X}]]></fr:tex> are given by states on <fr:tex display="inline"><![CDATA[X]]></fr:tex>, while costates are given by maps <fr:tex display="inline"><![CDATA[X \to  A]]></fr:tex> plays an important role in the use of optics to describe open games. See <fr:link href="/efr-GFG0/" title="Open Games with external choice in Markov Fibrations" uri="https://erischel.com/efr-GFG0/" display-uri="efr-GFG0" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-GFG0/" display-uri="efr-GFG0" /></fr:link> for more on this.
</html:p>
                <html:p>
  Let us say a few things about lenses.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>7</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-M19V/</fr:uri>
                    <fr:display-uri>efr-M19V</fr:display-uri>
                    <fr:route>/efr-M19V/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is Cartesian monoidal, <fr:tex display="block"><![CDATA[\mathsf {Optic}(\mathcal {C})\left ({A \choose  X},{B \choose  Y}\right ) \cong  \mathcal {C}(X,Y) \times  \mathcal {C}(X \times  B,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>2025</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><fr:tex display="block"><![CDATA[\int ^M \mathcal {C}(X, M \times  Y) \times  \mathcal {C}(M \times  B,A) \cong  \int ^M \mathcal {C}(X,Y) \times  \mathcal {C}(X,M) \times  \mathcal {C}(M \times  B,A)]]></fr:tex>
    <fr:tex display="block"><![CDATA[ \cong  \mathcal {C}(X,Y) \times  \mathcal {C}(X \times  B,A).]]></fr:tex></html:p>
  <html:p>
    Here we use a general fact about coends, that <fr:tex display="inline"><![CDATA[\int ^M \mathcal {C}(X,M) \times  F(M) \cong  F(X)]]></fr:tex>---this has been called the <html:em>ninja Yoneda lemma</html:em>, see <fr:link href="/fosco-coend-calculus/" title="(Co)end Calculus" uri="https://erischel.com/fosco-coend-calculus/" display-uri="fosco-coend-calculus" type="local">Reference <fr:contextual-number uri="https://erischel.com/fosco-coend-calculus/" display-uri="fosco-coend-calculus" /></fr:link>.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
                <html:p>
  In this case we sometimes write <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C})]]></fr:tex> for the category <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C})]]></fr:tex>. We have the following fact:
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>7</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-2793/</fr:uri>
                    <fr:display-uri>efr-2793</fr:display-uri>
                    <fr:route>/efr-2793/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  The functor <fr:tex display="inline"><![CDATA[{A \choose  X} \mapsto  X]]></fr:tex>, <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C}) \to  \mathcal {C}]]></fr:tex>, is a fibration. The fiber <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C})_X]]></fr:tex> has the following description:
  <html:ol><html:li>Its objects are the objects of <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>.</html:li>
    <html:li>A map <fr:tex display="inline"><![CDATA[A \to  B \in  \mathsf {Lens}(\mathcal {C})_X]]></fr:tex> is a map <fr:tex display="inline"><![CDATA[X \times  B \to  A \in  \mathcal {C}]]></fr:tex>.</html:li>
    <html:li>The composite of <fr:tex display="inline"><![CDATA[X \times  B \to  A,]]></fr:tex> <fr:tex display="inline"><![CDATA[X \times  C \to  B]]></fr:tex> is given by composing the two into <fr:tex display="inline"><![CDATA[X \times  X \times  C \to  A,]]></fr:tex> then using the diagonal.</html:li>
    <html:li>Given <fr:tex display="inline"><![CDATA[f: X \to  Y,]]></fr:tex> the pullback functor <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C})_Y \to  \mathsf {Lens}(\mathcal {C})_X]]></fr:tex> is given by precomposing by <fr:tex display="inline"><![CDATA[f]]></fr:tex>.</html:li></html:ol></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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>7</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-VTPS/</fr:uri>
                    <fr:display-uri>efr-VTPS</fr:display-uri>
                    <fr:route>/efr-VTPS/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> moreover admits pullbacks, there is a fibred functor <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C})^\mathrm {fop} \to  \mathcal {C}^\to  \to  \mathcal {C},]]></fr:tex> which carries an object <fr:tex display="inline"><![CDATA[{A \choose  X}]]></fr:tex> to <fr:tex display="inline"><![CDATA[X \times  A\xrightarrow {\pi _X} X,]]></fr:tex> and a morphism <fr:tex display="inline"><![CDATA[f:X \times  A \to  B]]></fr:tex> to the map <fr:tex display="inline"><![CDATA[X \times  A \xrightarrow {\langle  \pi _X,F \rangle } X \times  B]]></fr:tex> over <fr:tex display="inline"><![CDATA[X]]></fr:tex>. This is fully faithful.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  This is the first way to see the maps of <fr:tex display="inline"><![CDATA[(\mathcal {C}^\to )^\mathrm {fop}]]></fr:tex> as dependent lenses---they receive the category of lenses as a full subcategory. 
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>7</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-TZ0P/</fr:uri>
                    <fr:display-uri>efr-TZ0P</fr:display-uri>
                    <fr:route>/efr-TZ0P/</fr:route>
                    <fr:taxon>Remark</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  The squares
  
  <html:figure><fr:resource hash="bfbc655ed83f9a6f9cc2dd1491177322"><fr:resource-content><html:img src="/bfbc655ed83f9a6f9cc2dd1491177322.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    A \times  X \ar [d] \ar [r] & A \times  Y \ar [d]\\
    X \ar [r] & Y
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  are pullbacks in any category with products, even if it does not admit pullbacks in general.
  It follows that the full subcategory of <fr:tex display="inline"><![CDATA[\mathcal {C}^\to ]]></fr:tex> spanned by objects of this form is always a fibration over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, which is isomorphic to <fr:tex display="inline"><![CDATA[\mathsf {coOptic}(\mathcal {C})]]></fr:tex>---the fiberwise dual is isomorphic to <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C})]]></fr:tex>.
</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>2025</fr:year>
                  <fr:month>4</fr:month>
                  <fr:day>18</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-E3HE/</fr:uri>
                <fr:display-uri>efr-E3HE</fr:display-uri>
                <fr:route>/efr-E3HE/</fr:route>
                <fr:title text="Markov categories">Markov categories</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  Recall that <html:em>Markov categories</html:em> (Fritz, <fr:link href="/fritz-synthetic-markov-cats/" title="A synthetic approach to Markov kernels, conditional independence and theorems on sufficient statistics" uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" type="local">Reference <fr:contextual-number uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" /></fr:link>) are semicartesian symmetric monoidal categories equipped with a suitably coherent system of comonoids <fr:tex display="inline"><![CDATA[(\mathrm {copy}_X: X \to  X \otimes  X, \mathrm {del}_X: X \to  I)]]></fr:tex> for each object <fr:tex display="inline"><![CDATA[X \in  \mathcal {C}]]></fr:tex>. These have been used as the basis for the categorical analysis of probability theory for a number of years, see eg <fr:link href="/rischel-fritz-infinite-products/" title="Infinite products and zero-one laws in categorical probability" uri="https://erischel.com/rischel-fritz-infinite-products/" display-uri="rischel-fritz-infinite-products" type="local">Reference <fr:contextual-number uri="https://erischel.com/rischel-fritz-infinite-products/" display-uri="rischel-fritz-infinite-products" /></fr:link>, <fr:link href="/markov-supports/" title="Absolute continuity, supports and idempotent splitting in categorical probability" uri="https://erischel.com/markov-supports/" display-uri="markov-supports" type="local">Reference <fr:contextual-number uri="https://erischel.com/markov-supports/" display-uri="markov-supports" /></fr:link>, <fr:link href="/law-large-nums-fritz-etal/" title="Empirical Measures and Strong Laws of Large Numbers in Categorical Probability" uri="https://erischel.com/law-large-nums-fritz-etal/" display-uri="law-large-nums-fritz-etal" type="local">Reference <fr:contextual-number uri="https://erischel.com/law-large-nums-fritz-etal/" display-uri="law-large-nums-fritz-etal" /></fr:link>, <fr:link href="/moss-perrone-ergodic/" title="A category-theoretic proof of the ergodic decomposition theorem" uri="https://erischel.com/moss-perrone-ergodic/" display-uri="moss-perrone-ergodic" type="local">Reference <fr:contextual-number uri="https://erischel.com/moss-perrone-ergodic/" display-uri="moss-perrone-ergodic" /></fr:link>. See <fr:link href="/fritz-synthetic-markov-cats/" title="A synthetic approach to Markov kernels, conditional independence and theorems on sufficient statistics" uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" type="local">Reference <fr:contextual-number uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" /></fr:link> for the basic theory, and <fr:link href="/fritz-gonda-perrone-rischel-rep/" title="Representable Markov categories and comparison of statistical experiments in categorical probability" uri="https://erischel.com/fritz-gonda-perrone-rischel-rep/" display-uri="fritz-gonda-perrone-rischel-rep" type="local">Reference <fr:contextual-number uri="https://erischel.com/fritz-gonda-perrone-rischel-rep/" display-uri="fritz-gonda-perrone-rischel-rep" /></fr:link> for the theory of representable Markov categories. We assume familiarity with this theory in general, but we will review some theory below, as well as a few new minor results which are helpful for the theory of Markov fibrations.
</html:p>
                <html:p>
  The basic idea of a Markov category is to interpret morphisms <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> as "stochastic processes" or <html:em>kernels</html:em>---that is, functions valued in probability measures. A morphism <fr:tex display="inline"><![CDATA[P \to  X \otimes  Y]]></fr:tex> is a parametrized joint probability measure---the comonoid structure allows us to build a canonical such given parametrized measures <fr:tex display="inline"><![CDATA[P \to  X, P \to  Y]]></fr:tex> (by precomposing their tensor with the <fr:tex display="inline"><![CDATA[\mathrm {copy}_P]]></fr:tex> map). This is the product measure of the two---the fact that in general not every map has this form (because <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is not necessarily Cartesian) allows us to express the probabilistic dependence---as in, non-independence---of one variable on another.
</html:p>
                <html:p>
  A morphism is called <html:em>deterministic</html:em> if it is a comonoid (co)homomorphism, which amounts to the claim that <fr:tex display="inline"><![CDATA[\mathrm {copy}_Y f = (f \otimes  f) \mathrm {copy}_X]]></fr:tex>---in other words, that running two independent copies of the kernel (with the same input) is equivalent to running one and copying the output. The deterministic morphisms form a Cartesian monoidal subcategory which is denoted <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det} \subseteq  \mathcal {C}]]></fr:tex>.
</html:p>
                <html:p>
  We first note the following alternative characterization of Markov categories in terms of their deterministic 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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>2</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-5B0J/</fr:uri>
                    <fr:display-uri>efr-5B0J</fr:display-uri>
                    <fr:route>/efr-5B0J/</fr:route>
                    <fr:title text="Premarkov structure">Premarkov structure</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a symmetric monoidal category. A <html:em>premarkov structure</html:em> on <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is a wide symmetric monoidal subcategory <fr:tex display="inline"><![CDATA[\mathcal {C}' \subseteq  \mathcal {C}]]></fr:tex>---that is, a class of morphisms which contains all identities and structural isomorphisms, and is stable under composition and monoidal products---so that the monoidal category <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex> is Cartesian.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>2</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-10HQ/</fr:uri>
                    <fr:display-uri>efr-10HQ</fr:display-uri>
                    <fr:route>/efr-10HQ/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a monoidal category. 
  <html:ol><html:li>Given a premarkov structure <fr:tex display="inline"><![CDATA[\mathcal {C}' \subseteq  \mathcal {C}]]></fr:tex>, there is a unique Markov structure on <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> so that each morphism in <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex> is deterministic.</html:li>
    <html:li>Given a Markov structure, <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det} \subseteq  \mathcal {C}]]></fr:tex> is a premarkov structure.</html:li>
    <html:li>A premarkov structure has the form <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> for some Markov structure if and only if it is maximal.</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>2025</fr:year><fr:month>5</fr:month><fr:day>2</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    The existence part first claim is clear: <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex> acquires a unique Markov structure since it is Cartesian, and the inclusion of that Markov structure into <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> gives a Markov structure on <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. Conversely, suppose <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is a Markov category and <fr:tex display="inline"><![CDATA[\mathcal {C}' \subseteq  \mathcal {C}_\mathrm {det}]]></fr:tex> is a class of deterministic morphisms which is still Cartesian. This means the projections <fr:tex display="inline"><![CDATA[X \otimes  Y \to  X,Y]]></fr:tex> still exhibit <fr:tex display="inline"><![CDATA[X \otimes  Y]]></fr:tex> as a product in <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex>. But since the pairing are the unique map lifting two given maps <fr:tex display="inline"><![CDATA[A \to  X,Y,]]></fr:tex> the pairing must be preserved by the inclusion <fr:tex display="inline"><![CDATA[\mathcal {C}' \to  \mathcal {C}_\mathrm {det}]]></fr:tex>. Since the canonical Markov structure is given as a pairing, this means the markov structure induced by <fr:tex display="inline"><![CDATA[\mathcal {C}' \to  \mathcal {C}]]></fr:tex> must agree with the one given by <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex>, which is just the original one.
  </html:p>
  <html:p>
    The second claim is straightforward---see eg <fr:link href="/fritz-synthetic-markov-cats/" title="A synthetic approach to Markov kernels, conditional independence and theorems on sufficient statistics" uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" type="local">Reference <fr:contextual-number uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" /></fr:link> remark 10.13.
  </html:p>
  <html:p>
    Now suppose <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det} \subseteq  \mathcal {C}' \subseteq  \mathcal {C}]]></fr:tex>, where <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex> is some larger premarkov structure. By the argument above, they must generate the same Markov structure on <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. But again, this implies that every map in <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex> is deterministic for this Markov structure, so we have <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det} = \mathcal {C}']]></fr:tex>. This finishes the proof.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
                <html:p>
  Note that given a merely monoidal category, we can ask whether it is Cartesian, and if it is, it admits a unique symmetry induced by the universal property of the product. Hence if <fr:tex display="inline"><![CDATA[\mathcal {C}' \subseteq  \mathcal {C}]]></fr:tex> is a Cartesian wide monoidal subcategory, we may attempt to define a symmetry on <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> simply using the one from <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex>. However, it is not automatic that this symmetry is natural for all the morphisms in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>.
</html:p>
                <html:p>
  This basic idea was already noted by Fritz (and goes back to Golubtsov's work in <fr:link href="/golubtsov-kleisli/" title="Monoidal Kleisli Category as a Background for Information Transformers Theory" uri="https://erischel.com/golubtsov-kleisli/" display-uri="golubtsov-kleisli" type="local">Reference <fr:contextual-number uri="https://erischel.com/golubtsov-kleisli/" display-uri="golubtsov-kleisli" /></fr:link>, an important part of the prehistory of Markov categories), although the precise statement above appears to be novel. Since the coherence conditions required of the comonoids in a Markov structure can be somewhat hard to remember, this characterization may be easier to understand.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-38FR/</fr:uri>
                    <fr:display-uri>efr-38FR</fr:display-uri>
                    <fr:route>/efr-38FR/</fr:route>
                    <fr:title text="Representable Markov category">Representable Markov category</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  A Markov category is <html:em>representable</html:em> if the inclusion <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det} \hookrightarrow  \mathcal {C}]]></fr:tex> admits a right adjoint. In this case we denote the right adjoint <fr:tex display="inline"><![CDATA[P]]></fr:tex> and call the object <fr:tex display="inline"><![CDATA[PX]]></fr:tex> for <fr:tex display="inline"><![CDATA[X \in  \mathcal {C}]]></fr:tex> a <html:em>distribution object</html:em> for <fr:tex display="inline"><![CDATA[X]]></fr:tex>. Observe that <fr:tex display="inline"><![CDATA[\mathcal {C}(X,Y) = \mathcal {C}_\mathrm {det}(X,PY)]]></fr:tex> (by definition,) and hence <fr:tex display="inline"><![CDATA[\mathcal {C} = Kl(P)]]></fr:tex> where we denote the induced monad on <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> <fr:tex display="inline"><![CDATA[P]]></fr:tex> by an abuse of notation.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>27</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-OSN1/</fr:uri>
                    <fr:display-uri>efr-OSN1</fr:display-uri>
                    <fr:route>/efr-OSN1/</fr:route>
                    <fr:title text="Commonly used Markov Categories">Commonly used Markov Categories</fr:title>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Here are some important Markov categories:
</html:p>
                    <html:ol><html:li><fr:tex display="inline"><![CDATA[\mathsf {Stoch}]]></fr:tex> (<fr:link href="/fritz-synthetic-markov-cats/" title="A synthetic approach to Markov kernels, conditional independence and theorems on sufficient statistics" uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" type="local">Reference <fr:contextual-number uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" /></fr:link>, section 4) is the category whose objects are measurable spaces, whose morphisms are Markov kernels, with composition given by the Chapman-Kolmogorov equation and monoidal structure given by product measures.
  </html:li>
  <html:li><fr:tex display="inline"><![CDATA[\mathsf {BorelStoch} \subseteq  \mathsf {Stoch}]]></fr:tex> (<fr:link href="/fritz-synthetic-markov-cats/" title="A synthetic approach to Markov kernels, conditional independence and theorems on sufficient statistics" uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" type="local">Reference <fr:contextual-number uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" /></fr:link>, section 4) is the full subcategory of <fr:tex display="inline"><![CDATA[\mathsf {Stoch}]]></fr:tex> spanned by the <html:em>standard Borel spaces,</html:em> that is by those measurable spaces arising as the Borel <fr:tex display="inline"><![CDATA[\sigma ]]></fr:tex>-algebra on separable, complete metric space.
  </html:li>
  <html:li><fr:tex display="inline"><![CDATA[\mathsf {FinStoch}]]></fr:tex> is the subcategory of <fr:tex display="inline"><![CDATA[\mathsf {Stoch}]]></fr:tex> spanned by finite sets in the powerset <fr:tex display="inline"><![CDATA[\sigma ]]></fr:tex>-algebra. A morphism <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathsf {FinStoch}]]></fr:tex> is equivalently a matrix <fr:tex display="inline"><![CDATA[f_{xy} : x \in  X, y \in  Y]]></fr:tex> with entries in <fr:tex display="inline"><![CDATA[\mathbb {R}_{\geq  0}]]></fr:tex> and with <fr:tex display="inline"><![CDATA[\sum _y f_{xy} = 1]]></fr:tex> for each <fr:tex display="inline"><![CDATA[x]]></fr:tex> (this is what is called a <html:em>stochastic matrix</html:em>).
  </html:li>
  <html:li>
    Let <fr:tex display="inline"><![CDATA[\Delta : \mathsf {Set} \to  \mathsf {Set}]]></fr:tex> be the monad which assigns to <fr:tex display="inline"><![CDATA[X \in  \mathsf {Set}]]></fr:tex> the set <fr:tex display="inline"><![CDATA[\Delta (X)]]></fr:tex> of countably-supported probability measures. Then the Kleisli category <fr:tex display="inline"><![CDATA[Kl(\Delta )]]></fr:tex> is a Markov category, sometimes called the category of <html:em>discrete</html:em> probability.
  </html:li>
  <html:li><fr:tex display="inline"><![CDATA[\mathsf {TychStoch}]]></fr:tex> (<fr:link href="/markov-supports/" title="Absolute continuity, supports and idempotent splitting in categorical probability" uri="https://erischel.com/markov-supports/" display-uri="markov-supports" type="local">Reference <fr:contextual-number uri="https://erischel.com/markov-supports/" display-uri="markov-supports" /></fr:link>, example A.1.4) is the category of <html:em>Tychonoff</html:em> topological spaces and kernels which are valued in Radon probability measures, and where the measure <fr:tex display="inline"><![CDATA[f(- \mid  x)]]></fr:tex> varies continuous in <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex> with respect to the weak topology---in other words, given any continuous function <fr:tex display="inline"><![CDATA[u \in  C(Y),]]></fr:tex> the resulting function on <fr:tex display="inline"><![CDATA[X]]></fr:tex> given by <fr:tex display="inline"><![CDATA[E_{y \sim  f(- \mid  x)}u(y)]]></fr:tex> is continuous. (A space <fr:tex display="inline"><![CDATA[X]]></fr:tex> is <html:em>Tychonoff</html:em> if it is Hausdorff and, given <fr:tex display="inline"><![CDATA[K \subset  X]]></fr:tex> closed and <fr:tex display="inline"><![CDATA[x_0]]></fr:tex> not in <fr:tex display="inline"><![CDATA[K]]></fr:tex>, there exists continuous <fr:tex display="inline"><![CDATA[f: X \to  [0,1]]]></fr:tex> with <fr:tex display="inline"><![CDATA[f(x_0)=0, f(k) =1]]></fr:tex> for <fr:tex display="inline"><![CDATA[k \in  K]]></fr:tex>. Every locally compact Hausdorff space is Tychonoff).
  </html:li></html:ol>
                  </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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>27</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-NKD7/</fr:uri>
                    <fr:display-uri>efr-NKD7</fr:display-uri>
                    <fr:route>/efr-NKD7/</fr:route>
                    <fr:title text="Diagram Markov Categories">Diagram Markov Categories</fr:title>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is a Markov category and <fr:tex display="inline"><![CDATA[I]]></fr:tex> is any ordinary category, there is a Markov category <fr:tex display="inline"><![CDATA[\mathsf {Fun}(I,\mathcal {C})]]></fr:tex> whose objects are functors <fr:tex display="inline"><![CDATA[I \to  \mathcal {C}_\mathrm {det},]]></fr:tex> and whose morphisms are natural transformations between these considered as functors into <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> (i.e natural transformations with stochastic components). The monoidal and Markov structure is defined simply component-wise.
</html:p>
                    <html:p>
  In particular, taking <fr:tex display="inline"><![CDATA[I = \to  = \{0 \to  1\}]]></fr:tex> the walking arrow, we obtain a Markov category of deterministic arrows <fr:tex display="inline"><![CDATA[\mathsf {Fun}(\to , \mathcal {C})]]></fr:tex>. We will denote this category simply <fr:tex display="inline"><![CDATA[\mathcal {C}^\to ]]></fr:tex>. Again, the objects of this category are the deterministic morphisms of <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, while the morphisms are the commutative squares with not-necessarily-deterministic sides
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>27</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-4VOU/</fr:uri>
                    <fr:display-uri>efr-4VOU</fr:display-uri>
                    <fr:route>/efr-4VOU/</fr:route>
                    <fr:title text="A note on terminology">A note on terminology</fr:title>
                    <fr:taxon>Remark</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  When we speak of a <html:em>stochastic</html:em> map in a Markov category, we always mean a map which is <html:em>not necessarily deterministic</html:em>---that is, a general map of <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>.
</html:p>
                    <html:p>
  Given a map <fr:tex display="inline"><![CDATA[p: P \to  X \otimes  Y]]></fr:tex> into a tensor product, the composites with the projections <fr:tex display="inline"><![CDATA[P \to  X, P \to  Y]]></fr:tex> are called the <html:em>marginals</html:em>. Given two maps <fr:tex display="inline"><![CDATA[f: P \to  X, g: P \to  Y]]></fr:tex>, we refer to any map <fr:tex display="inline"><![CDATA[P \to  X \otimes  Y]]></fr:tex> with those marginals as a <html:em>pairing</html:em> of the two. Note that there is always a canonical pairing given by <fr:tex display="inline"><![CDATA[(f \otimes  g) \mathrm {copy}_P]]></fr:tex>. We write <fr:tex display="inline"><![CDATA[\langle  f,g \rangle : P \to  X \otimes  Y]]></fr:tex> for this canonical pairing. For deterministic maps this is just the usual pairing using the universal property of the product. (We mostly use this in cases where one map is deterministic, so that the pairing is unique assuming positivity). When <fr:tex display="inline"><![CDATA[p = \langle  \pi _Xp, \pi _Yp \rangle ]]></fr:tex>, we say <fr:tex display="inline"><![CDATA[X \bot  Y \mid  P]]></fr:tex>, and say the two coordinates are <html:em>independent given <fr:tex display="inline"><![CDATA[P]]></fr:tex></html:em> (or just independent). 
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  Recall that the codomain functor <fr:tex display="inline"><![CDATA[\mathcal {C}^\to  \to  \mathcal {C}]]></fr:tex> is a fibration if and only if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> admits pullbacks. Since Markov categories have terminal objects but not, in general, products, they clearly cannot be expected to have pullbacks.
  However, if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is <html:em>positive</html:em> (<fr:link href="/fritz-synthetic-markov-cats/" title="A synthetic approach to Markov kernels, conditional independence and theorems on sufficient statistics" uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" type="local">Reference <fr:contextual-number uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" /></fr:link>, def. 11.22---but see <fr:link href="/efr-OYB6/" title="Characterization of positivity" uri="https://erischel.com/efr-OYB6/" display-uri="efr-OYB6" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-OYB6/" display-uri="efr-OYB6" /></fr:link> below), given <fr:tex display="inline"><![CDATA[f: P \to  X]]></fr:tex> <html:em>deterministic</html:em>, every <fr:tex display="inline"><![CDATA[g: P \to  Y]]></fr:tex> has a unique pairing <fr:tex display="inline"><![CDATA[P \to  X \otimes  Y]]></fr:tex> with <fr:tex display="inline"><![CDATA[f]]></fr:tex>.
  Computing pullbacks <fr:tex display="inline"><![CDATA[X \otimes _Z Y]]></fr:tex> in the subcategory <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det},]]></fr:tex> we usually have a similar property. This will be the basic idea behind Markov prefibrations.
</html:p>
                <html:p>
  By the following straightforward proposition, this property of having unique deterministic pairings is in fact equivalent to positivity:
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>26</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-OYB6/</fr:uri>
                    <fr:display-uri>efr-OYB6</fr:display-uri>
                    <fr:route>/efr-OYB6/</fr:route>
                    <fr:title text="Characterization of positivity">Characterization of positivity</fr:title>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a Markov category. The following are equivalent:
</html:p><html:ol><html:li>
    In <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, if <fr:tex display="inline"><![CDATA[f: P \to  X \otimes  Y]]></fr:tex> has deterministic marginal <fr:tex display="inline"><![CDATA[P \to  X,]]></fr:tex> then <fr:tex display="inline"><![CDATA[X \bot  Y \mid  P]]></fr:tex>. In other words, anything is independent of a deterministic variable.
  </html:li>
  <html:li>
    Given a deterministic morphism <fr:tex display="inline"><![CDATA[P \to  X]]></fr:tex> and any morphism <fr:tex display="inline"><![CDATA[P \to  Y,]]></fr:tex> there is a unique <fr:tex display="inline"><![CDATA[P \to  X \otimes  Y]]></fr:tex> with those marginals.
  </html:li>
  <html:li><fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is positive.
  </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>2025</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>
    Clearly 1 and 2 are equivalent, since independence just means <fr:tex display="inline"><![CDATA[f]]></fr:tex> is the independent pairing of the marginals---if it is uniquely determined by its marginals, it must be equal to the independent pairing, and conversely if it is necessarily independent, it is determined by its marginals. Now let us show this is equivalent to positivity.
  </html:p>
  <html:p>
    First suppose <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> has unique pairings in this sense. Let <fr:tex display="inline"><![CDATA[f,g]]></fr:tex> be as in the definition of positivity. Then the two maps <fr:tex display="inline"><![CDATA[X \to  Y \otimes  Z]]></fr:tex> indicated are pairings of <fr:tex display="inline"><![CDATA[gf]]></fr:tex> and <fr:tex display="inline"><![CDATA[f]]></fr:tex>, and since <fr:tex display="inline"><![CDATA[gf]]></fr:tex> is deterministic, they are identical by hypothesis.
  </html:p>
  <html:p>
    Finally, the implication <fr:tex display="inline"><![CDATA[3 \Rightarrow  1]]></fr:tex> is precisely <fr:link href="/fritz-synthetic-markov-cats/" title="A synthetic approach to Markov kernels, conditional independence and theorems on sufficient statistics" uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" type="local">Reference <fr:contextual-number uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" /></fr:link>, prop. 12.14.
  </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>2025</fr:year>
                      <fr:month>3</fr:month>
                      <fr:day>27</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-T3HM/</fr:uri>
                    <fr:display-uri>efr-T3HM</fr:display-uri>
                    <fr:route>/efr-T3HM/</fr:route>
                    <fr:title text="Pullback-positive">Pullback-positive</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a Markov category. We say <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is <html:em>pullback-positive</html:em> if <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> admits pullbacks and, given a diagram of this form where <fr:tex display="inline"><![CDATA[P \to  X]]></fr:tex> is deterministic, there is a unique map <fr:tex display="inline"><![CDATA[P \to  X \times _Z Y]]></fr:tex> making the squares commute.
</html:p>
                    <html:p>
                      <html:figure>
                        <fr:resource hash="753345ee0604c37973a17bffe67ddd62">
                          <fr:resource-content>
                            <html:img src="/753345ee0604c37973a17bffe67ddd62.svg" />
                          </fr:resource-content>
                          <fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source>
                          <fr:resource-source type="latex" part="body"><![CDATA[
  \begin {tikzcd}
  P \ar [dr, dashed] \ar [rrd] \ar [ddr] & & \\
  & X \times _Z Y \ar [r] \ar [d] & Y \ar [d]\\
  & X \ar [r] & Z
  \end {tikzcd}
]]></fr:resource-source>
                        </fr:resource>
                      </html:figure>
                    </html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  Note that a pullback-positive category is in particular positive by taking <fr:tex display="inline"><![CDATA[Z = I]]></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>2025</fr:year>
                      <fr:month>9</fr:month>
                      <fr:day>14</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-A7K7/</fr:uri>
                    <fr:display-uri>efr-A7K7</fr:display-uri>
                    <fr:route>/efr-A7K7/</fr:route>
                    <fr:taxon>Remark</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  The pullbacks appearing in <fr:link href="/efr-T3HM/" title="Pullback-positive" uri="https://erischel.com/efr-T3HM/" display-uri="efr-T3HM" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-T3HM/" display-uri="efr-T3HM" /></fr:link> are of course pullbacks in <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex>, not <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, analogously to how <fr:tex display="inline"><![CDATA[X \otimes  Y]]></fr:tex> is a product in <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex>, not <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. We will still use the notation <fr:tex display="inline"><![CDATA[X \times _Z Y]]></fr:tex> for these pullbacks, which should not lead to any confusion. We may occasionally write <fr:tex display="inline"><![CDATA[X \times  Y]]></fr:tex> instead of <fr:tex display="inline"><![CDATA[X \otimes  Y]]></fr:tex>, if we are carrying out a construction which primarily involves <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex>. Since essentially no Markov categories have Cartesian products (except when the tensor product is Cartesian), this should also not lead to any ambiguity.
</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>2025</fr:year>
                      <fr:month>3</fr:month>
                      <fr:day>27</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0YP1/</fr:uri>
                    <fr:display-uri>efr-0YP1</fr:display-uri>
                    <fr:route>/efr-0YP1/</fr:route>
                    <fr:taxon>Lemma</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:ol><html:li>Suppose any category <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex> admits products and <html:em>intersections</html:em>---that is, pullbacks <fr:tex display="inline"><![CDATA[U \times _X V]]></fr:tex> whenever <fr:tex display="inline"><![CDATA[U,V]]></fr:tex> are subobjects of <fr:tex display="inline"><![CDATA[X]]></fr:tex>. Then it admits all finite limits.</html:li>
  <html:li>
    Suppose <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> admits and <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det} \to  \mathcal {C}]]></fr:tex> preserves pullbacks along monomorphisms. Suppose further <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is positive. Then it is pullback-positive.
  </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>2025</fr:year><fr:month>3</fr:month><fr:day>27</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
<html:p>
  To see the first point, let <fr:tex display="inline"><![CDATA[f: X \to  Z, g: Y \to  Z]]></fr:tex> be arbitrary maps. Note that <fr:tex display="inline"><![CDATA[X \times _Z Y = (X \times  Y) \times _{X \times  Y \times  Z \times  Z} X \times  Y \times  Z]]></fr:tex>, where the horizontal map is given by <fr:tex display="inline"><![CDATA[(x,y) \mapsto  (x,y,f(x),g(y)),]]></fr:tex> and the top by <fr:tex display="inline"><![CDATA[(x,y,z) \mapsto  (x,y,z,z)]]></fr:tex>---in the sense that the universal property of this intersection is exactly the universal property of the given pullback.
</html:p>
<html:p>
  Now suppose <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det} \to  \mathcal {C}]]></fr:tex> preserves this intersection, and <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is positive. (Note that it doesn't follow that the inclusion preserves the pullback <fr:tex display="inline"><![CDATA[X \times _Z Y]]></fr:tex>, because it doesn't preserve the products). This amounts to the claim that a map <fr:tex display="inline"><![CDATA[P \to  X \otimes  Y]]></fr:tex> lifts to the pullback if and only if the composite <fr:tex display="inline"><![CDATA[P \to  X \otimes  Y \otimes  Z \otimes  Z]]></fr:tex> lifts over the map <fr:tex display="inline"><![CDATA[1_X \otimes  1_Y \otimes  \mathrm {copy}_Z]]></fr:tex> (note that the pullback of a monomorphism is a monomorphism).
</html:p>
<html:p>
  This implies in particular such a lift is always unique. Since if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is positive, given <fr:tex display="inline"><![CDATA[P \to  X, P \to  Y]]></fr:tex>, if the latter is deterministic there is a unique pairing <fr:tex display="inline"><![CDATA[P \to  X \otimes  Y,]]></fr:tex> this implies there is at most one map <fr:tex display="inline"><![CDATA[P \to  X \times _Z Y]]></fr:tex> pairing the two. On the other hand, since the composite <fr:tex display="inline"><![CDATA[P \to  Y \to  Z]]></fr:tex> is deterministic and equal to the composite <fr:tex display="inline"><![CDATA[P \to  X \to  Z]]></fr:tex>, they are both deterministic, and hence the pairing <fr:tex display="inline"><![CDATA[P \to  Z \otimes  Z]]></fr:tex> factors over the diagonal. Applying positivity again, to the tensor product <fr:tex display="inline"><![CDATA[(X \otimes  Y) \otimes  (Z \otimes  Z),]]></fr:tex> since the latter component is deterministic, this pairing is independent, and hence the map <fr:tex display="inline"><![CDATA[P \to  X \otimes  Y \to  X \otimes  Y \otimes  Z \otimes  Z]]></fr:tex> does indeed lift, finishing the proof.
</html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
                <html:p>
  The idea here is that a distribution on a subobject <fr:tex display="inline"><![CDATA[X' \subseteq  X]]></fr:tex> defined by some condition <fr:tex display="inline"><![CDATA[f(x \in  X) \in  U \subseteq  Y]]></fr:tex> is simply a distribution so that the condition is satisfied with probability <fr:tex display="inline"><![CDATA[1]]></fr:tex>. This is a natural condition which holds in many Markov categories.
</html:p>
                <html:p>The assumption that <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is pullback-positive will play a key role in the development of the theory of Markov fibrations. Although the theory could possibly be developed without assuming the base category has deterministic pullbacks, positivity seems to be an essential part. </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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>27</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-MW29/</fr:uri>
                    <fr:display-uri>efr-MW29</fr:display-uri>
                    <fr:route>/efr-MW29/</fr:route>
                    <fr:taxon>Lemma</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is representable and positive, <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> has limits, and the monad <fr:tex display="inline"><![CDATA[P]]></fr:tex> preserves intersections, then <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is pullback-positive.
</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>2025</fr:year><fr:month>4</fr:month><fr:day>27</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    This is clear, since if the monad <fr:tex display="inline"><![CDATA[P]]></fr:tex> preserves a given limit, so does the inclusion into the Kleisli category (for completely abstract reasons), hence by <fr:link href="/efr-0YP1/" title="https://erischel.com/efr-0YP1/" uri="https://erischel.com/efr-0YP1/" display-uri="efr-0YP1" type="local">Lemma <fr:contextual-number uri="https://erischel.com/efr-0YP1/" display-uri="efr-0YP1" /></fr:link> we are done.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
                <html:p>
  We will need the notion of <html:em>support</html:em> in a Markov category, introduced in <fr:link href="/markov-supports/" title="Absolute continuity, supports and idempotent splitting in categorical probability" uri="https://erischel.com/markov-supports/" display-uri="markov-supports" type="local">Reference <fr:contextual-number uri="https://erischel.com/markov-supports/" display-uri="markov-supports" /></fr:link>, for certain examples, so we briefly record the definition and a few of its properties here.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>3</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-AB57/</fr:uri>
                    <fr:display-uri>efr-AB57</fr:display-uri>
                    <fr:route>/efr-AB57/</fr:route>
                    <fr:title text="Support of a morphism">Support of a morphism</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[p: X \to  Y, q: A \to  Y]]></fr:tex> be two morphisms in a Markov category. We say <html:em><fr:tex display="inline"><![CDATA[q]]></fr:tex> is absolutely continuous with respect to <fr:tex display="inline"><![CDATA[p]]></fr:tex></html:em> and write <fr:tex display="inline"><![CDATA[q << p]]></fr:tex> if, whenever two maps <fr:tex display="inline"><![CDATA[Y \to  Z]]></fr:tex> are <fr:tex display="inline"><![CDATA[p]]></fr:tex>-almost surely equal, they are also <fr:tex display="inline"><![CDATA[q]]></fr:tex>-almost surely equal.
</html:p>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[p: X \to  Y]]></fr:tex> be a morphism in a Markov category. The <html:em>support</html:em> of <fr:tex display="inline"><![CDATA[p]]></fr:tex>, if it exists, is an object which represents the functor <fr:tex display="inline"><![CDATA[\mathcal {C}(-,Y)_{<<p}]]></fr:tex> of morphisms into <fr:tex display="inline"><![CDATA[Y]]></fr:tex> which are absolutely continuous with respect to <fr:tex display="inline"><![CDATA[p]]></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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>3</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-8MYE/</fr:uri>
                    <fr:display-uri>efr-8MYE</fr:display-uri>
                    <fr:route>/efr-8MYE/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:ol><html:li>
    The support of <fr:tex display="inline"><![CDATA[p: X \to  A]]></fr:tex> is equipped with a canonical deterministic monomorphism <fr:tex display="inline"><![CDATA[S_p \hookrightarrow  A]]></fr:tex>, so that a map into <fr:tex display="inline"><![CDATA[A]]></fr:tex> is absolutely continuous with respect to <fr:tex display="inline"><![CDATA[p]]></fr:tex> if and only if it factors over the support.
  </html:li>
  <html:li>Two maps <fr:tex display="inline"><![CDATA[A \otimes  W \to  B]]></fr:tex> are <fr:tex display="inline"><![CDATA[p]]></fr:tex>-almost surely equal if and only if they are strictly equal on the support.</html:li></html:ol>
                  </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>2025</fr:year>
                  <fr:month>6</fr:month>
                  <fr:day>18</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-NC0R/</fr:uri>
                <fr:display-uri>efr-NC0R</fr:display-uri>
                <fr:route>/efr-NC0R/</fr:route>
                <fr:title text="Double Categories">Double Categories</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>2025</fr:year>
                      <fr:month>6</fr:month>
                      <fr:day>18</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-RXP4/</fr:uri>
                    <fr:display-uri>efr-RXP4</fr:display-uri>
                    <fr:route>/efr-RXP4/</fr:route>
                    <fr:title text="Double Category">Double Category</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  A (strict) <html:em>double category</html:em> is a category internal to the category <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex> of categories.
  Concretely, it consists of:
</html:p>
                    <html:ol><html:li>
    A set of objects <fr:tex display="inline"><![CDATA[\operatorname {\mathbf {ob}} \mathbb {C}]]></fr:tex></html:li>
  <html:li>
    A collection of <html:em>vertical morphisms</html:em> forming a category <fr:tex display="inline"><![CDATA[\mathbb {C}_v]]></fr:tex> with <fr:tex display="inline"><![CDATA[\operatorname {\mathbf {ob}} \mathbb {C}_v = \operatorname {\mathbf {ob}} \mathbb {C}]]></fr:tex></html:li>
  <html:li>
    A collection of <html:em>horizontal morphisms</html:em> forming a category <fr:tex display="inline"><![CDATA[\mathbb {C}_h]]></fr:tex> with <fr:tex display="inline"><![CDATA[\operatorname {\mathbf {ob}} \mathbb {C}_h = \operatorname {\mathbf {ob}} \mathbb {C}]]></fr:tex></html:li>
  <html:li>
    An a collection of <html:em>squares</html:em>. Each square has a left and right boundary given by vertical morphisms <fr:tex display="inline"><![CDATA[l,r]]></fr:tex>, and top and bottom boundary given by horizontal morphisms <fr:tex display="inline"><![CDATA[t,b]]></fr:tex> so that <fr:tex display="inline"><![CDATA[\operatorname {\mathrm {dom}} t = \operatorname {\mathrm {dom}} l, \operatorname {\mathrm {cod}} t = \operatorname {\mathrm {dom}} r]]></fr:tex> and so on:
    
  <html:figure><fr:resource hash="c5a343e9ca9c520fa1dd6392b4d281d1"><fr:resource-content><html:img src="/c5a343e9ca9c520fa1dd6392b4d281d1.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
      \begin {tikzcd}
      X \ar [r, "t"] \ar [d, "l"] & Y \ar [d, "r"]\\
      A \ar [r, "b"] & B
      \end {tikzcd}
    ]]></fr:resource-source></fr:resource></html:figure>

    The squares compose horizontally and vertically in the obvious way, each of which form a category (in particular, there are <html:em>identity squares</html:em> for each vertical and horizontal map).
  </html:li></html:ol>
                    <html:p>
  A double functor is a mapping on objects, vertical and horizontal morphisms, and squares, which preserves all the identities and composition.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  There is also a notion of <html:em>pseudo double category</html:em>, which weakens the horizontal composition to only be associative and unital up to a coherent system of squares. We will not go into the details here, see <fr:link href="/efr-000D/" title="The \mathsf {Para} construction in generic 2-categories" uri="https://erischel.com/efr-000D/" display-uri="efr-000D" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-000D/" display-uri="efr-000D" /></fr:link> for more on this.
</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>2025</fr:year>
                      <fr:month>6</fr:month>
                      <fr:day>18</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-BEJ6/</fr:uri>
                    <fr:display-uri>efr-BEJ6</fr:display-uri>
                    <fr:route>/efr-BEJ6/</fr:route>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  There is a pseudo double category <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Cat}]]></fr:tex> where the objects are categories, the vertical maps are functors, the horizontal maps are <html:em>profunctors</html:em> (functors <fr:tex display="inline"><![CDATA[\mathcal {C} \times  \mathcal {D}^\mathrm {op} \to  \mathsf {Set},]]></fr:tex> sometimes called bimodules), and the squares are natural transformations.
</html:p>
                    <html:p>
  For any category with pullbacks <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, there is a pseudo double category <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Span}(\mathcal {C})]]></fr:tex> with <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> as the vertical category, spans as the horizontal morphisms, and commutative diagrams as the squares.
</html:p>
                    <html:p>
  There is a double category <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Rel}]]></fr:tex> of sets, functions, and relations.
</html:p>
                    <html:p>
  For any Markov category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, there is a double category with <fr:tex display="inline"><![CDATA[\mathbb {C}_v = \mathcal {C}_\mathrm {det}]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathbb {C}_h = \mathcal {C}]]></fr:tex>.
</html:p>
                    <html:p>
  For any category at all, there is a double category <fr:tex display="inline"><![CDATA[\operatorname {Sq}(\mathcal {C})]]></fr:tex> with <fr:tex display="inline"><![CDATA[\operatorname {Sq}(\mathcal {C})_v = \operatorname {Sq}(\mathcal {C})_h = \mathcal {C}]]></fr:tex> and commutative squares as the pullback squares.
</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>2025</fr:year>
                      <fr:month>6</fr:month>
                      <fr:day>18</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-Y1S5/</fr:uri>
                    <fr:display-uri>efr-Y1S5</fr:display-uri>
                    <fr:route>/efr-Y1S5/</fr:route>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  A double category is <html:em>thin</html:em> if, for each compatible square of vertical and horizontal morphisms, there is at most one square filling it. In other words, such a square either commutes or doesn't.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  Sometimes the two classes of morphism are instead called <html:em>loose</html:em> and <html:em>tight</html:em>, especially in cases where the composition of the loose class is not associative, or if the loose class is a superset of the tight class.
</html:p>
                <html:p>
  Although the explicit description above is probably the best way to think about the data of a double category, on a technical level it is often useful to think in terms of internal categories. An <html:em>internal category</html:em> in a category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is a pair of objects <fr:tex display="inline"><![CDATA[C_0, C_1]]></fr:tex>, maps <fr:tex display="inline"><![CDATA[d,c: C_1 \to  C_0, i: C_0 \to  C_1]]></fr:tex> (the domain, codomain and identity), and a map <fr:tex display="inline"><![CDATA[m: C_1 \times _{C_0} C_1 \to  C_1]]></fr:tex> (the multiplication), satisfying the usual laws of a category. A double category in the above sense is then an internal category in the category of categories.
</html:p>
                <html:p>
  In the terms of <fr:link href="/efr-RXP4/" title="Double Category" uri="https://erischel.com/efr-RXP4/" display-uri="efr-RXP4" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-RXP4/" display-uri="efr-RXP4" /></fr:link>, <fr:tex display="inline"><![CDATA[C_0]]></fr:tex> is <fr:tex display="inline"><![CDATA[\mathbb {C}_v]]></fr:tex>, and <fr:tex display="inline"><![CDATA[C_1]]></fr:tex> is the category whose <html:em>objects</html:em> are horizontal arrows, and whose morphisms are squares (composed vertically). Obviously, we could just as easily have oriented things horizontally, but this is the convention usually adopted.
</html:p>
                <html:p>
  Given a double category <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex>, there is another double category <fr:tex display="inline"><![CDATA[\mathbb {C}^T]]></fr:tex> called the <html:em>transpose</html:em> of <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex>, which has the same objects but exchanges the horizontal and vertical morphisms. In many cases it is not clear which of <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathbb {C}^T]]></fr:tex> is the "correct" one to work with, and we may have to pass back and forth between them. We try to stick to the convention that the horizontal morphisms are the "loose" ones. To avoid confusion, we will also simply specify the classes of morphisms directly, speaking for example of "the lenses" or "the charts" when working with the double category <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}(\mathcal {A})]]></fr:tex> (<fr:link href="/efr-0025/" title="Arenas" uri="https://erischel.com/efr-0025/" display-uri="efr-0025" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-0025/" display-uri="efr-0025" /></fr:link>).
</html:p>
                <html:p>
  The concept of double category goes back to <fr:link href="/ehresmann-dblcats/" title="Categories structures" uri="https://erischel.com/ehresmann-dblcats/" display-uri="ehresmann-dblcats" type="local">Reference <fr:contextual-number uri="https://erischel.com/ehresmann-dblcats/" display-uri="ehresmann-dblcats" /></fr:link>. See <fr:link href="/johnson-yau-2dim-categories/" title="2-Dimensional Categories" uri="https://erischel.com/johnson-yau-2dim-categories/" display-uri="johnson-yau-2dim-categories" type="local">Reference <fr:contextual-number uri="https://erischel.com/johnson-yau-2dim-categories/" display-uri="johnson-yau-2dim-categories" /></fr:link>, section 12.3 for a textbook treatment. They have been widely used in applied category theory. An early application is in <fr:link href="/baez-courser-structured-cospans/" title="Structured cospans" uri="https://erischel.com/baez-courser-structured-cospans/" display-uri="baez-courser-structured-cospans" type="local">Reference <fr:contextual-number uri="https://erischel.com/baez-courser-structured-cospans/" display-uri="baez-courser-structured-cospans" /></fr:link>, which constructed a "structured" version of the double category of cospans. Here the philosophy is that the horizontal morphisms are the "systems" (in a general sense) which are being wired together by horizontal composition, while the vertical morphisms (and squares) are "structure-preserving maps between systems". This is similar to the our double category of "bisystems" (<fr:link href="/efr-MWCE/" title="The triple category of dynamical systems" uri="https://erischel.com/efr-MWCE/" display-uri="efr-MWCE" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-MWCE/" display-uri="efr-MWCE" /></fr:link>). Recent work by Lambert and Patterson <fr:link href="/patterson-lambert-dbltheory/" title="Cartesian double theories: A double-categorical framework for categorical doctrines" uri="https://erischel.com/patterson-lambert-dbltheory/" display-uri="patterson-lambert-dbltheory" type="local">Reference <fr:contextual-number uri="https://erischel.com/patterson-lambert-dbltheory/" display-uri="patterson-lambert-dbltheory" /></fr:link> applies double categories to categorical algebra, with many applications to systems modeling, see <fr:link href="/catcolab-introducing/" title="Introducing CatColab" uri="https://erischel.com/catcolab-introducing/" display-uri="catcolab-introducing" type="local">Reference <fr:contextual-number uri="https://erischel.com/catcolab-introducing/" display-uri="catcolab-introducing" /></fr:link> (as well as to classical category theory). In the next section we'll see their application to categorical systems theory, and later see them applied to parametrized morphisms.
</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>6</fr:month>
                  <fr:day>30</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-0023/</fr:uri>
                <fr:display-uri>efr-0023</fr:display-uri>
                <fr:route>/efr-0023/</fr:route>
                <fr:title text="Review of Categorical Systems Theory">Review of Categorical Systems Theory</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  We will give a review of the framework called <html:em>categorical systems theory</html:em>, due to Myers (<fr:link href="/myers-cst/" title="Categorical Systems Theory" uri="https://erischel.com/myers-cst/" display-uri="myers-cst" type="local">Reference <fr:contextual-number uri="https://erischel.com/myers-cst/" display-uri="myers-cst" /></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>6</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-000A/</fr:uri>
                    <fr:display-uri>efr-000A</fr:display-uri>
                    <fr:route>/efr-000A/</fr:route>
                    <fr:title text="Theory of Dynamical Systems">Theory of Dynamical Systems</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  A <html:em>theory of dynamical systems</html:em> is an indexed category <fr:tex display="inline"><![CDATA[\mathcal {A}: \mathcal {C}^\mathrm {op} \to  \mathsf {Cat}]]></fr:tex> equipped with a section of its Grothendieck construction <fr:tex display="inline"><![CDATA[T: \mathcal {C} \to  \int  \mathcal {A}]]></fr:tex>.
</html:p>
                    <html:p>
  It is called <html:em>monoidal</html:em> if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is a monoidal category, and <fr:tex display="inline"><![CDATA[\mathcal {A}]]></fr:tex> is a lax monoidal functor. It is further called symmetric monoidal if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is a symmetric monoidal category and <fr:tex display="inline"><![CDATA[\mathcal {A}]]></fr:tex> is a symmetric lax monoidal functor. Note that this is equivalent to requiring <fr:tex display="inline"><![CDATA[\int  \mathcal {A} \to  \mathcal {C}]]></fr:tex> to be a (symmetric) 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>).
</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>6</fr:month>
                      <fr:day>30</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0024/</fr:uri>
                    <fr:display-uri>efr-0024</fr:display-uri>
                    <fr:route>/efr-0024/</fr:route>
                    <fr:title text="Lenses and charts">Lenses and charts</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {A}: \mathcal {C}^\mathrm {op} \to  \mathsf {Cat}]]></fr:tex> be an indexed category. A <html:em>chart</html:em> is simply a morphism in the Grothendieck construction <fr:tex display="inline"><![CDATA[\int  \mathcal {A}]]></fr:tex>. A <html:em>lens</html:em> is a morphism in the fiberwise opposite <fr:tex display="inline"><![CDATA[\int  \mathcal {A}(-)^\mathrm {op}]]></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>6</fr:month>
                      <fr:day>30</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0025/</fr:uri>
                    <fr:display-uri>efr-0025</fr:display-uri>
                    <fr:route>/efr-0025/</fr:route>
                    <fr:title text="Arenas">Arenas</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Given an indexed category <fr:tex display="inline"><![CDATA[\mathcal {A}: \mathcal {C}^\mathrm {op} \to  \mathsf {Cat}]]></fr:tex>, the double category <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}]]></fr:tex> of <html:em>arenas</html:em> has
</html:p>
                    <html:ol><html:li>Objects the objects of <fr:tex display="inline"><![CDATA[\int  \mathcal {A}]]></fr:tex>---note that these are the same as the objects of <fr:tex display="inline"><![CDATA[\int  \mathcal {A}(-)^\mathrm {op}]]></fr:tex></html:li>
  <html:li>Vertical morphisms the lenses</html:li>
  <html:li>Horizontal morphisms the charts</html:li>
  <html:li>The double category is thin. Given a square of this form
  
  
  <html:figure><fr:resource hash="60840dd42cc5f965da59ec029657ab5b"><fr:resource-content><html:img src="/60840dd42cc5f965da59ec029657ab5b.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    {\bar {A}_1 \choose  A_1} \ar [r] \ar [d] & {\bar {B}_1 \choose  B_1} \ar [d]\\
    {\bar {A}_2 \choose  A_2} \ar [r] & {\bar {B}_2 \choose  B_2},
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  
  we can first project it to a square in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. If this commutes, we can pull the lenses and charts back to a square in <fr:tex display="inline"><![CDATA[\mathcal {A}(A_1)]]></fr:tex>. The above square of lenses and charts will be said to commute if both of these squares commute.</html:li></html:ol>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  We will write arenas either as <fr:tex display="inline"><![CDATA[{\bar {A} \in  \mathcal {A}(A) \choose  A \in  \mathcal {C}}]]></fr:tex>, or, for brevity when there is no need to discuss the two levels separately, simply with a symbol <fr:tex display="inline"><![CDATA[A]]></fr:tex>. We will also write both <fr:tex display="inline"><![CDATA[{\bar {TS} \choose  S}]]></fr:tex> and <fr:tex display="inline"><![CDATA[TS]]></fr:tex> as the situation calls for---there should be no confusion resulting from this.
</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>6</fr:month>
                      <fr:day>30</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0028/</fr:uri>
                    <fr:display-uri>efr-0028</fr:display-uri>
                    <fr:route>/efr-0028/</fr:route>
                    <fr:title text="Dynamical system with interface A">Dynamical system with interface <fr:tex display="inline"><![CDATA[A]]></fr:tex></fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>Let <fr:tex display="inline"><![CDATA[A]]></fr:tex> be an arena. A <html:em>dynamical system</html:em> with interface <fr:tex display="inline"><![CDATA[A]]></fr:tex> is an object <fr:tex display="inline"><![CDATA[S \in  \mathcal {C}]]></fr:tex> and a lens <fr:tex display="inline"><![CDATA[TS \leftrightarrows  A]]></fr:tex>. A morphism of systems is a map <fr:tex display="inline"><![CDATA[S \to  S']]></fr:tex> so that this square commutes in <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}]]></fr:tex>:</html:p>
                    <html:p>
                      <html:figure>
                        <fr:resource hash="76ffbbe8b3989376dab62c35b6479118">
                          <fr:resource-content>
                            <html:img src="/76ffbbe8b3989376dab62c35b6479118.svg" />
                          </fr:resource-content>
                          <fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source>
                          <fr:resource-source type="latex" part="body"><![CDATA[
  \begin {tikzcd}
  TS \ar [d] \ar [r] & A \ar [d, equals]\\
  TS' \ar [r] & A
  \end {tikzcd}
]]></fr:resource-source>
                        </fr:resource>
                      </html:figure>
                    </html:p>
                    <html:p>
  The category of systems with interface <fr:tex display="inline"><![CDATA[A]]></fr:tex> is denoted <fr:tex display="inline"><![CDATA[\mathsf {Sys}(A)]]></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>6</fr:month>
                      <fr:day>30</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0029/</fr:uri>
                    <fr:display-uri>efr-0029</fr:display-uri>
                    <fr:route>/efr-0029/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Given a lens <fr:tex display="inline"><![CDATA[A \leftrightarrows  A',]]></fr:tex> postcomposition gives a functor <fr:tex display="inline"><![CDATA[\mathsf {Sys}(A) \to  \mathsf {Sys}(A')]]></fr:tex>.
  Given a chart <fr:tex display="inline"><![CDATA[A \rightrightarrows  A']]></fr:tex>, there is a <html:em>profunctor</html:em> <fr:tex display="inline"><![CDATA[\mathsf {Sys}(A) \nrightarrow  \mathsf {Sys}(A'),]]></fr:tex>
  where the set over <fr:tex display="inline"><![CDATA[TS \leftrightarrows  A]]></fr:tex> and <fr:tex display="inline"><![CDATA[TS' \leftrightarrows  A']]></fr:tex> is the set of maps <fr:tex display="inline"><![CDATA[S \to  S']]></fr:tex> so that this square commutes:
</html:p>
                    <html:p>
                      <html:figure>
                        <fr:resource hash="cb42698df8a57bc9800ebdf68b391f2b">
                          <fr:resource-content>
                            <html:img src="/cb42698df8a57bc9800ebdf68b391f2b.svg" />
                          </fr:resource-content>
                          <fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source>
                          <fr:resource-source type="latex" part="body"><![CDATA[
  \begin {tikzcd}
  TS \ar [d] \ar [r] & A \ar [d]\\
  TS' \ar [r] & A'
  \end {tikzcd}
]]></fr:resource-source>
                        </fr:resource>
                      </html:figure>
                    </html:p>
                    <html:p>
  This defines a double functor <fr:tex display="inline"><![CDATA[\mathsf {Sys}: \mathsf {\mathbb  Arena} \to  \mathsf {\mathbb  Cat}]]></fr:tex>.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  The fibration <fr:tex display="inline"><![CDATA[\int  \mathcal {A} \to  \mathcal {C}]]></fr:tex> encodes what sort of information can be "indexed over a space", while the section <fr:tex display="inline"><![CDATA[T: \mathcal {C} \to  \int  \mathcal {A}]]></fr:tex> tells us what sort of information (such as a next step, or a gradient vector) must be produced to give a dynamical system. In this respect, the theory is very similar to the coalgebraic approach to dynamical systems, or systems that "do something", and indeed we have the following:
</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>6</fr:month>
                      <fr:day>30</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0026/</fr:uri>
                    <fr:display-uri>efr-0026</fr:display-uri>
                    <fr:route>/efr-0026/</fr:route>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[F: \mathsf {Set} \to  \mathsf {Set}]]></fr:tex> be a functor.
  Then there is a dynamical systems theory where <fr:tex display="inline"><![CDATA[\mathcal {C} = \mathsf {Set}]]></fr:tex>, <fr:tex display="inline"><![CDATA[\mathcal {A}]]></fr:tex> is constant at <fr:tex display="inline"><![CDATA[\mathsf {Set}]]></fr:tex>,
  and <fr:tex display="inline"><![CDATA[T(X) = (X,F(X))]]></fr:tex>. It is easy to see that the category of closed dynamical systems in this theory is equivalently the category of <fr:tex display="inline"><![CDATA[F]]></fr:tex>-coalgebras.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  Of course, coalgebras can already encode systems with input and output---the point of the CST framework is to separate out the input and output of systems so that they can be acted on in a compositional manner.
</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>7</fr:month>
                      <fr:day>2</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-002F/</fr:uri>
                    <fr:display-uri>efr-002F</fr:display-uri>
                    <fr:route>/efr-002F/</fr:route>
                    <fr:title text="The theory of discrete dynamical systems">The theory of discrete dynamical systems</fr:title>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  There is a theory of dynamical systems with category of spaces <fr:tex display="inline"><![CDATA[\mathcal {C} = \mathsf {Set}]]></fr:tex>, category of bundles <fr:tex display="inline"><![CDATA[\mathcal {A}(X) = \mathsf {Set}_{/X}]]></fr:tex> (with pullbacks for reindexing), and tangent bundle <fr:tex display="inline"><![CDATA[TX = X \times  X \xrightarrow {\pi _0} X]]></fr:tex>.
  We call this the theory of <html:em>discrete dynamical systems</html:em>. (In the sense that they are both discrete-time and discrete-space).
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  In another direction, we have the following comparison result:
</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>6</fr:month>
                      <fr:day>30</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0027/</fr:uri>
                    <fr:display-uri>efr-0027</fr:display-uri>
                    <fr:route>/efr-0027/</fr:route>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  In the theory of discrete dynamical systems:
  <html:ol><html:li>The category of lenses <fr:tex display="inline"><![CDATA[\int  \mathcal {A}(-)^\mathrm {op}]]></fr:tex> is equivalently the category of <html:em>polynomial functors</html:em> and natural transformations between them.</html:li>
    <html:li>Using this equivalence, the category of dynamical systems with interface <fr:tex display="inline"><![CDATA[p]]></fr:tex> is exactly the category of <fr:tex display="inline"><![CDATA[p]]></fr:tex>-coalgebras and homomorphisms</html:li></html:ol></html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  The first part here (which works, suitably formulated, for any locally Cartesian closed category), is a classical part of the theory of polynomial functors, see eg <fr:link href="/kock-poly-classical/" title="Polynomial functors and polynomial monads" uri="https://erischel.com/kock-poly-classical/" display-uri="kock-poly-classical" type="local">Reference <fr:contextual-number uri="https://erischel.com/kock-poly-classical/" display-uri="kock-poly-classical" /></fr:link>. The second part is due to Spivak, see <fr:link href="/spivak-poly-abundant/" title="Poly: An abundant categorical setting for mode-dependent dynamics" uri="https://erischel.com/spivak-poly-abundant/" display-uri="spivak-poly-abundant" type="local">Reference <fr:contextual-number uri="https://erischel.com/spivak-poly-abundant/" display-uri="spivak-poly-abundant" /></fr:link>. There is an extensive body of work on the description of interacting (discrete, deterministic) dynamical systems in terms of polynomial functors, see e.g. also <fr:link href="/shapiro-spivak-dynamic-operads/" title="Dynamic Operads, Dynamic Categories: From Deep Learning to Prediction Markets" uri="https://erischel.com/shapiro-spivak-dynamic-operads/" display-uri="shapiro-spivak-dynamic-operads" type="local">Reference <fr:contextual-number uri="https://erischel.com/shapiro-spivak-dynamic-operads/" display-uri="shapiro-spivak-dynamic-operads" /></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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>7</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-GXJ0/</fr:uri>
                    <fr:display-uri>efr-GXJ0</fr:display-uri>
                    <fr:route>/efr-GXJ0/</fr:route>
                    <fr:title text="The theory of stochastic discrete dynamical systems">The theory of stochastic discrete dynamical systems</fr:title>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  There is a systems theory where <fr:tex display="inline"><![CDATA[\mathcal {C} = \mathsf {Set}, \mathcal {A}(X) = Kl(\Delta )^X]]></fr:tex> (with the evident reindexing maps) and <fr:tex display="inline"><![CDATA[T(X) = X \times  X]]></fr:tex>.
</html:p>
                    <html:p>
  In this theory, a closed dynamical system is a set equipped with a map <fr:tex display="inline"><![CDATA[X \to  \Delta (X)]]></fr:tex>. An open dynamical system has stochastic <html:em>update</html:em> function, but output which depends deterministically on the current system state.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  In fact this example works for any monad on the category of sets.
</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>2025</fr:year>
                      <fr:month>6</fr:month>
                      <fr:day>17</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-KZEM/</fr:uri>
                    <fr:display-uri>efr-KZEM</fr:display-uri>
                    <fr:route>/efr-KZEM/</fr:route>
                    <fr:title text="The theory of smooth dynamical systems">The theory of smooth dynamical systems</fr:title>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  There is a dynamical systems theory where <fr:tex display="inline"><![CDATA[\mathcal {C} = \mathsf {SmMfd}]]></fr:tex> is the category of smooth manifolds, <fr:tex display="inline"><![CDATA[\mathcal {A}_X]]></fr:tex> is the category of fiber bundles over <fr:tex display="inline"><![CDATA[X]]></fr:tex>, with <fr:tex display="inline"><![CDATA[f^*: \mathcal {A}_Y \to  \mathcal {A}_X]]></fr:tex> given by pullback along <fr:tex display="inline"><![CDATA[f: X \to  Y]]></fr:tex> (note that pullbacks of bundles always exist), and with <fr:tex display="inline"><![CDATA[TX]]></fr:tex> being the tangent bundle of <fr:tex display="inline"><![CDATA[X]]></fr:tex> in the ordinary sense. In this case, closed dynamical systems are manifolds equipped with (smooth) vector fields, which is what is classically thought of as a smooth dynamical system.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>7</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-9WQU/</fr:uri>
                    <fr:display-uri>efr-9WQU</fr:display-uri>
                    <fr:route>/efr-9WQU/</fr:route>
                    <fr:title text="Clock system">Clock system</fr:title>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Consider the theory of discrete-time, discrete dynamical systems from <fr:link href="/efr-002F/" title="The theory of discrete dynamical systems" uri="https://erischel.com/efr-002F/" display-uri="efr-002F" type="local">Example <fr:contextual-number uri="https://erischel.com/efr-002F/" display-uri="efr-002F" /></fr:link>. Let <fr:tex display="inline"><![CDATA[\xi : TS \leftrightarrows  {I \choose  O}]]></fr:tex> be a system.
  Consider the system <fr:tex display="inline"><![CDATA[c: T\mathbb {N} \leftrightarrows  {* \choose  \mathbb {N}}]]></fr:tex> given by <fr:tex display="inline"><![CDATA[n \mapsto  n]]></fr:tex> in the forwards direction, and <fr:tex display="inline"><![CDATA[(n,*) \mapsto  n+1]]></fr:tex> in the backwards direction. (To be clear, the object denoted <fr:tex display="inline"><![CDATA[{* \choose  \mathbb {N}}]]></fr:tex> is the map <fr:tex display="inline"><![CDATA[\mathbb {N} \to  \mathbb {N}]]></fr:tex>---it is a singleton <html:em>in each fiber</html:em>). Then a morphism of systems <fr:tex display="inline"><![CDATA[c \to  \xi ]]></fr:tex> consists of the following data:
</html:p>
                    <html:ol><html:li>
    A function <fr:tex display="inline"><![CDATA[x: \mathbb {N} \to  S]]></fr:tex>.
  </html:li>
  <html:li>
    Another function <fr:tex display="inline"><![CDATA[o: \mathbb {N} \to  O]]></fr:tex>.
  </html:li>
  <html:li>
    A third function <fr:tex display="inline"><![CDATA[i: \mathbb {N} \to  I]]></fr:tex> so that <fr:tex display="inline"><![CDATA[i(n) \in  I_{o(n)}]]></fr:tex>.
  </html:li>
  <html:li>
    So that <fr:tex display="inline"><![CDATA[o(n) = \xi (x(n))]]></fr:tex> and <fr:tex display="inline"><![CDATA[\xi ^\#(x(n),i(n)) = x(n+1)]]></fr:tex></html:li></html:ol>
                    <html:p>
  That is, it is a choice of a sequence <fr:tex display="inline"><![CDATA[x_n]]></fr:tex> of points in the state-space, and a sequence of inputs <fr:tex display="inline"><![CDATA[i_n]]></fr:tex> compatible with the outputs, so that this sequence <html:em>obeys the dynamics</html:em>. In other words, it is a <html:em>trajectory of the system.</html:em></html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  Because of this, one views a generic chart map as a <html:em>generalized trajectory</html:em>, of a type given by the domain system. As another example, taking the state space to be <fr:tex display="inline"><![CDATA[\{1,2, \dots , n\}]]></fr:tex> with an update map that carries <fr:tex display="inline"><![CDATA[n]]></fr:tex> to <fr:tex display="inline"><![CDATA[1,]]></fr:tex> one finds a system which classifies <html:em><fr:tex display="inline"><![CDATA[n]]></fr:tex>-periodic</html:em> trajectories. Similarly, in the smooth case, the system <fr:tex display="inline"><![CDATA[(\mathbb {R}, d/dt: \mathbb {R} \to  T\mathbb {R})]]></fr:tex> classifies solutions of a smooth differential equation (those which extend to infinity).
  Recent work by Lynch, Myers, Staton, and the author (<fr:link href="/lynch-myers-rischel-staton-stoch-clocks/" title="Clock systems for stochastic and non-deterministic categorical systems theories" uri="https://erischel.com/lynch-myers-rischel-staton-stoch-clocks/" display-uri="lynch-myers-rischel-staton-stoch-clocks" type="local">Reference <fr:contextual-number uri="https://erischel.com/lynch-myers-rischel-staton-stoch-clocks/" display-uri="lynch-myers-rischel-staton-stoch-clocks" /></fr:link>) constructs clock systems for theories of stochastic, discrete-time doctrines, although we will not delve into this here.
</html:p>
                <html:p>
  Because this thesis is about Markov fibrations, we have chosen to present these ideas in terms of fibrations equipped with sections. Myers' book <fr:link href="/myers-cst/" title="Categorical Systems Theory" uri="https://erischel.com/myers-cst/" display-uri="myers-cst" type="local">Reference <fr:contextual-number uri="https://erischel.com/myers-cst/" display-uri="myers-cst" /></fr:link> actually prefers the presentation in terms of indexed categories. Similarly, we construct a double category of systems which is fibred (in a certain sense) over the double category of arenas. Myers instead displays this as a <html:em>doubly indexed category</html:em> <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena} \to  \mathsf {\mathbb  Cat}]]></fr:tex>, which carries lenses to functors and charts to profunctors.
</html:p>
                <html:p>
  In a recent paper <fr:link href="/double-operadic-systems/" title="Towards a double operadic theory of systems" uri="https://erischel.com/double-operadic-systems/" display-uri="double-operadic-systems" type="local">Reference <fr:contextual-number uri="https://erischel.com/double-operadic-systems/" display-uri="double-operadic-systems" /></fr:link>, Myers and Libkind further develop the category theory of what they term <html:em>double operadic categorical systems theory,</html:em> which again concerns notions of "composable system" which are described in terms of such doubly indexed category (although for technical reasons, they use the language of <html:em>right modules</html:em> in that paper and a somewhat different presentation, the concept is the same.)
</html:p>
              </fr:mainmatter>
            </fr:tree>
          </fr:mainmatter>
        </fr:tree>
        <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>2025</fr:year>
              <fr:month>5</fr:month>
              <fr:day>4</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/efr-GFG0/</fr:uri>
            <fr:display-uri>efr-GFG0</fr:display-uri>
            <fr:route>/efr-GFG0/</fr:route>
            <fr:title text="Open Games with external choice in Markov Fibrations">Open Games with external choice in Markov Fibrations</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>2025</fr:year>
                  <fr:month>5</fr:month>
                  <fr:day>4</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-7EHV/</fr:uri>
                <fr:display-uri>efr-7EHV</fr:display-uri>
                <fr:route>/efr-7EHV/</fr:route>
                <fr:title text="Introduction">Introduction</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  Game theory is a field of economics which studies mathematical models of human decisionmaking. Classically, game theory is particularly interested in the behavior resulting from individual agents optimizing simple objectives (such as the expected value of some real-valued function of each players' decision) when multiple such players interact. Although the analysis of games, obviously, has a long prehistory, the field was put on its modern theoretical footing by Von Neumann in 1928 (<fr:link href="/neumann-games/" title="Zur Theorie der Gesellschaftsspiele" uri="https://erischel.com/neumann-games/" display-uri="neumann-games" type="local">Reference <fr:contextual-number uri="https://erischel.com/neumann-games/" display-uri="neumann-games" /></fr:link>, see also <fr:link href="/neumann-morgenstern-games/" title="Theory of games and economic behavior" uri="https://erischel.com/neumann-morgenstern-games/" display-uri="neumann-morgenstern-games" type="local">Reference <fr:contextual-number uri="https://erischel.com/neumann-morgenstern-games/" display-uri="neumann-morgenstern-games" /></fr:link> for a more thorough treatment from this era). The basic problem studied here is this: given two finite sets <fr:tex display="inline"><![CDATA[\Sigma _1, \Sigma _2]]></fr:tex> of <html:em>strategies</html:em>---that is, the choices available to the two players---and a function <fr:tex display="inline"><![CDATA[f: \Sigma _1 \times  \Sigma _2 \to  \mathbb {R}]]></fr:tex> which assigns to a pair of such choices a score, which player 1 seeks to maximize and player 2 seeks to minimize, what can be said about the rational decisionmaking of each player? 
</html:p>
                <html:p>
  Suppose each player has access to some source of randomness, so that they may each choose a distribution on their respective strategy set to play. This is called a <html:em>mixed strategy</html:em>. Suppose player 2 has the opportunity to move <html:em>knowing</html:em> the distribution chosen by player 1 (but not the value drawn from it), and suppose he prefers to minimize the expected outcome of the game. Writing <fr:tex display="inline"><![CDATA[f(\mu _1,\mu _2)]]></fr:tex> for <fr:tex display="inline"><![CDATA[E_{x \sim  \mu _1, y \sim  \mu _2}f(x,y)]]></fr:tex> for brevity, if player 1 selects the distribution <fr:tex display="inline"><![CDATA[\mu _1]]></fr:tex>, clearly player 2 must select the distribution <fr:tex display="inline"><![CDATA[\mathrm {argmin}_{\mu _2} f(\mu _1,\mu _2)]]></fr:tex>. Knowing this, player 1 will select the distribution <fr:tex display="block"><![CDATA[\mathrm {argmax}_{\mu _1} \min _{\mu _2} f(\mu _1,\mu _2),]]></fr:tex> and the expected score of the game will be <fr:tex display="block"><![CDATA[\max _{\mu _1} \min _{\mu _2} f(\mu _1,\mu _2).]]></fr:tex></html:p>
                <html:p>
  If the selection happens in the other order, of course, the result will be <fr:tex display="block"><![CDATA[\min _{\mu _2} \max _{\mu _1} f(\mu _1,\mu _2).]]></fr:tex> Clearly choosing <html:em>knowing</html:em> your opponent's (mixed) strategy can not be a disadvantage compared to choosing with no information, and so we have 
  <fr:tex display="block"><![CDATA[\min _{\mu _2} \max _{\mu _1} f(\mu _1,\mu _2) \leq  \max _{\mu _1} \min _{\mu _2} f(\mu _1,\mu _2).]]></fr:tex> Von Neumann's great <html:em>minimax</html:em> theorem is that these values agree, and this implies that by choosing as if your opponent would know your (mixed) strategy, you obtain a result as good as you could have obtained if you knew your opponents' strategy---hence neither player <html:em>could</html:em> improve their outcome, even if they had the advantage of greater information.
</html:p>
                <html:p>
  This is a strong argument for the optimality of such decisions. The key assumption is that the players are perfectly opposed, that is, player 2 seeks to minimize precisely the value that player 1 seeks to maximize. Nash in <fr:link href="/nash-noncoop-games/" title="Non-Cooperative Games" uri="https://erischel.com/nash-noncoop-games/" display-uri="nash-noncoop-games" type="local">Reference <fr:contextual-number uri="https://erischel.com/nash-noncoop-games/" display-uri="nash-noncoop-games" /></fr:link> extended the theory to the more general class of games where players simply each have their own utility function, although it should be noted that Nash merely proved the <html:em>existence</html:em> of equilibria---that is, strategy sets where no player can improve their situation by switching strategies. It is computationally intractable (<fr:link href="/nash-complexity/" title="The Complexity of Computing a Nash Equilibrium" uri="https://erischel.com/nash-complexity/" display-uri="nash-complexity" type="local">Reference <fr:contextual-number uri="https://erischel.com/nash-complexity/" display-uri="nash-complexity" /></fr:link>) to identify Nash equilibria in an arbitrary game, and so to apply the theory we're forced to analyze each game in an ad hoc way.
</html:p>
                <html:p>
  We will not go intro a serious review of game theory here, we mention the above details mainly to contextualize our future definitions. For a modern reference on game theory see eg <fr:link href="/game-theory-maschler-textbook/" title="Game theory" uri="https://erischel.com/game-theory-maschler-textbook/" display-uri="game-theory-maschler-textbook" type="local">Reference <fr:contextual-number uri="https://erischel.com/game-theory-maschler-textbook/" display-uri="game-theory-maschler-textbook" /></fr:link>, or <fr:link href="/osborne-intro-gametheory/" title="An Introduction to Game Theory" uri="https://erischel.com/osborne-intro-gametheory/" display-uri="osborne-intro-gametheory" type="local">Reference <fr:contextual-number uri="https://erischel.com/osborne-intro-gametheory/" display-uri="osborne-intro-gametheory" /></fr:link> for a textbook treatment.
</html:p>
                <html:p>
  In his thesis (<fr:link href="/hedges-towards-compositional-thesis/" title="Towards compositional game theory" uri="https://erischel.com/hedges-towards-compositional-thesis/" display-uri="hedges-towards-compositional-thesis" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-towards-compositional-thesis/" display-uri="hedges-towards-compositional-thesis" /></fr:link>), Hedges introduced a novel approach to game theory which he named <html:em>compositional game theory,</html:em> studying objects called <html:em>open games</html:em>. The idea of open games is to describe a type of "partial" game which has an interface to the world---some part of the payoff function being dependent on an undetermined environment, into which hole can be inserted another game. This is the sense in which they are <html:em>open</html:em>. Based on these, one can build a complex game up out of simpler subparts, as well as leverage a string diagramattical syntax to analyze games.
</html:p>
                <html:p>
  The original definition of open game cannot help but seem somewhat ad hoc. It was quickly realized that a large part of the definition can be understood to say that a game is a function <fr:tex display="inline"><![CDATA[\Sigma  \to  \mathsf {Lens}({S \choose  X},{R \choose  Y})]]></fr:tex> from a strategy set into a set of lenses, and this part of the game composes by lens composition.
</html:p>
                <html:p>
  The additional data of an open game is a so-called <html:em>equilibrium relation</html:em>, which determines which strategies are equilibria in a given situation (each strategy really represents a set of strategies, one for each player). In <fr:link href="/towards-cybercat/" title="Towards Foundations of Categorical Cybernetics" uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" type="local">Reference <fr:contextual-number uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" /></fr:link>, the author, Capucci, Gavranovic and Hedges demonstrated that this can be further simplified by realizing an open game as a parametrized map in lenses---a morphism in <fr:tex display="inline"><![CDATA[\mathsf {Para}(\mathsf {Lens}(\mathcal {C}))]]></fr:tex> (in fact, one often wants to consider <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C})]]></fr:tex> for, for example, Markov categories <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, to account for mixed strategies) along with a notion of equilibrium relation defined on the parameter object <fr:tex display="inline"><![CDATA[{\Omega  \choose  \Sigma }]]></fr:tex>. We will begin this chapter by recapping this idea.
</html:p>
                <html:p>
  On a conceptual level, there is a natural operation on games, called <html:em>external choice,</html:em> which assigns to two open games <fr:tex display="inline"><![CDATA[{A_1 \choose  X_1} \to  {B_1 \choose  Y_1}, {A_2 \choose  X_2} \to  {B_2 \choose  Y_2}]]></fr:tex> a new game, whose environment begins by making a choice between one of these games, lets that one happen, then provides some payoff for it at the end. The natural type for the interface of this operation is <fr:tex display="inline"><![CDATA[{A_1 \choose  X_1} + {A_2 \choose  X_2} \to  {B_1 \choose  Y_1} + {B_2 \choose  Y_2},]]></fr:tex> but unfortunately the category of optics doesn't have coproducts. The category of <html:em>lenses</html:em> can be extended with coproducts (into dependent lenses), but the analysis of mixed strategies makes probability an absolute necessity for a useful theory of games.
</html:p>
                <html:p>
  The introduction of Markov fibrations provides a solution to this problem, and in the second half of this chapter, we provide such an external choice operation on open games. Although the approach based on Markov fibrations is novel, the approach to defining the external choice operator is otherwise very similar to one appearing in presently unpublished work by the author, Braithwaite, Hedges and Videla (this paper used a more specialized approach to adding coproducts to <fr:tex display="inline"><![CDATA[\mathsf {Optic}]]></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>2025</fr:year>
                  <fr:month>5</fr:month>
                  <fr:day>4</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-CA6T/</fr:uri>
                <fr:display-uri>efr-CA6T</fr:display-uri>
                <fr:route>/efr-CA6T/</fr:route>
                <fr:title text="Open games in Monoidal categories">Open games in Monoidal categories</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-EGK8/</fr:uri>
                    <fr:display-uri>efr-EGK8</fr:display-uri>
                    <fr:route>/efr-EGK8/</fr:route>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a monoidal category. A <html:em>selection relation</html:em> on an object <fr:tex display="inline"><![CDATA[A \in  \mathcal {C}]]></fr:tex> is a relation <fr:tex display="inline"><![CDATA[\epsilon  \subseteq  \mathcal {C}(I,A) \times  \mathcal {C}(A,I)]]></fr:tex>. We write <fr:tex display="inline"><![CDATA[\epsilon (a,k)]]></fr:tex> for the statement <fr:tex display="inline"><![CDATA[(a,k) \in  \epsilon ]]></fr:tex>.
</html:p>
                    <html:p>
  Selection relations are ordered by inclusion, and so form a (posetal) category, which we denote <fr:tex display="inline"><![CDATA[\mathbb {S}_\mathcal {C}(A)]]></fr:tex>.
  Given <fr:tex display="inline"><![CDATA[f: A \to  B,]]></fr:tex> we define the pushforward on selection relations by <fr:tex display="inline"><![CDATA[f_*\epsilon  = \{(fx,k) \mid  (x, kf) \in  \epsilon \}]]></fr:tex>. In other words, <fr:tex display="inline"><![CDATA[f_*\epsilon (y,k)]]></fr:tex> if and only if there exists <fr:tex display="inline"><![CDATA[x: I \to  X]]></fr:tex> so that <fr:tex display="inline"><![CDATA[fx = y]]></fr:tex> and <fr:tex display="inline"><![CDATA[\epsilon (x, kf)]]></fr:tex>. 
</html:p>
                    <html:p>
  It is clear that pushforward is monotone, so that this defines a functor <fr:tex display="inline"><![CDATA[\mathbb {S}_\mathcal {C} : \mathcal {C} \to  \mathsf {Cat}]]></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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-YKR3/</fr:uri>
                    <fr:display-uri>efr-YKR3</fr:display-uri>
                    <fr:route>/efr-YKR3/</fr:route>
                    <fr:taxon>Remark</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Of course, there is an equally good "pull-back" operation on selection relations given by <fr:tex display="inline"><![CDATA[\{(x,kf) \mid  (fx, k) \in  \epsilon \}]]></fr:tex> (this is the pushforward in <fr:tex display="inline"><![CDATA[\mathbb {S}_{\mathcal {C}^\mathrm {op}}]]></fr:tex>). These are adjoint representatives of the same profunctor, which should arguably be regarded as the primary object of interest---that is, we could work with a functor <fr:tex display="inline"><![CDATA[\mathcal {C} \to  \mathsf {\mathbb  Cat}]]></fr:tex>, the category of categories and profunctors, where we say two selection relations <fr:tex display="inline"><![CDATA[\epsilon  \in  \mathbb {S}_X, \epsilon ' \in  \mathbb {S}_Y]]></fr:tex> are related by <fr:tex display="inline"><![CDATA[f :X \to  Y]]></fr:tex> if <fr:tex display="inline"><![CDATA[\epsilon (x, kf) \Rightarrow  \epsilon '(fx, k)]]></fr:tex>.
</html:p>
                    <html:p>
  However, we will stick with the pushforward definition for now, since it is conceptually simpler and good enough for our purposes.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>5</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-BNB2/</fr:uri>
                    <fr:display-uri>efr-BNB2</fr:display-uri>
                    <fr:route>/efr-BNB2/</fr:route>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:ol><html:li>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C} = \mathsf {Optic}(\mathsf {Set})]]></fr:tex>. There is a selection function <fr:tex display="inline"><![CDATA[\mathrm {argmax}_X \in  \mathbb {S}({\mathbb {R} \choose  X})]]></fr:tex> defined by <fr:tex display="inline"><![CDATA[\mathrm {argmax}(x,f)]]></fr:tex> if and only if <fr:tex display="inline"><![CDATA[x]]></fr:tex> is a maximum of <fr:tex display="inline"><![CDATA[f]]></fr:tex>. (Identifying maps <fr:tex display="inline"><![CDATA[I \to  {\mathbb {R} \choose  X}]]></fr:tex> with points <fr:tex display="inline"><![CDATA[x \in  X,]]></fr:tex> and maps <fr:tex display="inline"><![CDATA[{\mathbb {R} \choose  X} \to  I]]></fr:tex> with functions <fr:tex display="inline"><![CDATA[X \to  \mathbb {R}]]></fr:tex>)</html:li>
  <html:li>
    In the same category, for each <fr:tex display="inline"><![CDATA[r \in  \mathbb {R},]]></fr:tex> there is a selection function given by <fr:tex display="inline"><![CDATA[\epsilon (x,f) \Leftrightarrow  f(x) \geq  r]]></fr:tex>. This corresponds to <html:em>satisficing</html:em> at the value <fr:tex display="inline"><![CDATA[r]]></fr:tex> (<fr:link href="/simon-environment-satisficing/" title="Rational choice and the structure of the environment" uri="https://erischel.com/simon-environment-satisficing/" display-uri="simon-environment-satisficing" type="local">Reference <fr:contextual-number uri="https://erischel.com/simon-environment-satisficing/" display-uri="simon-environment-satisficing" /></fr:link>)---that is, selecting any strategy which achieves this value or greater.
  </html:li>
  <html:li>
    For <fr:tex display="inline"><![CDATA[\mathcal {C} = \mathsf {Optic}(\mathcal {C}'),]]></fr:tex> with <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex> semiCartesian, there is a selection function <fr:tex display="inline"><![CDATA[\epsilon (x,k) \Leftrightarrow  kx = x]]></fr:tex> (using the same identification as above). The agents with this selection function are called <html:em>predicting agents</html:em> in <fr:link href="/bolt-hedges-winschel-predicting/" title="The algebra of predicting agents" uri="https://erischel.com/bolt-hedges-winschel-predicting/" display-uri="bolt-hedges-winschel-predicting" type="local">Reference <fr:contextual-number uri="https://erischel.com/bolt-hedges-winschel-predicting/" display-uri="bolt-hedges-winschel-predicting" /></fr:link>. These agents attempt to predict the value the environment will return to them. 
  </html:li>
  <html:li>
    For <fr:tex display="inline"><![CDATA[\mathcal {C} = \mathsf {Bun}^\mathrm {fop},]]></fr:tex> the fiberwise opposite of manifolds and smooth bundles---that is, the category of lenses between smooth manifolds---there is a selection function on the tangent bundle <fr:tex display="inline"><![CDATA[TX]]></fr:tex> given by <fr:tex display="inline"><![CDATA[\epsilon (x,k)]]></fr:tex> if and only if <fr:tex display="inline"><![CDATA[k(x) = 0]]></fr:tex>---that is, if <fr:tex display="inline"><![CDATA[x]]></fr:tex> is a fixpoint of the dynamical system identified by <fr:tex display="inline"><![CDATA[k: X \to  TX]]></fr:tex>.
  </html:li>
  <html:li>
    Let <fr:tex display="inline"><![CDATA[\mathcal {A} \to  \mathcal {C}]]></fr:tex> be a dynamical systems theory and work in the category of lenses. Suppose the monoidal structure on <fr:tex display="inline"><![CDATA[\mathcal {A}]]></fr:tex> is Cartesian, so that a lens <fr:tex display="inline"><![CDATA[I \to  {A \choose  X}]]></fr:tex> is the same as a map <fr:tex display="inline"><![CDATA[* \to  X]]></fr:tex>. Note that <fr:tex display="inline"><![CDATA[I = T(*)]]></fr:tex> has a distinguished section given by the identity. Then there is a selection function on each object <fr:tex display="inline"><![CDATA[TX]]></fr:tex> where a lens <fr:tex display="inline"><![CDATA[I \to  TX]]></fr:tex>, given by <fr:tex display="inline"><![CDATA[x: * \to  X,]]></fr:tex> is in equilibrium with respect to a lens <fr:tex display="inline"><![CDATA[TX \leftrightarrows  I]]></fr:tex> if <fr:tex display="inline"><![CDATA[x]]></fr:tex> is a trajectory between those systems---that is, if it is an equilibrium state of the smooth dynamical system <fr:tex display="inline"><![CDATA[TX \leftrightarrows  I]]></fr:tex>. This subsumes the two previous examples.
  </html:li></html:ol>
                  </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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-PTAE/</fr:uri>
                    <fr:display-uri>efr-PTAE</fr:display-uri>
                    <fr:route>/efr-PTAE/</fr:route>
                    <fr:title text="The Nash Product">The Nash Product</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\epsilon  \in  \mathbb {S}(X), \epsilon ' \in  \mathbb {S}(Y)]]></fr:tex> be selection relations.
  Their <html:em>Nash product</html:em> <fr:tex display="inline"><![CDATA[\epsilon  \boxtimes  \epsilon ' \in  \mathbb {S}(X \otimes  Y)]]></fr:tex> is given by <fr:tex display="inline"><![CDATA[\{(x \otimes  y, k) \mid  \epsilon (x,k(1_X \otimes  y)), \epsilon '(y, k(x \otimes  1_Y))\}]]></fr:tex></html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  Let us unpack this very dense definition.
  Given a context <fr:tex display="inline"><![CDATA[k: X \otimes  Y \to  I]]></fr:tex>, a strategy <fr:tex display="inline"><![CDATA[I \to  X \otimes  Y]]></fr:tex> is in equilibrium if:
  <html:ol><html:li>
      It decomposes as a tensor product of <fr:tex display="inline"><![CDATA[x: I \to  X, y: I \to  Y]]></fr:tex>.
    </html:li>
    <html:li>
      Composing <fr:tex display="inline"><![CDATA[k]]></fr:tex> with <fr:tex display="inline"><![CDATA[y]]></fr:tex>, we obtain a map <fr:tex display="inline"><![CDATA[X \to  I]]></fr:tex>. This is the context of the first player assuming the second player plays <fr:tex display="inline"><![CDATA[y]]></fr:tex>. <fr:tex display="inline"><![CDATA[x]]></fr:tex> must be an equilibrium strategy for this map. Simultaneously, <fr:tex display="inline"><![CDATA[y]]></fr:tex> must be an equilibrium for the analogous composite of <fr:tex display="inline"><![CDATA[k]]></fr:tex> and <fr:tex display="inline"><![CDATA[x]]></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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>5</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-5E1V/</fr:uri>
                    <fr:display-uri>efr-5E1V</fr:display-uri>
                    <fr:route>/efr-5E1V/</fr:route>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Consider the selection relation <fr:tex display="inline"><![CDATA[\mathrm {argmax}_X \boxtimes  \mathrm {argmax}_Y]]></fr:tex> on <fr:tex display="inline"><![CDATA[{\mathbb {R} \times  \mathbb {R} \choose  X \times  Y}]]></fr:tex>. A point <fr:tex display="inline"><![CDATA[(x,y)]]></fr:tex> is an equilibrium for a function <fr:tex display="inline"><![CDATA[k: X \times  Y \to  \mathbb {R}^2]]></fr:tex> if and only if <fr:tex display="inline"><![CDATA[x]]></fr:tex> maximizes <fr:tex display="inline"><![CDATA[k_1(-,y)]]></fr:tex> and <fr:tex display="inline"><![CDATA[y]]></fr:tex> maximizes <fr:tex display="inline"><![CDATA[k_2(x,-)]]></fr:tex>. In other words, if <fr:tex display="inline"><![CDATA[x,y]]></fr:tex> is a Nash equilibrium (<fr:link href="/nash-noncoop-games/" title="Non-Cooperative Games" uri="https://erischel.com/nash-noncoop-games/" display-uri="nash-noncoop-games" type="local">Reference <fr:contextual-number uri="https://erischel.com/nash-noncoop-games/" display-uri="nash-noncoop-games" /></fr:link>) in the usual sense for the game with payoff matrix <fr:tex display="inline"><![CDATA[k]]></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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-Z2BR/</fr:uri>
                    <fr:display-uri>efr-Z2BR</fr:display-uri>
                    <fr:route>/efr-Z2BR/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  The <fr:link href="/efr-PTAE/" title="The Nash Product" uri="https://erischel.com/efr-PTAE/" display-uri="efr-PTAE" type="local">Nash product</fr:link> <fr:tex display="inline"><![CDATA[\mathbb {S}(X) \times  \mathbb {S}(Y) \to  \mathbb {S}(X \otimes  Y),]]></fr:tex> along with the map <fr:tex display="inline"><![CDATA[* \to  \mathbb {S}(I)]]></fr:tex> given by the full set <fr:tex display="inline"><![CDATA[S(I) \times  S(I)]]></fr:tex> equips <fr:tex display="inline"><![CDATA[\mathbb {S}]]></fr:tex> with a lax monoidal structure.
</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>2025</fr:year><fr:month>5</fr:month><fr:day>4</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    It is trivial to verify associativity and unitality of the monoidal structure. The only hard part is to verify that <fr:tex display="inline"><![CDATA[\boxtimes ]]></fr:tex> is actually a natural transformation. To that end, let <fr:tex display="inline"><![CDATA[f: X \to  Y]]></fr:tex> and <fr:tex display="inline"><![CDATA[g: X' \to  Y']]></fr:tex> be morphisms of <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. Let <fr:tex display="inline"><![CDATA[\epsilon  \in  \mathbb {S}(X), \epsilon ' \in  \mathbb {S}(Y)]]></fr:tex>.
  </html:p>
  <html:p>
    First consider the statement <fr:tex display="inline"><![CDATA[(f \otimes  g)_*(\epsilon  \boxtimes  \epsilon ')(s,k)]]></fr:tex>. This holds if and only if <fr:tex display="inline"><![CDATA[s: I \to  X \otimes  Y]]></fr:tex> factors as <fr:tex display="inline"><![CDATA[(f \otimes  g)s']]></fr:tex> so that <fr:tex display="inline"><![CDATA[(\epsilon  \boxtimes  \epsilon ')(s', k(f \otimes  g))]]></fr:tex>. This in turn means <fr:tex display="inline"><![CDATA[s' = x \otimes  x']]></fr:tex> and <fr:tex display="inline"><![CDATA[\epsilon (x, k(f \otimes  f')(1_X \otimes  x'))]]></fr:tex> and analogously for <fr:tex display="inline"><![CDATA[\epsilon ']]></fr:tex>.
  </html:p>
  <html:p>
    Now consider the statement <fr:tex display="inline"><![CDATA[f_*\epsilon  \boxtimes  g_*\epsilon ']]></fr:tex>. This means that <fr:tex display="inline"><![CDATA[s]]></fr:tex> factors as <fr:tex display="inline"><![CDATA[y \otimes  y']]></fr:tex> so that <fr:tex display="inline"><![CDATA[f_*\epsilon (y, k(1_Y \otimes  y'))]]></fr:tex> and analogously for <fr:tex display="inline"><![CDATA[y']]></fr:tex>, which in turn means that <fr:tex display="inline"><![CDATA[y]]></fr:tex> factors as <fr:tex display="inline"><![CDATA[fx]]></fr:tex> so that <fr:tex display="inline"><![CDATA[\epsilon (x, k(1_Y \otimes  y')f)]]></fr:tex>. Using the axioms of a monoidal category, it is straightforward to see that these two requirements on <fr:tex display="inline"><![CDATA[x, x']]></fr:tex> are equivalent, hence we have our naturality.
  </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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>5</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-UI90/</fr:uri>
                    <fr:display-uri>efr-UI90</fr:display-uri>
                    <fr:route>/efr-UI90/</fr:route>
                    <fr:taxon>Corollary</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Since <fr:tex display="inline"><![CDATA[\mathbb {S}]]></fr:tex> is lax monoidal, its Grothendieck construction <fr:tex display="inline"><![CDATA[\int  \mathbb {S}_\mathcal {C}]]></fr:tex> acquires a monoidal structure (<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>).
  We write this category <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathbb {S}]]></fr:tex>---explicitly, it is given as follows:
</html:p>
                    <html:ol><html:li>The objects are pairs <fr:tex display="inline"><![CDATA[(X,\epsilon )]]></fr:tex> where <fr:tex display="inline"><![CDATA[X \in  \mathcal {C}]]></fr:tex> and <fr:tex display="inline"><![CDATA[\epsilon  \in  \mathbb {S}(X)]]></fr:tex> is a selection relation on it</html:li>
  <html:li>The morphisms are morphisms <fr:tex display="inline"><![CDATA[f: X \to  Y]]></fr:tex> so that, for every <fr:tex display="inline"><![CDATA[x: I \to  X, k: Y \to  I]]></fr:tex>, <fr:tex display="inline"><![CDATA[\epsilon (x, kf) \Rightarrow  \epsilon (fx, k)]]></fr:tex></html:li>
  <html:li>The monoidal structure is given by <fr:tex display="inline"><![CDATA[(X,\epsilon ) \otimes  (Y,\epsilon ') = (X \otimes  Y, \epsilon  \boxtimes  \epsilon ')]]></fr:tex></html:li></html:ol>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  Now we are ready to make the slick definition of open games.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>5</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-1WGM/</fr:uri>
                    <fr:display-uri>efr-1WGM</fr:display-uri>
                    <fr:route>/efr-1WGM/</fr:route>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a semiCartesian symmetric monoidal category. The symmetric monoidal double category of <html:em>open games in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex></html:em> is <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {Game}}(\mathcal {C}) = \mathsf {\mathbb  Para}_{\mathsf {Optic}(\mathcal {C})_\mathbb {S}}(\mathsf {Optic}(\mathcal {C}))]]></fr:tex>.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  Note that in this case, <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C})(I, {A \choose  X}) = \mathcal {C}(I,X),]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C})({A \choose  X},I) = \mathcal {C}(X,A)]]></fr:tex>. Thus a selection function decides, for each <html:em>payoff function <fr:tex display="inline"><![CDATA[X \to  A]]></fr:tex></html:em>, which of the states <fr:tex display="inline"><![CDATA[I \to  X]]></fr:tex> are suitable equilibria.
</html:p>
                <html:p>
  Before we proceed to the case of stochastic lenses, we will pause briefly to make a small modification to the preceding theory as presented in <fr:link href="/towards-cybercat/" title="Towards Foundations of Categorical Cybernetics" uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" type="local">Reference <fr:contextual-number uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" /></fr:link>. In a game with forwards play function <fr:tex display="inline"><![CDATA[\Sigma  \times  X \to  Y,]]></fr:tex> there are two ways to talk about the player's "choice"---we may say that the player chooses a strategy <fr:tex display="inline"><![CDATA[\sigma  \in  \Sigma ,]]></fr:tex> which then has some effect. Or we may say that the choice is really the <fr:tex display="inline"><![CDATA[y \in  Y,]]></fr:tex> and the strategy <fr:tex display="inline"><![CDATA[\sigma ]]></fr:tex> is the "precommitment" of choosing what to do given each possible <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex>.
</html:p>
                <html:p>
  Once we introduce randomness---working in <fr:tex display="inline"><![CDATA[Kl(\Delta )]]></fr:tex>, for example---we see that there are two <html:em>distinct</html:em> ways for a player to make a random choice: first, his strategy <fr:tex display="inline"><![CDATA[I \to  \Delta (\Sigma )]]></fr:tex> may be stochastic---that is, he is choosing a random strategy. Or the morphism <fr:tex display="inline"><![CDATA[\Sigma  \times  X \to  \Delta (Y)]]></fr:tex> may be stochastic---this means each strategy <fr:tex display="inline"><![CDATA[\sigma ]]></fr:tex> contains a specification of how to randomly choose <fr:tex display="inline"><![CDATA[y]]></fr:tex> given each possible <fr:tex display="inline"><![CDATA[x]]></fr:tex>.
</html:p>
                <html:p>
  In the case where <fr:tex display="inline"><![CDATA[X = *]]></fr:tex>, the distinction is between taking <fr:tex display="inline"><![CDATA[\Sigma  = Y]]></fr:tex> and letting the play function be the identity, and taking <fr:tex display="inline"><![CDATA[\Sigma  = \Delta (Y)]]></fr:tex> and letting the play function be the <html:em>sampling map</html:em> which stochastically draws an element from a distribution.
</html:p>
                <html:p>
  We take the view that the latter is the proper presentation of this game---this goes along with the terminology in the classical game theory literature, which would certainly regard a distribution on the set of possible moves as a (mixed) strategy. Having represented our games like this, we may restrict ourselves to considering <html:em>deterministic</html:em> maps <fr:tex display="inline"><![CDATA[I \to  \Sigma ]]></fr:tex> as strategies. This also fixes the awkwardness in the definition of the Nash product, since now every strategy in <fr:tex display="inline"><![CDATA[\Sigma _1 \otimes  \Sigma _2]]></fr:tex> decomposes uniquely as a pair of strategies.
</html:p>
                <html:p>
  We quickly modify the preceding definitions to make sense of this. Note that we also modify the reparametrization maps to be deterministic (in the base).
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-6I8U/</fr:uri>
                    <fr:display-uri>efr-6I8U</fr:display-uri>
                    <fr:route>/efr-6I8U/</fr:route>
                    <fr:title text="Open games in a stochastic module">Open games in a stochastic module</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> be a symmetric monoidal stochastic module fibration over the Markov category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. Recall that <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathcal {D})]]></fr:tex> acquires a symmetric monoidal structure. Denote as usual <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathcal {D})|_\mathrm {det} = \mathsf {SLens}(\mathcal {D}) \times _{\mathcal {C}} \mathcal {C}_\mathrm {det}]]></fr:tex>. Note that this is stable under the monoidal product, and acts on <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathcal {D})]]></fr:tex> via the inclusion.
</html:p>
                    <html:p>
  Then the category of <html:em>open games in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex></html:em> is the category <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {Game}} = \mathsf {Para}_{(\mathsf {SLens}(\mathcal {D})|_\mathrm {det})_\mathbb {S}}(\mathsf {SLens}(\mathcal {D}))]]></fr:tex>.
</html:p>
                    <html:p>
  When <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> is a Markov prefibration, we overload the notation by writing <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {Game}}(\mathcal {D}) = \mathsf {Game}(\mathcal {D}|_\mathrm {det})]]></fr:tex>.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  We now introduce the notion of <html:em>strategic equivalence,</html:em> which identified two open games if they have the same equilibria for every costate <fr:tex display="inline"><![CDATA[\overline {\Sigma } \to  I]]></fr:tex> which can actually occur as a result of pasting the game <fr:tex display="inline"><![CDATA[\overline {\Sigma } \otimes  \bar {X} \to  \bar {Y}]]></fr:tex> into some larger diagram.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-K0Y8/</fr:uri>
                    <fr:display-uri>efr-K0Y8</fr:display-uri>
                    <fr:route>/efr-K0Y8/</fr:route>
                    <fr:title text="Context">Context</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[X,Y]]></fr:tex> be objects of a symmetric monoidal category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. A <html:em>context</html:em> for <fr:tex display="inline"><![CDATA[X,Y]]></fr:tex> is a tuple <fr:tex display="inline"><![CDATA[M \in  \mathcal {C}, s: I \to  X \otimes  M, k: Y \otimes  M \to  I]]></fr:tex>. We denote the set of contexts <fr:tex display="inline"><![CDATA[\mathrm {Ctx}(X,Y)]]></fr:tex>.
</html:p>
                    <html:p>
  Given a morphism <fr:tex display="inline"><![CDATA[f: P \otimes  X \to  Y,]]></fr:tex> and a context <fr:tex display="inline"><![CDATA[c = (M,s,k),]]></fr:tex> the costate <fr:tex display="inline"><![CDATA[k(f \otimes  1_M)(1_{P} \otimes  s)]]></fr:tex> will be called the induced 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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-I1K5/</fr:uri>
                    <fr:display-uri>efr-I1K5</fr:display-uri>
                    <fr:route>/efr-I1K5/</fr:route>
                    <fr:taxon>Remark</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  The preceding definition clearly works in a non-symmetric monoidal category as well.
  In this case, arguably, a context should be defined to consist of maps <fr:tex display="inline"><![CDATA[I \to  M_1 \otimes  X \otimes  M_2, M_1 \otimes  Y \otimes  M_2 \to  I]]></fr:tex>. However, the problem with this from our point of view is that it doesn't allow the definition of a costate on <fr:tex display="inline"><![CDATA[P]]></fr:tex> given a parametrized map (since one cannot commute the <fr:tex display="inline"><![CDATA[P]]></fr:tex> past the <fr:tex display="inline"><![CDATA[M_1]]></fr:tex>), which is what we're interested in.
</html:p>
                    <html:p>
  It is also worth observing that contexts are essentially the same thing as optics <fr:tex display="inline"><![CDATA[{I \choose  I} \to  {Y \choose  X}]]></fr:tex>. We have not specified an equivalence relation on contexts (we do not need it,) but it is easy to see that for any parametrized map, two contexts that are sliding equivalent give the same induced 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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-R46X/</fr:uri>
                    <fr:display-uri>efr-R46X</fr:display-uri>
                    <fr:route>/efr-R46X/</fr:route>
                    <fr:title text="Strategic Equivalence">Strategic Equivalence</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> be a monoidal stochastic module fibration over a Markov category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, and consider a 2-cell <fr:tex display="inline"><![CDATA[\alpha : G_1 \to  G_2: \bar {X} \to  \bar {Y} \in  \widetilde {\mathsf {Game}}(\mathsf {SLens}(\mathcal {D}))]]></fr:tex>. 
</html:p>
                    <html:p>
  We say this is a <html:em>strategic equivalence</html:em> if the underlying map <fr:tex display="inline"><![CDATA[\Sigma _1 \to  \Sigma _2]]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is an isomorphism, and for every context <fr:tex display="inline"><![CDATA[c \in  \mathrm {Ctx}(\bar {X},\bar {Y})]]></fr:tex>, the induced costate <fr:tex display="inline"><![CDATA[k]]></fr:tex> on <fr:tex display="inline"><![CDATA[\overline {\Sigma _2}]]></fr:tex> has the same equilibria (under this isomorphism) as the composite costate <fr:tex display="inline"><![CDATA[k\alpha ]]></fr:tex> on <fr:tex display="inline"><![CDATA[\overline {\Sigma _1}]]></fr:tex></html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  Note that a game up to strategic equivalence is determined by a relation between strategies <fr:tex display="inline"><![CDATA[I \to  \Sigma ]]></fr:tex> and contexts. This brings us closer to Hedges' original definition of open game from <fr:link href="/hedges-etal-comp-gametheory/" title="Compositional game theory" uri="https://erischel.com/hedges-etal-comp-gametheory/" display-uri="hedges-etal-comp-gametheory" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-etal-comp-gametheory/" display-uri="hedges-etal-comp-gametheory" /></fr:link>. The chief difference is that a game in our sense is prevented from "inspecting" the context <fr:tex display="inline"><![CDATA[Y \to  \bar {Y}]]></fr:tex> for those <fr:tex display="inline"><![CDATA[y \in  Y]]></fr:tex> which are not in the image of <fr:tex display="inline"><![CDATA[X \times  \Sigma  \to  Y]]></fr:tex>, in the sense that whether a given strategy is in equilibrium or not cannot depend on this (since we only see a certain costate on <fr:tex display="inline"><![CDATA[\Sigma ]]></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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-HLIX/</fr:uri>
                    <fr:display-uri>efr-HLIX</fr:display-uri>
                    <fr:route>/efr-HLIX/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Strategic equivalence is compatible with composition and tensor in <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {Game}}(\mathsf {SLens}(\mathcal {D}))]]></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>2025</fr:year><fr:month>5</fr:month><fr:day>6</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Let <fr:tex display="inline"><![CDATA[\alpha : (G_1 \to  G_1'): \bar {X} \to  \bar {Y}, \beta  : (G_2 \to  G_2') : \bar {Y} \to  \bar {Z}]]></fr:tex> be strategic equivalences. By 2-cell composition there is a map <fr:tex display="inline"><![CDATA[G_2G_1 \to  G_2'G_1']]></fr:tex>, which we must show is a strategic equivalence.
  </html:p>
  <html:p>
    Let <fr:tex display="inline"><![CDATA[c = s,k]]></fr:tex> be a context in <fr:tex display="inline"><![CDATA[\mathrm {Ctx}(\bar {X},\bar {Z})]]></fr:tex>. Now a pair of strategies <fr:tex display="inline"><![CDATA[\sigma _1, \sigma _2]]></fr:tex> for <fr:tex display="inline"><![CDATA[G_1,G_2]]></fr:tex> are in Nash equilibrium for the costate induced by this context if and only if <fr:tex display="inline"><![CDATA[\sigma _1]]></fr:tex> is in equilibrium for the costate induced by the context <fr:tex display="inline"><![CDATA[s: I \to  \bar {X} \otimes  \bar {M}, k(p_2(\sigma _2) \otimes  1_{\bar {M}}),]]></fr:tex> where <fr:tex display="inline"><![CDATA[p_2]]></fr:tex> is the play function of <fr:tex display="inline"><![CDATA[G_2]]></fr:tex>, and the analogous condition holds for <fr:tex display="inline"><![CDATA[\sigma _2]]></fr:tex>.
  </html:p>
  <html:p>
    But if <fr:tex display="inline"><![CDATA[\alpha ,\beta ]]></fr:tex> are equivalences, this is clearly equivalent to asking that <fr:tex display="inline"><![CDATA[\sigma _1,\sigma _2]]></fr:tex> be in Nash equilibrium for the costate induced by <fr:tex display="inline"><![CDATA[c]]></fr:tex> on <fr:tex display="inline"><![CDATA[\overline {\Sigma _1'} \otimes  \overline {\Sigma _2}']]></fr:tex>. This 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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-U99C/</fr:uri>
                    <fr:display-uri>efr-U99C</fr:display-uri>
                    <fr:route>/efr-U99C/</fr:route>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  We denote by <fr:tex display="inline"><![CDATA[\mathsf {Game}(\mathsf {SLens}(\mathcal {D}))]]></fr:tex> the symmetric monoidal category of strategic equivalence classes of open games.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  Note that this category of open games retains a 2-categorical structure, given by deterministic maps <fr:tex display="inline"><![CDATA[\Sigma _1 \to  \Sigma _2]]></fr:tex> which preserve equilibria in every context. However, we will leave a deeper investigation of this structure for future work.
</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>2025</fr:year>
                  <fr:month>4</fr:month>
                  <fr:day>30</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-SREZ/</fr:uri>
                <fr:display-uri>efr-SREZ</fr:display-uri>
                <fr:route>/efr-SREZ/</fr:route>
                <fr:title text="Open Games with External Choice">Open Games with External Choice</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be an extensive Markov category. Let <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> be a monoidal stochastic module fibration with Markov structure, which has coproducts which are preserved by the pullbacks.
  Recall that <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathcal {D})]]></fr:tex> acquires two monoidal structures: one from dualizing the given monoidal structure on <fr:tex display="inline"><![CDATA[\mathcal {D},]]></fr:tex> which we simply denote <fr:tex display="inline"><![CDATA[\otimes ,I]]></fr:tex>, and one from taking the coCartesian monoidal structure in the fiber (which is Cartesian after taking the fiberwise dual, of course), which we denote <fr:tex display="inline"><![CDATA[\&, \top ]]></fr:tex>. Note that <fr:tex display="inline"><![CDATA[(\mathsf {SLens}(\mathcal {D}), \&)]]></fr:tex> is a Markov category. For the rest of this section, fix <fr:tex display="inline"><![CDATA[\mathcal {D}, \mathcal {C}]]></fr:tex> like this.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>5</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-Y2ZN/</fr:uri>
                    <fr:display-uri>efr-Y2ZN</fr:display-uri>
                    <fr:route>/efr-Y2ZN/</fr:route>
                    <fr:taxon>Lemma</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\bar {X},\bar {Y}]]></fr:tex> be objects in <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathcal {D})]]></fr:tex>, and let <fr:tex display="inline"><![CDATA[I \to  I + I]]></fr:tex> be a morphism in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>.
  Then there is a canonical map <fr:tex display="inline"><![CDATA[\bar {X} \& \bar {Y} \to  \bar {X} + \bar {Y},]]></fr:tex> so that the underlying map is <fr:tex display="inline"><![CDATA[X \otimes  Y \to  (X \otimes  Y) \otimes  (I + I) \cong  X \otimes  Y + X \otimes  Y \to  X + 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>2025</fr:year><fr:month>5</fr:month><fr:day>5</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
  The first map in the factorization has a deterministic retract (deleting the <fr:tex display="inline"><![CDATA[I+I]]></fr:tex> component,) and using the coproduct-preservation, the coproduct over <fr:tex display="inline"><![CDATA[X + Y]]></fr:tex> and <fr:tex display="inline"><![CDATA[\bar {X} \& \bar {Y}]]></fr:tex> pull back to the same object over <fr:tex display="inline"><![CDATA[X \otimes  Y \otimes  (I + I)]]></fr:tex>. Composing the induced stochastic-Cartesian map and the Cartesian map gives the canonical map we wanted.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
                <html:p>
  With the interpretation that <fr:tex display="inline"><![CDATA[\overline {X} \& \overline {Y}]]></fr:tex> is the object <fr:tex display="inline"><![CDATA[\overline {X}_x + \overline {Y}_y]]></fr:tex> indexed over <fr:tex display="inline"><![CDATA[X \otimes  Y,]]></fr:tex> this map simply selects one branch randomly and marginalizes to that coordinate in <fr:tex display="inline"><![CDATA[X \otimes  Y,]]></fr:tex> then includes the returned value into the coproduct.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>30</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-98DR/</fr:uri>
                    <fr:display-uri>efr-98DR</fr:display-uri>
                    <fr:route>/efr-98DR/</fr:route>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  When <fr:tex display="inline"><![CDATA[\mathcal {C}, \mathcal {D}]]></fr:tex> as above, <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {Game}}(\mathsf {SLens}(\mathcal {D}))]]></fr:tex> acquires a monoidal structure which we call <html:em>external choice,</html:em> and write <fr:tex display="inline"><![CDATA[\oplus ]]></fr:tex>, given on objects by the coproduct <fr:tex display="inline"><![CDATA[+]]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathcal {D}),]]></fr:tex>
  and on morphisms by the following formula:
</html:p>
                    <html:p>
  Given two open games <fr:tex display="inline"><![CDATA[G_1 = (\overline {\Sigma _A} \otimes  \overline {A_1} \to  \overline {A_2}, \epsilon _A), G_2 = (\overline {\Sigma _B} \otimes  \overline {B_1} \to  \overline {B_2}, \epsilon _B),]]></fr:tex> their external choice is has parameter <fr:tex display="inline"><![CDATA[\Sigma _A \& \Sigma _B]]></fr:tex>. The play map is given by 
  <fr:tex display="block"><![CDATA[(\Sigma _A \& \Sigma _B) \otimes  (A_1 + B_1) \cong  (\Sigma _A \& \Sigma _B) \otimes  A_1 + (\Sigma _A \& \Sigma _B) \otimes  B_1 \to  \Sigma _A \otimes  A_1 + \Sigma _B \otimes  B_1 \to  A_2 + B_2]]></fr:tex>

  The selection relation <fr:tex display="inline"><![CDATA[\epsilon _A \oplus  \epsilon _A]]></fr:tex> is given (up to equivalence) as follows:
  Given a context <fr:tex display="inline"><![CDATA[k: \overline {\Sigma _A} \& \overline {\Sigma _B} \to  I,]]></fr:tex> and a deterministic state <fr:tex display="inline"><![CDATA[I \to  \overline {\Sigma _A} \& \overline {\Sigma _B}]]></fr:tex>, they are in equilibrium if
  <html:ol><html:li><fr:tex display="inline"><![CDATA[k]]></fr:tex> factors over the canonical <fr:tex display="inline"><![CDATA[\overline {\Sigma _A} \& \overline {\Sigma _B} \to  \overline {\Sigma _A} + \overline {\Sigma _B}]]></fr:tex> for some <fr:tex display="inline"><![CDATA[c: I \to  I + I]]></fr:tex>.
    </html:li>
    <html:li>
      The factorization being given by <fr:tex display="inline"><![CDATA[k_A, k_B : \overline {\Sigma _A}, \overline {\Sigma _B} \to  I]]></fr:tex> ,and <fr:tex display="inline"><![CDATA[I \to  \overline {\Sigma _A} \& \overline {\Sigma _B}]]></fr:tex> being given by <fr:tex display="inline"><![CDATA[\sigma _A, \sigma _B : I \to  \overline {\Sigma _A}, \overline {\Sigma _B}]]></fr:tex>, we have <fr:tex display="inline"><![CDATA[\epsilon _A(\sigma _A,k_A), \epsilon _B(\sigma _B, k_B)]]></fr:tex></html:li></html:ol></html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  The idea behind the external choice operator is that, for all the contexts which can actually occur as a result of pasting a game <fr:tex display="inline"><![CDATA[G \oplus  G']]></fr:tex> into a larger string diagram, the map <fr:tex display="inline"><![CDATA[X \times  X' \to  \overline {X} + \overline {X}']]></fr:tex> has the given form---that is, the probability of landing in each of the two fibers does not depend on the chosen <fr:tex display="inline"><![CDATA[x,x']]></fr:tex> and the conditional distributions on the <fr:tex display="inline"><![CDATA[\overline {X}]]></fr:tex> component of the fiber depend only on <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex>. Hence we need only concern ourselves with which states are equilibria for contexts of this form. The choice of the empty set of equilibria for other contexts is merely a 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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>30</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-VB6A/</fr:uri>
                    <fr:display-uri>efr-VB6A</fr:display-uri>
                    <fr:route>/efr-VB6A/</fr:route>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Given a state <fr:tex display="inline"><![CDATA[I \to  A + B]]></fr:tex> in a Markov category with coproducts, we say a pair <fr:tex display="inline"><![CDATA[I \to  A, I \to  B]]></fr:tex> form a pair of conditionals if the copairing <fr:tex display="inline"><![CDATA[I + I \to  A + B]]></fr:tex> is a Bayesian inverse of the map <fr:tex display="inline"><![CDATA[A + B \to  I + I]]></fr:tex>.
</html:p>
                    <html:p>
  Given a state <fr:tex display="inline"><![CDATA[I \to  \bar {X} + \bar {Y}]]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathcal {D})]]></fr:tex>, we say a pair of maps <fr:tex display="inline"><![CDATA[I \to  \bar {X}, I \to  \bar {Y}]]></fr:tex> form a pair of conditionals if the underlying maps do. 
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>5</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-MLF1/</fr:uri>
                    <fr:display-uri>efr-MLF1</fr:display-uri>
                    <fr:route>/efr-MLF1/</fr:route>
                    <fr:taxon>Theorem</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  As defined above, <fr:tex display="inline"><![CDATA[\oplus ]]></fr:tex> is a symmetric monoidal structure on <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {Game}}(\mathsf {SLens}(\mathcal {D}))]]></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>2025</fr:year><fr:month>5</fr:month><fr:day>5</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    The monoidal coherences come from the monoidal structure of <fr:tex display="inline"><![CDATA[+,]]></fr:tex> and it is trivial to see that they preserve the selection relations. The only nontrivial part is proving that <fr:tex display="inline"><![CDATA[\oplus ]]></fr:tex> is functorial. Hence let <fr:tex display="inline"><![CDATA[G_1: A_1 \to  B_1, G_1' : B_1 \to  C_1, G_2: A_2 \to  B_2, G_2' : B_2 \to  C_2]]></fr:tex> be games.
    The strategy set of <fr:tex display="inline"><![CDATA[(G_1' \oplus  G_2')\circ (G_1 \oplus  G_2)]]></fr:tex> is given by <fr:tex display="inline"><![CDATA[(\Sigma _1 \& \Sigma _2) \otimes  (\Sigma _1' \otimes  \Sigma _2')]]></fr:tex>
    For <fr:tex display="inline"><![CDATA[(G_1' \circ  G_1) \oplus  (G_2' \circ  G_2),]]></fr:tex> by <fr:tex display="inline"><![CDATA[(\Sigma _1 \otimes  \Sigma _1') \& (\Sigma _2 \otimes  \Sigma _2')]]></fr:tex>.
  </html:p>
  <html:p>
    In the base, these are the same object <fr:tex display="inline"><![CDATA[\Sigma _1 \otimes  \Sigma _2 \otimes  \Sigma _1' \otimes  \Sigma _2']]></fr:tex>. In the fiber, they are given respectively by 
    <fr:tex display="block"><![CDATA[(\overline {\Sigma _1} + \overline {\Sigma _2}) \otimes  (\overline {\Sigma _1}' + \overline {\Sigma _2'})]]></fr:tex> and 
    <fr:tex display="block"><![CDATA[(\overline {\Sigma _1} \otimes  \overline {\Sigma _1'}) + (\overline {\Sigma _2} \otimes  \overline {\Sigma _2}').]]></fr:tex>
    Note the coproducts here are the fiberwise ones. There is an obvious lens from the former to the latter (given by the identity map on the base, and the inclusion of two summands in a fourfold coproduct---note that lenses go backwards in the fiber). Letting <fr:tex display="inline"><![CDATA[I \to  (A_1 \oplus  A_2) \otimes  M, (C_1 \oplus  C_2) \otimes  M \to  I]]></fr:tex> be a context, and going through the definitions, it is clear that the resulting contexts for the former game factors as this lens followed by the context for the latter game. In other words, this lens is a reparametrization map between the two games. It suffices to verify it is an equivalence.
  </html:p>
  <html:p>
    Unpacking the equivalence relation on <fr:tex display="inline"><![CDATA[(G_1' \oplus  G_2')(G_1 \oplus  G_2)]]></fr:tex>, note that (in all the possible contexts,) the signal to <fr:tex display="inline"><![CDATA[G_1]]></fr:tex> does not depend on the action of <fr:tex display="inline"><![CDATA[G_2']]></fr:tex> and vice versa, and so for <fr:tex display="inline"><![CDATA[G_1']]></fr:tex> and <fr:tex display="inline"><![CDATA[G_2]]></fr:tex>. Hence they are in equilibrium if and only if they are in equilibrium in <fr:tex display="inline"><![CDATA[G_1'G_1]]></fr:tex> for the given context (conditioned on that branch), and similarly the other two. This proves the desired equivalence.
  </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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>30</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-4CSL/</fr:uri>
                    <fr:display-uri>efr-4CSL</fr:display-uri>
                    <fr:route>/efr-4CSL/</fr:route>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Consider the (Grothendieck) fibration <fr:tex display="inline"><![CDATA[\mathsf {Set}^\to  \to  \mathsf {Set}]]></fr:tex>, which can be viewed as a Markov fibration.
  Let <fr:tex display="inline"><![CDATA[f: {\mathbb {R} \choose  \Sigma } \otimes  {\bar {X} \choose  X} \leftrightarrows  {\bar {Y} \choose  Y}]]></fr:tex> be a parameterized lens.
  Denote by <fr:tex display="inline"><![CDATA[\mathrm {argmax}_f]]></fr:tex> the open game <fr:tex display="inline"><![CDATA[{\bar {X} \choose  X} \to  {\bar {Y} \choose  Y}]]></fr:tex> with parameters <fr:tex display="inline"><![CDATA[{\mathbb {R} \choose  \Sigma }]]></fr:tex>, underlying parameterized lens <fr:tex display="inline"><![CDATA[f]]></fr:tex>, and equilibrium relation given by <fr:tex display="inline"><![CDATA[\mathrm {argmax}]]></fr:tex>.
</html:p>
                    <html:p>
  Then if <fr:tex display="inline"><![CDATA[g: {\mathbb {R} \choose  \Sigma '} \otimes  {\overline {X'} \choose  X'} \leftrightarrows  {\overline {Y'} \choose  Y'}]]></fr:tex> is another parameterized lens,
  we have
  <fr:tex display="block"><![CDATA[\mathrm {argmax}_f \oplus  \mathrm {argmax}_g \cong  \mathrm {argmax}_{f \oplus  g},]]></fr:tex>
  where by an abuse of notation <fr:tex display="inline"><![CDATA[f \oplus  g]]></fr:tex> denotes the paramterized lens
  <fr:tex display="block"><![CDATA[{\mathbb {R} \choose  \Sigma  \times  \Sigma '} \otimes  ({\overline {X} \choose  X} \oplus  {\overline {X'} \choose  X'}) \to  {\overline {Y} \choose  Y} \oplus  {\overline {Y'} \choose  Y'}]]></fr:tex>
  given by distributing into the coproduct, then projecting into the relevant factor of the product <fr:tex display="inline"><![CDATA[\Sigma  \times  \Sigma ']]></fr:tex> and applying either <fr:tex display="inline"><![CDATA[f]]></fr:tex> or <fr:tex display="inline"><![CDATA[g]]></fr:tex></html:p>
                    <html:p>
  A context for either of these games consists of an element of <fr:tex display="inline"><![CDATA[X + X']]></fr:tex> and a function <fr:tex display="inline"><![CDATA[k: Y + Y' \to  \mathbb {R}]]></fr:tex>. The external choice game can be seen as having two players, one who gets to play if the context chooses an element in <fr:tex display="inline"><![CDATA[X]]></fr:tex>, who must output an element <fr:tex display="inline"><![CDATA[y \in  Y]]></fr:tex> and optimize <fr:tex display="inline"><![CDATA[k(y)]]></fr:tex> (according to his private utility function <fr:tex display="inline"><![CDATA[\Sigma  \times  X \times  \bar {Y} \to  \mathbb {R}]]></fr:tex>), the other playing when the input is in <fr:tex display="inline"><![CDATA[X']]></fr:tex> and who must choose an element in <fr:tex display="inline"><![CDATA[y']]></fr:tex>. The single argmax game can be seen as a single player, who is constrained to play inside the same "branch" of the game as the input (this constraint is encoded in the lens <fr:tex display="inline"><![CDATA[f \oplus  g]]></fr:tex>), and whose utility function is given by the first players' in the first branch, and the second players' in the second branch.x
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>5</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-BNT1/</fr:uri>
                    <fr:display-uri>efr-BNT1</fr:display-uri>
                    <fr:route>/efr-BNT1/</fr:route>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[G: {* \choose  X} \to  {R \choose  Y}]]></fr:tex> be a game, representing an agent who is optimizing the return value <fr:tex display="inline"><![CDATA[r \in  R]]></fr:tex> in some sense. Then <fr:tex display="inline"><![CDATA[G \otimes  (1_I \oplus  1_I = 1_{I + I})]]></fr:tex> represents the same agent, whose payoff may now depend on an additional bit (a value in <fr:tex display="inline"><![CDATA[I + I]]></fr:tex>), but whose decisions may not depend on that bit (his selection function may still depend on its distribution).
</html:p>
                    <html:p>
  On the other hand, <fr:tex display="inline"><![CDATA[G \oplus  G (\cong  G \otimes  1_I \oplus  G \otimes  1_I)]]></fr:tex> represents the same situation, but where the player's strategy <html:em>may</html:em> depend on the bit---he provides two strategies <fr:tex display="inline"><![CDATA[\sigma _1,\sigma _2]]></fr:tex>, one for each possibility.
</html:p>
                    <html:p>
  This proves that <fr:tex display="inline"><![CDATA[\otimes ]]></fr:tex> does not distribute over <fr:tex display="inline"><![CDATA[\oplus ]]></fr:tex></html:p>
                  </fr:mainmatter>
                </fr:tree>
              </fr:mainmatter>
            </fr:tree>
          </fr:mainmatter>
        </fr:tree>
        <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>2025</fr:year>
              <fr:month>4</fr:month>
              <fr:day>29</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/efr-ZCTD/</fr:uri>
            <fr:display-uri>efr-ZCTD</fr:display-uri>
            <fr:route>/efr-ZCTD/</fr:route>
            <fr:title text="Optics and Lenses">Optics and Lenses</fr:title>
          </fr:frontmatter>
          <fr:mainmatter>
            <html:p>
  We have already given somewhat of an account of lenses, optics, and their applications in the introduction. We briefly review the theory here, especially to normalize the notation and definitions. The best general source for this material is still <fr:link href="/riley-optics/" title="Categories of optics" uri="https://erischel.com/riley-optics/" display-uri="riley-optics" type="local">Reference <fr:contextual-number uri="https://erischel.com/riley-optics/" display-uri="riley-optics" /></fr:link>.
</html:p>
            <html:p>
  The definition of optic relies on the notion of <html:em>coend</html:em>, which we briefly recall, see <fr:link href="/fosco-coend-calculus/" title="(Co)end Calculus" uri="https://erischel.com/fosco-coend-calculus/" display-uri="fosco-coend-calculus" type="local">Reference <fr:contextual-number uri="https://erischel.com/fosco-coend-calculus/" display-uri="fosco-coend-calculus" /></fr:link> for a textbook account. If <fr:tex display="inline"><![CDATA[F: \mathcal {I}^\mathrm {op} \times  \mathcal {I} \to  \mathcal {C}]]></fr:tex> is a functor, the <html:em>coend</html:em> <fr:tex display="inline"><![CDATA[\int ^{i \in  I} F(i,i)]]></fr:tex> is defined as the initial object receiving a map <fr:tex display="inline"><![CDATA[f_i : F(i,i) \to  \int ^{i \in  I} F(i,i)]]></fr:tex> for each <fr:tex display="inline"><![CDATA[i \in  I]]></fr:tex>, so that for each <fr:tex display="inline"><![CDATA[\phi : i \to  j]]></fr:tex>, the square
  
  <html:figure><fr:resource hash="93bc42b7152d38e565dd021d49ca6365"><fr:resource-content><html:img src="/93bc42b7152d38e565dd021d49ca6365.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    & F(i,i) \ar [rd] & \\
    F(j,i) \ar [ru] \ar [rd] & & \int ^I \\
    & F(j,j) \ar [ur]
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  commutes.
</html:p>
            <html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> has enough colimits, we may express the coend as the coequalizer of the diagram
  <fr:tex display="block"><![CDATA[\coprod _{f : i \to  j \in  \mathcal {I}} F(i,j) \rightrightarrows  \coprod _{i} F(i,i),]]></fr:tex>
  where the two maps are given on each component by <fr:tex display="inline"><![CDATA[F(i,f): F(i,j) \to  F(i,i)]]></fr:tex> and <fr:tex display="inline"><![CDATA[F(f,j) : F(i,j) \to  F(j,j)]]></fr:tex>, respectively. (This is Remark 1.2.4 in <fr:link href="/fosco-coend-calculus/" title="(Co)end Calculus" uri="https://erischel.com/fosco-coend-calculus/" display-uri="fosco-coend-calculus" type="local">Reference <fr:contextual-number uri="https://erischel.com/fosco-coend-calculus/" display-uri="fosco-coend-calculus" /></fr:link>). Note that in particular this implies that if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> has all colimits, then it also has all coends.
</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>2025</fr:year>
                  <fr:month>4</fr:month>
                  <fr:day>29</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-MMQZ/</fr:uri>
                <fr:display-uri>efr-MMQZ</fr:display-uri>
                <fr:route>/efr-MMQZ/</fr:route>
                <fr:title text="Optic">Optic</fr:title>
                <fr:taxon>Definition</fr:taxon>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex> be a monoidal category which acts on two categories <fr:tex display="inline"><![CDATA[\mathcal {C}, \mathcal {D}]]></fr:tex>. Then the category of <html:em>optics</html:em> <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {M}(\mathcal {C},\mathcal {D})]]></fr:tex> has
  <html:ol><html:li>
      Objects pairs <fr:tex display="inline"><![CDATA[{A \in  \mathcal {D} \choose  X \in  \mathcal {C}}]]></fr:tex></html:li>
    <html:li>
      The set of morphisms <fr:tex display="inline"><![CDATA[{A \choose  X} \to  {B \choose  Y}]]></fr:tex> given by the coend
      <fr:tex display="block"><![CDATA[\int ^{M \in  \mathcal {M}} \mathcal {C}(X, M \cdot  Y) \times  \mathcal {D}(M \cdot  B,A)]]></fr:tex></html:li>
    <html:li>
      Given two optics with representatives <fr:tex display="inline"><![CDATA[(M,f: X \to  M \cdot  Y,g : M \cdot  B \to  A), (N, f': Y \to  N \cdot  Z, g': N \cdot  C \to  B),]]></fr:tex> their composite is given
      by <fr:tex display="inline"><![CDATA[(M \otimes  N, (1_M \cdot  f')f, g (1_M \cdot  g')),]]></fr:tex> where we omit coherence morphisms.
    </html:li></html:ol></html:p>
                <html:p>
  When <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is a monoidal category acting on itself by tensor, we write <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {C}(\mathcal {C},\mathcal {C}) =: \mathsf {Optic}(\mathcal {C})]]></fr:tex></html:p>
              </fr:mainmatter>
            </fr:tree>
            <html:p>
  Note that if <fr:tex display="inline"><![CDATA[\mathcal {M},\mathcal {C},\mathcal {D}]]></fr:tex> are symmetric monoidal and these actions are symmetric, <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {M}(\mathcal {C},\mathcal {D})]]></fr:tex> inherits a symmetric monoidal structure given by <fr:tex display="inline"><![CDATA[{A \choose  X} \otimes  {B \choose  Y} = {A \otimes  B \choose  X \otimes  Y}]]></fr:tex>. (Also given a braiding one can induce a non-symmetric monoidal structure, but this almost never comes up).
</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>2025</fr:year>
                  <fr:month>4</fr:month>
                  <fr:day>29</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-CRYH/</fr:uri>
                <fr:display-uri>efr-CRYH</fr:display-uri>
                <fr:route>/efr-CRYH/</fr:route>
                <fr:title text="On notation">On notation</fr:title>
                <fr:taxon>Remark</fr:taxon>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  Objects and morphisms in the category of optics have two parts---one going "forwards", in the same direction as the optic, and one going "backwards". In <fr:link href="/riley-optics/" title="Categories of optics" uri="https://erischel.com/riley-optics/" display-uri="riley-optics" type="local">Reference <fr:contextual-number uri="https://erischel.com/riley-optics/" display-uri="riley-optics" /></fr:link> the objects are written <fr:tex display="inline"><![CDATA[(X,A),]]></fr:tex> where <fr:tex display="inline"><![CDATA[X]]></fr:tex> is the forwards part. Hedges' work on open games used the binomial notation <fr:tex display="inline"><![CDATA[\binom {X}{A},]]></fr:tex> but wrote the forwards part on <html:em>top</html:em>.
</html:p>
                <html:p>
  To make the connection to fibrations more natural, we instead write the forwards part on the <html:em>bottom</html:em>, <fr:tex display="inline"><![CDATA[{A \choose  X}]]></fr:tex>. It is the backwards part which depends on the forwards part, hence the forwards part is the base of the fibration (when one exists)---and every part of the language of fibrations is built around a mental model where the base is at the bottom and the fibers are over it (including the word "base"). When reading the references, this may cause some confusion, but hopefully this can be overcome.
</html:p>
                <html:p>
  While we're at it, let us note that when talking about optics we will freely use terms like "the forwards part" "the backwards object" and so on---the meaning of this should now be clear. Of course, once we get to cooptics/charts, this would be more than a little confusing, since in that case both components are in the same direction. In those cases we will speak of either the primary (forwards) part or the secondary (backwards) part, or use the language of fibrations and speak of the map or object "in the base" and "in the fiber".
</html:p>
              </fr:mainmatter>
            </fr:tree>
            <html:p>
  As noted above, the coend <fr:tex display="inline"><![CDATA[\int ^M \mathcal {C}(X, M \cdot  Y) \times  \mathcal {D}(M \cdot  B, A)]]></fr:tex> consists of triples <fr:tex display="inline"><![CDATA[(M, f: X \to  M \cdot  Y, g: M \cdot  B \to  A)]]></fr:tex> up to the equivalence relation which, for every <fr:tex display="inline"><![CDATA[\phi : M \to  M', f: X \to  M \cdot  Y, g: M' \cdot  B \to  A,]]></fr:tex> identifies the two tuples <fr:tex display="inline"><![CDATA[(M', (\phi  \cdot  1_Y) f, g)]]></fr:tex> and <fr:tex display="inline"><![CDATA[(M, f, g (\phi  \cdot  1_B))]]></fr:tex>. Note that this relation is not assumed to be inherently an equivalence relation---one takes the transitive-symmetric closure as usual.
</html:p>
            <html:p>
  We call this relation the <html:em>sliding</html:em> relation (because we slide the map <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex> from the backwards part to the forwards part).
</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>2025</fr:year>
                  <fr:month>8</fr:month>
                  <fr:day>25</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-50T5/</fr:uri>
                <fr:display-uri>efr-50T5</fr:display-uri>
                <fr:route>/efr-50T5/</fr:route>
                <fr:taxon>Remark</fr:taxon>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  Suppose <fr:tex display="inline"><![CDATA[\mathcal {M}, \mathcal {C}, \mathcal {D}]]></fr:tex> are small categories. Then the coend defining <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {M}(\mathcal {C},\mathcal {D})\left ( {A \choose  X}, {B \choose  Y} \right )]]></fr:tex> is a small colimit of small sets, hence again small. Since clearly the set of objects <fr:tex display="inline"><![CDATA[\operatorname {\mathbf {ob}} \mathcal {C} \times  \operatorname {\mathbf {ob}} \mathcal {D}]]></fr:tex> is small, <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {M}(\mathcal {C},\mathcal {D})]]></fr:tex> is again a small category.
</html:p>
                <html:p>
  However, if <fr:tex display="inline"><![CDATA[\mathcal {M},\mathcal {D},\mathcal {C}]]></fr:tex> are merely assumed to be <html:em>locally</html:em> small, we can not guarantee the same is true of <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {M}(\mathcal {C},\mathcal {D})]]></fr:tex>, since the hom-sets are now defined by a coend/colimit with large indexing category. However, in many special cases, it can still be seen to be locally small, such as in the Cartesian case (where <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C})]]></fr:tex> is clearly locally small).
</html:p>
                <html:p>
  In this thesis, we will not delve further into this subtlety, simply working inside some universe where all our categories are small. 
</html:p>
              </fr:mainmatter>
            </fr:tree>
            <html:p>
  Of course, we can also let the arrows in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> go in the same direction as <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. This does not seem to have played any role in the literature, but we will give this a name, as it is a useful example to have in mind for Markov fibrations (where we will construct our dependent optics, conceptually, as a fiberwise opposite)
</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>2025</fr:year>
                  <fr:month>4</fr:month>
                  <fr:day>29</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-G0YN/</fr:uri>
                <fr:display-uri>efr-G0YN</fr:display-uri>
                <fr:route>/efr-G0YN/</fr:route>
                <fr:title text="Co-Optics">Co-Optics</fr:title>
                <fr:taxon>Definition</fr:taxon>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  Given <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex> acting on <fr:tex display="inline"><![CDATA[\mathcal {C}, \mathcal {D}]]></fr:tex>, the category of <html:em>co-optics</html:em>, <fr:tex display="inline"><![CDATA[\mathsf {coOptic}_\mathcal {M}(\mathcal {C},\mathcal {D})]]></fr:tex> has objects pair <fr:tex display="inline"><![CDATA[{A \in  \mathcal {D} \choose  X \in  \mathcal {C}},]]></fr:tex> and morphisms given by the coend <fr:tex display="inline"><![CDATA[\int ^M \mathcal {C}(X, M \cdot  Y) \times  \mathcal {D}(M \cdot  A, B)]]></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>2025</fr:year>
                  <fr:month>5</fr:month>
                  <fr:day>7</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-J0WW/</fr:uri>
                <fr:display-uri>efr-J0WW</fr:display-uri>
                <fr:route>/efr-J0WW/</fr:route>
                <fr:taxon>Remark</fr:taxon>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  For any monoidal category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {C}\left ({A \choose  X}, {I \choose  I}\right ) = \mathcal {C}(X,A)]]></fr:tex>. One way to think of an optic <fr:tex display="inline"><![CDATA[{A \choose  X} \leftrightarrows  {B \choose  Y}]]></fr:tex> is as a string diagram <fr:tex display="inline"><![CDATA[X \to  A]]></fr:tex>, but which has a hole with space for a morphism <fr:tex display="inline"><![CDATA[B \to  Y]]></fr:tex>. One inserts such a morphism by composing the optic with the optic <fr:tex display="inline"><![CDATA[{B \choose  Y} \leftrightarrows  {I \choose  I}]]></fr:tex> representing it. This idea of "open diagrams" has been developed in much more detail by Román, <fr:link href="/roman-optics-coend/" title="Open Diagrams via Coend Calculus" uri="https://erischel.com/roman-optics-coend/" display-uri="roman-optics-coend" type="local">Reference <fr:contextual-number uri="https://erischel.com/roman-optics-coend/" display-uri="roman-optics-coend" /></fr:link>. 
</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>2025</fr:year>
                  <fr:month>5</fr:month>
                  <fr:day>7</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-UNIN/</fr:uri>
                <fr:display-uri>efr-UNIN</fr:display-uri>
                <fr:route>/efr-UNIN/</fr:route>
                <fr:taxon>Proposition</fr:taxon>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  Suppose <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex> is semicartesian---in other words, that <fr:tex display="inline"><![CDATA[I \in  \mathcal {M}]]></fr:tex> is terminal. Then there is a functor <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {M}(\mathcal {C},\mathcal {D}) \to  \mathcal {C}]]></fr:tex>, which takes a <fr:tex display="inline"><![CDATA[{A \choose  X}]]></fr:tex> to <fr:tex display="inline"><![CDATA[X]]></fr:tex>, and pair <fr:tex display="inline"><![CDATA[\langle  f: X \to  M \cdot  Y, g \rangle ]]></fr:tex> to the composite <fr:tex display="inline"><![CDATA[X \to  M \cdot  Y \to  I \cdot  Y \cong  Y]]></fr:tex>.
</html:p>
                <html:p>
  In the case of <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {M}),]]></fr:tex> the map <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {M})({I \choose  I}, {A \choose  X}) \to  \mathcal {M}(I,X)]]></fr:tex> is a bijection.
</html:p>
              </fr:mainmatter>
            </fr:tree>
            <html:p>
  The fact that in <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {M}),]]></fr:tex> states (maps from the monoidal unit) on <fr:tex display="inline"><![CDATA[{A \choose  X}]]></fr:tex> are given by states on <fr:tex display="inline"><![CDATA[X]]></fr:tex>, while costates are given by maps <fr:tex display="inline"><![CDATA[X \to  A]]></fr:tex> plays an important role in the use of optics to describe open games. See <fr:link href="/efr-GFG0/" title="Open Games with external choice in Markov Fibrations" uri="https://erischel.com/efr-GFG0/" display-uri="efr-GFG0" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-GFG0/" display-uri="efr-GFG0" /></fr:link> for more on this.
</html:p>
            <html:p>
  Let us say a few things about lenses.
</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>2025</fr:year>
                  <fr:month>5</fr:month>
                  <fr:day>7</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-M19V/</fr:uri>
                <fr:display-uri>efr-M19V</fr:display-uri>
                <fr:route>/efr-M19V/</fr:route>
                <fr:taxon>Proposition</fr:taxon>
              </fr:frontmatter>
              <fr:mainmatter><html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is Cartesian monoidal, <fr:tex display="block"><![CDATA[\mathsf {Optic}(\mathcal {C})\left ({A \choose  X},{B \choose  Y}\right ) \cong  \mathcal {C}(X,Y) \times  \mathcal {C}(X \times  B,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>2025</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><fr:tex display="block"><![CDATA[\int ^M \mathcal {C}(X, M \times  Y) \times  \mathcal {C}(M \times  B,A) \cong  \int ^M \mathcal {C}(X,Y) \times  \mathcal {C}(X,M) \times  \mathcal {C}(M \times  B,A)]]></fr:tex>
    <fr:tex display="block"><![CDATA[ \cong  \mathcal {C}(X,Y) \times  \mathcal {C}(X \times  B,A).]]></fr:tex></html:p>
  <html:p>
    Here we use a general fact about coends, that <fr:tex display="inline"><![CDATA[\int ^M \mathcal {C}(X,M) \times  F(M) \cong  F(X)]]></fr:tex>---this has been called the <html:em>ninja Yoneda lemma</html:em>, see <fr:link href="/fosco-coend-calculus/" title="(Co)end Calculus" uri="https://erischel.com/fosco-coend-calculus/" display-uri="fosco-coend-calculus" type="local">Reference <fr:contextual-number uri="https://erischel.com/fosco-coend-calculus/" display-uri="fosco-coend-calculus" /></fr:link>.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
            </fr:tree>
            <html:p>
  In this case we sometimes write <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C})]]></fr:tex> for the category <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C})]]></fr:tex>. We have the following fact:
</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>2025</fr:year>
                  <fr:month>5</fr:month>
                  <fr:day>7</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-2793/</fr:uri>
                <fr:display-uri>efr-2793</fr:display-uri>
                <fr:route>/efr-2793/</fr:route>
                <fr:taxon>Proposition</fr:taxon>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  The functor <fr:tex display="inline"><![CDATA[{A \choose  X} \mapsto  X]]></fr:tex>, <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C}) \to  \mathcal {C}]]></fr:tex>, is a fibration. The fiber <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C})_X]]></fr:tex> has the following description:
  <html:ol><html:li>Its objects are the objects of <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>.</html:li>
    <html:li>A map <fr:tex display="inline"><![CDATA[A \to  B \in  \mathsf {Lens}(\mathcal {C})_X]]></fr:tex> is a map <fr:tex display="inline"><![CDATA[X \times  B \to  A \in  \mathcal {C}]]></fr:tex>.</html:li>
    <html:li>The composite of <fr:tex display="inline"><![CDATA[X \times  B \to  A,]]></fr:tex> <fr:tex display="inline"><![CDATA[X \times  C \to  B]]></fr:tex> is given by composing the two into <fr:tex display="inline"><![CDATA[X \times  X \times  C \to  A,]]></fr:tex> then using the diagonal.</html:li>
    <html:li>Given <fr:tex display="inline"><![CDATA[f: X \to  Y,]]></fr:tex> the pullback functor <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C})_Y \to  \mathsf {Lens}(\mathcal {C})_X]]></fr:tex> is given by precomposing by <fr:tex display="inline"><![CDATA[f]]></fr:tex>.</html:li></html:ol></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>2025</fr:year>
                  <fr:month>5</fr:month>
                  <fr:day>7</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-VTPS/</fr:uri>
                <fr:display-uri>efr-VTPS</fr:display-uri>
                <fr:route>/efr-VTPS/</fr:route>
                <fr:taxon>Proposition</fr:taxon>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> moreover admits pullbacks, there is a fibred functor <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C})^\mathrm {fop} \to  \mathcal {C}^\to  \to  \mathcal {C},]]></fr:tex> which carries an object <fr:tex display="inline"><![CDATA[{A \choose  X}]]></fr:tex> to <fr:tex display="inline"><![CDATA[X \times  A\xrightarrow {\pi _X} X,]]></fr:tex> and a morphism <fr:tex display="inline"><![CDATA[f:X \times  A \to  B]]></fr:tex> to the map <fr:tex display="inline"><![CDATA[X \times  A \xrightarrow {\langle  \pi _X,F \rangle } X \times  B]]></fr:tex> over <fr:tex display="inline"><![CDATA[X]]></fr:tex>. This is fully faithful.
</html:p>
              </fr:mainmatter>
            </fr:tree>
            <html:p>
  This is the first way to see the maps of <fr:tex display="inline"><![CDATA[(\mathcal {C}^\to )^\mathrm {fop}]]></fr:tex> as dependent lenses---they receive the category of lenses as a full subcategory. 
</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>2025</fr:year>
                  <fr:month>5</fr:month>
                  <fr:day>7</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-TZ0P/</fr:uri>
                <fr:display-uri>efr-TZ0P</fr:display-uri>
                <fr:route>/efr-TZ0P/</fr:route>
                <fr:taxon>Remark</fr:taxon>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  The squares
  
  <html:figure><fr:resource hash="bfbc655ed83f9a6f9cc2dd1491177322"><fr:resource-content><html:img src="/bfbc655ed83f9a6f9cc2dd1491177322.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    A \times  X \ar [d] \ar [r] & A \times  Y \ar [d]\\
    X \ar [r] & Y
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  are pullbacks in any category with products, even if it does not admit pullbacks in general.
  It follows that the full subcategory of <fr:tex display="inline"><![CDATA[\mathcal {C}^\to ]]></fr:tex> spanned by objects of this form is always a fibration over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, which is isomorphic to <fr:tex display="inline"><![CDATA[\mathsf {coOptic}(\mathcal {C})]]></fr:tex>---the fiberwise dual is isomorphic to <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C})]]></fr:tex>.
</html:p>
              </fr:mainmatter>
            </fr:tree>
          </fr:mainmatter>
        </fr:tree>
        <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>2025</fr:year>
              <fr:month>4</fr:month>
              <fr:day>28</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/efr-K6NM/</fr:uri>
            <fr:display-uri>efr-K6NM</fr:display-uri>
            <fr:route>/efr-K6NM/</fr:route>
            <fr:taxon>Theorem</fr:taxon>
          </fr:frontmatter>
          <fr:mainmatter>
            <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be any pullback-positive Markov category. Then <fr:tex display="inline"><![CDATA[\mathcal {C}^\to  \to  \mathcal {C}]]></fr:tex> is a Markov prefibration which thus induces a stochastic module structure on <fr:tex display="inline"><![CDATA[\mathcal {C}^\to |_\mathrm {det}]]></fr:tex>.
  Writing simply <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {C}), \mathsf {SLens}(\mathcal {C})]]></fr:tex> for <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {C}^\to |_\mathrm {det}), \mathsf {SLens}(\mathcal {C}^\to |_\mathrm {det})]]></fr:tex>, we have:
</html:p>
            <html:ol><html:li>
    There is a functor <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C}) \to  \mathsf {SLens}(\mathcal {C}),]]></fr:tex> which is fully faithful. Dually there is a functor <fr:tex display="inline"><![CDATA[\mathsf {coOptic}(\mathcal {C}) \to  \mathsf {SChart}(\mathcal {C})]]></fr:tex> which is fully faithful.
  </html:li>
  <html:li><fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathcal {C})]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {C})]]></fr:tex> both admit symmetric monoidal structures, which make the functors <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {C}), \mathsf {SLens}(\mathcal {C}) \to  \mathcal {C}]]></fr:tex> strict symmetric monoidal, as well as the functors <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C}) \to  \mathsf {SLens}(\mathcal {C}), \mathsf {coOptic}(\mathcal {C}) \to  \mathsf {SChart}(\mathcal {C})]]></fr:tex> strong symmetric monoidal.
  </html:li>
  <html:li>
    If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is extensive, this functor preserves the coproducts <fr:tex display="inline"><![CDATA[{A \choose  X} + {A \choose  Y} = {A \choose  X+Y},]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {C}),\mathsf {SLens}(\mathcal {C})]]></fr:tex> both admit all finite coproducts.
  </html:li>
  <html:li>
    If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> moreover has conditionals and supports, <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {C}) = \mathcal {C}^\to ]]></fr:tex></html:li></html:ol>
          </fr:mainmatter>
        </fr:tree>
        <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>2025</fr:year>
              <fr:month>4</fr:month>
              <fr:day>8</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/efr-ZRUZ/</fr:uri>
            <fr:display-uri>efr-ZRUZ</fr:display-uri>
            <fr:route>/efr-ZRUZ/</fr:route>
            <fr:title text="Categories of stochastic dynamical systems">Categories of stochastic dynamical systems</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>2025</fr:year>
                  <fr:month>5</fr:month>
                  <fr:day>6</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-5QC5/</fr:uri>
                <fr:display-uri>efr-5QC5</fr:display-uri>
                <fr:route>/efr-5QC5/</fr:route>
                <fr:title text="Introduction">Introduction</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  Given a set of inputs <fr:tex display="inline"><![CDATA[A]]></fr:tex> and a set of outputs <fr:tex display="inline"><![CDATA[B]]></fr:tex>, there are essentially two make sense of the informal description "finite-state automaton which reads inputs from <fr:tex display="inline"><![CDATA[A]]></fr:tex> and produces outputs in <fr:tex display="inline"><![CDATA[B]]></fr:tex>".
  These are the notions of <html:em>Mealy machine</html:em> and <html:em>Moore machine</html:em>. Simply put, if the set of states is <fr:tex display="inline"><![CDATA[S]]></fr:tex>, a mealy machine is a function <fr:tex display="inline"><![CDATA[A \times  S \to  B \times  S,]]></fr:tex> whereas a Moore machine is a pair <fr:tex display="inline"><![CDATA[A \times  S \to  S, S \to  B]]></fr:tex>. In other words, in a Moore machine the output does not depend on the current input, but only on previous inputs (through their effect on the state), but in a Mealy machine, the input can be passed through directly.
</html:p>
                <html:p>
  Using the language of categorical systems theory, we can make the following definitions:
</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>25</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0006/</fr:uri>
                    <fr:display-uri>efr-0006</fr:display-uri>
                    <fr:route>/efr-0006/</fr:route>
                    <fr:title text="Moore Machine">Moore Machine</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  In a dynamical systems theory, a <html:em>Moore machine</html:em> with state space <fr:tex display="inline"><![CDATA[S]]></fr:tex> and interface <fr:tex display="inline"><![CDATA[A]]></fr:tex> is a lens <fr:tex display="inline"><![CDATA[TS \leftrightarrows  A]]></fr:tex>. The category of Moore machines with interface <fr:tex display="inline"><![CDATA[A]]></fr:tex> is the slice category of the functor <fr:tex display="inline"><![CDATA[T]]></fr:tex> over <fr:tex display="inline"><![CDATA[A]]></fr:tex>---that is, a morphism of Moore machines is a morphism <fr:tex display="inline"><![CDATA[S \to  S']]></fr:tex> so that the obvious triangle commutes.
</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>25</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0005/</fr:uri>
                    <fr:display-uri>efr-0005</fr:display-uri>
                    <fr:route>/efr-0005/</fr:route>
                    <fr:title text="Mealy Machine">Mealy Machine</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  In a dynamical systems theory, a <html:em>Mealy machine</html:em> with state space <fr:tex display="inline"><![CDATA[S]]></fr:tex> and interface <fr:tex display="inline"><![CDATA[A]]></fr:tex> consists of a costate lens <fr:tex display="inline"><![CDATA[TS \otimes  A \leftrightarrows  I]]></fr:tex>. The category of Mealy machines with interface <fr:tex display="inline"><![CDATA[A]]></fr:tex> is the comma category of the functor <fr:tex display="inline"><![CDATA[T(-) \otimes  A]]></fr:tex> over <fr:tex display="inline"><![CDATA[I]]></fr:tex>---that is, a morphism of Mealy machines is <fr:tex display="inline"><![CDATA[S \to  S']]></fr:tex> so that the obvious triangle commutes.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  A Moore machine in the sense of <fr:link href="/efr-0006/" title="Moore Machine" uri="https://erischel.com/efr-0006/" display-uri="efr-0006" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-0006/" display-uri="efr-0006" /></fr:link> is what Myers calls a (open) dynamical system, and they are the central object of study in <fr:link href="/myers-cst/" title="Categorical Systems Theory" uri="https://erischel.com/myers-cst/" display-uri="myers-cst" type="local">Reference <fr:contextual-number uri="https://erischel.com/myers-cst/" display-uri="myers-cst" /></fr:link>. Arguably, both Moore machines and Mealy machines deserve the name of "open dynamical system"---the difference is how they interact with the external world.
</html:p>
                <html:p>
  Observe in particular that, if <fr:tex display="inline"><![CDATA[A=I]]></fr:tex>, the categories of Mealy and Moore machines agree, both being equal to the slice of <fr:tex display="inline"><![CDATA[T]]></fr:tex> over the unit <fr:tex display="inline"><![CDATA[I]]></fr:tex>. In other words, the two notions of <html:em>closed</html:em> dynamical system coincide.
</html:p>
                <html:p>
  It is clear that both Mealy and Moore machines, in this sense, are special kinds of <html:em>parametrized morphism</html:em> in lenses, namely those parametrized by an object of the form <fr:tex display="inline"><![CDATA[TS]]></fr:tex>. This leads naturally to the idea that there should be a triple category of morphisms of this type, charts, and lenses.
</html:p>
                <html:p>
  We call the parametrized lenses <fr:tex display="inline"><![CDATA[TS \otimes  \bar {A} \leftrightarrows  \bar {B}]]></fr:tex> <html:em>bisystems</html:em> since they generalize the two types of machine, Moore and Mealy (but we choose to stick with "system" rather than "machine").
</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>6</fr:month>
                      <fr:day>13</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-000E/</fr:uri>
                    <fr:display-uri>efr-000E</fr:display-uri>
                    <fr:route>/efr-000E/</fr:route>
                    <fr:title text="Machine Learning as a bisystem">Machine Learning as a bisystem</fr:title>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>

  It is an observation which goes back at least to <fr:link href="/backprop-as-functor/" title="Backprop as Functor: A compositional perspective on supervised learning" uri="https://erischel.com/backprop-as-functor/" display-uri="backprop-as-functor" type="local">Reference <fr:contextual-number uri="https://erischel.com/backprop-as-functor/" display-uri="backprop-as-functor" /></fr:link>, and was more thoroughly developed in <fr:link href="/bruno-etal-categorical-learning-2021/" title="Categorical Foundations of Gradient-Based Learning" uri="https://erischel.com/bruno-etal-categorical-learning-2021/" display-uri="bruno-etal-categorical-learning-2021" type="local">Reference <fr:contextual-number uri="https://erischel.com/bruno-etal-categorical-learning-2021/" display-uri="bruno-etal-categorical-learning-2021" /></fr:link>, that the process of training a machine learning algorithm by gradient descent can be abstracted in the following way:
</html:p>
                    <html:ul><html:li>Wanting to learn a function <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex>, we choose a parametrized function <fr:tex display="inline"><![CDATA[f: X \times  P \to  Y]]></fr:tex>, where all these are, in the simplest case, Euclidean spaces <fr:tex display="inline"><![CDATA[\mathbb {R}^k]]></fr:tex></html:li>
    <html:li>We take the backwards derivative of <fr:tex display="inline"><![CDATA[f,]]></fr:tex> obtaining a <html:em>lens:</html:em>
    <fr:tex display="block"><![CDATA[(f,Df): {TX \choose  X} \otimes  {TP \choose  P} \leftrightarrows  {TY \choose  Y}]]></fr:tex></html:li>
    <html:li>For each datum <fr:tex display="inline"><![CDATA[(x_n,y_n),]]></fr:tex> we compute the loss gradient <fr:tex display="inline"><![CDATA[\nabla  L(-,y_n) : Y \to  TY]]></fr:tex>, and combining this with <fr:tex display="inline"><![CDATA[x_n \in  X]]></fr:tex> and the current parameter <fr:tex display="inline"><![CDATA[p]]></fr:tex>, we get a gradient on the parameter space which we can use to update
    </html:li></html:ul>
                    <html:p>
  Thus a machine learning algorithm is a sort of bisystem. Indeed our bisystems are essentially an abstracted version of the <html:em>learners</html:em> of Fong--Spivak--Tuyeras. The functoriality of this assignment is the main point of the above-mentioned papers. 
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  In this chapter, we will put together the ingredients we have assembled so far and construct a triple category of stochastic dynamical systems. We will also give the construction of triple categories of systems in the ordinary case.
</html:p>
                <html:p>
  Note that the theory of Markov fibrations does not quite generalize the ordinary theory of fibrations---only fibrations with a Cartesian base (<fr:link href="/efr-CJTH/" title="Markov prefibrations over Cartesian base" uri="https://erischel.com/efr-CJTH/" display-uri="efr-CJTH" type="local">Example <fr:contextual-number uri="https://erischel.com/efr-CJTH/" display-uri="efr-CJTH" /></fr:link> and <fr:link href="/efr-Z75A/" title="https://erischel.com/efr-Z75A/" uri="https://erischel.com/efr-Z75A/" display-uri="efr-Z75A" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-Z75A/" display-uri="efr-Z75A" /></fr:link>). Since the pullbacks in <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> play such a key role in the theory, it is not clear that this can be dispensed with. Although Cartesian bases certainly cover the vast majority of examples from the literature on categorical systems, it is of course worth noting that they are not a requirement. Moreover, we will see that the construction of the double category of lenses and charts encounters certain problems for a general Markov fibration not seen for ordinary fibrations. Hence we will give a separate description of the triple categories in each of the two cases.
</html:p>
                <html:p>
  The notions of Mealy and Moore machine are both quite old, going back to <fr:link href="/mealy-circuits/" title="A method for synthesizing sequential circuits" uri="https://erischel.com/mealy-circuits/" display-uri="mealy-circuits" type="local">Reference <fr:contextual-number uri="https://erischel.com/mealy-circuits/" display-uri="mealy-circuits" /></fr:link>, <fr:link href="/moore-gedanken-sequential/" title="Gedanken-Experiments on Sequential Machines" uri="https://erischel.com/moore-gedanken-sequential/" display-uri="moore-gedanken-sequential" type="local">Reference <fr:contextual-number uri="https://erischel.com/moore-gedanken-sequential/" display-uri="moore-gedanken-sequential" /></fr:link>. While we do obtain finite-state automata of these types as special cases, our interest is primarily in the analysis of dynamical systems, which tends to ask rather different questions than automata theory. Thus, despite using the terminology, we will not be particularly interested in the actual theory of Mealy and Moore machines. We do mention one recent paper, <fr:link href="/semibicategory-of-moore-automata/" title="The semibicategory of Moore automata" uri="https://erischel.com/semibicategory-of-moore-automata/" display-uri="semibicategory-of-moore-automata" type="local">Reference <fr:contextual-number uri="https://erischel.com/semibicategory-of-moore-automata/" display-uri="semibicategory-of-moore-automata" /></fr:link>, which has a category-theoretic approach similar in spirit to our own. Their category of Mealy machines can be obtained, not as our category of Mealy machines above, but by considering maps <fr:tex display="inline"><![CDATA[TS \otimes  A \to  B]]></fr:tex> in the case where <fr:tex display="inline"><![CDATA[A = {* \choose  A}, B = {* \choose  B}]]></fr:tex> are trivial in the secondary component. In the discrete case, such a map is given by <fr:tex display="inline"><![CDATA[A \times  S \to  B \times  S]]></fr:tex>.
</html:p>
                <html:p>
  It should also be noted that the idea of embedding Mealy machines as the morphisms <fr:tex display="inline"><![CDATA[TS \otimes  A \to  I]]></fr:tex> is not original, but was communicated to the author by Matteo Capucci. It seems not to have appeared in the literature so far. The idea that there "should" be a triple category of systems, like the one we will construct, has also circulated as folklore, although again an explicit construction has yet to appear. Very similar ideas appear in the work of Shapiro and Spivak, see for example <fr:link href="/shapiro-spivak-dynamic-operads/" title="Dynamic Operads, Dynamic Categories: From Deep Learning to Prediction Markets" uri="https://erischel.com/shapiro-spivak-dynamic-operads/" display-uri="shapiro-spivak-dynamic-operads" type="local">Reference <fr:contextual-number uri="https://erischel.com/shapiro-spivak-dynamic-operads/" display-uri="shapiro-spivak-dynamic-operads" /></fr:link>. 
</html:p>
                <html:p>
  We begin this chapter with a treatment of double categories of charts and lenses in the context of Markov fibrations (and <fr:link href="/efr-OEFJ/" title="Stochastic Module Fibration" uri="https://erischel.com/efr-OEFJ/" display-uri="efr-OEFJ" type="local">stochastic modules</fr:link>). The construction does not work quite as well as in the classical case---the difficulty is essentially that the equivalence relation which defines <fr:link href="/efr-TBZZ/" title="Construction of \mathsf {SChart}(\mathcal {D}_0)" uri="https://erischel.com/efr-TBZZ/" display-uri="efr-TBZZ" type="local">stochastic charts</fr:link> has a directed nature, and given a 2-cell defined in an obvious way <fr:tex display="inline"><![CDATA[\phi  \to  \psi ,]]></fr:tex> and an equation <fr:tex display="inline"><![CDATA[\psi  \xleftarrow {\sim } \psi ',]]></fr:tex> there is not (apparently) in general a way to lift this to an arrow <fr:tex display="inline"><![CDATA[\phi ' \to  \psi ']]></fr:tex> (with <fr:tex display="inline"><![CDATA[\phi ' \simeq  \phi ]]></fr:tex>). However, we can construct a double category whose globular horizontal 2-category have <html:em>connected components</html:em> given by the stochastic charts (or lenses).
</html:p>
                <html:p>
  We proceed to give an account of categorical systems theory for these double categories. The chief problem posed by the above is that we may not have any good clock systems (<fr:link href="/efr-9WQU/" title="Clock system" uri="https://erischel.com/efr-9WQU/" display-uri="efr-9WQU" type="local">Example <fr:contextual-number uri="https://erischel.com/efr-9WQU/" display-uri="efr-9WQU" /></fr:link>). Two equivalent charts should represent the same system, but they may receive different sets of maps from the supposed clock system (and thus have different sets of trajectories). We resolve this by proving that, for lenses with a deterministic base, every equivalence class of lenses has an initial representative. Moreover, mapping out of this initial representative to a representative of some other lens, a 2-cell exists filling a given square if and only if it commutes as a map of lenses and charts in the classical case (recall that over deterministic bases, Markov fibrations become ordinary fibrations). In particular the trajectories of a system with respect to such a clock system depend only on their equivalence class.
</html:p>
                <html:p>
  We follow this up by constructing the above discussed triple categories of "bimachines", that is systems which combine Mealy and Moore machines. We do this both for stochastic and the ordinary case---the procedure is exactly the same, but of course they are different objects, neither generalizing the other.
</html:p>
                <html:p>
  We end by constructing a stochastic dynamical systems theory for <html:em>smooth</html:em> dynamical systems---requiring a brief detour to construct a suitable Markov category of smooth kernels.
</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>2025</fr:year>
                  <fr:month>4</fr:month>
                  <fr:day>24</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-SIE7/</fr:uri>
                <fr:display-uri>efr-SIE7</fr:display-uri>
                <fr:route>/efr-SIE7/</fr:route>
                <fr:title text="Double categories of stochastic charts and lenses">Double categories of stochastic charts and lenses</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  To construct the double category <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}(\mathcal {A})]]></fr:tex> of charts and lenses for an ordinary fibration <fr:tex display="inline"><![CDATA[\mathcal {A} \to  \mathcal {C}]]></fr:tex>, one can use the following procedure:
</html:p>
                <html:ol><html:li>
    Form the square double category <fr:tex display="inline"><![CDATA[\mathcal {A}^\to  \rightrightarrows  \mathcal {A}]]></fr:tex></html:li>
  <html:li>
    Take the fiberwise opposite of these objects: <fr:tex display="inline"><![CDATA[(\mathcal {A}^\to )^\mathrm {fop} \rightrightarrows  \mathcal {A}^\mathrm {fop}]]></fr:tex>.
  </html:li>
  <html:li>
    Observe that fiberwise opposite preserves pullbacks, and hence this is again a double category.
  </html:li></html:ol>
                <html:p>
  Here we used the following result: If <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> is a Grothendieck fibration and <fr:tex display="inline"><![CDATA[\mathcal {A}]]></fr:tex> is any category, then <fr:tex display="inline"><![CDATA[\mathcal {D}^\mathcal {A} \to  \mathcal {C}^\mathcal {A}]]></fr:tex> is again a fibration (which classifies the lax limits of the composite <fr:tex display="inline"><![CDATA[\mathcal {A}^\mathrm {op} \to  \mathcal {C}^\mathrm {op} \to  \mathsf {Cat}]]></fr:tex>), and a natural transformation is Cartesian iff it is levelwise Cartesian. It would be neat to obtain a similar result for Markov fibrations.
</html:p>
                <html:p>
  The first problem with this is that <fr:tex display="inline"><![CDATA[\mathcal {C}^\mathcal {A}]]></fr:tex> does not generally inherit a Markov structure from <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. As we noted when we introduced diagram Markov categories, one has to consider the category <fr:tex display="inline"><![CDATA[\mathsf {Fun}(\mathcal {A},\mathcal {C})]]></fr:tex> of deterministic diagrams instead.
</html:p>
                <html:p>
  First, we will see that this indeed works for Markov <html:em>prefibrations</html:em>. This implies that <fr:tex display="inline"><![CDATA[(-)^\mathcal {A}]]></fr:tex> lifts from fibrations to stochastic modules.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>8</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-6G7N/</fr:uri>
                    <fr:display-uri>efr-6G7N</fr:display-uri>
                    <fr:route>/efr-6G7N/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> be a Markov prefibration. Recall that by <fr:tex display="inline"><![CDATA[\mathcal {C}^\to ]]></fr:tex> we denote the category of <html:em>deterministic</html:em> arrows in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. Let <fr:tex display="inline"><![CDATA[\mathsf {Ar}(\mathcal {C})]]></fr:tex> denote the ordinary arrow category. Let now <fr:tex display="inline"><![CDATA[\mathcal {D}^\to ]]></fr:tex> denote the category <fr:tex display="inline"><![CDATA[\mathsf {Ar}(\mathcal {D}) \times _{\mathsf {Ar}(\mathcal {C})} \mathcal {C}^\to ]]></fr:tex> consisting of those arrows in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> which lie over a deterministic base (but again, where the morphisms consist of commutative squares whose other sides do not necessarily have deterministic bases). Then <fr:tex display="inline"><![CDATA[\mathcal {D}^\to  \to  \mathcal {C}^\to ]]></fr:tex> is a Markov prefibration.
</html:p><html:p>
  This yields a functor <fr:tex display="inline"><![CDATA[\mathsf {MarkPreFib}(\mathcal {C}) \to  \mathsf {MarkPreFib}(\mathcal {C}^\to )]]></fr:tex>, so that <fr:tex display="inline"><![CDATA[(\mathcal {D}^\to )|_\mathrm {det} = (\mathcal {D}|_\mathrm {det})^\to ]]></fr:tex>. This equation induces a natural transformation <fr:tex display="inline"><![CDATA[\overline {(\mathcal {D}_0^\to )}|_\mathrm {det} \to  (\overline {\mathcal {D}_0}|_\mathrm {det})^\to ]]></fr:tex>, which in turns gives a lift of <fr:tex display="inline"><![CDATA[(-)^\to ]]></fr:tex> to the category of stochastic module fibrations, where the induced algebra structure acts pointwise.
</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>2025</fr:year><fr:month>4</fr:month><fr:day>8</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Noting that <fr:tex display="inline"><![CDATA[\mathcal {C}^\to ]]></fr:tex> is a Markov category with the "pointwise" structure, and the deterministic maps consist precisely of the pointwise deterministic maps, clearly <fr:tex display="inline"><![CDATA[\mathcal {D}^\to |_\mathrm {det} = \mathcal {D}|_\mathrm {det}^\to ]]></fr:tex>, and fibrations are stable under the formation of arrow categories, with Cartesian maps formed pointwise.
  </html:p>
  <html:p>
    It is <html:em>not</html:em> trivial that this is a prefibration, because given a triangle in <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}^\to ]]></fr:tex>---a "prism"---and a Cartesian lifting, we only know that the maps "at the ends" are Cartesian, not the maps between the triangles.

Therefore we can not immediately apply the unique lifting property to say that the square between the induced lifts <fr:tex display="inline"><![CDATA[\bar {Y_i}_{X_i} \to  \bar {Y_i}_{Z_i}]]></fr:tex> commute, given some map <fr:tex display="inline"><![CDATA[\bar {Y}_0 \to  \bar {Y}_1]]></fr:tex> over <fr:tex display="inline"><![CDATA[Y_0 \to  Y_1]]></fr:tex>. However, by taking the pullback on both sides (and noting that pullbacks are functorial,) we can factor this square into two which live entirely over a deterministic base, and where the Cartesian property therefore imply commutativity.
  </html:p>
  <html:p>
    We have already argued that this commutes with restriction to the deterministic part. The natural transformation is induced for completely abstract reasons, by applying <fr:tex display="inline"><![CDATA[(-)^\to ]]></fr:tex> to the unit to obtain a map <fr:tex display="inline"><![CDATA[\mathcal {D}_0^\to  \to  (\overline {\mathcal {D}_0}|_\mathrm {det})^\to  = (\overline {\mathcal {D}_0}^\to )|_\mathrm {det},]]></fr:tex> which by the universal property of <fr:tex display="inline"><![CDATA[\overline {(-)}]]></fr:tex> induces the desired map <fr:tex display="inline"><![CDATA[\overline {(\mathcal {D}_0^\to )}|_\mathrm {det} \to  (\overline {\mathcal {D}_0}|_\mathrm {det})^\to ]]></fr:tex>.
  </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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-DXJR/</fr:uri>
                    <fr:display-uri>efr-DXJR</fr:display-uri>
                    <fr:route>/efr-DXJR/</fr:route>
                    <fr:taxon>Corollary</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {A}]]></fr:tex> be a small category, and let <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> be a Markov prefibration. Let <fr:tex display="inline"><![CDATA[\mathsf {Fun}(\mathcal {A},\mathcal {D}) := \mathcal {D}^\mathcal {A} \times _{\mathcal {C}^\mathcal {A}} \mathsf {Fun}(\mathcal {A},\mathcal {C})]]></fr:tex>. Then the functor <fr:tex display="inline"><![CDATA[\mathsf {Fun}(\mathcal {A},\mathcal {D}) \to  \mathsf {Fun}(\mathcal {A},\mathcal {C})]]></fr:tex> is a Markov prefibration.
</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>2025</fr:year><fr:month>5</fr:month><fr:day>6</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Note that <fr:tex display="inline"><![CDATA[\mathsf {Fun}(\mathcal {A},\mathcal {D})]]></fr:tex> is a limit of the categories <fr:tex display="inline"><![CDATA[\mathcal {D}^\to ]]></fr:tex> and prefibrations are stable under these limits.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
                <html:p>
  The question is now
</html:p>
                <html:ol><html:li>If <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> is a Markov fibration, we get a stochastic module structure on <fr:tex display="inline"><![CDATA[\mathcal {D}|_\mathrm {det}^\mathcal {A}]]></fr:tex>---does it present a markov fibration?</html:li>
  <html:li>There is an induced map <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathsf {Fun}(\mathcal {A},\mathcal {D}|_\mathrm {det})) \to  \mathsf {Fun}(\mathcal {A},\mathcal {D})]]></fr:tex> (where the latter is taken by convention to mean the full subcategory of functors whose image in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> consists of deterministic arrows). Is this an isomorphism? (If it is, clearly this implies point 1)</html:li></html:ol>
                <html:p>
  Unfortunately it's not clear that either of these are true---the surjectivity of <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}|_\mathrm {det}) \to  \mathcal {D}]]></fr:tex> cannot a priori be lifted to the arrow category. The issue is that, given a map in <fr:tex display="inline"><![CDATA[\mathcal {D}^\to ]]></fr:tex> consisting of, say <fr:tex display="inline"><![CDATA[\phi _0,\phi _1,]]></fr:tex> it is not sufficient to find charts representing each of these---we must find a <html:em>chart of squares</html:em> representing the square. This is not guaranteed by the Markov fibration structure, and a similar issue comes into play for the equivalence witnesses. 
</html:p>
                <html:p>
  We may attempt to ignore this issue and simply try to form a double category <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathcal {D}^\to ) \rightrightarrows  \mathsf {SLens}(\mathcal {D}),]]></fr:tex> given a stochastic module <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>, but here the problem is that <fr:tex display="inline"><![CDATA[\mathsf {SLens}]]></fr:tex> does not commute with limits in general. Hence we can not easily define a composition on the 2-cells of lenses obtained this way.
</html:p>
                <html:p>
  There are various ways we might attempt to remedy this problem. One approach would be to formulate a behavioural notion of "commutativity" for squares of stochastic lenses and charts, but the problem with this is that it is not obvious whether this property is stable under composition.
</html:p>
                <html:p>
  The basic problem stems from the fact that chart equivalences have a "directed" nature, and given a morphism of precharts <fr:tex display="inline"><![CDATA[(M,\phi ) \to  (N,\psi )]]></fr:tex> and an equivalence <fr:tex display="inline"><![CDATA[(N,\psi ) \leftarrow  (N',\psi ')]]></fr:tex> (for example given by a stochastic section <fr:tex display="inline"><![CDATA[N' \to  N]]></fr:tex> satisfying suitable conditions), there is not in general a way to lift this back into an equivalent <fr:tex display="inline"><![CDATA[(M',\phi ')]]></fr:tex> with a map to <fr:tex display="inline"><![CDATA[N']]></fr:tex>. 
</html:p>
                <html:p>
  This observation leads to the idea that we might define a double category of precharts which has the directed equivalences among its morphisms (going only in one direction). We will begin by constructing this double category.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>23</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-KO4T/</fr:uri>
                    <fr:display-uri>efr-KO4T</fr:display-uri>
                    <fr:route>/efr-KO4T/</fr:route>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> be a (Grothendieck) fibration, and let <fr:tex display="inline"><![CDATA[\mathcal {C} \to  \mathcal {C}']]></fr:tex> be a faithful, identity-on-objects functor. Suppose <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> admits pullbacks, and given a pair of morphisms <fr:tex display="inline"><![CDATA[P \to  X,Y \in  \mathcal {C}']]></fr:tex> over <fr:tex display="inline"><![CDATA[Z]]></fr:tex>, where <fr:tex display="inline"><![CDATA[P \to  X]]></fr:tex> is in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, there is a unique common factorization <fr:tex display="inline"><![CDATA[P \to  X \times _Z Y]]></fr:tex>.
</html:p>
                    <html:ol><html:li>The double category <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Span}_{\mathcal {C}'}(\mathcal {C})]]></fr:tex> has <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> as the vertical category, spans <fr:tex display="inline"><![CDATA[X \leftarrow  P \to  Y]]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> equipped with a section <fr:tex display="inline"><![CDATA[X \to  P \in  {\mathcal {C}'}]]></fr:tex> as horizontal cells, and maps of spans which commute with the sections as 2-cells.</html:li>
  <html:li>
    The double category <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Span}_{\mathcal {C}'}(\mathcal {D} / \mathcal {C})]]></fr:tex> lying over <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Span}_{\mathcal {C}'}(\mathcal {C})]]></fr:tex> has <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> as the vertical category, and spans <fr:tex display="inline"><![CDATA[\bar {X} \xleftarrow {f} \bar {P} \xrightarrow {g} \bar {Y}]]></fr:tex> where <fr:tex display="inline"><![CDATA[f]]></fr:tex> is Cartesian, decorated with a section <fr:tex display="inline"><![CDATA[X \to  P]]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex> as the horizontal cells, and maps of such spans (so that the underlying thing commutes with the sections) as the 2-cells. We will call the horizontal cells <html:em>decorated spans</html:em>.
  </html:li>
  <html:li>
    There is an apparent forgetful functor <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Span}_{\mathcal {C}'}(\mathcal {D} / \mathcal {C}) \to  \mathsf {\mathbb  Span}_{\mathcal {C}'}(\mathcal {C})]]></fr:tex></html:li></html:ol>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  To spell it out, a 2-cell in <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Span}_{\mathcal {C}'}(\mathcal {D} / \mathcal {C})]]></fr:tex> consists of a diagram of this form in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>, where <fr:tex display="inline"><![CDATA[f_1,f_2]]></fr:tex> are Cartesian,
  and (writing <fr:tex display="inline"><![CDATA[X_1]]></fr:tex> for the object underlying <fr:tex display="inline"><![CDATA[\overline {X_1}]]></fr:tex>, and so on) two sections <fr:tex display="inline"><![CDATA[s_1,s_2]]></fr:tex> of the underlying maps in <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex>, so that the second diagram also commutes in <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex>:
  
  <html:figure><fr:resource hash="680ab8cb5c0984d0fcc3fa132d420533"><fr:resource-content><html:img src="/680ab8cb5c0984d0fcc3fa132d420533.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	{\overline {X_1}} & {\overline {P_1}} & {\overline {Y_1}} \\
	{\overline {X_2}} & {\overline {P_2}} & {\overline {Y_2}} \\
	{X_1} & {P_1} & {Y_1} \\
	{X_2} & {P_2} & {Y_2}
	\arrow [from=1-1, to=2-1]
	\arrow ["{f_1}"', from=1-2, to=1-1]
	\arrow [from=1-2, to=1-3]
	\arrow [from=1-2, to=2-2]
	\arrow [from=1-3, to=2-3]
	\arrow ["{f_2}"', from=2-2, to=2-1]
	\arrow [from=2-2, to=2-3]
	\arrow ["{s_1}", shift left=3, curve={height=-6pt}, from=3-1, to=3-2]
	\arrow [from=3-1, to=4-1]
	\arrow [from=3-2, to=3-3]
	\arrow [from=3-2, to=4-2]
	\arrow [from=3-3, to=4-3]
	\arrow ["{s_2}", shift left=3, curve={height=-6pt}, from=4-1, to=4-2]
	\arrow [from=4-2, to=4-3]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure></html:p>
                <html:p>
  Naturally, we are interested in the case of <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Span}_{\mathcal {C}}(\mathcal {D} / \mathcal {C}_\mathrm {det})]]></fr:tex> for a stochastic module <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>. Then the decorated spans are representatives for stochastic charts. We will start by introducing a loosed notion of 2-cell for these spans, which combines the directed equivalences with the ordinary deterministic 2-cells of spans.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>24</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-RD28/</fr:uri>
                    <fr:display-uri>efr-RD28</fr:display-uri>
                    <fr:route>/efr-RD28/</fr:route>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a Markov category and let <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> be a stochastic module over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>.
  Let <fr:tex display="inline"><![CDATA[(M_1, \phi _1): \bar {X_1} \leftrightarrows  \bar {Y_1}, (M_2, \phi _2): \bar {X_2} \leftrightarrows  \bar {Y_2}]]></fr:tex> be decorated spans in <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Span}_{\mathcal {C}}(\mathcal {D} / \mathcal {C}_\mathrm {det})]]></fr:tex>, and let <fr:tex display="inline"><![CDATA[f: \bar {X_1} \rightrightarrows  \bar {X_2}, g: \bar {Y_1} \to  \bar {Y_2}]]></fr:tex> be morphisms in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>, so that we have a square
   
  <html:figure><fr:resource hash="2a41c791e808afcedadf6b8fde97aaaa"><fr:resource-content><html:img src="/2a41c791e808afcedadf6b8fde97aaaa.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	{\overline {X_1}} & {\overline {X_1}_{M_1}} & {\overline {Y_1}} \\
	{\overline {X_2}} & {\overline {X_2}_{M_2}} & {\overline {Y_2}}
	\arrow ["f"', from=1-1, to=2-1]
	\arrow [from=1-2, to=1-1]
	\arrow ["{\phi _1}", from=1-2, to=1-3]
	\arrow ["g", from=1-3, to=2-3]
	\arrow [from=2-2, to=2-1]
	\arrow ["{\phi _2}", from=2-2, to=2-3]
  \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure></html:p>
                    <html:p>
  A <html:em>2-cell of decorated spans</html:em> for this data consists of a morphism <fr:tex display="inline"><![CDATA[m: M_1 \to  M_2 \in  \mathcal {C}]]></fr:tex> (that is, possibly stochastic), satisfying the following two conditions. First, the diagram
  
  <html:figure><fr:resource hash="f12e5548bfe27285f85f4f1fbc6e327b"><fr:resource-content><html:img src="/f12e5548bfe27285f85f4f1fbc6e327b.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	{X_1} & {M_1} & {Y_1} \\
	{X_2} & {M_2} & {Y_2}
	\arrow [from=1-1, to=2-1]
	\arrow [from=1-2, to=1-1]
	\arrow [from=1-2, to=1-3]
	\arrow [from=1-2, to=2-2]
	\arrow [from=1-3, to=2-3]
	\arrow [from=2-2, to=2-1]
	\arrow [from=2-2, to=2-3]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  in the base must commute. Given this, there is an induced square
  

  
  <html:figure><fr:resource hash="ec6ccb71a02049172ceaeb2864de40c0"><fr:resource-content><html:img src="/ec6ccb71a02049172ceaeb2864de40c0.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	{\overline {X_1}_{M_1}} & {\overline {Y_1}_{M_1}} \\
	{\overline {X_2}_{M_1}} & {\overline {Y_2}_{M_1}}
	\arrow [from=1-1, to=1-2]
	\arrow [from=1-1, to=2-1]
	\arrow [from=1-2, to=2-2]
	\arrow [from=2-1, to=2-2]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>


  in <fr:tex display="inline"><![CDATA[\mathcal {D}_{M_1}]]></fr:tex>, where the bottom map is given by pulling back <fr:tex display="inline"><![CDATA[\phi _2]]></fr:tex> along <fr:tex display="inline"><![CDATA[m]]></fr:tex>, in the sense of <fr:link href="/efr-VF6V/" title="https://erischel.com/efr-VF6V/" uri="https://erischel.com/efr-VF6V/" display-uri="efr-VF6V" type="local">Lemma <fr:contextual-number uri="https://erischel.com/efr-VF6V/" display-uri="efr-VF6V" /></fr:link>. The second condition is that this square must also commute.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>24</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-DRU6/</fr:uri>
                    <fr:display-uri>efr-DRU6</fr:display-uri>
                    <fr:route>/efr-DRU6/</fr:route>
                    <fr:taxon>Lemma</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  2-cells of decorated spans compose---that is, given a diagram
  
  <html:figure><fr:resource hash="87b15b5a65e5214eaed0c0c992b146af"><fr:resource-content><html:img src="/87b15b5a65e5214eaed0c0c992b146af.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    \bar {X_1} \ar [d] \ar [r, "\phi _1"] & \bar {Y_1} \ar [d]\\
    \bar {X_2} \ar [r, "\phi _2"] \ar [d] & \bar {Y_2} \ar [d]\\
    \bar {X_3} \ar [r, "\phi _3"]        & \bar {Y_3}
    \end {tikzcd} 
  ]]></fr:resource-source></fr:resource></html:figure>

  where the horizontal maps are decorated spans, and the vertical maps are maps in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> with deterministic base, and given maps of decorated spans <fr:tex display="inline"><![CDATA[\phi _1 \xrightarrow {\alpha } \phi _2 \xrightarrow {\beta } \phi _3,]]></fr:tex> there is a map of decorated spans <fr:tex display="inline"><![CDATA[\phi _1 \to  \phi _3]]></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>2025</fr:year><fr:month>4</fr:month><fr:day>24</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    We can easily compose the two maps to get <fr:tex display="inline"><![CDATA[M_1 \to  M_3]]></fr:tex>. Now, the question is whether the perimeter of this diagram commutes:
    
  <html:figure><fr:resource hash="3149db008b83c3e087bc9fc128a59ebf"><fr:resource-content><html:img src="/3149db008b83c3e087bc9fc128a59ebf.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
      \begin {tikzcd}
      \bar {X_1}_{M_1} \ar [d] \ar [r] & \bar {Y_1}_{M_1}\ar [d]\\
      \bar {X_2}_{M_1} \ar [r] \ar [d] & \bar {Y_2}_{M_1} \ar [d]\\
      \bar {X_3}_{M_1} \ar [r] & \bar {Y_3}_{M_1}
      \end {tikzcd}
    ]]></fr:resource-source></fr:resource></html:figure>

    Note that the top square is commutative by assumption, since pullbacks compose (even along stochastic maps) and this is the assumption that <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex> is a cell. The bottom square is the result of pulling back a commutative square over <fr:tex display="inline"><![CDATA[M_2]]></fr:tex> again along <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex>. Note that pullback along stochastic morphisms is not in general functorial---but since the vertical parts of this square are themselves pulled back from <fr:tex display="inline"><![CDATA[X_2,Y_2]]></fr:tex>, this composition is preserved by pullback along <fr:tex display="inline"><![CDATA[\alpha : M_1 \to  M_2]]></fr:tex>. This finishes 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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>24</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-L7X0/</fr:uri>
                    <fr:display-uri>efr-L7X0</fr:display-uri>
                    <fr:route>/efr-L7X0/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  2-cells of decorated spans compose horizontally: Given a square
  
  <html:figure><fr:resource hash="044058098396c2550b40b2246241c406"><fr:resource-content><html:img src="/044058098396c2550b40b2246241c406.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    \bar {X_1} \ar [r, "\phi _1"] \ar [d] & \bar {Y_1} \ar [r, "\psi _1"] \ar [d] & \bar {Z_1} \ar [d]\\
    \bar {X_2} \ar [r, "\phi _2"] & \bar {Y_2} \ar [r, "\psi _2"] & \bar {Z_2}
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  where the horizontal maps are precharts and the vertical maps are morphisms in <fr:tex display="inline"><![CDATA[\mathcal {D}|_\mathrm {det}]]></fr:tex>, and given <fr:tex display="inline"><![CDATA[\alpha : \phi _1 \to  \phi _2]]></fr:tex> and <fr:tex display="inline"><![CDATA[\beta : \psi _1 \to  \psi _2]]></fr:tex>, there is a prechart morphism <fr:tex display="inline"><![CDATA[\psi _1\phi _1 \to  \psi _2\phi _2]]></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>2025</fr:year><fr:month>4</fr:month><fr:day>24</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Unlike the proof of <fr:link href="/efr-DRU6/" title="https://erischel.com/efr-DRU6/" uri="https://erischel.com/efr-DRU6/" display-uri="efr-DRU6" type="local">Lemma <fr:contextual-number uri="https://erischel.com/efr-DRU6/" display-uri="efr-DRU6" /></fr:link>, this is straightforward: If the carrier of <fr:tex display="inline"><![CDATA[\phi _i]]></fr:tex> is <fr:tex display="inline"><![CDATA[M_i]]></fr:tex>, and of <fr:tex display="inline"><![CDATA[\psi _i,]]></fr:tex> <fr:tex display="inline"><![CDATA[N_i]]></fr:tex> (for <fr:tex display="inline"><![CDATA[i=1,2]]></fr:tex>), then by definition the composites are carried by the pullback <fr:tex display="inline"><![CDATA[M_i \times _{Y_i} N_i]]></fr:tex>. There is a canonical map <fr:tex display="inline"><![CDATA[M_1 \times _{Y_1} N_1 \to  M_2 \times _{Y_2} N_2]]></fr:tex> over <fr:tex display="inline"><![CDATA[M_2, N_2]]></fr:tex>, given by the independent pairing of <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex> and <fr:tex display="inline"><![CDATA[\beta ]]></fr:tex>.
  </html:p>
  <html:p>Since pullbacks compose, the square over <fr:tex display="inline"><![CDATA[M_1 \times _{Y_1} N_1]]></fr:tex> that must commute is given by the two commutative squares induced by <fr:tex display="inline"><![CDATA[\alpha ,\beta ]]></fr:tex>, pulled back and composed with each other. Here we are pulling back along the deterministic projections from the pullback, and hence these commutative squares are preserved, and hence the composite square commutes as well.
  </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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-MUNG/</fr:uri>
                    <fr:display-uri>efr-MUNG</fr:display-uri>
                    <fr:route>/efr-MUNG/</fr:route>
                    <fr:taxon>Corollary</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> be a stochastic module over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. There is a double category <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {\mathbb  Span}}(\mathcal {D})^\mathrm {chart}]]></fr:tex> which has decorated spans as its horizontal maps, morphisms in <fr:tex display="inline"><![CDATA[\mathcal {D}|_\mathrm {det}]]></fr:tex> as its vertical maps, and decorated span 2-cells as its 2-cells.
</html:p>
                    <html:p>
  Moreover, there is another double category <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {\mathbb  Span}}(\mathcal {D})^\mathrm {lens}]]></fr:tex> which has decorated spans <html:em>in <fr:tex display="inline"><![CDATA[\mathcal {D}^\mathrm {fop}]]></fr:tex></html:em> as its horizontal maps instead.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  (The modification of everything above to lenses instead of charts is obvious).
</html:p>
                <html:p>
  In fact, the globular 2-cells are in a sense exactly the equations defining the set of charts:
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-CU3J/</fr:uri>
                    <fr:display-uri>efr-CU3J</fr:display-uri>
                    <fr:route>/efr-CU3J/</fr:route>
                    <fr:taxon>Lemma</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\phi , \psi : \bar {A} \to  \bar {B}]]></fr:tex> be parallel decorated spans in <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {\mathbb  Span}}(\mathcal {D})^\mathrm {chart}]]></fr:tex> (or <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {\mathbb  Span}}(\mathcal {D})^\mathrm {lens}]]></fr:tex> ).
</html:p><html:p>
  They represent the same stochastic chart (lens) if and only if there exists a zig-zag of globular 2-cells between them.
</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>2025</fr:year><fr:month>5</fr:month><fr:day>6</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Unwinding the definitions, a 2-cell <fr:tex display="inline"><![CDATA[M_\phi  \to  M_\psi ]]></fr:tex> is precisely a map exhibiting the equality of the two decorated spans, as in <fr:link href="/efr-26SF/" title="https://erischel.com/efr-26SF/" uri="https://erischel.com/efr-26SF/" display-uri="efr-26SF" type="local">Lemma <fr:contextual-number uri="https://erischel.com/efr-26SF/" display-uri="efr-26SF" /></fr:link></html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
                <html:p>
  The following straightforward lemma shows that charts over deterministic bases have initial representatives as spans. This will be important later:
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>24</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-10CM/</fr:uri>
                    <fr:display-uri>efr-10CM</fr:display-uri>
                    <fr:route>/efr-10CM/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Suppose given a square 

   
  <html:figure><fr:resource hash="fb807ce7b994fdac1f2421d06ec261de"><fr:resource-content><html:img src="/fb807ce7b994fdac1f2421d06ec261de.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    \bar {X_1} \ar [d, "f"] \ar [r, "\phi _1"] & \bar {Y_1} \ar [d, "g"]\\
    \bar {X_2} \ar [r, "\phi _2"]  & \bar {Y_2}
    \end {tikzcd} 
  ]]></fr:resource-source></fr:resource></html:figure>

  in <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {\mathbb  Span}}(\mathcal {D})^\mathrm {lens}]]></fr:tex> (or <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {\mathbb  Span}}(\mathcal {D})^\mathrm {chart}]]></fr:tex>) Suppose further the underlying square in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is deterministic. Then:
</html:p><html:ol><html:li>
    If there exists a filling decorated span 2-cell, the image in <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}(\mathcal {D}|_\mathrm {det})]]></fr:tex> commutes.
  </html:li>
  <html:li>
    If <fr:tex display="inline"><![CDATA[M_1]]></fr:tex> is the carrier of <fr:tex display="inline"><![CDATA[\phi _1]]></fr:tex> and the left leg <fr:tex display="inline"><![CDATA[M_1 \to  X_1]]></fr:tex> is an isomorphism, then this implication is an equivalence.
  </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>2025</fr:year><fr:month>4</fr:month><fr:day>24</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Given a stochastic chart carried by <fr:tex display="inline"><![CDATA[X \leftarrow  M \to  Y,]]></fr:tex> so that <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> is deterministic, recall that we can first pull back to the equalizer <fr:tex display="inline"><![CDATA[M' \hookrightarrow  M]]></fr:tex> of the two maps <fr:tex display="inline"><![CDATA[M \to  X \to  Y, M \to  Y]]></fr:tex>, then along the prescribed section <fr:tex display="inline"><![CDATA[X \to  M']]></fr:tex>. Note that this gives a 2-cell from this canonical representative with carrier <fr:tex display="inline"><![CDATA[X]]></fr:tex> to the initial representative.
  </html:p>
  <html:p>
    Given two such cells, we get a square
    
  <html:figure><fr:resource hash="4f8c6c98052ea0ab8ded5b94c3385625"><fr:resource-content><html:img src="/4f8c6c98052ea0ab8ded5b94c3385625.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
      \begin {tikzcd}
      M_1 \ar [r] & M_2\\
      X_1 \ar [u] & X_2 \ar [u]
      \end {tikzcd}
    ]]></fr:resource-source></fr:resource></html:figure>

    But as part of the square surrounding the 2-cell, there is given a map <fr:tex display="inline"><![CDATA[X_1 \to  X_2]]></fr:tex>, which must make this square commute. The functoriality of base change (pulling back the map <fr:tex display="inline"><![CDATA[\phi _2]]></fr:tex>) proves this bottom map is again a 2-cell.
  </html:p>
  <html:p>
    But the property for this map to be a 2-cell is exactly the property for this square to be a commutative square in <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}{\mathcal {D}|_\mathrm {det}}]]></fr:tex>. This proves both parts of the statement.
  </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>2025</fr:year>
                  <fr:month>4</fr:month>
                  <fr:day>8</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-7DV5/</fr:uri>
                <fr:display-uri>efr-7DV5</fr:display-uri>
                <fr:route>/efr-7DV5/</fr:route>
                <fr:title text="Double Categories of Stochastic Dynamical System">Double Categories of Stochastic Dynamical System</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>25</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-HS7G/</fr:uri>
                    <fr:display-uri>efr-HS7G</fr:display-uri>
                    <fr:route>/efr-HS7G/</fr:route>
                    <fr:title text="Stochastic Dynamical Systems Theories">Stochastic Dynamical Systems Theories</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  A <html:em>stochastic dynamical systems theory</html:em> consists of a stochastic module <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> equipped with a section <fr:tex display="inline"><![CDATA[T: \mathcal {C}_\mathrm {det} \to  \mathcal {D}|_\mathrm {det}]]></fr:tex> of the underlying fibration.
</html:p>
                    <html:p>
  We adopt the notation <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {\mathbb  Arena}}(\mathcal {D})]]></fr:tex> for the double category which was denoted <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {\mathbb  Span}}(\mathcal {D})^\mathrm {lens}]]></fr:tex> above. We use the symbol <fr:tex display="inline"><![CDATA[\leftrightarrows ]]></fr:tex> for the horizontal (span) morphisms and <fr:tex display="inline"><![CDATA[\rightrightarrows ]]></fr:tex> for the vertical morphisms (in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>).
</html:p>
                    <html:p>
  Given a stochastic dynamical systems theory <fr:tex display="inline"><![CDATA[(\mathcal {D}, T)]]></fr:tex>, the <html:em>double category of dynamical systems</html:em> <fr:tex display="inline"><![CDATA[\mathsf {Sys}(\mathcal {D},T)]]></fr:tex> has
  <html:ol><html:li>Objects triples <fr:tex display="inline"><![CDATA[S \in  \mathcal {C}, \bar {A} \in  \mathcal {D}, \xi : TS \leftrightarrows  \bar {A} \in  \widetilde {\mathsf {\mathbb  Arena}}]]></fr:tex></html:li>
    <html:li>Horizontal morphisms given by a pair <fr:tex display="inline"><![CDATA[f: S \to  S', g: \bar {A} \rightrightarrows  \bar {B} \in  \mathcal {D}, c]]></fr:tex> where <fr:tex display="inline"><![CDATA[c]]></fr:tex> is a square filling <fr:tex display="inline"><![CDATA[\xi , \xi ', Tf, g]]></fr:tex></html:li>
    <html:li>Vertical morphisms given by a pair <fr:tex display="inline"><![CDATA[f: S \to  S', g: \bar {A} \leftrightarrows  \bar {B} \in  \overline {\mathcal {D}}, c]]></fr:tex> where <fr:tex display="inline"><![CDATA[c]]></fr:tex> is a square filling <fr:tex display="inline"><![CDATA[Tf, g \xi , \xi ', 1_{\bar {B}}]]></fr:tex></html:li></html:ol></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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>25</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-N5V5/</fr:uri>
                    <fr:display-uri>efr-N5V5</fr:display-uri>
                    <fr:route>/efr-N5V5/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[T,\mathcal {D}]]></fr:tex> be a stochastic dynamical systems theory.
  Then <fr:tex display="inline"><![CDATA[T,\mathcal {D}|_\mathrm {det}]]></fr:tex> is an ordinary dynamical systems theory.
  There is a double functor <fr:tex display="inline"><![CDATA[\mathsf {Sys}(T,\mathcal {D}|_\mathrm {det}) \to  \mathsf {Sys}(T,\mathcal {C})]]></fr:tex>. This functor is full on vertical morphisms, and on 2-cells.
</html:p><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathsf {Sys}(T,\mathcal {D})_\mathrm {det}]]></fr:tex> denote the subcategory spanned by systems with deterministic readout, prelenses with deterministic base, and all the morphisms of <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>. Then the restricted functor <fr:tex display="inline"><![CDATA[\mathsf {Sys}(T,\mathcal {D}|_\mathrm {det}) \to  \mathsf {Sys}(T,\mathcal {D})_\mathrm {det}]]></fr:tex> admits a chartwise right adjoint, which assigns to each system or prelens its equivalence class.
</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>2025</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>
    The functor simply acts as the functor in <fr:link href="/efr-JQI9/" title="https://erischel.com/efr-JQI9/" uri="https://erischel.com/efr-JQI9/" display-uri="efr-JQI9" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-JQI9/" display-uri="efr-JQI9" /></fr:link>. Since that inclusion is full on 2-cells, this one is full on vertical morphisms, and since a 2-cell in <fr:tex display="inline"><![CDATA[\mathsf {Sys}]]></fr:tex> is merely a 2-cell in <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}]]></fr:tex> between specific objects, it is also full on 2-cells.
  </html:p>
  <html:p>
    The right adjoint property likewise follows from the analogous property of the inclusion functor on arenas.
  </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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>25</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-JQI9/</fr:uri>
                    <fr:display-uri>efr-JQI9</fr:display-uri>
                    <fr:route>/efr-JQI9/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> be a Markov prefibration. Then there is a double functor <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}(\mathcal {D}|_\mathrm {det}) \to  \widetilde {\mathsf {\mathbb  Arena}}(\mathcal {D}),]]></fr:tex> which acts as identity on the morphisms of <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>, and carries each lens <fr:tex display="inline"><![CDATA[(f: X \to  Y, \phi : f^*\bar {Y} \to  \bar {X})]]></fr:tex> to the prelens <fr:tex display="inline"><![CDATA[(X \leftarrow  X \to  Y, \phi )]]></fr:tex>. This double functor is full on 2-cells.
</html:p><html:p>
  The restriction to <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}(\mathcal {D}|_\mathrm {det}) \to  \mathsf {\mathbb  Arena}(\mathcal {D})_\mathrm {det}]]></fr:tex> admits a right adjoint, which carries every prelens to its equivalence class.
</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>2025</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>
    First we must verify functoriality with respect to lens composition. To that end, let <fr:tex display="inline"><![CDATA[X \xrightarrow {f} Y \xrightarrow {g} Z]]></fr:tex> be deterministic morphisms and <fr:tex display="inline"><![CDATA[\phi ,\psi ]]></fr:tex> be lenses over them.
    Their composite as prelenses has carrier <fr:tex display="inline"><![CDATA[X \times _Y Y = X]]></fr:tex> and <fr:tex display="inline"><![CDATA[f^*(\psi )\phi ]]></fr:tex> as the morphism in the fiber, which is exactly the prelens associated to their composite as lenses.
  </html:p>
  <html:p>
    Second, we must verify fullness on 2-cells. But this is a special case of <fr:link href="/efr-10CM/" title="https://erischel.com/efr-10CM/" uri="https://erischel.com/efr-10CM/" display-uri="efr-10CM" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-10CM/" display-uri="efr-10CM" /></fr:link>.
  </html:p>
  <html:p>
    Finally, <fr:link href="/efr-10CM/" title="https://erischel.com/efr-10CM/" uri="https://erischel.com/efr-10CM/" display-uri="efr-10CM" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-10CM/" display-uri="efr-10CM" /></fr:link> is precisely the statement that assigning a prelens to its equivalence class lens is right adjoint to this (and in particular that it forms a functor) 
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
                <html:p>
  Recall that in Myers' categorical dynamical systems theory, trajectories of a system <fr:tex display="inline"><![CDATA[\xi : TS \leftrightarrows  \bar {A}]]></fr:tex> are identified with chart morphisms from a "clock" system---thus for example trajectories of a smooth dynamical system <fr:tex display="inline"><![CDATA[M \to  TM]]></fr:tex> are exactly those maps <fr:tex display="inline"><![CDATA[\gamma : \mathbb {R} \to  M]]></fr:tex> which, when <fr:tex display="inline"><![CDATA[\mathbb {R}]]></fr:tex> is equipped with the vectorfield <fr:tex display="inline"><![CDATA[dx/dt = 1]]></fr:tex>, are homomorphisms.
</html:p>
                <html:p>
  In general this presents an issue for our replacement category <fr:tex display="inline"><![CDATA[\mathsf {Sys}(T,\mathcal {D})]]></fr:tex>---since we wish to regard two systems given by equivalent lenses as equivalent, but their set of homomorphisms from a given clock system is not necessarily in bijection. In the general case, we do not presently have a way around this problem---but at least for clock systems with deterministic readout, the above presents a solution: choosing the initial representative for such a system, we find that the set of trajectories does not depend on the equivalence class of the target system.
</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>2025</fr:year>
                  <fr:month>5</fr:month>
                  <fr:day>6</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-MWCE/</fr:uri>
                <fr:display-uri>efr-MWCE</fr:display-uri>
                <fr:route>/efr-MWCE/</fr:route>
                <fr:title text="The triple category of dynamical systems">The triple category of dynamical systems</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  Having done the prep-work in <fr:link href="/efr-000D/" title="The \mathsf {Para} construction in generic 2-categories" uri="https://erischel.com/efr-000D/" display-uri="efr-000D" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-000D/" display-uri="efr-000D" /></fr:link> (and <fr:link href="/efr-0023/" title="Review of Categorical Systems Theory" uri="https://erischel.com/efr-0023/" display-uri="efr-0023" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-0023/" display-uri="efr-0023" /></fr:link>), we can jump directly into the construction:
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-EPI9/</fr:uri>
                    <fr:display-uri>efr-EPI9</fr:display-uri>
                    <fr:route>/efr-EPI9/</fr:route>
                    <fr:title text="\mathsf {BiSys}">
                      <fr:tex display="inline"><![CDATA[\mathsf {BiSys}]]></fr:tex>
                    </fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {A} \to  \mathcal {C}, T: \mathcal {C} \to  \mathcal {A}]]></fr:tex> be a symmetric monoidal dynamical systems theory. Then this diagram:
  
  <html:figure><fr:resource hash="4f18520c092bbb565136eec5ffadca87"><fr:resource-content><html:img src="/4f18520c092bbb565136eec5ffadca87.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	{(\mathcal {C}^\to )^\simeq } & {\mathsf {Arena}(\mathcal {A})_1} \\
	{\mathcal {C}^\simeq } & {\mathsf {Arena}(\mathcal {A})_0}
	\arrow ["{(T^\to )}"', from=1-1, to=1-2]
	\arrow [shift right, from=1-1, to=2-1]
	\arrow [shift left, from=1-1, to=2-1]
	\arrow [shift right, from=1-2, to=2-2]
	\arrow [shift left, from=1-2, to=2-2]
	\arrow ["T"', from=2-1, to=2-2]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  depicts two strict double categories, each with a symmetric monoidal structure, and a strict double functor between them which is (non-strictly) a symmetric monoidal functor. This induces an object of <fr:tex display="inline"><![CDATA[\mathsf {SymMon}(\mathsf {Act}(\mathsf {DblCat}))]]></fr:tex>. Applying <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}(-)]]></fr:tex> under <fr:tex display="inline"><![CDATA[\mathsf {SymMon}(-),]]></fr:tex> we obtain a symmetric pseudomonoid in internal pseudocategories in <fr:tex display="inline"><![CDATA[\mathsf {DblCat}]]></fr:tex>. Denote by <fr:tex display="inline"><![CDATA[\mathsf {BiSys}(\mathcal {C},\mathcal {A},T)]]></fr:tex> this induced object.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-WX1V/</fr:uri>
                    <fr:display-uri>efr-WX1V</fr:display-uri>
                    <fr:route>/efr-WX1V/</fr:route>
                    <fr:title text="The Structure of \mathsf {BiSys}">The Structure of <fr:tex display="inline"><![CDATA[\mathsf {BiSys}]]></fr:tex></fr:title>
                    <fr:taxon>Remark</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p><fr:tex display="inline"><![CDATA[\mathsf {BiSys}(\mathcal {C},\mathcal {A},T)]]></fr:tex> has the following structure: The objects are simply the objects of <fr:tex display="inline"><![CDATA[\mathcal {A}]]></fr:tex>---the bundles.
</html:p>
                    <html:p>
  There are three types of 1-cell: Lenses, that is morphism in <fr:tex display="inline"><![CDATA[\mathcal {A}^\mathrm {fop}]]></fr:tex>, which we write <fr:tex display="inline"><![CDATA[A \leftrightarrows  B]]></fr:tex>, charts, that is morphisms in <fr:tex display="inline"><![CDATA[\mathcal {A}]]></fr:tex>, which we write <fr:tex display="inline"><![CDATA[A \rightrightarrows  B]]></fr:tex>, and <html:em>bisystems,</html:em> which are pairs <fr:tex display="inline"><![CDATA[(S \in  \mathcal {C}, TS \otimes  A \leftrightarrows  B)]]></fr:tex>, and which we write <fr:tex display="inline"><![CDATA[A \nrightarrow  B]]></fr:tex>.
</html:p>
                    <html:p>
  Moreover there are three types of 2-cell:
  <html:ol><html:li>
    Lens-chart cells, which are the 2-cells of <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}(\mathcal {A})]]></fr:tex>. Note that this double category is thin. We will say a square of lenses and charts <html:em>commutes</html:em> if it is filled by such a 2-cell.
  </html:li>
  <html:li>
    Chart-bisystem cells---given charts <fr:tex display="inline"><![CDATA[A_1 \rightrightarrows  B_1, A_2 \rightrightarrows  B_2]]></fr:tex> and systems <fr:tex display="inline"><![CDATA[TS \otimes  A_1 \leftrightarrows  A_2, TS' \otimes  A_2 \leftrightarrows  B_2,]]></fr:tex> a square filling this is a choice of map <fr:tex display="inline"><![CDATA[S \to  S' \in  \mathcal {C}]]></fr:tex> so that the resulting lens-chart square
    
  <html:figure><fr:resource hash="8adf27fc64b7821f1bd8034d14f98f85"><fr:resource-content><html:img src="/8adf27fc64b7821f1bd8034d14f98f85.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
      \begin {tikzcd}
	{TS \otimes  A_1} & {A_2} \\
	{TS'\otimes  B_1} & {B_2}
	\arrow [shift right, from=1-1, to=1-2]
	\arrow [shift right, from=1-1, to=2-1]
	\arrow [shift left, from=1-1, to=2-1]
	\arrow [shift right, from=1-2, to=1-1]
	\arrow [shift right, from=1-2, to=2-2]
	\arrow [shift left, from=1-2, to=2-2]
	\arrow [shift right, from=2-1, to=2-2]
	\arrow [shift right, from=2-2, to=2-1]
\end {tikzcd}
    ]]></fr:resource-source></fr:resource></html:figure>

    commutes.
  </html:li>
  <html:li>
    Lens-bisystem cells. Given lenses <fr:tex display="inline"><![CDATA[A_1 \leftrightarrows  B_1, A_2 \leftrightarrows  B_2,]]></fr:tex> and systems <fr:tex display="inline"><![CDATA[TS' \otimes  A_1 \leftrightarrows  A_2, TS' \otimes  B_1 \leftrightarrows  B_2,]]></fr:tex> a 2-cell consists of an <html:em>isomorphism <fr:tex display="inline"><![CDATA[S' \xrightarrow {\sim } S']]></fr:tex></html:em> so that the resulting square of lenses commutes (recall that isomorphism charts are the same as isomorphism lenses).
    
  <html:figure><fr:resource hash="49ed69ceec6149ec04b7972983f3c45f"><fr:resource-content><html:img src="/49ed69ceec6149ec04b7972983f3c45f.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
      \begin {tikzcd}
	{TS \otimes  A_1} & {A_2} \\
	{TS'\otimes  B_1} & {B_2}
	\arrow [shift right, from=1-1, to=1-2]
	\arrow [shift right, from=1-1, to=2-1]
	\arrow [shift right, from=1-2, to=1-1]
	\arrow [shift right, from=1-2, to=2-2]
	\arrow [shift right, from=2-1, to=1-1]
	\arrow [shift right, from=2-1, to=2-2]
	\arrow [shift right, from=2-2, to=1-2]
	\arrow [shift right, from=2-2, to=2-1]
\end {tikzcd}
    ]]></fr:resource-source></fr:resource></html:figure></html:li></html:ol></html:p>
                    <html:p>
  The charts, bisystems and chart-bisystem cells form a pseudo double category with the obvious composition. So do the lenses, bisystems and lens-bisystem cells. Finally, there is a notion of 3-cell given by a box whose sides are 2-cells of each kind, so that the resulting diagram in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> (with isomorphisms on two sides) commutes.
</html:p>
                    <html:p>
  The lens-bisystem double category is <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}_{\mathcal {C}^\simeq }(\mathsf {\mathbb  Arena}{\mathcal {A}}_0)]]></fr:tex> (recall that <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}{\mathcal {A}}_0 = \mathcal {A}^\mathrm {fop}]]></fr:tex>), with the action given by the functor <fr:tex display="inline"><![CDATA[T]]></fr:tex> (restricted to isomorphisms). The chart-bisystem double category is the result of taking <fr:tex display="inline"><![CDATA[\mathsf {BiSys}(\mathcal {C},\mathcal {A},T)]]></fr:tex>, a pseudocategory in double categories, and applying <fr:tex display="inline"><![CDATA[\mathsf {PsCat}((-)_h) : \mathsf {PsCat}(\mathsf {DblCat}) \to  \mathsf {PsCat}(\mathsf {Cat})]]></fr:tex> where <fr:tex display="inline"><![CDATA[(-)_h]]></fr:tex> takes the <html:em>horizontal</html:em> category of a (strict) double category.
</html:p>
                    <html:p>
  The 3-cells, of course, are the 2-cells of <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}_{(\mathcal {C}^\to )^\simeq }(\mathsf {\mathbb  Arena}(\mathcal {A})_1)]]></fr:tex>. Analogously to the above, for each class of 1-cells, there is a 
  double category with those as the objects, the two types of cell as the two morphisms, and the 3-cells as the 2-cells.
</html:p>
                    <html:p>
  All of these six double categories admit a symmetric monoidal structure.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  We can recover the ordinary category of (Moore) systems as the slice over <fr:tex display="inline"><![CDATA[I]]></fr:tex>, in the following sense:
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-2M0M/</fr:uri>
                    <fr:display-uri>efr-2M0M</fr:display-uri>
                    <fr:route>/efr-2M0M/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  There is a pullback diagram
  
  <html:figure><fr:resource hash="0899852ac4840df9e05a97fed26e440b"><fr:resource-content><html:img src="/0899852ac4840df9e05a97fed26e440b.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	{\mathsf {Sys}(T)} & {\mathsf {BiSys}(T)_1} \\
	\bullet  & {\mathsf {BiSys}(T)_0}
	\arrow [from=1-1, to=1-2]
	\arrow [from=1-1, to=2-1]
	\arrow ["\lrcorner "{anchor=center, pos=0.125}, draw=none, from=1-1, to=2-2]
	\arrow ["d"', from=1-2, to=2-2]
	\arrow ["I", from=2-1, to=2-2]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  in <fr:tex display="inline"><![CDATA[\mathsf {DblCat}]]></fr:tex></html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  In a double category <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex>, there is a "horizontal slice" 1-category having objects the horizontal maps <fr:tex display="inline"><![CDATA[A \to  B]]></fr:tex> and morphisms given by 2-cells that are identity on the left boundary, composed vertically. Similarly there is a "vertical slice". This is given by a similar pullback in <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex>---we simply do this one level up.
</html:p>
                <html:p>
  Note that Myers' construction of the double fibration <fr:tex display="inline"><![CDATA[\mathsf {Sys}(\mathcal {C},\mathcal {A},T) \to  \mathsf {\mathbb  Arena}{\mathsf {Cat}}]]></fr:tex> in fact uses the vertical slice in this sense.
</html:p>
                <html:p>
  This somewhat trivial observation means that any composition in <fr:tex display="inline"><![CDATA[\mathsf {BiSys}(\mathcal {C},\mathcal {A},T)]]></fr:tex> which produces 2-cell under <fr:tex display="inline"><![CDATA[I]]></fr:tex> in fact produces a morphism of systems in the ordinary sense. Replacing <fr:tex display="inline"><![CDATA[I]]></fr:tex> with another object, we may regard the slices as further-parametrized versions of <fr:tex display="inline"><![CDATA[\mathsf {Sys}(\mathcal {C},\mathcal {A},T)]]></fr:tex>.  
</html:p>
                <html:p>
  There is essentially no difficulty in applying this to the Markov case:
</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>2025</fr:year>
                      <fr:month>6</fr:month>
                      <fr:day>20</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-W413/</fr:uri>
                    <fr:display-uri>efr-W413</fr:display-uri>
                    <fr:route>/efr-W413/</fr:route>
                    <fr:title text="\mathsf {BiSys}^M">
                      <fr:tex display="inline"><![CDATA[\mathsf {BiSys}^M]]></fr:tex>
                    </fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[(\mathcal {C}, \mathcal {A}, T)]]></fr:tex> be a stochastic dynamical systems theory. Consider the double category whose vertical category is <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> and horizontal category is <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, with commutative squares as the 2-cells (this is the <html:em>transpose</html:em> of <fr:tex display="inline"><![CDATA[\mathcal {C}^\to  \rightrightarrows  \mathcal {C}]]></fr:tex>). This carries an obvious symmetric monoidal structure, and acts on the double category of stochastic arenas <fr:tex display="inline"><![CDATA[\widetilde {\mathsf {\mathbb  Arena}}(\mathcal {A})]]></fr:tex> via the functor <fr:tex display="inline"><![CDATA[T]]></fr:tex>. Denote by <fr:tex display="inline"><![CDATA[\mathsf {BiSys}^M(\mathcal {C},\mathcal {A},T)]]></fr:tex> the symmetric monoidal triple category induced as in <fr:link href="/efr-EPI9/" title="\mathsf {BiSys}" uri="https://erischel.com/efr-EPI9/" display-uri="efr-EPI9" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-EPI9/" display-uri="efr-EPI9" /></fr:link> by this data.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  The information contained in <fr:tex display="inline"><![CDATA[\mathsf {BiSys}^M(\mathcal {C},\mathcal {A},T)]]></fr:tex> is much as above, although the complications involved in the double category of stochastic arenas remain present.
</html:p>
                <html:p>
  Our bisystems are reminiscent of the <html:em>energy-driven systems</html:em> of Capucci, Lynch, and Spivak (<fr:link href="/energy-driven-systems/" title="Organizing Physics with Open Energy-Driven Systems" uri="https://erischel.com/energy-driven-systems/" display-uri="energy-driven-systems" type="local">Reference <fr:contextual-number uri="https://erischel.com/energy-driven-systems/" display-uri="energy-driven-systems" /></fr:link>). Indeed, their <fr:tex display="inline"><![CDATA[\mathbb {C} \mathsf {org}]]></fr:tex> is essentially the bisystems in the (ordinary) doctrine of smooth dynamical systems. As we mentioned in the introduction, Shapiro and Spivak (<fr:link href="/shapiro-spivak-dynamic-operads/" title="Dynamic Operads, Dynamic Categories: From Deep Learning to Prediction Markets" uri="https://erischel.com/shapiro-spivak-dynamic-operads/" display-uri="shapiro-spivak-dynamic-operads" type="local">Reference <fr:contextual-number uri="https://erischel.com/shapiro-spivak-dynamic-operads/" display-uri="shapiro-spivak-dynamic-operads" /></fr:link>) have previous developed a structure <fr:tex display="inline"><![CDATA[\mathbb {O} \mathsf {rg}]]></fr:tex> which consists of the bisystems for the discrete dynamical systems doctrine (i.e <fr:tex display="inline"><![CDATA[\mathsf {Set}^\to  \to  \mathsf {Set}]]></fr:tex>). <fr:tex display="inline"><![CDATA[\mathbb {O} \mathsf {rg}]]></fr:tex> has a tremendous amount of structure coming from the representation of lenses in this doctrine as the category of polynomial functors, which can't be replicated for a general systems theory (and certainly not for a general <html:em>stochastic</html:em> systems theory).
</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>2025</fr:year>
                  <fr:month>5</fr:month>
                  <fr:day>4</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-9J8G/</fr:uri>
                <fr:display-uri>efr-9J8G</fr:display-uri>
                <fr:route>/efr-9J8G/</fr:route>
                <fr:title text="A Stochastic Dynamical Systems Theory of Smooth Manifolds">A Stochastic Dynamical Systems Theory of Smooth Manifolds</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  In this section, as the title suggests, we construct a stochastic dynamical systems theory of smooth manifolds, with the usual tangent bundle.
  The main point is to construct a Markov category containing the smooth manifolds which is pullback-positive. We do this by considering the larger category of <html:em>diffeological spaces</html:em>. In order to make the topology work, we need to complicate the notion of diffeological space a bit, but having done so, we obtain a representable Markov category which is pullback-positive, and contains <fr:tex display="inline"><![CDATA[\mathsf {SmMfd}]]></fr:tex> as a full subcategory of the deterministic maps. A kernel <fr:tex display="inline"><![CDATA[p: M \to  N]]></fr:tex> is a Markov kernel valued in Radon measures which is weakly continuous---so induces a linear map <fr:tex display="inline"><![CDATA[C(N) \to  C(M)]]></fr:tex> taking <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex> to the function <fr:tex display="inline"><![CDATA[x \mapsto  E_{p_x}\phi ]]></fr:tex> on the spaces of continuous functions---and which furthermore smooth in the sense that this operation preserves the smooth functions. 
</html:p>
                <html:p>
  This Markov category of "smooth stochastic maps" may be of some independent interest.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>2</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-CBBU/</fr:uri>
                    <fr:display-uri>efr-CBBU</fr:display-uri>
                    <fr:route>/efr-CBBU/</fr:route>
                    <fr:title text="\mathsf {CartSp}">
                      <fr:tex display="inline"><![CDATA[\mathsf {CartSp}]]></fr:tex>
                    </fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathsf {CartSp}]]></fr:tex> denote the full subcategory of <fr:tex display="inline"><![CDATA[\mathsf {SmMfd}]]></fr:tex> spanned by the objects <fr:tex display="inline"><![CDATA[\mathbb {R}^n]]></fr:tex> for each <fr:tex display="inline"><![CDATA[n]]></fr:tex>. Note that <fr:tex display="inline"><![CDATA[\mathsf {CartSp}]]></fr:tex> has finite products, and is generated by the object <fr:tex display="inline"><![CDATA[\mathbb {R}]]></fr:tex> under finite products.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>2</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-E1SZ/</fr:uri>
                    <fr:display-uri>efr-E1SZ</fr:display-uri>
                    <fr:route>/efr-E1SZ/</fr:route>
                    <fr:title text="Diffeological Space">Diffeological Space</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  A <html:em>smooth space</html:em> is a sheaf on <fr:tex display="inline"><![CDATA[\mathsf {SmMfd}]]></fr:tex> in the standard topology of open covers.
  A smooth space <fr:tex display="inline"><![CDATA[X]]></fr:tex> is a <html:em>diffeological space</html:em> if, for each <fr:tex display="inline"><![CDATA[M \in  \mathsf {SmMfd},]]></fr:tex> the map <fr:tex display="inline"><![CDATA[X(M) \to  \prod _{p \in  M} X(\{p\})]]></fr:tex> is injective.
</html:p>
                    <html:p>
  A diffeological space with underlying set <fr:tex display="inline"><![CDATA[X]]></fr:tex> is called a <html:em>diffeology</html:em> on <fr:tex display="inline"><![CDATA[X]]></fr:tex>, and consists of specifying which maps <fr:tex display="inline"><![CDATA[\mathbb {R}^n \to  X]]></fr:tex> are smooth. We call these maps <html:em>smooth plots</html:em>.
</html:p>
                    <html:p>
  Given a subset <fr:tex display="inline"><![CDATA[X' \subset  X,]]></fr:tex> there is an obvious canonical diffeology on <fr:tex display="inline"><![CDATA[X']]></fr:tex> given by taking the plots to be those functions whose image in <fr:tex display="inline"><![CDATA[X]]></fr:tex> is smooth. We call this the <html:em>subspace diffeology</html:em>.
</html:p>
                    <html:p>
  A morphism of diffeological spaces is called a <html:em>smooth map</html:em>. It is equivalently a function <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> which carries smooth plots to smooth plots.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>2</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-DX6S/</fr:uri>
                    <fr:display-uri>efr-DX6S</fr:display-uri>
                    <fr:route>/efr-DX6S/</fr:route>
                    <fr:title text="Diffeo-Topological space">Diffeo-Topological space</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  A <html:em>diffeo-topological space</html:em> is a diffeological space <fr:tex display="inline"><![CDATA[X]]></fr:tex> equipped with a topology <fr:tex display="inline"><![CDATA[\tau ]]></fr:tex> so that all the smooth plots are continuous.
  A map of diffeo-topological spaces is a smooth map (for the diffeology) which is also continuous (for the topology).
</html:p>
                    <html:p>
  Given a subset <fr:tex display="inline"><![CDATA[X' \subset  X,]]></fr:tex> there is an obvious canonical diffeo-topology on <fr:tex display="inline"><![CDATA[X']]></fr:tex> given by taking the plots to be those functions whose image in <fr:tex display="inline"><![CDATA[X]]></fr:tex> is smooth, and equipping <fr:tex display="inline"><![CDATA[X']]></fr:tex> with the subspace topology.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>2</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-42SC/</fr:uri>
                    <fr:display-uri>efr-42SC</fr:display-uri>
                    <fr:route>/efr-42SC/</fr:route>
                    <fr:taxon>Lemma</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  The category of diffeo-topological spaces admits all limits, given by taking the limits in topological spaces and diffeological spaces (which have the same underlying set).
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>2</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-7RS2/</fr:uri>
                    <fr:display-uri>efr-7RS2</fr:display-uri>
                    <fr:route>/efr-7RS2/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[X]]></fr:tex> be a diffeo-topological space whose underlying space is Tychonoff. Then the space of probability measures <fr:tex display="inline"><![CDATA[P(X)]]></fr:tex> has a canonical diffeology given by those plots <fr:tex display="inline"><![CDATA[f: U \to  P(X)]]></fr:tex> so that for each continuous function <fr:tex display="inline"><![CDATA[g]]></fr:tex> on <fr:tex display="inline"><![CDATA[X,]]></fr:tex> the resulting map <fr:tex display="inline"><![CDATA[u \mapsto  E_{f(u)g}]]></fr:tex> is continuous, and if <fr:tex display="inline"><![CDATA[g]]></fr:tex> is smooth, then this is smooth as well. With this diffeology, and the topology of weak convergence, <fr:tex display="inline"><![CDATA[P(X)]]></fr:tex> is a diffeo-topological space. This defines a commutative affine monad on <fr:tex display="inline"><![CDATA[\mathsf {TychDiff},]]></fr:tex> the category of such diffeo-topological spaces. 
</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>2025</fr:year><fr:month>5</fr:month><fr:day>2</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    The topology of weak convergence on <fr:tex display="inline"><![CDATA[P(X)]]></fr:tex> is such that <fr:tex display="inline"><![CDATA[A \to  P(X)]]></fr:tex> is continuous if and only if the expectation map carries continuous functions to continuous functions. But this is part of the requirement to be a smooth plot, so certainly this is a diffeo-topological space.
  </html:p>
  <html:p>
    Since the linear operator associated to <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex> under the unit <fr:tex display="inline"><![CDATA[X \to  P(X)]]></fr:tex> is merely evaluation at <fr:tex display="inline"><![CDATA[x,]]></fr:tex> the unit is clearly smooth.
    Consider <fr:tex display="inline"><![CDATA[\mu : PPX \to  PX]]></fr:tex>. To test this is smooth, let <fr:tex display="inline"><![CDATA[f: U \to  PP(X)]]></fr:tex> be a plot. We must show <fr:tex display="inline"><![CDATA[\mu  f]]></fr:tex> is a plot. So let <fr:tex display="inline"><![CDATA[v: X \to  \mathbb {R}]]></fr:tex> be a continuous (resp. smooth) function. We must show its expectation a is continuous (resp. smooth) function of <fr:tex display="inline"><![CDATA[u \in  U]]></fr:tex>. 
  </html:p>
  <html:p>
    By construction <fr:tex display="inline"><![CDATA[E(v) : PX \to  \mathbb {R}]]></fr:tex> is continuous (resp. smooth), and so since <fr:tex display="inline"><![CDATA[f]]></fr:tex> is a plot, the map <fr:tex display="inline"><![CDATA[u \mapsto  E_{f(u)}E(v)]]></fr:tex> is continuous (resp. smooth). But this is exactly what we wanted.
  </html:p>
  <html:p>
    The monad laws follow from their holding in <fr:tex display="inline"><![CDATA[\mathsf {Tych}]]></fr:tex>. Since a commutative monad is equivalently a strong monad satisfying a certain equation (which holds for this monad in <fr:tex display="inline"><![CDATA[\mathsf {Tych}]]></fr:tex> and therefore also here), it suffices to show that the strength <fr:tex display="inline"><![CDATA[P(X) \times  Y \to  P(X \times  Y)]]></fr:tex> is smooth. This follows by a completely analogous argument.
  </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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>2</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-S87B/</fr:uri>
                    <fr:display-uri>efr-S87B</fr:display-uri>
                    <fr:route>/efr-S87B/</fr:route>
                    <fr:taxon>Corollary</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  The category <fr:tex display="inline"><![CDATA[\mathsf {TychDiffStoch}]]></fr:tex> of Tychonoff diffeological spaces and Kleisli maps for the monad <fr:tex display="inline"><![CDATA[P]]></fr:tex> described in <fr:link href="/efr-7RS2/" title="https://erischel.com/efr-7RS2/" uri="https://erischel.com/efr-7RS2/" display-uri="efr-7RS2" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-7RS2/" display-uri="efr-7RS2" /></fr:link> is a pullback-positive Markov category. Its deterministic category is <fr:tex display="inline"><![CDATA[\mathsf {TychDiff}]]></fr:tex>. There is a fully faithful functor <fr:tex display="inline"><![CDATA[\mathsf {SmMfd} \to  \mathsf {TychDiff}]]></fr:tex> which preserves transverse pullbacks.
  The maps between smooth manifolds are given by weakly continuous families of Radon probability measures, so that the expectation operator carries smooth maps to smooth maps.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>2</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-LPX2/</fr:uri>
                    <fr:display-uri>efr-LPX2</fr:display-uri>
                    <fr:route>/efr-LPX2/</fr:route>
                    <fr:taxon>Remark</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Since we describe properties of kernels in terms of their corresponding linear operator on function spaces, it would seem natural to take the function spaces as the basic object. Hence we might consider the category <fr:tex display="inline"><![CDATA[C^\infty ]]></fr:tex>-algebras with some relaxed notion of maps between them. The tricky part there is to find some reasonable class of maps so that the tensor product (coproduct) of <fr:tex display="inline"><![CDATA[C^\infty ]]></fr:tex>-algebras extends to these. (Since it is not the same as the tensor product of <fr:tex display="inline"><![CDATA[\mathbb {R}]]></fr:tex>-algebras, linear maps do not automatically extend to the tensor product). In particular, when considering kernels <fr:tex display="inline"><![CDATA[*_1 \to  X]]></fr:tex> where <fr:tex display="inline"><![CDATA[*_1]]></fr:tex> is a "fat point of order 1"---that is, functions on <fr:tex display="inline"><![CDATA[1_*]]></fr:tex> have a value at the point and a derivative---it is not clear what sort of continuity condition the derivative operation on <fr:tex display="inline"><![CDATA[C^\infty (X)]]></fr:tex> should satisfy, nor how to define this in a general way for all <fr:tex display="inline"><![CDATA[C^\infty ]]></fr:tex>-algebras. It would certainly be of interest to synthetic computational geometry to have such a Markov category, but we leave this for future work.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  We will now give an example of how to represent the training dynamics of a machine learning system using the tools developed so far.
  As discussed previously, given a parameterized function <fr:tex display="inline"><![CDATA[F: P \times  X \to  Y]]></fr:tex>, its reverse derivative naturally becomes a parameterized lens, and the composition of these describe how gradient vectors are passed around to compute an update during training. It is natural to want to compose this lens with the data-generating distribution <fr:tex display="inline"><![CDATA[I \to  X \otimes  Y]]></fr:tex>, (along with some more context describing the loss function, etc) to obtain the training dynamics of such a model. This requires a category of parameterized lenses which allows stochastic maps in the base. The goal of combining this feature with non-trivial tangent bundles was one of the original motivations for developing a theory of stochastic lenses.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>3</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-IMZ3/</fr:uri>
                    <fr:display-uri>efr-IMZ3</fr:display-uri>
                    <fr:route>/efr-IMZ3/</fr:route>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Consider the Markov prefibration <fr:tex display="inline"><![CDATA[\mathsf {TychDiffStoch}^\to  \to  \mathsf {TychDiffStoch}]]></fr:tex>. Equip this with the section <fr:tex display="inline"><![CDATA[T(X) = X \otimes  X \xrightarrow {\pi _0} X]]></fr:tex> - this described discrete-time systems (whose update is required to be smooth in the input and present state). This is clearly a symmetric monoidal functor and thus defines a systems theory. Note that this is completely different from the ordinary tangent bundle, despite the coincidence of notation.
</html:p>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[m_1: TS_2 \otimes  X_1 \leftrightarrows  Y_1]]></fr:tex> and <fr:tex display="inline"><![CDATA[m_2: TS_2 \otimes  X_2 \leftrightarrows  Y_2]]></fr:tex> be two bisystems in this theory.
  As in <fr:link href="/efr-SREZ/" title="Open Games with External Choice" uri="https://erischel.com/efr-SREZ/" display-uri="efr-SREZ" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-SREZ/" display-uri="efr-SREZ" /></fr:link>, we may define a parameterized lens <fr:tex display="inline"><![CDATA[(TS_1 \& TS_2) \otimes  (X_1 \oplus  X_2) \leftrightarrows  (Y_1 \oplus  X_2)]]></fr:tex>, denoting by <fr:tex display="inline"><![CDATA[\oplus ]]></fr:tex> the coproduct in lenses, and by <fr:tex display="inline"><![CDATA[\&]]></fr:tex> the Markov structure defined in <fr:link href="/efr-FT8J/" title="https://erischel.com/efr-FT8J/" uri="https://erischel.com/efr-FT8J/" display-uri="efr-FT8J" type="local">Corollary <fr:contextual-number uri="https://erischel.com/efr-FT8J/" display-uri="efr-FT8J" /></fr:link>. Observe that <fr:tex display="inline"><![CDATA[TS_1 \& TS_2]]></fr:tex> is simply the indexed set <fr:tex display="inline"><![CDATA[(S_1 \coprod  S_2) \otimes  S_1 \otimes  S_2 \to  S_1\otimes  S_2]]></fr:tex>. There is an obvious indexed map from this to <fr:tex display="inline"><![CDATA[T(S_1 \otimes  S_2) = S_1 \otimes  S_2 \otimes  S_1 \otimes  S_2]]></fr:tex>, given by <fr:tex display="inline"><![CDATA[(\operatorname {inl} s_1', s_1,s_2) \mapsto  (s_1', s_2, s_1, s_2)]]></fr:tex> and <fr:tex display="inline"><![CDATA[(\operatorname {inr} s_2', s_1, s_2) \mapsto  (s_1,s_2',s_1,s_2)]]></fr:tex>. In words, we receive an update either to the <fr:tex display="inline"><![CDATA[S]]></fr:tex>-state or to the <fr:tex display="inline"><![CDATA[S']]></fr:tex>-state. We apply this update to the relevant state and leave the other alone. This defines a lens <fr:tex display="inline"><![CDATA[T(S_1 \otimes  S_2) \leftrightarrows  T(S_1) \& T(S_2)]]></fr:tex>, which we may compose with the above to obtain a bisystem <fr:tex display="inline"><![CDATA[T(S_1 \otimes  S_2) \otimes  (X_1 \oplus  X_2) \leftrightarrows  Y_1 \oplus  Y_2]]></fr:tex>. Let us denote this by <fr:tex display="inline"><![CDATA[m_1 \oplus  m_2]]></fr:tex>. 
</html:p>
                    <html:p>
  This has very much the same flavor as the external choice for open games, although we will not develop the theory of this operation in detail here.
</html:p>
                    <html:p>
  Now, given a smooth (deterministic) map <fr:tex display="inline"><![CDATA[F: P \times  X \to  Y]]></fr:tex>, where <fr:tex display="inline"><![CDATA[P,X,Y]]></fr:tex> are smooth manifolds (not merely diffeo-toplogical spaces), we obtain a lens <fr:tex display="inline"><![CDATA[T^*(F): {T^*P \choose  P} \otimes  {T^*X \choose  X} \leftrightarrows  {T^*Y \choose  Y}]]></fr:tex>, where <fr:tex display="inline"><![CDATA[T^*(-)]]></fr:tex> denotes the cotangent bundle. (This does not, prima facie, make sense for a general diffeo-topological space).
</html:p>
                    <html:p>
  Let us take as given some family of lenses <fr:tex display="inline"><![CDATA[T(S) = {S \otimes  S \choose  S} \leftrightarrows  {T^*S \choose  S}]]></fr:tex> for various <fr:tex display="inline"><![CDATA[S]]></fr:tex>. Such an operation amounts to choosing a way of updating <fr:tex display="inline"><![CDATA[s \in  S]]></fr:tex> given a cotangent vector---hence we can see it as an optimization algorithm. One example of such would be gradient descent, which given a choice of Riemann structure on <fr:tex display="inline"><![CDATA[S]]></fr:tex>, takes a step of a given length in the direction which most quickly decreases the given covector.
</html:p>
                    <html:p>
  (It should be noted that there are more complicated optimization strategies which don't fit this particular pattern - for example, <html:em>momentum</html:em> algorithms have to maintain some extra internal state other than <fr:tex display="inline"><![CDATA[s \in  S]]></fr:tex>. But let's stick with this pattern for this example). Note also that we're not assuming the optimizers are a natural transformation or anything like that.
</html:p>
                    <html:p>
  Now we are ready to build the neural network architecture known as a generative adversarial network, or GAN (<fr:link href="/gan-paper/" title="Generative Adversarial Networks" uri="https://erischel.com/gan-paper/" display-uri="gan-paper" type="local">Reference <fr:contextual-number uri="https://erischel.com/gan-paper/" display-uri="gan-paper" /></fr:link>). Let us first describe the idea. Our goal is to generate additional samples from some distribution, given a set of existing samples---for example, our goal may be to generate more pictures in the same style as an existing corpus. Suppose our data is of type <fr:tex display="inline"><![CDATA[X]]></fr:tex>, and let <fr:tex display="inline"><![CDATA[d: I \to  X]]></fr:tex> be the data distribution. We fix some <html:em>latent distribution</html:em> <fr:tex display="inline"><![CDATA[\lambda : I \to  L]]></fr:tex>, where <fr:tex display="inline"><![CDATA[L]]></fr:tex> is any space of our choice---usually, <fr:tex display="inline"><![CDATA[L]]></fr:tex> is <fr:tex display="inline"><![CDATA[\mathbb {R}^n]]></fr:tex> and <fr:tex display="inline"><![CDATA[\lambda ]]></fr:tex> is a Gaussian. Finally we choose two neural networks, the <html:em>generator</html:em> <fr:tex display="inline"><![CDATA[G: P_G \otimes  L \to  X]]></fr:tex>, and the <html:em>discriminator</html:em> <fr:tex display="inline"><![CDATA[D: P_D \otimes  X \to  \mathbb {R}]]></fr:tex>. The goal of the discriminator is to discriminate real samples from the data from generated samples, by providing a low value on the generated samples and a high value on the true samples.
</html:p>
                    <html:p>
  The training process now goes as follows: for each step of training, we either sample from the latent distribution, and have the generator use this to generate a sample, or draw a sample from the data distribution (choosing between these with some probability <fr:tex display="inline"><![CDATA[p]]></fr:tex>). Then in either case, we have the discriminator score the generated sample. If the sample was generated by the generator, the discriminator's loss is equal to its output, otherwise it is equal to <fr:tex display="inline"><![CDATA[-1]]></fr:tex> times its output. We update the discriminator according to the gradient of this loss (minimizing it), and update the generator (if we are in the branch where it was run) according to the negative of the gradient of this loss with respect to the generator parameters---this amounts to doing a gradient descent update on the generator for the negative of the discriminator loss.
</html:p>
                    <html:p>
  We can represent this schematically using the following <html:em>tape diagram</html:em> (see <fr:link href="/tape-diags-monoidal-monads/" title="Tape Diagrams for Monoidal Monads" uri="https://erischel.com/tape-diags-monoidal-monads/" display-uri="tape-diags-monoidal-monads" type="local">Reference <fr:contextual-number uri="https://erischel.com/tape-diags-monoidal-monads/" display-uri="tape-diags-monoidal-monads" /></fr:link>):
</html:p>
                    <html:p>
                      <html:figure>
                        <fr:resource hash="5bf26e6cfd93cd6cb88b878dc6e64734">
                          <fr:resource-content>
                            <html:img src="/5bf26e6cfd93cd6cb88b878dc6e64734.svg" />
                          </fr:resource-content>
                          <fr:resource-source type="latex" part="preamble"><![CDATA[
  \usepackage {/Users/eigil/Projects/eigil-forest/assets/tikzit}
\usetikzlibrary {backgrounds}
\usetikzlibrary {arrows}
\usetikzlibrary {shapes,shapes.geometric,shapes.misc}
\usepackage {circuitikz}
]]></fr:resource-source>
                          <fr:resource-source type="latex" part="body"><![CDATA[


  
\tikzstyle {System}=[fill=white, draw=black, shape=rectangle, minimum height=1cm]
\tikzstyle {Operation}=[fill=white, draw=black, shape=circle]
\tikzstyle {State}=[fill=white, draw=black, shape=isosceles triangle, shape border rotate=180]
\tikzstyle {ground}=[fill=white, draw=black, shape=ground, rotate=270]

\tikzstyle {Arrow}=[->]
\tikzstyle {Tape boundary}=[-, draw={rgb,255: red,191; green,0; blue,64}]

\resizebox {\textwidth }{!}{
\begin {tikzpicture}[scale=0.5]
	\begin {pgfonlayer}{nodelayer}
		\node  [style=State] (0) at (-5.5, -2.5) {Data};
		\node  [style=State] (2) at (-10, 5.25) {Latent};
		\node  [style=System] (4) at (-4.5, 5.25) {Generator};
		\node  [style=State] (6) at (-4.5, 3) {+1};
		\node  [style=State] (7) at (-5.5, -5.25) {-1};
		\node  [style=System] (8) at (4.75, 0.25) {};
		\node  [style=System] (9) at (4.75, 0.25) {Discriminator};
		\node  [style=System] (10) at (9.25, 0.25) {Loss};
		\node  [style=none] (11) at (-3.75, 5) {};
		\node  [style=none] (12) at (-1.75, 4.75) {};
		\node  [style=none] (13) at (1.5, 0.25) {};
		\node  [style=none] (14) at (3.25, 0.5) {};
		\node  [style=none] (15) at (5, 0) {};
		\node  [style=none] (16) at (5, 0.5) {};
		\node  [style=none] (17) at (9, 0) {};
		\node  [style=none] (18) at (9, 0.5) {};
		\node  [style=none] (19) at (6.5, -1) {};
		\node  [style=none] (20) at (0.5, -1) {};
		\node  [style=none] (21) at (0.5, 0.5) {};
		\node  [style=none] (22) at (0.5, 1.25) {};
		\node  [style=none] (23) at (3.75, 0) {};
		\node  [style=none] (24) at (3.75, 0.5) {};
		\node  [style=none] (25) at (9, -0.5) {};
		\node  [style=none] (26) at (-3.75, 5.5) {};
		\node  [style=none] (27) at (-9.5, 5) {};
		\node  [style=none] (29) at (-5.25, 5) {};
		\node  [style=none] (30) at (-5.25, 5.5) {};
		\node  [style=none] (31) at (-7.5, 5) {};
		\node  [style=none] (32) at (-7, 5.5) {};
		\node  [style=none] (33) at (-7.5, 5) {};
		\node  [style=System] (34) at (-4.5, 8.25) {Optimizer};
		\node  [style=none] (35) at (-4.75, 8) {};
		\node  [style=none] (36) at (-4.75, 5.5) {};
		\node  [style=none] (37) at (-4.75, 6.75) {};
		\node  [style=none] (38) at (-4.25, 5.5) {};
		\node  [style=none] (39) at (-4.25, 6.75) {};
		\node  [style=none] (40) at (-4.25, 8) {};
		\node  [style=none] (41) at (4.5, 0.5) {};
		\node  [style=System] (42) at (4.75, 3.25) {Optimizer};
		\node  [style=none] (43) at (4.5, 3) {};
		\node  [style=none] (44) at (4.5, 1.75) {};
		\node  [style=none] (45) at (5, 2) {};
		\node  [style=none] (46) at (5, 3) {};
		\node  [style=none] (47) at (4.5, 3.5) {};
		\node  [style=none] (48) at (5, 3.5) {};
		\node  [style=none] (49) at (4.5, 7.5) {};
		\node  [style=none] (50) at (5, 8) {};
		\node  [style=none] (51) at (4.5, 10.25) {};
		\node  [style=none] (52) at (5, 10.25) {};
		\node  [style=none] (53) at (-4.75, 11.25) {};
		\node  [style=none] (54) at (-4.25, 10.75) {};
		\node  [style=none] (55) at (-4.75, 13.25) {};
		\node  [style=none] (56) at (-4.25, 13.25) {};
		\node  [style=none] (57) at (-4.75, 8.5) {};
		\node  [style=none] (58) at (-4.25, 8.5) {};
		\node  [style=none] (59) at (-2, -0.25) {};
		\node  [style=none] (60) at (-15, -0.25) {};
		\node  [style=none] (61) at (-10.25, 10) {};
		\node  [style=none] (62) at (9.25, 2.75) {};
		\node  [style=none] (63) at (1, 8.25) {};
		\node  [style=none] (64) at (9, -3.75) {};
		\node  [style=none] (65) at (-0.75, -7) {};
		\node  [style=none] (66) at (-6.5, -7) {};
		\node  [style=none] (67) at (-2, 0.25) {};
		\node  [style=none] (68) at (-15, 0.25) {};
		\node  [style=none] (69) at (13, -2.25) {};
		\node  [style=none] (70) at (13, 1.75) {};
		\node  [style=none] (71) at (-15, 1.5) {};
		\node  [style=none] (72) at (-15, -1.5) {};
		\node  [style=State] (73) at (-16, 0) {Branch};
		\node  [style=ground] (74) at (-2.75, -1.5) {};
		\node  [style=none] (75) at (-1.25, -1) {};
		\node  [style=none] (76) at (-19.25, -1.5) {};
		\node  [style=none] (77) at (-19.25, 1.5) {};
		\node  [style=ground] (78) at (-7, 5.5) {};
	\end {pgfonlayer}
	\begin {pgfonlayer}{edgelayer}
		\draw  [style=Arrow] (15.center) to (17.center);
		\draw  [style=Arrow] (18.center) to (16.center);
		\draw  [bend left=45, looseness=0.75] (6) to (20.center);
		\draw  [bend right, looseness=1.50] (7) to (20.center);
		\draw  [bend left, looseness=1.25] (11.center) to (21.center);
		\draw  [bend right, looseness=1.25] (0) to (21.center);
		\draw  [style=Arrow] (21.center) to (13.center);
		\draw  [style=Arrow] (20.center) to (19.center);
		\draw  [style=Arrow, bend right, looseness=1.25] (22.center) to (12.center);
		\draw  (22.center) to (14.center);
		\draw  (13.center) to (23.center);
		\draw  [in=-180, out=0, looseness=1.25] (19.center) to (25.center);
		\draw  (12.center) to (26.center);
		\draw  [style=Arrow] (27.center) to (33.center);
		\draw  [style=Arrow] (30.center) to (32.center);
		\draw  (33.center) to (29.center);
		\draw  [style=Arrow] (43.center) to (44.center);
		\draw  [style=Arrow] (16.center) to (45.center);
		\draw  (45.center) to (46.center);
		\draw  (44.center) to (41.center);
		\draw  [style=Arrow] (48.center) to (50.center);
		\draw  [style=Arrow] (51.center) to (49.center);
		\draw  (50.center) to (52.center);
		\draw  (49.center) to (47.center);
		\draw  [style=Arrow] (35.center) to (37.center);
		\draw  [style=Arrow] (38.center) to (39.center);
		\draw  [style=Arrow] (58.center) to (54.center);
		\draw  [style=Arrow] (55.center) to (53.center);
		\draw  (53.center) to (57.center);
		\draw  (54.center) to (56.center);
		\draw  (39.center) to (40.center);
		\draw  (37.center) to (36.center);
		\draw  [style=Tape boundary] (60.center) to (59.center);
		\draw  [style=Tape boundary] (66.center) to (65.center);
		\draw  [style=Tape boundary, bend right=15] (65.center) to (64.center);
		\draw  [style=Tape boundary] (68.center) to (67.center);
		\draw  [style=Tape boundary, bend right=90, looseness=2.25] (59.center) to (67.center);
		\draw  [style=Tape boundary, in=150, out=0] (61.center) to (63.center);
		\draw  [style=Tape boundary, in=135, out=-30] (63.center) to (62.center);
		\draw  [style=Tape boundary, in=-180, out=-30] (62.center) to (70.center);
		\draw  [style=Tape boundary, in=-180, out=30] (64.center) to (69.center);
		\draw  [style=Tape boundary, bend right=270, looseness=1.75] (60.center) to (68.center);
		\draw  [style=Tape boundary, in=0, out=180, looseness=0.75] (66.center) to (72.center);
		\draw  [style=Tape boundary, in=0, out=-180, looseness=0.50] (61.center) to (71.center);
		\draw  [style=Arrow, bend left=15, looseness=1.75] (22.center) to (75.center);
		\draw  [bend left=15] (75.center) to (74);
		\draw  [style=Tape boundary] (77.center) to (71.center);
		\draw  [style=Tape boundary] (76.center) to (72.center);
		\draw  (32.center) to (78);
	\end {pgfonlayer}
\end {tikzpicture}}



]]></fr:resource-source>
                        </fr:resource>
                      </html:figure>
                    </html:p>
                    <html:p>
  The two "tapes" branching off at the start represent two maps (bisystems) composed by <fr:tex display="inline"><![CDATA[\oplus ]]></fr:tex>, while the backwards wires indicate the flow of the gradients. The ground symbol indicates a value being discarded. Note that the theory of tape diagrams has only been developed formally for <html:em>distributive</html:em> categories, and for essentilly the same reason as in <fr:link href="/efr-SREZ/" title="Open Games with External Choice" uri="https://erischel.com/efr-SREZ/" display-uri="efr-SREZ" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-SREZ/" display-uri="efr-SREZ" /></fr:link>, we do not have distributivity in this case. However, the interpretation of this diagram is still unambiguous---distributivity is required to make tape diagrams <html:em>complete</html:em>, not to make them sound. Concretely, if we tried to represent the tensoring of this system with another system, we would have no way of doing it, but if the category was distributive we could do so by adding this additional system to each of the branches. Still, the figure is best viewed as a visual aid rather than a formal representation.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
              </fr:mainmatter>
            </fr:tree>
          </fr:mainmatter>
        </fr:tree>
        <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>2025</fr:year>
              <fr:month>3</fr:month>
              <fr:day>26</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/efr-O088/</fr:uri>
            <fr:display-uri>efr-O088</fr:display-uri>
            <fr:route>/efr-O088/</fr:route>
            <fr:title text="Markov Fibrations and Stochastic Lenses">Markov Fibrations and Stochastic Lenses</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>2025</fr:year>
                  <fr:month>4</fr:month>
                  <fr:day>7</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-X0ZV/</fr:uri>
                <fr:display-uri>efr-X0ZV</fr:display-uri>
                <fr:route>/efr-X0ZV/</fr:route>
                <fr:title text="Introduction">Introduction</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  Let <fr:tex display="inline"><![CDATA[Kl(\Delta )]]></fr:tex> denote the Kleisli category of the discrete (countable) distribution monad on <fr:tex display="inline"><![CDATA[\mathsf {Set}]]></fr:tex>. This is a simple setting for working with probability theory---sufficient for many applications. In order to study compositional Bayesian game theory (<fr:link href="/hedges-etal-bayesian-games/" title="Bayesian open games" uri="https://erischel.com/hedges-etal-bayesian-games/" display-uri="hedges-etal-bayesian-games" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-etal-bayesian-games/" display-uri="hedges-etal-bayesian-games" /></fr:link>, <fr:link href="/towards-cybercat/" title="Towards Foundations of Categorical Cybernetics" uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" type="local">Reference <fr:contextual-number uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" /></fr:link>) one studies the category <fr:tex display="inline"><![CDATA[\mathsf {Optic}(Kl(\Delta ))]]></fr:tex> of optics in <fr:tex display="inline"><![CDATA[Kl(\Delta )]]></fr:tex>. These have the right level of expressivity to talk about players taking random actions, and where payoff depends stochastically on players' decisions.
</html:p>
                <html:p>
  In <fr:tex display="inline"><![CDATA[\mathsf {Optic}(Kl(\Delta )),]]></fr:tex> <fr:tex display="inline"><![CDATA[{R \choose  X} + {R \choose  Y} \cong  {R \choose  X+Y}]]></fr:tex>. Games with this codomain naturally describe the situation of a player who has a binary choice between <fr:tex display="inline"><![CDATA[X]]></fr:tex> or <fr:tex display="inline"><![CDATA[Y]]></fr:tex>. We call coproducts of this form the "good" coproducts---note that also <fr:tex display="inline"><![CDATA[{* \choose  *} + {\emptyset  \choose  *} = {\emptyset  \choose  2}]]></fr:tex>, but this is considered somewhat pathological, since it relies on the nonexistence of any morphism <fr:tex display="inline"><![CDATA[{\emptyset  \choose  X} \to  {A \choose  Y}]]></fr:tex> when <fr:tex display="inline"><![CDATA[A]]></fr:tex> and <fr:tex display="inline"><![CDATA[X]]></fr:tex> are nonempty.
</html:p>
                <html:p>
  In order to describe this structure on <fr:tex display="inline"><![CDATA[\mathsf {Optic}(Kl(\Delta )),]]></fr:tex> it would be useful if it had all coproducts. Unfortunately this is not the case. <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathsf {Set}) = \mathsf {Lens}(\mathsf {Set})]]></fr:tex> has a well-known extension with all coproducts, given by the fiberwise opposite of the fibration <fr:tex display="inline"><![CDATA[\mathsf {Fam}(\mathsf {Set}) \to  \mathsf {Set}]]></fr:tex> (this is <fr:link href="/efr-VTPS/" title="https://erischel.com/efr-VTPS/" uri="https://erischel.com/efr-VTPS/" display-uri="efr-VTPS" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-VTPS/" display-uri="efr-VTPS" /></fr:link> in the case <fr:tex display="inline"><![CDATA[\mathcal {C} = \mathsf {Set}]]></fr:tex>). Extending this to stochastic maps would be the obvious way of constructing such a category of "dependent optics".
</html:p>
                <html:p>
  Consider a category <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex> defined as follows. Its objects are the objects of <fr:tex display="inline"><![CDATA[\mathsf {Set}^\to ]]></fr:tex>---that is, they are indexed families of sets. A map in <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex> is a stochastic map in the base <fr:tex display="inline"><![CDATA[X \to  Y \in  Kl(\Delta )]]></fr:tex>, and a stochastic map on the total spaces <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {Y}]]></fr:tex> which is compatible with it. Note that if <fr:tex display="inline"><![CDATA[\bar {X} \to  X]]></fr:tex> is surjective, the map on the base is fully determined by the map on the fibers, which must merely satisfy the condition that the distribution of the indexing point in <fr:tex display="inline"><![CDATA[Y]]></fr:tex> depends only on the indexing point in <fr:tex display="inline"><![CDATA[X]]></fr:tex>, not the specific point in the fiber <fr:tex display="inline"><![CDATA[\bar {X}_x]]></fr:tex>.
</html:p>
                <html:p>
  We claim <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex> is a reasonable notion of "stochastic charts". Recall that by "chart" we mean something like "lenses where both maps go forward". If stochastic <html:em>lenses</html:em> are supposed to include optics as the full subcategory spanned by the "non-dependent" objects, then the charts should include "co-optics"---that is, maps between <fr:tex display="inline"><![CDATA[X' \otimes  X \to  X]]></fr:tex> and <fr:tex display="inline"><![CDATA[Y' \otimes  Y \to  Y]]></fr:tex> should be given by the coend <fr:tex display="inline"><![CDATA[\int ^M \operatorname {\mathrm {Hom}}(X, M \otimes  Y) \times  \operatorname {\mathrm {Hom}}(X' \otimes  M, Y')]]></fr:tex></html:p>
                <html:p>
  And in fact this is the case:  Clearly there is a map from this coend to maps in <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex>. By taking <fr:tex display="inline"><![CDATA[M = X \otimes  Y]]></fr:tex> and conditioning on <fr:tex display="inline"><![CDATA[Y]]></fr:tex>, we see this is surjective. Finally, by restricting to the support of the forwards part inside <fr:tex display="inline"><![CDATA[X \otimes  Y]]></fr:tex>, we obtain a representative for each element of the coend which is uniquely determined by <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> and <fr:tex display="inline"><![CDATA[X' \times  X \to  Y']]></fr:tex> (since the conditional is well-defined on the support).
</html:p>
                <html:p>
  Note: This relies both on the fact that <fr:tex display="inline"><![CDATA[Kl(\Delta )]]></fr:tex> has conditionals, and on the existence of supports. We've previously seen these defined in abstract Markov categories (<fr:link href="/efr-AB57/" title="Support of a morphism" uri="https://erischel.com/efr-AB57/" display-uri="efr-AB57" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-AB57/" display-uri="efr-AB57" /></fr:link>)--supports in <fr:tex display="inline"><![CDATA[Kl(\Delta )]]></fr:tex> of a morphism <fr:tex display="inline"><![CDATA[p: A \to  B]]></fr:tex> are simply given by those <fr:tex display="inline"><![CDATA[b]]></fr:tex> so that <fr:tex display="inline"><![CDATA[p(b | a) > 0]]></fr:tex>. Note that the existence of <html:em>both</html:em> conditionals and supports is a very strong assumption---the only categories we are aware of with both properties are those whose probability distributions have a discrete character, like <fr:tex display="inline"><![CDATA[Kl(\Delta )]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathsf {FinStoch}]]></fr:tex>. Neither will be essential to the theory, but both will play a role in certain theorems---we will see more of this later.
</html:p>
                <html:p>
  The goal of the theory of Markov fibrations is to give a notion of "fiberwise opposite" which can be applied to the codomain functor <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to  \to  Kl(\Delta )]]></fr:tex> to give a reasonable notion of "stochastic lenses". In particular, we should recover the usual category of optics in the previous case.
</html:p>
                <html:p>
  It is clear that the codomain functor is not a (Grothendieck) fibration, since this would require <fr:tex display="inline"><![CDATA[Kl(\Delta )]]></fr:tex> to have pullbacks, which can only hold for a Cartesian Markov category. However, we can do some things. Namely, given a Cartesian (pullback) square in <fr:tex display="inline"><![CDATA[\mathsf {Set}]]></fr:tex></html:p>
                <html:p>
                  <html:figure>
                    <fr:resource hash="41b46030f1ca3fef3d667f63069c757c">
                      <fr:resource-content>
                        <html:img src="/41b46030f1ca3fef3d667f63069c757c.svg" />
                      </fr:resource-content>
                      <fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source>
                      <fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
      \bar {A} \ar [d] \ar [r] & \bar {B} \ar [d]\\
      A \ar [r] & B
    \end {tikzcd}
  ]]></fr:resource-source>
                    </fr:resource>
                  </html:figure>
                </html:p>
                <html:p>
  and a map <fr:tex display="inline"><![CDATA[{\bar {X} \choose  X} \to  {\bar {B} \choose  B}]]></fr:tex> where the base map <fr:tex display="inline"><![CDATA[X \to  B]]></fr:tex> is deterministic, for each deterministic factorizing map <fr:tex display="inline"><![CDATA[X \to  A]]></fr:tex> there is a unique lift <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {A}]]></fr:tex>. In other words, the pullback over <fr:tex display="inline"><![CDATA[\mathsf {Set} \hookrightarrow  Kl(\Delta )]]></fr:tex> is a fibration---in fact, it is simply the family fibration <fr:tex display="inline"><![CDATA[\mathsf {Fam}(\mathsf {Kl}(\Delta ))]]></fr:tex>.
</html:p>
                <html:p>
  Furthermore, if <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {B}]]></fr:tex> is itself deterministic, there is such a unique lift even without assuming that the factorization <fr:tex display="inline"><![CDATA[X \to  A]]></fr:tex> is deterministic.
</html:p>
                <html:p>
  Moreover, we can factor any map in <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex> as such an induced map followed by a map over a deterministic base, as follows:
</html:p>
                <html:p>
                  <html:figure>
                    <fr:resource hash="8232f78c8fea516bf6dae4020120a135">
                      <fr:resource-content>
                        <html:img src="/8232f78c8fea516bf6dae4020120a135.svg" />
                      </fr:resource-content>
                      <fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source>
                      <fr:resource-source type="latex" part="body"><![CDATA[
  \begin {tikzcd}
  \bar {X} \ar [r, dashed, bend left=10] \ar [d] & p^*\bar {X} \ar [l] \ar [r, "\phi "] \ar [d] & \bar {Y} \ar [d]\\
  X \ar [r, dashed, bend left=10] & M \ar [l, "p"] \ar [r, "p'"], & Y
  \end {tikzcd}
]]></fr:resource-source>
                    </fr:resource>
                  </html:figure>
                </html:p>
                <html:p>
  This gives us a hope that we can, in some way, control the category <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex> using the pullback over <fr:tex display="inline"><![CDATA[\mathsf {Set}]]></fr:tex>, which <html:em>is</html:em> a fibration, and some information somehow given by these extra maps. Note also that the diagram above is equivalent to giving: a span <fr:tex display="inline"><![CDATA[X \leftarrow  M \to  Y]]></fr:tex> and a section <fr:tex display="inline"><![CDATA[X \to  M]]></fr:tex>, which all lives in the base, and a map <fr:tex display="inline"><![CDATA[p^*\bar {X} \to  p^{'*}\bar {Y}]]></fr:tex> in the fiber over <fr:tex display="inline"><![CDATA[M]]></fr:tex>. Thus it would seem to be very amenable to fiberwise dualization.
</html:p>
                <html:p>
  Analogous to our argument above that "co-optics" are equivalent to maps in <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ,]]></fr:tex> we can do the following:
</html:p>
                <html:p>
  Suppose given two tuples <fr:tex display="inline"><![CDATA[(M_0,p_0,p_0',s_0,\phi _0), (M_1,p_1,p_1',s_1,\phi _1)]]></fr:tex> as above. Suppose there exists a map <fr:tex display="inline"><![CDATA[f: M_0 \to  M_1]]></fr:tex> over <fr:tex display="inline"><![CDATA[X,Y]]></fr:tex>, so that <fr:tex display="inline"><![CDATA[f s_0 = s_1]]></fr:tex>.
  Then there is a canonical map <fr:tex display="inline"><![CDATA[p_0^*\bar {X} \to  p_1^*\bar {X}]]></fr:tex> over <fr:tex display="inline"><![CDATA[f]]></fr:tex>, because pullbacks commute. If the triangle
  
  <html:figure><fr:resource hash="da549b63f0d30f06aad9eedee9868252"><fr:resource-content><html:img src="/da549b63f0d30f06aad9eedee9868252.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
      {p_0^*\bar {X}} \ar [r] \ar [dr] & {p_1^*\bar {X}} \ar [d]\\
      & \bar {Y} 
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  moreover commutes, then these two triples represent the same map in <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex></html:p>
                <html:p>
  These equivalence relations correspond to "sliding" for <html:em>deterministic</html:em> morphisms <fr:tex display="inline"><![CDATA[M \to  M']]></fr:tex>. Note that the condition here can be checked just on the fibration <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to  \times _{Kl(\Delta )} \mathsf {Set} \to  \mathsf {Set}]]></fr:tex>.
</html:p>
                <html:p>
  To obtain the full set of sliding equations, we will need to use stochastic maps <fr:tex display="inline"><![CDATA[M \to  M']]></fr:tex>, and thus leave that fibration behind. However, we are tantalizingly close to realizing <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex> as being presented by some sort of additional structure on the fibration <fr:tex display="inline"><![CDATA[\mathsf {Fam}(\mathsf {Kl}(\Delta ))]]></fr:tex>. (For a general monad <fr:tex display="inline"><![CDATA[T]]></fr:tex> acting on <fr:tex display="inline"><![CDATA[C]]></fr:tex>, the category <fr:tex display="inline"><![CDATA[\mathsf {Optic}_{\mathcal {C}}(Kl(T),Kl(T))]]></fr:tex>, of effectful optics up to sliding of pure morphisms, was studied by Riley in <fr:link href="/riley-optics/" title="Categories of optics" uri="https://erischel.com/riley-optics/" display-uri="riley-optics" type="local">Reference <fr:contextual-number uri="https://erischel.com/riley-optics/" display-uri="riley-optics" /></fr:link>, section 4.9, and by Hedges in <fr:link href="/hedges-blog-optics-effect/" title="Enriched Closed Lenses" uri="https://erischel.com/hedges-blog-optics-effect/" display-uri="hedges-blog-optics-effect" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-blog-optics-effect/" display-uri="hedges-blog-optics-effect" /></fr:link>)
</html:p>
                <html:p>
  In this chapter we will indeed provide such a structure, and analyze it. In <fr:link href="/efr-2IMZ/" title="Markov Prefibrations" uri="https://erischel.com/efr-2IMZ/" display-uri="efr-2IMZ" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-2IMZ/" display-uri="efr-2IMZ" /></fr:link>, we'll axiomatise the lifting property of <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex> discussed above into a property we call a <html:em>Markov prefibration</html:em> (<fr:link href="/efr-0019/" title="Markov prefibration" uri="https://erischel.com/efr-0019/" display-uri="efr-0019" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-0019/" display-uri="efr-0019" /></fr:link>). In <fr:link href="/efr-GO6R/" title="Free Markov Prefibrations" uri="https://erischel.com/efr-GO6R/" display-uri="efr-GO6R" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-GO6R/" display-uri="efr-GO6R" /></fr:link>, we exhibit a free Markov prefibration associated to a fibration---its morphisms are precisely spans of the form seen above. Naturally, given a prefibration <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex>, its underlying fibration on <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> becomes an algebra for the monad of this adjunction. In <fr:link href="/efr-U4RA/" title="Markov Fibrations" uri="https://erischel.com/efr-U4RA/" display-uri="efr-U4RA" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-U4RA/" display-uri="efr-U4RA" /></fr:link>, we characterize the class of prefibrations which are presented by their underlying algebra in this way---these are the <html:em>Markov fibrations</html:em> (<fr:link href="/efr-HVUT/" title="Markov Fibration" uri="https://erischel.com/efr-HVUT/" display-uri="efr-HVUT" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-HVUT/" display-uri="efr-HVUT" /></fr:link>). Since the monad commutes with fiberwise opposites, this yields a notion of fiberwise opposite for Markov fibrations.
</html:p>
                <html:p>
  Following this, we review a few properties of the theory of Markov fibrations, including the existence of coproducts in the fibration (<fr:link href="/efr-QAV2/" title="https://erischel.com/efr-QAV2/" uri="https://erischel.com/efr-QAV2/" display-uri="efr-QAV2" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-QAV2/" display-uri="efr-QAV2" /></fr:link>), the stability of Markov fibrations under limits (<fr:link href="/efr-HWAZ/" title="
  Limits of Markov fibrations
" uri="https://erischel.com/efr-HWAZ/" display-uri="efr-HWAZ" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-HWAZ/" display-uri="efr-HWAZ" /></fr:link>), and induced monoidal structures (<fr:link href="/efr-LTEL/" title="Monoidal Markov Fibrations" uri="https://erischel.com/efr-LTEL/" display-uri="efr-LTEL" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-LTEL/" display-uri="efr-LTEL" /></fr:link>). Combining these, we can prove:
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>27</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-OSH4/</fr:uri>
                    <fr:display-uri>efr-OSH4</fr:display-uri>
                    <fr:route>/efr-OSH4/</fr:route>
                    <fr:taxon>Theorem</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  There exists a (strong) symmetric monoidal functor <fr:tex display="inline"><![CDATA[\mathsf {Optic}(Kl(\Delta )) \to  \mathsf {SLens}(Kl(\Delta )^\to )]]></fr:tex> which
  <html:ol><html:li>Is fully faithful.</html:li>
    <html:li>Preserves the good coproducts.</html:li>
    <html:li>So that the image has all coproducts, and every object of the image is a coproduct of objects in <fr:tex display="inline"><![CDATA[\mathsf {Optic}(Kl(\Delta ))]]></fr:tex></html:li>
    <html:li>And so that moreover the monoidal structure on the image is distributive</html:li></html:ol></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>2025</fr:year>
                  <fr:month>3</fr:month>
                  <fr:day>26</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-2IMZ/</fr:uri>
                <fr:display-uri>efr-2IMZ</fr:display-uri>
                <fr:route>/efr-2IMZ/</fr:route>
                <fr:title text="Markov Prefibrations">Markov Prefibrations</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>11</fr:month>
                      <fr:day>21</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0045/</fr:uri>
                    <fr:display-uri>efr-0045</fr:display-uri>
                    <fr:route>/efr-0045/</fr:route>
                    <fr:taxon>Remark</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Markov categories generally do not have pullbacks, for the same reason that they usually don't have products. This issue generally hinders the construction of fibrations, in the ordinary sense, of Markov categories. However, we can go part of the way. The idea of the following definitions is that given a pullback in the deterministic category, say <fr:tex display="inline"><![CDATA[A \times _Y X]]></fr:tex>, a map <fr:tex display="inline"><![CDATA[P \to  A \times _Y X]]></fr:tex> <html:em>where the <fr:tex display="inline"><![CDATA[X]]></fr:tex>-coordinate is deterministic</html:em> should be uniquely determined by a choice of (deterministic) map <fr:tex display="inline"><![CDATA[P \to  X]]></fr:tex> and (stochastic) <fr:tex display="inline"><![CDATA[P \to  A]]></fr:tex> such that the square commutes---as we claimed above (and will see below), this holds for the Markov category of discrete probability <fr:tex display="inline"><![CDATA[Kl(\Delta )]]></fr:tex>. The analogous statement for products---that a map <fr:tex display="inline"><![CDATA[P \to  A \otimes  X]]></fr:tex> with deterministic <fr:tex display="inline"><![CDATA[X]]></fr:tex>-component is uniquely determined by the projections (or marginals) <fr:tex display="inline"><![CDATA[P \to  X, P \to  A]]></fr:tex>---is a consequence of positivity (see <fr:link href="/efr-OYB6/" title="Characterization of positivity" uri="https://erischel.com/efr-OYB6/" display-uri="efr-OYB6" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-OYB6/" display-uri="efr-OYB6" /></fr:link>), and hence holds in most Markov categories of interest.
</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>6</fr:month>
                      <fr:day>24</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0019/</fr:uri>
                    <fr:display-uri>efr-0019</fr:display-uri>
                    <fr:route>/efr-0019/</fr:route>
                    <fr:title text="Markov prefibration">Markov prefibration</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
    Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a Markov category, and let <fr:tex display="inline"><![CDATA[p: \mathcal {D} \to  \mathcal {C}]]></fr:tex> be a functor into it.
    Then we call <fr:tex display="inline"><![CDATA[p]]></fr:tex> a <html:em>Markov prefibration</html:em> if the following two conditions hold:
    <html:ol><html:li>The pullback <fr:tex display="inline"><![CDATA[\mathcal {D} \times _\mathcal {C} \mathcal {C}_\mathrm {det} \to  \mathcal {C}_\mathrm {det}]]></fr:tex> is a (Grothendieck) fibration</html:li>
        <html:li>Given maps <fr:tex display="inline"><![CDATA[f: A \to  C]]></fr:tex>, <fr:tex display="inline"><![CDATA[g:B \to  C]]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>, such that <fr:tex display="inline"><![CDATA[p(f),p(g)]]></fr:tex> are deterministic and <fr:tex display="inline"><![CDATA[f,g]]></fr:tex> are Cartesian for the above fibration, <fr:tex display="inline"><![CDATA[p]]></fr:tex> induces a bijection between maps <fr:tex display="inline"><![CDATA[h: A \to  B \in  \mathcal {C}]]></fr:tex> such that <fr:tex display="inline"><![CDATA[gh = f]]></fr:tex>, and maps <fr:tex display="inline"><![CDATA[h': p(A) \to  p(B)]]></fr:tex> so that <fr:tex display="inline"><![CDATA[p(g)h' = p(f)]]></fr:tex>. Note that when restricted to those maps where <fr:tex display="inline"><![CDATA[p(h)]]></fr:tex> is deterministic, this being a bijection is the defining property of <fr:tex display="inline"><![CDATA[g]]></fr:tex> being Cartesian (for any <fr:tex display="inline"><![CDATA[f]]></fr:tex>, not necessarily a Cartesian one).</html:li></html:ol></html:p>
                    <html:p>
  Given a Markov prefibration <fr:tex display="inline"><![CDATA[\mathcal {D},]]></fr:tex> we write <fr:tex display="inline"><![CDATA[\mathcal {D}|_\mathrm {det}]]></fr:tex> for <fr:tex display="inline"><![CDATA[\mathcal {D} \times _\mathcal {C} \mathcal {C}_\mathrm {det}]]></fr:tex>. We will refer to this as the <html:em>deterministic part</html:em> of <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>---note that this does have the potential for confusion, as when <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> is itself a Markov category, this is not necessarily the same as the deterministic subcategory of <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>. When <fr:tex display="inline"><![CDATA[f \in  \mathcal {D}]]></fr:tex> lies inside <fr:tex display="inline"><![CDATA[\mathcal {D}|_\mathrm {det}]]></fr:tex>, and is Cartesian for that fibration, we will simply refer to it as a Cartesian map in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> (there are no other types of Cartesian maps, so this should not lead to confusion). A <html:em>morphism of Markov prefibrations</html:em> is a functor <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {D}']]></fr:tex> over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> which preserves Cartesian maps. The category of Markov prefibrations over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> thus defined is denoted <fr:tex display="inline"><![CDATA[\mathsf {MarkPreFib}(\mathcal {C})]]></fr:tex>. Taking the deterministic part defines a functor <fr:tex display="inline"><![CDATA[(-)|_\mathrm {det}: \mathsf {MarkPreFib}(\mathcal {C}) \to  \mathsf {Fib}(\mathcal {C}_\mathrm {det})]]></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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-EQ41/</fr:uri>
                    <fr:display-uri>efr-EQ41</fr:display-uri>
                    <fr:route>/efr-EQ41/</fr:route>
                    <fr:title text="On 2-category theory">On 2-category theory</fr:title>
                    <fr:taxon>Remark</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Since we will shortly be working with a number of functors between categories whose objects are themselves categories with some structure, it may be thought that we should give some consideration to the strictness of our constructions---for example, we will shortly construct a left adjoint to <fr:tex display="inline"><![CDATA[(-)|_\mathrm {det}: \mathsf {MarkPreFib}(\mathcal {C}_\mathrm {det}) \to  \mathsf {Fib}(\mathcal {C}),]]></fr:tex> and it may well be asked how strict this adjoint is, whether we need to consider the definition of <html:em>pseudomonad</html:em> when we get so far, et cetera.
</html:p>
                    <html:p>
  However, we can largely avoid this issue. The key observation is that none of our functors will alter the <html:em>objects</html:em> of the underlying category (since <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det} \to  \mathcal {C}]]></fr:tex> is identity on objects,). Hence, all the natural transformations that we would ordinarily ask to be <html:em>equivalences</html:em> of categories will instead be isomorphisms, and we can largely ignore considerations of higher category theory---similarly, all our functors will be strictly functorial. As a simple example of this, observe that the pullback functor <fr:tex display="inline"><![CDATA[(-)|_\mathrm {det}]]></fr:tex> is automatically strict---it simply consists in restriction to a subset of the morphisms in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> (which is automatically closed under composition), and thus clearly preserves composition strictly.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>29</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-DINO/</fr:uri>
                    <fr:display-uri>efr-DINO</fr:display-uri>
                    <fr:route>/efr-DINO/</fr:route>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  In a Markov prefibration <fr:tex display="inline"><![CDATA[p: \mathcal {D} \to  \mathcal {C}]]></fr:tex> (as previously noted), a morphism <fr:tex display="inline"><![CDATA[f: \bar {X} \to  \bar {Y}]]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> is called <html:em>Cartesian</html:em> if <fr:tex display="inline"><![CDATA[p(f)]]></fr:tex> is deterministic and <fr:tex display="inline"><![CDATA[f]]></fr:tex> is Cartesian in the fibration <fr:tex display="inline"><![CDATA[\mathcal {D}|_\mathrm {det} \to  \mathcal {C}_\mathrm {det}]]></fr:tex>. It is called <html:em>vertical</html:em> if <fr:tex display="inline"><![CDATA[p(f)]]></fr:tex> is an identity. It is called a <html:em>stochastic-Cartesian</html:em> if there exists a Cartesian map <fr:tex display="inline"><![CDATA[r: \bar {Y} \to  \bar {X}]]></fr:tex> so that <fr:tex display="inline"><![CDATA[rf = 1_{\bar {X}}]]></fr:tex> (recall that in this case <fr:tex display="inline"><![CDATA[f]]></fr:tex> is uniquely determined by <fr:tex display="inline"><![CDATA[r]]></fr:tex> and <fr:tex display="inline"><![CDATA[p(f)]]></fr:tex>). Note that if <fr:tex display="inline"><![CDATA[f]]></fr:tex> is stochastic-Cartesian and <fr:tex display="inline"><![CDATA[p(f)]]></fr:tex> is deterministic, then <fr:tex display="inline"><![CDATA[f]]></fr:tex> is Cartesian.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  The introduction to this chapter contains the argument that <fr:tex display="inline"><![CDATA[Kl(\Delta )]]></fr:tex> is a Markov prefibration. This is a key motivating example.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>8</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-CJTH/</fr:uri>
                    <fr:display-uri>efr-CJTH</fr:display-uri>
                    <fr:route>/efr-CJTH/</fr:route>
                    <fr:title text="Markov prefibrations over Cartesian base">Markov prefibrations over Cartesian base</fr:title>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a Markov category which is Cartesian (that is, one where all morphisms are deterministic). Then a Markov prefibration over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is simply a Grothendieck fibration.
</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>11</fr:month>
                      <fr:day>19</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0044/</fr:uri>
                    <fr:display-uri>efr-0044</fr:display-uri>
                    <fr:route>/efr-0044/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
    Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a Markov category. Then <fr:tex display="inline"><![CDATA[\mathcal {C}^\to  \to  \mathcal {C}]]></fr:tex> is a Markov prefibration with Cartesian maps given by pullback squares, if and only if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is pullback-positive.
</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>11</fr:month><fr:day>19</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
    <html:p>
        Assume first <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is pullback-positive. It is clear that computing pullbacks in <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> gives the required Cartesian lifts---pullback positivity is precisely the claim that lifts exist uniquely in the definition of a Cartesian morphism (since the map to the base leg of the pullback is always deterministic in this case). Since Cartesian lifts can be taken to be deterministic (we have just constructed deterministic Cartesian lifts, and such lifts are unique up to unique isomorphism), the second condition also follows from this assumption, simply taking the other leg to be deterministic.
    </html:p>
    <html:p>
        Conversely, suppose <fr:tex display="inline"><![CDATA[\mathcal {C}^\to  \to  \mathcal {C}]]></fr:tex> is a Markov prefibration and suppose the Cartesian maps are given by the deterministic pullback squares.
        Let <fr:tex display="inline"><![CDATA[Y \to  Z]]></fr:tex> be an object of <fr:tex display="inline"><![CDATA[\mathcal {C}^\to ]]></fr:tex> and let <fr:tex display="inline"><![CDATA[X \to  Z]]></fr:tex> be a deterministic map, and form the pullback <fr:tex display="inline"><![CDATA[X \times _Z Y]]></fr:tex>, which is Cartesian. Let <fr:tex display="inline"><![CDATA[P \to  X]]></fr:tex> be deterministic and let <fr:tex display="inline"><![CDATA[P \to  Y]]></fr:tex> be any map. Expanding the latter into a map from the object <fr:tex display="inline"><![CDATA[P \to  P]]></fr:tex> to <fr:tex display="inline"><![CDATA[Y \to  Z,]]></fr:tex> the Cartesian property of the square implies there is a unique pairing <fr:tex display="inline"><![CDATA[P \to  X \times _Z Y]]></fr:tex></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>11</fr:month>
                      <fr:day>19</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0040/</fr:uri>
                    <fr:display-uri>efr-0040</fr:display-uri>
                    <fr:route>/efr-0040/</fr:route>
                    <fr:taxon>Remark</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
    In a general Markov category, not every isomorphism is necessarily deterministic. This means that, in general, fibres over isomorphic objects in a Markov prefibration are not necessarily isomorphic or even equivalent as categories. This seemingly immoral situation is, in fact, in accordance with other results indicating that <html:em>deterministic isomorphism</html:em> is really the proper notion of identification in a Markov category. See eg <fr:link href="/rischel-fritz-infinite-products/" title="Infinite products and zero-one laws in categorical probability" uri="https://erischel.com/rischel-fritz-infinite-products/" display-uri="rischel-fritz-infinite-products" type="local">Reference <fr:contextual-number uri="https://erischel.com/rischel-fritz-infinite-products/" display-uri="rischel-fritz-infinite-products" /></fr:link>, Section 4, for further discussion of this point. (Since the basic idea of a Markov category involves objects equipped with some structure which is not preserved by all the morphisms, it is not so paradoxical that an isomorphism in this situation should be insufficient to render two objects identical).
</html:p>
                    <html:p>
    Under very weak assumptions on the Markov category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, such as positivity, all isomorphisms are deterministic. This implies that all Markov prefibrations over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> are isofibrations, and thus rules out any sort of behavior like the above. As noted, we are only concerned with positive Markov categories.
</html:p>
                    <html:p>
    Relatedly, in the proof of <fr:link href="/efr-0044/" title="https://erischel.com/efr-0044/" uri="https://erischel.com/efr-0044/" display-uri="efr-0044" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-0044/" display-uri="efr-0044" /></fr:link>, a careless prover may have erroneously concluded after the first step that all Cartesian lifts are deterministic---but since Cartesian lifts are characterized only up to <html:em>isomorphism</html:em>, not necessarily <html:em>deterministic</html:em> isomorphism, this does not automatically follow. (But of course replacing a nondeterministic lift with an isomorphic deterministic one in this situation cannot alter the unique existence of the factorization, so it does not matter).
</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>11</fr:month>
                      <fr:day>19</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0042/</fr:uri>
                    <fr:display-uri>efr-0042</fr:display-uri>
                    <fr:route>/efr-0042/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
    Let <fr:tex display="inline"><![CDATA[p: \mathcal {D} \to  \mathcal {C}]]></fr:tex> be a <fr:link href="/efr-0019/" title="Markov prefibration" uri="https://erischel.com/efr-0019/" display-uri="efr-0019" type="local">Markov prefibration</fr:link>, let <fr:tex display="inline"><![CDATA[\mathcal {C}' \subseteq  \mathcal {C}, \mathcal {D}' \subseteq  \mathcal {D}]]></fr:tex> be full subcategories so that <fr:tex display="inline"><![CDATA[p(\mathcal {D}')]]></fr:tex> is contained in <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex>,
    and suppose <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex> is a monoidal subcategory (which is then automatically a sub-Markov category). Suppose finally <fr:tex display="inline"><![CDATA[\mathcal {D}']]></fr:tex> is stable under pullback along deterministic morphisms in <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex>. Then <fr:tex display="inline"><![CDATA[\mathcal {D}' \to  \mathcal {C}']]></fr:tex> is again a <fr:link href="/efr-0019/" title="Markov prefibration" uri="https://erischel.com/efr-0019/" display-uri="efr-0019" type="local">Markov prefibration</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>11</fr:month><fr:day>19</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
    <html:p>
        By assumption, given <fr:tex display="inline"><![CDATA[Y \in  \mathcal {D}']]></fr:tex> and <fr:tex display="inline"><![CDATA[f: X \to  p(Y) \in  \mathcal {C}']]></fr:tex>, the Cartesian lift <fr:tex display="inline"><![CDATA[X' \to  Y]]></fr:tex> is again in <fr:tex display="inline"><![CDATA[\mathcal {D}']]></fr:tex>. The fullness of the subcategory inclusions suffices to prove the existence and uniqueness of the required lifts so that this is still Cartesian after restricting. For the same reason, since we have just observed that the Cartesian lifts are the same as in <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex>, the second part of the definition also holds.
    </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>2025</fr:year>
                      <fr:month>3</fr:month>
                      <fr:day>27</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-NC7D/</fr:uri>
                    <fr:display-uri>efr-NC7D</fr:display-uri>
                    <fr:route>/efr-NC7D/</fr:route>
                    <fr:title text="\mathsf {Stoch}^\to  as Markov prefibration"><fr:tex display="inline"><![CDATA[\mathsf {Stoch}^\to ]]></fr:tex> as Markov prefibration</fr:title>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Recall that the deterministic maps in <fr:tex display="inline"><![CDATA[\mathsf {Stoch}]]></fr:tex> are those kernels valued in <fr:tex display="inline"><![CDATA[\{0,1\}]]></fr:tex>-valued measures. (And that these are <html:em>not</html:em> the same thing as the measurable maps).
  Given a pair <fr:tex display="inline"><![CDATA[f:X \to  Z, g: Y \to  Z]]></fr:tex> of such maps, we claim that the subset of <fr:tex display="inline"><![CDATA[X \times  Y]]></fr:tex> given by those points where <fr:tex display="inline"><![CDATA[f(x) = g(y)]]></fr:tex> as measures on <fr:tex display="inline"><![CDATA[Z]]></fr:tex>, equipped with the subset <fr:tex display="inline"><![CDATA[\sigma ]]></fr:tex>-algebra and its inclusions into <fr:tex display="inline"><![CDATA[X]]></fr:tex> and <fr:tex display="inline"><![CDATA[Y]]></fr:tex>, is a pullback in <fr:tex display="inline"><![CDATA[\mathsf {Stoch}_\mathrm {det}]]></fr:tex>.
</html:p>
                    <html:p>
  To see this, observe that <fr:tex display="inline"><![CDATA[\mathsf {Stoch}_\mathrm {det}]]></fr:tex> is the Kleisli category for the submonad <fr:tex display="inline"><![CDATA[G_{0,1}]]></fr:tex> of the Giry monad which takes a space to the subspace of <fr:tex display="inline"><![CDATA[0,1]]></fr:tex>-valued probability measures on it. Note that by the general theory of Markov categories this has products given by the products in <fr:tex display="inline"><![CDATA[\mathsf {Meas}]]></fr:tex>. It hence suffices to prove that the pullback of <fr:tex display="inline"><![CDATA[f \times  g: X \times  Y \to  Z \times  Z]]></fr:tex> along the diagonal <fr:tex display="inline"><![CDATA[Z \to  Z \times  Z]]></fr:tex> exists---if it does, it has the universal property of the product <fr:tex display="inline"><![CDATA[X \times _Y Z]]></fr:tex>.
</html:p>
                    <html:p>
  To see that it does (and that it's given by the space described above), note that the diagonal is a split monomorphism, so it suffices to show that <fr:tex display="inline"><![CDATA[h: P \to  X \times  Y \in  \mathsf {Stoch}_\mathrm {det}]]></fr:tex> factors over <fr:tex display="inline"><![CDATA[X \times _Y Z]]></fr:tex> if and only if the composite to <fr:tex display="inline"><![CDATA[Z \times  Z]]></fr:tex> lifts over the diagonal.
</html:p>
                    <html:p>
  Now this lift over <fr:tex display="inline"><![CDATA[Z]]></fr:tex> exists if and only if the probability of the diagonal <fr:tex display="inline"><![CDATA[\operatorname {im}(Z) \subseteq  Z \times  Z]]></fr:tex> under the composite is <fr:tex display="inline"><![CDATA[1]]></fr:tex>. By definition, it is
  <fr:tex display="block"><![CDATA[\int  f(\operatorname {im}(Z) \mid  x) g(\operatorname {im}(Z) \mid  y) h(dx,y \mid  p)]]></fr:tex>
  Since the function being integrated is an indicator, this is simply the measure of the set <fr:tex display="inline"><![CDATA[\{(x,y) : \mathbb {P}(\operatorname {im}(Z) \mid  x,y) = 1\}.]]></fr:tex>
  If the probability of the diagonal is one, clearly the two marginals agree. Conversely, since <fr:tex display="inline"><![CDATA[\mathsf {Stoch}_\mathrm {det}]]></fr:tex> is Cartesian, it must be the case that if the marginals agree the probability of the diagonal is 1. Therefore this is equal to the subset <fr:tex display="inline"><![CDATA[X \times _Z Y \subseteq  X \times  Y]]></fr:tex> described at the start. But for this to have measure <fr:tex display="inline"><![CDATA[1]]></fr:tex> for all <fr:tex display="inline"><![CDATA[p \in  P]]></fr:tex> is equivalent to the desired lifting property. This finishes the argument. 
</html:p>
                    <html:p>
  Moreover, this argument relied only on the <fr:tex display="inline"><![CDATA[0,1]]></fr:tex>-valuedness of the maps <fr:tex display="inline"><![CDATA[f,g]]></fr:tex>, not <fr:tex display="inline"><![CDATA[h: P \to  X \times  Y]]></fr:tex> or its marginals. Hence this also proves that the pullback along the diagonal is preserved by the inclusion <fr:tex display="inline"><![CDATA[\mathsf {Stoch}_\mathrm {det} \to  \mathsf {Stoch}]]></fr:tex>.
  Since <fr:tex display="inline"><![CDATA[\mathsf {Stoch}]]></fr:tex> is known to be positive, this implies <fr:tex display="inline"><![CDATA[\mathsf {Stoch}^\to  \to  \mathsf {Stoch}]]></fr:tex> is a Markov prefibration.
</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>11</fr:month>
                      <fr:day>19</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0041/</fr:uri>
                    <fr:display-uri>efr-0041</fr:display-uri>
                    <fr:route>/efr-0041/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
    The codomain functor <fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}^\to  \to  \mathsf {BorelStoch}]]></fr:tex> is a <fr:link href="/efr-0019/" title="Markov prefibration" uri="https://erischel.com/efr-0019/" display-uri="efr-0019" type="local">Markov prefibration</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>11</fr:month><fr:day>19</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
    <html:p>
        We wish to apply <fr:link href="/efr-0042/" title="https://erischel.com/efr-0042/" uri="https://erischel.com/efr-0042/" display-uri="efr-0042" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-0042/" display-uri="efr-0042" /></fr:link>. The only thing to check is that standard Borel spaces are stable under pullbacks in <fr:tex display="inline"><![CDATA[\mathsf {Meas}]]></fr:tex>.
        But standard Borel spaces are known to be stable under products and measurable subsets, and this is enough (see eg. <fr:link href="/srivastava-borelsets/" title="A Course on Borel Sets" uri="https://erischel.com/srivastava-borelsets/" display-uri="srivastava-borelsets" type="local">Reference <fr:contextual-number uri="https://erischel.com/srivastava-borelsets/" display-uri="srivastava-borelsets" /></fr:link> propositions 3.1.23 and 3.3.15)
    </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>11</fr:month>
                      <fr:day>19</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0043/</fr:uri>
                    <fr:display-uri>efr-0043</fr:display-uri>
                    <fr:route>/efr-0043/</fr:route>
                    <fr:taxon>Corollary</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p><fr:tex display="inline"><![CDATA[\mathsf {FinStoch}^\to  \to  \mathsf {FinStoch}]]></fr:tex> is a Markov prefibration.
</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>2025</fr:year>
                      <fr:month>3</fr:month>
                      <fr:day>29</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-8B5X/</fr:uri>
                    <fr:display-uri>efr-8B5X</fr:display-uri>
                    <fr:route>/efr-8B5X/</fr:route>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  The functor <fr:tex display="block"><![CDATA[\mathsf {Optic}(\mathsf {BorelStoch}) \to  \mathsf {BorelStoch}]]></fr:tex> is not a Markov prefibration, although its pullback over <fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}_\mathrm {det}]]></fr:tex> is a Grothendieck fibration.
</html:p>
                    <html:p>
  To see this, first consider the deterministic pullback. An optic <fr:tex display="inline"><![CDATA[\binom {A}{X} \to  \binom {B}{Y}]]></fr:tex> with deterministic base can be identified with a map <fr:tex display="inline"><![CDATA[X \otimes  B \to  A]]></fr:tex> (and the base deterministic map <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex>). To see this, first observe that the subset of <fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}(X, Y \otimes  M)]]></fr:tex> with the marginal <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> deterministic is in bijection with <fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}_\mathrm {det}(X,Y) \times  \mathsf {BorelStoch}(X,M)]]></fr:tex>, since <fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}]]></fr:tex> is positive. Hence we can calculate

  <fr:tex display="block"><![CDATA[\int ^M \mathsf {BorelStoch}_\mathrm {det}(X,Y) \times  \mathsf {BorelStoch}(X,M) \times  \mathsf {BorelStoch}(M \otimes  B, A)]]></fr:tex>
  <fr:tex display="block"><![CDATA[ \cong  \mathsf {BorelStoch}_\mathrm {det}(X,Y) \times  \mathsf {BorelStoch}(X \times  B, A),]]></fr:tex>
  using the ninja yoneda lemma as in <fr:link href="/efr-M19V/" title="https://erischel.com/efr-M19V/" uri="https://erischel.com/efr-M19V/" display-uri="efr-M19V" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-M19V/" display-uri="efr-M19V" /></fr:link>.
  
  Hence this part is a fibration with the fiber over <fr:tex display="inline"><![CDATA[X]]></fr:tex> being the coKleisli category of the <fr:tex display="inline"><![CDATA[X \times  -]]></fr:tex> monad, and the pullback functors given by reindexing these parametrized maps. The Cartesian lift of a map <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> at <fr:tex display="inline"><![CDATA[\binom {B}{Y}]]></fr:tex> is given by the optic <fr:tex display="inline"><![CDATA[\binom {B}{X} \to  \binom {B}{Y}]]></fr:tex> with unit residual and identity backwards component.
</html:p>
                    <html:p>
  Now, let <fr:tex display="inline"><![CDATA[g: I \to  \mathbb {R}]]></fr:tex> denote the standard Gaussian distribution, let <fr:tex display="inline"><![CDATA[f: \mathbb {R} \otimes  \mathbb {R} \to  \mathbb {R}]]></fr:tex> be the function given by <fr:tex display="inline"><![CDATA[f(x,y) = 0]]></fr:tex> if <fr:tex display="inline"><![CDATA[x=y]]></fr:tex> and <fr:tex display="inline"><![CDATA[y]]></fr:tex> otherwise, and consider the two optics <fr:tex display="inline"><![CDATA[\binom {\mathbb {R}}{*} \to  \binom {\mathbb {R}}{\mathbb {R}}]]></fr:tex> given by <fr:tex display="inline"><![CDATA[(I, g: I \to  \mathbb {R}, 1_\mathbb {R}: \mathbb {R} \to  \mathbb {R}), (\mathbb {R}, \mathrm {copy}_\mathbb {R} g : I \to  \mathbb {R} \otimes  \mathbb {R}, f: \mathbb {R} \otimes  \mathbb {R} \to  \mathbb {R})]]></fr:tex> (where we recall that the first argument is the residual). They cannot be equal, as postcomposition with the optic <fr:tex display="inline"><![CDATA[\binom {\mathbb {R}}{\mathbb {R}} \to  \binom {*}{*}]]></fr:tex> given by the identity <fr:tex display="inline"><![CDATA[\mathbb {R} \to  \mathbb {R}]]></fr:tex> yields, for the former, the standard Gaussian <fr:tex display="inline"><![CDATA[g: I \to  \mathbb {R}]]></fr:tex>, and for the latter, the constant zero map. But postcomposition with the projection <fr:tex display="inline"><![CDATA[\binom {\mathbb {R}}{\mathbb {R}} \to  \binom {\mathbb {R}}{*}]]></fr:tex> does give the same optic (the identity), because, for every fixed <fr:tex display="inline"><![CDATA[y \in  \mathbb {R}]]></fr:tex>, when <fr:tex display="inline"><![CDATA[x]]></fr:tex> is normally distributed, <fr:tex display="inline"><![CDATA[f(x,y) = y]]></fr:tex> with probability one. Hence the unique lifting of Cartesian maps over Cartesian maps cannot hold.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  This counterexample indicates that, although <fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}^\to ]]></fr:tex> is a Markov prefibration, we can not expect a dual version of this prefibration---in fact, since over deterministic maps <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathsf {BorelStoch})]]></fr:tex> <html:em>is</html:em> the fiberwise dual of (the restriction to trivially-indexed objects of) <fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}^\to ,]]></fr:tex> this example shows that there is <html:em>no Markov prefibration whose deterministic part is the fiberwise dual of <fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}]]></fr:tex></html:em>. Moreover, as the example indicates, this is not a mere technical issue, but an unavoidable fact about optics in general measurable spaces---even up to behavioral equivalence, they simply don't satisfy the conditions of being a Markov prefibration. (But see <fr:link href="/efr-K6NM/" title="https://erischel.com/efr-K6NM/" uri="https://erischel.com/efr-K6NM/" display-uri="efr-K6NM" type="local">Theorem <fr:contextual-number uri="https://erischel.com/efr-K6NM/" display-uri="efr-K6NM" /></fr:link>)
</html:p>
                <html:p>
  On the other hand, we have:
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>3</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-UDS9/</fr:uri>
                    <fr:display-uri>efr-UDS9</fr:display-uri>
                    <fr:route>/efr-UDS9/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a positive Markov category with supports. Then <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C}) \to  \mathcal {C}]]></fr:tex> is a Markov prefibration.
</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>2025</fr:year><fr:month>4</fr:month><fr:day>3</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
<html:p>
  As above, we see that the deterministic part is a fibration, so take <fr:tex display="inline"><![CDATA[X \to  Y \leftarrow  Z]]></fr:tex> deterministic maps, and let <fr:tex display="inline"><![CDATA[\binom {A}{X} \to  \binom {A}{Z}]]></fr:tex> be an optic so that the induced triangle with the two Cartesian lifts to <fr:tex display="inline"><![CDATA[\binom {A}{Y}]]></fr:tex> commutes. Let the two parts be <fr:tex display="inline"><![CDATA[f: X \to  M \otimes  Y, g: M \otimes  A \to  A]]></fr:tex>. The implication is that <fr:tex display="inline"><![CDATA[X \to  M \otimes  Y \to  M]]></fr:tex> -almost surely, <fr:tex display="inline"><![CDATA[g]]></fr:tex> is equal to the projection to <fr:tex display="inline"><![CDATA[A]]></fr:tex> (and <fr:tex display="inline"><![CDATA[X \to  M \otimes  Y \to  Y]]></fr:tex> renders the triangle in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> commutative). Note that <fr:tex display="inline"><![CDATA[f]]></fr:tex> factors over the support of this map, hence we can assume the marginal <fr:tex display="inline"><![CDATA[X \to  M]]></fr:tex> has full support. Hence up to sliding equivalence, <fr:tex display="inline"><![CDATA[g]]></fr:tex> is strictly equal to the projection. This implies the lift is uniquely determined as desired.
</html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
                <html:p>
  The existence of supports rules out the pathological behaviour. Essentially, in the presence of supports, we can sensibly reason about "the points of measure zero" and exclude them from consideration---and <fr:link href="/efr-8MYE/" title="https://erischel.com/efr-8MYE/" uri="https://erischel.com/efr-8MYE/" display-uri="efr-8MYE" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-8MYE/" display-uri="efr-8MYE" /></fr:link> implies that the independent pairing of two measures always have the <html:em>least</html:em> "points of measure zero", and so that what can be proven equivalent under the assumption of independence will always be equivalent. By contrast, the map <fr:tex display="inline"><![CDATA[f: \mathbb {R} \times  \mathbb {R} \to  \mathbb {R}]]></fr:tex> from <fr:link href="/efr-8B5X/" title="https://erischel.com/efr-8B5X/" uri="https://erischel.com/efr-8B5X/" display-uri="efr-8B5X" type="local">Example <fr:contextual-number uri="https://erischel.com/efr-8B5X/" display-uri="efr-8B5X" /></fr:link> satisfies <fr:tex display="inline"><![CDATA[f(x,y) = y]]></fr:tex> for almost all <fr:tex display="inline"><![CDATA[x]]></fr:tex> when <fr:tex display="inline"><![CDATA[x]]></fr:tex> is normally distributed, for all <fr:tex display="inline"><![CDATA[y]]></fr:tex>, but this does not imply that for all measures on <fr:tex display="inline"><![CDATA[x,y]]></fr:tex> with this marginal, <fr:tex display="inline"><![CDATA[f(x,y)]]></fr:tex> is distributed as the marginal of <fr:tex display="inline"><![CDATA[y]]></fr:tex>.
</html:p>
                <html:p>
  One point of view is that the map <fr:tex display="inline"><![CDATA[f]]></fr:tex> is simply pathological, and we should restrict our attention to maps that are continuous in some sense (from the point of view of computer science, one argument for this is that <html:em>computable</html:em> maps are necessarily continuous). The category <fr:tex display="inline"><![CDATA[\mathsf {TychStoch}]]></fr:tex> of Tychonoff spaces and weakly continuous kernels does indeed have supports. However, since it lacks <html:em>conditionals,</html:em> it is still not ideal from our point of view.
</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>2025</fr:year>
                  <fr:month>3</fr:month>
                  <fr:day>26</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-GO6R/</fr:uri>
                <fr:display-uri>efr-GO6R</fr:display-uri>
                <fr:route>/efr-GO6R/</fr:route>
                <fr:title text="Free Markov Prefibrations">Free Markov Prefibrations</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  Because every map in <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex> factors into arrows which are "induced" from arrows in <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to |_\mathrm {det}]]></fr:tex> and the Markov prefibration property, it may initially be hoped that <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex> is in some sense "free" on the data of the fibration <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to |_\mathrm {det} \to  \mathsf {Set}]]></fr:tex> and the inclusion <fr:tex display="inline"><![CDATA[\mathsf {Set} \to  Kl(\Delta )]]></fr:tex>. If that was true, we may further hope that taking the fiberwise opposite of the fibration and applying the same free generation principle would generate a good notion of stochastic lens.
</html:p>
                <html:p>
  Unfortunately, this is not the case. We will see that the free prefibration is given by gadgets which look a bit like an indexed version of optics, up to a sliding equivalence for <html:em>deterministic</html:em> maps on the residual. This prompts us to look for some extra structure on the fibration <fr:tex display="inline"><![CDATA[\mathcal {D}|_\mathrm {det} \to  \mathcal {C}_\mathrm {det}]]></fr:tex> which describes sliding equivalences for stochastic maps on the residual. In the next section, we will see that this is exactly the structure of an Eilenberg-Moore algebra for the free prefibration monad on <fr:tex display="inline"><![CDATA[\mathsf {Fib}(\mathcal {C}_\mathrm {det})]]></fr:tex>. 
</html:p>
                <html:p>In this section, we will give a description of the free Markov prefibration on a fibration <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \to  \mathcal {C}_{\mathrm {det}}]]></fr:tex> (assuming <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is pullback positive). There is a fairly simple description of the hom-sets, but their composition is a bit tricky, and verifying associativity even more so. Hence we will employ a technical trick: by characterizing the hom-sets as "freely generated" in a certain sense from the hom-sets in <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex>, we can identify them with sets of natural transformations using a Yoneda-type argument, and infer composition and associativity from there.</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>6</fr:month>
                      <fr:day>25</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-001I/</fr:uri>
                    <fr:display-uri>efr-001I</fr:display-uri>
                    <fr:route>/efr-001I/</fr:route>
                    <fr:title text="Indexed copresheaf">Indexed copresheaf</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
    Let <fr:tex display="inline"><![CDATA[p: \mathcal {D} \to  \mathcal {C}]]></fr:tex> be a functor. An <html:em>indexed copresheaf</html:em> on <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> is a tuple <fr:tex display="inline"><![CDATA[(X \in  \mathcal {C}, F: \mathcal {D} \to  \mathsf {Set}, \alpha : F(-) \to  \mathcal {C}(X,p(-)))]]></fr:tex> consisting of a copresheaf, an object of <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, and a natural transformation <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex> as indicated. We say the indexed copresheaf is <html:em>over</html:em> <fr:tex display="inline"><![CDATA[X]]></fr:tex>, and we will abuse the terminology by referring to <fr:tex display="inline"><![CDATA[F]]></fr:tex> itself as an indexed copresheaf, leaving the transformation <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex> implicit (for example, "let <fr:tex display="inline"><![CDATA[F]]></fr:tex> be an indexed copresheaf over <fr:tex display="inline"><![CDATA[X]]></fr:tex>").
</html:p>
                    <html:p>
    We denote the subset <fr:tex display="inline"><![CDATA[\alpha ^{-1}(\{f\}) \subseteq  F(\bar {A}),]]></fr:tex> for <fr:tex display="inline"><![CDATA[f: X \to  p(\bar {A})]]></fr:tex> by <fr:tex display="inline"><![CDATA[F(\bar {A})_f]]></fr:tex>.
</html:p>
                    <html:p>
    A map of indexed copresheaves <fr:tex display="inline"><![CDATA[(X,F,\alpha ) \to  (Y,G,\beta )]]></fr:tex> is a natural transformation <fr:tex display="inline"><![CDATA[F \to  G]]></fr:tex> and a map <fr:tex display="inline"><![CDATA[Y \to  X \in  \mathcal {C}]]></fr:tex> so that the obvious square of natural transformations commutes. We denote the category of indexed copresheaves by <fr:tex display="inline"><![CDATA[\mathsf {IcoPSh}(\mathcal {C} / \mathcal {D})]]></fr:tex>. Note that there is an obvious forgetful functor <fr:tex display="inline"><![CDATA[\mathsf {IcoPSh}(\mathcal {D} / \mathcal {C})^\mathrm {op} \to  \mathcal {C}]]></fr:tex></html:p>
                    <html:p>
    Observe that for each object <fr:tex display="inline"><![CDATA[A \in  \mathcal {D}]]></fr:tex>, there is a corepresentable copresheaf <fr:tex display="inline"><![CDATA[(p(A), \mathcal {D}(A,-), p)]]></fr:tex>. Maps between these obey the Yoneda lemma, in the sense that they are in bijection with maps between the underlying objects in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>. This defines a fully faithful functor <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathsf {IcoPSh}(\mathcal {D} / \mathcal {C})^\mathrm {op}]]></fr:tex> over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. 
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  Of course, there is a dual notion of indexed presheaf, but this will not interest us.
</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>2025</fr:year>
                      <fr:month>3</fr:month>
                      <fr:day>27</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-FOJT/</fr:uri>
                    <fr:display-uri>efr-FOJT</fr:display-uri>
                    <fr:route>/efr-FOJT/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[p: \mathcal {D} \to  \mathcal {C}]]></fr:tex> be any functor and let <fr:tex display="inline"><![CDATA[\mathcal {C}_0 \to  \mathcal {C}]]></fr:tex> be an identity-on-objects functor. Write <fr:tex display="inline"><![CDATA[\mathcal {D}_0 = \mathcal {D} \times _\mathcal {C} \mathcal {C}_0]]></fr:tex> for the pullback. If <fr:tex display="inline"><![CDATA[F: \mathcal {D} \to  \mathsf {Set}]]></fr:tex> is a copresheaf indexed over <fr:tex display="inline"><![CDATA[X \in  \mathcal {C}]]></fr:tex>,
  the pullback <fr:tex display="inline"><![CDATA[\bar {A} \mapsto  F(\bar {A}) \times _{\mathcal {C}(X,p\bar {A})} \mathcal {C}_0(X,p\bar {A})]]></fr:tex> is a copresheaf on <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> indexed over <fr:tex display="inline"><![CDATA[X]]></fr:tex> again in a unique way. This defines a functor <fr:tex display="inline"><![CDATA[\mathsf {IcoPSh}(\mathcal {D} / \mathcal {C}) \to  \mathsf {IcoPSh}(\mathcal {D}_0 / \mathcal {C}_0)]]></fr:tex>. Moreover, this functor preserves the corepresentable copresheaves (since <fr:tex display="inline"><![CDATA[\mathcal {C}_0 \to  \mathcal {C}]]></fr:tex> is identity on objects, so is <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \to  \mathcal {D}]]></fr:tex>, so this statement makes sense).
</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>2025</fr:year>
                      <fr:month>3</fr:month>
                      <fr:day>27</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-FRQG/</fr:uri>
                    <fr:display-uri>efr-FRQG</fr:display-uri>
                    <fr:route>/efr-FRQG/</fr:route>
                    <fr:taxon>Corollary</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \to  \mathcal {C}_0]]></fr:tex> be a functor and let <fr:tex display="inline"><![CDATA[\mathcal {C}_0 \to  \mathcal {C}]]></fr:tex> be identity-on-objects and faithful.
  Then the pullback of the composite <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \to  \mathcal {C}]]></fr:tex> and the inclusion <fr:tex display="inline"><![CDATA[\mathcal {C}_0 \to  \mathcal {C}]]></fr:tex> is identical to <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex>.
  Therefore, <fr:link href="/efr-FOJT/" title="https://erischel.com/efr-FOJT/" uri="https://erischel.com/efr-FOJT/" display-uri="efr-FOJT" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-FOJT/" display-uri="efr-FOJT" /></fr:link> gives a functor <fr:tex display="inline"><![CDATA[\mathsf {IcoPSh}(\mathcal {D}_0 / \mathcal {C}) \to  \mathsf {IcoPSh}(\mathcal {D}_0 / \mathcal {C}_0)]]></fr:tex>.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  The idea of our construction of the free Markov prefibration is to give a certain monad on <fr:tex display="inline"><![CDATA[\mathsf {IcoPSh}(\mathcal {D}_0 / \mathcal {C})]]></fr:tex> and consider the Kleisli maps between the representable copresheaves.
</html:p>
                <html:p>
  At this point, the notion of a deterministic map <fr:tex display="inline"><![CDATA[M \to  X]]></fr:tex> equipped with a stochastic (ie not <html:em>necessarily</html:em> deterministic) section begins playing a key role. The phrase "stochastic section" will always carry an implicit "of a deterministic map". In most cases the map that the section is a section <html:em>of</html:em> will be clear from the context.
</html:p>
                <html:p>
  Note that, given a stochastic section <fr:tex display="inline"><![CDATA[Y \to  M]]></fr:tex> and a deterministic map <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex>, if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is <fr:link href="/efr-T3HM/" title="Pullback-positive" uri="https://erischel.com/efr-T3HM/" display-uri="efr-T3HM" type="local">pullback-positive</fr:link>, there is a unique lifting of this to a section of the projection <fr:tex display="inline"><![CDATA[Y \times _X M \to  Y]]></fr:tex>. We will use this fact several times.
</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>2025</fr:year>
                      <fr:month>3</fr:month>
                      <fr:day>27</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-Y926/</fr:uri>
                    <fr:display-uri>efr-Y926</fr:display-uri>
                    <fr:route>/efr-Y926/</fr:route>
                    <fr:title text="Stochastic Module">Stochastic Module</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a Markov category, and let <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \to  \mathcal {C}_\mathrm {det}]]></fr:tex> be a fibration.
  Then a <html:em>stochastic module</html:em> consists of
  <html:ol><html:li>An indexed copresheaf <fr:tex display="inline"><![CDATA[F = (A,F,\rho ) \in  \mathsf {IcoPSh}(\mathcal {D}_0 / \mathcal {C})]]></fr:tex></html:li>
    <html:li>For each <fr:tex display="inline"><![CDATA[\bar {X} \in  \mathcal {D}_0]]></fr:tex>, Cartesian morphism <fr:tex display="inline"><![CDATA[\bar {a}: \bar {X}_M \to  \bar {X}]]></fr:tex> lying over <fr:tex display="inline"><![CDATA[a: M \to  X]]></fr:tex>, and stochastic section <fr:tex display="inline"><![CDATA[\alpha : X \to  M]]></fr:tex>, a function <fr:tex display="inline"><![CDATA[ \alpha _*: F(\bar {X}) \to  F(\bar {X}_M)]]></fr:tex>, which acts on the underlying morphisms in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> as composition with <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex></html:li>
    <html:li>Satisfying, whenever given a commutative square of Cartesian morphisms:

      
  <html:figure><fr:resource hash="ee9d13d4f08cb72c9f286fa50f61ebf5"><fr:resource-content><html:img src="/ee9d13d4f08cb72c9f286fa50f61ebf5.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
        \begin {tikzcd}
        \bar {Y}_M \ar [r, "\bar {f}"] \ar [d, "\bar {a}"] & \bar {Y}_N \ar [d, "\bar {b}"] \\
        \bar {Y}_X \ar [r, "\bar {g}"] & \bar {Y}
        \end {tikzcd}
      ]]></fr:resource-source></fr:resource></html:figure>


      and stochastic sections <fr:tex display="inline"><![CDATA[\alpha ,\beta ]]></fr:tex> lying over <fr:tex display="inline"><![CDATA[a = p(\bar {a}), b = p(\bar {b}),]]></fr:tex> so that we have a digram in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>:

      
  <html:figure><fr:resource hash="8db0401b9bf5cc479c6d4f03a4291076"><fr:resource-content><html:img src="/8db0401b9bf5cc479c6d4f03a4291076.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
        \begin {tikzcd}
        M \ar [r, "f"] \ar [d,"a"] & N \ar [d,"b"] \\
        X \ar [r, "g"] \ar [u, "\alpha ", bend left=30] & Y \ar [u, "\beta ", bend left=30]
        \end {tikzcd}
      ]]></fr:resource-source></fr:resource></html:figure>

      Where the maps except <fr:tex display="inline"><![CDATA[\alpha ,\beta ]]></fr:tex> are deterministic, <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex> and <fr:tex display="inline"><![CDATA[\beta ]]></fr:tex> are sections of <fr:tex display="inline"><![CDATA[a]]></fr:tex> and <fr:tex display="inline"><![CDATA[b]]></fr:tex>, and both the square of deterministic maps and the square involving <fr:tex display="inline"><![CDATA[\alpha ,\beta ]]></fr:tex> commute, the condition that the square
      
  <html:figure><fr:resource hash="52399c066692cc547952bd3dfae41d15"><fr:resource-content><html:img src="/52399c066692cc547952bd3dfae41d15.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
        \begin {tikzcd}
        {F(\bar {Y}_M)} \ar [r, "F(\bar {f})"] & F(\bar {Y}_N)\\
        F(\bar {Y}_X) \ar [r, "F(\bar {g})"] \ar [u, "\alpha _*"] & F(\bar {Y}) \ar [u, "\beta _*"]
        \end {tikzcd}
      ]]></fr:resource-source></fr:resource></html:figure>

      commutes.
    </html:li>
    <html:li>
      And satisfying furthermore the equation, for every two stochastic sections <fr:tex display="inline"><![CDATA[\alpha :X \to  M,]]></fr:tex> <fr:tex display="inline"><![CDATA[\beta : M \to  N,]]></fr:tex> the equation <fr:tex display="inline"><![CDATA[(\beta \alpha )_* = \beta _*\alpha _*]]></fr:tex> (note that this makes sense because pullbacks compose).
    </html:li></html:ol></html:p>
                    <html:p>
  A morphism of stochastic modules is an indexed natural transformation which preserves the operations <fr:tex display="inline"><![CDATA[\alpha _*]]></fr:tex>. The category of stochastic modules is denoted <fr:tex display="inline"><![CDATA[\mathsf {SMod}(\mathcal {D}_0 / \mathcal {C})]]></fr:tex>. There is an apparent forgetful functor <fr:tex display="inline"><![CDATA[\mathsf {SMod}(\mathcal {D}_0 / \mathcal {C}) \to  \mathsf {IcoPSh}(\mathcal {D}_0 / \mathcal {C})]]></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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>27</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-GL6R/</fr:uri>
                    <fr:display-uri>efr-GL6R</fr:display-uri>
                    <fr:route>/efr-GL6R/</fr:route>
                    <fr:taxon>Remark</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Note that <fr:tex display="inline"><![CDATA[\alpha _*]]></fr:tex> of course depends on <fr:tex display="inline"><![CDATA[f]]></fr:tex>, not just <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex>.
</html:p>
                    <html:p>
  If <fr:tex display="inline"><![CDATA[f: M \to  X]]></fr:tex> is a deterministic map, <fr:tex display="inline"><![CDATA[\alpha :X \to  M]]></fr:tex> is a stochastic section, and <fr:tex display="inline"><![CDATA[\bar {X}_M, \bar {X}_M' \to  \bar {X}]]></fr:tex> are two Cartesian lifts of <fr:tex display="inline"><![CDATA[f]]></fr:tex> to <fr:tex display="inline"><![CDATA[\bar {X} \in  \mathcal {D}_X]]></fr:tex>, then applying the commutativity axiom for stochastic modules implies that the triangle
  
  <html:figure><fr:resource hash="4364481ca86502a72a5c18bf1272c7d7"><fr:resource-content><html:img src="/4364481ca86502a72a5c18bf1272c7d7.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    F(\bar {X}) \ar [r, "\alpha _*"] \ar [dr, "\alpha _*"] & F(\bar {X}_M) \ar [d, "\mathbin {\rotatebox [origin=c]{90}{$\sim $}}"] \\
    & F(\bar {X}_M')
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  commutes. In what follows, we will simply write <fr:tex display="inline"><![CDATA[f^*\bar {X}]]></fr:tex> for some choice of cartesian lift, and speak of <fr:tex display="inline"><![CDATA[\alpha _* : F(\bar {X}) \to  F(f^*\bar {X})]]></fr:tex>. The above shows that this is a harmless abuse---the actions <fr:tex display="inline"><![CDATA[\alpha _*]]></fr:tex> are preserved by the identification of different Cartesian lifts. In particular, we will often make arguments as if pullbacks compose strictly, although in general they only compose up to isomorphism. The above triangle means this is harmless.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  The term "stochastic module" is not very good, but this is mostly a nonce definition in any case, so we won't worry too much about it.
</html:p>
                <html:p>
  Stochastic modules over a given <fr:tex display="inline"><![CDATA[X \in  \mathcal {C}]]></fr:tex> can be seen to be monadic over the category of indexed copresheaves over that <fr:tex display="inline"><![CDATA[X]]></fr:tex>. However, the compatibility of these local left adjoints with the structure of the rest of the category is somewhat subtle. However, we do have free stochastic modules on <html:em>representable</html:em> indexed copresheaves, as we will soon see.
</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>2025</fr:year>
                      <fr:month>3</fr:month>
                      <fr:day>27</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-2XPE/</fr:uri>
                    <fr:display-uri>efr-2XPE</fr:display-uri>
                    <fr:route>/efr-2XPE/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> be a Markov prefibration, and let <fr:tex display="inline"><![CDATA[\mathcal {D}_0 = \mathcal {D} \times _\mathcal {C} \mathcal {C}_\mathrm {det}]]></fr:tex>. Then the corepresentable copresheaf <fr:tex display="inline"><![CDATA[\mathcal {D}(\bar {A},-)]]></fr:tex>, restricted to <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex>, (but not pulled back---that is, we remember the whole set <fr:tex display="inline"><![CDATA[\mathcal {D}(\bar {A},\bar {X})]]></fr:tex>, even the part over stochastic <fr:tex display="inline"><![CDATA[f]]></fr:tex>, but only the <html:em>composition</html:em> with maps in <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex>) is a stochastic module in a canonical way, with <fr:tex display="inline"><![CDATA[\alpha _*: F(\bar {X}) \to  F(f^*\bar {X})]]></fr:tex> given by composition with the unique induced lift of <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex>. Moreover, any morphism of Markov prefibrations <fr:tex display="inline"><![CDATA[\phi : \mathcal {D} \to  \mathcal {D}']]></fr:tex> induces a homomorphism of stochastic modules <fr:tex display="inline"><![CDATA[\mathcal {D}(\bar {A},-) \to  \mathcal {D}'(\phi (\bar {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>2025</fr:year><fr:month>3</fr:month><fr:day>27</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Given <fr:tex display="inline"><![CDATA[f: M \to  X]]></fr:tex> and a stochastic section <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex>, it's clear that composition with the unique lift <fr:tex display="inline"><![CDATA[\bar {X} \to  f^*\bar {X}]]></fr:tex> is a map of the right type, so we just have to verify the equations.
    For the first equation (item 3 in the definition of stochastic module), we are comparing two maps <fr:tex display="inline"><![CDATA[F(g^*\bar {X}) \to  F(b^*\bar {X})]]></fr:tex>. These are given by composition with two maps, let's call them <fr:tex display="inline"><![CDATA[\\phi, \psi : g^*\bar {X} \to  b^*\bar {X}]]></fr:tex>. These two maps are lifts of <fr:tex display="inline"><![CDATA[f\alpha ]]></fr:tex> and <fr:tex display="inline"><![CDATA[\beta  g]]></fr:tex>, but by assumption these two are equal. Hence by the uniqueness property of Markov prefibrations, <fr:tex display="inline"><![CDATA[\phi  = \psi ]]></fr:tex>, and we have our equation. The other equation follows in a completely analogous way.
  </html:p>
  <html:p>


  To prove the homomorphism property, note that a morphism of prefibrations preserves Cartesian morphisms, and hence (by uniqueness) must preserve the unique lifts of stochastic sections. Then by functoriality it must preserve composition with these, which finishes 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>2025</fr:year>
                      <fr:month>3</fr:month>
                      <fr:day>27</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-OH7U/</fr:uri>
                    <fr:display-uri>efr-OH7U</fr:display-uri>
                    <fr:route>/efr-OH7U/</fr:route>
                    <fr:taxon>Lemma</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:ol><html:li>
    Let <fr:tex display="inline"><![CDATA[\bar {X} \in  \mathcal {D}_0]]></fr:tex> be an object. Then there is a free stochastic module <fr:tex display="inline"><![CDATA[T\mathcal {D}_0(\bar {X},-)]]></fr:tex> on its representable copresheaf, in the sense that if <fr:tex display="inline"><![CDATA[F]]></fr:tex> is another stochastic module, homomorphisms <fr:tex display="inline"><![CDATA[T\mathcal {D}_0(\bar {X},-) \to  F]]></fr:tex> are in bijection with indexed natural transformations <fr:tex display="inline"><![CDATA[\mathcal {D}_0(\bar {X},-) \to  F]]></fr:tex></html:li>
  <html:li>The free stochastic module on a corepresentable presheaf is given as follows: an element of <fr:tex display="inline"><![CDATA[T\mathcal {D}_0(\bar {X},-)(\bar {Y})]]></fr:tex> consists of a diagram in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> of the form
    
  <html:figure><fr:resource hash="e0e1a55e9553273879b5ba4bf43c5b54"><fr:resource-content><html:img src="/e0e1a55e9553273879b5ba4bf43c5b54.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
      \begin {tikzcd}
      & M \ar [dr, "f"] \ar [dl, "g"] &\\
      X \ar [ur, "s", bend left=20] & & Y 
      \end {tikzcd}
    ]]></fr:resource-source></fr:resource></html:figure>

    (where <fr:tex display="inline"><![CDATA[X = p(\bar {X}), Y = p(\bar {Y})]]></fr:tex>,) where <fr:tex display="inline"><![CDATA[fs = 1_X]]></fr:tex> and <fr:tex display="inline"><![CDATA[f,g]]></fr:tex> are deterministic, plus a map <fr:tex display="inline"><![CDATA[f^*\bar {X} \to  \bar {Y}]]></fr:tex> lying over <fr:tex display="inline"><![CDATA[g]]></fr:tex>. This is up to the equivalence relation which, given some other such tuple, identifies them whenever there exists deterministic <fr:tex display="inline"><![CDATA[h: N \to  M]]></fr:tex> as in this diagram:

    
  <html:figure><fr:resource hash="42d4d22ca9a63a8eb04bd91ac09e2e11"><fr:resource-content><html:img src="/42d4d22ca9a63a8eb04bd91ac09e2e11.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
      \begin {tikzcd}
      & N \ar [ddl, swap, "{f'}"] \ar [d, "h"] \ar [ddr] & \\
      & M \ar [dl, "f"] \ar [dr] & \\ 
      X \ar [ruu, bend left=30, "{s'}"] \ar [ru, bend right=30, swap, "s"] & & Y
      \end {tikzcd}
    ]]></fr:resource-source></fr:resource></html:figure>


    so that the two deterministic triangles commute, <fr:tex display="inline"><![CDATA[hs' = s,]]></fr:tex> and so that the unique Cartesian map <fr:tex display="inline"><![CDATA[f'^*\bar {X} \to  f^*\bar {X}]]></fr:tex> over <fr:tex display="inline"><![CDATA[h]]></fr:tex> forms a commutative triangle with the two maps to <fr:tex display="inline"><![CDATA[\bar {Y}]]></fr:tex>. (Note that we do not claim the relation just described is inherently an equivalence relation, rather we form the equivalence relation generated by this). It is clear how a map <fr:tex display="inline"><![CDATA[\bar {Y} \to  \bar {Z}]]></fr:tex> acts on this to make it a copresheaf. It is indexed by taking a tuple as above to the composite <fr:tex display="inline"><![CDATA[X \to  M \to  Y]]></fr:tex>. Given <fr:tex display="inline"><![CDATA[N \to  Y]]></fr:tex> with a stochastic section <fr:tex display="inline"><![CDATA[s': Y \to  N,]]></fr:tex>, and an element of <fr:tex display="inline"><![CDATA[T\mathcal {D}_0(\bar {X},-)(\bar {Y}),]]></fr:tex> the induced element in <fr:tex display="inline"><![CDATA[T\mathcal {D}_0(\bar {X},-)(s'^*\bar {Y})]]></fr:tex> is given by forming the pullback <fr:tex display="inline"><![CDATA[M \times _Y N,]]></fr:tex> taking the pullback of the map over <fr:tex display="inline"><![CDATA[g]]></fr:tex> to one lying over the projection <fr:tex display="inline"><![CDATA[M \times _Y N \to  N,]]></fr:tex> and composing the section <fr:tex display="inline"><![CDATA[s]]></fr:tex> with the induced lift <fr:tex display="inline"><![CDATA[M \to  M \times _Y N]]></fr:tex>
    
  <html:figure><fr:resource hash="2f58a9c493053fa46ce49c4b2e2d33e1"><fr:resource-content><html:img src="/2f58a9c493053fa46ce49c4b2e2d33e1.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
      \begin {tikzcd}
      & & M \times _Y N \ar [dr] \ar [dl] & \\
      & M \ar [dr] \ar [dl] \ar [ur, bend left=20] & & N\ar [dl] \\
      X \ar [ur, bend left=20] & & Y \ar [ur, bend left=20]& \\
      \end {tikzcd}
    ]]></fr:resource-source></fr:resource></html:figure></html:li>
  <html:li>The underlying copresheaf of this respects Cartesian maps in <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \to  \mathcal {C}_\mathrm {det}]]></fr:tex>, in the sense that given a Cartesian map <fr:tex display="inline"><![CDATA[\bar {A} \to  \bar {B}]]></fr:tex> and an element <fr:tex display="inline"><![CDATA[\phi  \in  T\mathcal {D}_0(\bar {X},-)(\bar {B})]]></fr:tex> lying over a deterministic map <fr:tex display="inline"><![CDATA[X \to  B,]]></fr:tex> the natural map from lifts <fr:tex display="inline"><![CDATA[\psi  \in  T\mathcal {D}_0(\bar {X},-)(\bar {A})]]></fr:tex> to lifts <fr:tex display="inline"><![CDATA[X \to  A]]></fr:tex> is a bijection.</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>2025</fr:year><fr:month>3</fr:month><fr:day>27</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
<html:p>
  First, we have to verify the equations of a stochastic module for <fr:tex display="inline"><![CDATA[T\mathcal {D}_0(\overline {X},-)]]></fr:tex>. For the first case, suppose we are given a square
  
  <html:figure><fr:resource hash="3195df3de083eca61d6b9d797f63de6e"><fr:resource-content><html:img src="/3195df3de083eca61d6b9d797f63de6e.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    N \ar [r] \ar [d] & W \ar [d]\\
    Y \ar [r] \ar [u, bend left, "\alpha "] & Z \ar [u, bend left, "\beta "]
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>


  with all but the upwards maps stochastic. Now let <fr:tex display="inline"><![CDATA[\bar {Z}]]></fr:tex> be some object over <fr:tex display="inline"><![CDATA[Z]]></fr:tex> and suppose we are given an element of <fr:tex display="inline"><![CDATA[T\mathcal {D}_0(\bar {X}, \bar {Z}_Y)]]></fr:tex>, represented by a span
  <fr:tex display="inline"><![CDATA[X \leftarrow  M \to  Y]]></fr:tex>, a section <fr:tex display="inline"><![CDATA[X \to  M]]></fr:tex> and a map <fr:tex display="inline"><![CDATA[\phi : \bar {X}_M \to  \bar {Z}_M]]></fr:tex> over <fr:tex display="inline"><![CDATA[M]]></fr:tex>. 
  
  Consider then the below diagram:

  
  <html:figure><fr:resource hash="6966a2d5f6fb9145bf439a32fb810f5e"><fr:resource-content><html:img src="/6966a2d5f6fb9145bf439a32fb810f5e.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	&& {M \times _Z W} \\
	&& {M \times _Y N} \\
	& M && N \\
	X && Y && W \\
	&&& {Z,}
	\arrow [from=1-3, to=3-2]
	\arrow [from=1-3, to=4-5]
	\arrow [from=2-3, to=1-3]
	\arrow [from=2-3, to=3-2]
	\arrow [from=2-3, to=3-4]
	\arrow [shift left=3, curve={height=-12pt}, from=3-2, to=1-3]
	\arrow [curve={height=-6pt}, from=3-2, to=2-3]
	\arrow [from=3-2, to=4-1]
	\arrow [from=3-2, to=4-3]
	\arrow [from=3-4, to=4-3]
	\arrow [from=3-4, to=4-5]
	\arrow [curve={height=-6pt}, from=4-1, to=3-2]
	\arrow [curve={height=-6pt}, from=4-3, to=3-4]
	\arrow [from=4-3, to=5-4]
	\arrow [from=4-5, to=5-4]
	\arrow [curve={height=-6pt}, from=5-4, to=4-5]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>


  By definition, the first of the two possible elements of <fr:tex display="inline"><![CDATA[T\mathcal {D}_0(\bar {Z}_W)]]></fr:tex> are given by either forming the pullback <fr:tex display="inline"><![CDATA[M \times _Y N]]></fr:tex>, taking the lift of <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex> to <fr:tex display="inline"><![CDATA[M \to  M \times _Y N]]></fr:tex> and composing to get a section <fr:tex display="inline"><![CDATA[X \to  M \times _Y N]]></fr:tex>, and pulling back <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex> along the projection to get a map <fr:tex display="inline"><![CDATA[\bar {X}_{M \times _Y N} \to  \bar {Z}_{M \times _Y N}]]></fr:tex>, then taking the span <fr:tex display="inline"><![CDATA[X \leftarrow  M \times _Y N \to  W]]></fr:tex>.
  The second is given by first composing with the map <fr:tex display="inline"><![CDATA[Y \to  Z]]></fr:tex>, then applying the above procedure with the pullback <fr:tex display="inline"><![CDATA[M \times _Z W]]></fr:tex>. The induced map <fr:tex display="inline"><![CDATA[M \times _Y N \to  M \times _Z W]]></fr:tex> exhibits the equality of these two under the equivalence relation defining <fr:tex display="inline"><![CDATA[T\mathcal {D}_0(\bar {X},-)]]></fr:tex> (commutativity of the bottom-right square implies that triangle of stochastic sections commutes.)
</html:p>

<html:p>
  Given some other stochastic module <fr:tex display="inline"><![CDATA[F]]></fr:tex> over <fr:tex display="inline"><![CDATA[A]]></fr:tex> with a map of indexed copresheaves <fr:tex display="inline"><![CDATA[\mathcal {D}_0(\bar {X},-) \to  F,]]></fr:tex> over <fr:tex display="inline"><![CDATA[A \to  X]]></fr:tex>, there is at most one extension to a map of stochastic presheaves <fr:tex display="inline"><![CDATA[T\mathcal {D}_0(\bar {X},-) \to  F]]></fr:tex> over <fr:tex display="inline"><![CDATA[A \to  X]]></fr:tex>---given an element with representative <fr:tex display="inline"><![CDATA[(s:X \to  M, X \leftarrow  M \to  Y, \bar {X}_M \to  \bar {Y}_M),]]></fr:tex> it must go to the identity element of <fr:tex display="inline"><![CDATA[F(\bar {X}),]]></fr:tex> acted on by the stochastic section <fr:tex display="inline"><![CDATA[s]]></fr:tex> to produce an element of <fr:tex display="inline"><![CDATA[F(\bar {X}_M),]]></fr:tex> followed by <fr:tex display="inline"><![CDATA[F]]></fr:tex> applied to the map <fr:tex display="inline"><![CDATA[\bar {X}_M \to  \bar {Y}]]></fr:tex> over <fr:tex display="inline"><![CDATA[M \to  Y]]></fr:tex>.
</html:p>
<html:p>
  But it is not hard to see that the equivalence relation imposed by <fr:tex display="inline"><![CDATA[T\mathcal {D}_0(\bar {X},-)]]></fr:tex> is implied by the equations of a stochastic module, and so this map is well-defined, establishing the property.
</html:p>
<html:p>
  Secondly, let <fr:tex display="inline"><![CDATA[\bar {A} \to  \bar {B}]]></fr:tex> be a Cartesian map over <fr:tex display="inline"><![CDATA[A \to  B,]]></fr:tex> and take a commutative triangle
  
  <html:figure><fr:resource hash="7af6ba69d08ca3ed8e06b8a1b3361b07"><fr:resource-content><html:img src="/7af6ba69d08ca3ed8e06b8a1b3361b07.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    & A \ar [d]\\
    X \ar [ur] \ar [r] & B
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  of deterministic maps. Finally take an element of <fr:tex display="inline"><![CDATA[T\mathcal {D}_0(\bar {X},-)(\bar {B})]]></fr:tex> over the given map <fr:tex display="inline"><![CDATA[X \to  B]]></fr:tex>. We must show it has a unique lift to <fr:tex display="inline"><![CDATA[A]]></fr:tex> over the given map <fr:tex display="inline"><![CDATA[X \to  A]]></fr:tex>.
  Let us take a representative given by a diagram:
  
  <html:figure><fr:resource hash="3d44c21827a78bcc7e75245a129d0bd7"><fr:resource-content><html:img src="/3d44c21827a78bcc7e75245a129d0bd7.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    & M \ar [dl] \ar [dr] &\\
    X \ar [ru, bend left=30] \ar [rr, dashed] & & B
    \end {tikzcd} 
  ]]></fr:resource-source></fr:resource></html:figure>

  First, note that the two maps <fr:tex display="inline"><![CDATA[M \to  X \to  B]]></fr:tex> and <fr:tex display="inline"><![CDATA[M \to  B]]></fr:tex> do not necessarily agree. However, we can remedy this by replacing <fr:tex display="inline"><![CDATA[M]]></fr:tex> by their equalizer---note that as we argued above, this gives an equivalent element of the stochastic module. (By writing their equalizer in <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> as the split pullback <fr:tex display="inline"><![CDATA[M \times _{B \times  B} B,]]></fr:tex> we can see that the section factors over this, even if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> does not have all equalizers in general). Hence we can assume the triangle formed by adding the dashed arrow commutes.
</html:p>
<html:p>
  Since <fr:tex display="inline"><![CDATA[M \to  B]]></fr:tex> now factors over <fr:tex display="inline"><![CDATA[X]]></fr:tex>, the lift <fr:tex display="inline"><![CDATA[X \to  A]]></fr:tex> gives a lift <fr:tex display="inline"><![CDATA[M \to  A]]></fr:tex>. Now by the Cartesian property of <fr:tex display="inline"><![CDATA[\bar {A} \to  \bar {B}]]></fr:tex>, there is a unique lift of <fr:tex display="inline"><![CDATA[p^*\bar {X} \to  \bar {B}]]></fr:tex> to this map (here we just use the fact that <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> is a fibration). This gives the desired lift.
</html:p>
<html:p>
  Finally, given two distinct lifts (again, we can assume their maps <fr:tex display="inline"><![CDATA[M \to  A]]></fr:tex> factor over <fr:tex display="inline"><![CDATA[X]]></fr:tex>,) clearly any map <fr:tex display="inline"><![CDATA[N \to  M]]></fr:tex> witnessing an identity between their composites <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {Y}]]></fr:tex> would likewise exhibit an identity between their lifts (since pullbacks compose). This proves uniqueness, and finishes the proof.
</html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
                <html:p>
  We are now ready to prove the main proposition of this section:
</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>2025</fr:year>
                      <fr:month>3</fr:month>
                      <fr:day>27</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-LGOA/</fr:uri>
                    <fr:display-uri>efr-LGOA</fr:display-uri>
                    <fr:route>/efr-LGOA/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a <fr:link href="/efr-T3HM/" title="Pullback-positive" uri="https://erischel.com/efr-T3HM/" display-uri="efr-T3HM" type="local">pullback-positive</fr:link> Markov category and let <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \to  \mathcal {C}_\mathrm {det}]]></fr:tex> be a fibration. Consider the full subcategory of stochastic modules spanned by the free modules on the corepresentables. Denote the opposite of this category <fr:tex display="inline"><![CDATA[\bar {\mathcal {D}_0}]]></fr:tex>. Clearly there is a commutative diagram
  
  <html:figure><fr:resource hash="241c6e6dcb2f9418c9c542d60e6b362d"><fr:resource-content><html:img src="/241c6e6dcb2f9418c9c542d60e6b362d.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    \mathcal {D}_0 \ar [d] \ar [r] & \bar {\mathcal {D}_0} \ar [d]\\
    \mathcal {C}_\mathrm {det} \ar [r] & \mathcal {C}
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  We claim:
</html:p>
                    <html:ol><html:li><fr:tex display="inline"><![CDATA[\bar {\mathcal {D}_0} \to  \mathcal {C}]]></fr:tex> is a Markov prefibration.
  </html:li>
  <html:li>
    There is a bijection <fr:tex display="inline"><![CDATA[\bar {\mathcal {D}_0}(\bar {A},-) \cong  T(\mathcal {D}_0(\bar {A},-))]]></fr:tex>. When the left-hand side is equipped with the canonical stochastic module structure, and the right is equipped with the free one, this is moreover a homomorphism (hence isomorphism) of stochastic modules.
  </html:li>
  <html:li><fr:tex display="inline"><![CDATA[\bar {\mathcal {D}_0} \to  \mathcal {C}]]></fr:tex> is initial among Markov prefibrations receiving a map from <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex>. In other words, this construction gives a left adjoint to the pullback functor <fr:tex display="inline"><![CDATA[\mathsf {MarkPreFib}(\mathcal {C}) \to  \mathsf {Fib}(\mathcal {C}_\mathrm {det})]]></fr:tex></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>2025</fr:year>
                          <fr:month>3</fr:month>
                          <fr:day>27</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-0BES/</fr:uri>
                        <fr:display-uri>efr-0BES</fr:display-uri>
                        <fr:route>/efr-0BES/</fr:route>
                        <fr:taxon>Proof</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  First observe that, by <fr:link href="/efr-OH7U/" title="https://erischel.com/efr-OH7U/" uri="https://erischel.com/efr-OH7U/" display-uri="efr-OH7U" type="local">Lemma <fr:contextual-number uri="https://erischel.com/efr-OH7U/" display-uri="efr-OH7U" /></fr:link>, the pullback <fr:tex display="inline"><![CDATA[\bar {\mathcal {D}_0}\times _\mathcal {C} \mathcal {C}_\mathrm {det} \to  \mathcal {C}_\mathrm {det}]]></fr:tex> is indeed a fibration, with the image of the Cartesian lifts under the functor <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \to  \bar {\mathcal {D}_0}]]></fr:tex> being Cartesian again. (This also establishes that <fr:tex display="inline"><![CDATA[\bar {\mathcal {D}_0}]]></fr:tex> really does receive a map of fibrations from <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex>)
</html:p>
                        <html:p>
  Given Cartesian <fr:tex display="inline"><![CDATA[f: \bar {A} \to  \bar {B} \leftarrow  \bar {C}]]></fr:tex>, and a stochastic lift <fr:tex display="inline"><![CDATA[A \to  C (= p\bar {A} \to  p\bar {C}),]]></fr:tex> consider the pullback <fr:tex display="inline"><![CDATA[A \times _B C]]></fr:tex>, and the pullback of <fr:tex display="inline"><![CDATA[\bar {A}]]></fr:tex> to it. There is a unique lift of <fr:tex display="inline"><![CDATA[A \to  C]]></fr:tex> to a section <fr:tex display="inline"><![CDATA[A \to  A \times _B C]]></fr:tex>, and this induces a unique lift <fr:tex display="inline"><![CDATA[\bar {A} \to  (f\pi _1)^*\bar {A}]]></fr:tex> using the stochastic module structure. The composite of this with the projection to <fr:tex display="inline"><![CDATA[B]]></fr:tex> is a lift of <fr:tex display="inline"><![CDATA[\bar {A \to  \bar {B}}]]></fr:tex> over <fr:tex display="inline"><![CDATA[A \to  C]]></fr:tex>, as required by a Markov prefibration.
</html:p>
                        <html:p>
  Analogously to the proof of <fr:link href="/efr-OH7U/" title="https://erischel.com/efr-OH7U/" uri="https://erischel.com/efr-OH7U/" display-uri="efr-OH7U" type="local">Lemma <fr:contextual-number uri="https://erischel.com/efr-OH7U/" display-uri="efr-OH7U" /></fr:link>, given some other lift <fr:tex display="inline"><![CDATA[A \leftarrow  N \to  C, h: A \to  N, h^*\bar {A} \to  \bar {C}]]></fr:tex>, the fact this is a factorization implies the existence of some <fr:tex display="inline"><![CDATA[M]]></fr:tex> with maps <fr:tex display="inline"><![CDATA[M \to  A, M \to  N]]></fr:tex> and a lift <fr:tex display="inline"><![CDATA[A \to  M]]></fr:tex> of the section <fr:tex display="inline"><![CDATA[A \to  N]]></fr:tex>, so that the induced map between the pullbacks over <fr:tex display="inline"><![CDATA[M]]></fr:tex> and <fr:tex display="inline"><![CDATA[N]]></fr:tex> of <fr:tex display="inline"><![CDATA[\bar {A}]]></fr:tex> makes the triangle into <fr:tex display="inline"><![CDATA[\bar {B}]]></fr:tex> commute. But then since this is a triangle over <html:em>deterministic</html:em> bases, this implies the lifted triangle to <fr:tex display="inline"><![CDATA[\bar {C}]]></fr:tex> also commutes, hence this <fr:tex display="inline"><![CDATA[M]]></fr:tex> lifts to another representative of the lift we started with. But then it's not hard to see that this <fr:tex display="inline"><![CDATA[M]]></fr:tex> maps to <fr:tex display="inline"><![CDATA[A \times _B C]]></fr:tex> and exhibits an equation with the previously constructed "canonical" lift.
</html:p>
                        <html:p>
  Hence <fr:tex display="inline"><![CDATA[\bar {\mathcal {D}_0}]]></fr:tex> is a Markov prefibration, and by the above, the induced stochastic module structure on the corepresentable presheaves <fr:tex display="inline"><![CDATA[\bar {\mathcal {D}_0}(\bar {A},-) = T(\mathcal {D}_0(\bar {A},-))]]></fr:tex> is exactly the one given by <fr:tex display="inline"><![CDATA[T]]></fr:tex> (in other words this equation is not merely a bijection of sets, but an isomorphism of stochastic modules).
</html:p>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\phi : \mathcal {D}_0 \to  \mathcal {D}']]></fr:tex> be a functor over <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det} \to  \mathcal {C}]]></fr:tex> into some other Markov prefibration which preserves Cartesian maps. Using the algebra structure on <fr:tex display="inline"><![CDATA[\mathcal {D}'(\phi \bar {B},-),]]></fr:tex> we see there is a unique extension of <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex> to <fr:tex display="inline"><![CDATA[\bar {\mathcal {D}_0}(\bar {X},-)]]></fr:tex> which respects the stochastic module structure. By chasing the diagram around it's easy to see that this is functorial, and hence gives a map of Markov prefibrations---conversely, any such map extending <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex> must be a stochastic module homomorphism. Thus there is a unique functor, proving initiality.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  This characterization of the left adjoint makes it fairly easy to understand the induced monad on <fr:tex display="inline"><![CDATA[\mathsf {Fib}(\mathcal {C}_\mathrm {det})]]></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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>28</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-ACIV/</fr:uri>
                    <fr:display-uri>efr-ACIV</fr:display-uri>
                    <fr:route>/efr-ACIV/</fr:route>
                    <fr:taxon>Remark</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  We will sometimes refer to the morphisms of <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}_0}]]></fr:tex> as <html:em>precharts</html:em>. Taking the fibration <fr:tex display="inline"><![CDATA[\mathcal {C}^\to |_\mathrm {det} \to  \mathcal {C}_\mathrm {det}]]></fr:tex> as an example, it is not too hard to see that the precharts between <fr:tex display="inline"><![CDATA[X \otimes  A \to  X]]></fr:tex> and <fr:tex display="inline"><![CDATA[B \otimes  Y \to  Y]]></fr:tex> are representatives of co-optics <fr:tex display="inline"><![CDATA[{A \choose  X} \rightrightarrows  {B \choose  Y}]]></fr:tex>. (To see this, note that any prechart is equivalent to one where the apex of the span has the form <fr:tex display="inline"><![CDATA[M \otimes  Y]]></fr:tex> and the right leg is the projection to <fr:tex display="inline"><![CDATA[Y]]></fr:tex>. Then the rest of the data is a map <fr:tex display="inline"><![CDATA[X \to  M \otimes  Y]]></fr:tex> and a map <fr:tex display="inline"><![CDATA[M \otimes  B \to  A]]></fr:tex>, since the <fr:tex display="inline"><![CDATA[X]]></fr:tex>-coordiante of the latter map is determined by the span).
  
</html:p>
                    <html:p>In fact their equivalence relation is given by sliding equivalence for <html:em>deterministic</html:em> maps (i.e morphisms in <fr:tex display="inline"><![CDATA[\mathsf {Optic}_{\mathcal {C}_\mathrm {det}}(\mathcal {C}_\mathrm {det}, \mathcal {C})]]></fr:tex>). The precharts in <fr:tex display="inline"><![CDATA[\mathcal {D}_0^\mathrm {fop}]]></fr:tex> will be called <html:em>prelenses</html:em>. We will speak of the tuple
  <fr:tex display="block"><![CDATA[(M, p:M \to  X, p':M \to  Y, s: X \to  M, \phi : p^*\bar {X} \to  p^*\bar {Y})]]></fr:tex>
  representing a prechart just as a "decorated span (representing ...)". When part of the structure is understood, or can just be left abstracted, we will denote such a decorated span simply by <fr:tex display="inline"><![CDATA[(M,s,\phi ),]]></fr:tex> or even just <fr:tex display="inline"><![CDATA[(M,\phi )]]></fr:tex>. It will be clear from context which part of the structure is being specified.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>7</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-A08L/</fr:uri>
                    <fr:display-uri>efr-A08L</fr:display-uri>
                    <fr:route>/efr-A08L/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> be a fibration. Then the underlying fibration of the free Markov prefibration, <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}_0}|_\mathrm {det},]]></fr:tex> has fiber over <fr:tex display="inline"><![CDATA[X \in  \mathcal {C}]]></fr:tex> given by
</html:p>
                    <html:ol><html:li>Objects are simply objects of <fr:tex display="inline"><![CDATA[\mathcal {D}_{0,X}]]></fr:tex></html:li>
  <html:li>A morphism <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {X}']]></fr:tex> consists of a deterministic <fr:tex display="inline"><![CDATA[f: M \to  X]]></fr:tex>, a stochastic section <fr:tex display="inline"><![CDATA[s: X \to  M,]]></fr:tex> and a map <fr:tex display="inline"><![CDATA[\phi : f^*\bar {X} \to  f^*\bar {X}']]></fr:tex>, up to the equivalence relation generated by, whenever <fr:tex display="inline"><![CDATA[g: N \to  M]]></fr:tex> is deterministic and <fr:tex display="inline"><![CDATA[s': X \to  N]]></fr:tex> is a factorization of <fr:tex display="inline"><![CDATA[s]]></fr:tex>, identifying <fr:tex display="inline"><![CDATA[(M,f,s,\phi )]]></fr:tex> with <fr:tex display="inline"><![CDATA[(N,fg, s', g^*(\phi ))]]></fr:tex>.</html:li>
  <html:li>Given two such morphisms <fr:tex display="inline"><![CDATA[(M,f,s,\phi ), (N,f',s',\psi )]]></fr:tex>, their composite is represented by <fr:tex display="inline"><![CDATA[M \times _X N \to  X]]></fr:tex> equipped with the section formed as the composite of <fr:tex display="inline"><![CDATA[X \to  M]]></fr:tex> and the lift of <fr:tex display="inline"><![CDATA[X \to  N]]></fr:tex> to the pullback, and the composite <fr:tex display="inline"><![CDATA[\pi _M^*(\phi )\pi _N^*(\psi ) \in  \mathcal {D}_{0,M\times _X N}]]></fr:tex></html:li>
  <html:li>Given deterministic <fr:tex display="inline"><![CDATA[f: X \to  Y]]></fr:tex>, the pullback is given on such a map by taking the pullback <fr:tex display="inline"><![CDATA[M \times _Y X \to  X,]]></fr:tex> the induced section, and the pullback of the map <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex> along the projection <fr:tex display="inline"><![CDATA[M \times _Y X \to  M]]></fr:tex></html:li></html:ol>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  It is immediately obvious that we have:
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>7</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-ILIQ/</fr:uri>
                    <fr:display-uri>efr-ILIQ</fr:display-uri>
                    <fr:route>/efr-ILIQ/</fr:route>
                    <fr:taxon>Corollary</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  The free Markov prefibration monad <fr:tex display="inline"><![CDATA[\overline {(-)}|_\mathrm {det}]]></fr:tex> commutes with fiberwise opposites. In particular, algebra structures on <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> are in bijection with algebra structures on <fr:tex display="inline"><![CDATA[\mathcal {D}_0^\mathrm {fop},]]></fr:tex> and fiberwise opposites lifts to an involution of <fr:tex display="inline"><![CDATA[\mathsf {Alg}(\overline {(-)}|_\mathrm {det})]]></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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>25</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-OEFJ/</fr:uri>
                    <fr:display-uri>efr-OEFJ</fr:display-uri>
                    <fr:route>/efr-OEFJ/</fr:route>
                    <fr:title text="Stochastic Module Fibration">Stochastic Module Fibration</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a pullback-positive Markov category.
  The adjunction <fr:tex display="inline"><![CDATA[\overline {(-)} \dashv  (-)|_\mathrm {det}]]></fr:tex> induces a monad on <fr:tex display="inline"><![CDATA[\mathsf {Fib}(\mathcal {C}_\mathrm {det})]]></fr:tex>.
  A module for this monad is called a <html:em>stochastic module over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex></html:em> (or, to distinguish it from the copresheaves of <fr:link href="/efr-Y926/" title="Stochastic Module" uri="https://erischel.com/efr-Y926/" display-uri="efr-Y926" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-Y926/" display-uri="efr-Y926" /></fr:link>, a stochastic module fibration).
  The category of stochastic module fibrations is denoted <fr:tex display="inline"><![CDATA[\mathsf {SFib}(\mathcal {C})]]></fr:tex></html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  Let us try to understand the structure of a stochastic module fibration. It is easiest to understand in the case of a projection map <fr:tex display="inline"><![CDATA[P \times  X \to  X]]></fr:tex>. Suppose we have two objects <fr:tex display="inline"><![CDATA[A,B]]></fr:tex> over <fr:tex display="inline"><![CDATA[X]]></fr:tex>.
  Then we think of a map <fr:tex display="inline"><![CDATA[f: \pi _X^*A \to  \pi _X^*B]]></fr:tex> over <fr:tex display="inline"><![CDATA[P \times  X]]></fr:tex> as a map <fr:tex display="inline"><![CDATA[P \times  A \to  B]]></fr:tex>, that is a map parameterized by <fr:tex display="inline"><![CDATA[P]]></fr:tex> (this is literally the case for a codomain fibration).
  Given a stochastic section <fr:tex display="inline"><![CDATA[s]]></fr:tex> of <fr:tex display="inline"><![CDATA[\pi _X]]></fr:tex>, which amounts to a stochastic map <fr:tex display="inline"><![CDATA[X \to  P]]></fr:tex>, the stochastic module stucture picks out a new map <fr:tex display="inline"><![CDATA[s_*f]]></fr:tex>, which is given over each point <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex> by choosing the parameter according to <fr:tex display="inline"><![CDATA[s]]></fr:tex>, then applying <fr:tex display="inline"><![CDATA[f]]></fr:tex>.
</html:p>
                <html:p>
  The definition of the composite in <fr:link href="/efr-A08L/" title="https://erischel.com/efr-A08L/" uri="https://erischel.com/efr-A08L/" display-uri="efr-A08L" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-A08L/" display-uri="efr-A08L" /></fr:link>, in these terms, tells us that given maps <fr:tex display="inline"><![CDATA[f: P \times  A \to  B, g: Q \times  B \to  C]]></fr:tex>, and maps <fr:tex display="inline"><![CDATA[s: X \to  P, t: X \to  Q]]></fr:tex>, the composite of <fr:tex display="inline"><![CDATA[s_*(f)]]></fr:tex> and <fr:tex display="inline"><![CDATA[t_*(q)]]></fr:tex> is equal to the map obtained by forming the parameterized composite <fr:tex display="inline"><![CDATA[Q \times  P \times  A \to  C]]></fr:tex> and applying the independent pairing <fr:tex display="inline"><![CDATA[\langle  t,s \rangle : X \to  Q \times  P]]></fr:tex>. This is of course how composition is supposed to work in a Markov category.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>25</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-VF6V/</fr:uri>
                    <fr:display-uri>efr-VF6V</fr:display-uri>
                    <fr:route>/efr-VF6V/</fr:route>
                    <fr:taxon>Lemma</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> be a stochastic module over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, and let 
  
  <html:figure><fr:resource hash="dd23056ecfaec5ba834a33b00172bb6f"><fr:resource-content><html:img src="/dd23056ecfaec5ba834a33b00172bb6f.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}[row sep=large]
    P \ar [rrd, "h"] \ar [ddr] & & \\
    & X \times _Z Y \ar [r, "\pi _Y"] \ar [d] & Y \ar [d, "f"]\\
    & X \ar [r, "g"] \ar [ur, "s"] \ar [u, bend left=20, "s'" near end] \ar [uul, bend left=20, "t"] & Z
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  be given, so that every map except <fr:tex display="inline"><![CDATA[s,s',t]]></fr:tex> is deterministic. Suppose the deterministic part of the diagram commutes, <fr:tex display="inline"><![CDATA[fs = g]]></fr:tex>, <fr:tex display="inline"><![CDATA[s']]></fr:tex> is the induced section, and <fr:tex display="inline"><![CDATA[t]]></fr:tex> is a section. Let <fr:tex display="inline"><![CDATA[\bar {A},\bar {B}]]></fr:tex> be two objects over <fr:tex display="inline"><![CDATA[Z]]></fr:tex>. Suppose given a map <fr:tex display="inline"><![CDATA[\phi : f^*\bar {A} \to  f^*\bar {B}]]></fr:tex>. Then <fr:tex display="inline"><![CDATA[t^*h^*(P) = (s')^*\pi _Y^*(P) : g^*\bar {A} \to  g^*\bar {B}]]></fr:tex></html:p>
                    <html:p>
  In particular, this operation depends only on <fr:tex display="inline"><![CDATA[s]]></fr:tex>. Moreover, it is functorial, in the sense that given a diagram
  
  <html:figure><fr:resource hash="1e72a8b11e0676320b0a44b1f9b173ed"><fr:resource-content><html:img src="/1e72a8b11e0676320b0a44b1f9b173ed.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    X \ar [dr] \ar [r, "s" ] & Y \ar [d] \ar [r, "t"] & Z \ar [dl] \\
    & W
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  with the downwards maps deterministic, <fr:tex display="inline"><![CDATA[s^*t^* = (ts)^*]]></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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>25</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-U436/</fr:uri>
                    <fr:display-uri>efr-U436</fr:display-uri>
                    <fr:route>/efr-U436/</fr:route>
                    <fr:taxon>Remark</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  The operations <fr:tex display="inline"><![CDATA[\alpha ^*]]></fr:tex> associated to stochastic lifts are "functorial" in the sense that <fr:tex display="inline"><![CDATA[(\alpha \beta )^* = \beta ^*\alpha ^*]]></fr:tex>. However they are <html:em>not</html:em> functorial in the sense that <fr:tex display="inline"><![CDATA[\alpha ^*(fg) = \alpha ^*(f)\alpha ^*(g)]]></fr:tex></html:p>
                    <html:p>
  To make sense of this, consider a simple case of a map <fr:tex display="inline"><![CDATA[m: I \to  X]]></fr:tex> in <fr:tex display="inline"><![CDATA[Kl(\Delta )]]></fr:tex>.
  Given two objects over <fr:tex display="inline"><![CDATA[*]]></fr:tex> (in <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex>), a map <fr:tex display="inline"><![CDATA[\bar {A}_X \to  \bar {B}_X]]></fr:tex> is equivalent to a parametrized map <fr:tex display="inline"><![CDATA[X \times  \bar {A} \to  \bar {B}]]></fr:tex>. The operation <fr:tex display="inline"><![CDATA[m^*]]></fr:tex> consists in sampling this parameter according to the distribution <fr:tex display="inline"><![CDATA[m]]></fr:tex>---but since composition in the fiber over <fr:tex display="inline"><![CDATA[X]]></fr:tex> is defined by <html:em>copying</html:em> the parameter, but composition in the fiber over <fr:tex display="inline"><![CDATA[*]]></fr:tex> (i.e just <fr:tex display="inline"><![CDATA[Kl(\Delta )]]></fr:tex>) is defined by composing the kernels under conditional independence, these only agree if the distribution <fr:tex display="inline"><![CDATA[m]]></fr:tex> is assumed to be deterministic.
</html:p>
                    <html:p>
  Note that if either <fr:tex display="inline"><![CDATA[f]]></fr:tex> or <fr:tex display="inline"><![CDATA[g]]></fr:tex> is pulled back from a map <fr:tex display="inline"><![CDATA[\bar {A} \to  \bar {B}]]></fr:tex> (i.e, if they do not depend on the parameter <fr:tex display="inline"><![CDATA[X]]></fr:tex>), the composition <html:em>is</html:em> preserved.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  By construction, two morphisms in <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}}_0]]></fr:tex> represented by spans with apex <fr:tex display="inline"><![CDATA[M,M',]]></fr:tex> are identified if there exists a zig-zag <fr:tex display="inline"><![CDATA[M \to  K_0 \leftarrow  K_1 \to  \cdots  \leftarrow  M']]></fr:tex> of spans (decorated with sections from the domain <fr:tex display="inline"><![CDATA[X]]></fr:tex> and morphisms in the fiber, satisfying equations, etc). We will now prove a lemma that allows us to cut this down to a smaller set in many conditions. We will need the following hypothesis:
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>15</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-2MH5/</fr:uri>
                    <fr:display-uri>efr-2MH5</fr:display-uri>
                    <fr:route>/efr-2MH5/</fr:route>
                    <fr:title text="Weak conditionals">Weak conditionals</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[p: \mathcal {D} \to  \mathcal {C}]]></fr:tex> be a Markov prefibration. We say <fr:tex display="inline"><![CDATA[p]]></fr:tex> (or, abusing notation, <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>) <html:em>admits weak conditionals</html:em> if, given a Cartesian map <fr:tex display="inline"><![CDATA[\bar {Y} \to  \bar {Z}]]></fr:tex> and any map <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {Z},]]></fr:tex> the existence part of the Cartesian condition holds---that is, every factorization <fr:tex display="inline"><![CDATA[p(\bar {X}) \to  p(\bar {Y})]]></fr:tex> admits a lift, although not necessarily a unique one.
</html:p>
                    <html:p>
  We say a Markov category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> admits weak conditionals if its codomain functor <fr:tex display="inline"><![CDATA[\mathcal {C}^\to  \to  \mathcal {C}]]></fr:tex> is a prefibration which admits weak conditionals---this is equivalent to requiring that it is pullback-positive, and that <html:em>all</html:em> deterministic pullbacks are carried to weak pullbacks by the inclusion <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det} \to  \mathcal {C}]]></fr:tex> (in other words, that they satisfy the existence part of the universal property even for pairs of nondeterministic maps).
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  Observe that, if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> admits conditionals, it certainly admits weak conditionals: given a pullback <fr:tex display="inline"><![CDATA[X \times _Z Y,]]></fr:tex> and maps <fr:tex display="inline"><![CDATA[P \to  X,Y,]]></fr:tex> form a Bayesian inverse of <fr:tex display="inline"><![CDATA[Y \to  Z]]></fr:tex> with respect to the given measure, and use that to build a lifting <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex>, which gives <fr:tex display="inline"><![CDATA[X \to  X \times _Z Y]]></fr:tex>---then a diagram chase verifies that this map has the desired properties.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>11</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-TZ3Y/</fr:uri>
                    <fr:display-uri>efr-TZ3Y</fr:display-uri>
                    <fr:route>/efr-TZ3Y/</fr:route>
                    <fr:taxon>Lemma</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Suppose <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> admits weak conditionals, and let <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}_\mathrm {det}]]></fr:tex> be a fibration.
  Then two morphisms <fr:tex display="inline"><![CDATA[f_0,f_1: \bar {X} \to  \bar {Y}]]></fr:tex> in <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}}]]></fr:tex>, represented by commutative diagrams
  
  <html:figure><fr:resource hash="9e20b805699778dad4b2902cb20c2133"><fr:resource-content><html:img src="/9e20b805699778dad4b2902cb20c2133.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    & M_{i} \ar [dl] \ar [dr] & \\
    X \ar [ru, bend left=30] & & Y,
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  as well as <fr:tex display="inline"><![CDATA[\phi _i: \bar {X}_{M_i} \to  \bar {Y}_{M_i}]]></fr:tex>, for <fr:tex display="inline"><![CDATA[i=0,1]]></fr:tex>, are equal if and only if there exists a span <fr:tex display="inline"><![CDATA[M_0 \leftarrow  K \to  M_1]]></fr:tex> over <fr:tex display="inline"><![CDATA[X,Y]]></fr:tex>, with a stochastic section <fr:tex display="inline"><![CDATA[X \to  K]]></fr:tex> lifting both the sections to <fr:tex display="inline"><![CDATA[M_0,M_1]]></fr:tex>, so that the pullbacks of <fr:tex display="inline"><![CDATA[\phi _0,\phi _1]]></fr:tex> to <fr:tex display="inline"><![CDATA[K]]></fr:tex> agree.
</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>2025</fr:year><fr:month>4</fr:month><fr:day>11</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    The relation here described clearly implies identity, and contains all the generating identities, so it suffices to show it is an equivalence relation. Reflexivity and symmetry are clear, so transitivity is the only issue. It suffices to show that, given a span <fr:tex display="inline"><![CDATA[X \leftarrow  S \to  Y]]></fr:tex> and maps <fr:tex display="inline"><![CDATA[M_0 \to  S \leftarrow  M_1]]></fr:tex> so that the triangles commute, and so that the two induced sections <fr:tex display="inline"><![CDATA[X \to  S]]></fr:tex> agree, and a map <fr:tex display="inline"><![CDATA[\bar {X}_S \to  \bar {Y}_S]]></fr:tex> which pulls back to <fr:tex display="inline"><![CDATA[\phi _0,\phi _1]]></fr:tex>, we can find <fr:tex display="inline"><![CDATA[K]]></fr:tex> as above.
  </html:p>
  <html:p>
    To do this, take <fr:tex display="inline"><![CDATA[K = M_0 \times _S M_1]]></fr:tex>. Clearly the maps to <fr:tex display="inline"><![CDATA[M_0, M_1]]></fr:tex> are over <fr:tex display="inline"><![CDATA[X,Y]]></fr:tex>, and by the existence of weak conditionals there exists a common lift of the sections to <fr:tex display="inline"><![CDATA[X \to  K]]></fr:tex>. By functoriality of pullbacks, the pullbacks of <fr:tex display="inline"><![CDATA[\phi _0,\phi _1]]></fr:tex> to <fr:tex display="inline"><![CDATA[K]]></fr:tex> agree.
  </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>2025</fr:year>
                  <fr:month>3</fr:month>
                  <fr:day>29</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-U4RA/</fr:uri>
                <fr:display-uri>efr-U4RA</fr:display-uri>
                <fr:route>/efr-U4RA/</fr:route>
                <fr:title text="Markov Fibrations">Markov Fibrations</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  Recall that, given a functor <fr:tex display="inline"><![CDATA[R: \mathcal {C} \to  \mathcal {D}]]></fr:tex> with left adjoint <fr:tex display="inline"><![CDATA[L]]></fr:tex>, there is a "standard resolution" of any object <fr:tex display="inline"><![CDATA[X \in  \mathcal {C}]]></fr:tex>, given by the "cofork" <fr:tex display="inline"><![CDATA[LRLRX \rightrightarrows  LRX \to  X]]></fr:tex>, where the two parallel maps are the two possible applications of the adjunction counit. The adjunction is monadic if and only if this is always a coequalizer, in which case the <fr:tex display="inline"><![CDATA[RL]]></fr:tex>-algebra corresponding to <fr:tex display="inline"><![CDATA[X]]></fr:tex> is <fr:tex display="inline"><![CDATA[RLRX \to  RX]]></fr:tex>---conversely, given an algebra <fr:tex display="inline"><![CDATA[\alpha : RLA \to  A]]></fr:tex>, there are two parallel maps <fr:tex display="inline"><![CDATA[LRLA \rightrightarrows  LA]]></fr:tex> (given by <fr:tex display="inline"><![CDATA[L(\alpha )]]></fr:tex> and the counit,) and the object in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> corresponding to this algebra is given by this coequalizer.
</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>2025</fr:year>
                      <fr:month>3</fr:month>
                      <fr:day>29</fr:day>
                    </fr:date>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
    Consider the adjunction <fr:tex display="inline"><![CDATA[|-|: \mathsf {Mon} \leftrightarrows  \mathsf {Set} : (-)^*]]></fr:tex> between the category of monoids and the category of sets. Given a monoid <fr:tex display="inline"><![CDATA[M]]></fr:tex>, <fr:tex display="inline"><![CDATA[|M|^*]]></fr:tex> consists of lists of elements in <fr:tex display="inline"><![CDATA[M]]></fr:tex>, and <fr:tex display="inline"><![CDATA[||M|^*|^*
  ]]></fr:tex> consists of lists of such lists. The two maps <fr:tex display="inline"><![CDATA[||M|^*|^* \to  |M|^*]]></fr:tex> consist in either concatenating the lists, or replacing each list with its product. Clearly these two maps are coequalized by the product map <fr:tex display="inline"><![CDATA[|M|^* \to  M]]></fr:tex>. Moreover it's clear that two lists have the same product if and only if they are identified in this coequalizer (simply consider a singleton list-of-lists, which identifies any given list with the singleton corresponding to its product).
  </html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  As a generalization of this, if this coequalizer exists for every algebra, they form a left adjoint to the canonical functor <fr:tex display="inline"><![CDATA[\mathcal {C} \to  \mathsf {Alg}_\mathcal {D}(RL)]]></fr:tex>. Since we have seen that the monad of free Markov prefibrations commutes with taking fiberwise opposites, we may hope that such a left adjoint exists---a simple argument shows that, if it is, it is fully faithful, and we may say that those prefibrations in the image are the "fibrations" and define their fiberwise opposite as the fiberwise opposite applied to their underlying algebras. Although it turns out to not be quite so simple, we will take this idea as our starting point.
</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>2025</fr:year>
                      <fr:month>3</fr:month>
                      <fr:day>29</fr:day>
                    </fr:date>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
    Let <fr:tex display="inline"><![CDATA[\mathsf {GrpTop}]]></fr:tex> be the category of topological groups, and let <fr:tex display="inline"><![CDATA[R: \mathsf {GrpTop} \to  \mathsf {Set}]]></fr:tex> forget both the group structure and the topology. Clearly this is right adjoint to the free group in the discrete topology, and the monad of this adjunction is the free group monad, which we write <fr:tex display="inline"><![CDATA[RL]]></fr:tex> for now. The canonical comparison functor <fr:tex display="inline"><![CDATA[\mathsf {GrpTop} \to  \mathsf {Grp}]]></fr:tex> just forgets the topology. Given a (non-topological) group, described by a map <fr:tex display="inline"><![CDATA[RLG \to  G]]></fr:tex>, we can form the diagram of topological groups <fr:tex display="inline"><![CDATA[LRLG \rightrightarrows  LG]]></fr:tex>. Here <fr:tex display="inline"><![CDATA[LG]]></fr:tex> is the free, discrete group on <fr:tex display="inline"><![CDATA[G]]></fr:tex> and <fr:tex display="inline"><![CDATA[LRLG]]></fr:tex> is the free discrete group on the underlying set of <fr:tex display="inline"><![CDATA[LG]]></fr:tex>. Their coequalizer is simply <fr:tex display="inline"><![CDATA[G]]></fr:tex> equipped with the discrete topology, which is indeed the left adjoint to <fr:tex display="inline"><![CDATA[\mathsf {GrpTop} \to  \mathsf {Grp}]]></fr:tex></html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  In what follows, we will denote the monad <fr:tex display="inline"><![CDATA[\overline {(-)}|_\mathrm {det}]]></fr:tex> simply by <fr:tex display="inline"><![CDATA[\operatorname {Free}]]></fr:tex> to avoid too many complicated nestings of overlines and parentheses.
</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>2025</fr:year>
                      <fr:month>3</fr:month>
                      <fr:day>27</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-HVUT/</fr:uri>
                    <fr:display-uri>efr-HVUT</fr:display-uri>
                    <fr:route>/efr-HVUT/</fr:route>
                    <fr:title text="Markov Fibration">Markov Fibration</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> is a Markov prefibration, we call it a <html:em>Markov fibration</html:em> if the diagram <fr:tex display="inline"><![CDATA[\overline {\operatorname {Free}(\mathcal {D}|_\mathrm {det})} \rightrightarrows  \overline {\mathcal {D}|_\mathrm {det}} \to  \mathcal {D}]]></fr:tex> is a coequalizer in <fr:tex display="inline"><![CDATA[\mathsf {Cat}_{/\mathcal {C}}]]></fr:tex>.
</html:p>
                    <html:p>
  Given an algebra <fr:tex display="inline"><![CDATA[\alpha : \operatorname {Free}(\mathcal {D}_0) \to  \mathcal {D}_0]]></fr:tex> of the free Markov prefibration monad, let <fr:tex display="inline"><![CDATA[\overline {\operatorname {Free}(\mathcal {D}_0)} \rightrightarrows  \overline {\mathcal {D}_0} \in  \mathsf {MarkPreFib}]]></fr:tex> be as above. We say <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex> <html:em>presents a Markov fibration</html:em> if the coequalizer of these maps in <fr:tex display="inline"><![CDATA[\mathsf {Cat}_{/\mathcal {C}}]]></fr:tex> is a Markov prefibration.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  The terminology "presents a Markov fibration" is justified by the following proposition.
</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>2025</fr:year>
                      <fr:month>3</fr:month>
                      <fr:day>27</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-MAUM/</fr:uri>
                    <fr:display-uri>efr-MAUM</fr:display-uri>
                    <fr:route>/efr-MAUM/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\alpha : \operatorname {Free}(\mathcal {D}_0) \to  \mathcal {D}_0]]></fr:tex> be stochastic module which presents a Markov fibration. Then the underlying algebra of the Markov prefibration obtained as the coequalizer of <fr:tex display="inline"><![CDATA[\overline {\operatorname {Free}(\mathcal {D}_0)} \rightrightarrows  \bar {\mathcal {D}_0}]]></fr:tex> is isomorphic to <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex>, and in particular this prefibration <html:em>is</html:em> a Markov fibration.
</html:p><html:p>
  This correspondence determines an equivalence of categories between the full subcategory <fr:tex display="inline"><![CDATA[\mathsf {MarkFib}(\mathcal {C})]]></fr:tex> of <fr:tex display="inline"><![CDATA[\mathsf {MarkPreFib}(\mathcal {C})]]></fr:tex> spanned by the Markov fibrations, and the full subcategory <fr:tex display="inline"><![CDATA[\mathsf {SFib}(\mathcal {C})^p \subseteq  \mathsf {SFib}(\mathcal {C})]]></fr:tex> spanned by those algebras which present a Markov fibration.
</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>2025</fr:year><fr:month>3</fr:month><fr:day>27</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Let <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex> be an algebra as assumed, and let <fr:tex display="inline"><![CDATA[\mathcal {D}_0^\alpha  \in  \mathsf {MarkPreFib}]]></fr:tex> denote the coequalizer given. By general nonsense there is an induced functor <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \to  \mathcal {D}_0^\alpha |_\mathrm {det}]]></fr:tex> which is moreover an algebra homomorphism---the claim is that this is an isomorphism. By <fr:link href="/efr-L7L2/" title="https://erischel.com/efr-L7L2/" uri="https://erischel.com/efr-L7L2/" display-uri="efr-L7L2" type="local">Lemma <fr:contextual-number uri="https://erischel.com/efr-L7L2/" display-uri="efr-L7L2" /></fr:link>, pullback to the deterministic part preserves these coequalizers, so this amounts to the claim that the diagram <fr:tex display="inline"><![CDATA[\operatorname {Free}^2(\mathcal {D}_0) \rightrightarrows  \operatorname {Free}(\mathcal {D}_0) \to  \mathcal {D}_0]]></fr:tex> is a coequalizer. But this is true for any algebra of any monad (in fact, the unit gives a splitting of this coequalizer).
  </html:p>
  <html:p>
    By general nonsense the fibration associated to an algebra which presents a fibration forms a partial left adjoint to <fr:tex display="inline"><![CDATA[\mathsf {MarkPreFib}(\mathcal {C}) \to  \mathsf {SFib}(\mathcal {C})]]></fr:tex>. This left adjoint, by the above, has its image inside <fr:tex display="inline"><![CDATA[\mathsf {MarkFib},]]></fr:tex> and hence there is an adjunction <fr:tex display="inline"><![CDATA[\mathsf {MarkFib}(\mathcal {C}) \leftrightarrows  \mathsf {SFib}(\mathcal {C})^p]]></fr:tex>. The preceding furthermore proves that the unit of this adjunction is the identity, which implies that the left adjoint is fully faithful---but by definition it is essentially surjective, finishing the argument.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
                <html:p>
  Let us briefly summarize the relationship between Markov prefibrations, Markov fibrations, and stochastic module fibrations at this stage.
  <html:ul><html:li>
      A stochastic module fibration is a (Grothendieck) fibration <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> over <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex>, equipped with some extra structure involving the whole category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>.
      Given a deterministic map <fr:tex display="inline"><![CDATA[f: A \to  B]]></fr:tex> two objects <fr:tex display="inline"><![CDATA[X,Y \in  \mathcal {D}_B]]></fr:tex>, and a map <fr:tex display="inline"><![CDATA[\phi : f^*X \to  f^*Y]]></fr:tex>, we can think of this as a map parameterized by the fibers <fr:tex display="inline"><![CDATA[A_b]]></fr:tex>. Given a stochastic section <fr:tex display="inline"><![CDATA[s: B \to  A]]></fr:tex>, the stochastic module structure picks out a map <fr:tex display="inline"><![CDATA[X \to  Y \in  \mathcal {D}_B]]></fr:tex> corresponding to choosing this parameter randomly according to <fr:tex display="inline"><![CDATA[s]]></fr:tex>.
    </html:li>
    <html:li>
      A Markov prefibration is a category <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> with a particular unique lifting property. In the above situation, it gives a unique lift <fr:tex display="inline"><![CDATA[X \to  f^*X]]></fr:tex> of <fr:tex display="inline"><![CDATA[s]]></fr:tex>, corresponding to choosing <fr:tex display="inline"><![CDATA[a \in  A_b]]></fr:tex> according to <fr:tex display="inline"><![CDATA[s]]></fr:tex> and leaving the <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex>-coordinate unchangd. By composing this lift with <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex>, then with the Cartesian <fr:tex display="inline"><![CDATA[f^*Y \to  Y]]></fr:tex>, we get a stochastic module structure on the part of <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> lying over deterministic maps (which is also a Grothendieck fibration).
    </html:li>
    <html:p>
      Given a stochastic module structure, there is a way of generating a category over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, by freely adding the lifts corresponding to a Markov prefibration, then quotienting by the relations implied by the stochastic module structure. This does not necessarily yield a Markov prefibration. 
    </html:p>
    <html:p>
      A Markov prefibration is called a Markov fibration if it is presented by its underlying stochastic module in the above sense.
    </html:p></html:ul></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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>8</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-YFV2/</fr:uri>
                    <fr:display-uri>efr-YFV2</fr:display-uri>
                    <fr:route>/efr-YFV2/</fr:route>
                    <fr:title text="Weak supports">Weak supports</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \to  \mathcal {C}_\mathrm {det}]]></fr:tex> be a stochastic module fibration.
</html:p>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\alpha : X \to  M]]></fr:tex> be a stochastic section, let <fr:tex display="inline"><![CDATA[\bar {X} \in  \mathcal {D}_{0,X}]]></fr:tex> be an object, and let <fr:tex display="inline"><![CDATA[\phi : \bar {X}_M \to  \bar {X}_M \in  \mathcal {D}_{0,M}]]></fr:tex> be an endomorphism of its pullback. Observe that if there exists <fr:tex display="inline"><![CDATA[f: N \to  M]]></fr:tex> so that <fr:tex display="inline"><![CDATA[f^*(\phi ) = 1]]></fr:tex> and <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex> factors over <fr:tex display="inline"><![CDATA[f]]></fr:tex>, then <fr:tex display="inline"><![CDATA[\alpha _*(\phi ) = 1]]></fr:tex>. We say <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> has <html:em>weak supports</html:em> if this implication is an equivalence
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  We will make use of the following lemma:
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>5</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-L7L2/</fr:uri>
                    <fr:display-uri>efr-L7L2</fr:display-uri>
                    <fr:route>/efr-L7L2/</fr:route>
                    <fr:taxon>Lemma</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[F,G: \mathcal {D} \rightrightarrows  \mathcal {D}']]></fr:tex> be a parallel pair in <fr:tex display="inline"><![CDATA[\mathsf {Cat}_{/\mathcal {C}}]]></fr:tex>, and suppose both are identity on objects. Suppose moreover this is a reflexive pair, i.e there is some <fr:tex display="inline"><![CDATA[S: \mathcal {D}' \to  \mathcal {D}]]></fr:tex> so that <fr:tex display="inline"><![CDATA[FS = GS = 1_{\mathcal {D}'}]]></fr:tex>. Then the coequalizer in <fr:tex display="inline"><![CDATA[\mathsf {Cat}_{/\mathcal {C}}]]></fr:tex> is again identity on objects, and is given on hom-sets simply by the coequalizer of the parallel pair <fr:tex display="inline"><![CDATA[\mathcal {D}(x,y) \rightrightarrows  \mathcal {D}'(x,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>2025</fr:year><fr:month>4</fr:month><fr:day>5</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    The only nontrivial part is to verify that composition is well-defined on the equivalence classes in <fr:tex display="inline"><![CDATA[\mathcal {D}'(x,y)/\sim ]]></fr:tex>. It suffices to see that post- and precomposition with a fixed morphism both preserve this equivalence relation. Take some <fr:tex display="inline"><![CDATA[f: x \to  y \in  \mathcal {C}]]></fr:tex>, and <fr:tex display="inline"><![CDATA[h : y \to  z \in  \mathcal {C}']]></fr:tex>. We must show that <fr:tex display="inline"><![CDATA[hF(f) = hG(f)]]></fr:tex>. But simply write
    <fr:tex display="block"><![CDATA[hF(f) = F(S(h)f) \sim  G(S(h)f) = hG(f),]]></fr:tex>
    and we are done. Clearly the other side follows by duality, 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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>5</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-TBZZ/</fr:uri>
                    <fr:display-uri>efr-TBZZ</fr:display-uri>
                    <fr:route>/efr-TBZZ/</fr:route>
                    <fr:title text="Construction of \mathsf {SChart}(\mathcal {D}_0)">Construction of <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex></fr:title>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> be a fibration equipped with a stochastic module structure. Consider the equivalence relation on <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}_0}(\bar {X},\bar {Y})]]></fr:tex> which identifies two precharts <fr:tex display="inline"><![CDATA[(M, \phi ), (N, \phi ')]]></fr:tex> if there exists a map <fr:tex display="inline"><![CDATA[f: N \to  M]]></fr:tex> over <fr:tex display="inline"><![CDATA[X,Y]]></fr:tex> and a stochastic section <fr:tex display="inline"><![CDATA[s]]></fr:tex> of <fr:tex display="inline"><![CDATA[f]]></fr:tex> which preserves the section from <fr:tex display="inline"><![CDATA[X]]></fr:tex>, so that <fr:tex display="inline"><![CDATA[s^*\phi ' = \phi ]]></fr:tex> (note that this makes sense because pullbacks compose). 
  
  
  <html:figure><fr:resource hash="284e22cfea26152078b2126f7501065e"><fr:resource-content><html:img src="/284e22cfea26152078b2126f7501065e.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    & N \ar [d, "p"] \ar [ddr] \ar [ddl] & \\
    & M \ar [ld, "q"] \ar [rd, "r"] \ar [u, bend left=30, "s"] & \\
    X \ar [ur, bend left=30] \ar [uur, bend left=30] & & Y
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  
  Then:
</html:p><html:ol><html:li>This equivalence relation respects composition, and so defines a category which we denote <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex></html:li>
  <html:li>In <fr:tex display="inline"><![CDATA[\mathsf {Cat}_{/\mathcal {C}}]]></fr:tex>, <fr:tex display="inline"><![CDATA[\overline {\operatorname {Free}(\mathcal {D}_0)} \rightrightarrows  \overline {\mathcal {D}_0} \to  \mathsf {SChart}(\mathcal {D}_0)]]></fr:tex> is a coequalizer diagram. In particular, <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> presents a Markov fibration if and only if <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex> is a Markov prefibration (in which case <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex> is the fibration it presents)</html:li>
  <html:li>If <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> has <fr:link href="/efr-YFV2/" title="Weak supports" uri="https://erischel.com/efr-YFV2/" display-uri="efr-YFV2" type="local">weak supports</fr:link>, <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex> is a prefibration</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>2025</fr:year><fr:month>4</fr:month><fr:day>5</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
<html:p>
  Recall that the fibration <fr:tex display="inline"><![CDATA[\operatorname {Free}(\mathcal {D}_0)]]></fr:tex> has fibers whose morphisms <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {X}']]></fr:tex> are given by tuples <fr:tex display="inline"><![CDATA[s: X \to  M: p,]]></fr:tex> <fr:tex display="inline"><![CDATA[p^*\bar {X} \to  p^*\bar {X}']]></fr:tex> (up to a certain equivalence relation). Forming the free Markov prefibration <fr:tex display="inline"><![CDATA[\overline {\operatorname {Free}(\mathcal {D}_0)}]]></fr:tex> on this fibration, we find that the morphisms are given by diagrams

  
  <html:figure><fr:resource hash="56fc109f1c681c74b721a5bb9fe98d7d"><fr:resource-content><html:img src="/56fc109f1c681c74b721a5bb9fe98d7d.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    & N \ar [d, "p"] & \\
    & M \ar [ld, "q"] \ar [rd, "r"] \ar [u, bend left=30] & \\
    X \ar [ur, bend left=30] & & Y
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>


  equipped with a map <fr:tex display="inline"><![CDATA[\phi : p^*q^*\bar {X} \to  p^*r^*\bar {Y}]]></fr:tex>. The two maps <fr:tex display="inline"><![CDATA[\overline {\operatorname {Free}(\mathcal {D}_0)} \to  \overline {\mathcal {D}_0}]]></fr:tex> carry such a thing to first, the map resulting from forgetting <fr:tex display="inline"><![CDATA[M]]></fr:tex> and just composing <fr:tex display="inline"><![CDATA[q,r]]></fr:tex> with <fr:tex display="inline"><![CDATA[p]]></fr:tex> to get a span (and composing the sections to get a new section), and secondly, the map with apex <fr:tex display="inline"><![CDATA[M]]></fr:tex> obtained by using the stochastic module structure to push <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex> down into a map over <fr:tex display="inline"><![CDATA[M]]></fr:tex>. It is clear that this is equivalently the equation described in the theorem. This establishes points 1. and 2., since by <fr:link href="/efr-L7L2/" title="https://erischel.com/efr-L7L2/" uri="https://erischel.com/efr-L7L2/" display-uri="efr-L7L2" type="local">Lemma <fr:contextual-number uri="https://erischel.com/efr-L7L2/" display-uri="efr-L7L2" /></fr:link> we can compute such coequalizers hom-set by hom-set.
</html:p>
<html:p>
  Now we wish to prove that <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex> is a Markov prefibration given weak supports. Since by the coequalizer presentation, its deterministic part is isomorphic to <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex>, the fibration property is automatic. It remains to verify that, given a triangle
  
  <html:figure><fr:resource hash="80ceffa4893b63c9d684e66e96a5e227"><fr:resource-content><html:img src="/80ceffa4893b63c9d684e66e96a5e227.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    & Z\ar [d]\\
    X \ar [r] \ar [ru] & Y
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> with the vertical and horizontal maps deterministic, an object <fr:tex display="inline"><![CDATA[\bar {A} \in  \mathcal {D}_{0,Y}]]></fr:tex> and Cartesian maps <fr:tex display="inline"><![CDATA[\bar {A}_X \to  \bar {A} \leftarrow  \bar {A}_Z]]></fr:tex>, there exists a unique lift <fr:tex display="inline"><![CDATA[\bar {A}_X \to  \bar {A}_Z]]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex>.
</html:p>
<html:p>
  Such a lift is given by a diagram
  
  <html:figure><fr:resource hash="16633b474b25e23143ed3986c9bf1621"><fr:resource-content><html:img src="/16633b474b25e23143ed3986c9bf1621.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    & M \ar [ld, "p"] \ar [rd, "q" ] &\\
    X \ar [ru, bend left=30] & & Z\\ 
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  equipped with <fr:tex display="inline"><![CDATA[p^*\bar {A}_X \to  q^*\bar {A}_Z]]></fr:tex>. By taking the equalizer of the two maps <fr:tex display="inline"><![CDATA[M \to  Y]]></fr:tex> (the section factors over this), we may assume these two are equal, which implies that the pulled-back objects are equal---denote this object <fr:tex display="inline"><![CDATA[\bar {A}_M]]></fr:tex>. Now the hypothesis is that after postcomposing with the Cartesian map <fr:tex display="inline"><![CDATA[\bar {A}_Z \to  \bar {A},]]></fr:tex> this gives the map <fr:tex display="inline"><![CDATA[\bar {A}_X \to  \bar {A}]]></fr:tex>. This postcomposition is given simply by postcomposing the leg <fr:tex display="inline"><![CDATA[M \to  Z]]></fr:tex> with the map <fr:tex display="inline"><![CDATA[Z \to  Y]]></fr:tex> (and observing that, by functoriality of pullbacks, this does not alter the pulled-back object). Then the claim is that integrating this map <fr:tex display="inline"><![CDATA[\bar {A}_M \to  \bar {A}_M]]></fr:tex> down into a map <fr:tex display="inline"><![CDATA[\bar {A}_X \to  \bar {A}_X,]]></fr:tex> it gives the identity. But by assumption this means we can pull back to some object <fr:tex display="inline"><![CDATA[M' \to  M]]></fr:tex> (lifting the section from <fr:tex display="inline"><![CDATA[X]]></fr:tex>) where the two maps are already equal to the identity. But this pull-back can be applied to the original map <fr:tex display="inline"><![CDATA[\bar {A}_X \to  \bar {A}_Z]]></fr:tex> as well. But this implies every such map is equal to the one represented by the diagram 

  
  <html:figure><fr:resource hash="c017698b29cf0612c4e797913f0b87f0"><fr:resource-content><html:img src="/c017698b29cf0612c4e797913f0b87f0.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    & X \otimes  Y \ar [ld] \ar [rd] & \\
    X \ar [ur] & & Y
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>


  and the identity on <fr:tex display="inline"><![CDATA[\bar {A}_{X \otimes  Y},]]></fr:tex> with the map <fr:tex display="inline"><![CDATA[M' \to  X \otimes  Y]]></fr:tex> giving the witness, since identities pull back. This map only depends on the underlying <fr:tex display="inline"><![CDATA[X \to  Y,]]></fr:tex> hence <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex> is indeed a prefibration.
</html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
                <html:p>
  It is not apparent whether weak supports are necessary for <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex> to be a prefibration. We have not found any counterexample, but in general the equivalence relation on charts is fairly complicated, so it is not apparent how to prove the necessity. We will generally not be too bothered about assuming weak supports instead of the more nebulous assumption that <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> presents a Markov fibration.
</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>2025</fr:year>
                      <fr:month>9</fr:month>
                      <fr:day>13</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-26SF/</fr:uri>
                    <fr:display-uri>efr-26SF</fr:display-uri>
                    <fr:route>/efr-26SF/</fr:route>
                    <fr:taxon>Lemma</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[(M,\phi )]]></fr:tex> and <fr:tex display="inline"><![CDATA[(N,\psi )]]></fr:tex> be two representatives of charts.
  Given some possibly stochastic map <fr:tex display="inline"><![CDATA[f: M \to  N]]></fr:tex> over <fr:tex display="inline"><![CDATA[X]]></fr:tex> and <fr:tex display="inline"><![CDATA[Y]]></fr:tex>, recall (<fr:link href="/efr-VF6V/" title="https://erischel.com/efr-VF6V/" uri="https://erischel.com/efr-VF6V/" display-uri="efr-VF6V" type="local">Lemma <fr:contextual-number uri="https://erischel.com/efr-VF6V/" display-uri="efr-VF6V" /></fr:link>) that we can define <fr:tex display="inline"><![CDATA[f^*\psi ]]></fr:tex>, regardless of whether <fr:tex display="inline"><![CDATA[f]]></fr:tex> is deterministic or the section of a deterministic map. If there exists such a map <fr:tex display="inline"><![CDATA[f]]></fr:tex>, we can always factor it over the pullback <fr:tex display="inline"><![CDATA[M \times _{X \times  Y} N]]></fr:tex> as a section followed by a deterministic map. Hence the equivalence relation defining <fr:tex display="inline"><![CDATA[\mathsf {SChart}]]></fr:tex> is equivalent to the relation identifying two representatives whenever there exists such an <fr:tex display="inline"><![CDATA[f]]></fr:tex> with <fr:tex display="inline"><![CDATA[f^*\psi  = \phi ]]></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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>29</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-XZRN/</fr:uri>
                    <fr:display-uri>efr-XZRN</fr:display-uri>
                    <fr:route>/efr-XZRN/</fr:route>
                    <fr:taxon>Remark</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  By construction, for each Markov prefibration <fr:tex display="inline"><![CDATA[\mathcal {D},]]></fr:tex> there is a canonical functor <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}|_\mathrm {det}) \to  \mathcal {D}]]></fr:tex> over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, which restricts to an isomorphism on the deterministic part (and in particular preserves Cartesian morphisms). <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> is a Markov fibration if and only if this is an isomorphism.
</html:p>
                    <html:p>
  Also by construction, given a morphism of stochastic modules <fr:tex display="inline"><![CDATA[F: \mathcal {D}_0 \to  \mathcal {D}_0',]]></fr:tex> there is an induced functor <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}) \to  \mathsf {SChart}(\mathcal {D}')]]></fr:tex> over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. This restricts to <fr:tex display="inline"><![CDATA[F]]></fr:tex> on the deterministic part and in particular preserves Cartesian morphisms.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>27</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-1YS9/</fr:uri>
                    <fr:display-uri>efr-1YS9</fr:display-uri>
                    <fr:route>/efr-1YS9/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> be a stochastic module fibration. Then <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> presents a Markov fibration if and only if <fr:tex display="inline"><![CDATA[\mathcal {D}_0^\mathrm {fop}]]></fr:tex> does it. 
</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>2025</fr:year><fr:month>4</fr:month><fr:day>27</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Consider a triangle of this for in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>:
  
  <html:figure><fr:resource hash="e5d5ab972658d3ed2a558521e77e7975"><fr:resource-content><html:img src="/e5d5ab972658d3ed2a558521e77e7975.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    & Y \ar [d]\\
    X \ar [ur, "f"] \ar [r] & Z
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  where the maps to <fr:tex display="inline"><![CDATA[Z]]></fr:tex> are deterministic. Suppose given Cartesian lifts <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {Z}, \bar {Y} \to  \bar {Z}]]></fr:tex> of the cospan. These are the same in both cases, coming from Cartesian maps in <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \mathcal {D}_0^\mathrm {fop}]]></fr:tex> (which are the same). We must show that there is a unique lift of <fr:tex display="inline"><![CDATA[f]]></fr:tex> to a chart in <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex> if and only if there is a unique lift to a chart in <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0^\mathrm {fop})]]></fr:tex>. Clearly it suffices to prove the "only if" implication, so suppose <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex> is a prefibration.
  </html:p>
  <html:p>
    By passing to the equalizer as in the proof that <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}_0}]]></fr:tex> is a prefibration, we may assume that any such lift is represented by a diagram
    
  <html:figure><fr:resource hash="2e385df99eca54aa98b20e847174380d"><fr:resource-content><html:img src="/2e385df99eca54aa98b20e847174380d.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
      \begin {tikzcd}
      M \ar [r] \ar [d] & Y \ar [d]\\
      X \ar [u, bend left=20, "f'"] \ar [ur] \ar [r] & Z
      \end {tikzcd}
    ]]></fr:resource-source></fr:resource></html:figure>

    where the outer square and the triangle <fr:tex display="inline"><![CDATA[X \to  M \to  Y]]></fr:tex> commutes, and <fr:tex display="inline"><![CDATA[f']]></fr:tex> is a section.
  </html:p>
  <html:p>
    Take such a diagram and let <fr:tex display="inline"><![CDATA[\phi : \bar {Z}_M \to  \bar {Z}_M]]></fr:tex> be the map representing a chart. Then the claim is there exists some zig-zag of chart equivalences identifying <fr:tex display="inline"><![CDATA[(M,\phi )]]></fr:tex> with <fr:tex display="inline"><![CDATA[(M,1)]]></fr:tex>. But clearly this is invariant under passing to the fiberwise opposite, and so <fr:tex display="inline"><![CDATA[\mathcal {D}^\mathrm {fop}]]></fr:tex> is also a prefibration.
  </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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-ANBC/</fr:uri>
                    <fr:display-uri>efr-ANBC</fr:display-uri>
                    <fr:route>/efr-ANBC/</fr:route>
                    <fr:title text="Stochastic charts and lenses">Stochastic charts and lenses</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  We refer to <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex> as the category of <html:em>stochastic charts</html:em> in <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex>. We refer to <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0^\mathrm {fop})]]></fr:tex> as <html:em>stochastic lenses</html:em> and denote it also <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathcal {D}_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>2025</fr:year>
                      <fr:month>3</fr:month>
                      <fr:day>28</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-IAFO/</fr:uri>
                    <fr:display-uri>efr-IAFO</fr:display-uri>
                    <fr:route>/efr-IAFO/</fr:route>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p><fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex> is a Markov fibration. We have already seen that it is a Markov prefibration, and that the map from the coreflection is full. So it suffices to prove faithfulness.
  Consider a map in <fr:tex display="inline"><![CDATA[{Kl(\Delta )^\to |_\mathrm {det}}]]></fr:tex>, given by a diagram

</html:p>
                    <html:p>
                      <html:figure>
                        <fr:resource hash="1ec160d52144793fd672289a6c3930b8">
                          <fr:resource-content>
                            <html:img src="/1ec160d52144793fd672289a6c3930b8.svg" />
                          </fr:resource-content>
                          <fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source>
                          <fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    \bar {X} \ar [d] \ar [r, bend right=20] & M \times _X \bar {X} \ar [l] \ar [r] \ar [d] & \bar {Y} \ar [d]\\
    X \ar [r, bend right=20] & M \ar [l] \ar [r] & Y
    \end {tikzcd}
  ]]></fr:resource-source>
                        </fr:resource>
                      </html:figure>
                    </html:p>
                    <html:p>
  We can factor the section <fr:tex display="inline"><![CDATA[X \to  M]]></fr:tex> as <fr:tex display="inline"><![CDATA[X \to  X \times  Y \to  M]]></fr:tex>, where the first map is just the pairing and the second is a conditional distribution.
  This induces a factorization of the lift <fr:tex display="inline"><![CDATA[\bar {X} \to  M \times _X \bar {X}]]></fr:tex> over <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {X} \times  Y]]></fr:tex>. By composing the map <fr:tex display="inline"><![CDATA[M \times _X \bar {X} \to  \bar {Y}]]></fr:tex> with this factorization to build the map <fr:tex display="inline"><![CDATA[\bar {X} \times  Y \to  \bar {Y}]]></fr:tex>, we have found a new representative for the same map.
</html:p>
                    <html:p>
  Hence every map over <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> has a representative where the residual is <fr:tex display="inline"><![CDATA[X \times  Y]]></fr:tex>. We would like to argue that, since the map <fr:tex display="inline"><![CDATA[\bar {X} \times  Y \to  \bar {Y}]]></fr:tex> is given by the conditional distribution of the composite map <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {Y},]]></fr:tex> it is uniquely determined by it, and thus if two distinct maps in <fr:tex display="inline"><![CDATA[\overline {Kl(\Delta )^\to |_\mathrm {det}}]]></fr:tex> have the same underlying map in <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ,]]></fr:tex> they must have equal representatives of this form, and so be identified in the coreflection (which must therefore be isomorphic to <fr:tex display="inline"><![CDATA[Kl(\Delta )^\to ]]></fr:tex>). But of course, the two maps may only be <html:em>almost certainly</html:em> equal.
</html:p>
                    <html:p>
  In this case, there is a simple fix: instead of taking <fr:tex display="inline"><![CDATA[X \times  Y]]></fr:tex> as the residual, take the subset <fr:tex display="inline"><![CDATA[S]]></fr:tex> given by those pairs <fr:tex display="inline"><![CDATA[(x,y)]]></fr:tex> where <fr:tex display="inline"><![CDATA[y]]></fr:tex> has positive probability given <fr:tex display="inline"><![CDATA[x]]></fr:tex>. The pairing factors over this, of course, and two maps <fr:tex display="inline"><![CDATA[\bar {X} \times _X S \to  \bar {Y}]]></fr:tex> which give the same distribution <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {Y}]]></fr:tex> really must have the same value on every point. This proves that <fr:tex display="inline"><![CDATA[\mathsf {SChart}(Kl(\Delta )^\to ) \to  (Kl(\Delta ))^\to ]]></fr:tex> is faithful and hence an isomorphism.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-C5RE/</fr:uri>
                    <fr:display-uri>efr-C5RE</fr:display-uri>
                    <fr:route>/efr-C5RE/</fr:route>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p><fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}^\to ]]></fr:tex>, as we have noted, is a Markov prefibration, and hence induces a stochastic module structure on <fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}^\to |_\mathrm {det}]]></fr:tex>. This structure does not present a Markov fibration. To see this, note that in that case its fiberwise opposite would also present a Markov fibration. Then this fibration, <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathsf {BorelStoch}^\to |_\mathrm {det})]]></fr:tex>, would be a prefibration whose deterministic part was <fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}^\to |_\mathrm {det}^\mathrm {fop}]]></fr:tex>. But <fr:link href="/efr-8B5X/" title="https://erischel.com/efr-8B5X/" uri="https://erischel.com/efr-8B5X/" display-uri="efr-8B5X" type="local">Example <fr:contextual-number uri="https://erischel.com/efr-8B5X/" display-uri="efr-8B5X" /></fr:link> shows that this is impossible.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-8SXB/</fr:uri>
                    <fr:display-uri>efr-8SXB</fr:display-uri>
                    <fr:route>/efr-8SXB/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a Markov category with supports. Then the stochastic module induced by <fr:tex display="inline"><![CDATA[\mathcal {C}^\to  \to  \mathcal {C}]]></fr:tex> presents a Markov fibration. If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> has conditionals, this Markov fibration is isomorphic to <fr:tex display="inline"><![CDATA[\mathcal {C}^\to ]]></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>2025</fr:year><fr:month>4</fr:month><fr:day>6</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
<html:p>
  Given a section <fr:tex display="inline"><![CDATA[s: X \to  M:p]]></fr:tex> and <fr:tex display="inline"><![CDATA[\phi : A \times _X M \to  A \times _X A]]></fr:tex>, simply take the pullback to the support of <fr:tex display="inline"><![CDATA[s]]></fr:tex>. It must be the case that <fr:tex display="inline"><![CDATA[\phi (a,m) = (a,m)]]></fr:tex> <fr:tex display="inline"><![CDATA[s]]></fr:tex>-almost surely, which implies strict equality on the support. Hence by <fr:link href="/efr-TBZZ/" title="Construction of \mathsf {SChart}(\mathcal {D}_0)" uri="https://erischel.com/efr-TBZZ/" display-uri="efr-TBZZ" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-TBZZ/" display-uri="efr-TBZZ" /></fr:link>, <fr:tex display="inline"><![CDATA[\mathcal {C}^\to ]]></fr:tex> presents a Markov fibration.
</html:p>
<html:p>
  There is an induced map <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {C}^\to |_\mathrm {det}) \to  \mathcal {C}^\to ]]></fr:tex>, which we claim is an isomorphism. So consider a map in <fr:tex display="inline"><![CDATA[\mathcal {C}^\to ]]></fr:tex>:
  
  
  <html:figure><fr:resource hash="cfa47088a80c102ed79b40c0a5f3652a"><fr:resource-content><html:img src="/cfa47088a80c102ed79b40c0a5f3652a.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
      \bar {X} \ar [r] \ar [d] & \bar {Y}\ar [d]\\
      X \ar [r] & Y.
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>


  This map is in the image of
  
  <html:figure><fr:resource hash="0018a8fa104b5b3fde1cca0a8a0c14fd"><fr:resource-content><html:img src="/0018a8fa104b5b3fde1cca0a8a0c14fd.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
      \bar {X} \ar [r, bend left=30] \ar [d] & \bar {X} \times  Y \ar [r] \ar [d] & \bar {Y} \ar [d]\\
      X \ar [r, bend left= 30] & X \times  Y \ar [l] \ar [r] & Y,
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  where the map <fr:tex display="inline"><![CDATA[\bar {X} \times  Y \to  \bar {Y}]]></fr:tex> is taken to be a conditional. Note that every map in <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {C}^\to |_\mathrm {det})]]></fr:tex> can be represented in this form, by taking a conditional of <fr:tex display="inline"><![CDATA[M]]></fr:tex> given <fr:tex display="inline"><![CDATA[Y]]></fr:tex> to build a section to <fr:tex display="inline"><![CDATA[M \to  X \otimes  Y]]></fr:tex>. Since conditionals are almost-surely equal, by restricting to the support of <fr:tex display="inline"><![CDATA[X \to  X \otimes  Y]]></fr:tex>, we can find a representative which only depends on the overall map <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {Y},]]></fr:tex> which proves that the map from <fr:tex display="inline"><![CDATA[\mathsf {SChart}]]></fr:tex> is faithful, concluding the proof.

</html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
                <html:p>
  Continuing from <fr:link href="/efr-CJTH/" title="Markov prefibrations over Cartesian base" uri="https://erischel.com/efr-CJTH/" display-uri="efr-CJTH" type="local">Example <fr:contextual-number uri="https://erischel.com/efr-CJTH/" display-uri="efr-CJTH" /></fr:link>, we have the following trivial case: 
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>8</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-Z75A/</fr:uri>
                    <fr:display-uri>efr-Z75A</fr:display-uri>
                    <fr:route>/efr-Z75A/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is Cartesian (even if it does not admit pullbacks), the definition of Markov fibration over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> still makes sense, the Markov fibrations are exactly the Grothendieck fibrations, and their fiberwise opposites are simply their fiberwise opposites in the usual sense.
</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>2025</fr:year><fr:month>4</fr:month><fr:day>8</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    This is trivial because <fr:tex display="inline"><![CDATA[\mathsf {MarkPreFib}(\mathcal {C}) \to  \mathsf {Fib}(\mathcal {C}_\mathrm {det} = \mathcal {C})]]></fr:tex> is simply the identity functor, hence it is monadic (with the identity monad,) hence every fibration/prefibration presents a Markov fibration, namely itself, and is in particular a Markov fibration. The fiberwise opposite is simply given by applying the identity (taking the stochastic module on the deterministic part), taking the fiberwise opposite, then applying the identity again (passing to the presented markov fibration).
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
                <html:p>
  It is worth noting that, even in the case where <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0^\mathrm {fop})]]></fr:tex> is not a prefibration, it may still deserve the name "stochastic lenses". For example the stochastic lenses in <fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}]]></fr:tex> can be seen to contain <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathsf {BorelStoch})]]></fr:tex> as a full subcategory, even though it does not form a Markov fibration (see <fr:link href="/efr-K6NM/" title="https://erischel.com/efr-K6NM/" uri="https://erischel.com/efr-K6NM/" display-uri="efr-K6NM" type="local">Theorem <fr:contextual-number uri="https://erischel.com/efr-K6NM/" display-uri="efr-K6NM" /></fr:link> below).
</html:p>
                <html:p>
  Part of the motivation for the theory of dependent optics is to identify a category of stochastic optics which admits all coproducts. If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is distributive, <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C})]]></fr:tex> satisfies <fr:tex display="inline"><![CDATA[\binom {A}{X} + \binom {A}{Y} = \binom {A}{X+Y},]]></fr:tex> but this coproduct fails to exist in general if the two secondary objects are distinct. The idea is that this coproduct <fr:tex display="inline"><![CDATA[\binom {A}{X} + \binom {A'}{Y}]]></fr:tex> should exist as a family indexed by <fr:tex display="inline"><![CDATA[X + Y]]></fr:tex>, where <fr:tex display="inline"><![CDATA[E_x = A]]></fr:tex> for <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex>, and <fr:tex display="inline"><![CDATA[E_y = A']]></fr:tex> for <fr:tex display="inline"><![CDATA[y \in  Y]]></fr:tex>. Our theory accommodates this example under the mild additional hypothesis of <html:em>extensiveness</html:em></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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-B2P7/</fr:uri>
                    <fr:display-uri>efr-B2P7</fr:display-uri>
                    <fr:route>/efr-B2P7/</fr:route>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  A Markov category is said to be an <html:em>extensive Markov category</html:em> if it admits finite coproducts, whose injections are deterministic, and which satisfy the following equivalent conditions:
</html:p>
                    <html:ol><html:li>If we let <fr:tex display="inline"><![CDATA[\mathcal {C}_{/a}^\mathrm {det}]]></fr:tex> refer to the full subcategory of the slice spanned by the deterministic morphism <fr:tex display="inline"><![CDATA[x \to  a]]></fr:tex>, we have an equivalence of categories <fr:tex display="inline"><![CDATA[\mathcal {C}_{/a}^\mathrm {det} \times  \mathcal {C}_{/b}^\mathrm {det} \cong  \mathcal {C}_{/a + b}^\mathrm {det}]]></fr:tex>, given by taking coproducts</html:li>
  <html:li><fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> is an extensive category in the usual sense and the inclusion <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det} \to  \mathcal {C}]]></fr:tex> preserves pullbacks along coproduct inclusions.</html:li></html:ol>
                  </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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>6</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-QAV2/</fr:uri>
                    <fr:display-uri>efr-QAV2</fr:display-uri>
                    <fr:route>/efr-QAV2/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be an extensive Markov category, let <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \to  \mathcal {C}_\mathrm {det}]]></fr:tex> be a fibration which satisfies <fr:tex display="inline"><![CDATA[\mathcal {D}_{0,X+Y} = \mathcal {D}_{0,X} \times  \mathcal {D}_{0,Y}]]></fr:tex>. Note that this implies <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> admits finite coproducts, and they're given exactly by this pairing. Suppose <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> is equipped with a stochastic module structure. Then <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \hookrightarrow  \mathsf {SChart}(\mathcal {D}_0)]]></fr:tex> preserves the finite coproducts. In particular, <fr:tex display="inline"><![CDATA[\mathcal {D}_0^\mathrm {fop}]]></fr:tex> has the same coproducts as <fr:tex display="inline"><![CDATA[\mathcal {D}_0,]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathcal {D}_0^\mathrm {fop} \to  \mathsf {SLens}(\mathcal {D}_0)]]></fr:tex> preserves them 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>2025</fr:year><fr:month>4</fr:month><fr:day>6</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    This is straightforward to check---the residual <fr:tex display="inline"><![CDATA[M \to  X_1 + X_2]]></fr:tex> splits into <fr:tex display="inline"><![CDATA[M_1 + M_2]]></fr:tex> by extensivity of <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, which also implies the section must split as the copairing of a section <fr:tex display="inline"><![CDATA[s_1: X_1 \to  M_1, s_2: X_2 \to  M_2]]></fr:tex>. By the condition on the fibration, the map in the fiber over <fr:tex display="inline"><![CDATA[M]]></fr:tex> splits into a map over <fr:tex display="inline"><![CDATA[M_1]]></fr:tex> and a map over <fr:tex display="inline"><![CDATA[M_2]]></fr:tex>. Using the extensivity again, it is straightforward to see that this decomposition respects the equivalence relation. 
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
                <html:p>
  In particular, <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {C}^\to |_\mathrm {det}), \mathsf {SLens}(\mathcal {C}^\to |_\mathrm {det})]]></fr:tex> both admit coproducts given simply as coproducts in <fr:tex display="inline"><![CDATA[\mathcal {C}^\to ]]></fr:tex>, if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is extensive.
</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>2025</fr:year>
                      <fr:month>3</fr:month>
                      <fr:day>29</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-XFAO/</fr:uri>
                    <fr:display-uri>efr-XFAO</fr:display-uri>
                    <fr:route>/efr-XFAO/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Suppose <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> is a Markov fibration so that each pullback functor <fr:tex display="inline"><![CDATA[f^*: \mathcal {D}_Y \to  \mathcal {D}_X]]></fr:tex> for <fr:tex display="inline"><![CDATA[f: X \to  Y \in  \mathcal {C}_\mathrm {det}]]></fr:tex> can be taken to be bijective on objects, and that these can furthermore be chosen strictly functorial (so that <fr:tex display="inline"><![CDATA[(fg)^* = g^*f^*]]></fr:tex>). Then, writing objects <fr:tex display="inline"><![CDATA[\bar {X} \in  \mathcal {D}_X]]></fr:tex> as <fr:tex display="inline"><![CDATA[\binom {A \in  \mathcal {D}_*}{X \in  \mathcal {C}},]]></fr:tex> where <fr:tex display="inline"><![CDATA[A]]></fr:tex> is the unique object in <fr:tex display="inline"><![CDATA[\mathcal {D}_*]]></fr:tex> which pulls back to <fr:tex display="inline"><![CDATA[\bar {X}]]></fr:tex> under the deletion <fr:tex display="inline"><![CDATA[X \to  *,]]></fr:tex> (note that this means <fr:tex display="inline"><![CDATA[f^*\binom {A}{Y} = \binom {A}{X}]]></fr:tex>) we may characterize the fiberwise dual as having hom-sets
  <fr:tex display="block"><![CDATA[\mathcal {D}^{\mathrm {fop}}(\binom {A}{X},\binom {B}{Y}) = \mathcal {D}(\binom {B}{X},\binom {A}{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>2025</fr:year><fr:month>3</fr:month><fr:day>29</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    The correspondence in both directions is obvious by just formally reversing the direction of the map <fr:tex display="inline"><![CDATA[f: \binom {A}{M} \to  \binom {B}{M}]]></fr:tex> in a representing tuple <fr:tex display="inline"><![CDATA[X \leftarrow  M \to  Y, a: X \to  M, f]]></fr:tex>---the fact that this assignment respects the equivalence relation follows from the fact that the monad preserves fiberwise opposites.
  </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>2025</fr:year>
                  <fr:month>4</fr:month>
                  <fr:day>8</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-HWAZ/</fr:uri>
                <fr:display-uri>efr-HWAZ</fr:display-uri>
                <fr:route>/efr-HWAZ/</fr:route>
                <fr:title text="
  Limits of Markov fibrations
">
  Limits of Markov fibrations
</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  The class of fibrations is stable under pullback. This turns <fr:tex display="inline"><![CDATA[\mathsf {Fib}(-)]]></fr:tex> into an indexed category, which represents a fibration over <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex>---this is the "global" category of fibrations <fr:tex display="inline"><![CDATA[\mathsf {Fib}]]></fr:tex>, whose objects are fibrations <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C},]]></fr:tex> and whose morphisms are commutative squares

  
  <html:figure><fr:resource hash="8c7acc7648a9e407cdf11812bfe9c61b"><fr:resource-content><html:img src="/8c7acc7648a9e407cdf11812bfe9c61b.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    \mathcal {D} \ar [r] \ar [d] & \mathcal {D}' \ar [d]\\
    \mathcal {C} \ar [r] & \mathcal {C}'
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>


  where the top map preserves Cartesian morphisms.
</html:p>
                <html:p>
  By considering universal constructions like limits and colimits in <fr:tex display="inline"><![CDATA[\mathsf {Fib}]]></fr:tex>, additional fibrations can be constructed. It would similarly be useful to study limits in the category of Markov fibrations. Moreover, the products in <fr:tex display="inline"><![CDATA[\mathsf {Fib}]]></fr:tex> allow one to express notions of internal pseudomonoid---these turn out to be <html:em>monoidal fibrations</html:em>, and this is a key part of Moeller and Vasilakopoulou's treatment of the monoidal Grothendieck construction, <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>. Since we want to study monoidal Markov fibrations, we should study their limits.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>9</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-9VAH/</fr:uri>
                    <fr:display-uri>efr-9VAH</fr:display-uri>
                    <fr:route>/efr-9VAH/</fr:route>
                    <fr:taxon>Lemma</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> be a Markov prefibration, and let <fr:tex display="inline"><![CDATA[F: \mathcal {C}' \to  \mathcal {C}]]></fr:tex> be any functor from another Markov category which preserves deterministic maps. Then the pullback <fr:tex display="inline"><![CDATA[\mathcal {D}' = \mathcal {D} \times _{\mathcal {C}} \mathcal {C}' \to  \mathcal {C}']]></fr:tex> is again a Markov prefibration, and the functor <fr:tex display="inline"><![CDATA[\mathcal {D}' \to  \mathcal {D}]]></fr:tex> preserves Cartesian maps.
</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>2025</fr:year><fr:month>4</fr:month><fr:day>9</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
<html:p>
  Since pullbacks compose, <fr:tex display="inline"><![CDATA[\mathcal {D}'|_\mathrm {det} \to  \mathcal {C}'_\mathrm {det}]]></fr:tex> is the pullback of <fr:tex display="inline"><![CDATA[\mathcal {D}|_\mathrm {det}]]></fr:tex> along <fr:tex display="inline"><![CDATA[\mathcal {C}'_\mathrm {det} \to  \mathcal {C}_\mathrm {det}]]></fr:tex>. Since fibrations are stable under pullback, this is a fibration.
</html:p>
<html:p>
  Now consider a triangle in <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex>:
</html:p>
<html:p><html:figure><fr:resource hash="9a66b4b1d181f43c0431a7485501a919"><fr:resource-content><html:img src="/9a66b4b1d181f43c0431a7485501a919.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
  \begin {tikzcd}
  & A \ar [d]\\
  X \ar [ur, "f"] \ar [r] & B,
  \end {tikzcd}
]]></fr:resource-source></fr:resource></html:figure></html:p>
<html:p>
  with <fr:tex display="inline"><![CDATA[X, A \to  B]]></fr:tex> deterministic, and let <fr:tex display="inline"><![CDATA[\bar {B}_X \to  \bar {B} \leftarrow  \bar {B}_A]]></fr:tex> be Cartesian maps lying over these. We must show there is a unique lift <fr:tex display="inline"><![CDATA[\bar {f}: \bar {B}_X \to  \bar {B}_A]]></fr:tex> rendering the lifted triangle commutative. By definition, to give such a morphism is to given one over <fr:tex display="inline"><![CDATA[F(f)]]></fr:tex>, and the triangle commutes if and only if its image in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> commutes.
</html:p>
<html:p>
  The triangle in <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex> goes to a triangle of the same class in <fr:tex display="inline"><![CDATA[\mathcal {C},]]></fr:tex> and the Cartesian maps go to Cartesian maps of the same type. Hence there is a unique lift of <fr:tex display="inline"><![CDATA[F(f)]]></fr:tex> of the given type, which is exactly what we needed to show.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>9</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-Z8X4/</fr:uri>
                    <fr:display-uri>efr-Z8X4</fr:display-uri>
                    <fr:route>/efr-Z8X4/</fr:route>
                    <fr:taxon>Remark</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Given any functor <fr:tex display="inline"><![CDATA[F: \mathcal {C} \to  \mathcal {C}']]></fr:tex> between Markov categories, we may attempt to define an oplax monoidal structure <fr:tex display="inline"><![CDATA[F(X \otimes  Y) \to  F(X) \otimes  F(Y)]]></fr:tex> by pairing the projections.
</html:p>
                    <html:p>
  This is not necessarily a natural transformation. However, if it is, <fr:tex display="inline"><![CDATA[F]]></fr:tex> it automatically equips <fr:tex display="inline"><![CDATA[F]]></fr:tex> with the structure of an oplax monoidal functor. Recall that oplax monoidal functors carry comonoids to comonoids. An oplax monoidal functor between Markov categories preserves the given comonoids if and only if it is induced like this.
</html:p>
                    <html:p>
  Hence, there is at most one way to equip a functor between Markov categories with such a structure---it is a property, not extra structure. Call such a functor an <html:em>oplax Markov functor</html:em>. Note that oplax Markov functors preserve deterministic morphisms.
</html:p>
                    <html:p>
  (Fritz <fr:link href="/fritz-synthetic-markov-cats/" title="A synthetic approach to Markov kernels, conditional independence and theorems on sufficient statistics" uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" type="local">Reference <fr:contextual-number uri="https://erischel.com/fritz-synthetic-markov-cats/" display-uri="fritz-synthetic-markov-cats" /></fr:link> defines a <html:em>Markov functor</html:em> to be a <html:em>strong</html:em> monoidal functor which preserves the comonoids. Clearly this is a proper subset of our oplax markov functors.)
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>9</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-FNYQ/</fr:uri>
                    <fr:display-uri>efr-FNYQ</fr:display-uri>
                    <fr:route>/efr-FNYQ/</fr:route>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  We will denote by <fr:tex display="inline"><![CDATA[\mathsf {MarkPreFib}]]></fr:tex> the category whose objects are Markov prefibrations <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex>,
  and whose functors are commutative squares
  
  <html:figure><fr:resource hash="23e380a862b3e63f7e216c068b883739"><fr:resource-content><html:img src="/23e380a862b3e63f7e216c068b883739.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    \mathcal {D} \ar [r,"\bar {F}"] \ar [d] & \mathcal {D}'\ar [d]\\
    \mathcal {C} \ar [r, "F"] & \mathcal {C}'
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  where <fr:tex display="inline"><![CDATA[\bar {F}]]></fr:tex> preserves Cartesian maps, and <fr:tex display="inline"><![CDATA[F]]></fr:tex> is an oplax Markov functor.
</html:p>
                    <html:p>
  We will let <fr:tex display="inline"><![CDATA[\mathsf {Markov}^\mathrm {oplax}]]></fr:tex> denote the category of Markov categories and oplax Markov functors. Note that by <fr:link href="/efr-9VAH/" title="https://erischel.com/efr-9VAH/" uri="https://erischel.com/efr-9VAH/" display-uri="efr-9VAH" type="local">Lemma <fr:contextual-number uri="https://erischel.com/efr-9VAH/" display-uri="efr-9VAH" /></fr:link>, the forgetful functor <fr:tex display="inline"><![CDATA[\mathsf {MarkPreFib} \to  \mathsf {Markov}^\mathrm {oplax}]]></fr:tex> is a fibration.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  There is an obvious functor <fr:tex display="inline"><![CDATA[\mathsf {MarkPreFib} \to  \mathsf {Fib} \times _\mathsf {Cat} \mathsf {Markov}^\mathrm {oplax},]]></fr:tex> which carries a prefibration to the pair of its Markov category and its underlying fibration onto the deterministic part. On each fiber, this admits a left adjoint, as constructed in <fr:link href="/efr-GO6R/" title="Free Markov Prefibrations" uri="https://erischel.com/efr-GO6R/" display-uri="efr-GO6R" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-GO6R/" display-uri="efr-GO6R" /></fr:link>. By abstract nonsense these left adjoints commute <html:em>laxly</html:em> with the pullbacks---that is, given an oplax Markov functor <fr:tex display="inline"><![CDATA[f: \mathcal {C} \to  \mathcal {C}']]></fr:tex> and a map of fibrations <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {D}']]></fr:tex> over the deterministic part, there is an induced functor <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}} \to  \overline {\mathcal {D}'}]]></fr:tex> over <fr:tex display="inline"><![CDATA[f]]></fr:tex>, although this assignment does not preserve Cartesian squares.
</html:p>
                <html:p>
  However this does give a functor <fr:tex display="inline"><![CDATA[\mathsf {Fib} \times _\mathsf {Cat} \mathsf {Markov}^\mathrm {oplax} \to  \mathsf {MarkPreFib}]]></fr:tex>, left adjoint to the restriction. The category of algebras over this monad is fibred over <fr:tex display="inline"><![CDATA[\mathsf {Markov}^\mathrm {oplax},]]></fr:tex> with each fiber being the category of stochastic modules over that markov category, and we get a global functor from <fr:tex display="inline"><![CDATA[\mathsf {MarkPreFib}]]></fr:tex>. In the same way, we get a global functor <fr:tex display="inline"><![CDATA[\mathsf {SChart}(-)]]></fr:tex> to <fr:tex display="inline"><![CDATA[\mathsf {Cat}^\to ]]></fr:tex> which carries each stochastic module <fr:tex display="inline"><![CDATA[\mathcal {D}_0 \to  \mathcal {C}_\mathrm {det} \to  \mathcal {C}]]></fr:tex> to the functor <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0) \to  \mathcal {C}]]></fr:tex></html:p>
                <html:p>
  We would like to study the limits in here. At this point, we are forced to consider for a moment a bit of higher category theory. Structures on a category defined "up to isomorphism" generally don't play well together with limits in the category <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex>, since they are defined "up to equality". For example, we cannot infer from the fact that <fr:tex display="inline"><![CDATA[\mathcal {C},\mathcal {D}]]></fr:tex> have products and the functors <fr:tex display="inline"><![CDATA[F,G: \mathcal {C} \rightrightarrows  \mathcal {D}]]></fr:tex> preserve them that the equalizer of <fr:tex display="inline"><![CDATA[F,G]]></fr:tex> has products, since given <fr:tex display="inline"><![CDATA[A,B]]></fr:tex> in the equalizer, we have <fr:tex display="inline"><![CDATA[F(A \times  B) \cong  G(A \times  B)]]></fr:tex>, but not necessarily equality!
</html:p>
                <html:p>
  For the moment we will restrict ourselves to limits of <html:em>strict</html:em> (and in particular, strong) monoidal Markov functors, since these always exist. In general one should probably consider some form of homotopy limit, but we will not go into that now. We clearly have:
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>9</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-OMMA/</fr:uri>
                    <fr:display-uri>efr-OMMA</fr:display-uri>
                    <fr:route>/efr-OMMA/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathsf {Markov}_s \subseteq  \mathsf {Markov}^\mathrm {oplax}]]></fr:tex> denote the subcategory of <html:em>strictly monoidal</html:em> Markov functors (i.e those where the oplaxator <fr:tex display="inline"><![CDATA[F(X \otimes  Y) \to  F(X) \otimes  F(Y)]]></fr:tex> is the <html:em>identity</html:em>).
</html:p>
                    <html:ol><html:li><fr:tex display="inline"><![CDATA[\mathsf {Markov}_s]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathsf {Markov}^\mathrm {oplax}]]></fr:tex> admit all products, computed simply as products in <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex>.
  </html:li>
  <html:li><fr:tex display="inline"><![CDATA[\mathsf {Markov}_s]]></fr:tex> admits all finite limits, and these are preserved by the inclusion into <fr:tex display="inline"><![CDATA[\mathsf {Markov}^\mathrm {oplax}]]></fr:tex></html:li></html:ol>
                  </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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>11</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-G0AN/</fr:uri>
                    <fr:display-uri>efr-G0AN</fr:display-uri>
                    <fr:route>/efr-G0AN/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  The category <fr:tex display="inline"><![CDATA[\mathsf {MarkPreFib}(\mathcal {C})]]></fr:tex> admits all products, and pullbacks along isofibrations. These are simply computed as limits in <fr:tex display="inline"><![CDATA[\mathsf {Cat}_{/\mathcal {C}}]]></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>2025</fr:year><fr:month>4</fr:month><fr:day>11</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    It is immediately apparent that products (that is, pullbacks over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>) of prefibrations are again prefibrations, since the Cartesian lifts can simply be computed coordinatewise, and the uniqueness property checked coordinatewise.
  </html:p>
  <html:p>
    Let <fr:tex display="inline"><![CDATA[\mathcal {D} \times _\mathcal {E} \mathcal {D}']]></fr:tex> be a pullback of Markov prefibrations, with <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {E}]]></fr:tex> an isofibration. (Note that their pullback in <fr:tex display="inline"><![CDATA[\mathsf {Cat}_{/\mathcal {C}}]]></fr:tex> is simply their pullback in <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex>). First note that since limits commute, the deterministic part is given by <fr:tex display="inline"><![CDATA[\mathcal {D}_\mathrm {det} \times _{\mathcal {E}_\mathrm {det}} \mathcal {D}'_\mathrm {det}]]></fr:tex>. Thus to prove this is a fibration, it suffices to note that fibrations are stable under pullback along isofibrations. Given <fr:tex display="inline"><![CDATA[f: X \to  Y \in  \mathcal {C}]]></fr:tex> and two lifts <fr:tex display="inline"><![CDATA[\bar {Y},\bar {Y}']]></fr:tex> which are identified in <fr:tex display="inline"><![CDATA[\bar {E},]]></fr:tex> we get two Cartesian lifts <fr:tex display="inline"><![CDATA[f^*\bar {Y} \to  \bar {Y}, f^*\bar {Y}' \to  \bar {Y}']]></fr:tex>. These go to two Cartesian lifts in <fr:tex display="inline"><![CDATA[\mathcal {E}]]></fr:tex>, and are therefore identified <html:em>up to isomorphism,</html:em> but we can lift this isomorphism to <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> and obtain a pair of lifts in the strict pullback---this is a Cartesian lift.
  </html:p>
  <html:p>
    Since Cartesian lifts are given by pointwise Cartesian lifts, given a triangle <fr:tex display="inline"><![CDATA[X \to  Y \leftarrow  Z]]></fr:tex> and a stochastic lift <fr:tex display="inline"><![CDATA[X \to  Y,]]></fr:tex> we have a unique lift in both <fr:tex display="inline"><![CDATA[\mathcal {D}, \mathcal {D}']]></fr:tex>. These both go to lifts in <fr:tex display="inline"><![CDATA[\mathcal {E}]]></fr:tex>---since such a lift is also unique, they are identified. Hence there is a unique lift in the pullback.
  </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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>10</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-FXBP/</fr:uri>
                    <fr:display-uri>efr-FXBP</fr:display-uri>
                    <fr:route>/efr-FXBP/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  The functor <fr:tex display="inline"><![CDATA[\overline {(-)}: \mathsf {Fib} \times _\mathsf {Cat} \mathsf {Markov}^\mathrm {oplax} \to  \mathsf {MarkPreFib}]]></fr:tex> preserves products. 
</html:p><html:p>
  For each Markov category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> with weak conditionals, <fr:tex display="inline"><![CDATA[\overline {(-)}: \mathsf {Fib}(\mathcal {C}_\mathrm {det}) \to  \mathsf {MarkPreFib}(\mathcal {C})]]></fr:tex> preserves the terminal object, and pullbacks along isofibrations.
</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>2025</fr:year><fr:month>4</fr:month><fr:day>10</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    The product-preservation is clear from the description of <fr:tex display="inline"><![CDATA[\overline {(-)}]]></fr:tex>. Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> admit weak conditionals. It suffices to show that <fr:tex display="inline"><![CDATA[\overline {(-)}]]></fr:tex> preserves the terminal object and pullbacks in <fr:tex display="inline"><![CDATA[\mathsf {Fib}(\mathcal {C}_\mathrm {det})]]></fr:tex></html:p>
  <html:p>
    The terminal fibration is <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det} \to  \mathcal {C}_\mathrm {det}]]></fr:tex>. Clearly the terminal Markov prefibration is <fr:tex display="inline"><![CDATA[\mathcal {C} \to  \mathcal {C},]]></fr:tex> so we must show that <fr:tex display="inline"><![CDATA[\overline {\mathcal {C}_\mathrm {det}} \to  \mathcal {C}]]></fr:tex> is an isomorphism.
  </html:p>
  <html:p>
    Its morphisms are simply spans <fr:tex display="inline"><![CDATA[X \leftarrow  M \to  Y]]></fr:tex> with the left leg equipped with a stochastic section <fr:tex display="inline"><![CDATA[s:X \to  M]]></fr:tex>, which goes to the composite <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex>. As noted before, this is clearly <html:em>full,</html:em> by taking <fr:tex display="inline"><![CDATA[M = X \otimes  Y]]></fr:tex>, and faithful because the pairing <fr:tex display="inline"><![CDATA[M \to  X \otimes  Y]]></fr:tex> exhibits the equality of this canonical representative with any other.
  </html:p>
  <html:p>
    Now let <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {E} \leftarrow  \mathcal {D}']]></fr:tex> be a cospan of fibrations over <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex>, with <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {E}]]></fr:tex> an isofibration, and consider the pullback <fr:tex display="inline"><![CDATA[\mathcal {D} \times _\mathcal {E} \mathcal {D}']]></fr:tex>. There is a natural transformation
    <fr:tex display="block"><![CDATA[\overline {\mathcal {D} \times _\mathcal {E} \mathcal {D}'} \to  \overline {\mathcal {D}} \times _{\overline {\mathcal {E}}} \overline {\mathcal {D}'}]]></fr:tex>
    which we must show to be an isomorphism.
  </html:p>
  <html:p>
    Maps on the left-hand side are given by a span <fr:tex display="inline"><![CDATA[X \leftarrow  M \to  Y]]></fr:tex>, a stochastic section <fr:tex display="inline"><![CDATA[X \to  M]]></fr:tex>, and a map in the pullback of the fibers <fr:tex display="inline"><![CDATA[\mathcal {D}_M \times _{\mathcal {E}_M} \mathcal {D}'_M]]></fr:tex>. A map on the right-hand side is given by two spans each equipped with a map, so that they become identified in <fr:tex display="inline"><![CDATA[\overline {\mathcal {E}}]]></fr:tex>. Let the apexes of the two spans be <fr:tex display="inline"><![CDATA[M, M']]></fr:tex>. It suffices to consider the case of a span <fr:tex display="inline"><![CDATA[M \leftarrow  K \to  M']]></fr:tex> with a common lifting <fr:tex display="inline"><![CDATA[X \to  K]]></fr:tex>, so that the pullbacks of the two maps to <fr:tex display="inline"><![CDATA[\mathcal {E}_K]]></fr:tex> agree. But then the original maps may also be pulled back to have <fr:tex display="inline"><![CDATA[K]]></fr:tex> as the underlying span, and thus are in the completion of the pullback.
  </html:p>
  <html:p>
    Similarly, given two maps which become identified in the image, we can again use the identifying maps in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> to identify the original maps, proving faithfulness. This finishes 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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>29</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-TZ9L/</fr:uri>
                    <fr:display-uri>efr-TZ9L</fr:display-uri>
                    <fr:route>/efr-TZ9L/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  For any (pullback-positive) <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, the monad <fr:tex display="inline"><![CDATA[\overline {(-)}|_\mathrm {det}]]></fr:tex> on <fr:tex display="inline"><![CDATA[\mathsf {Fib}(\mathcal {C}_\mathrm {det})]]></fr:tex> preserves products.
</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>2025</fr:year><fr:month>4</fr:month><fr:day>29</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    There is a canonical map <fr:tex display="inline"><![CDATA[\overline {\mathcal {D} \times _\mathcal {C} \mathcal {D}'}|_\mathrm {det} \to  \bar {\mathcal {D}}|_\mathrm {det} \times _\mathcal {C} \bar {\mathcal {D}}|_\mathrm {det}]]></fr:tex>. Clearly the deterministic parts are both isomorphic to <fr:tex display="inline"><![CDATA[\mathcal {D} \times _\mathcal {C} \mathcal {D}']]></fr:tex>, and so on this part it is an isomorphism---in particular, bijective on objects. To see it is full, consider an morphism in the codomain, given by a pair of maps <fr:tex display="inline"><![CDATA[M', M \to  X]]></fr:tex>, sections <fr:tex display="inline"><![CDATA[s: X \to  M, s': X\to  M',]]></fr:tex> and maps <fr:tex display="inline"><![CDATA[\phi  ,\phi ']]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathcal {D}_M, \mathcal {D}'_{M'}]]></fr:tex>. Then this pair is equivalent to <fr:tex display="inline"><![CDATA[M \times _X M']]></fr:tex> equipped with the pairing <fr:tex display="inline"><![CDATA[\langle  s,s' \rangle : X \to  M \times _X M']]></fr:tex> and the pullbacks of <fr:tex display="inline"><![CDATA[\phi ,\phi ']]></fr:tex>, which is in the image. Given two maps <fr:tex display="inline"><![CDATA[M \to  N, M' \to  N']]></fr:tex> witnessing equations with another pair of maps, it's easy to see that this lifts to a map <fr:tex display="inline"><![CDATA[M \times _X M' \to  N \times _X N']]></fr:tex> witnessing the identity between these, so it's faithful. This 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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>11</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-UF7B/</fr:uri>
                    <fr:display-uri>efr-UF7B</fr:display-uri>
                    <fr:route>/efr-UF7B/</fr:route>
                    <fr:taxon>Lemma</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  The property of having weak supports is stable under equalizers in stochastic module fibrations over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> has weak conditionals, it is also stable under finite products (hence all finite limits).
</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>2025</fr:year><fr:month>4</fr:month><fr:day>11</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    (Note that stochastic modules themselves do not admit all finite limits, requiring some sort of isofibration property---we merely claim here that if the limit exists, it again admits weak supports)
  </html:p>
  <html:p>
    It is clear that the terminal object <fr:tex display="inline"><![CDATA[1_\mathcal {C}: \mathcal {C} \to  \mathcal {C}]]></fr:tex> has weak supports (regardless of <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>).
    Given an equalizer <fr:tex display="inline"><![CDATA[\mathcal {E} \hookrightarrow  \mathcal {D} \rightrightarrows  \mathcal {D}']]></fr:tex>, if <fr:tex display="inline"><![CDATA[M \to  X]]></fr:tex> is a deterministic map with a stochastic section and <fr:tex display="inline"><![CDATA[\phi : \bar {X}_M \to  \bar {X}_M]]></fr:tex> is a map in <fr:tex display="inline"><![CDATA[\mathcal {E}_M]]></fr:tex> which goes to the identity in <fr:tex display="inline"><![CDATA[\mathcal {E}_X]]></fr:tex>, find a factorization <fr:tex display="inline"><![CDATA[X \to  N \to  M]]></fr:tex> so that the image in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> pulls back to the identity over <fr:tex display="inline"><![CDATA[N]]></fr:tex>. Then clearly the same is true for <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex> itself.
  </html:p>
  <html:p>
    Now consider a product <fr:tex display="inline"><![CDATA[\mathcal {D} \times _{\mathcal {C}} \mathcal {D}']]></fr:tex>. The point is that given a pair of maps that go to the identity, we can find <fr:tex display="inline"><![CDATA[N_0 \to  M, N_1 \to  M]]></fr:tex> where the pullbacks are the identity. We form the pullback <fr:tex display="inline"><![CDATA[N_0 \times _M N_1,]]></fr:tex> and use the weak conditionals to find a common lift of the two given sections to this. This gives the required weak supports.
  </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>2025</fr:year>
                  <fr:month>4</fr:month>
                  <fr:day>26</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-LTEL/</fr:uri>
                <fr:display-uri>efr-LTEL</fr:display-uri>
                <fr:route>/efr-LTEL/</fr:route>
                <fr:title text="Monoidal Markov Fibrations">Monoidal Markov Fibrations</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  Recall that if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is symmetric monoidal, <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C})]]></fr:tex> inherits a symmetric monoidal structure. At the same time, if <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> is a monoidal fibration, the fiberwise opposite retains a monoidal structure. Since these monoidal structures play an important role both in compositional game theory (where it would not be much of an exaggeration to say the entire point is to use string diagrammatic syntax to work with games) and in categorical systems theory, it is clearly important to understand the monoidal structure on Markov fibrations. Luckily, as we will see in this section, there are essentially no difficulties in accounting for the monoidal structure.
</html:p>
                <html:p>
  The theory of monoidal fibrations has been developed by Moeller and Vasilakopoulou, <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>, and Shulman <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>. We briefly sketch it here for convenience. There are essentially two available notions of monoidal fibration:
</html:p>
                <html:ol><html:li>
    For any category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, the 2-category <fr:tex display="inline"><![CDATA[\mathsf {Fib}(\mathcal {C})]]></fr:tex> admits products, and we can ask for an internal pseudomonoid in this 2-category. This is equivalent to asking for a functor <fr:tex display="inline"><![CDATA[\mathcal {C}^\mathrm {op} \to  \mathsf {MonCat}]]></fr:tex>---in other words, for a monoidal structure on each fiber so that the base-change functors become (strong) monoidal.
  </html:li>
  <html:li>
    The global category of fibrations <fr:tex display="inline"><![CDATA[\mathsf {Fib}]]></fr:tex> admits products, and we may ask for an internal pseudomonoid here. This is what Shulman calls a monoidal fibration: a fibration where <fr:tex display="inline"><![CDATA[\mathcal {D}, \mathcal {C}]]></fr:tex> both come equipped with monoidal structures, the fibration is a <html:em>strict</html:em> monoidal functor, and Cartesian maps are stable under monoidal product.
  </html:li></html:ol>
                <html:p>
  By a result of Moeller and Vasilakopoulou, these notions coincide in the case where <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is Cartesian monoidal. Since we are only interested in ordinary fibrations over <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det},]]></fr:tex> which is indeed Cartesian, we may apply this result. However, our notion of monoidal Markov fibration will be a modified version of the latter.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>25</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-CSLQ/</fr:uri>
                    <fr:display-uri>efr-CSLQ</fr:display-uri>
                    <fr:route>/efr-CSLQ/</fr:route>
                    <fr:title text="Monoidal markov prefibration">Monoidal markov prefibration</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  A <html:em>monoidal Markov prefibration</html:em> is a markov prefibration <fr:tex display="inline"><![CDATA[p: \mathcal {D} \to  \mathcal {C}]]></fr:tex> equipped with a monoidal category structure on <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> so that <fr:tex display="inline"><![CDATA[p]]></fr:tex> is <html:em>strict</html:em> monoidal and so that the underlying fibration is a monoidal fibration (i.e so that <fr:tex display="inline"><![CDATA[p]]></fr:tex> preserves Cartesian lifts).
</html:p>
                    <html:p>
  A <html:em>braided</html:em> or <html:em>symmetric</html:em> monoidal Markov prefibration is a monoidal prefibration equipped with a braiding or symmetry on <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> so that <fr:tex display="inline"><![CDATA[p]]></fr:tex> is moreover a braided monoidal functor.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  Note that a monoidal Markov prefibration is the same thing as an internal pseudomonoid in the global category of prefibrations. We will not delve further into this point, however.
</html:p>
                <html:p>
  We will need this lemma:
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>26</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-7GH5/</fr:uri>
                    <fr:display-uri>efr-7GH5</fr:display-uri>
                    <fr:route>/efr-7GH5/</fr:route>
                    <fr:taxon>Lemma</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[F,G: \mathcal {C}' \rightrightarrows  \mathcal {C}]]></fr:tex>, <fr:tex display="inline"><![CDATA[S: \mathcal {C} \to  \mathcal {C}']]></fr:tex> be a reflexive pair of identity-on-objects, strict monoidal functors.
  Let <fr:tex display="inline"><![CDATA[E: \mathcal {C} \to  \mathcal {D}]]></fr:tex> be the coequalizer in <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex>. Then <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> inherits a monoidal structure making <fr:tex display="inline"><![CDATA[E]]></fr:tex> strict monoidal.
  Moreover, if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is symmetric or braided, <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> inherits this structure making <fr:tex display="inline"><![CDATA[E]]></fr:tex> a braided functor.
</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>2025</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 only thing to check is that the equivalence relation on morphisms is stable under tensoring. But this is clear: let <fr:tex display="inline"><![CDATA[f : X \to  Y \in  \mathcal {C}', g: A \to  B \in  \mathcal {C}]]></fr:tex>.
  Then <fr:tex display="inline"><![CDATA[f \otimes  S(g)]]></fr:tex> witnesses the identification of <fr:tex display="inline"><![CDATA[F(f) \otimes  g]]></fr:tex> and <fr:tex display="inline"><![CDATA[G(f) \otimes  g]]></fr:tex>. Tensoring on the right is analogous. This finishes the proof for the monoidal structure.
</html:p>
<html:p>
  In the braided or symmetric case, it is clear that the image of the braiding of <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> becomes a braiding on <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> it clearly satisfies the coherence equations (being a quotient), and naturality follows by simply choosing representatives and noting that the tensor in <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> is defined by tensoring representatives in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. Finally if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is symmetric clearly the equation <fr:tex display="inline"><![CDATA[\sigma _{A,B}\sigma _{B,A} = 1]]></fr:tex> passes to <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>. 
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>25</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-85DX/</fr:uri>
                    <fr:display-uri>efr-85DX</fr:display-uri>
                    <fr:route>/efr-85DX/</fr:route>
                    <fr:taxon>Theorem</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:ol><html:li>
    The free prefibration monad on <fr:tex display="inline"><![CDATA[\mathsf {Fib}(\mathcal {C}_\mathrm {det})]]></fr:tex> has a canonical lifting to <fr:tex display="inline"><![CDATA[\mathsf {MonFib}(\mathcal {C}_\mathrm {det})]]></fr:tex></html:li>
  <html:li>
    Given a monoidal prefibration, its underlying stochastic module acquires the structure of an algebra of this lifted monad.
  </html:li>
  <html:li>
    Given an algebra for the lifted monad <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex>, <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0)]]></fr:tex> acquires a monoidal structure so that <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0) \to  \mathcal {C}]]></fr:tex> is a strict monoidal functor.
  </html:li>
  <html:li>
    If <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> moreover has weak supports, this forgetful functor is a monoidal prefibration.
  </html:li>
  <html:p>
    Every statement holds also for braided or symmetric fibrations.
  </html:p></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>2025</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>By <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>, <fr:tex display="inline"><![CDATA[\mathsf {MonFib}(\mathcal {C}_\mathrm {det})]]></fr:tex> is equivalent to the category of pseudomonoids in <fr:tex display="inline"><![CDATA[\mathsf {Fib}(\mathcal {C}_det)]]></fr:tex>. Since the monad preserves products, it must preserve pseudomonoids, which is all we need.</html:p>
  <html:p>Now suppose <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> is a monoidal prefibration. Then its underlying fibration is a monoidal fibration, hence an object of <fr:tex display="inline"><![CDATA[\mathsf {MonFib}(\mathcal {C}_\mathrm {det})]]></fr:tex>. The claim is that the functor <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}|_\mathrm {det}}|_\mathrm {det} \to  \mathcal {D}|_\mathrm {det}]]></fr:tex> is monoidal. The induced monoidal structure is given on objects by <fr:tex display="inline"><![CDATA[\otimes _\mathcal {D}]]></fr:tex> and takes a pair of morphisms in the fiber represented by sections <fr:tex display="inline"><![CDATA[(s: X \to  M, \phi : \bar {X_0}_M) \to  \bar {X_1}_M]]></fr:tex> and <fr:tex display="inline"><![CDATA[s': X \to  M', \phi ': \bar {X'_0}_M \to  \bar {X'_1}_M]]></fr:tex> to <fr:tex display="inline"><![CDATA[\langle  s,s' \rangle  : X \to  M \times _X M', \pi _M^*\phi  \otimes _\mathcal {D} \pi _{M'}^*\phi ']]></fr:tex>. Recalling that the algebra structure is defined by taking <fr:tex display="inline"><![CDATA[(s,\phi )]]></fr:tex> to the composite <fr:tex display="inline"><![CDATA[\bar {X_0} \to  \bar {X_0}_M \xrightarrow {\phi } \bar {X_1}_M \to  \bar {X_1},]]></fr:tex> and chasing the below diagram around, it is apparent that the algebra structure preserves the monoidal structure.
  </html:p>
  <html:p><html:figure><fr:resource hash="4bcd814d2389eff897d3addf7d09ab26"><fr:resource-content><html:img src="/4bcd814d2389eff897d3addf7d09ab26.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    & M\times _X M' \ar [dr] \ar [dl] & \\
    M \ar [dr] \ar [ur, bend left=20] & & M' \ar [dl] \ar [ul, bend right=20]\\
    & X \ar [ur, bend right=20] \ar [ul, bend left=20]
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure></html:p>
  <html:p>
    Now let <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> be a monoidal stochastic module in this sense. It suffices to show that the free prefibration <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}_0}]]></fr:tex> is a monoidal prefibration, by <fr:link href="/efr-7GH5/" title="https://erischel.com/efr-7GH5/" uri="https://erischel.com/efr-7GH5/" display-uri="efr-7GH5" type="local">Lemma <fr:contextual-number uri="https://erischel.com/efr-7GH5/" display-uri="efr-7GH5" /></fr:link>, and the induced functor <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0) \to  \mathcal {C}]]></fr:tex> will clearly be strict monoidal if <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}_0} \to  \mathcal {C}]]></fr:tex> is.
  </html:p>
  <html:p>
    To construct this monoidal structure on <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex>, simply note that since <fr:tex display="inline"><![CDATA[\overline {(-)}]]></fr:tex> preserves global limits as well, there is an induced monoidal structure on <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}_0}]]></fr:tex> so that the forgetful functor is strict monoidal. Recalling that the Cartesian lifts of <fr:tex display="inline"><![CDATA[f: X \to  Y \in  \mathcal {C}]]></fr:tex> to <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}_0}]]></fr:tex> are given by the span <fr:tex display="inline"><![CDATA[X = X \to  Y]]></fr:tex> and the morphism <fr:tex display="inline"><![CDATA[1_{f^*\bar {Y}}]]></fr:tex>, it is easy to see by unwinding the definition that these are stable under tensor.
  </html:p>
  <html:p>
    If <fr:tex display="inline"><![CDATA[\mathcal {D}_0]]></fr:tex> has weak supports, we have already proven that <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0) \to  \mathcal {C}]]></fr:tex> is a strict monoidal functor, and weak supports are equivalent to the claim that it is a prefibration. Since the Cartesian lifts are just the equivalence classes of the Cartesian lifts in <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}_0},]]></fr:tex> the preceding claim that they are stable under tensor implies the same for <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}_0),]]></fr:tex> finishing the proof.
  </html:p>
  <html:p>
    The last point is mostly trivial. The product preservation still establishes the lifting to <fr:tex display="inline"><![CDATA[\mathsf {BrMonFib}(\mathcal {C}_\mathrm {det})]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathsf {SymMonFib}(\mathcal {C}_\mathrm {det})]]></fr:tex>. Given a braided or symmetric monoidal prefibration, the braidings are Cartesian and in the deterministic part, so the underlying fibration is braided/symmetric and they are preserves by the stochastic module structure. The braiding/symmetry on <fr:tex display="inline"><![CDATA[\mathsf {SChart}]]></fr:tex> follows again from <fr:link href="/efr-7GH5/" title="https://erischel.com/efr-7GH5/" uri="https://erischel.com/efr-7GH5/" display-uri="efr-7GH5" type="local">Lemma <fr:contextual-number uri="https://erischel.com/efr-7GH5/" display-uri="efr-7GH5" /></fr:link>, and there is nothing to show for the last point.
  </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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>26</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-T9F4/</fr:uri>
                    <fr:display-uri>efr-T9F4</fr:display-uri>
                    <fr:route>/efr-T9F4/</fr:route>
                    <fr:title text="Monoidal Markov fibration">Monoidal Markov fibration</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>A <html:em>monoidal Markov fibration</html:em> is a monoidal prefibration <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> which is a Markov fibration. It is <html:em>braided</html:em> or <html:em>symmetric</html:em> if it is braided or symmetric as a prefibration</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>26</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-KMX6/</fr:uri>
                    <fr:display-uri>efr-KMX6</fr:display-uri>
                    <fr:route>/efr-KMX6/</fr:route>
                    <fr:taxon>Remark</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Since <fr:tex display="inline"><![CDATA[\overline {(-)}]]></fr:tex> preserves both global products and fiberwise ones, it induces both a fiberwise monoidal structure and a "global" monoidal structure on <fr:tex display="inline"><![CDATA[\overline {\mathcal {D}_0}]]></fr:tex>. Here we only use the global one. If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> were Cartesian, the global one would be induced from the local one by, given maps <fr:tex display="inline"><![CDATA[\bar {X_1} \to  \bar {X_2}, \bar {Y_1} \to  \bar {Y_2},]]></fr:tex> pulling each of them back along the square
  
  <html:figure><fr:resource hash="fb0d1cfb8a11b6dde83c1ba486eb2d64"><fr:resource-content><html:img src="/fb0d1cfb8a11b6dde83c1ba486eb2d64.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    X_1 \otimes  Y_1 \ar [d] \ar [r] & X_2 \otimes  Y_2 \ar [d]\\
    X_1 \ar [r]& X_2
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  (and the analogous one for <fr:tex display="inline"><![CDATA[Y]]></fr:tex>) and tensoring them over <fr:tex display="inline"><![CDATA[X_1\otimes  Y_1]]></fr:tex>. In a Markov prefibration, of course, these pullbacks are not unique unless <fr:tex display="inline"><![CDATA[X_1 \to  X_2]]></fr:tex> is deterministic, but there are "canonical" lifts given by tensoring globally with the (fiberwise) unit map over <fr:tex display="inline"><![CDATA[Y_1 \to  Y_2]]></fr:tex>, and the global tensor is indeed given by the tensor of these canonical lifts (this doesn't provide a noncircular definition of the global tensor, of course). This provides a consistency relation between the two tensor products. Again, we will not dwell on this point.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>30</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-P4T0/</fr:uri>
                    <fr:display-uri>efr-P4T0</fr:display-uri>
                    <fr:route>/efr-P4T0/</fr:route>
                    <fr:title text="Markov structure on stochastic charts">Markov structure on stochastic charts</fr:title>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> be a monoidal stochastic module fibration over <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> and suppose each fiber <fr:tex display="inline"><![CDATA[\mathcal {D}_X]]></fr:tex> is a Markov category, and this structure is preserved by the pullback functors <fr:tex display="inline"><![CDATA[f^*]]></fr:tex>.
  Then <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D})]]></fr:tex> carries the structure of a Markov category, so that <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {D}) \to  \mathcal {C}]]></fr:tex> is a Markov functor.
</html:p><html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}]]></fr:tex> is a Markov prefibration which is also a strict Markov functor, the induced monoidal structure on <fr:tex display="inline"><![CDATA[\mathcal {D}|_\mathrm {det}]]></fr:tex> acquires a fiberwise Markov structure.
</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>2025</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>
    Every equation in the definition of Markov category involves only deterministic maps, so this can be verified entirely over <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex>. Thus this reduces to the claim: given a monoidal fibration over a Cartesian base, if each fiber has a Markov structure, the global monoidal structure has one as well.
    Given an object <fr:tex display="inline"><![CDATA[\bar {X} = {\bar {X} \choose  X},]]></fr:tex> a map <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {X} \otimes  \bar {X}]]></fr:tex> is by definition a map <fr:tex display="inline"><![CDATA[f: X \to  X \otimes  X]]></fr:tex> plus a map <fr:tex display="inline"><![CDATA[\bar {X} \to  f^*(\bar {X} \otimes  \bar {X})]]></fr:tex>. Taking <fr:tex display="inline"><![CDATA[f]]></fr:tex> to be the copy map, the codomain there is by definition the monoidal product in the fiber <fr:tex display="inline"><![CDATA[\mathcal {D}_X,]]></fr:tex> and so we simply use the copying map of the fiberwise monoidal structure.
  </html:p>
  <html:p>
    Given a Markov structure on the total category <fr:tex display="inline"><![CDATA[\mathcal {D},]]></fr:tex> we simply apply this idea in reverse and take the map <fr:tex display="inline"><![CDATA[\bar {X} \to  \mathrm {copy}_X^*(\bar (X) \otimes  \bar {X}) =: \bar {X} \otimes _X \bar {X}]]></fr:tex> to be the copy map.
  </html:p>
  <html:p>
    The deletion maps can be handled in an analogous way.
  </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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>30</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-FT8J/</fr:uri>
                    <fr:display-uri>efr-FT8J</fr:display-uri>
                    <fr:route>/efr-FT8J/</fr:route>
                    <fr:taxon>Corollary</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> be a stochastic module fibration, and suppose each fiber has <html:em>coproducts,</html:em> and these are preserved by the pullback functors. Then <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathcal {D})]]></fr:tex> is a Markov category, with monoidal structure given by 
  <fr:tex display="block"><![CDATA[\binom {\bar {X}}{X} \& \binom {\bar {Y}}{Y} = \binom {\pi _X^*\bar {X} + \pi _Y^*\bar {Y}}{X \otimes  Y}]]></fr:tex></html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  The Markov structure of <fr:link href="/efr-FT8J/" title="https://erischel.com/efr-FT8J/" uri="https://erischel.com/efr-FT8J/" display-uri="efr-FT8J" type="local">Corollary <fr:contextual-number uri="https://erischel.com/efr-FT8J/" display-uri="efr-FT8J" /></fr:link> is a generalization of the fact that, if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> has products and coproducts, and the products distribute over the coproducts, then <fr:tex display="inline"><![CDATA[\mathsf {Lens}(\mathcal {C})]]></fr:tex> has products given by <fr:tex display="inline"><![CDATA[\binom {A}{X} \times  \binom {B}{Y} \cong  \binom {A \coprod  B}{X \times  Y}]]></fr:tex>. See eg <fr:link href="/hedges-morphisms-open-games/" title="Morphisms of Open Games" uri="https://erischel.com/hedges-morphisms-open-games/" display-uri="hedges-morphisms-open-games" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-morphisms-open-games/" display-uri="hedges-morphisms-open-games" /></fr:link>, section 8 for more on this.
</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>2025</fr:year>
                  <fr:month>4</fr:month>
                  <fr:day>28</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-IMLW/</fr:uri>
                <fr:display-uri>efr-IMLW</fr:display-uri>
                <fr:route>/efr-IMLW/</fr:route>
                <fr:title text="Examples">Examples</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  We have already noted several examples throughout. We'll gather a few more here, and also collect a few scattered throughout to make the picture more clear.
</html:p>
                <html:p>First, let us make explicit the example of optics, as strongly as it can be stated</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>28</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-A6YR/</fr:uri>
                    <fr:display-uri>efr-A6YR</fr:display-uri>
                    <fr:route>/efr-A6YR/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> act on <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex>. Then <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {C}(\mathcal {D}) := \mathsf {Optic}_\mathcal {C}(\mathcal {C},\mathcal {D})]]></fr:tex> has a functor to <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>. The deterministic part <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {C}(\mathcal {D})|_\mathrm {det}]]></fr:tex> admits the structure of a stochastic module fibration. There is an isomorphism <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {C}(\mathcal {D}) \to  \mathsf {SChart}(\mathsf {Optic}_\mathcal {C}(\mathcal {D})|_\mathrm {det})]]></fr:tex>. 
</html:p><html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> is itself symmetric monoidal and the action is symmetric (meaning it is given by <fr:tex display="inline"><![CDATA[M \cdot  A = F(M) \otimes  A]]></fr:tex> for some symmetric monoidal functor <fr:tex display="inline"><![CDATA[F: \mathcal {C} \to  \mathcal {D}]]></fr:tex>, see <fr:link href="/actegories-amthematician-capucci-gavranovic/" title="Actegories for the Working Amthematician" uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" type="local">Reference <fr:contextual-number uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" /></fr:link> 5.4.3 and 5.5.12), this stochastic module is symmetric monoidal and the isomorphism is an isomorphism of symmetric monoidal categories.
</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>2025</fr:year><fr:month>4</fr:month><fr:day>28</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    We have essentially already seen that the deterministic part <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {C}(\mathcal {D})|_\mathrm {det} \to  \mathcal {C}_\mathrm {det}]]></fr:tex> is a fibration, with maps <fr:tex display="inline"><![CDATA[{A \choose  X} \leftrightarrows  {B \choose  X}]]></fr:tex> over <fr:tex display="inline"><![CDATA[X]]></fr:tex> given by <fr:tex display="inline"><![CDATA[X \cdot  B \to  A]]></fr:tex>, and with the pullback functors acting by reparametrization. Since a map <fr:tex display="inline"><![CDATA[X \to  M \otimes  Y]]></fr:tex> with deterministic marginal on <fr:tex display="inline"><![CDATA[Y]]></fr:tex> is always equal to the independent pairing of <fr:tex display="inline"><![CDATA[X \to  M, X \to  Y,]]></fr:tex> we can slide the former through and identify each optic over a given <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> with a map <fr:tex display="inline"><![CDATA[X \times  B \to  A,]]></fr:tex> and note that this map is conversely an invariant of an optic, since it is obtained by postcomposing with <fr:tex display="inline"><![CDATA[{B \choose  Y} \to  {B \choose  *}]]></fr:tex>.
  </html:p>
  <html:p>
    Given <fr:tex display="inline"><![CDATA[M \to  X]]></fr:tex>, objects <fr:tex display="inline"><![CDATA[{A \choose  X}, {B \choose  X},]]></fr:tex> and a map over <fr:tex display="inline"><![CDATA[M]]></fr:tex> classified by <fr:tex display="inline"><![CDATA[M \cdot  B \to  A,]]></fr:tex> a section <fr:tex display="inline"><![CDATA[s :X \to  M]]></fr:tex> act by reparametrization. It is clear that this gives the structure of a stochastic module.
  </html:p>
  <html:p>
    The functor from optics takes <fr:tex display="inline"><![CDATA[f: X \to  M \otimes  Y, g: M \cdot  B \to  A]]></fr:tex> to the span <fr:tex display="inline"><![CDATA[X \leftarrow  M \otimes  X \otimes  Y \to  Y]]></fr:tex> equipped with the obvious map <fr:tex display="inline"><![CDATA[(M \otimes  X \otimes  Y) \cdot  B \to  A]]></fr:tex> that simply forgets <fr:tex display="inline"><![CDATA[X,Y]]></fr:tex>. Note that every chart is equivalent to one of this form (given <fr:tex display="inline"><![CDATA[X \leftarrow  M' \to  Y]]></fr:tex> and <fr:tex display="inline"><![CDATA[\phi : M' \cdot  B \to  A,]]></fr:tex> the map <fr:tex display="inline"><![CDATA[M' \to  M' \otimes  X \otimes  Y]]></fr:tex> exhibits the required equivalence), hence the functor is full.
  </html:p>
  <html:p>
    Moreover, note that each chart is associated with a well-defined optic, given by the maps <fr:tex display="inline"><![CDATA[X \to  M \to  M \otimes  Y, M \cdot  B \to  A]]></fr:tex>. Is is straightforward to see both of these maps are preserved by chart equivalence. This gives an inverse to the functor, proving it is faithful. Since it is identity on objects, this finishes the argument.
  </html:p>
  <html:p>
    In the symmetric monoidal case, it is immediately clear that the fibration on <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> is symmetric monoidal. Since the action is symmetric monoidal, given maps <fr:tex display="inline"><![CDATA[X \to  M, X \to  M']]></fr:tex> and <fr:tex display="inline"><![CDATA[M \cdot  B \to  A,]]></fr:tex> <fr:tex display="inline"><![CDATA[M' \cdot  B' \to  A',]]></fr:tex> it is clear that composing to get maps <fr:tex display="inline"><![CDATA[X \cdot  B \to  A, X \cdot  B' \to  A',]]></fr:tex> then tensoring and composing with the diagonal to get <fr:tex display="inline"><![CDATA[X \cdot  (B \otimes  B' ) \to  A \otimes  A',]]></fr:tex> gives the same map as tensoring, then using the map <fr:tex display="inline"><![CDATA[X \to  M \otimes  M']]></fr:tex>. Hence we have a symmetric monoidal module. It's straightforward to see the functor is symmetric monoidal, and that finishes the argument.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
                <html:p>Slightly orthogonally, we have the following comparison between <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathcal {C}^\to )]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C})]]></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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>28</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-K6NM/</fr:uri>
                    <fr:display-uri>efr-K6NM</fr:display-uri>
                    <fr:route>/efr-K6NM/</fr:route>
                    <fr:taxon>Theorem</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be any pullback-positive Markov category. Then <fr:tex display="inline"><![CDATA[\mathcal {C}^\to  \to  \mathcal {C}]]></fr:tex> is a Markov prefibration which thus induces a stochastic module structure on <fr:tex display="inline"><![CDATA[\mathcal {C}^\to |_\mathrm {det}]]></fr:tex>.
  Writing simply <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {C}), \mathsf {SLens}(\mathcal {C})]]></fr:tex> for <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {C}^\to |_\mathrm {det}), \mathsf {SLens}(\mathcal {C}^\to |_\mathrm {det})]]></fr:tex>, we have:
</html:p>
                    <html:ol><html:li>
    There is a functor <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C}) \to  \mathsf {SLens}(\mathcal {C}),]]></fr:tex> which is fully faithful. Dually there is a functor <fr:tex display="inline"><![CDATA[\mathsf {coOptic}(\mathcal {C}) \to  \mathsf {SChart}(\mathcal {C})]]></fr:tex> which is fully faithful.
  </html:li>
  <html:li><fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathcal {C})]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {C})]]></fr:tex> both admit symmetric monoidal structures, which make the functors <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {C}), \mathsf {SLens}(\mathcal {C}) \to  \mathcal {C}]]></fr:tex> strict symmetric monoidal, as well as the functors <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathcal {C}) \to  \mathsf {SLens}(\mathcal {C}), \mathsf {coOptic}(\mathcal {C}) \to  \mathsf {SChart}(\mathcal {C})]]></fr:tex> strong symmetric monoidal.
  </html:li>
  <html:li>
    If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is extensive, this functor preserves the coproducts <fr:tex display="inline"><![CDATA[{A \choose  X} + {A \choose  Y} = {A \choose  X+Y},]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {C}),\mathsf {SLens}(\mathcal {C})]]></fr:tex> both admit all finite coproducts.
  </html:li>
  <html:li>
    If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> moreover has conditionals and supports, <fr:tex display="inline"><![CDATA[\mathsf {SChart}(\mathcal {C}) = \mathcal {C}^\to ]]></fr:tex></html:li></html:ol>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  Thus we have our previous claim that <fr:tex display="inline"><![CDATA[\mathsf {SLens}(\mathsf {BorelStoch}^\to |_\mathrm {det})]]></fr:tex> contains <fr:tex display="inline"><![CDATA[\mathsf {Optic}(\mathsf {BorelStoch})]]></fr:tex>.
</html:p>
                <html:p>
  We also have some examples of an analytic flavor:
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>28</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-TO9K/</fr:uri>
                    <fr:display-uri>efr-TO9K</fr:display-uri>
                    <fr:route>/efr-TO9K/</fr:route>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Given a compact Hausdorff space <fr:tex display="inline"><![CDATA[X]]></fr:tex>, a <html:em>Banach space bundle</html:em> is a space over <fr:tex display="inline"><![CDATA[X]]></fr:tex>, <fr:tex display="inline"><![CDATA[V \to  X]]></fr:tex>, equipped with a fiberwise (complex) vector space structure <fr:tex display="inline"><![CDATA[+: V \times _X V \to  V]]></fr:tex>, <fr:tex display="inline"><![CDATA[\cdot : \mathbb {C} \times  V \to  V]]></fr:tex>, so that there exists a cover <fr:tex display="inline"><![CDATA[\{U_i\}]]></fr:tex> of <fr:tex display="inline"><![CDATA[X]]></fr:tex> so that for each <fr:tex display="inline"><![CDATA[U_i]]></fr:tex>, there exists a Banach space <fr:tex display="inline"><![CDATA[V_i]]></fr:tex> and a homeomorphism <fr:tex display="inline"><![CDATA[V \times _X U_i =: V_{U_i} \cong  V_i \times  U_i]]></fr:tex> over <fr:tex display="inline"><![CDATA[U_i,]]></fr:tex> which is moreover linear in each fiber, where <fr:tex display="inline"><![CDATA[V_i]]></fr:tex> is equipped with the norm topology.
</html:p>
                    <html:p>
  Note that this determines a <html:em>local</html:em> norm on each <fr:tex display="inline"><![CDATA[V_{U_i}]]></fr:tex> (and in particular each <fr:tex display="inline"><![CDATA[V_x]]></fr:tex>) up to equivalence (but no stricter than that). In particular each <fr:tex display="inline"><![CDATA[V_x]]></fr:tex> is a Banach space.
</html:p>
                    <html:p>
  A morphism of Banach space bundles is a continuous map <fr:tex display="inline"><![CDATA[f: V \to  W]]></fr:tex> over <fr:tex display="inline"><![CDATA[X]]></fr:tex> which is linear on each bundle. Note that this implies that on a suitable cover <fr:tex display="inline"><![CDATA[U_i,]]></fr:tex> the maps <fr:tex display="inline"><![CDATA[f: V_{U_i} \to  W_{U_i}]]></fr:tex> obey <fr:tex display="inline"><![CDATA[\left  \lVert  f(v) \right \rVert  \leq  C_i \left  \lVert  v \right \rVert ]]></fr:tex> for some <fr:tex display="inline"><![CDATA[C_i \in  \mathbb {R}]]></fr:tex>, for any local norms inducing the topologies, and hence by compactness there exists some <fr:tex display="inline"><![CDATA[C]]></fr:tex> so that <fr:tex display="inline"><![CDATA[\left  \lVert  f(v) \right \rVert  \leq  C \left  \lVert  v \right \rVert ]]></fr:tex> for each <fr:tex display="inline"><![CDATA[v]]></fr:tex>.
</html:p>
                    <html:p>
  If <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> is a continuous map, there is a pullback functor <fr:tex display="inline"><![CDATA[\mathsf {Ban}_Y \to  \mathsf {Ban}_X]]></fr:tex>. The Grothendieck construction of this gives a fibration <fr:tex display="inline"><![CDATA[\mathsf {BanBun} \to  \mathsf {CHaus}]]></fr:tex></html:p>
                    <html:p>
  Note that Tychonoff spaces include all compact Hausdorff spaces. Therfore consider the full subcategory <fr:tex display="inline"><![CDATA[\mathsf {CHausStoch} \hookrightarrow  \mathsf {TychStoch}]]></fr:tex> spanned by these. The fibration <fr:tex display="inline"><![CDATA[\mathsf {BanBun}]]></fr:tex> admits the structure of a stochastic module: given <fr:tex display="inline"><![CDATA[M \to  X]]></fr:tex>, <fr:tex display="inline"><![CDATA[s: X \to  M]]></fr:tex> a kernel, and a linear continuous map <fr:tex display="inline"><![CDATA[f: V \times _X M \to  W \times _X M,]]></fr:tex> given <fr:tex display="inline"><![CDATA[v \in  V_x,]]></fr:tex> there is an induced function <fr:tex display="inline"><![CDATA[M_x \to  W_x]]></fr:tex> given by <fr:tex display="inline"><![CDATA[f(v,-)]]></fr:tex>. Since this is bounded (being continuous on a compact space) it is (Bochner) integrable, define <fr:tex display="inline"><![CDATA[s^*f(v)]]></fr:tex> to be this integral.
</html:p>
                    <html:p>
  This example is analogous to optics for the action of categories of markov kernels on categories of vector spaces (as in <fr:link href="/efr-A6YR/" title="https://erischel.com/efr-A6YR/" uri="https://erischel.com/efr-A6YR/" display-uri="efr-A6YR" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-A6YR/" display-uri="efr-A6YR" /></fr:link>). Note that we do <html:em>not</html:em> expect this type of example to present a Markov fibration. The reason is simply that, given a parametrized linear map <fr:tex display="inline"><![CDATA[M \times  \mathbb {R}^n \to  \mathbb {R}^n]]></fr:tex> and a measure on <fr:tex display="inline"><![CDATA[M]]></fr:tex>, the fact that the expectation map <fr:tex display="inline"><![CDATA[\mathbb {R}^n \to  \mathbb {R}^n]]></fr:tex> is the identity by no means implies that the original map is almost surely the identity or anything like that. If <fr:tex display="inline"><![CDATA[(m,e_0) \mapsto  e_1]]></fr:tex> and <fr:tex display="inline"><![CDATA[m]]></fr:tex> has positive probability, this can be canceled out by <fr:tex display="inline"><![CDATA[(m',e_0) \mapsto  -e_1]]></fr:tex>. This is impossible for probability kernels. 
</html:p>
                    <html:p>
  If we add an assumption of positivity, it seems plausible that examples of this type will present Markov fibrations---but of course, that brings us quite close to categories of Markov kernels in any case.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  Note that, as in this example, we do not generally expect <fr:tex display="inline"><![CDATA[\mathsf {Optic}_\mathcal {C}(\mathcal {C},\mathcal {D})]]></fr:tex> to yield a Markov fibration if <fr:tex display="inline"><![CDATA[\mathcal {D}]]></fr:tex> is not another Markov category (and not even then in general, as the case of <fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}]]></fr:tex> shows).---for these, we expect to need a sort of positivity in the fiber as well, which restricts us to things that look like probability kernels.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>2</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-O6GQ/</fr:uri>
                    <fr:display-uri>efr-O6GQ</fr:display-uri>
                    <fr:route>/efr-O6GQ/</fr:route>
                    <fr:title text="Stochastic module of P-algebras">Stochastic module of <fr:tex display="inline"><![CDATA[P]]></fr:tex>-algebras</fr:title>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a representable, positive Markov category so that <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex> admits intersections and the probability monad <fr:tex display="inline"><![CDATA[P]]></fr:tex> preserves them.
  Then each slice <fr:tex display="inline"><![CDATA[(\mathcal {C}_\mathrm {det})_{/X}]]></fr:tex> inherits a monad structure given by <fr:tex display="inline"><![CDATA[P_X(B \to  X) = P(B) \times _{P(X)} X]]></fr:tex>. This is pseudofunctorial in <fr:tex display="inline"><![CDATA[X]]></fr:tex>. Moreover, the stochastic module structure on <fr:tex display="inline"><![CDATA[\mathcal {C}^\to |_\mathrm {det}]]></fr:tex> extends to a stochastic module structure on the fibration representing the pseudofunctor <fr:tex display="inline"><![CDATA[X \mapsto  \mathsf {Alg}(P_X)]]></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>2025</fr:year><fr:month>5</fr:month><fr:day>2</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    The monad is induced by the adjunction <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}{/X} \leftrightarrows  \mathsf {Alg}(P)_{PX}]]></fr:tex>. Let <fr:tex display="inline"><![CDATA[f: X \to  Y]]></fr:tex> (deterministic). For abstract reasons there is a natural transformation <fr:tex display="inline"><![CDATA[P_Yf^* \to  f^*P_X]]></fr:tex>. Writing this out, we find
    <fr:tex display="block"><![CDATA[P(A \times _Y X) \times _{PX} X \to  P(A) \times _{PY} X]]></fr:tex></html:p>
  <html:p>
    By representability, the unit <fr:tex display="inline"><![CDATA[X \to  PX]]></fr:tex> is a monomorphism. Hence a map into <fr:tex display="inline"><![CDATA[P(A \times _Y X) \times _{PX} X]]></fr:tex> is precisely a map in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> into <fr:tex display="inline"><![CDATA[A \times _Y X]]></fr:tex> so that the marginal on <fr:tex display="inline"><![CDATA[X]]></fr:tex> is deterministic. But by pullback-positivity this is precisely a map (in <fr:tex display="inline"><![CDATA[\mathcal {C}_\mathrm {det}]]></fr:tex>) into <fr:tex display="inline"><![CDATA[P(A) \times _{PY} X]]></fr:tex>.
  </html:p>
  <html:p>
    Let <fr:tex display="inline"><![CDATA[M \to  X]]></fr:tex>, two <fr:tex display="inline"><![CDATA[P_X]]></fr:tex>-algebras <fr:tex display="inline"><![CDATA[A, B]]></fr:tex>, and a map <fr:tex display="inline"><![CDATA[M \times _X A \to  M \times _X B]]></fr:tex> which is a homomorphism for the induced <fr:tex display="inline"><![CDATA[P_M]]></fr:tex>-algebras,
    and a map <fr:tex display="inline"><![CDATA[X \to  PM]]></fr:tex> be given. Note that by the above, <fr:tex display="inline"><![CDATA[P_M(M \times _X A) \cong  M \times _X P_XA]]></fr:tex>. Then the induced map <fr:tex display="inline"><![CDATA[A \to  B]]></fr:tex> is given by
    <fr:tex display="block"><![CDATA[A \to  PM \times _{PX} A \cong  P_X(M) \times _X A \hookrightarrow  P_X(M \times _X A) \to  P_X(B) \to  B]]></fr:tex></html:p>
  <html:p>
    We must show this is a <fr:tex display="inline"><![CDATA[P_X]]></fr:tex>-homomorphism. Let us simplify by working internally to <fr:tex display="inline"><![CDATA[(\mathcal {C}_{\mathrm {det}})_{/X}]]></fr:tex>---thus we have a Cartesian category equipped with a strong commutative monad <fr:tex display="inline"><![CDATA[P]]></fr:tex>, a map <fr:tex display="inline"><![CDATA[* \to  PM]]></fr:tex>, and a map <fr:tex display="inline"><![CDATA[M \times  A \to  B]]></fr:tex> which is a parametrized algebra homomorphism, in the sense that the diagram 
  </html:p>

  <html:p><html:figure><fr:resource hash="f17dab4b8aff84fae10587dd7d11a42f"><fr:resource-content><html:img src="/f17dab4b8aff84fae10587dd7d11a42f.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
      \begin {tikzcd}
	{M \times  PA} & {P(M \times  A)} & {P(B)} \\
	{M \times  A} && B
	\arrow [from=1-1, to=1-2]
	\arrow [from=1-1, to=2-1]
	\arrow [from=1-2, to=1-3]
	\arrow [from=1-3, to=2-3]
	\arrow [from=2-1, to=2-3]
\end {tikzcd}
    ]]></fr:resource-source></fr:resource></html:figure></html:p>
  <html:p>
    commutes. Now we must show the map <fr:tex display="inline"><![CDATA[A \to  PM \times  A \to  P(M \times  A) \to  PB \to  B]]></fr:tex> is a <fr:tex display="inline"><![CDATA[P]]></fr:tex>-homomorphism. Write <fr:tex display="inline"><![CDATA[E_A,E_B]]></fr:tex> for the structure maps of the two algebras. Consider this diagram:
  </html:p>
  
  <html:figure><fr:resource hash="2985cef8be68131089d96ddd7efe8181"><fr:resource-content><html:img src="/2985cef8be68131089d96ddd7efe8181.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
\begin {tikzcd}
	PA & {P(PM \times  A)} && {P^2(M\times  A)} & {P^2(B)} & PB \\
	& {PM \times  PA} &&& {} \\
	&& {P(M \times  P(A))} \\
	\\
	A & {PM \times  A} & {P(M \times  A)} && {P(B)} & B
	\arrow ["{P(m \times  A)}"{pos=0.2}, from=1-1, to=1-2]
	\arrow [from=1-1, to=2-2]
	\arrow ["{E_A}", from=1-1, to=5-1]
	\arrow [from=1-2, to=1-4]
	\arrow [from=1-4, to=1-5]
	\arrow ["{P(E_B)}", from=1-5, to=1-6]
	\arrow ["\mu ", from=1-5, to=5-5]
	\arrow ["{E_B}", from=1-6, to=5-6]
	\arrow [from=2-2, to=1-2]
	\arrow [from=2-2, to=3-3]
	\arrow ["{PM \times  E_A}", from=2-2, to=5-2]
	\arrow [from=3-3, to=1-4]
	\arrow [from=3-3, to=5-3]
	\arrow ["{m \times  A}", from=5-1, to=5-2]
	\arrow [from=5-2, to=5-3]
	\arrow [from=5-3, to=1-6]
	\arrow [from=5-3, to=5-5]
	\arrow ["{E_B}"', from=5-5, to=5-6]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  <html:p>
    The triangle at the top left commutes because <fr:tex display="inline"><![CDATA[P]]></fr:tex> is strong. The square to the right does not commute in general---however, since <fr:tex display="inline"><![CDATA[P]]></fr:tex> is commutative, the composite maps <fr:tex display="inline"><![CDATA[PM \times  PA \to  P^2(M \times  A) \xrightarrow {\mu } P(X \times  A)]]></fr:tex> agree. Since the map <fr:tex display="inline"><![CDATA[P^2(M \times  A) \to  B]]></fr:tex> factors over this, we may replace one edge of this square with another. The square to the right of that is simply <fr:tex display="inline"><![CDATA[P(-)]]></fr:tex> applied to the previous diagram, and so commutes by assumption. The "triangle" under that is just two copies of the same maps, so commutes. The square on the left of the diagram commutes by functoriality of product. The square to the right of that commutes again because <fr:tex display="inline"><![CDATA[P]]></fr:tex> is strong. Hence the outer square commutes, which is precisely the homomorphism property we wanted.
  </html:p>


  <html:p>
    It is apparent that, if <fr:tex display="inline"><![CDATA[A, B = P_XA', P_B']]></fr:tex> are free algebras, this restricts to the stochastic module structure of <fr:tex display="inline"><![CDATA[\mathcal {C}^\to |_\mathrm {det}]]></fr:tex> (viewing <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> as the Kleisli category of <fr:tex display="inline"><![CDATA[P]]></fr:tex>). But since every algebra is a coequalizer of free algebras, it follows that the action on general algebras is determined uniquely by this. This implies the equations of a stochastic module.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
                <html:p>
  As in <fr:link href="/efr-TO9K/" title="https://erischel.com/efr-TO9K/" uri="https://erischel.com/efr-TO9K/" display-uri="efr-TO9K" type="local">Example <fr:contextual-number uri="https://erischel.com/efr-TO9K/" display-uri="efr-TO9K" /></fr:link>, this cannot be expected to come from a Markov prefibration in general.
</html:p>
                <html:p>
  The vast majority of examples seem to occur as subcategories of stochastic modules of the form given by <fr:link href="/efr-O6GQ/" title="Stochastic module of P-algebras" uri="https://erischel.com/efr-O6GQ/" display-uri="efr-O6GQ" type="local">Proposition <fr:contextual-number uri="https://erischel.com/efr-O6GQ/" display-uri="efr-O6GQ" /></fr:link> (of course, <fr:tex display="inline"><![CDATA[\mathcal {C}^\to ]]></fr:tex> is just the subcategory spanned fiberwise by the free algebras). In fact, since a stochastic module necessitates in some sense an action of <fr:tex display="inline"><![CDATA[P]]></fr:tex> on the objects of the fiber, it seems they do all have this form in a generalized way, although we have not found a better way to make this precise than the existing definition of stochastic module.
</html:p>
              </fr:mainmatter>
            </fr:tree>
          </fr:mainmatter>
        </fr:tree>
        <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>6</fr:month>
              <fr:day>13</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/efr-000D/</fr:uri>
            <fr:display-uri>efr-000D</fr:display-uri>
            <fr:route>/efr-000D/</fr:route>
            <fr:title text="The \mathsf {Para} construction in generic 2-categories">The <fr:tex display="inline"><![CDATA[\mathsf {Para}]]></fr:tex> construction in generic 2-categories</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>7</fr:month>
                  <fr:day>22</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-003P/</fr:uri>
                <fr:display-uri>efr-003P</fr:display-uri>
                <fr:route>/efr-003P/</fr:route>
                <fr:title text="Introduction">Introduction</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  Myers' theory of categorical systems theory (see <fr:link href="/efr-0023/" title="Review of Categorical Systems Theory" uri="https://erischel.com/efr-0023/" display-uri="efr-0023" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-0023/" display-uri="efr-0023" /></fr:link>) gives a rich categorical structure to a wide variety of types of dynamical system. The central idea can be summarized by saying that there are two different, but tightly related, notions of morphism at play in dynamical systems. Open dynamical systems themselves involve a bidirectional information flow, captured by the notion of lens <fr:tex display="inline"><![CDATA[{X' \choose  X} \leftrightarrows  {Y' \choose  Y},]]></fr:tex> and composition of such lenses describes the composition of subsystems into systems. But morphisms <html:em>between</html:em> systems are unidirectional, captured by the notion of chart <fr:tex display="inline"><![CDATA[{X' \choose  X} \rightrightarrows  {Y' \choose  Y},]]></fr:tex>. Algebraically, the relationship between these two notions is that they assemble into a <html:em>double category</html:em>, which indexes the category of systems.
</html:p>
                <html:p>
  There is another double category involving lenses which has been considered in the categorical study of systems. That is the double category of <html:em>parametrized morphisms,</html:em> applied to the monoidal category of lenses. These have been studied as an abstraction for gradient descent in several papers, see eg <fr:link href="/bruno-etal-categorical-learning-2021/" title="Categorical Foundations of Gradient-Based Learning" uri="https://erischel.com/bruno-etal-categorical-learning-2021/" display-uri="bruno-etal-categorical-learning-2021" type="local">Reference <fr:contextual-number uri="https://erischel.com/bruno-etal-categorical-learning-2021/" display-uri="bruno-etal-categorical-learning-2021" /></fr:link>, <fr:link href="/bruno-thesis-fundamental-components/" title="Fundamental Components of Deep Learning: A category-theoretic approach" uri="https://erischel.com/bruno-thesis-fundamental-components/" display-uri="bruno-thesis-fundamental-components" type="local">Reference <fr:contextual-number uri="https://erischel.com/bruno-thesis-fundamental-components/" display-uri="bruno-thesis-fundamental-components" /></fr:link>, (the idea goes back to <fr:link href="/backprop-as-functor/" title="Backprop as Functor: A compositional perspective on supervised learning" uri="https://erischel.com/backprop-as-functor/" display-uri="backprop-as-functor" type="local">Reference <fr:contextual-number uri="https://erischel.com/backprop-as-functor/" display-uri="backprop-as-functor" /></fr:link>). Given any action of a monoidal category <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex> on another category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> (most simply, if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is monoidal it acts on itself,) we obtain a category of parametrized morphisms <fr:tex display="inline"><![CDATA[f: X \cdot  P \to  Y]]></fr:tex> (where <fr:tex display="inline"><![CDATA[P \in  \mathcal {M}, X, Y \in  \mathcal {C}]]></fr:tex>,) and these turn out to be extremely useful. We will mention two applications:
  <html:ol><html:li>A parametrized lens <fr:tex display="inline"><![CDATA[{P \choose  P} \otimes  {X \choose  X} \to  {Y \choose  Y}]]></fr:tex> is essentially what is called a <html:em>learner</html:em> in <fr:link href="/backprop-as-functor/" title="Backprop as Functor: A compositional perspective on supervised learning" uri="https://erischel.com/backprop-as-functor/" display-uri="backprop-as-functor" type="local">Reference <fr:contextual-number uri="https://erischel.com/backprop-as-functor/" display-uri="backprop-as-functor" /></fr:link>---it contains the information necessary to compute a new parameter value <fr:tex display="inline"><![CDATA[p']]></fr:tex> given an existing <fr:tex display="inline"><![CDATA[p \in  P]]></fr:tex> and a sample pair <fr:tex display="inline"><![CDATA[x \in  X, y \in  Y]]></fr:tex>, as well as the additional information required to compose such things. Thus the functoriality of backpropagation can be derived from two facts: the reverse derivative defines a monoidal functor <fr:tex display="inline"><![CDATA[\mathsf {Euc} \to  \mathsf {Lens}(\mathsf {Euc}),]]></fr:tex> and the construction <fr:tex display="inline"><![CDATA[\mathsf {Para}(-),]]></fr:tex> taking a category to its category of parametrized maps, is itself functorial. This viewpoint has been significantly developed in <fr:link href="/bruno-etal-categorical-learning-2021/" title="Categorical Foundations of Gradient-Based Learning" uri="https://erischel.com/bruno-etal-categorical-learning-2021/" display-uri="bruno-etal-categorical-learning-2021" type="local">Reference <fr:contextual-number uri="https://erischel.com/bruno-etal-categorical-learning-2021/" display-uri="bruno-etal-categorical-learning-2021" /></fr:link> and other papers.</html:li>
    <html:li>An <html:em>open game</html:em>, in the sense of Hedges <fr:link href="/hedges-etal-comp-gametheory/" title="Compositional game theory" uri="https://erischel.com/hedges-etal-comp-gametheory/" display-uri="hedges-etal-comp-gametheory" type="local">Reference <fr:contextual-number uri="https://erischel.com/hedges-etal-comp-gametheory/" display-uri="hedges-etal-comp-gametheory" /></fr:link>, is almost the same thing as a parametrized lens <fr:tex display="inline"><![CDATA[{\Sigma ' \choose  \Sigma } \otimes  {S \choose  X} \leftrightarrows  {R \choose  Y}]]></fr:tex>, equipped with a subset <fr:tex display="inline"><![CDATA[E \subset  \Sigma  \times  \mathsf {Set}(\Sigma ,\Sigma ')]]></fr:tex>. Given a context for the game---that is, a state <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex> (describing the state of information when the decision is made) and a continuation <fr:tex display="inline"><![CDATA[Y \to  R]]></fr:tex> (describing how decisions <fr:tex display="inline"><![CDATA[y \in  Y]]></fr:tex> map to outcomes <fr:tex display="inline"><![CDATA[r \in  R]]></fr:tex>,) we obtain a function <fr:tex display="inline"><![CDATA[k: \Sigma  \to  \Sigma ']]></fr:tex>, and we say <fr:tex display="inline"><![CDATA[\sigma  \in  \Sigma ]]></fr:tex> is an equilibrium strategy if <fr:tex display="inline"><![CDATA[(\sigma ,k) \in  E]]></fr:tex>. Since <fr:tex display="inline"><![CDATA[\mathsf {Set}(\Sigma ,\Sigma ') = \mathsf {Lens}(\mathsf {Set})({\Sigma ' \choose  \Sigma },I),]]></fr:tex> and <fr:tex display="inline"><![CDATA[\Sigma  = \mathsf {Lens}(\mathsf {Set})(I,{\Sigma ' \choose  \Sigma }),]]></fr:tex> this neatly captures the extra data of an open game in terms of the category of lenses. The potential of this idea as a generalized approach to "cybernetic systems" is explored in <fr:link href="/towards-cybercat/" title="Towards Foundations of Categorical Cybernetics" uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" type="local">Reference <fr:contextual-number uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" /></fr:link>.
    </html:li></html:ol></html:p>
                <html:p>
  In this chapter, we will develop the theory of the category <fr:tex display="inline"><![CDATA[\mathsf {Para}]]></fr:tex> of parametrized maps. We will begin by reviewing the existing literature briefly. We will describe a double categorical version of this category---this does not seem to have appeared in the literature yet, although it has been folklore for at least a few years (and there is nothing complicated about this construction, certainly). The remainder of this chapter will be dedicated to lifting this construction to a generic 2-category <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex> (with the above being the specialization to <fr:tex display="inline"><![CDATA[\mathbb {C} = \mathsf {Cat}]]></fr:tex> ). We will derive this lifting using the machinery of 2-category theory. We will see how this generalization accounts for much structure which can be seen to exist on <fr:tex display="inline"><![CDATA[\mathsf {Para}]]></fr:tex>, such as its symmetric monoidal structure (assuming <fr:tex display="inline"><![CDATA[\mathcal {M},\mathcal {C}]]></fr:tex> are symmetric monoidal). But the true application of this will be in <fr:link href="/efr-ZRUZ/" title="Categories of stochastic dynamical systems" uri="https://erischel.com/efr-ZRUZ/" display-uri="efr-ZRUZ" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-ZRUZ/" display-uri="efr-ZRUZ" /></fr:link>, where we use this to construct a <html:em>triple category</html:em> of open dynamical systems.
</html:p>
                <html:p>
  The definition of the double category <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}]]></fr:tex> involves two types of categorical structure with which the reader may be unfamiliar---<html:em>actegories</html:em>, which are the input to the construction, and pseudo double categories, which are the output. Since we will shortly introduce the abstract internal versions of these, internal pseudomonoid actions and internal pseudocategories, we will not give a separate introduction here. The reader who is unfamiliar with these should refer to <fr:link href="/actegories-amthematician-capucci-gavranovic/" title="Actegories for the Working Amthematician" uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" type="local">Reference <fr:contextual-number uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" /></fr:link> for actegories, and <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> for (pseudo) double categories. A reader who simply needs a definition may look at <fr:link href="/efr-OFNV/" title="Actegory" uri="https://erischel.com/efr-OFNV/" display-uri="efr-OFNV" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-OFNV/" display-uri="efr-OFNV" /></fr:link> and <fr:link href="/efr-ZRUY/" title="https://erischel.com/efr-ZRUY/" uri="https://erischel.com/efr-ZRUY/" display-uri="efr-ZRUY" type="local">Example <fr:contextual-number uri="https://erischel.com/efr-ZRUY/" display-uri="efr-ZRUY" /></fr:link>.
</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>7</fr:month>
                  <fr:day>2</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-002H/</fr:uri>
                <fr:display-uri>efr-002H</fr:display-uri>
                <fr:route>/efr-002H/</fr:route>
                <fr:title text="The Para Construction as a double category">The Para Construction as a double category</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  In many different situations, we want to understand some morphism as <html:em>parametrized</html:em> by some data. For example, in machine learning one tries to find a function <fr:tex display="inline"><![CDATA[f: X \to  Y]]></fr:tex> with some desirable behaviour by choosing a parametrization <fr:tex display="inline"><![CDATA[F: P \times  X \to  Y]]></fr:tex> and searching for some <fr:tex display="inline"><![CDATA[p \in  P]]></fr:tex> so that <fr:tex display="inline"><![CDATA[F(p,-)]]></fr:tex> has this behaviour (for example by gradient descent on <fr:tex display="inline"><![CDATA[p]]></fr:tex>).
</html:p>
                <html:p>
  In situations where we want to understand <fr:tex display="inline"><![CDATA[F]]></fr:tex> as being built up as a composite of multiple functions (for example, the layers of a neural network), it is convenient to introduce a category of parametrized morphisms, where the composition combines the parameter spaces of each composite map. We can do this in a general setting with the following definition:
</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>7</fr:month>
                      <fr:day>2</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-002G/</fr:uri>
                    <fr:display-uri>efr-002G</fr:display-uri>
                    <fr:route>/efr-002G/</fr:route>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex> be a monoidal category, and let <fr:tex display="inline"><![CDATA[\bullet : \mathcal {M} \times  \mathcal {C} \to  \mathcal {C}]]></fr:tex> be an action of <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex> on another category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>.
  Then the <html:em><fr:tex display="inline"><![CDATA[\mathsf {Para}]]></fr:tex> construction</html:em> is the category <fr:tex display="inline"><![CDATA[\mathsf {Para}_\mathcal {M}(\mathcal {C})]]></fr:tex> where
  <html:ol><html:li>Objects are objects of <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex></html:li>
    <html:li>Morphisms <fr:tex display="inline"><![CDATA[A \to  B]]></fr:tex> are tuples <fr:tex display="inline"><![CDATA[P \in  \mathcal {M}, P \bullet  A \to  B]]></fr:tex> up to the natural notion of isomorphism.</html:li>
    <html:li>Composition is by tensoring the parameter objects and composing.</html:li></html:ol></html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  The fact that the parametrization object may live in a different category than the domain and codomain objects, which initially seems like a superfluous generalization, is in fact highly useful. For example, we will often want to consider parametrized morphisms where the parameter space is decorated with some additional data, for example a probability distribution. In most such cases, the category of spaces decorated with such data will act on the category of spaces without such data (simply by forgetting the data and tensoring), and hence we can realize such parametrized morphisms as examples of this <fr:tex display="inline"><![CDATA[\mathsf {Para}]]></fr:tex> construction. We may also want only Euclidean parameter space (so that we can run gradient descent simply), but allow the parametrized morphism to go between more general manifolds.
</html:p>
                <html:p><fr:tex display="inline"><![CDATA[\mathsf {Para}]]></fr:tex>, and generalizations of it, have been introduced many times. One of the earliest occurrences is by Hermida and Tennent, <fr:link href="/hermida-monoidal-indeterminates/" title="Monoidal indeterminates and categories of possible worlds" uri="https://erischel.com/hermida-monoidal-indeterminates/" display-uri="hermida-monoidal-indeterminates" type="local">Reference <fr:contextual-number uri="https://erischel.com/hermida-monoidal-indeterminates/" display-uri="hermida-monoidal-indeterminates" /></fr:link>, in the special case of a symmetric monoidal category acting on another such via a functor <fr:tex display="inline"><![CDATA[i: \mathcal {C} \to  \mathcal {D}]]></fr:tex> (by a result of Capucci and Gavranović, <fr:link href="/actegories-amthematician-capucci-gavranovic/" title="Actegories for the Working Amthematician" uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" type="local">Reference <fr:contextual-number uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" /></fr:link>, every "structure-preserving" action of a symmetric monoidal category on another has this form). Hermida and Tennent actually give a very intuitive universal property of <fr:tex display="inline"><![CDATA[\mathsf {Para}_\mathcal {C}(\mathcal {D})]]></fr:tex>: it is freely generated by adding a morphism <fr:tex display="inline"><![CDATA[I \to  i(C)]]></fr:tex> for each <fr:tex display="inline"><![CDATA[C \in  \mathcal {C}]]></fr:tex>, subject to the equations that this must be a monoidal natural transformation. This type of idea actually goes all the way back to Pavlović in <fr:link href="/pavlovic-categorical-names/" title="Categorical logic of names and abstraction in action calculi" uri="https://erischel.com/pavlovic-categorical-names/" display-uri="pavlovic-categorical-names" type="local">Reference <fr:contextual-number uri="https://erischel.com/pavlovic-categorical-names/" display-uri="pavlovic-categorical-names" /></fr:link>.
</html:p>
                <html:p>
  The notation <fr:tex display="inline"><![CDATA[\mathsf {Para}]]></fr:tex> was introduced in<fr:link href="/backprop-as-functor/" title="Backprop as Functor: A compositional perspective on supervised learning" uri="https://erischel.com/backprop-as-functor/" display-uri="backprop-as-functor" type="local">Reference <fr:contextual-number uri="https://erischel.com/backprop-as-functor/" display-uri="backprop-as-functor" /></fr:link>, where the special case of parametrized morphisms of euclidean spaces was used to study gradient descent.
  In <fr:link href="/towards-cybercat/" title="Towards Foundations of Categorical Cybernetics" uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" type="local">Reference <fr:contextual-number uri="https://erischel.com/towards-cybercat/" display-uri="towards-cybercat" /></fr:link>, a bicategorical variant (replacing the quotient by isomorphism in the above variant in the obvious way) is introduced.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>29</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-MN7C/</fr:uri>
                    <fr:display-uri>efr-MN7C</fr:display-uri>
                    <fr:route>/efr-MN7C/</fr:route>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a monoidal category, and let <fr:tex display="inline"><![CDATA[S: \mathcal {C} \to  \mathsf {Set}]]></fr:tex> be any functor. Recall that <fr:tex display="inline"><![CDATA[\int  S]]></fr:tex> is the category whose objects are pairs <fr:tex display="inline"><![CDATA[(X \in  \mathcal {C}, s \in  S(X))]]></fr:tex> and whose morphisms <fr:tex display="inline"><![CDATA[(X,s) \to  (Y,s')]]></fr:tex> are <fr:tex display="inline"><![CDATA[f: X \to  Y]]></fr:tex> so that <fr:tex display="inline"><![CDATA[S(f)(s) = s']]></fr:tex>. If <fr:tex display="inline"><![CDATA[S]]></fr:tex> is lax monoidal (for <fr:tex display="inline"><![CDATA[(\mathsf {Set},\times )]]></fr:tex>,) <fr:tex display="inline"><![CDATA[\int  S]]></fr:tex> acquires a lax monoidal structure making the forgetful functor <fr:tex display="inline"><![CDATA[\int  S \to  \mathcal {C}]]></fr:tex> strong (even strict) monoidal.
</html:p>
                    <html:p>
  With the action induced by this functor, the bicategory <fr:tex display="inline"><![CDATA[\mathsf {Para}_{\int  S}(\mathcal {C})]]></fr:tex> has morphisms given by maps <fr:tex display="inline"><![CDATA[M \otimes  X \to  Y, m \in  S(M),]]></fr:tex> and maps given by reparametrizations which preserve the decoration <fr:tex display="inline"><![CDATA[m]]></fr:tex>.
</html:p>
                    <html:p>
  For example, let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a Markov category and let <fr:tex display="inline"><![CDATA[S(X) = \mathcal {C}(I,X)]]></fr:tex>. Then morphisms are parametrized maps equipped with a measure on the parameter space.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-WEST/</fr:uri>
                    <fr:display-uri>efr-WEST</fr:display-uri>
                    <fr:route>/efr-WEST/</fr:route>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  If <fr:tex display="inline"><![CDATA[\mathbb {C} = \mathsf {Set}]]></fr:tex> regarded as a discrete 2-category, as noted, a pseudomonoid action is just a monoid action in the ordinary sense---that is, a monoid <fr:tex display="inline"><![CDATA[M]]></fr:tex>, a set <fr:tex display="inline"><![CDATA[X]]></fr:tex> and a function <fr:tex display="inline"><![CDATA[m \cdot  x]]></fr:tex> so that <fr:tex display="inline"><![CDATA[m \cdot  (n \cdot  x) = (mn) \cdot  x]]></fr:tex>. The para construction is then the <html:em>action category,</html:em> whose objects are the points of <fr:tex display="inline"><![CDATA[X]]></fr:tex> and whose morphisms <fr:tex display="inline"><![CDATA[x \to  y]]></fr:tex> are elements <fr:tex display="inline"><![CDATA[m]]></fr:tex> so that <fr:tex display="inline"><![CDATA[m \cdot  x = y]]></fr:tex> (with multiplication as composition).
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-QH7O/</fr:uri>
                    <fr:display-uri>efr-QH7O</fr:display-uri>
                    <fr:route>/efr-QH7O/</fr:route>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\operatorname {\mathsf {Ab} - \mathsf {Cat}}]]></fr:tex> be the 2-category of <fr:tex display="inline"><![CDATA[\mathsf {Ab}]]></fr:tex>-enriched categories, functors and natural transformations. Recall that a ring <fr:tex display="inline"><![CDATA[R]]></fr:tex> is the same as a one-object category enriched in <fr:tex display="inline"><![CDATA[\mathsf {Ab}]]></fr:tex>, and it admits a monoidal structure if and only if it is commutative (this is not particular to <fr:tex display="inline"><![CDATA[\mathsf {Ab}]]></fr:tex>-enriched categories). An enriched <fr:tex display="inline"><![CDATA[R]]></fr:tex>-action on an <fr:tex display="inline"><![CDATA[\mathsf {Ab}]]></fr:tex>-category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is then an <fr:tex display="inline"><![CDATA[R]]></fr:tex>-module structure on each hom-set so that composition is <fr:tex display="inline"><![CDATA[R]]></fr:tex>-linear in each variable.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-KL7V/</fr:uri>
                    <fr:display-uri>efr-KL7V</fr:display-uri>
                    <fr:route>/efr-KL7V/</fr:route>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  If a category has coproducts, then <fr:tex display="inline"><![CDATA[\mathsf {Set}]]></fr:tex> acts on it via <fr:tex display="inline"><![CDATA[S \cdot  X = \coprod _{s \in  S}X]]></fr:tex>. (This is the <fr:tex display="inline"><![CDATA[\mathsf {Set}]]></fr:tex>-enriched case of what in enriched categories is called a <html:em>copower</html:em> or <html:em>tensor</html:em>, the dual of the power objects from <fr:link href="/efr-K3YI/" title="Particular weighted limits" uri="https://erischel.com/efr-K3YI/" display-uri="efr-K3YI" type="local">Example <fr:contextual-number uri="https://erischel.com/efr-K3YI/" display-uri="efr-K3YI" /></fr:link>). The morphisms of <fr:tex display="inline"><![CDATA[\mathsf {Para}_\mathsf {Set}(\mathcal {C})]]></fr:tex> are pairs <fr:tex display="inline"><![CDATA[(I \in  \mathsf {Set}, (f_i: X \to  Y \in  \mathcal {C})_{i \in  I})]]></fr:tex>, which compose in the obvious way.
</html:p>
                    <html:p>
  Note that this definition clearly makes sense even if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> does not actually have coproducts. This is an example of another construction which has been called <fr:tex display="inline"><![CDATA[\mathsf {Para}]]></fr:tex>, which takes a monoidal category <fr:tex display="inline"><![CDATA[\mathcal {V}]]></fr:tex> and a <fr:tex display="inline"><![CDATA[\mathcal {V}]]></fr:tex>-enriched category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> and constructs a double category where the morphisms are pairs <fr:tex display="inline"><![CDATA[(J \in  \mathcal {V}, J \to  \mathcal {C}(X,Y))]]></fr:tex>. It is not hard to see that this also extends to a double category in the same way, but we do not presently know the correct definition of <html:em>internal enriched object</html:em> that would replace pseudomonoid actions to replicate our general theory for this case. (note that the literature contains a notion of <html:em>internal enriched category</html:em>, <fr:link href="/internal-enriched/" title="Internal enriched categories" uri="https://erischel.com/internal-enriched/" display-uri="internal-enriched" type="local">Reference <fr:contextual-number uri="https://erischel.com/internal-enriched/" display-uri="internal-enriched" /></fr:link>, but these are categories enriched over <html:em>internal monoidal categories</html:em>---that is, the ambient category <fr:tex display="inline"><![CDATA[\mathcal {E}]]></fr:tex> is a 1-category and the categorical structure of the base of enrichment <fr:tex display="inline"><![CDATA[\mathcal {V}]]></fr:tex> is formulated on top of this, not as part of the structure of the objects of the category <fr:tex display="inline"><![CDATA[\mathcal {E}]]></fr:tex>)
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  There is a very natural <html:em>double</html:em> categorical version of <fr:tex display="inline"><![CDATA[\mathsf {Para}]]></fr:tex>, where the vertical morphisms are just the unparametrized morphisms of <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, and the 2-cells with this boundary:
  
  <html:figure><fr:resource hash="72db837560dac11db9765d4a19ee6a29"><fr:resource-content><html:img src="/72db837560dac11db9765d4a19ee6a29.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	X & Y \\
	{X'} & {Y'}
	\arrow [""{name=0, anchor=center, inner sep=0}, from=1-1, to=1-2, "f"]
	\arrow [from=1-1, to=2-1]
	\arrow [from=1-2, to=2-2]
	\arrow [""{name=1, anchor=center, inner sep=0}, from=2-1, to=2-2]
	\arrow [shorten <=4pt, shorten >=4pt, Rightarrow, from=0, to=1, "g"]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  are morphisms <fr:tex display="inline"><![CDATA[M \to  N]]></fr:tex> (if <fr:tex display="inline"><![CDATA[f]]></fr:tex> is parametrized by <fr:tex display="inline"><![CDATA[M]]></fr:tex>, <fr:tex display="inline"><![CDATA[g]]></fr:tex> by <fr:tex display="inline"><![CDATA[N]]></fr:tex>) so that the square
  
  <html:figure><fr:resource hash="9c0e25cf17a3b4d8d5709467b47d6ab4"><fr:resource-content><html:img src="/9c0e25cf17a3b4d8d5709467b47d6ab4.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	{M \cdot  X} & Y \\
	{M \cdot  X'} & {Y'}
	\arrow [from=1-1, to=1-2]
	\arrow [from=1-1, to=2-1]
	\arrow [from=1-2, to=2-2]
	\arrow [from=2-1, to=2-2]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  commutes.
</html:p>
                <html:p>
  This notion is not original---we learned of it from Matteo Capucci---but it seems to have remained somewhat on the level of folklore. Our main goal for this section will be to construct this (pseudo) double category, and show that it is functorial---that is, given a homomorphism of actions, there is an induced functor between double categories. In fact, we will show that this construction works in any 2-category. Later we will apply it to a pseudomonoid action in (strict) double categories to construct a pseudocategory internal to double categories---our triple category of bimachines.
</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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>29</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-55CC/</fr:uri>
                    <fr:display-uri>efr-55CC</fr:display-uri>
                    <fr:route>/efr-55CC/</fr:route>
                    <fr:taxon>Theorem</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex> be a monoidal category, and let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a category with an <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex>-action.
</html:p><html:p>
  Then there is a pseudo double category <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}_\mathcal {M}(\mathcal {C}),]]></fr:tex> with
  <html:ol><html:li><fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}_\mathcal {M}(\mathcal {C})_0 = \mathcal {C}]]></fr:tex></html:li>
    <html:li><fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}_\mathcal {M}(\mathcal {C})_1 = \mathcal {M} \times  \mathcal {C} \downarrow  \mathcal {C}]]></fr:tex>, with domain and codomain given by the two projections to <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex></html:li>
    <html:li>
      The identities map <fr:tex display="inline"><![CDATA[\mathcal {C} \to  \mathcal {M} \times  \mathcal {C} \downarrow  \mathcal {C}]]></fr:tex> is given by <fr:tex display="inline"><![CDATA[(I, 1_\mathcal {C}, 1_\mathcal {C}, \lambda ),]]></fr:tex> where <fr:tex display="inline"><![CDATA[\lambda : I \cdot - \to  -]]></fr:tex> is the left unitor of <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex>.
    </html:li>
    <html:li>
      The horizontal composition map is the composition in <fr:tex display="inline"><![CDATA[\mathsf {Para}:]]></fr:tex> given <fr:tex display="inline"><![CDATA[M \cdot  X \to  Y, N \cdot  Y \to  Z,]]></fr:tex> their composite is given by <fr:tex display="inline"><![CDATA[(N \otimes  M) \cdot  X \cong  N \cdot  (M \cdot  X) \to  N \cdot  Y \to  Z.]]></fr:tex> The horizontal composition of 2-cells is defined analogously.
    </html:li></html:ol></html:p><html:p>
  Moreover, if <fr:tex display="inline"><![CDATA[\mathcal {C} \to  \mathcal {D}]]></fr:tex> is <html:em>strict</html:em> homomorphism of <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex>-modules, there is an induced pseudofunctor <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}_\mathcal {M}(\mathcal {C}) \to  \mathsf {\mathbb  Para}_\mathcal {M}(\mathcal {D})]]></fr:tex>. If <fr:tex display="inline"><![CDATA[\mathcal {N} \to  \mathcal {M}]]></fr:tex> is a strict monoidal functor, then regarding <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> as an <fr:tex display="inline"><![CDATA[\mathcal {N}]]></fr:tex>-module along this map, there is an induced pseudofunctor <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}_\mathcal {N}(\mathcal {C}) \to  \mathsf {\mathbb  Para}_\mathcal {M}(\mathcal {C})]]></fr:tex>. These combine into a 2-functor <fr:tex display="inline"><![CDATA[\mathsf {Act}_s \to  \mathsf {PsDbl}_s]]></fr:tex> between the 2-category of actions and strictly linear functors and the category of pseudo double categories and strict double functors. This functor preserves (strict) limits.
</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>2025</fr:year><fr:month>4</fr:month><fr:day>29</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Note that every actegory <fr:tex display="inline"><![CDATA[\mathcal {M} \curvearrowright  \mathcal {C}]]></fr:tex> is equivalent to a strict action of a strict monoidal category <fr:tex display="inline"><![CDATA[\mathcal {M}_s \curvearrowright  \mathcal {C}_s]]></fr:tex> (in the sense that there exists <fr:tex display="inline"><![CDATA[\mathcal {M}_s \xrightarrow {\sim } \mathcal {M}]]></fr:tex> strong monoidal equivalence and <fr:tex display="inline"><![CDATA[\mathcal {C}_s \xrightarrow {\sim } \mathcal {C}]]></fr:tex> an equivalence such that these maps together form a map of actegories). It follows that it suffices to show unitality and associativity for our composition in the strict case (since these are plainly preserved by equivalence). 
  </html:p>

  <html:p>
    Let <fr:tex display="inline"><![CDATA[\mathcal {M} \curvearrowright  \mathcal {C}, \mathcal {M}' \curvearrowright  \mathcal {C}']]></fr:tex>, <fr:tex display="inline"><![CDATA[F: \mathcal {M} \to  \mathcal {M}']]></fr:tex> be a strict monoidal functor, and let <fr:tex display="inline"><![CDATA[G: \mathcal {C} \to  \mathcal {C}']]></fr:tex> be a linear functor "over <fr:tex display="inline"><![CDATA[F]]></fr:tex>", that is a (strict) <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex>-linear functor when <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex> is viewed as a <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex>-actegory along <fr:tex display="inline"><![CDATA[F]]></fr:tex>. Then the induced functor <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}_\mathcal {M}(\mathcal {C}) \to  \mathsf {\mathbb  Para}_{\mathcal {M}'}(\mathcal {C}')]]></fr:tex> is given by <fr:tex display="inline"><![CDATA[G]]></fr:tex> on the vertical category, and on the horizontal category by 
    <fr:tex display="block"><![CDATA[(M,X,X',\phi : M \cdot  X \to  X') \mapsto  (F(M), G(X), G(X'), F(M) \cdot  G(X) \simeq  G(M \cdot  X) \to  G(X'))]]></fr:tex>
    where the isomorphism is the linearity---noting that the <fr:tex display="inline"><![CDATA[M]]></fr:tex>-action on <fr:tex display="inline"><![CDATA[\mathcal {C}']]></fr:tex> is precisely acting by <fr:tex display="inline"><![CDATA[F(M)]]></fr:tex>.
  </html:p>
  <html:p>
    By naturality of the lineator it is straightforward to see that this is a functor, and it clearly preserves domain and codomain. It preserves units (strictly!) by the compatibility between the unitor and lineator. It remains to see that this preserves composition. For brevity, denote the induced functor <fr:tex display="inline"><![CDATA[H]]></fr:tex> from here.
  </html:p>
  <html:p>
    It suffices to verify this for strict actions. So the composite of <fr:tex display="inline"><![CDATA[M \cdot  X \to  Y, N \cdot  Y \to  Z]]></fr:tex> is given by the composite
    <fr:tex display="block"><![CDATA[(N \otimes  M) \cdot  X = N \cdot  M \cdot  X \to  N \cdot  Y \to  Z.]]></fr:tex></html:p>
<html:p>
  Given two such composable maps, call them <fr:tex display="inline"><![CDATA[f,g]]></fr:tex>, the two objects <fr:tex display="inline"><![CDATA[H(fg), H(f)H(g)]]></fr:tex> are given by <fr:tex display="inline"><![CDATA[(F(M \otimes  N), G(X), G(Z), \beta ), (F(M) \otimes  F(N), G(X), G(Z), \alpha )]]></fr:tex> ,where <fr:tex display="inline"><![CDATA[\alpha , \beta ]]></fr:tex> are respectively the maps across the top and bottom of this diagram:
</html:p>
<html:p><html:figure><fr:resource hash="57ae8a952e148cf43a1d565e9c0cc44e"><fr:resource-content><html:img src="/57ae8a952e148cf43a1d565e9c0cc44e.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
 \begin {tikzcd}[column sep=small]
	{F(N) \otimes  F(M) \cdot  G(X)} & {F(N)\cdot  F(M) \cdot  G(X)} & {F(N)\cdot  G(M \cdot  X)} & {F(N)\cdot  G(Y)} \\
	&&&&& {G(Z)} \\
	\\
	{F(N \otimes  M)\cdot  G(X)} & {G(N \otimes  M \cdot  X)} & {G(N \cdot  (M \cdot  X))} & {G(N\cdot  Y)}
	\arrow ["\sim "', from=1-1, to=1-2]
	\arrow ["\alpha "', bend left=40, from=1-1, to=2-6]
	\arrow [equals, from=1-1, to=4-1]
	\arrow [equals, from=1-2, to=1-3]
	\arrow [from=1-3, to=1-4]
	\arrow [from=1-3, to=4-3]
	\arrow [from=1-4, to=2-6]
	\arrow [equals, from=1-4, to=4-4]
	\arrow ["\beta "', bend right=40, from=4-1, to=2-6]
	\arrow [equals, from=4-1, to=4-2]
	\arrow ["\sim ", from=4-2, to=4-3]
	\arrow [from=4-3, to=4-4]
	\arrow [from=4-4, to=2-6]
\end {tikzcd}
]]></fr:resource-source></fr:resource></html:figure></html:p>
<html:p>
This proves that <fr:tex display="inline"><![CDATA[H]]></fr:tex> preserves the composition strictly, as desired. (The rightmost triangle commutes by definition, and the leftmost rectangle is a lineator coherence)
</html:p>
  <html:p>
    Since the strict limits in <fr:tex display="inline"><![CDATA[\mathsf {PsDbl}_s]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathsf {Act}_s]]></fr:tex> are computed levelwise, it suffices to observe that the slice category also preserves limits, being a weighted limit itself.
  </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>2025</fr:year>
                      <fr:month>4</fr:month>
                      <fr:day>29</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-HUEE/</fr:uri>
                    <fr:display-uri>efr-HUEE</fr:display-uri>
                    <fr:route>/efr-HUEE/</fr:route>
                    <fr:taxon>Remark</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Note that <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}_\mathcal {M}(\mathcal {C})]]></fr:tex> comes equipped with a strict functor to <fr:tex display="inline"><![CDATA[B\mathcal {M}]]></fr:tex> (viewed as a double category). In fact, one can recover the action <fr:tex display="inline"><![CDATA[\cdot  : \mathcal {M} \times  \mathcal {C} \to  \mathcal {C}]]></fr:tex> from this data: the object <fr:tex display="inline"><![CDATA[M \cdot  X]]></fr:tex> is characterized up to isomorphism by its universal property: parametrized maps <fr:tex display="inline"><![CDATA[M \cdot  X \nrightarrow  Y]]></fr:tex> with parameter <fr:tex display="inline"><![CDATA[N]]></fr:tex> are in bijection with maps <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> parametrized by <fr:tex display="inline"><![CDATA[N \otimes  M]]></fr:tex>.
</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>2025</fr:year>
                  <fr:month>5</fr:month>
                  <fr:day>4</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-9I1M/</fr:uri>
                <fr:display-uri>efr-9I1M</fr:display-uri>
                <fr:route>/efr-9I1M/</fr:route>
                <fr:title text="2-Limit sketches">2-Limit sketches</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-L9JB/</fr:uri>
                    <fr:display-uri>efr-L9JB</fr:display-uri>
                    <fr:route>/efr-L9JB/</fr:route>
                    <fr:title text="Weighted limit">Weighted limit</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex> be a 2-category, let <fr:tex display="inline"><![CDATA[D: \mathbb {I} \to  \mathbb {C}]]></fr:tex> be a 2-diagram in it, and let <fr:tex display="inline"><![CDATA[W: \mathbb {I} \to  \mathsf {Cat}]]></fr:tex> be another 2-functor.
  A <html:em>limit of <fr:tex display="inline"><![CDATA[D]]></fr:tex> weighted by {W}</html:em> is an object <fr:tex display="inline"><![CDATA[\lim ^W D \in  \mathbb {C}]]></fr:tex> equipped with a natural isomorphism of categories <fr:tex display="inline"><![CDATA[\mathbb {C}(X,\lim ^W D) \cong  [ {\mathbb {I} }, {\mathbb {C}} ] (W, \mathbb {C}(X,D(-)))]]></fr:tex> (natural in <fr:tex display="inline"><![CDATA[X \in  \mathbb {C}]]></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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-K3YI/</fr:uri>
                    <fr:display-uri>efr-K3YI</fr:display-uri>
                    <fr:route>/efr-K3YI/</fr:route>
                    <fr:title text="Particular weighted limits">Particular weighted limits</fr:title>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  If <fr:tex display="inline"><![CDATA[W(-) = *]]></fr:tex> is constant at the point, and <fr:tex display="inline"><![CDATA[\mathbb {I}]]></fr:tex> is an 1-category, then a weighted limit is simply a <fr:tex display="inline"><![CDATA[L \to  D(i)]]></fr:tex> in the underlying category <fr:tex display="inline"><![CDATA[\mathbb {C}_0]]></fr:tex> so that there is additionally an isomorphism of categories <fr:tex display="inline"><![CDATA[\mathbb {C}(X,L) \xrightarrow {\sim } \lim _i \mathbb {C}(X,D(I))]]></fr:tex>. Note that this <html:em>is</html:em> stronger than just a limit in <fr:tex display="inline"><![CDATA[\mathbb {C}_0]]></fr:tex>. We will refer to limits of this form by their ordinary names---speaking for example of pullbacks, products, and so on.
</html:p>
                    <html:p>
  If <fr:tex display="inline"><![CDATA[I = *]]></fr:tex>, <fr:tex display="inline"><![CDATA[D(*) = D \in  \mathbb {C}]]></fr:tex>, and <fr:tex display="inline"><![CDATA[W(*) = C \in  \mathsf {Cat},]]></fr:tex> the universal property of the weighted limit is that <fr:tex display="inline"><![CDATA[\mathbb {C}(X, \lim ^W D) = \mathsf {Cat}(C, \mathbb {C}(X,D))]]></fr:tex>. In this case we write <fr:tex display="inline"><![CDATA[C \pitchfork  D]]></fr:tex> for this limit if it exists, and call it a <html:em>power</html:em> of <fr:tex display="inline"><![CDATA[D]]></fr:tex> by <fr:tex display="inline"><![CDATA[C]]></fr:tex>.
</html:p>
                    <html:p>
  If <fr:tex display="inline"><![CDATA[\mathbb {I} = \{A \to  B \leftarrow  C\}]]></fr:tex> and the weighting is given by <fr:tex display="inline"><![CDATA[W(B) = \{1 \to  2\}, W(A) = \{1\}, W(B) = \{2\}]]></fr:tex> (with the obvious inclusions), then the weighted limit is called the <html:em>comma object</html:em> and will be denoted <fr:tex display="inline"><![CDATA[D(A) \downarrow _{D(B)} D(C)]]></fr:tex>. Note that if <fr:tex display="inline"><![CDATA[\mathbb {C} = \mathsf {Cat}]]></fr:tex> this is precisely the ordinary comma category.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  The analogue for a cone on an object <fr:tex display="inline"><![CDATA[C]]></fr:tex> in the setting of weighted limits is called a <html:em>cylinder:</html:em> it is a natural transformation <fr:tex display="inline"><![CDATA[W(-) \to  \mathbb {C}(C, D(-))]]></fr:tex>.
  A cylinder on <fr:tex display="inline"><![CDATA[C]]></fr:tex> induces a natural transformation <fr:tex display="inline"><![CDATA[\mathbb {C}(X,C) \to  [ {\mathbb {I} }, {\mathbb {C}} ] (W(-),\mathbb {C}(X,D(-))),]]></fr:tex> and we say it's a limit cylinder if this 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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-40Q5/</fr:uri>
                    <fr:display-uri>efr-40Q5</fr:display-uri>
                    <fr:route>/efr-40Q5/</fr:route>
                    <fr:title text="2-limit sketch">2-limit sketch</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  A <html:em>2-limit sketch</html:em> is a small 2-category <fr:tex display="inline"><![CDATA[\mathcal {T}]]></fr:tex> equipped with a (small) set of cylinders <fr:tex display="inline"><![CDATA[\Theta ]]></fr:tex>.
  A <html:em>model</html:em> of the sketch in <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex> is a 2-functor <fr:tex display="inline"><![CDATA[\mathcal {T} \to  \mathbb {C}]]></fr:tex> which carries each cylinder in <fr:tex display="inline"><![CDATA[\Theta ]]></fr:tex> to a limit cylinder.
  We write the category of models and natural transformations <fr:tex display="inline"><![CDATA[\mathsf {Mod}(\mathcal {T},\mathbb {C})]]></fr:tex> (leaving the set of cylinders implicit).
  If <fr:tex display="inline"><![CDATA[\mathbb {C} = \mathsf {Cat},]]></fr:tex> we write simply <fr:tex display="inline"><![CDATA[\mathsf {Mod}(\mathcal {T})]]></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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-D7EH/</fr:uri>
                    <fr:display-uri>efr-D7EH</fr:display-uri>
                    <fr:route>/efr-D7EH/</fr:route>
                    <fr:taxon>Lemma</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {T}]]></fr:tex> be a 2-limit sketch.
  Then the functor <fr:tex display="inline"><![CDATA[\mathsf {Mod}(\mathcal {T},\mathbb {C}) \to  [\mathbb {C}^\mathrm {op},\mathsf {Mod}(\mathcal {T})]]]></fr:tex> given by <fr:tex display="inline"><![CDATA[A \in  \mathsf {Mod}(\mathcal {T},\mathbb {C}) \mapsto  (C \mapsto  (S \in  \mathcal {T} \mapsto  \mathbb {C}(C,A(S))))]]></fr:tex> is fully faithful, and its essential image consists of those functors <fr:tex display="inline"><![CDATA[F]]></fr:tex> so that each <fr:tex display="inline"><![CDATA[F(-)(S) : \mathbb {C}^\mathrm {op} \to  \mathsf {Cat}, S \in  \mathcal {T}]]></fr:tex> is representable,
</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>2025</fr:year><fr:month>5</fr:month><fr:day>4</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    First note that the codomain can be identified with the subcategory of <fr:tex display="inline"><![CDATA[[\mathbb {C}^\mathrm {op} \times  \mathcal {T}, \mathsf {Cat}]]]></fr:tex> spanned by those <fr:tex display="inline"><![CDATA[F]]></fr:tex> where each <fr:tex display="inline"><![CDATA[F(C,-)]]></fr:tex> is a model. Since the Yoneda embedding preserves limits, the functor <fr:tex display="inline"><![CDATA[A \mapsto  \operatorname {\mathrm {Hom}}(-, A(=))]]></fr:tex> from <fr:tex display="inline"><![CDATA[\mathsf {Mod}(\mathcal {T})]]></fr:tex> clearly lands inside here. Since <fr:tex display="inline"><![CDATA[\mathsf {Mod}(\mathcal {T},\mathbb {C})]]></fr:tex> is itself a full subcategory of the functor category <fr:tex display="inline"><![CDATA[[\mathcal {T},\mathbb {C}],]]></fr:tex> this is fully faithful.
  </html:p>
  <html:p>
    Clearly for each model <fr:tex display="inline"><![CDATA[A]]></fr:tex> and for each <fr:tex display="inline"><![CDATA[S \in  \mathcal {T},]]></fr:tex> the functor <fr:tex display="inline"><![CDATA[\mathbb {C}(-,A(S))]]></fr:tex> is representable, by <fr:tex display="inline"><![CDATA[A(S)]]></fr:tex>. Conversely, if <fr:tex display="inline"><![CDATA[F(C,S)]]></fr:tex> is such that each <fr:tex display="inline"><![CDATA[F(-,S)]]></fr:tex> is representable, then the currying of <fr:tex display="inline"><![CDATA[F]]></fr:tex> <fr:tex display="inline"><![CDATA[\mathcal {T} \to  [\mathbb {C}^\mathrm {op},\mathsf {Cat}]]]></fr:tex> factors over <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex>, and since the Yoneda embedding preserves those limits that exist, this factorization must be a model as well.
  </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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-9O7K/</fr:uri>
                    <fr:display-uri>efr-9O7K</fr:display-uri>
                    <fr:route>/efr-9O7K/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {T},\mathcal {T}']]></fr:tex> be limit sketches and suppose given a functor <fr:tex display="inline"><![CDATA[F: \mathsf {Mod}(\mathcal {T}) \to  \mathsf {Mod}(\mathcal {T}')]]></fr:tex> which preserves limits and is <html:em>accessible,</html:em> that is it preserved <fr:tex display="inline"><![CDATA[\kappa ]]></fr:tex>-filtered colimits for some <fr:tex display="inline"><![CDATA[\kappa ]]></fr:tex>. Then <fr:tex display="inline"><![CDATA[F]]></fr:tex> admits a left adjoint <fr:tex display="inline"><![CDATA[L]]></fr:tex>. 
</html:p>
                    <html:p>
  In particular, <fr:tex display="inline"><![CDATA[F(A)(S) = \mathsf {Mod}(\mathcal {T})(L(y(S)),A)]]></fr:tex></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>2025</fr:year>
                  <fr:month>3</fr:month>
                  <fr:day>21</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-ZRUW/</fr:uri>
                <fr:display-uri>efr-ZRUW</fr:display-uri>
                <fr:route>/efr-ZRUW/</fr:route>
                <fr:title text="Pseudocategories">Pseudocategories</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
    Given a 2-category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, there is a natural loosening of the notion of "internal category in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>", given by requiring that associativity and unitality hold only up to chosen coherent isomorphism 2-cells. This is the notion of <html:em>pseudocategory</html:em>. We refer to <fr:link href="/pseudocategories/" title="Pseudo-categories" uri="https://erischel.com/pseudocategories/" display-uri="pseudocategories" type="local">Reference <fr:contextual-number uri="https://erischel.com/pseudocategories/" display-uri="pseudocategories" /></fr:link> for a thorough description of this concept (as well as a review of the earlier literature). However, we will review the basic facts here for convenience.
</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>2025</fr:year>
                      <fr:month>3</fr:month>
                      <fr:day>21</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-ZRUX/</fr:uri>
                    <fr:display-uri>efr-ZRUX</fr:display-uri>
                    <fr:route>/efr-ZRUX/</fr:route>
                    <fr:title text="Internal pseudocategory">Internal pseudocategory</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
    Let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a 2-category with pullbacks. Then an <html:em>internal pseudocategory in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex></html:em> (or simply a pseudocategory in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>) consists of the following data:
</html:p>
                    <html:ol><html:li>Two objects <fr:tex display="inline"><![CDATA[C_0, C_1 \in  \mathcal {C}]]></fr:tex></html:li>
    <html:li>Morphisms <fr:tex display="inline"><![CDATA[d,c: C_1 \to  C_0, e: C_0 \to  C_1]]></fr:tex> so that <fr:tex display="inline"><![CDATA[de = ce = 1_{A_0}]]></fr:tex></html:li>.
    <html:li>A morphism <fr:tex display="inline"><![CDATA[m: C_1 \times _{C_0} C_1 \to  C_1]]></fr:tex>, so that <fr:tex display="inline"><![CDATA[dm = d\pi _2, cm = c\pi _1]]></fr:tex></html:li>
    <html:li>Isomorphism 2-cells <fr:tex display="inline"><![CDATA[\alpha : m(1_{C_1} \times _{C_0} m) \to  m(m \times _{C_0} 1_{C_1})]]></fr:tex>, <fr:tex display="inline"><![CDATA[\lambda : m \langle  ec, 1_{C_1} \rangle  \to  1_CA_1]]></fr:tex></html:li>, and <fr:tex display="inline"><![CDATA[\rho : m\langle  1_{A_1}, ed \rangle  \to  1_{A_1}]]></fr:tex>
    <html:li>Satisfying the following equations: <html:ol><html:li><fr:tex display="inline"><![CDATA[d \circ  \lambda  = 1_d = d \circ  \rho ]]></fr:tex></html:li>
        <html:li><fr:tex display="inline"><![CDATA[c \circ  \lambda  = 1_c = c \circ  \rho ]]></fr:tex></html:li>
        <html:li><fr:tex display="inline"><![CDATA[d \circ  \alpha  = 1_{d\pi _3}]]></fr:tex>, <fr:tex display="inline"><![CDATA[c \circ  \alpha  = 1_{c\pi _1}]]></fr:tex></html:li>
        <html:li><fr:tex display="inline"><![CDATA[\lambda  \circ  e = \rho  \circ  e]]></fr:tex></html:li></html:ol></html:li>
    <html:li>And so that the following diagrams commute:</html:li></html:ol>
                    <html:p>
                      <html:figure>
                        <fr:resource hash="e004c7f759ff82b4c72efeeca472d23e">
                          <fr:resource-content>
                            <html:img src="/e004c7f759ff82b4c72efeeca472d23e.svg" />
                          </fr:resource-content>
                          <fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source>
                          <fr:resource-source type="latex" part="body"><![CDATA[
        \begin {tikzcd}
	& \bullet  && \bullet  \\
	\\
	\bullet  &&&& \bullet  \\
	&& \bullet 
	\arrow ["{m \circ (1_{C_1}\times _{C_0}\alpha )}", from=1-2, to=1-4]
	\arrow ["{\alpha \circ (1_{C_1}\times _{C_0}1_{C_1}\times _{C_0}m)}"', from=1-2, to=3-1]
	\arrow ["{\alpha  \circ  (1_{C_1} \times _{C_0} m \times _{C_0} 1_{C_1})}", from=1-4, to=3-5]
	\arrow ["{\alpha  \circ (m \times _{C_0}1_{C_1}\times _{C_0}1_{C_1})}"', from=3-1, to=4-3]
	\arrow ["{m \circ (\alpha  \times _{C_0}1_{C_1})}"', from=3-5, to=4-3]
\end {tikzcd}
    ]]></fr:resource-source>
                        </fr:resource>
                      </html:figure>
                    </html:p>
                    <html:p>
                      <html:figure>
                        <fr:resource hash="82f92699536e80e219865122e308f712">
                          <fr:resource-content>
                            <html:img src="/82f92699536e80e219865122e308f712.svg" />
                          </fr:resource-content>
                          <fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source>
                          <fr:resource-source type="latex" part="body"><![CDATA[
        \begin {tikzcd}
	\bullet  && \bullet  \\
	& \bullet 
	\arrow ["{\alpha \circ (1_{C_1}\times _{C_0}\langle  ec, 1_{C_1}\rangle )}", from=1-1, to=1-3]
	\arrow ["{m \circ (1_{C_1} \times _{C_0}\lambda )}"', from=1-1, to=2-2]
	\arrow ["{m \circ  (\rho  \times _{C_0}1_{C_1})}", from=1-3, to=2-2]
\end {tikzcd}
    ]]></fr:resource-source>
                        </fr:resource>
                      </html:figure>
                    </html:p>
                    <html:p>
    A <html:em>homomorphism</html:em> or <html:em>strict functor</html:em> of pseudocategories <fr:tex display="inline"><![CDATA[A \to  B]]></fr:tex> is a pair of morphisms <fr:tex display="inline"><![CDATA[F_1: A_1 \to  B_1, F_0: A_0 \to  B_0]]></fr:tex> which commute with all the structure---that is, <fr:tex display="inline"><![CDATA[dF_1 = F_0d]]></fr:tex>, <fr:tex display="inline"><![CDATA[F_1 \alpha  = \alpha  (F_1 \times _{F_0} F_1 \times _{F_0} F_1)]]></fr:tex>, and so on. There is a clear notion of natural transformation of homomorphisms. We write <fr:tex display="inline"><![CDATA[\mathsf {PsCat}_s(\mathbb {C})]]></fr:tex> for the 2-category of pseudocategories, homomorphisms and natural transformations in <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex>.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
    It is important to note that, although this is a weakening of the definition of internal category, pseudocategories are themselves a strict concept---they are defined in terms of equations that must hold up to <html:em>strict</html:em> equality. Thus for example there is an enriched monad (a 2-monad) on <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex> whose <html:em>strict</html:em> algebras are the pseudo double categories.
</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>2025</fr:year>
                      <fr:month>3</fr:month>
                      <fr:day>21</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-ZRUY/</fr:uri>
                    <fr:display-uri>efr-ZRUY</fr:display-uri>
                    <fr:route>/efr-ZRUY/</fr:route>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:ol><html:li>
        An internal pseudocategory in <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex> is, as mentioned above, a pseudo double category.
    </html:li>
    <html:li>
        An internal pseudocategory <fr:tex display="inline"><![CDATA[A]]></fr:tex> with <fr:tex display="inline"><![CDATA[A_0]]></fr:tex> terminal is the same thing as an internal pseudomonoid. If we fix a specific terminal object <fr:tex display="inline"><![CDATA[*]]></fr:tex> and require <fr:tex display="inline"><![CDATA[A_0 = *]]></fr:tex>, this is an <html:em>isomorphism</html:em> of 2-categories (both for the categories of pseudomorphisms and homomorphisms).
    </html:li>
    <html:li>
        An internal pseudocategory with <fr:tex display="inline"><![CDATA[\alpha ,\lambda ,\rho ]]></fr:tex> identities is the same thing as a (strict) internal category. In particular, internal pseudocategories in discrete 2-categories are merely internal categories.
    </html:li></html:ol>
                  </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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-LTJQ/</fr:uri>
                    <fr:display-uri>efr-LTJQ</fr:display-uri>
                    <fr:route>/efr-LTJQ/</fr:route>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathsf {MonCat}_s]]></fr:tex> be the 2-category of monoidal categories, <html:em>strict</html:em> monoidal functors and monoidal natural transformations. Note that this has pullbacks.
  Then the objects of <fr:tex display="inline"><![CDATA[\mathsf {PsCat}(\mathsf {MonCat})]]></fr:tex> are a stricter version of <html:em>monoidal pseudo double categories</html:em>: they are pseudo double categories <fr:tex display="inline"><![CDATA[C_1,C_0]]></fr:tex> where both <fr:tex display="inline"><![CDATA[C_1,C_0]]></fr:tex> carry a monoidal structure so that <fr:tex display="inline"><![CDATA[d,c,e,m]]></fr:tex> are strict monoidal functors and <fr:tex display="inline"><![CDATA[\rho ,\lambda ,\alpha ]]></fr:tex> are monoidal natural transformations.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
    Here we are already beginning to feel the limitations of this internalization a bit---really we should ask for <fr:tex display="inline"><![CDATA[m]]></fr:tex>, at least, to be only a strong monoidal functor. But we move on for now with this problematic definition.
</html:p>
                <html:p>
    Of course, there is a very crucial notion of <html:em>pseudofunctor</html:em> between pseudo double categories. This has an internal formulation in terms of <html:em>pseudomorphisms:</html:em></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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-8YZ9/</fr:uri>
                    <fr:display-uri>efr-8YZ9</fr:display-uri>
                    <fr:route>/efr-8YZ9/</fr:route>
                    <fr:title text="Pseudomorphism of pseudocategories">Pseudomorphism of pseudocategories</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let 
  <fr:tex display="block"><![CDATA[C = (C_0,C_1, d,c,e,m,\alpha ,\lambda ,\rho )]]></fr:tex>
  <fr:tex display="block"><![CDATA[D = (D_0,D_1, d',c',e',m',\alpha ',\lambda ',\rho ')]]></fr:tex>
   be internal pseudocategories in a 2-category <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex>. A <html:em>pseudomorphism <fr:tex display="inline"><![CDATA[F: C \to  D]]></fr:tex></html:em> consists of the following data:
  <html:ol><html:li>Morphisms <fr:tex display="inline"><![CDATA[F_0: C_0 \to  D_0]]></fr:tex>, <fr:tex display="inline"><![CDATA[F_1:C_1 \to  D_1]]></fr:tex> in <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex></html:li>
    <html:li>Isomorphism 2-cells <fr:tex display="inline"><![CDATA[\mu : F_1m \to  m(F_1 \times _{F_0} F_1)]]></fr:tex> and <fr:tex display="inline"><![CDATA[\epsilon  : F_1e \to  eF_0]]></fr:tex></html:li></html:ol>
  So that the following equations hold:
  <html:ol><html:li><fr:tex display="inline"><![CDATA[d'F_1 = F_0d, c'F_1 = F_0c]]></fr:tex></html:li>
    <html:li><fr:tex display="inline"><![CDATA[d' \circ  \mu  = 1_{F_0}d\pi _2, c' \circ  \mu  = 1_{F_0c\pi _1}]]></fr:tex></html:li>
    <html:li><fr:tex display="inline"><![CDATA[d' \circ  \epsilon  = 1_{F_0}, c'\circ  \epsilon  = 1_{F_0}]]></fr:tex></html:li></html:ol>
  And so that the following diagrams commute:
  
  <html:figure><fr:resource hash="e0bc8fd0dd9a0aa0df6e0b07e8f9358d"><fr:resource-content><html:img src="/e0bc8fd0dd9a0aa0df6e0b07e8f9358d.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	& \bullet  & \bullet  \\
	\bullet  &&& \bullet  \\
	& \bullet  & \bullet 
	\arrow ["{\mu (1 \times _{C_0} m)}", from=1-2, to=1-3]
	\arrow ["{F_1\alpha }"', from=1-2, to=2-1]
	\arrow ["{m'(1_{F_1} \times  \mu )}", from=1-3, to=2-4]
	\arrow ["{\mu (m \times _{C_0}1)}"', from=2-1, to=3-2]
	\arrow ["{\alpha ' (F_1\times _{F_0}F_1 \times _{F_0} F_1)}", from=2-4, to=3-3]
	\arrow ["{m'(\mu  \times  1_{F_1})}"', from=3-2, to=3-3]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  
  <html:figure><fr:resource hash="fe17a4599cc11546710758c59803fac5"><fr:resource-content><html:img src="/fe17a4599cc11546710758c59803fac5.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	\bullet  & \bullet  \\
	\bullet  & \bullet  \\
	\bullet  & \bullet  \\
	\bullet  & \bullet 
	\arrow ["{F_1\rho }", from=1-1, to=1-2]
	\arrow ["{\mu \langle  1, ed \rangle }"', from=1-1, to=2-1]
	\arrow ["{m'(1_{F_1} \times  \epsilon )}"', from=2-1, to=2-2]
	\arrow ["{\mu 'F_1}"', from=2-2, to=1-2]
	\arrow ["{F_1\lambda }", from=3-1, to=3-2]
	\arrow ["{\mu \langle  ec, 1\rangle }"', from=3-1, to=4-1]
	\arrow ["{m'(\epsilon  \times  1_{F_1})}"', from=4-1, to=4-2]
	\arrow ["{\mu ' F_1}"', from=4-2, to=3-2]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure></html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
    One should not spend too much time looking at <fr:link href="/efr-8YZ9/" title="Pseudomorphism of pseudocategories" uri="https://erischel.com/efr-8YZ9/" display-uri="efr-8YZ9" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-8YZ9/" display-uri="efr-8YZ9" /></fr:link>. This is clearly a horrible concept, and we will prefer to work around it rather than referring to it explicitly. It may be a useful exercise to convince oneself that, when <fr:tex display="inline"><![CDATA[C_0 = *]]></fr:tex> and the pseudocategory is a pseudomonoid---eg a monoidal category---this coincides with the notion of strong monoidal functor.
</html:p>
                <html:p>
    One can also define lax and oplax functors between pseudo double categories, but we will not need that concept here.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-7ZZG/</fr:uri>
                    <fr:display-uri>efr-7ZZG</fr:display-uri>
                    <fr:route>/efr-7ZZG/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  There exists a <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex>-limit sketch <fr:tex display="inline"><![CDATA[(\mathcal {T}_\mathsf {PsCat}, \Theta _\mathsf {PsCat})]]></fr:tex> whose strict models are internal pseudocategories, and whose strict natural transformations are homomorphisms.
</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>2025</fr:year><fr:month>5</fr:month><fr:day>4</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    There is nothing surprising about this to those familiar with limit sketch presentations of other algebraic gadgets, but for completeness we give an explicit construction here.
  </html:p>
  <html:p>
    Take <fr:tex display="inline"><![CDATA[\mathcal {T}_\mathsf {PsMon}]]></fr:tex> to have objects <fr:tex display="inline"><![CDATA[C_0,C_1,C_2,C_3,C_4]]></fr:tex>. The 2-category is freely generated by these objects and the following data:
  </html:p>
  <html:ol><html:li>
      Morphisms <fr:tex display="inline"><![CDATA[d,c : C_1 \to  C_0]]></fr:tex></html:li>
    <html:li>
      Morphisms <fr:tex display="inline"><![CDATA[\pi _1^i, \pi _2^i: C_{i+1} \to  C_i]]></fr:tex> for <fr:tex display="inline"><![CDATA[i=1,2,3,]]></fr:tex> so that
      
  <html:figure><fr:resource hash="91a48e75c0c38f524d96fb0ce765f76c"><fr:resource-content><html:img src="/91a48e75c0c38f524d96fb0ce765f76c.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
        \begin {tikzcd}
	{C_{i+2}} & {C_{i+1}} \\
	\bullet  & \bullet 
	\arrow ["{\pi _2^{i+1}}", from=1-1, to=1-2]
	\arrow ["{\pi _1^{i+1}}"', from=1-1, to=2-1]
	\arrow ["{\pi ^i_1}", from=1-2, to=2-2]
	\arrow ["{\pi ^i_2}"', from=2-1, to=2-2]
\end {tikzcd}
      ]]></fr:resource-source></fr:resource></html:figure>

      commutes.
    </html:li>
    <html:li>
      Morphisms <fr:tex display="inline"><![CDATA[m: C_2 \to  C_1]]></fr:tex> and <fr:tex display="inline"><![CDATA[e: C_0 \to  C_1]]></fr:tex> satisfying <fr:tex display="inline"><![CDATA[dm = d\pi _1^1, cm = c\pi _2^1, de = ce = 1_{C_0}]]></fr:tex></html:li>
    <html:li>
      Further morphisms, and invertible 2-cells <fr:tex display="inline"><![CDATA[\alpha ,\lambda ,\rho ,]]></fr:tex> as in the following diagrams:
      
  <html:figure><fr:resource hash="2f208819248a5c1100a5200a69d67848"><fr:resource-content><html:img src="/2f208819248a5c1100a5200a69d67848.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
        \begin {tikzcd}
	{C_3} & {C_2} \\
	{C_2} & {C_1}
	\arrow ["{\langle  m, 1_{C_1}\rangle }", from=1-1, to=1-2]
	\arrow ["{\langle  1_{C_1}, m\rangle }"', from=1-1, to=2-1]
	\arrow ["\alpha "', shorten <=4pt, shorten >=4pt, Rightarrow, from=1-2, to=2-1]
	\arrow ["m", from=1-2, to=2-2]
	\arrow ["m"', from=2-1, to=2-2]
\end {tikzcd}
      ]]></fr:resource-source></fr:resource></html:figure>

      
  <html:figure><fr:resource hash="54965addd8835a691d2201e881082bf4"><fr:resource-content><html:img src="/54965addd8835a691d2201e881082bf4.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
        \begin {tikzcd}
	{C_1} & {C_2} & {C_1} \\
	& {C_1}
	\arrow ["{\langle  e, 1_{C_1} \rangle }", from=1-1, to=1-2]
	\arrow [""{name=0, anchor=center, inner sep=0}, "{1_{C_1}}"', from=1-1, to=2-2]
	\arrow [""{name=1, anchor=center, inner sep=0}, "m"{description}, from=1-2, to=2-2]
	\arrow ["{\langle  1_{C_1}, e \rangle }"', from=1-3, to=1-2]
	\arrow [""{name=2, anchor=center, inner sep=0}, "{1_{C_1}}", from=1-3, to=2-2]
	\arrow ["\lambda ", shorten <=3pt, shorten >=3pt, Rightarrow, from=0, to=1]
	\arrow ["\rho "', shorten <=3pt, shorten >=3pt, Rightarrow, from=2, to=1]
\end {tikzcd}
      ]]></fr:resource-source></fr:resource></html:figure>

      and all the other induced morphisms appearing in <fr:link href="/efr-ZRUX/" title="Internal pseudocategory" uri="https://erischel.com/efr-ZRUX/" display-uri="efr-ZRUX" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-ZRUX/" display-uri="efr-ZRUX" /></fr:link>, subject to those equations holding.
    </html:li>
    <html:li>
      Equations asserting that the morphisms and 2-cells with codomain <fr:tex display="inline"><![CDATA[C_i, i>1]]></fr:tex> behave as expected under postcomposition with the pullback projections.
    </html:li></html:ol>
  <html:p>
    The prescribed pullback cones <fr:tex display="inline"><![CDATA[\Theta ]]></fr:tex> are the diagrams involving <fr:tex display="inline"><![CDATA[\pi _j^i]]></fr:tex> for <fr:tex display="inline"><![CDATA[i=0,1,2]]></fr:tex>.
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
                <html:p>
    An explicit description of this sketch seems not to have appeared in the literature until <fr:link href="/varkor-bourke-ko-sketches/" title="Enhanced 2-categorical structures, two-dimensional limit sketches and the symmetry of internalisation" uri="https://erischel.com/varkor-bourke-ko-sketches/" display-uri="varkor-bourke-ko-sketches" type="local">Reference <fr:contextual-number uri="https://erischel.com/varkor-bourke-ko-sketches/" display-uri="varkor-bourke-ko-sketches" /></fr:link> (example 5.13). Note that they construct a richer object, what they term an <html:em><fr:tex display="inline"><![CDATA[\mathcal {F}]]></fr:tex>-sketch,</html:em> which includes the information that the domain and codomain are "tight" and must be preserved strictly by pseudofunctors, but composition and identities are "loose" and may be preserved only up to natural isomorphism. This idea will be highly useful later, although we will not go into a full treatment of their theory.
</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>2025</fr:year>
                  <fr:month>5</fr:month>
                  <fr:day>4</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-NI76/</fr:uri>
                <fr:display-uri>efr-NI76</fr:display-uri>
                <fr:route>/efr-NI76/</fr:route>
                <fr:title text="Actegories">Actegories</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-OFNV/</fr:uri>
                    <fr:display-uri>efr-OFNV</fr:display-uri>
                    <fr:route>/efr-OFNV/</fr:route>
                    <fr:title text="Actegory">Actegory</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex> be a monoidal category. A <html:em><fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex>-actegory</html:em> (also <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex>-module, <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex>-action) is a category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> equipped with a functor
  <fr:tex display="inline"><![CDATA[\cdot : \mathcal {M} \times  \mathcal {C} \to  \mathcal {C}]]></fr:tex> called the <html:em>action</html:em> (written infix, <fr:tex display="inline"><![CDATA[M \cdot  C]]></fr:tex>), and natural isomorphisms <fr:tex display="inline"><![CDATA[\mu : (M \otimes  M') \cdot  C \to  M \cdot  (M' \cdot  C), \eta : I \cdot  C \to  C]]></fr:tex> satisfying the following coherence equations: 
</html:p>
                    <html:p><html:figure><fr:resource hash="3405d248c3510b048b20a84395b47bc9"><fr:resource-content><html:img src="/3405d248c3510b048b20a84395b47bc9.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	{M \cdot  (N \cdot  (P \cdot  C))} && {(M \otimes  N) \cdot  (P \cdot  C)} \\
	{M \cdot  ((N \otimes  P) \cdot  C)} && {((M \otimes  N) \otimes  P) \cdot  C} \\
	& {(M \otimes  (N \otimes  P)) \cdot  C}
	\arrow ["{\mu _{M,N,P\cdot  C}}", from=1-1, to=1-3]
	\arrow ["{M \cdot  \mu _{N,P,C}}"', from=1-1, to=2-1]
	\arrow ["{\mu _{M \otimes  N, P, C}}", from=1-3, to=2-3]
	\arrow ["{\mu _{M, N \otimes  P, C}}"', from=2-1, to=3-2]
	\arrow ["{\alpha _{M,N,P}\cdot  C}", from=2-3, to=3-2]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  
  <html:figure><fr:resource hash="5665f2d69c4c1ac00b5773889131f408"><fr:resource-content><html:img src="/5665f2d69c4c1ac00b5773889131f408.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	{I\cdot  (M \cdot  C)} & {(I \otimes  M) \cdot  C} \\
	& {M\cdot  C}
	\arrow ["{\mu _{I,M,C}}", from=1-1, to=1-2]
	\arrow ["{\eta _{M\cdot  C}^{-1}}"', from=1-1, to=2-2]
	\arrow ["{\lambda _M \cdot  C}", from=1-2, to=2-2]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  
  <html:figure><fr:resource hash="5ddcd0cfdbc7007f8671e0f9d966a7c3"><fr:resource-content><html:img src="/5ddcd0cfdbc7007f8671e0f9d966a7c3.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
\begin {tikzcd}
	{M \cdot  (I \cdot  C)} & {(M \otimes  I) \cdot  C} \\
	& {M\cdot  C}
	\arrow ["{\mu _{I,M,C}}", from=1-1, to=1-2]
	\arrow ["{M \cdot  \eta _C^{-1}}"', from=1-1, to=2-2]
	\arrow ["{\rho  \cdot  C}", from=1-2, to=2-2]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure></html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  Actegories are a very natural concept, and as one would expect their history goes back a long way. The concept has been considered by Benabou all the way back in <fr:link href="/benabou-bicategories/" title="Introduction to bicategories" uri="https://erischel.com/benabou-bicategories/" display-uri="benabou-bicategories" type="local">Reference <fr:contextual-number uri="https://erischel.com/benabou-bicategories/" display-uri="benabou-bicategories" /></fr:link>, and used many times since them. We will not delve too deeply into their theory here---see <fr:link href="/actegories-amthematician-capucci-gavranovic/" title="Actegories for the Working Amthematician" uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" type="local">Reference <fr:contextual-number uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" /></fr:link> for a thorough treatment. 
</html:p>
                <html:p>
  Just as pseudo double categories, actegories really make sense in every 2-category, as a weakening of monoid actions.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-IOLJ/</fr:uri>
                    <fr:display-uri>efr-IOLJ</fr:display-uri>
                    <fr:route>/efr-IOLJ/</fr:route>
                    <fr:title text="Pseudomonoid action">Pseudomonoid action</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex> be a 2-category. A pseudomonoid action internal to <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex> consists of the following data: An internal pseudomonoid <fr:tex display="inline"><![CDATA[M]]></fr:tex>, an object <fr:tex display="inline"><![CDATA[C]]></fr:tex>, a morphism <fr:tex display="inline"><![CDATA[\cdot : M \times  C \to  C,]]></fr:tex> natural isomorphisms <fr:tex display="inline"><![CDATA[\mu : \cdot  (\otimes  \times  1_C) \to  \cdot  (1_M \times  \cdot )]]></fr:tex> and <fr:tex display="inline"><![CDATA[\eta : \cdot  \langle  e, 1_C \rangle  \to  1_C]]></fr:tex>, satisfying the coherence equations from <fr:link href="/efr-OFNV/" title="Actegory" uri="https://erischel.com/efr-OFNV/" display-uri="efr-OFNV" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-OFNV/" display-uri="efr-OFNV" /></fr:link>.
</html:p>
                    <html:p>
  A <html:em>strict homomorphism of actions</html:em> is a pair <fr:tex display="inline"><![CDATA[F_m: M \to  M', F_c: C \to  C']]></fr:tex> so that <fr:tex display="inline"><![CDATA[F_m]]></fr:tex> is a strictly monoidal functor and <fr:tex display="inline"><![CDATA[F_c]]></fr:tex> preserves the action strictly, i.e <fr:tex display="inline"><![CDATA[F_m(M) \cdot  F_c(C) = F_c(M \cdot  C)]]></fr:tex>, <fr:tex display="inline"><![CDATA[F_c(\eta ) = \eta ',]]></fr:tex> etc. Note that this makes sense even if the monoidal category or action is not itself strict.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-6S13/</fr:uri>
                    <fr:display-uri>efr-6S13</fr:display-uri>
                    <fr:route>/efr-6S13/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  There is a limit sketch <fr:tex display="inline"><![CDATA[\mathcal {T}_\mathsf {Act}, \Theta _\mathsf {Act}]]></fr:tex> whose models are tuples <fr:tex display="inline"><![CDATA[(M,C,\cdot )]]></fr:tex> of a pseudomonoid <fr:tex display="inline"><![CDATA[M = (M,\otimes ,I)]]></fr:tex>, an object <fr:tex display="inline"><![CDATA[C]]></fr:tex> and an action <fr:tex display="inline"><![CDATA[\cdot ]]></fr:tex> of <fr:tex display="inline"><![CDATA[M]]></fr:tex> on <fr:tex display="inline"><![CDATA[C]]></fr:tex>. The strict natural transformations between models are strictly linear functors.
</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>2025</fr:year><fr:month>5</fr:month><fr:day>4</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    As above, there is nothing difficult about this.
    Let <fr:tex display="inline"><![CDATA[\mathcal {T}_\mathsf {Act}]]></fr:tex> contain as a subcategory the sketch of pseudomonoids <fr:tex display="inline"><![CDATA[\mathcal {T}_\mathsf {PsMon}]]></fr:tex>, along with three additional objects <fr:tex display="inline"><![CDATA[C, MC, MMC,]]></fr:tex> projections <fr:tex display="inline"><![CDATA[\pi ^1_M, \pi ^1_C: MC \to  M,C,]]></fr:tex> <fr:tex display="inline"><![CDATA[\pi ^2_{M_1}, \pi ^2_{M_2}, \pi ^2_{C} : MMC \to  M, M, C]]></fr:tex>, and limit cones expressing these as the products <fr:tex display="inline"><![CDATA[M \times  C]]></fr:tex> and <fr:tex display="inline"><![CDATA[M \times  M \times  C]]></fr:tex> respectively, a morphism <fr:tex display="inline"><![CDATA[\cdot : MC \to  C,]]></fr:tex> and isomorphism 2-cells <fr:tex display="inline"><![CDATA[\eta : 1_C \Rightarrow  \cdot  \langle  I, 1_C \rangle ]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mu : \cdot  \langle  \pi ^2_{M_1}, \cdot  \langle  \pi ^2_{M_2}, \pi ^2_C \rangle  \rangle  \to  \cdot  \langle   \otimes  \langle  \pi ^2_{M_1}, \pi ^2_{M_2} \rangle , \pi ^2_C \rangle ]]></fr:tex>, subject to the coherence equations in <fr:link href="/efr-OFNV/" title="Actegory" uri="https://erischel.com/efr-OFNV/" display-uri="efr-OFNV" type="local">Definition <fr:contextual-number uri="https://erischel.com/efr-OFNV/" display-uri="efr-OFNV" /></fr:link>.
  </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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-I33G/</fr:uri>
                    <fr:display-uri>efr-I33G</fr:display-uri>
                    <fr:route>/efr-I33G/</fr:route>
                    <fr:title text="Discrete pseudomonoid">Discrete pseudomonoid</fr:title>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  If <fr:tex display="inline"><![CDATA[\mathbb {C} = \mathcal {C}]]></fr:tex> is an ordinary category with finite products (viewed as a discrete 2-category), a pseudomonoid is simply an internal monoid, and an action is just a monoid action in the ordinary sense.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-ARIX/</fr:uri>
                    <fr:display-uri>efr-ARIX</fr:display-uri>
                    <fr:route>/efr-ARIX/</fr:route>
                    <fr:title text="Monoidal and symmetric monoidal actegories">Monoidal and symmetric monoidal actegories</fr:title>
                    <fr:taxon>Example</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  In <fr:link href="/actegories-amthematician-capucci-gavranovic/" title="Actegories for the Working Amthematician" uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" type="local">Reference <fr:contextual-number uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" /></fr:link>, the authors study actegories with extra monoidal structure. Although they do not introduce pseudomonoid actions in a general 2-category, they study actegories internal to monoidal categories, which they call <html:em>monoidal actegories.</html:em> It is straightforward to check that pseudomonoid actions in <fr:tex display="inline"><![CDATA[\mathsf {MonCat}]]></fr:tex> agree with their notion: such an action consists of a braided monoidal category <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex>, an ordinary monoidal category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, a monoidal functor <fr:tex display="inline"><![CDATA[\mathcal {M} \times  \mathcal {C} \to  \mathcal {C},]]></fr:tex> and monoidal natural transformations <fr:tex display="inline"><![CDATA[\mu ,\eta ]]></fr:tex> satisfying the coherence equations for an actegory.
</html:p>
                    <html:p>
  (Note that since the functor <fr:tex display="inline"><![CDATA[\otimes ]]></fr:tex> appears on one side of <fr:tex display="inline"><![CDATA[\mu ]]></fr:tex>, to speak of <fr:tex display="inline"><![CDATA[\mu ]]></fr:tex> being a monoidal natural transformation we must have a monoidal structure on <fr:tex display="inline"><![CDATA[\otimes ]]></fr:tex>---this makes <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex> into a braided monoidal category).
</html:p>
                    <html:p>
  For the case of symmetric monoidal actegories, since <fr:tex display="inline"><![CDATA[\mathsf {SymMonCat}]]></fr:tex> is cocartesian, <fr:tex display="inline"><![CDATA[\mathsf {PsMon}(\mathsf {SymMonCat}) \simeq  \mathsf {SymMonCat}]]></fr:tex>. Given two symmetric monoidal categories <fr:tex display="inline"><![CDATA[\mathcal {M},\mathcal {C},]]></fr:tex> <fr:link href="/actegories-amthematician-capucci-gavranovic/" title="Actegories for the Working Amthematician" uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" type="local">Reference <fr:contextual-number uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" /></fr:link> show that an action is simply given by a strong symmetric monoidal functor <fr:tex display="inline"><![CDATA[f: \mathcal {M} \to  \mathcal {C}]]></fr:tex> (and in this case the action is <fr:tex display="inline"><![CDATA[M \cdot  C = F(M) \otimes  C]]></fr:tex>). Unwinding this construction we see that <fr:tex display="inline"><![CDATA[\mathsf {Act}_s(\mathsf {SymMonCat})]]></fr:tex> is bi-equivalent to a category which has as objects strong (but not strict) symmetric monoidal functors <fr:tex display="inline"><![CDATA[C \to  C',]]></fr:tex> and morphisms squares
  
  <html:figure><fr:resource hash="900cdb97ab52b72c832dd31866f4500f"><fr:resource-content><html:img src="/900cdb97ab52b72c832dd31866f4500f.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	C & D \\
	{C'} & {D'}
	\arrow [from=1-1, to=1-2]
	\arrow [squiggly, from=1-1, to=2-1]
	\arrow [squiggly, from=1-2, to=2-2]
	\arrow [squiggly, from=2-1, to=2-2]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  of symmetric monoidal functors, where the top map is strict, and which commute strictly.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  Again, as expected, the notion of strict linear morphism is usually too strict. One can expect an equation like <fr:tex display="inline"><![CDATA[F_m(M) \cdot  F_c(C) = F_c(M \cdot  C)]]></fr:tex> to hold only up to coherent isomorphism. Let us now make this clear:
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-L5QG/</fr:uri>
                    <fr:display-uri>efr-L5QG</fr:display-uri>
                    <fr:route>/efr-L5QG/</fr:route>
                    <fr:title text="Pseudolinear map">Pseudolinear map</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex> be a 2-category, and let <fr:tex display="inline"><![CDATA[(M,C,\cdot ), (N,D,\star )]]></fr:tex> be internal pseudomonoid actions. A <html:em>pseudolinear map</html:em> (or just <html:em>linear</html:em>) is a pair of maps <fr:tex display="inline"><![CDATA[F_m: M \to  N, F_c: C \to  D]]></fr:tex>, equipped with a pseudomonoid pseudohomomorphism structure <fr:tex display="inline"><![CDATA[\phi , \tau ]]></fr:tex> on <fr:tex display="inline"><![CDATA[F_m]]></fr:tex> and a natural isomorphism <fr:tex display="inline"><![CDATA[l: F_m(-) \cdot  F_c(=) \to  F_c(- \cdot  =)]]></fr:tex> satisfying the following coherence conditions (note that writing functors using element-notation like this is well-defined)
</html:p>
                    <html:p><html:figure><fr:resource hash="4869c39e3c3f12fd94a39d56bc1a145c"><fr:resource-content><html:img src="/4869c39e3c3f12fd94a39d56bc1a145c.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	{F_m(M)\star (F_m(N)\star  F_c(C))} && {F_m(M) \star  F_c(N \cdot  C)} \\
	{(F_m(M) \otimes  F_m(N)) \star  F_c(C)} \\
	{F_m(M\otimes  N)\star  F_c(C)} && {F_c(M \cdot  (N \cdot  C))} \\
	& {F_c((M \otimes  N)\cdot  C)}
	\arrow ["{F_m(M)\star  l_{N,C}}"', from=1-1, to=1-3]
	\arrow ["{\mu ^\star _{F_m(M),F_m(N),F_c(C)}}", from=1-1, to=2-1]
	\arrow ["{l_{M,N \cdot  C}}"', from=1-3, to=3-3]
	\arrow ["{\phi _{M,N}\star  F_c(C)}", from=2-1, to=3-1]
	\arrow ["{l_{M\otimes  N, C}}", from=3-1, to=4-2]
	\arrow ["{F_c(\mu ^\cdot _{M,N,C})}"', from=3-3, to=4-2]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  
  <html:figure><fr:resource hash="36a3d6b86496833017485d04528e625b"><fr:resource-content><html:img src="/36a3d6b86496833017485d04528e625b.svg" /></fr:resource-content><fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source><fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
	{F_m(I)\star  F_c(C)} & {F(I\cdot  C)} \\
	{I'\star  F_c(C)} & {F_c(C)}
	\arrow ["{l_{I,C}}", from=1-1, to=1-2]
	\arrow ["\tau ", from=2-1, to=1-1]
	\arrow ["{\eta ^\star _{F_c(C)}}"', from=2-1, to=2-2]
	\arrow ["{F_c(\eta _C)}"', from=2-2, to=1-2]
\end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure></html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  In <fr:link href="/actegories-amthematician-capucci-gavranovic/" title="Actegories for the Working Amthematician" uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" type="local">Reference <fr:contextual-number uri="https://erischel.com/actegories-amthematician-capucci-gavranovic/" display-uri="actegories-amthematician-capucci-gavranovic" /></fr:link>, these are defined in two steps: first linear functors for the same <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex> (those with <fr:tex display="inline"><![CDATA[F_m = 1_\mathcal {M}]]></fr:tex>) are considered. Then, given a strong monoidal <fr:tex display="inline"><![CDATA[\mathcal {M} \to  \mathcal {N},]]></fr:tex> a functorial assignment of an <fr:tex display="inline"><![CDATA[\mathcal {M}]]></fr:tex>-action to every <fr:tex display="inline"><![CDATA[\mathcal {N}]]></fr:tex>-action is constructed, and the full category of actions is defined as the Grothendieck construction of this. There is nothing preventing this from working in the setting of a general 2-category, and it is straightforward to verify that our notion of linear morphism of actions agrees with theirs.
</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>2025</fr:year>
                  <fr:month>5</fr:month>
                  <fr:day>4</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-GZH4/</fr:uri>
                <fr:display-uri>efr-GZH4</fr:display-uri>
                <fr:route>/efr-GZH4/</fr:route>
                <fr:title text="\mathsf {\mathbb  Para} for a general 2-category"><fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}]]></fr:tex> for a general 2-category</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  We are now almost ready to prove:
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-I897/</fr:uri>
                    <fr:display-uri>efr-I897</fr:display-uri>
                    <fr:route>/efr-I897/</fr:route>
                    <fr:taxon>Theorem</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex> be a 2-category which admits pullbacks, products and comma objects.
  Then there is a functor <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}: \mathsf {Act}(\mathbb {C}) \to  \mathsf {PsCat}(\mathbb {C})]]></fr:tex> from the 2-category of pseudomonoid actions and pseudolinear maps to the 2-category of pseudocategories and pseudofunctors, with <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}_\mathcal {M}(\mathcal {C})_0 = \mathcal {C}]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}_\mathcal {M}(\mathcal {C})_1 = \mathcal {M} \times  \mathcal {C} \downarrow  \mathcal {C}]]></fr:tex>. 
  
   This functor preserves strict maps, limits, and filtered colimits.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  The main ingredient missing is a characterization of the respective notions of pseudomorphism in terms of the limit sketches. This we do now:
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-NZ0X/</fr:uri>
                    <fr:display-uri>efr-NZ0X</fr:display-uri>
                    <fr:route>/efr-NZ0X/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex> be a 2-category and let <fr:tex display="inline"><![CDATA[C,D : \mathcal {T}_\mathsf {PsCat} \to  \mathbb {C}]]></fr:tex> be pseudocategories, represented as models of the theory.
  Then a pseudonatural transformation <fr:tex display="inline"><![CDATA[F: C \to  D]]></fr:tex> which is strict on <fr:tex display="inline"><![CDATA[c,d,e]]></fr:tex> and the limit projections <fr:tex display="inline"><![CDATA[\pi ^i_j]]></fr:tex> is equivalently a pseudomorphism between the pseudocategories.
</html:p><html:p>
  Now let <fr:tex display="inline"><![CDATA[(M,C), (N,D) : \mathcal {T}_\mathsf {Act} \to  \mathbb {C}]]></fr:tex> be pseudomonoid actions. Then a pseudonatural transformation <fr:tex display="inline"><![CDATA[F_m, F_c]]></fr:tex> which preserves the product projections strictly is equivalently a pair of a pseudomorphism <fr:tex display="inline"><![CDATA[F_m : M \to  N]]></fr:tex> and a functor <fr:tex display="inline"><![CDATA[F_c: C \to  D]]></fr:tex> which is pseudolinear with respect to the action <fr:tex display="inline"><![CDATA[F_m(-) \cdot  =]]></fr:tex> of <fr:tex display="inline"><![CDATA[M]]></fr:tex> on <fr:tex display="inline"><![CDATA[D]]></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>2025</fr:year><fr:month>5</fr:month><fr:day>4</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Both of these are essentially a matter of unwinding the definitions. Let us start with pseudocategories. The requirement that <fr:tex display="inline"><![CDATA[F]]></fr:tex> is strict on the product projections amounts to requiring that <fr:tex display="inline"><![CDATA[F_{C_2} : C_2 \to  D_2]]></fr:tex> is given <html:em>strictly</html:em> as the pullback <fr:tex display="inline"><![CDATA[F_1 \times _{F_0} F_1,]]></fr:tex> and not merely up to 2-isomorphism. With this, <fr:tex display="inline"><![CDATA[\mu ]]></fr:tex> is just a naturality transformation for <fr:tex display="inline"><![CDATA[m]]></fr:tex>, and <fr:tex display="inline"><![CDATA[\epsilon ]]></fr:tex> is a naturality transformation for <fr:tex display="inline"><![CDATA[e]]></fr:tex>. Note that since every map in <fr:tex display="inline"><![CDATA[\mathcal {T}_\mathsf {PsCat}]]></fr:tex> is induced from <fr:tex display="inline"><![CDATA[m, e, c,d]]></fr:tex> and the pullback structure, this means the other naturality transformations are determined by <fr:tex display="inline"><![CDATA[\mu , \epsilon ]]></fr:tex></html:p>
  <html:p>
    The composite <fr:tex display="inline"><![CDATA[m'(1_{F_1} \times  \mu ) \mu (1 \times _{C_0} m)]]></fr:tex> is the naturality transformation for the map <fr:tex display="inline"><![CDATA[m (1 \times  m)]]></fr:tex>, and analogously for the composite <fr:tex display="inline"><![CDATA[m'(\mu  \times  1_{F_1})\mu (m \times _{C_0} 1)]]></fr:tex>. Hence the hexagon is a pseudonaturality coherence for the 2-cell <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex>. Analogously the two squares can be obtained as coherence 2-cells. Conversely, these suffice to make <fr:tex display="inline"><![CDATA[F]]></fr:tex> a pseudonatural transformation, again since all the other 2-cells are generated by <fr:tex display="inline"><![CDATA[\alpha , \rho ,\lambda ]]></fr:tex>. 
  </html:p>
  <html:p>
    Now let us look at pseudomonoid actions. As above, such a pseudonatural transformation is determined by the functors <fr:tex display="inline"><![CDATA[F_m: M \to  N]]></fr:tex> and <fr:tex display="inline"><![CDATA[F_c: C \to  D]]></fr:tex> plus some 2-cells involving these and their products. As a special case of the above when <fr:tex display="inline"><![CDATA[C_0, D_0 = *]]></fr:tex> we find that the restriction <fr:tex display="inline"><![CDATA[F_m]]></fr:tex> of the pseudonatural transformation to the pseudomonoid part is equivalently a strong monoidal functor. Now the required lineator <fr:tex display="inline"><![CDATA[l: \cdot _D (F_m \times  F_c) \to  F_m(\cdot )]]></fr:tex> is a naturality square for the multiplication map <fr:tex display="inline"><![CDATA[\cdot  \in  \mathcal {T}_\mathsf {Act}]]></fr:tex>. As above this determines all the other naturality transformations because all the other maps are generated from <fr:tex display="inline"><![CDATA[\cdot ]]></fr:tex> (and the pseudomonoid structure) using the product structure. Also analogously to the above argument, the coherence pentagon is a pseudonaturality coherence for the natural isomorphism <fr:tex display="inline"><![CDATA[\mu ]]></fr:tex>, and the coherence triangle for <fr:tex display="inline"><![CDATA[\eta ]]></fr:tex>.
  </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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-T667/</fr:uri>
                    <fr:display-uri>efr-T667</fr:display-uri>
                    <fr:route>/efr-T667/</fr:route>
                    <fr:taxon>Remark</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  This characterization of the notions of pseudomorphism cannot help but seem a little ad hoc.
  The basic idea here seems to go back to Power in <fr:link href="/power-enriched-lawvere/" title="Enriched Lawvere Theories" uri="https://erischel.com/power-enriched-lawvere/" display-uri="power-enriched-lawvere" type="local">Reference <fr:contextual-number uri="https://erischel.com/power-enriched-lawvere/" display-uri="power-enriched-lawvere" /></fr:link>. After constructing an enriched Lawvere theory (which is just a special kind of limit sketch) corresponding to any finitary enriched monad, he notes that in the <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex>-enriched case the pseudomorphisms of monad algebras correspond to exactly those pseudonatural transformations which preserve the products strictly.
</html:p>
                    <html:p>
  An elegant theory which generalizes this basic idea has recently been developed by Bourke, Ko, and Varkor in <fr:link href="/varkor-bourke-ko-sketches/" title="Enhanced 2-categorical structures, two-dimensional limit sketches and the symmetry of internalisation" uri="https://erischel.com/varkor-bourke-ko-sketches/" display-uri="varkor-bourke-ko-sketches" type="local">Reference <fr:contextual-number uri="https://erischel.com/varkor-bourke-ko-sketches/" display-uri="varkor-bourke-ko-sketches" /></fr:link> (as we mentioned briefly before). Their theory involves decorating the sketch with a set of <html:em>tight</html:em> morphisms, which the transformations must be strictly natural with respect to. Beyond developing a general theory of this (not specialized to a few examples as above,) they also show how to construct the categories of <html:em>(op)lax</html:em> homomorphisms, and develop a commutativity of internalization principle for their models. This could be profitably applied in our case to understand better, for example, the implied notion of monoidal triple category, but we will not pursue this here.
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0BHI/</fr:uri>
                    <fr:display-uri>efr-0BHI</fr:display-uri>
                    <fr:route>/efr-0BHI/</fr:route>
                    <fr:title text="Proof of Theorem [https://erischel.com/efr-I897/]">Proof of <fr:link href="/efr-I897/" title="https://erischel.com/efr-I897/" uri="https://erischel.com/efr-I897/" display-uri="efr-I897" type="local">Theorem <fr:contextual-number uri="https://erischel.com/efr-I897/" display-uri="efr-I897" /></fr:link></fr:title>
                    <fr:taxon>Proof</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  First recall that <fr:tex display="inline"><![CDATA[\mathsf {Mod}(\mathcal {T},\mathbb {C})]]></fr:tex> can be identified with the subcategory of <fr:tex display="inline"><![CDATA[[\mathbb {C}^\mathrm {op}, \mathsf {Mod}(\mathcal {T})]]]></fr:tex> spanned by the levelwise representable presheaves.
  Note that for <fr:tex display="inline"><![CDATA[\mathcal {T} = \mathcal {T}_\mathsf {PsCat},]]></fr:tex> it suffices to verify representability for <fr:tex display="inline"><![CDATA[C_0,C_1 \in  \mathcal {T}_\mathsf {PsCat},]]></fr:tex> since the rest are pullbacks of these, and pullbacks of representable presheaves are again representable since <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex> admits pullbacks.
</html:p>
                    <html:p>
  Postcomposition with the previously-constructed functor <fr:tex display="inline"><![CDATA[\mathsf {Mod}(\mathcal {T}_\mathsf {Act}) = \mathsf {Act}(\mathsf {Cat}) \to  \mathsf {PsCat}(\mathsf {Act}) = \mathsf {Mod}(\mathcal {T}_\mathsf {PsCat})]]></fr:tex> gives a functor <fr:tex display="inline"><![CDATA[[\mathbb {C}^\mathrm {op},\mathsf {Mod}(\mathcal {T}_\mathsf {Act})] \to  [\mathbb {C}^\mathrm {op},\mathsf {Mod}(\mathcal {T}_\mathsf {PsCat})]]]></fr:tex>. Clearly this functor preserves representability (again, since limits of representable functors are representable). This gives the desired functor <fr:tex display="inline"><![CDATA[\mathsf {Mod}_s(\mathcal {T}_\mathsf {Act}, \mathbb {C}) \to  \mathsf {Mod}_s(\mathcal {T}_\mathsf {PsCat}, \mathbb {C})]]></fr:tex>.
</html:p>
                    <html:p>
    Under the identification of <fr:tex display="inline"><![CDATA[\mathsf {Mod}(\mathcal {T},\mathbb {C})]]></fr:tex> with a subcategory of <fr:tex display="inline"><![CDATA[[\mathbb {C}^\mathrm {op} \times  \mathcal {T}, \mathsf {Cat}],]]></fr:tex> it is clear that the pseudonatural transformations of models correspond to those pseudonatural transformations which are strict on morphisms in <fr:tex display="inline"><![CDATA[\mathbb {C}^\mathrm {op}]]></fr:tex>. This implies the full category <fr:tex display="inline"><![CDATA[\mathsf {Mod}_p(\mathbb {C})]]></fr:tex> of models and pseudonatural transformations can be identified with the subcategory of <fr:tex display="inline"><![CDATA[[\mathbb {C}^\mathrm {op},\mathsf {Mod}_p(\mathcal {T},\mathsf {Cat})]]]></fr:tex> spanned by those 2-functors which come from models---that is, <fr:tex display="inline"><![CDATA[A: \mathbb {C}^\mathrm {op} \to  \mathsf {Mod}_p(\mathcal {T}) = \mathsf {Mod}_p(\mathcal {T},\mathsf {Cat})]]></fr:tex> must factor over <fr:tex display="inline"><![CDATA[\mathsf {Mod}(\mathcal {T}) \hookrightarrow  \mathsf {Mod}_p(\mathcal {T})]]></fr:tex>. 
</html:p>
                    <html:p>
    (To be clear: the morphisms in <fr:tex display="inline"><![CDATA[[\mathbb {C}^\mathrm {op}, \mathsf {Mod}_p(\mathcal {T})]]]></fr:tex> are strictly natural transformations between functors <fr:tex display="inline"><![CDATA[\mathbb {C}^\mathrm {op} \to  \mathsf {Mod}_p(\mathcal {T})]]></fr:tex>, but each component <fr:tex display="inline"><![CDATA[A(C) \to  B(C)]]></fr:tex> of such a natural transformation is a pseudonatural transformation of models).
</html:p>
                    <html:p>
    Under <html:em>this</html:em> identification, it is clear that pseudofunctors correspond to those natural transformations in <fr:tex display="inline"><![CDATA[[\mathbb {C}^\mathrm {op}, \mathsf {Mod}_p(\mathcal {T}_\mathsf {PsCat})]]]></fr:tex> which are valued in pseudofunctors, and analogously for pseudolinear morphisms and maps <fr:tex display="inline"><![CDATA[[\mathbb {C}^\mathrm {op}, \mathsf {Mod}_p(\mathcal {T}_\mathsf {Act})]]]></fr:tex>. Hence it suffices to observe that the <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex>-valued version <fr:tex display="inline"><![CDATA[\mathsf {Mod}(\mathcal {T}_\mathsf {Act}) \to  \mathsf {Mod}(\mathcal {T}_\mathsf {PsCat})]]></fr:tex> carries pseudolinear maps to pseudofunctors.
</html:p>
                    <html:p>
    Note that <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}: \mathsf {Mod}(\mathcal {T}_\mathsf {Act}) \to  \mathsf {Mod}(\mathcal {T}_\mathsf {PsCat})]]></fr:tex> is given objectwise as a finite limit. Moreover, since the limit sketch of pseudocategories only involved finite limits, the class of pseudocategories is stable under filtered colimits in <fr:tex display="inline"><![CDATA[[\mathcal {T}_\mathsf {PsCat}, \mathsf {Cat}]]]></fr:tex>. Hence <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}]]></fr:tex> commutes with filtered colimits, and is in particular accessible.
    Hence it admits a left adjoint <fr:tex display="inline"><![CDATA[L]]></fr:tex> <fr:tex display="inline"><![CDATA[(M,C) \mapsto  \operatorname {\mathrm {Hom}}_{\mathsf {Mod}(\mathcal {T}_\mathsf {Act})(L(-), (M,C))}]]></fr:tex> where <fr:tex display="inline"><![CDATA[L: \mathcal {T}_\mathsf {PsCat}^\mathrm {op} \to  [\mathcal {T}_\mathsf {Act},\mathsf {Cat}]]]></fr:tex> is the restriction of the left adjoint of <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}]]></fr:tex>. Both forming the hom-category <fr:tex display="inline"><![CDATA[\operatorname {\mathrm {Hom}}(-, (M,C))]]></fr:tex> and precomposing with <fr:tex display="inline"><![CDATA[L]]></fr:tex> are 2-functors, and as such preserve pseudonatural transformations. Thus it only remains to observe that <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}]]></fr:tex> also preserves the partial strictness property, but this clear.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  We have not yet given any thought to functoriality in <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex>, but passing through the constructions, it is apparent that we have:
</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>2025</fr:year>
                      <fr:month>5</fr:month>
                      <fr:day>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-TY4G/</fr:uri>
                    <fr:display-uri>efr-TY4G</fr:display-uri>
                    <fr:route>/efr-TY4G/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  If <fr:tex display="inline"><![CDATA[\mathbb {C} \to  \mathbb {D}]]></fr:tex> is a 2-functor that preserves finite 2-limits, the square
</html:p>
                    <html:p>
                      <html:figure>
                        <fr:resource hash="1ed26f96ac51f42384959de08dfb7a89">
                          <fr:resource-content>
                            <html:img src="/1ed26f96ac51f42384959de08dfb7a89.svg" />
                          </fr:resource-content>
                          <fr:resource-source type="latex" part="preamble"><![CDATA[\usepackage {quiver, amsopn, amssymb, mathrsfs}]]></fr:resource-source>
                          <fr:resource-source type="latex" part="body"><![CDATA[
    \begin {tikzcd}
    \mathsf {Act}(\mathbb {C}) \ar [d] \ar [r] & \mathsf {Act}(\mathbb {D}) \ar [d]\\
    \mathsf {PsCat}(\mathbb {C}) \ar [r] & \mathsf {PsCat}(\mathbb {D})
    \end {tikzcd}
  ]]></fr:resource-source>
                        </fr:resource>
                      </html:figure>
                    </html:p>
                    <html:p>
  commutes up to strict natural isomorphism. (In particular, the square involving the subcategories of strict homomorphisms also commutes up to natural isomorphism).
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  (It may seem wrong that, after working strictly all this time, this square commutes only up to natural isomorphism, but in fact that is the strict notion---the weak version of this statement would be that it commuted up to natural <html:em>equivalence</html:em>. Note that eg. the comma objects <fr:tex display="inline"><![CDATA[M \times  C \downarrow  C]]></fr:tex> are only characterized up to isomorphism, so this is really the best we can hope for)
</html:p>
                <html:p>
  The main problem with <fr:link href="/efr-I897/" title="https://erischel.com/efr-I897/" uri="https://erischel.com/efr-I897/" display-uri="efr-I897" type="local">Theorem <fr:contextual-number uri="https://erischel.com/efr-I897/" display-uri="efr-I897" /></fr:link> is that for many 2-categorical notions of interest, requiring (for example) the action <fr:tex display="inline"><![CDATA[\mathcal {M} \times  \mathcal {C} \to  \mathcal {C}]]></fr:tex> to be a strict homomorphism of whatever structure under consideration is too strict to work, while working with the full category of pseudomorphisms prevents the pullbacks required for pseudocategories from existing. Thus for example, an internal pseudomonoid in <fr:tex display="inline"><![CDATA[\mathsf {MonCat}_s]]></fr:tex> is a <html:em>commutative</html:em> monoidal category, which is far too strict for most purposes---generally speaking, symmetric monoidal categories can <html:em>not</html:em> be strictified into commutative ones.
</html:p>
                <html:p>
  In <fr:link href="/efr-ZRUZ/" title="Categories of stochastic dynamical systems" uri="https://erischel.com/efr-ZRUZ/" display-uri="efr-ZRUZ" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-ZRUZ/" display-uri="efr-ZRUZ" /></fr:link>, we will want to construct a symmetric monoidal "triple category"---that is, a symmetric monoidal pseudocategory in strict double categories.
  We will manage this via the preceding by noting that since <fr:tex display="inline"><![CDATA[\mathsf {Act}(\mathbb {C}) \to  \mathsf {PsCat}(\mathbb {C})]]></fr:tex> preserves products, it carries (symmetric) pseudomonoids to pseudomonoids---in other words, we can apply the internalization the other way around, taking pseudomonoids in actions rather than actions in pseudomonoids. This works because strict <html:em>products</html:em> still exist in the category of pseudohomomorphisms, but for a more general categorical structure, we would be in trouble.
</html:p>
              </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="Contributions">Contributions</fr:title>
      </fr:frontmatter>
      <fr:mainmatter />
    </fr:tree>
  </fr:backmatter>
</fr:tree>
