<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/default.xsl"?>
<fr:tree xmlns:fr="http://www.forester-notes.org" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:xml="http://www.w3.org/XML/1998/namespace" root="false" base-url="/">
  <fr:frontmatter>
    <fr:authors>
      <fr:author>
        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
      </fr:author>
    </fr:authors>
    <fr:date>
      <fr:year>2024</fr:year>
      <fr:month>5</fr:month>
      <fr:day>25</fr:day>
    </fr:date>
    <fr:uri>https://erischel.com/efr-0002/</fr:uri>
    <fr:display-uri>efr-0002</fr:display-uri>
    <fr:route>/efr-0002/</fr:route>
    <fr:title text="Bidirectionality in graphical models">Bidirectionality in graphical models</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>5</fr:month>
          <fr:day>25</fr:day>
        </fr:date>
        <fr:uri>https://erischel.com/efr-0003/</fr:uri>
        <fr:display-uri>efr-0003</fr:display-uri>
        <fr:route>/efr-0003/</fr:route>
        <fr:title text="Structural Causal Model">Structural Causal Model</fr:title>
        <fr:taxon>Definition</fr:taxon>
      </fr:frontmatter>
      <fr:mainmatter>
        <html:p>
  Let <fr:tex display="inline"><![CDATA[G]]></fr:tex> be a (finite) directed acyclic graph (DAG). Then a structural causal model (SCM) on <fr:tex display="inline"><![CDATA[G]]></fr:tex> consists of
  <html:ul><html:li>For each vertex <fr:tex display="inline"><![CDATA[v \in  V(G)]]></fr:tex>, measurable spaces <fr:tex display="inline"><![CDATA[\mathcal {X}_v, \mathcal {E}_v]]></fr:tex></html:li>
    <html:li>A family of independent random variables <fr:tex display="inline"><![CDATA[E_v \in  \mathcal {E}_v]]></fr:tex>---these are called the <html:em>exogenous variables</html:em></html:li>
    <html:li>For each <fr:tex display="inline"><![CDATA[v]]></fr:tex>, a measurable function <fr:tex display="inline"><![CDATA[\phi _v: \mathcal {E}_v  \times  \prod _{v' \to  v} \mathcal {X}_{v'} \to  \mathcal {X}_v]]></fr:tex> (note that if <fr:tex display="inline"><![CDATA[v]]></fr:tex> has no parents, the product is just a singleton)</html:li></html:ul></html:p>
      </fr:mainmatter>
    </fr:tree>
    <html:p>
  There is a significant existing literature (see <fr:link href="/beckers_abstracting_2019/" title="Abstracting causal models" uri="https://erischel.com/beckers_abstracting_2019/" display-uri="beckers_abstracting_2019" type="local">Abstracting causal models</fr:link>, <fr:link href="/rischel_compositional_2021/" title="Compositional abstraction error and a category of causal models" uri="https://erischel.com/rischel_compositional_2021/" display-uri="rischel_compositional_2021" type="local">Reference <fr:contextual-number uri="https://erischel.com/rischel_compositional_2021/" display-uri="rischel_compositional_2021" /></fr:link>, <fr:link href="/rubenstein_causal_2017/" title="Causal consistency of structural equation models" uri="https://erischel.com/rubenstein_causal_2017/" display-uri="rubenstein_causal_2017" type="local">Reference <fr:contextual-number uri="https://erischel.com/rubenstein_causal_2017/" display-uri="rubenstein_causal_2017" /></fr:link>. For a survey see <fr:link href="/zennaro_abstraction_2022/" title="Abstraction between structural causal models: A review of definitions and properties" uri="https://erischel.com/zennaro_abstraction_2022/" display-uri="zennaro_abstraction_2022" type="local">Reference <fr:contextual-number uri="https://erischel.com/zennaro_abstraction_2022/" display-uri="zennaro_abstraction_2022" /></fr:link>) studying transformations between structural causal models. These have generally been called something like <html:em>abstractions,</html:em> the typical examples being the relationship between a high-level and a low-level model of the same system. However, the precise properties that we should ask for in such a transformation have turned out to be somewhat subtle. The most obvious condition to impose is to ask, for any possible variable we could intervene on, say <fr:tex display="inline"><![CDATA[X]]></fr:tex>, and any other variable (or collection of variables) <fr:tex display="inline"><![CDATA[Y]]></fr:tex>, that the diagram
  
  <html:figure><fr:resource hash="e2dbe16aeca4023223c1b5f5fa455b01"><fr:resource-content><html:img src="/e2dbe16aeca4023223c1b5f5fa455b01.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 {A}_X \ar [r] \ar [d] & \mathcal {A}_Y \ar [d]\\
    \mathcal {A}_{f(X)} \ar [r] & \mathcal {A}_{f(Y)}
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  of kernels commutes---in other words, given an intervention <html:em>in the low-level model,</html:em> the two possible distributions in the high-level model agree.
</html:p>
    <html:p>
  The main problem with this condition is that it is simply too strict. We generally can't ask that <html:em>every</html:em> low-level intervention is well-modeled by the corresponding high-level intervention. Rather, each high-level intervention corresponds to some distribution of the corresponding low-level variables, and we must ask that a diagram of this form:
  
  <html:figure><fr:resource hash="107a641e1e4475129d8de6854b631dc1"><fr:resource-content><html:img src="/107a641e1e4475129d8de6854b631dc1.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 {A}_X \ar [r]& \mathcal {A}_Y \ar [d]\\
    \mathcal {A}_{f(X)} \ar [r] \ar [u] & \mathcal {A}_{f(Y)}
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  commutes. For example, if the low-level variables are the velocities of all the gas molecules in a container, and the high-level variables are thermodynamic quantities like temperature and pressure, we can't expect that <html:em>every</html:em> set of velocities corresponding to a given temperature will lead to a given distribution of outcomes---rather, intervening on the temperature leads to some particular distribution of possible sets of velocities, and this leads to the observed distribution of outcomes.
</html:p>
    <html:p>
  The key here is that <html:em>control information flows in the opposite direction from measurement information</html:em>. This phenomenon repeats in many examples.
</html:p>
  </fr:mainmatter>
  <fr:backmatter>
    <fr:tree show-metadata="false" hidden-when-empty="true">
      <fr:frontmatter>
        <fr:authors />
        <fr:title text="References">References</fr:title>
      </fr:frontmatter>
      <fr:mainmatter>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors>
              <fr:author>Fabio Massimo Zennaro</fr:author>
            </fr:authors>
            <fr:date>
              <fr:year>2022</fr:year>
              <fr:month>7</fr:month>
              <fr:day>18</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/zennaro_abstraction_2022/</fr:uri>
            <fr:display-uri>zennaro_abstraction_2022</fr:display-uri>
            <fr:route>/zennaro_abstraction_2022/</fr:route>
            <fr:title text="Abstraction between structural causal models: A review of definitions and properties">Abstraction between structural causal models: A review of definitions and properties</fr:title>
            <fr:taxon>Reference</fr:taxon>
            <fr:meta name="bibtex"><![CDATA[@misc{zennaro_abstraction_2022,
 abstract = {Structural causal models ({SCMs}) are a widespread formalism to deal with causal systems. A recent direction of research has considered the problem of relating formally {SCMs} at different levels of abstraction, by defining maps between {SCMs} and imposing a requirement of interventional consistency. This paper offers a review of the solutions proposed so far, focusing on the formal properties of a map between {SCMs}, and highlighting the different layers (structural, distributional) at which these properties may be enforced. This allows us to distinguish families of abstractions that may or may not be permitted by choosing to guarantee certain properties instead of others. Such an understanding not only allows to distinguish among proposal for causal abstraction with more awareness, but it also allows to tailor the definition of abstraction with respect to the forms of abstraction relevant to specific applications.},
 author = {Zennaro, Fabio Massimo},
 date = {2022-07-18},
 doi = {10.48550/arXiv.2207.08603},
 eprint = {2207.08603 [cs]},
 eprinttype = {arxiv},
 file = {arXiv Fulltext PDF:/home/eigil/Zotero/storage/GBLY4K4U/Zennaro - 2022 - Abstraction between Structural Causal Models A Re.pdf:application/pdf;arXiv.org Snapshot:/home/eigil/Zotero/storage/CB2D33YK/2207.html:text/html},
 keywords = {Computer Science - Artificial Intelligence, Computer Science - Machine Learning},
 number = {{arXiv}:2207.08603},
 publisher = {{arXiv}},
 shorttitle = {Abstraction between Structural Causal Models},
 title = {Abstraction between Structural Causal Models: A Review of Definitions and Properties},
 url = {http://arxiv.org/abs/2207.08603},
 urldate = {2024-05-25}
}]]></fr:meta>
            <fr:meta name="doi">10.48550/arXiv.2207.08603</fr:meta>
            <fr:meta name="url">http://arxiv.org/abs/2207.08603</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>
                <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
              </fr:author>
              <fr:author>Sebastian Weichwald</fr:author>
            </fr:authors>
            <fr:date>
              <fr:year>2021</fr:year>
              <fr:month>8</fr:month>
              <fr:day>5</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/rischel_compositional_2021/</fr:uri>
            <fr:display-uri>rischel_compositional_2021</fr:display-uri>
            <fr:route>/rischel_compositional_2021/</fr:route>
            <fr:title text="Compositional abstraction error and a category of causal models">Compositional abstraction error and a category of causal models</fr:title>
            <fr:taxon>Reference</fr:taxon>
            <fr:meta name="bibtex"><![CDATA[@misc{rischel_compositional_2021,
 author = {Rischel, Eigil F. and Weichwald, Sebastian},
 date = {2021-08-05},
 doi = {10.48550/arXiv.2103.15758},
 eprint = {2103.15758 [cs, math, stat]},
 eprinttype = {arxiv},
 keywords = {Computer Science - Artificial Intelligence, Computer Science - Logic in Computer Science, Computer Science - Machine Learning, Mathematics - Category Theory, Statistics - Machine Learning},
 number = {{arXiv}:2103.15758},
 publisher = {{arXiv}},
 title = {Compositional Abstraction Error and a Category of Causal Models},
 url = {http://arxiv.org/abs/2103.15758},
 urldate = {2024-05-25}
}]]></fr:meta>
            <fr:meta name="doi">10.48550/arXiv.2103.15758</fr:meta>
            <fr:meta name="url">http://arxiv.org/abs/2103.15758</fr:meta>
          </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:author>Sebastian Weichwald</fr:author>
                </fr:authors>
                <fr:date>
                  <fr:year>2021</fr:year>
                  <fr:month>8</fr:month>
                  <fr:day>5</fr:day>
                </fr:date>
                <fr:title text="Abstract">Abstract</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
    Interventional causal models describe several joint distributions over some variables used to describe a system, one for each intervention setting. They provide a formal recipe for how to move between the different joint distributions and make predictions about the variables upon intervening on the system. Yet, it is difficult to formalise how we may change the underlying variables used to describe the system, say moving from fine-grained to coarse-grained variables. Here, we argue that compositionality is a desideratum for such model transformations and the associated errors: When abstracting a reference model M iteratively, first obtaining M' and then further simplifying that to obtain M'', we expect the composite transformation from M to M'' to exist and its error to be bounded by the errors incurred by each individual transformation step. Category theory, the study of mathematical objects via compositional transformations between them, offers a natural language to develop our framework for model transformations and abstractions. We introduce a category of finite interventional causal models and, leveraging theory of enriched categories, prove the desired compositionality properties for our 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>Sander Beckers</fr:author>
              <fr:author>Joseph Y. Halpern</fr:author>
            </fr:authors>
            <fr:date>
              <fr:year>2019</fr:year>
              <fr:month>7</fr:month>
              <fr:day>9</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/beckers_abstracting_2019/</fr:uri>
            <fr:display-uri>beckers_abstracting_2019</fr:display-uri>
            <fr:route>/beckers_abstracting_2019/</fr:route>
            <fr:title text="Abstracting causal models">Abstracting causal models</fr:title>
            <fr:taxon>Reference</fr:taxon>
            <fr:meta name="bibtex"><![CDATA[@article{beckers_abstracting_2019,
 abstract = {We consider a sequence of successively more restrictive deﬁnitions of abstraction for causal models, starting with a notion introduced by Rubenstein et al. (2017) called exact transformation that applies to probabilistic causal models, moving to a notion of uniform transformation that applies to deterministic causal models and does not allow differences to be hidden by the “right” choice of distribution, and then to abstraction, where the interventions of interest are determined by the map from low-level states to high-level states, and strong abstraction, which takes more seriously all potential interventions in a model, not just the allowed interventions. We show that procedures for combining micro-variables into macro-variables are instances of our notion of strong abstraction, as are all the examples considered by Rubenstein et al.},
 author = {Beckers, Sander and Halpern, Joseph Y.},
 date = {2019-07-09},
 eprint = {1812.03789},
 eprinttype = {arxiv},
 file = {msc1812.03789.pdf:/home/eigil/Dropbox/Matematik/Tekster/msc1812.03789.pdf:application/pdf},
 journaltitle = {{arXiv}:1812.03789 [cs]},
 keywords = {Computer Science - Artificial Intelligence},
 langid = {english},
 title = {Abstracting Causal Models},
 url = {http://arxiv.org/abs/1812.03789},
 urldate = {2021-04-04}
}]]></fr:meta>
            <fr:meta name="url">http://arxiv.org/abs/1812.03789</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>Paul K. Rubenstein</fr:author>
              <fr:author>Sebastian Weichwald</fr:author>
              <fr:author>Stephan Bongers</fr:author>
              <fr:author>Joris M. Mooij</fr:author>
              <fr:author>Dominik Janzing</fr:author>
              <fr:author>Moritz Grosse-Wentrup</fr:author>
              <fr:author>Bernhard Schölkopf</fr:author>
            </fr:authors>
            <fr:date>
              <fr:year>2017</fr:year>
              <fr:month>7</fr:month>
              <fr:day>4</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/rubenstein_causal_2017/</fr:uri>
            <fr:display-uri>rubenstein_causal_2017</fr:display-uri>
            <fr:route>/rubenstein_causal_2017/</fr:route>
            <fr:title text="Causal consistency of structural equation models">Causal consistency of structural equation models</fr:title>
            <fr:taxon>Reference</fr:taxon>
            <fr:meta name="bibtex"><![CDATA[@misc{rubenstein_causal_2017,
 abstract = {Complex systems can be modelled at various levels of detail. Ideally, causal models of the same system should be consistent with one another in the sense that they agree in their predictions of the effects of interventions. We formalise this notion of consistency in the case of Structural Equation Models ({SEMs}) by introducing exact transformations between {SEMs}. This provides a general language to consider, for instance, the different levels of description in the following three scenarios: (a) models with large numbers of variables versus models in which the `irrelevant' or unobservable variables have been marginalised out; (b) micro-level models versus macro-level models in which the macro-variables are aggregate features of the micro-variables; (c) dynamical time series models versus models of their stationary behaviour. Our analysis stresses the importance of well specified interventions in the causal modelling process and sheds light on the interpretation of cyclic {SEMs}.},
 author = {Rubenstein, Paul K. and Weichwald, Sebastian and Bongers, Stephan and Mooij, Joris M. and Janzing, Dominik and Grosse-Wentrup, Moritz and Schölkopf, Bernhard},
 date = {2017-07-04},
 doi = {10.48550/arXiv.1707.00819},
 eprint = {1707.00819 [cs, stat]},
 eprinttype = {arxiv},
 file = {arXiv Fulltext PDF:/home/eigil/Zotero/storage/Y9DD5AKU/Rubenstein et al. - 2017 - Causal Consistency of Structural Equation Models.pdf:application/pdf;arXiv.org Snapshot:/home/eigil/Zotero/storage/UNMKRTMX/1707.html:text/html},
 keywords = {Computer Science - Artificial Intelligence, Computer Science - Machine Learning, Statistics - Machine Learning, Statistics - Methodology},
 number = {{arXiv}:1707.00819},
 publisher = {{arXiv}},
 title = {Causal Consistency of Structural Equation Models},
 url = {http://arxiv.org/abs/1707.00819},
 urldate = {2024-05-25}
}]]></fr:meta>
            <fr:meta name="doi">10.48550/arXiv.1707.00819</fr:meta>
            <fr:meta name="url">http://arxiv.org/abs/1707.00819</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>11</fr:month>
              <fr:day>19</fr:day>
            </fr:date>
            <fr:uri>https://erischel.com/efr-003Z/</fr:uri>
            <fr:display-uri>efr-003Z</fr:display-uri>
            <fr:route>/efr-003Z/</fr:route>
            <fr:title text="Thesis Cutting Board">Thesis Cutting Board</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>5</fr:month>
                  <fr:day>25</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-0002/</fr:uri>
                <fr:display-uri>efr-0002</fr:display-uri>
                <fr:route>/efr-0002/</fr:route>
                <fr:title text="Bidirectionality in graphical models">Bidirectionality in graphical models</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>5</fr:month>
                      <fr:day>25</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0003/</fr:uri>
                    <fr:display-uri>efr-0003</fr:display-uri>
                    <fr:route>/efr-0003/</fr:route>
                    <fr:title text="Structural Causal Model">Structural Causal Model</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[G]]></fr:tex> be a (finite) directed acyclic graph (DAG). Then a structural causal model (SCM) on <fr:tex display="inline"><![CDATA[G]]></fr:tex> consists of
  <html:ul><html:li>For each vertex <fr:tex display="inline"><![CDATA[v \in  V(G)]]></fr:tex>, measurable spaces <fr:tex display="inline"><![CDATA[\mathcal {X}_v, \mathcal {E}_v]]></fr:tex></html:li>
    <html:li>A family of independent random variables <fr:tex display="inline"><![CDATA[E_v \in  \mathcal {E}_v]]></fr:tex>---these are called the <html:em>exogenous variables</html:em></html:li>
    <html:li>For each <fr:tex display="inline"><![CDATA[v]]></fr:tex>, a measurable function <fr:tex display="inline"><![CDATA[\phi _v: \mathcal {E}_v  \times  \prod _{v' \to  v} \mathcal {X}_{v'} \to  \mathcal {X}_v]]></fr:tex> (note that if <fr:tex display="inline"><![CDATA[v]]></fr:tex> has no parents, the product is just a singleton)</html:li></html:ul></html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  There is a significant existing literature (see <fr:link href="/beckers_abstracting_2019/" title="Abstracting causal models" uri="https://erischel.com/beckers_abstracting_2019/" display-uri="beckers_abstracting_2019" type="local">Abstracting causal models</fr:link>, <fr:link href="/rischel_compositional_2021/" title="Compositional abstraction error and a category of causal models" uri="https://erischel.com/rischel_compositional_2021/" display-uri="rischel_compositional_2021" type="local">Reference <fr:contextual-number uri="https://erischel.com/rischel_compositional_2021/" display-uri="rischel_compositional_2021" /></fr:link>, <fr:link href="/rubenstein_causal_2017/" title="Causal consistency of structural equation models" uri="https://erischel.com/rubenstein_causal_2017/" display-uri="rubenstein_causal_2017" type="local">Reference <fr:contextual-number uri="https://erischel.com/rubenstein_causal_2017/" display-uri="rubenstein_causal_2017" /></fr:link>. For a survey see <fr:link href="/zennaro_abstraction_2022/" title="Abstraction between structural causal models: A review of definitions and properties" uri="https://erischel.com/zennaro_abstraction_2022/" display-uri="zennaro_abstraction_2022" type="local">Reference <fr:contextual-number uri="https://erischel.com/zennaro_abstraction_2022/" display-uri="zennaro_abstraction_2022" /></fr:link>) studying transformations between structural causal models. These have generally been called something like <html:em>abstractions,</html:em> the typical examples being the relationship between a high-level and a low-level model of the same system. However, the precise properties that we should ask for in such a transformation have turned out to be somewhat subtle. The most obvious condition to impose is to ask, for any possible variable we could intervene on, say <fr:tex display="inline"><![CDATA[X]]></fr:tex>, and any other variable (or collection of variables) <fr:tex display="inline"><![CDATA[Y]]></fr:tex>, that the diagram
  
  <html:figure><fr:resource hash="e2dbe16aeca4023223c1b5f5fa455b01"><fr:resource-content><html:img src="/e2dbe16aeca4023223c1b5f5fa455b01.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 {A}_X \ar [r] \ar [d] & \mathcal {A}_Y \ar [d]\\
    \mathcal {A}_{f(X)} \ar [r] & \mathcal {A}_{f(Y)}
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  of kernels commutes---in other words, given an intervention <html:em>in the low-level model,</html:em> the two possible distributions in the high-level model agree.
</html:p>
                <html:p>
  The main problem with this condition is that it is simply too strict. We generally can't ask that <html:em>every</html:em> low-level intervention is well-modeled by the corresponding high-level intervention. Rather, each high-level intervention corresponds to some distribution of the corresponding low-level variables, and we must ask that a diagram of this form:
  
  <html:figure><fr:resource hash="107a641e1e4475129d8de6854b631dc1"><fr:resource-content><html:img src="/107a641e1e4475129d8de6854b631dc1.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 {A}_X \ar [r]& \mathcal {A}_Y \ar [d]\\
    \mathcal {A}_{f(X)} \ar [r] \ar [u] & \mathcal {A}_{f(Y)}
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  commutes. For example, if the low-level variables are the velocities of all the gas molecules in a container, and the high-level variables are thermodynamic quantities like temperature and pressure, we can't expect that <html:em>every</html:em> set of velocities corresponding to a given temperature will lead to a given distribution of outcomes---rather, intervening on the temperature leads to some particular distribution of possible sets of velocities, and this leads to the observed distribution of outcomes.
</html:p>
                <html:p>
  The key here is that <html:em>control information flows in the opposite direction from measurement information</html:em>. This phenomenon repeats in many examples.
</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-0004/</fr:uri>
                <fr:display-uri>efr-0004</fr:display-uri>
                <fr:route>/efr-0004/</fr:route>
                <fr:title text="Bidirectionality for control">Bidirectionality for control</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  Consider a discrete-time, continuous-space, controlled, nonlinear dynamical system with noise.
  By this, I mean some transition function <fr:tex display="inline"><![CDATA[F(x,u): \mathbb {R}^n \times  \mathbb {R}^p \to  \mathbb {R}^n,]]></fr:tex> along with a given "noise distribution" <fr:tex display="inline"><![CDATA[\mu ]]></fr:tex> on <fr:tex display="inline"><![CDATA[\mathbb {R}^n]]></fr:tex>.
  The intended meaning is that <fr:tex display="inline"><![CDATA[x_{n+1} = F(x_n,u_n) + v_n]]></fr:tex>, where <fr:tex display="inline"><![CDATA[u_n \in  \mathbb {R}^p]]></fr:tex> is a variable which can be controlled (depending on <fr:tex display="inline"><![CDATA[x_1, \dots  x_n]]></fr:tex>,) and <fr:tex display="inline"><![CDATA[(v_n)_{n=0,\dots }]]></fr:tex> is a sequence of iid random variables distributed according to <fr:tex display="inline"><![CDATA[\mu ]]></fr:tex> (for simplicity, we assume everything is time-invariant). Without any assumptions of linearity or the like on <fr:tex display="inline"><![CDATA[F]]></fr:tex>, it is hard to apply traditional control methods. Therefore we'd like to partition <fr:tex display="inline"><![CDATA[\mathbb {R}^n]]></fr:tex> into a discrete set of components, and apply reinforcement learning algorithms to the resulting dynamics (or just straightforward dynamical programming, depending on the situation).
</html:p>
                <html:p>
  Suppose we have such a partition <fr:tex display="inline"><![CDATA[p: \mathbb {R}^n \to  I]]></fr:tex>, with <fr:tex display="inline"><![CDATA[I]]></fr:tex> some discrete index set. We want to build some sort of controlled dynamical system on <fr:tex display="inline"><![CDATA[I]]></fr:tex> (really a Markov Decision Problem). A priori, however, it seems the probability of being able to transition from <fr:tex display="inline"><![CDATA[i]]></fr:tex> to <fr:tex display="inline"><![CDATA[j]]></fr:tex> is highly dependent on where in <fr:tex display="inline"><![CDATA[p^{-1}(i)]]></fr:tex> we are.
</html:p>
                <html:p>
  The trick to building an MDP is to choose <fr:tex display="inline"><![CDATA[u(x,i)]]></fr:tex>, where <fr:tex display="inline"><![CDATA[x]]></fr:tex> is our current state and <fr:tex display="inline"><![CDATA[i]]></fr:tex> is the target region, in such a way that <fr:tex display="inline"><![CDATA[x^i := F(x,u(x,i))]]></fr:tex> does not depend on <fr:tex display="inline"><![CDATA[x]]></fr:tex>---then the distribution on the next state is just the distribution of <fr:tex display="inline"><![CDATA[p(x^i + v_n)]]></fr:tex>, which can be determined ahead of time for each <fr:tex display="inline"><![CDATA[i]]></fr:tex>. <fr:tex display="inline"><![CDATA[i \mapsto  x^i]]></fr:tex> is a section of <fr:tex display="inline"><![CDATA[p]]></fr:tex>---this bidirectionality is completely analogous to what we saw for abstractions between graphical models. 
</html:p>
                <html:p>
  The datum <fr:tex display="inline"><![CDATA[u(-,=): \mathbb {R}^n \times  I \to  \mathbb {R}^p]]></fr:tex> is the backwards part of a <html:em>lens</html:em> <fr:tex display="inline"><![CDATA[\binom {\mathbb {R}^p}{\mathbb {R}^n} \to  \binom {I}{I}]]></fr:tex>. Actually, this raises a subtlety we swept under the rug above---it may not be possible to find <fr:tex display="inline"><![CDATA[u(x,i)]]></fr:tex> satisfying <fr:tex display="inline"><![CDATA[F(x,u(x,i)) = x_i]]></fr:tex> for all pairs <fr:tex display="inline"><![CDATA[x,i]]></fr:tex>. Hence we need to restrict ourselves to those where it is possible---and because we're trying to abstract away <fr:tex display="inline"><![CDATA[x]]></fr:tex>, we need to consider those <fr:tex display="inline"><![CDATA[i]]></fr:tex> so that it's possible for all <fr:tex display="inline"><![CDATA[x]]></fr:tex> in our current component. This will bring us to consider <html:em>dependent</html:em> lenses.
</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-0009/</fr:uri>
                <fr:display-uri>efr-0009</fr:display-uri>
                <fr:route>/efr-0009/</fr:route>
                <fr:title text="Composition with graded predicates">Composition with graded predicates</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  Suppose <fr:tex display="inline"><![CDATA[T: X \to  \Delta (Y)]]></fr:tex> is a stochastic map, and suppose <fr:tex display="inline"><![CDATA[\phi ^\epsilon ]]></fr:tex> is a graded predicate on <fr:tex display="inline"><![CDATA[Y]]></fr:tex> (in particular, <fr:tex display="inline"><![CDATA[\phi ^\epsilon (y) \Rightarrow  \phi ^{\epsilon '}(y)]]></fr:tex> if <fr:tex display="inline"><![CDATA[\epsilon  < \epsilon ']]></fr:tex>).
</html:p>
                <html:p>
  Then we can define <fr:tex display="inline"><![CDATA[T^{-1}(\phi )^\epsilon ]]></fr:tex>, a graded predicate on <fr:tex display="inline"><![CDATA[X]]></fr:tex>, by <fr:tex display="inline"><![CDATA[T^{-1}(\phi )^\epsilon (x)]]></fr:tex> if there exists <fr:tex display="inline"><![CDATA[\epsilon _1 + \epsilon _2 = \epsilon ]]></fr:tex> with <fr:tex display="inline"><![CDATA[P(\phi ^{\epsilon _1}(Tx)) > 1-\epsilon _2]]></fr:tex></html:p>
                <html:p>
  Every graded predicate <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex> on <fr:tex display="inline"><![CDATA[X]]></fr:tex> is the pullback of the predicate <fr:tex display="inline"><![CDATA[x = \top ]]></fr:tex> on <fr:tex display="inline"><![CDATA[\{\bot ,\top \}]]></fr:tex> along a unique stochastic map <fr:tex display="inline"><![CDATA[[\phi ]: X \to  \{\bot ,\top \}]]></fr:tex> (which carries <fr:tex display="inline"><![CDATA[x]]></fr:tex> to the distribution which is <fr:tex display="inline"><![CDATA[\bot ]]></fr:tex> with probability <fr:tex display="inline"><![CDATA[\inf _{\phi ^\epsilon (x)} \epsilon ]]></fr:tex>). Thus a graded predicate is essentially a stochastic version of an ordinary predicate (which is a <html:em>deterministic</html:em> map to <fr:tex display="inline"><![CDATA[\{\bot ,\top \}]]></fr:tex>). Under this equivalence, the operation <fr:tex display="inline"><![CDATA[T^{-1}]]></fr:tex> is simply precomposition with <fr:tex display="inline"><![CDATA[T]]></fr:tex>.
</html:p>
                <html:p>
  Let <fr:tex display="inline"><![CDATA[p,q: X \to  \Omega ]]></fr:tex> be two stochastic maps to the subobject classifier (i.e <fr:tex display="inline"><![CDATA[\{\bot ,\top \}]]></fr:tex>).
  Defining logical operations on such objects is problematic essentially because of the lack of independence---if <fr:tex display="inline"><![CDATA[p,q]]></fr:tex> classify the probability that some <fr:tex display="inline"><![CDATA[f(X)]]></fr:tex> lie in two different subsets <fr:tex display="inline"><![CDATA[P,Q]]></fr:tex>, there is essentially no way to recover the probability of the intersection, or the union, since we can't see their correlation. We can consider a few different options---writing <fr:tex display="inline"><![CDATA[p(x),q(x) \in  [0,1]]]></fr:tex> for the probability of truth (assuming that we're in a setting where <fr:tex display="inline"><![CDATA[\Delta (\Omega ) = [0,1]]]></fr:tex>).
</html:p>
                <html:ol><html:li><fr:tex display="inline"><![CDATA[\min (p+q,1)]]></fr:tex> is the probability of <fr:tex display="inline"><![CDATA[p \vee  q]]></fr:tex> if they are <html:em>maximally disjoint</html:em>, i.e completely disregarded the possibility of overlap. Dually, <fr:tex display="inline"><![CDATA[\max (p+q-1,0)]]></fr:tex> is the probability of <fr:tex display="inline"><![CDATA[p \wedge  q]]></fr:tex> if they are maximally disjoint</html:li>
  <html:li><fr:tex display="inline"><![CDATA[\max (p,q)]]></fr:tex> is the probability of <fr:tex display="inline"><![CDATA[p \wedge  q]]></fr:tex> if they are maximally overlapping, and dually <fr:tex display="inline"><![CDATA[\min (p,q)]]></fr:tex> is the probability of <fr:tex display="inline"><![CDATA[p \vee  q]]></fr:tex> if they are minimally overlapping</html:li>
  <html:li><fr:tex display="inline"><![CDATA[pq]]></fr:tex> is the probability of <fr:tex display="inline"><![CDATA[p \wedge  q]]></fr:tex> if they are independent, and dually <fr:tex display="inline"><![CDATA[p+q-pq]]></fr:tex> is the probability of <fr:tex display="inline"><![CDATA[p \vee  q]]></fr:tex> if they are independent</html:li></html:ol>
                <html:p>
  In the language of error credits, adding an error credit of <fr:tex display="inline"><![CDATA[\epsilon ]]></fr:tex> amounts to taking <fr:tex display="inline"><![CDATA[\wedge  (1-\epsilon )]]></fr:tex> with the "maximally disjoint" assumption (this gives the <html:em>smallest</html:em> possible probability of truth, i.e. it's the <html:em>strongest</html:em> assumption you can make).
</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>4</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-002Q/</fr:uri>
                <fr:display-uri>efr-002Q</fr:display-uri>
                <fr:route>/efr-002Q/</fr:route>
                <fr:taxon>Definition</fr:taxon>
              </fr:frontmatter>
              <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[p: \mathcal {E} \to  \mathcal {C}]]></fr:tex> be a weak 2-fibration of bicategories (in the sense of Buckley).
  Then the corresponding functor <fr:tex display="inline"><![CDATA[\mathcal {C}^{\mathrm {co} \mathrm {op}} \to  \mathsf {BiCat}]]></fr:tex> factors through <fr:tex display="inline"><![CDATA[\mathsf {Cat} \subseteq  \mathsf {BiCat}]]></fr:tex> if and only if each mapping functor <fr:tex display="inline"><![CDATA[\mathcal {E}(x,y) \to  \mathcal {C}(px,py)]]></fr:tex> is a <html:em>discrete</html:em> 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>2024</fr:year><fr:month>7</fr:month><fr:day>4</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Let <fr:tex display="inline"><![CDATA[p]]></fr:tex> be a 2-fibration with this property.
    Note that <fr:tex display="inline"><![CDATA[\mathsf {Cat} \subseteq  \mathsf {BiCat}]]></fr:tex> is a full sub(tri)category, hence the only question is whether the fibers are categories---that is, whether they have discrete hom-categories. The mapping category in the fiber, <fr:tex display="inline"><![CDATA[\mathcal {E}_x(x',y'),]]></fr:tex> given <fr:tex display="inline"><![CDATA[x \in  \mathcal {C}, x',y' \in  \mathcal {E}_x]]></fr:tex>, is given by the fiber of <fr:tex display="inline"><![CDATA[\mathcal {E}(x',y') \to  \mathcal {C}(x,x)]]></fr:tex> over the identity---but by assumption this is a discrete category.
  </html:p>
  <html:p>
    Conversely, let <fr:tex display="inline"><![CDATA[F: \mathcal {C}^{\mathrm {co} \mathrm {op}} \to  \mathsf {Cat}]]></fr:tex> be a bifunctor and consider its Grothendieck construction. By definition, a 2-cell is <fr:tex display="inline"><![CDATA[(\alpha ,\alpha _-): (f,f_-) \to  (g,g_-) : (x,x') \to  (y,y')]]></fr:tex> where <fr:tex display="inline"><![CDATA[\alpha : f \to  g: x \to  y]]></fr:tex>, and <fr:tex display="inline"><![CDATA[\alpha _-]]></fr:tex> is a 2-cell like this in <fr:tex display="inline"><![CDATA[F(x):]]></fr:tex>

    
  <html:figure><fr:resource hash="1e42a3d68b5c251deafada897c09495f"><fr:resource-content><html:img src="/1e42a3d68b5c251deafada897c09495f.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 [rr] \ar [dr] & & Ff(y_-) \ar [dl]\\
        & Fg(y_-) &
      \end {tikzcd}
    ]]></fr:resource-source></fr:resource></html:figure>


    but such a 2-cell exists if and only if this diagram commutes. Hence, given the base <fr:tex display="inline"><![CDATA[\alpha : f \to  g : x \to  y]]></fr:tex> and the lift <fr:tex display="inline"><![CDATA[g_- : x' \to  y',]]></fr:tex> there is a unique choice of <fr:tex display="inline"><![CDATA[\alpha _-, f_-]]></fr:tex> completing this lift, namely <fr:tex display="inline"><![CDATA[f_-]]></fr:tex> must be the composite in that triangle. This exactly proves that <fr:tex display="inline"><![CDATA[\int  F \to  \mathcal {C}]]></fr:tex> is a discrete fibration on hom-categories.
  </html:p>
  <html:p>(Note, we use the notation <fr:tex display="inline"><![CDATA[\int ]]></fr:tex> for the Grothendieck construction/category of elements, where Buckley uses <fr:tex display="inline"><![CDATA[\mathrm {El}]]></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>6</fr:month>
                  <fr:day>14</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-000G/</fr:uri>
                <fr:display-uri>efr-000G</fr:display-uri>
                <fr:route>/efr-000G/</fr:route>
                <fr:title text="Constructing the triple category of controlled processes">Constructing the triple category of controlled processes</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  Triple categories are very complicated objects. And our life is further complicated by the fact that, in one direction, our triple category is not in general strict, in the sense that composition is only associative up to globular isomorphism (because the tensor product is only pseudoassociative, the composition of controlled processes inherits this defect).
</html:p>
                <html:p>
  Hence, our life will be greatly simplified if we can approach the construction of this triple category by more conceptual means. Our strategy will essentially be the following:
  <html:ol><html:li>We will note that the notion of internal pseudocategory is classified by a limit sketch---that is, there is a bicategory (actually, a 1-category) <fr:tex display="inline"><![CDATA[\mathcal {I}]]></fr:tex> and class of diagrams <fr:tex display="inline"><![CDATA[K]]></fr:tex> so that a pseudocategory internal in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is precisely a pseudofunctor <fr:tex display="inline"><![CDATA[\mathcal {I} \to  \mathcal {C}]]></fr:tex> which carries all the diagrams in <fr:tex display="inline"><![CDATA[K]]></fr:tex> to <html:em>homotopy limits</html:em></html:li>
    <html:li>We will prove that the double categorical <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}(-)]]></fr:tex> construction preserves homotopy limits.</html:li>
    <html:li>Hence, by the preceding point, applying it to a pseudocategory internal to the bicategory of category actions will produce a pseudocategory internal to pseudo double categories---a triple category.</html:li></html:ol></html:p>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>6</fr:month>
                      <fr:day>25</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-001M/</fr:uri>
                    <fr:display-uri>efr-001M</fr:display-uri>
                    <fr:route>/efr-001M/</fr:route>
                    <fr:title text="Limit sketch">Limit sketch</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  A <html:em>limit sketch</html:em> consists of a (small) category <fr:tex display="inline"><![CDATA[\mathcal {I}]]></fr:tex> equipped with a collection of cones
  <fr:tex display="block"><![CDATA[(J_i \in  \mathsf {Cat}, D_i: J_i^\triangleleft  \to  \mathcal {I})]]></fr:tex>
  (recall that <fr:tex display="inline"><![CDATA[J^\triangleleft ]]></fr:tex> is the "cone on <fr:tex display="inline"><![CDATA[J]]></fr:tex>", the result of freely adjoining an initial object to <fr:tex display="inline"><![CDATA[J]]></fr:tex>).
</html:p>
                    <html:p>
  If <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is a category, a <html:em>model</html:em> of the limit sketch is a functor <fr:tex display="inline"><![CDATA[M: \mathcal {I} \to  \mathcal {C}]]></fr:tex> so that each composite <fr:tex display="inline"><![CDATA[J_i^\triangleleft  \to  \mathcal {I} \to  \mathcal {C}]]></fr:tex> is a limit cone. A morphism of models is any natural transformation. In other words, the category of models is the full subcategory of the functor category spanned by the models. It is denoted <fr:tex display="inline"><![CDATA[\mathsf {Mod}_\mathcal {I}(\mathcal {C})]]></fr:tex> (the collection of diagrams is left implicit).
</html:p>
                    <html:p>
  Given a bicategory or other higher category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, a model is a <html:em>pseudo</html:em>functor <fr:tex display="inline"><![CDATA[\mathcal {I} \to  \mathcal {C}]]></fr:tex> which carries every diagram to a <html:em>homotopy</html:em> limit cone. <fr:tex display="inline"><![CDATA[\mathsf {Mod}_\mathcal {I}(\mathcal {C}) \subseteq  \mathsf {Fun}(\mathcal {I},\mathcal {C})]]></fr:tex> is again the full sub-bicategory of the bicategory of pseudofunctors spanned by the models.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
                <html:p>
  We will see that there are limit sketches classifying both internal categories (giving double categories) and symmetric pseudomonoids (giving symmetric monoidal categories), which will be important going forward.
</html:p>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="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-001O/</fr:uri>
                    <fr:display-uri>efr-001O</fr:display-uri>
                    <fr:route>/efr-001O/</fr:route>
                    <fr:title text="Pseudocategories and categories of categories">Pseudocategories and categories of categories</fr:title>
                    <fr:taxon>Remark</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  We will want to say that the category of pseudo double categories is the category of internal pseudocategories---modeled as Segal objects---in the bicategory of categories. There are two issues with this statement as written.
</html:p>
                    <html:p>
  First of all, a priori, a weak Segal category is quite different from a pseudo double category.
  Not only is there not a canonical choice of composition given two horizontal maps <fr:tex display="inline"><![CDATA[f: x \nrightarrow  y, g: y \nrightarrow  z]]></fr:tex>, we cannot even (a priori) guarantee the existence of a choice of composition <fr:tex display="inline"><![CDATA[gf]]></fr:tex> which has the right boundaries on the nose---only up to vertical isomorphism (so we can find a composite <fr:tex display="inline"><![CDATA[x' \nrightarrow  y']]></fr:tex> and isomorphisms <fr:tex display="inline"><![CDATA[x \cong  x', y \cong  y']]></fr:tex>). On the other hand, a weak Segal category is also <html:em>stronger</html:em> than a pseudo double category, in the sense that every vertical isomorphism has a companion.
</html:p>
                    <html:p>
  We will see that the first defect can always be remedied after replacing our weak Segal category with an equivalent one. The issue of companions is a fundamental difference, but luckily all of the relevant double categories we want to consider have these companion pairs.
</html:p>
                    <html:p>
  The second question is somewhat subtler (but also less important). The category of internal pseudocategories, computed in any higher category, has a priori the same homotopy level as the input---just as the category of monoids is a 1-category (like <fr:tex display="inline"><![CDATA[\mathsf {Set}]]></fr:tex>,) but the category of monoidal categories is a bicategory. This makes sense if we view categories as just a plain (generalized) algebraic theory, but we usually want to think of categories of categories as having some extra homotopy theory coming from the category structure---the category of categories in <fr:tex display="inline"><![CDATA[\mathsf {Set}]]></fr:tex> is a bicategory (actually a 2-category, i.e it's strict), not a plain category. The preceding construction does not account for this---the homotopy limits implicit in the phrase "a pseudocategory in pseudo double categories" are, for us, merely homotopy limits of plain categories, not accounting for the extra categorical structure in a double category.
</html:p>
                    <html:p>
  It is not clear what this means in general (and in any case, our output category will actually be strict in two directions,) but it is an important subtlety to remember.
</html:p>
                    <html:p>
  (A category viewed as an object merely of the 1-category of categories is sometimes called a <html:em>strict category</html:em>, but obviously we can't speak about "strict pseudo double categories")
</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>25</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-001N/</fr:uri>
                    <fr:display-uri>efr-001N</fr:display-uri>
                    <fr:route>/efr-001N/</fr:route>
                    <fr:title text="Segal object">Segal object</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Consider the simplicial category <fr:tex display="inline"><![CDATA[\Delta ]]></fr:tex>. For every <fr:tex display="inline"><![CDATA[n,m]]></fr:tex>, the following square commutes:
</html:p>
                    <html:p>
                      <html:figure>
                        <fr:resource hash="848a1efdf6eb6ca732f0ceaa87351758">
                          <fr:resource-content>
                            <html:img src="/848a1efdf6eb6ca732f0ceaa87351758.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+m]} & {[n]} \ar [l, "i \mapsto  i+m"]\\
  {[m]} \ar [u, "i \mapsto  i"] & {[0]} \ar [u, "0"] \ar [l, "m"]
  \end {tikzcd}
]]></fr:resource-source>
                        </fr:resource>
                      </html:figure>
                    </html:p>
                    <html:p>
  A simplicial object <fr:tex display="inline"><![CDATA[X]]></fr:tex> in a category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is called a <html:em>Segal object</html:em> if each of these squares goes to a pullback square.
</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>25</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-001P/</fr:uri>
                    <fr:display-uri>efr-001P</fr:display-uri>
                    <fr:route>/efr-001P/</fr:route>
                    <fr:taxon>Lemma</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[X: \Delta ^\mathrm {op} \to  \mathsf {Cat}]]></fr:tex> be a (strict) simplicial category (note that every simplicial category is equivalent to a strict one). Suppose further the face maps <fr:tex display="inline"><![CDATA[X[1] \rightrightarrows  X[0]]]></fr:tex> are both isofibrations. Then if <fr:tex display="inline"><![CDATA[X]]></fr:tex> is a Segal category in the strict sense, it is automatically a Segal category in the pseudo 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>2024</fr:year><fr:month>6</fr:month><fr:day>25</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Since, up to <html:em>isomorphism</html:em> of categories, the higher <fr:tex display="inline"><![CDATA[X[n]]]></fr:tex> are pullbacks of the two indicated face maps, and the projections in the diagram

    
  <html:figure><fr:resource hash="495eef402f3b51c980c2acece04cf04a"><fr:resource-content><html:img src="/495eef402f3b51c980c2acece04cf04a.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[n+m] \ar [r] \ar [d] & X[n]\ar [d]\\
      X[m] \ar [r] & 0
      \end {tikzcd}
    ]]></fr:resource-source></fr:resource></html:figure>
 

    are compositions of pullback projections, and pullbacks and composition of isofibrations are again isofibrations, it follows that all of these squares are pullbacks of two isofibrations. Such a pullback is always also a homotopy pullback, which proves the first statement.
  </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>24</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0016/</fr:uri>
                    <fr:display-uri>efr-0016</fr:display-uri>
                    <fr:route>/efr-0016/</fr:route>
                    <fr:title text="Simplicial Category">Simplicial Category</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  The <html:em>simplicial category</html:em> is the category of finite, nonempty, totally ordered sets, and order-preserving functions, denoted <fr:tex display="inline"><![CDATA[\mathbb {\Delta }]]></fr:tex>. We denote by <fr:tex display="inline"><![CDATA[[n]]]></fr:tex> for <fr:tex display="inline"><![CDATA[n \geq  0]]></fr:tex> the ordered set <fr:tex display="inline"><![CDATA[\{0 < 1 < \dots  < n\}]]></fr:tex> of <fr:tex display="inline"><![CDATA[n+1]]></fr:tex> elements---every object on <fr:tex display="inline"><![CDATA[\mathbb {\Delta }]]></fr:tex> is isomorphic to one of the form <fr:tex display="inline"><![CDATA[[n]]]></fr:tex>.
</html:p>
                    <html:p>
  A <html:em>simplicial object</html:em> in a category <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is a functor <fr:tex display="inline"><![CDATA[\Delta ^\mathrm {op} \to  \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>2024</fr:year>
                      <fr:month>6</fr:month>
                      <fr:day>24</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0017/</fr:uri>
                    <fr:display-uri>efr-0017</fr:display-uri>
                    <fr:route>/efr-0017/</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 category with finite limits.
  The internal nerve functor <fr:tex display="inline"><![CDATA[\mathsf {Cat}(\mathcal {C}) \to  \mathsf {Simp}\mathcal {C}]]></fr:tex> is fully faithful, and the essential image consists exactly of those simplicial objects <fr:tex display="inline"><![CDATA[X]]></fr:tex> where the maps <fr:tex display="inline"><![CDATA[p_i: X[n] \to  X[1]]]></fr:tex> given by evaluating at <fr:tex display="inline"><![CDATA[p^i: [1] \to  [n] : k \mapsto  k+i]]></fr:tex>, <fr:tex display="inline"><![CDATA[i = 0,\dots  n-1]]></fr:tex> exhibits <fr:tex display="inline"><![CDATA[X[n]]]></fr:tex> as the iterated pullback <fr:tex display="inline"><![CDATA[X[1] \times _{X[0]} \dots  \times _{X[0]} X[1]]]></fr:tex></html:p>
                  </fr:mainmatter>
                </fr:tree>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>6</fr:month>
                      <fr:day>24</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0018/</fr:uri>
                    <fr:display-uri>efr-0018</fr:display-uri>
                    <fr:route>/efr-0018/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  A pseudo double category is equivalently a simplicial object in <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex> so that the diagrams <fr:tex display="inline"><![CDATA[X[n] \to  X[1]]]></fr:tex> are <html:em>homotopy</html:em> pullbacks.
</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>26</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-001Q/</fr:uri>
                    <fr:display-uri>efr-001Q</fr:display-uri>
                    <fr:route>/efr-001Q/</fr:route>
                    <fr:title text="Commutativity of internalization">Commutativity of internalization</fr:title>
                    <fr:taxon>Lemma</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {I},\mathcal {J}]]></fr:tex> be limit sketches, and let <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> be a bicategory. Then
  <fr:tex display="block"><![CDATA[\mathsf {Mod}_\mathcal {I}(\mathsf {Mod}_\mathcal {J}(\mathcal {C})) \simeq  \mathsf {Fun}'(\mathcal {I} \times  \mathcal {J}, \mathcal {C}) \simeq  \mathsf {Mod}_\mathcal {J}(\mathsf {Mod}_\mathcal {I}(\mathcal {C})),]]></fr:tex>
  where <fr:tex display="inline"><![CDATA[\mathsf {Fun}'(\mathcal {I} \times  \mathcal {J},\mathcal {C})]]></fr:tex> denotes the full subcategory of the functor bicategory spanned by those pseudofunctors <fr:tex display="inline"><![CDATA[F]]></fr:tex> so that, for each <fr:tex display="inline"><![CDATA[I \in  \mathcal {I},]]></fr:tex>, <fr:tex display="inline"><![CDATA[F(I,-)]]></fr:tex> is a model of <fr:tex display="inline"><![CDATA[\mathcal {J}]]></fr:tex>, and for each <fr:tex display="inline"><![CDATA[J \in  \mathcal {J},]]></fr:tex> <fr:tex display="inline"><![CDATA[F(-,J)]]></fr:tex> is a model of <fr:tex display="inline"><![CDATA[\mathcal {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>2024</fr:year><fr:month>6</fr:month><fr:day>26</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Each isomorphism is an immediate consequence of the obvious fact that (pseudo)limits in model (bi)categories are computed pointwise, and the standard currying equivalence. 
  </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>26</fr:day></fr:date><fr:taxon>Remark</fr:taxon></fr:frontmatter><fr:mainmatter>
  Note that if <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> is a 2-category, so that we can speak of both pseudolimits and ordinary limits in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, taking strict models does not generally commute with taking pseudo models, since it is not generally the case that pseudolimits commute with limits.
</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>26</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-001R/</fr:uri>
                    <fr:display-uri>efr-001R</fr:display-uri>
                    <fr:route>/efr-001R/</fr:route>
                    <fr:taxon>Remark</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  A weak Segal category is similar to a <html:em>virtual double category</html:em>: we don't directly have a composition operator <fr:tex display="inline"><![CDATA[\mathbb {C}_1 \times _{\mathbb {C}_0} \mathbb {C}_1]]></fr:tex>---rather, we have a category of "compositions" <fr:tex display="inline"><![CDATA[\mathbb {C}_2,]]></fr:tex> each of which contains three faces in <fr:tex display="inline"><![CDATA[\mathbb {C}_1]]></fr:tex>. Hence we have a <html:em>choice</html:em> of composites for every composable pair, although it is uniquely defined up to contractible choice.
</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>26</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-001S/</fr:uri>
                    <fr:display-uri>efr-001S</fr:display-uri>
                    <fr:route>/efr-001S/</fr:route>
                    <fr:title text="Coherent nerve of pseudo double category">Coherent nerve of pseudo double category</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 pseudo double category.
  Then the <html:em>coherent nerve</html:em> is the simplicial category <fr:tex display="inline"><![CDATA[N(\mathbb {C})]]></fr:tex> defined as follows:
  <html:ol><html:li><fr:tex display="inline"><![CDATA[N(\mathbb {C})_0 = \mathbb {C}_0]]></fr:tex></html:li>
    <html:li><fr:tex display="inline"><![CDATA[N(\mathbb {C})_1 = \mathbb {C}_1]]></fr:tex></html:li>
    <html:li>The objects of <fr:tex display="inline"><![CDATA[N(\mathbb {C})_2]]></fr:tex> are tuples <fr:tex display="inline"><![CDATA[f: x \nrightarrow  y, g: y \nrightarrow  z, h: x \nrightarrow  z, \alpha : gf \simeq  h]]></fr:tex>, where <fr:tex display="inline"><![CDATA[x,y,z]]></fr:tex> are objects of <fr:tex display="inline"><![CDATA[\mathbb {C}_0]]></fr:tex>, <fr:tex display="inline"><![CDATA[f,g,h]]></fr:tex> are horizontal morphisms, and <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex> is a <html:em>globular</html:em> isomorphism in <fr:tex display="inline"><![CDATA[\mathbb {C}_1]]></fr:tex></html:li>
    <html:li>The morphisms of <fr:tex display="inline"><![CDATA[N(\mathbb {C})_2]]></fr:tex> are triples of 2-cells <fr:tex display="inline"><![CDATA[\phi : f \to  f', \psi : g \to  g', \xi : h \to  h']]></fr:tex> so that the two possible 2-cells <fr:tex display="inline"><![CDATA[gf \to  h']]></fr:tex> agree</html:li>
    <html:li>Given four compatible objects of <fr:tex display="inline"><![CDATA[\N (\mathbb {C})_2]]></fr:tex> defining a 3-boundary (a tetrahedron), there is a unique objects of <fr:tex display="inline"><![CDATA[\N (\mathbb {C})_3]]></fr:tex> filling it if and only if the square of globular isomorphisms commute</html:li>
    <html:li>Given four compatible morphisms of <fr:tex display="inline"><![CDATA[\N (\mathbb {C})_2]]></fr:tex>, there is always a unique morphism in <fr:tex display="inline"><![CDATA[\N (\mathbb {C})_3]]></fr:tex> filling the boundary</html:li>
    <html:li>The face- and degeneracy functors are the obvious ones</html:li>
    <html:li><fr:tex display="inline"><![CDATA[\N (\mathbb {C})]]></fr:tex> is <fr:tex display="inline"><![CDATA[3]]></fr:tex>-coskeletal, which defines the rest of the structure</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>2024</fr:year>
                      <fr:month>6</fr:month>
                      <fr:day>26</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-001T/</fr:uri>
                    <fr:display-uri>efr-001T</fr:display-uri>
                    <fr:route>/efr-001T/</fr:route>
                    <fr:taxon>Theorem</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
                      <html:ol><html:li>A pseudo double functor <fr:tex display="inline"><![CDATA[\mathbb {C} \to  \mathbb {D}]]></fr:tex> is equivalent to a natural transformation <fr:tex display="inline"><![CDATA[N(\mathbb {C}) \to  N(\mathbb {D})]]></fr:tex></html:li>
    <html:li>If <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex> is a double category in which each vertical isomorphism has a companion, <fr:tex display="inline"><![CDATA[N(\mathbb {C})]]></fr:tex> is a weak Segal category</html:li>
    <html:li>Every weak Segal category is equivalent to one of the form <fr:tex display="inline"><![CDATA[N(\mathbb {C})]]></fr:tex> for <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex> a pseudo double category of this type.</html:li></html:ol>
                    </html:p>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathbb {C}]]></fr:tex> be a double category in which every vertical isomorphism has a companion. Then by <fr:link href="/todo-tree/" title="To do list" uri="https://erischel.com/todo-tree/" display-uri="todo-tree" type="local">reference here, Shulman stuff,</fr:link> the source and target functors are isofibrant.
  To prove <fr:tex display="inline"><![CDATA[N(\mathbb {C})]]></fr:tex> is a weak Segal category, it therefore suffices to prove that <fr:tex display="inline"><![CDATA[N(\mathbb {C})[2] \to  N(\mathbb {C})[1] \times _{N(\mathbb {C})[0]} N(\mathbb {C})[1]]]></fr:tex> is an equivalence of categories, and the analogous statement in level 3 (it follows for the higher levels by coskeletality).
</html:p>
                    <html:p>
  Now, let <fr:tex display="inline"><![CDATA[X]]></fr:tex> be a weak Segal. By <fr:link href="/todo-tree/" title="To do list" uri="https://erischel.com/todo-tree/" display-uri="todo-tree" type="local">reference</fr:link>, every simplicial category is equivalent to one which is Reedy fibrant.
  Note that being a Segal category is preserved by equivalence, so without loss of generality, assume <fr:tex display="inline"><![CDATA[X]]></fr:tex> is Reedy fibrant.
</html:p>
                    <html:p>
  This means the functor <fr:tex display="inline"><![CDATA[X[n] \to  X(\partial  \Delta ^n)]]></fr:tex> is an isofibration for each <fr:tex display="inline"><![CDATA[n]]></fr:tex>.
  First, let <fr:tex display="inline"><![CDATA[n=1]]></fr:tex>. This means <fr:tex display="inline"><![CDATA[X[1] \to  X[0] \times  X[0]]]></fr:tex> is an isofibration. Since such fibrations are stable under pullback, this implies that the projection <fr:tex display="inline"><![CDATA[X(\partial  \Delta ^2) \to  X[1] \times _{X[0]} X[1]]]></fr:tex> is again an isofibration, which means the composite <fr:tex display="inline"><![CDATA[X[2] \to  X[1] \times _{X[0]} X[1]]]></fr:tex> is an isofibration. Since this pullback is a homotopy pullback, and <fr:tex display="inline"><![CDATA[X]]></fr:tex> is weak Segal, it is an equivalence, and hence a trivial equivalence. Choose a (strict!) section <fr:tex display="inline"><![CDATA[s]]></fr:tex>. 
</html:p>
                    <html:p>
  By a completely analogous argument, choose a section of <fr:tex display="inline"><![CDATA[X[3] \to  X[1] \times _{X[0]} X[1] \times _{X[0]} X[1],]]></fr:tex> which is again a trivial fibration.
</html:p>
                    <html:p>
  Let our pseudo double category have <fr:tex display="inline"><![CDATA[X[1] \rightrightarrows  X[0]]]></fr:tex> as the underlying reflective graph,
  composition defined by the composite <fr:tex display="inline"><![CDATA[X[1] \times _{X[0]} X[1] \to  X[2] \xrightarrow {d_1} X[1],]]></fr:tex>
  associator defined using the degeneracies, and unitor defined using the section of <fr:tex display="inline"><![CDATA[X[3]]]></fr:tex>.
  Call this pseudo double category <fr:tex display="inline"><![CDATA[\mathbb {X}]]></fr:tex></html:p>
                    <html:p>
  It is easy to see there is a functor <fr:tex display="inline"><![CDATA[X \to  N(\mathbb {X})]]></fr:tex>, which is the identity on the first two levels.
  Since the higher levels are homotopy pullbacks of the lower levels, this implies it is an equivalence at each level, concluding the proof.
</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>14</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-000H/</fr:uri>
                    <fr:display-uri>efr-000H</fr:display-uri>
                    <fr:route>/efr-000H/</fr:route>
                    <fr:title text="\dblPara  preserves homotopy limits"><fr:tex display="inline"><![CDATA[\dblPara ]]></fr:tex> preserves homotopy limits</fr:title>
                    <fr:taxon>Theorem</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  The pseudofunctor <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}: \mathsf {Arr}(\mathsf {SymMonCat}) \to  \mathsf {PsDbl}]]></fr:tex>, which carries a symmetric monoidal functor <fr:tex display="inline"><![CDATA[\mathcal {C} \to  \mathcal {D}]]></fr:tex> to the pseudo double category <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}_\mathcal {C}(\mathcal {D})]]></fr:tex>, preserves homotopy 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>2024</fr:year><fr:month>6</fr:month><fr:day>14</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
<html:p>
  Note that homotopy limits on both sides are computed levelwise (using the observation that both are categories of models of (homotopy) limit sketches in the bicategory <fr:tex display="inline"><![CDATA[\mathsf {Cat}]]></fr:tex>.)
</html:p>
<html:p>
  Since <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}_\mathcal {C}(\mathcal {D})_0 = \mathcal {D},]]></fr:tex> this immediately implies that <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}(-)_0]]></fr:tex> preserves homotopy limits. It suffices to verify that <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}(-)_1]]></fr:tex> also preserves them. But note that <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}_\mathcal {C}(\mathcal {D})_1]]></fr:tex> can be written as the comma object of the cospan <fr:tex display="inline"><![CDATA[\mathcal {C} \times  \mathcal {D} \to  \mathcal {D} = \mathcal {D},]]></fr:tex> and since comma objects are PIE limits, they commute with homotopy limits (pseudolimits). This concludes the proof.
</html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
                <html:p>Note that (pseudo-) monoids <fr:tex display="inline"><![CDATA[M]]></fr:tex> equipped with a left module <fr:tex display="inline"><![CDATA[C]]></fr:tex> in a general bicategory <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> are also classified by a limit sketch, and both the underlying object of the module and the map <fr:tex display="inline"><![CDATA[C \times  M \to  M]]></fr:tex> are in the image of this limit sketch. By instantiating this for <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> being the bicategories of categories (or monoidal categories, etc), we recover alternative versions of <fr:link href="/efr-000H/" title="\dblPara  preserves homotopy limits" uri="https://erischel.com/efr-000H/" display-uri="efr-000H" type="local">Theorem <fr:contextual-number uri="https://erischel.com/efr-000H/" display-uri="efr-000H" /></fr:link> for category actions that are not symmetric. We will mainly concern ourselves with the symmetric case, however.</html:p>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="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>14</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-000I/</fr:uri>
                    <fr:display-uri>efr-000I</fr:display-uri>
                    <fr:route>/efr-000I/</fr:route>
                    <fr:title text="\mathsf {\mathbb  Ctrl}">
                      <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Ctrl}]]></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 dynamical systems theory, let <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}]]></fr:tex> be the associated category of arenas. Recall that <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}_0]]></fr:tex> is the category of <html:em>lenses</html:em>.
  Consider the (strict) category internal to <fr:tex display="inline"><![CDATA[\mathsf {Arr}(\mathsf {SymMonCat})]]></fr:tex> given by the following diagram:
  
  <html:figure><fr:resource hash="74556065a5c2137a6f72747fe0ef3df7"><fr:resource-content><html:img src="/74556065a5c2137a6f72747fe0ef3df7.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 {Arr}(\mathcal {C})^\simeq  \ar [d,shift left] \ar [d, shift right] \ar [r, "T"] & \mathsf {\mathbb  Arena}_1 \ar [d, shift left] \ar [d, shift right]\\
    {\mathcal {C}^\simeq  \ar [r, "T"]} & {\mathsf {\mathbb  Arena}_0.}
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  By <fr:link href="/efr-003R/" title="https://erischel.com/efr-003R/" uri="https://erischel.com/efr-003R/" display-uri="efr-003R" type="local">Theorem <fr:contextual-number uri="https://erischel.com/efr-003R/" display-uri="efr-003R" /></fr:link>, the image of this internal category under <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Para}(-)]]></fr:tex> is a <fr:link href="/efr-003Q/" title="Iwss triple category" uri="https://erischel.com/efr-003Q/" display-uri="efr-003Q" type="local">iwss triple category</fr:link>. We call this triple category <html:em>the triple category of controlled processes,</html:em> and denote it by <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Ctrl}]]></fr:tex>, or <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Ctrl}_{T,\mathcal {C},\mathcal {A}}]]></fr:tex> if we want to disambiguate the choice of doctrine.
</html:p>
                    <html:p>(Note the difference between <fr:tex display="inline"><![CDATA[\mathsf {Arr}(\mathcal {C})^\simeq ]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathsf {Arr}(\mathcal {C}^\simeq )]]></fr:tex>---the former has objects all morphisms of <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex>, and the morphisms between them given by isomorphisms, whereas the latter has objects only the isomorphisms in <fr:tex display="inline"><![CDATA[\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>2024</fr:year>
                      <fr:month>6</fr:month>
                      <fr:day>14</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-000J/</fr:uri>
                    <fr:display-uri>efr-000J</fr:display-uri>
                    <fr:route>/efr-000J/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  The objects of <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Ctrl}]]></fr:tex> are arenas.
</html:p>
                    <html:p>
  The three directions of morphism in <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Ctrl}]]></fr:tex> are lenses, charts, and controlled processes.
</html:p>
                    <html:p>
  The lens-chart double category is isomorphically <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}]]></fr:tex>---in particular, composition of both lenses and charts is strictly associative.
</html:p>
                    <html:p>
  The process-chart double category has 2-cells the chart reparametrizations. 
  The process-lens double category has 2-cells the lens <html:em>isoparametrizations</html:em>. They both compose in the obvious way.
</html:p>
                    <html:p>
  Processes compose as morphisms of <fr:tex display="inline"><![CDATA[\mathsf {Para}_{\mathcal {C}^\simeq }(\mathsf {Lens})]]></fr:tex>---that is,
  <fr:tex display="block"><![CDATA[(S,TS \otimes  A \to  B) ; (S', TS' \otimes  B \to  C) = (S' \otimes  S, T(S' \otimes  S) \otimes  A \cong  TS' \otimes  TS \otimes  A \to  TS' \otimes  B \to  C),]]></fr:tex>
  this is associative up to a coherent choice of globular isoparametrization.
</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>17</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-000U/</fr:uri>
                    <fr:display-uri>efr-000U</fr:display-uri>
                    <fr:route>/efr-000U/</fr:route>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  We can consider two strategies for constructing the "full" triple category of controlled processes:
  <html:ol><html:li>Give a construction of the double category of controlled processes and all lens reparametrizations, in a functorial way so that we can extend this to a triple category</html:li>
    <html:li>Prove that freely(?) adding companions, in a suitable sense, of each globular chart reparametrization, gives the right thing (this should amount to checking a composition rule)</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>2024</fr:year>
                      <fr:month>6</fr:month>
                      <fr:day>17</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-000V/</fr:uri>
                    <fr:display-uri>efr-000V</fr:display-uri>
                    <fr:route>/efr-000V/</fr:route>
                    <fr:taxon>Proposition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Ctrl}_1 \to  \tilde {\mathsf {\mathbb  Ctrl}_1}]]></fr:tex> be constructed by freely adding companions of every globular chart reparametrization. Then <fr:tex display="inline"><![CDATA[\tilde {\mathsf {\mathbb  Ctrl}_1}]]></fr:tex> admits the following description:
  <html:ol><html:li>The objects are the objects of <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Ctrl}_1,]]></fr:tex> i.e tuples <fr:tex display="inline"><![CDATA[A,B,S, TS \otimes  A \leftrightarrows  B]]></fr:tex></html:li>
    <html:li>The vertical morphisms are <fr:link href="/efr-000K/" title="Chart reparametrization" uri="https://erischel.com/efr-000K/" display-uri="efr-000K" type="local">chart reparametrizations</fr:link></html:li>
    <html:li>The horizontal morphisms are <fr:link href="/efr-000L/" title="Lens reparametrization" uri="https://erischel.com/efr-000L/" display-uri="efr-000L" type="local">lens reparametrizations</fr:link></html:li>
    <html:li><fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Ctrl}_1]]></fr:tex> is thin, and a square exists if and only if the underlying square in <fr:tex display="inline"><![CDATA[\mathcal {C}]]></fr:tex> commutes.</html:li></html:ol>
  Moreover, the internal category structure <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Ctrl}_1 \rightrightarrows  \mathsf {\mathbb  Ctrl}_0]]></fr:tex>, and the symmetric monoidal structure, both extend to <fr:tex display="inline"><![CDATA[\tilde {\mathsf {\mathbb  Ctrl}_1},]]></fr:tex> so that we obtain a symmetric monoidal triple category <fr:tex display="inline"><![CDATA[\tilde {\mathsf {\mathbb  Ctrl}_1}.]]></fr:tex></html:p><html:p><fr:link href="/todo-tree/" title="To do list" uri="https://erischel.com/todo-tree/" display-uri="todo-tree" type="local">Fix the notation of <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Ctrl}]]></fr:tex> vs <fr:tex display="inline"><![CDATA[\tilde {\mathsf {\mathbb  Ctrl}}]]></fr:tex></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>17</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  It is apparent that the given data describes a double category which receives a functor from <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Ctrl}_1]]></fr:tex>. It is also apparent that globular chart reparametrizations have companions in this double category, given by the equivalent globular lens reparametrization. Since, as developed in <fr:link href="/todo-tree/" title="To do list" uri="https://erischel.com/todo-tree/" display-uri="todo-tree" type="local">insert example here</fr:link>, we have seen that every lens reparametrization factors as a composite of companions of lens isoparametrizations and companions of globular chart reparametrizations... <fr:link href="/todo-tree/" title="To do list" uri="https://erischel.com/todo-tree/" display-uri="todo-tree" type="local">finish this</fr:link>.
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                </fr:tree>
              </fr:mainmatter>
            </fr:tree>
            <fr:tree show-metadata="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>
                    <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                  </fr:author>
                </fr:authors>
                <fr:date>
                  <fr:year>2024</fr:year>
                  <fr:month>6</fr:month>
                  <fr:day>20</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-000X/</fr:uri>
                <fr:display-uri>efr-000X</fr:display-uri>
                <fr:route>/efr-000X/</fr:route>
                <fr:title text="proposition">proposition</fr:title>
              </fr:frontmatter>
              <fr:mainmatter><html:p>
  The functor <fr:tex display="inline"><![CDATA[A \otimes  -: \mathsf {BorelStoch} \to  \mathsf {BorelStoch}]]></fr:tex> has a terminal coalgebra, carried by <fr:tex display="inline"><![CDATA[A^\omega ]]></fr:tex> with the deterministic structure map <fr:tex display="inline"><![CDATA[\langle  \rm  head, tail \rangle : A^\omega  \to  A \otimes  A^\omega ]]></fr:tex>.
</html:p>
  <fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link></fr:author></fr:authors><fr:date><fr:year>2024</fr:year><fr:month>6</fr:month><fr:day>20</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Observe that this diagram is a Kolmogorov limit in <fr:tex display="inline"><![CDATA[\mathsf {BorelStoch}:]]></fr:tex></html:p>
  
  <html:figure><fr:resource hash="ae15ed1beac764d05d67efa6982a7e44"><fr:resource-content><html:img src="/ae15ed1beac764d05d67efa6982a7e44.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^\omega  \ar [d] \ar [dr] \ar [drr] \ar [drrr] \ar [drrrr] & & & \\
    I & A \ar [l] & A \otimes  A \ar [l] & A \otimes  A \otimes  A \ar [l] & \cdots  \ar [l]
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  <html:p>
    This gives a coalgebra structure on <fr:tex display="inline"><![CDATA[A^\omega ]]></fr:tex> in the usual way.
  </html:p>
  <html:p>
    Given <fr:tex display="inline"><![CDATA[\xi  : X \to  X \otimes  A]]></fr:tex>, we can build a cone by iteratively applying <fr:tex display="inline"><![CDATA[A \times  -]]></fr:tex> to the unique map <fr:tex display="inline"><![CDATA[X \to  I]]></fr:tex>:
  </html:p>
  
  <html:figure><fr:resource hash="0e4aac58fba7579d20fa09db5426c20c"><fr:resource-content><html:img src="/0e4aac58fba7579d20fa09db5426c20c.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 [d] \ar [r, "\xi "] & A \otimes  X \ar [r, "A \otimes  \xi "] \ar [d] & A \otimes  A \otimes  X \ar [r] \ar [d] & \cdots  \\
    I & A \ar [l] & A \otimes  A \ar [l] & \cdots 
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>

  This cone induces a map <fr:tex display="inline"><![CDATA[X \to  A^\omega ]]></fr:tex>. Moreover, for such a map to be a coalgebra map is for two maps into <fr:tex display="inline"><![CDATA[A \otimes  A^\omega ]]></fr:tex> to agree. Since the tensor product preserves the cofiltered limit defining <fr:tex display="inline"><![CDATA[A^\omega ]]></fr:tex>, this is an equation between two cones on the sequence <fr:tex display="inline"><![CDATA[A \leftarrow  A \otimes  A \leftarrow  \dots ]]></fr:tex>, which is exactly the coinductive equation defining the cone above.
</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>25</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-001L/</fr:uri>
                <fr:display-uri>efr-001L</fr:display-uri>
                <fr:route>/efr-001L/</fr:route>
                <fr:title text="The Double Category of Stochastic Arenas">The Double Category of Stochastic Arenas</fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathcal {D} \to  \mathcal {C}_\mathrm {det}]]></fr:tex> be a Markov fibration. Since it is a fibration, we may form the ordinary double category of arenas <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}(\mathcal {D})]]></fr:tex>. Note that there is a double functor <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Arena}(\mathcal {D}) \to  \mathcal {C}_\mathrm {det}^\square ]]></fr:tex>. This is a double fibration: an internal category in the category of fibrations.
</html:p>
                <html:p>
  The double category of <html:em>stochastic arenas</html:em> is obtained by stochastically completing this fibration in both directions---in other words, we form the completions <fr:tex display="inline"><![CDATA[\overline {\mathsf {\mathbb  Arena}(\mathcal {D})_1}]]></fr:tex> and <fr:tex display="inline"><![CDATA[\overline {\mathsf {\mathbb  Arena}(\mathcal {D})_2}]]></fr:tex>. We must check that this still gives a double category (it does), which we then transpose, stochastically complete, then transpose again (once again, there is something to check to see that the completion preserves the double categorical structure).
</html:p>
                <html:p>
  The phrase "stochastic arenas" is a bit unfortunate, since the arenas themselves are no different from ordinary arenas (stochastic completion does not change the objects). Rather, it is the morphisms, the lenses and charts, that are stochastic.
</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>4</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-002S/</fr:uri>
                <fr:display-uri>efr-002S</fr:display-uri>
                <fr:route>/efr-002S/</fr:route>
                <fr:title text="Stochastic lens">Stochastic lens</fr:title>
                <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 stochastically complete Markov fibration. 
  Then a <html:em>stochastic lens <fr:tex display="inline"><![CDATA[\bar {X} \to  \bar {Y}]]></fr:tex></html:em>, where <fr:tex display="inline"><![CDATA[\bar {X},\bar {Y} \in  \mathcal {D}]]></fr:tex>, with <fr:tex display="inline"><![CDATA[p(\bar {X}) = X, p(\bar {Y}) = Y]]></fr:tex>, consists of:
  <html:ol><html:li>An object <fr:tex display="inline"><![CDATA[M \in  \mathcal {C}]]></fr:tex>, equipped with deterministic maps <fr:tex display="inline"><![CDATA[p_X: M \to  X, p_Y: M \to  Y]]></fr:tex></html:li>
    <html:li>A (non-deterministic) section <fr:tex display="inline"><![CDATA[s: X \to  M]]></fr:tex> of <fr:tex display="inline"><![CDATA[p_X]]></fr:tex></html:li>
    <html:li>And a map <fr:tex display="inline"><![CDATA[\phi : p_Y^*\bar {Y} \to  \bar {X}]]></fr:tex> over <fr:tex display="inline"><![CDATA[p_X]]></fr:tex></html:li>
    <html:li>Up to the equivalence relation identifying two such tuples <fr:tex display="inline"><![CDATA[(M,p_X,p_Y,s,\phi ), (N,q_X,q_Y,t,\psi )]]></fr:tex> if there exists (non-deterministic) <fr:tex display="inline"><![CDATA[\alpha : M \to  N]]></fr:tex> so that the relevant diagrams commute---that is, the projections to <fr:tex display="inline"><![CDATA[X]]></fr:tex> and <fr:tex display="inline"><![CDATA[Y]]></fr:tex> commute with <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex>, <fr:tex display="inline"><![CDATA[t= \alpha  s]]></fr:tex>, and <fr:tex display="inline"><![CDATA[\phi  = \psi  \bar {\alpha },]]></fr:tex> where <fr:tex display="inline"><![CDATA[\bar {\alpha }: p_Y^*\bar {Y} \to  q_Y*\bar {Y}]]></fr:tex> is the unique map induced by the stochastic completeness property</html:li></html:ol></html:p>
                <html:p>
(This could have been described as a coend, but since we don't find the coend calculus very useful for manipulating the set of stochastic lenses, we choose not to.)
</html:p>
                <html:p>
  Given an optic, the <html:em>forwards part</html:em> is the composite map <fr:tex display="inline"><![CDATA[X \to  M \to  Y]]></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>7</fr:month>
                  <fr:day>15</fr:day>
                </fr:date>
                <fr:uri>https://erischel.com/efr-0030/</fr:uri>
                <fr:display-uri>efr-0030</fr:display-uri>
                <fr:route>/efr-0030/</fr:route>
                <fr:title text="The opposite of \mathsf {FinStoch}">The opposite of <fr:tex display="inline"><![CDATA[\mathsf {FinStoch}]]></fr:tex></fr:title>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  Recall that (perhaps by definition, perhaps as a trivial theorem, depending on our choice of definition), there is a faithful functor <fr:tex display="inline"><![CDATA[\mathsf {FinStoch} \to  \mathsf {Vect}]]></fr:tex> carrying a set <fr:tex display="inline"><![CDATA[X]]></fr:tex> to the vector space <fr:tex display="inline"><![CDATA[\mathbb {R}\langle  X \rangle ]]></fr:tex> freely generated by <fr:tex display="inline"><![CDATA[X]]></fr:tex>, and a stochastic map <fr:tex display="inline"><![CDATA[f: X \to  Y]]></fr:tex> to the map which takes the basis vector <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex> to the linear combination <fr:tex display="inline"><![CDATA[\sum _{y \in  Y} y f(y|x)]]></fr:tex>. The essential image of this functor is, of course, the finite-dimensional vector spaces. The morphisms in the image are the <html:em>stochastic matrices</html:em>, which can be characterized as those that are <html:em>positive</html:em> (they carry vectors with positive coordinates to other such vectors) and preserve the constant <fr:tex display="inline"><![CDATA[1]]></fr:tex> vector (note that neither of these properties are invariant under isomorphism of finite-dimensional vector space).
</html:p>
                <html:p>
  One way to think about this is that it proves <fr:tex display="inline"><![CDATA[\mathsf {FinStoch}]]></fr:tex> is equivalent to the category of <html:em>finite-dimensional, ordered, pointed</html:em> vector spaces, where we assume that the chosen point must be positive in the order. (To see the inclusion is essentially surjective, note that given a vector space pointed by <fr:tex display="inline"><![CDATA[(a_1, \dots  a_n)]]></fr:tex>, all those coordinates positive, it receives an isomorphism from the same spaces pointed by <fr:tex display="inline"><![CDATA[(1, \dots  1)]]></fr:tex> given by the diagonal matrix with entries <fr:tex display="inline"><![CDATA[a_1, \dots  a_n]]></fr:tex>).
</html:p>
                <html:p>
  Now, let <fr:tex display="inline"><![CDATA[\mathsf {fdVect}^\leq ]]></fr:tex> denote the category of finite-dimensional ordered vector spaces. Then equipping a space <fr:tex display="inline"><![CDATA[V]]></fr:tex> with a positive point is exactly choosing an order-preserving linear map <fr:tex display="inline"><![CDATA[\mathbb {R} \to  V]]></fr:tex>, so we have proven <fr:tex display="inline"><![CDATA[\mathsf {FinStoch} \simeq  \mathsf {fdVect}^\leq _{ \mathbb {R} /}]]></fr:tex>. Now we can compute
  <fr:tex display="block"><![CDATA[\mathsf {FinStoch}^\mathrm {op} \simeq  (\mathsf {fdVect}^\leq _{ \ RR/})^\mathrm {op} \cong  (\mathsf {fdVect}^\leq )^\mathrm {op}_{ / \mathbb {R}} \cong  \mathsf {fdVect}^\leq _{ / \mathbb {R}},]]></fr:tex>
  where the last isomorphism is via transposition (note that transposing a positive matrix yields a positive matrix).
</html:p>
                <html:p>
  This isomorphism merely describes the fact that stochastic maps <fr:tex display="inline"><![CDATA[\phi : X \to  Y]]></fr:tex> can also be described as linear maps <fr:tex display="inline"><![CDATA[f: \mathbb {R}\langle  Y \rangle  \to  \mathbb {R}\langle  X \rangle ]]></fr:tex> so that <fr:tex display="inline"><![CDATA[\sum _x f((a_y))_x = \sum _y a_y]]></fr:tex>. This map interprets a vector as a function on <fr:tex display="inline"><![CDATA[Y]]></fr:tex>, and carries it to the function on <fr:tex display="inline"><![CDATA[X]]></fr:tex> which finds the expected value if <fr:tex display="inline"><![CDATA[y \in  Y]]></fr:tex> is distributed as <fr:tex display="inline"><![CDATA[\phi (x)]]></fr:tex>. The normalization condition merely says a constant function always has that constant as its expectation.
</html:p>
                <html:p>
  The self-duality of <fr:tex display="inline"><![CDATA[\mathsf {fdVect}]]></fr:tex> does not generalize to infinite-dimensional vector spaces, so once we move beyond finite state spaces, this story will get somewhat more complicated. However, the basic idea that, to carry the tools of coalgebraic modal logic into the stochastic case, the sort of "predicate" we should consider is actually a <html:em>function</html:em> on the state space, will remain the central idea.
</html:p>
                <html:p>
  (Indeed, to consider the right notion of stochastic function between, for example, smooth manifolds, we will in any case want to use the tools of functional analysis to think of these in terms of transformation on integration operators, which is essentially this idea).
</html:p>
                <html:p>
  Another way to justify this idea is to note that <fr:tex display="inline"><![CDATA[\Omega  = \{\bot ,\top \}]]></fr:tex> is the subobject classifier for <fr:tex display="inline"><![CDATA[\mathsf {Fin} \subseteq  \mathsf {FinStoch}]]></fr:tex>. Hence if we want our notion of predicate to transform under stochastic maps, and include the logical predicates in the usual sense, we have to at least consider the stochastic maps <fr:tex display="inline"><![CDATA[X \to  \Omega ]]></fr:tex>, which of course amount to functions <fr:tex display="inline"><![CDATA[X \to  [0,1]]]></fr:tex> in this case. But a positive linear map on functions is determined by what it does to functions like this, so whether we work only with these or all functions <fr:tex display="inline"><![CDATA[X \to  \mathbb {R}]]></fr:tex> is more or less a matter of taste.
</html:p>
                <html:p>
  Instead of having a logic consisting of the operations of Boolean algebra, augmented with extra operations described by <fr:tex display="inline"><![CDATA[T^\mathrm {op} B \to  B]]></fr:tex>, we have the operations of a vector space, augmented by some extra modal operations. The Markov structure of <fr:tex display="inline"><![CDATA[\mathsf {FinStoch},]]></fr:tex> or whichever category we work in, will give the vector space of functions an <fr:tex display="inline"><![CDATA[\mathbb {R}]]></fr:tex>-algebra structure, but we should note that some equations fail to hold in general (dual to the fact that not all morphisms in the Markov category are homomorphisms for the comonoid structure). The Hennessy-Milner property is essentially the same in this situation, saying that our set of modally-expressible functions should separate points in the terminal coalgebra. Since we will have multiplication and linear combinations of functions, this entails under some mild topological conditions that it's <html:em>dense</html:em> in the set of functions on the terminal coalgebra.
</html:p>
                <html:p>
  It is worth examining this analogy a bit further, in the simpler setup of coalgebraic modal logic. If <fr:tex display="inline"><![CDATA[X]]></fr:tex> is a space in some general sense, let us schematically write <fr:tex display="inline"><![CDATA[C(X)]]></fr:tex> for the space of functions on <fr:tex display="inline"><![CDATA[X]]></fr:tex>, so that as above stochastic maps <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> are identified with certain linear maps <fr:tex display="inline"><![CDATA[C(Y) \to  C(X)]]></fr:tex>. Again, the Markov structure on the category of stochastic maps (whatever it is) amounts to the fact that <fr:tex display="inline"><![CDATA[C(X)]]></fr:tex> carries the structure of an <fr:tex display="inline"><![CDATA[\mathbb {R}]]></fr:tex>-algebra, and deterministic maps are those which are not algebra homomorphisms.
</html:p>
                <html:p>
  Let now <fr:tex display="inline"><![CDATA[\xi : X \to  A \otimes  X]]></fr:tex> be a simple stochastic dynamical system which outputs a value of type <fr:tex display="inline"><![CDATA[A]]></fr:tex> at each step. The dual of this is <fr:tex display="inline"><![CDATA[C(A) \otimes  C(X) \to  C(X),]]></fr:tex> where the tensor here is now the tensor product of vector spaces.
</html:p>
                <html:p>
  Among <html:em>algebras</html:em>, the tensor product is the coproduct, so we may restrict the above map to form two modal operators, <fr:tex display="inline"><![CDATA[C(A) \to  C(X)]]></fr:tex> and <fr:tex display="inline"><![CDATA[C(X) \to  C(X)]]></fr:tex>---the latter being simply the transition operator taking a function <fr:tex display="inline"><![CDATA[\phi (x)]]></fr:tex> to the expected value of the next step, the former computing the expected value of the output given <fr:tex display="inline"><![CDATA[x]]></fr:tex>. But since the transition may be nondeterministic, these two restrictions do not determine it. From a logical point of view, the problem is that we can't express statements about the correlation between the output and the next step.
</html:p>
                <html:p>
  As a simple counterexample, consider two system where <fr:tex display="inline"><![CDATA[X = A = \{0,1\}]]></fr:tex>. In the first, the output and the next state are independent, and both equal the current state with probability <fr:tex display="inline"><![CDATA[1-\epsilon ]]></fr:tex>. In the other, the output and next state are always equal, and again are equal to the current state with probability <fr:tex display="inline"><![CDATA[1-\epsilon ]]></fr:tex></html:p>
                <html:p>
  These systems have the same marginals <fr:tex display="inline"><![CDATA[X \to  A]]></fr:tex> and <fr:tex display="inline"><![CDATA[X \to  X]]></fr:tex>, and hence the two modal operators above have the same behaviour, and hence every modally expressible function is the same. But in the former, the probability of seeing ab output sequence beginning <fr:tex display="inline"><![CDATA[1,0,\dots ]]></fr:tex> when starting in state <fr:tex display="inline"><![CDATA[0]]></fr:tex> is proportional to <fr:tex display="inline"><![CDATA[\epsilon ]]></fr:tex>, whereas in the latter it is proportional to <fr:tex display="inline"><![CDATA[\epsilon ^2]]></fr:tex> (since you have to flip twice), so these systems have very different behaviour.
</html:p>
                <html:p>
  Using <fr:link href="/efr-000X/" title="proposition" uri="https://erischel.com/efr-000X/" display-uri="efr-000X" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-000X/" display-uri="efr-000X" /></fr:link>, we can deduce a version of Hennessy-Milner for stochastic transition systems (with no input and outputs in finite set <fr:tex display="inline"><![CDATA[A]]></fr:tex>). Namely, fix a system <fr:tex display="inline"><![CDATA[\xi : X \to  A \otimes  X]]></fr:tex>, and let <fr:tex display="inline"><![CDATA[\nabla (u,v),]]></fr:tex> with <fr:tex display="inline"><![CDATA[u: A \to  \mathbb {R}]]></fr:tex> and <fr:tex display="inline"><![CDATA[v: X \to  \mathbb {R}]]></fr:tex> denote the function which carries <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex> to the expected value of <fr:tex display="inline"><![CDATA[u(a)v(x')]]></fr:tex> when <fr:tex display="inline"><![CDATA[(a,x')]]></fr:tex> are distributed according to the system. Then <fr:tex display="inline"><![CDATA[\nabla ]]></fr:tex> is precisely the bilinear function <fr:tex display="inline"><![CDATA[C(A) \otimes  C(X) \to  C(X)]]></fr:tex> dual to <fr:tex display="inline"><![CDATA[\xi ]]></fr:tex>. Since <fr:tex display="inline"><![CDATA[A^\omega ]]></fr:tex> is the terminal coalgebra, and the inverse limit of <fr:tex display="inline"><![CDATA[A \leftarrow  A^2 \leftarrow  \dots ]]></fr:tex>, we can infer that <fr:tex display="inline"><![CDATA[C(A^\omega )]]></fr:tex> is the colimit of the sequence <fr:tex display="inline"><![CDATA[C(A) \to  C(A) \otimes  C(A) \to  \dots ]]></fr:tex> in some category of <fr:tex display="inline"><![CDATA[\mathbb {R}]]></fr:tex>-algebras (we must think a little about topology to make this precise.)
</html:p>
                <html:p>
  But this should imply that the union  of the images of <fr:tex display="inline"><![CDATA[C(A)^{\otimes  n}]]></fr:tex> inside this algebra is dense. So certainly they separate points. But this image consists exactly of formulas given by functions on <fr:tex display="inline"><![CDATA[A]]></fr:tex>, applications of <fr:tex display="inline"><![CDATA[\nabla ,]]></fr:tex> and sums and products. So these formulae are sufficiently expressive to separate points of the terminal coalgebra (which are, of course, exactly bisimulation classes).
</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:title text="Logic for systems misc">Logic for systems misc</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>6</fr:month>
                      <fr:day>24</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-001B/</fr:uri>
                    <fr:display-uri>efr-001B</fr:display-uri>
                    <fr:route>/efr-001B/</fr:route>
                    <fr:title text="Stochastic Categorical Systems Theory (The Discrete Case)">Stochastic Categorical Systems Theory (The Discrete Case)</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  It will be instructive to work out the theory in the discrete case, which is to say, for the Kleisli category of the discrete (i.e finite-support) distribution monad on <fr:tex display="inline"><![CDATA[\mathsf {Set}]]></fr:tex>. Note that even for discrete-time discrete-space applications, this setup is not really adequate, as we lack the structure to construct terminal systems.
</html:p>
                    <fr:tree show-metadata="false">
                      <fr:frontmatter>
                        <fr:authors>
                          <fr:author>
                            <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="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-001C/</fr:uri>
                        <fr:display-uri>efr-001C</fr:display-uri>
                        <fr:route>/efr-001C/</fr:route>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\Delta : \mathsf {Set} \to  \mathsf {Set}]]></fr:tex> carry a set <fr:tex display="inline"><![CDATA[X]]></fr:tex> to the set of finite-support probability distributions on <fr:tex display="inline"><![CDATA[X]]></fr:tex>. Recall that <fr:tex display="inline"><![CDATA[\Delta ]]></fr:tex> is a monad.
</html:p>
                        <html:p>
  Given two indexed sets <fr:tex display="inline"><![CDATA[\bar {X} \to  X, \bar {Y} \to  Y,]]></fr:tex> an <html:em>indexed stochastic lens</html:em> <fr:tex display="inline"><![CDATA[\binom {\bar {X}}{X} \to  \binom {\bar {Y}}{Y}]]></fr:tex> is an element of the convex space <fr:tex display="inline"><![CDATA[\prod _{x \in  X} \sum _{y \in  Y} [\Delta (\bar {Y}_y),\Delta (\bar {X}_x)],]]></fr:tex> where the internal hom, product and coproduct are taken in the category of convex spaces. Note that if each <fr:tex display="inline"><![CDATA[\bar {Y}_y]]></fr:tex> is identical, say <fr:tex display="inline"><![CDATA[B]]></fr:tex>, this is isomorphism to <fr:tex display="inline"><![CDATA[\prod _{x \in  X} \Delta (Y) \otimes  [\Delta (B),\Delta (\bar {X}_x)].]]></fr:tex> Recall also that an element of <fr:tex display="inline"><![CDATA[[\Delta (X),\Delta (Y)]]]></fr:tex> is equivalently a function <fr:tex display="inline"><![CDATA[X \to  \Delta (Y),]]></fr:tex> i.e. a Kleisli map <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex>.
</html:p>
                        <html:p>
  An <html:em>indexed stochastic chart</html:em> is an element of the convex space <fr:tex display="inline"><![CDATA[\prod _{x \in  X} \sum _{y \in  Y} [\Delta (\bar {X}_x),\Delta (\bar {Y}_y)]]]></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>24</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-001D/</fr:uri>
                        <fr:display-uri>efr-001D</fr:display-uri>
                        <fr:route>/efr-001D/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  The set of indexed stochastic charts is just the set of commutative squares in <fr:tex display="inline"><![CDATA[\mathsf {Kl}(\Delta )]]></fr:tex> of this form:

  
  <html:figure><fr:resource hash="7c52df51ff3970b6feec7ec3981d9a29"><fr:resource-content><html:img src="/7c52df51ff3970b6feec7ec3981d9a29.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] & \bar {Y} \ar [d]\\
    X \ar [r] & Y
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure>


  (where the vertical maps are, by assumption, deterministic, but the horizontal ones aren't necessarily)
</html:p>
  <fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="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:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  Note that an indexed stochastic chart <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> is equivalently a family of stochastic charts <fr:tex display="inline"><![CDATA[\binom {\bar {X}_{x}}{\{x\}} \to  \binom {\bar {Y}}{Y}]]></fr:tex> for each <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex>. The analogous statement is true for commutative diagrams of this form (since coproducts in diagram categories are pointwise, and coproducts of sets are again coproducts in Kleisli categories). Hence it suffices to check the case <fr:tex display="inline"><![CDATA[X = *]]></fr:tex>. In this case, a commutative square amounts to a family of distributions on <fr:tex display="inline"><![CDATA[\bar {Y},]]></fr:tex> each of which induces the same distribution on <fr:tex display="inline"><![CDATA[Y]]></fr:tex>.
  On the other hand, we are looking at the convex set</fr:mainmatter></fr:tree>
<fr:tex display="block"><![CDATA[\sum _{y \in  Y}[\Delta (\bar {X}),\Delta (\bar {Y}_y)]  = \sum _y \Delta (\bar {Y}_y)^{\bar {X}},]]></fr:tex><html:p> 
  where this exponential denotes the iterated Cartesian product in convex spaces. An element of this set clearly gives a commutative square, because for each <fr:tex display="inline"><![CDATA[y \in  Y]]></fr:tex>, there is a square which deterministically chooses that <fr:tex display="inline"><![CDATA[y]]></fr:tex>, and uses the given family of distributions on <fr:tex display="inline"><![CDATA[\bar {Y}_y]]></fr:tex> depending on <fr:tex display="inline"><![CDATA[\bar {X}]]></fr:tex>. This mapping is injective, since each map <fr:tex display="inline"><![CDATA[\bar {X} \to  \Delta (\bar {Y}_y)]]></fr:tex> can be recovered as a conditional distribution, and the convex combination of <fr:tex display="inline"><![CDATA[y]]></fr:tex>s is merely the underlying distribution on <fr:tex display="inline"><![CDATA[Y]]></fr:tex>. On the other hand, by choosing conditional distributions, it is also seen to be surjective, finishing the proof.
</html:p></fr:mainmatter>
                    </fr:tree>
                  </fr:mainmatter>
                </fr:tree>
                <fr:tree show-metadata="false">
                  <fr:frontmatter>
                    <fr:authors>
                      <fr:author>
                        <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="https://erischel.com/eigil-rischel/" display-uri="eigil-rischel" type="local">Eigil Fjeldgren Rischel</fr:link>
                      </fr:author>
                    </fr:authors>
                    <fr:date>
                      <fr:year>2024</fr:year>
                      <fr:month>6</fr:month>
                      <fr:day>28</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-001W/</fr:uri>
                    <fr:display-uri>efr-001W</fr:display-uri>
                    <fr:route>/efr-001W/</fr:route>
                    <fr:title text="Quantitative logic for systems">Quantitative logic for 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>2024</fr:year>
                          <fr:month>6</fr:month>
                          <fr:day>28</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-001V/</fr:uri>
                        <fr:display-uri>efr-001V</fr:display-uri>
                        <fr:route>/efr-001V/</fr:route>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\alpha : TS \leftrightarrows  A]]></fr:tex> be a system with interface <fr:tex display="inline"><![CDATA[A]]></fr:tex>, and let <fr:tex display="inline"><![CDATA[P]]></fr:tex> be another arena.
  A <html:em><fr:tex display="inline"><![CDATA[P]]></fr:tex>-valued predicate</html:em> on <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex> is a lift
  
  
  <html:figure><fr:resource hash="41534ce1181d1fe86220c1bdc604070d"><fr:resource-content><html:img src="/41534ce1181d1fe86220c1bdc604070d.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 \otimes  P \ar [d]\\
    TS \ar [r] \ar [ur] & A
    \end {tikzcd}
  ]]></fr:resource-source></fr:resource></html:figure></html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  For discrete-time deterministic systems, a <fr:tex display="inline"><![CDATA[P = {\bar {P} \choose  P}]]></fr:tex>-valued predicate amounts to a mapping <fr:tex display="inline"><![CDATA[S \to  P]]></fr:tex>---since the diagram implies the update can't depend on the extra input <fr:tex display="inline"><![CDATA[\bar {P}]]></fr:tex>, and in the deterministic case, a lift of <fr:tex display="inline"><![CDATA[S \to  A]]></fr:tex> over <fr:tex display="inline"><![CDATA[A \otimes  P]]></fr:tex> is simply a choice of <fr:tex display="inline"><![CDATA[S \to  P]]></fr:tex>. (In the non-deterministic case, this is not true, of course).
</html:p>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[F: \mathsf {Set} \to  \mathsf {Set}]]></fr:tex> be a functor, and let <fr:tex display="inline"><![CDATA[\xi : X \to  FX]]></fr:tex> be a coalgebra of it.
  Then we can describe a predicate of <fr:tex display="inline"><![CDATA[X]]></fr:tex> valued in <fr:tex display="inline"><![CDATA[P \in  \mathsf {Set}]]></fr:tex> as simply a function <fr:tex display="inline"><![CDATA[\phi : X \to  P]]></fr:tex>.
  Note that this makes <fr:tex display="inline"><![CDATA[X]]></fr:tex> a coalgebra of <fr:tex display="inline"><![CDATA[F(-) \times  P,]]></fr:tex> and as such it has a unique map to the terminal coalgebra (if it exists) of this functor <fr:tex display="inline"><![CDATA[X \to  (F(-) \times  P)^\infty ]]></fr:tex>.
</html:p>
                    <html:p>
  This means, given a predicate on that terminal coalgebra, <fr:tex display="inline"><![CDATA[p: (F(-) \times  P)^\infty  \to  P,]]></fr:tex> by composing these two operations, we get a new predicate on <fr:tex display="inline"><![CDATA[X]]></fr:tex>. Thus, predicates on these cofree coalgebras are a sort of "modal operators"---for example, if <fr:tex display="inline"><![CDATA[P = \{\bot ,\top \}]]></fr:tex> is the set of booleans, and <fr:tex display="inline"><![CDATA[F(X) = X]]></fr:tex> (so that coalgebras are just discrete dynamical systems), the cofree coalgebra on <fr:tex display="inline"><![CDATA[P]]></fr:tex> is the set <fr:tex display="inline"><![CDATA[\{\bot ,\top \}^\omega ]]></fr:tex> of streams of booleans. Then we can take <fr:tex display="inline"><![CDATA[p((\phi _i))]]></fr:tex> to be true if and only if each <fr:tex display="inline"><![CDATA[\phi _i]]></fr:tex> is true. Then the modal operator of <fr:tex display="inline"><![CDATA[p]]></fr:tex> is essentially "necessity"---the composite predicate is true for exactly those <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex> so that <fr:tex display="inline"><![CDATA[\phi (x_n)]]></fr:tex> is true for every <fr:tex display="inline"><![CDATA[x_n]]></fr:tex> on the trajectory.
</html:p>
                    <fr:tree show-metadata="false">
                      <fr:frontmatter>
                        <fr:authors>
                          <fr:author>
                            <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="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>28</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-001X/</fr:uri>
                        <fr:display-uri>efr-001X</fr:display-uri>
                        <fr:route>/efr-001X/</fr:route>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[p: A' \leftrightarrows  A]]></fr:tex> be a lens, let <fr:tex display="inline"><![CDATA[T(A')^\infty  \leftrightarrows  A']]></fr:tex> be the terminal <fr:tex display="inline"><![CDATA[A']]></fr:tex>-system, and consider the composite <fr:tex display="inline"><![CDATA[T(A')^\infty  \leftrightarrows  A' \leftrightarrows  A]]></fr:tex>. A <fr:tex display="inline"><![CDATA[A'/A]]></fr:tex>-modal operator is a factorization of this system over <fr:tex display="inline"><![CDATA[A' \leftrightarrows  A]]></fr:tex>, i.e some other <fr:tex display="inline"><![CDATA[A']]></fr:tex>-system with the same state space, <fr:tex display="inline"><![CDATA[\alpha : T(A')^\infty  \leftrightarrows  A']]></fr:tex> so that the two composites <fr:tex display="inline"><![CDATA[T(A')^\infty  \leftrightarrows  A' \leftrightarrows  A]]></fr:tex> agree.
</html:p>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[\xi : TS \to  A']]></fr:tex> be some other system. It has a unique map to the terminal system. After composing with <fr:tex display="inline"><![CDATA[p: A' \leftrightarrows  A,]]></fr:tex> we can regard this as a map <fr:tex display="inline"><![CDATA[p\xi  \to  p\alpha ]]></fr:tex>. We can then compose this with the unique map from <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex> to the terminal system, obtaining a new map <fr:tex display="inline"><![CDATA[p(\xi ) \to  p((A')^\infty ).]]></fr:tex> This is the operation corresponding to <fr:tex display="inline"><![CDATA[\alpha ]]></fr:tex>.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  In good cases, there will be a monadic adjunction associated to the lens <fr:tex display="inline"><![CDATA[A' \leftrightarrows  A,]]></fr:tex> and so this operation will give an endomorphism on predicates for each choice of lift of the cofree predicate (it can of course lift as itself, which corresponds to the identity operation).
</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>28</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-001Y/</fr:uri>
                    <fr:display-uri>efr-001Y</fr:display-uri>
                    <fr:route>/efr-001Y/</fr:route>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  When moving from deterministic, ordinary differential equations, to stochastic differential equations---or, from another point of approach, moving from discrete-time stochastic systems to continuous-time stochastic systems---we are forced to confront the problem that typical stochastic differential equations do not have differentiable solutions.
</html:p>
                    <html:p>
  A few questions immediately pose themselves when confronted with this statement:
  <html:ol><html:li>Since a solution of a stochastic differential equation is not merely a function but some sort of distribution of functions, what do you mean by them not being differentiable?</html:li>
    <html:li>Whatever the solutions are, how can they solve a differential equation if they aren't't differentiable?</html:li></html:ol></html:p>
                    <html:p>
  It will be instructive to consider Brownian motion. For each <fr:tex display="inline"><![CDATA[t \in  \mathbb {R}]]></fr:tex>, let <fr:tex display="inline"><![CDATA[E_t]]></fr:tex> be an independent standard Gaussian. There are some issues with defining the integral <fr:tex display="inline"><![CDATA[X_r = \int _0^r E_t dt,]]></fr:tex> since <fr:tex display="inline"><![CDATA[t \mapsto  E_t]]></fr:tex> can't be guaranteed to be even measurable, but these can be sidestepped without too many problems. Then <fr:tex display="inline"><![CDATA[X_r]]></fr:tex> is Brownian motion, but with probability <fr:tex display="inline"><![CDATA[1]]></fr:tex> it is nowhere differentiable. The integral equation above describes the sense in which <fr:tex display="inline"><![CDATA[X]]></fr:tex> solves a stochastic differential equation saying it's derivative at each point is standard Gaussian distributed.
</html:p>
                    <html:p>
  Of course, since not all systems are integrable (this is not even true in the deterministic case,) there is not gonna be an integral operator lying around that we can use to define the solutions of our differential equations. Hence we must use a different solution concept.
</html:p>
                    <html:p>
  Recall that, if <fr:tex display="inline"><![CDATA[f,g: \mathbb {R} \to  \mathbb {R}]]></fr:tex> are differentiable functions, 
  <fr:tex display="inline"><![CDATA[\int _a^b f(x)g'(x)dx = f(a)g(a)---f(b)g(b)---\int _a^b f'(x)g(x)dx,]]></fr:tex>
  (integration by parts). Now if we choose <fr:tex display="inline"><![CDATA[f]]></fr:tex> to be zero except on a bounded interval, and let the endpoints to infinity, we get <fr:tex display="inline"><![CDATA[\int _\mathbb {R} f(x)g'(x) dx =---\int _\mathbb {R} f'(x)g(x)dx]]></fr:tex>. The trick here is that the right-hand side is defined even if <fr:tex display="inline"><![CDATA[g]]></fr:tex> is not differentiable, and so it gives us a way of talking about "the derivative of <fr:tex display="inline"><![CDATA[g]]></fr:tex>", at least for some purposes, even when it doesn't exist.
</html:p>
                    <html:p>
  Since two functions have the same integral after multiplication by every differentiable <fr:tex display="inline"><![CDATA[f]]></fr:tex>, if and only if they're equal almost everywhere, this is fairly robust---if <fr:tex display="inline"><![CDATA[g]]></fr:tex> is <fr:tex display="inline"><![CDATA[C^1]]></fr:tex> and satisfies some differential equation "weakly", it follows it must satisfy it on the nose as well, for 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>2024</fr:year>
                          <fr:month>6</fr:month>
                          <fr:day>28</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-001Z/</fr:uri>
                        <fr:display-uri>efr-001Z</fr:display-uri>
                        <fr:route>/efr-001Z/</fr:route>
                        <fr:title text="Riesz Representation">Riesz Representation</fr:title>
                        <fr:taxon>Theorem</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[X]]></fr:tex> be a locally compact Hausdorff topological space, and let <fr:tex display="inline"><![CDATA[C_c(X)]]></fr:tex> denote the vector space of complex-valued, compactly supported functions on <fr:tex display="inline"><![CDATA[X]]></fr:tex>. Recall that a linear functional <fr:tex display="inline"><![CDATA[\psi : C_c \to  \mathbb {C}]]></fr:tex> is <html:em>positive</html:em> if it carries functions valued in the nonnegative reals to nonnegative real numbers.
</html:p>
                        <html:p>
  For every positive linear functional <fr:tex display="inline"><![CDATA[\psi ,]]></fr:tex> there exists a unique Radon measure <fr:tex display="inline"><![CDATA[\mu ]]></fr:tex> on <fr:tex display="inline"><![CDATA[X]]></fr:tex> so that <fr:tex display="inline"><![CDATA[\psi (f) = \int _X f(x)d\mu (x)]]></fr:tex> (conversely, it is clear that given a Radon measure, this equation defines a positive linear functional).
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\phi : C_c(Y) \to  C_c(X)]]></fr:tex> be a positive linear map. Then dualizing gives a linear map <fr:tex display="inline"><![CDATA[\phi ^*: C_c(X)^* \to  C_c(Y)^*]]></fr:tex>. If we assume the initial map preserves the constant <fr:tex display="inline"><![CDATA[1]]></fr:tex> function, this will preserve probability measures, making it a sort of infinity-dimensional stochastic matrix.
</html:p>
                    <html:p>
  In particular, we get a composite map <fr:tex display="inline"><![CDATA[X \to  C_c(X)^* \to  C_c(Y)^*,]]></fr:tex> where the first map just includes the dirac measures (or, alternatively, takes <fr:tex display="inline"><![CDATA[x]]></fr:tex> to the "evaluate at <fr:tex display="inline"><![CDATA[x]]></fr:tex>" functional).
</html:p>
                    <html:p>
  If we further assume <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex> is continuous for the uniform convergence topology, <fr:tex display="inline"><![CDATA[\phi ^*]]></fr:tex> will be continuous for the pointwise convergence topology. Since every probability measure is a limit of linear combinations of dirac measures in this topology, that means <fr:tex display="inline"><![CDATA[\phi ^*]]></fr:tex> will be controlled by the above map, so we really have an injective correspondence between linear, continuous and unit-preserving maps <fr:tex display="inline"><![CDATA[C_c(Y) \to  C_c(X)]]></fr:tex> and some subset of the Markov kernels <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex>.
</html:p>
                    <html:p>
  If we stare at this sequence of composites a bit, we realize that the linear operation corresponding to a kernel <fr:tex display="inline"><![CDATA[pX \to  Y]]></fr:tex> carries a function <fr:tex display="inline"><![CDATA[f: Y \to  \mathbb {R}]]></fr:tex> to the expected value function <fr:tex display="inline"><![CDATA[x \mapsto  E_{y \sim  p(x)} f(y)]]></fr:tex>. Not all Markov kernels will have the property that this preserves continuity of <fr:tex display="inline"><![CDATA[f]]></fr:tex> (all measurable functions are Markov kernels, even)---but we would probably want to impose some notion of continuity on our kernels in any case.
</html:p>
                    <html:p>
  Instead of thinking about the classes of Markov kernels with this continuity-of-expectation property, we can simply use the space of continuous, unit-preserving linear maps <fr:tex display="inline"><![CDATA[C_c(Y) \to  C_c(X)]]></fr:tex> as our class of stochastic maps <fr:tex display="inline"><![CDATA[X \to  Y.]]></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>29</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0020/</fr:uri>
                    <fr:display-uri>efr-0020</fr:display-uri>
                    <fr:route>/efr-0020/</fr:route>
                    <fr:title text="SDEs are only diffusion and drift">SDEs are only diffusion and drift</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Naively, we would think that a stochastic differential equation on a manifold <fr:tex display="inline"><![CDATA[X]]></fr:tex> should be a stochastic section of the tangent bundle, <fr:tex display="inline"><![CDATA[f: X \to  \Delta (TX)]]></fr:tex> (with the understanding that such a thing may not always have a solution). 
</html:p>
                    <html:p>
  Indeed, we will see that such a thing does lead to a differential equation. But unlike the deterministic case, there is not a 1-1 correspondence---different sections may determine the <html:em>same</html:em> differential equation (in the sense of having the same solutions).
</html:p>
                    <html:p>
  The issue is that, as we have discussed, by necessity solutions of stochastic differential equations are defined by integration, in a certain sense. The solution concept we have in mind is a Markov process, where each derivative is sampled independently from its distribution. But by the central limit theorem, integrating a family of independent random variables will always give a normal distribution, no matter what those variables are.
</html:p>
                    <html:p>
  In particular, the only aspect of the assigned distribution of derivatives <fr:tex display="inline"><![CDATA[f(x) \in  \Delta (T_xX)]]></fr:tex> is its mean <fr:tex display="inline"><![CDATA[Ef(x) \in  T_xX]]></fr:tex> and its covariance matrix, which is the expectation of <fr:tex display="inline"><![CDATA[v \otimes  v]]></fr:tex> inside the tensor product <fr:tex display="inline"><![CDATA[T_xX \otimes  T_xX]]></fr:tex> when <fr:tex display="inline"><![CDATA[v \sim  f(x)]]></fr:tex>.
</html:p>
                    <html:p>
  (Another way of viewing the covariance is as an operator on the tensor product of the covector space <fr:tex display="inline"><![CDATA[T_x^*X \otimes  T_x^*X \to  \mathbb {R}]]></fr:tex>, which carries a simple tensor of two covectors <fr:tex display="inline"><![CDATA[\phi  \otimes  \psi ]]></fr:tex> to the expected value of <fr:tex display="inline"><![CDATA[\phi (v)\psi (v)]]></fr:tex> when <fr:tex display="inline"><![CDATA[v]]></fr:tex> is sampled according to the given distribution).
</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>29</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0021/</fr:uri>
                    <fr:display-uri>efr-0021</fr:display-uri>
                    <fr:route>/efr-0021/</fr:route>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  In our study of discrete-time systems, we used the observation that the terminal system with a given interface can be characterized as the set of trajectories of that interface (eg <fr:link href="/efr-000X/" title="proposition" uri="https://erischel.com/efr-000X/" display-uri="efr-000X" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-000X/" display-uri="efr-000X" /></fr:link>). This allows us to develop an algebra of predicates on systems in the vein of coalgebraic modal logic.
</html:p>
                    <html:p>
  However, for continuous-time systems, the situation is much more complicated. In general, we can't expect an ordinary differential equation to have a unique solution for each initial value. There are two basic reasons for this:
  <html:ol><html:li>A simple system like <fr:tex display="inline"><![CDATA[y' = y^2, y \in  \mathbb {R}]]></fr:tex> experiences <html:em>finite-time blowup,</html:em> escaping to infinity inside a finite time horizon. In this example, the solutions have the form <fr:tex display="inline"><![CDATA[y(t) = 1/(t+C),]]></fr:tex> and so they clearly can't be continued past a certain horizon. Given some function <fr:tex display="inline"><![CDATA[\alpha (y),]]></fr:tex> we can't extend this to a function <fr:tex display="inline"><![CDATA[t \mapsto  \alpha (y(t))]]></fr:tex> on all of <fr:tex display="inline"><![CDATA[\mathbb {R}]]></fr:tex></html:li>
    <html:li>The differential equation <fr:tex display="inline"><![CDATA[y' = 2 \sqrt {|y|}]]></fr:tex> has both the solution <fr:tex display="inline"><![CDATA[y(t) = 0]]></fr:tex> and <fr:tex display="inline"><![CDATA[y(t) = y^2]]></fr:tex> (and many others)</html:li></html:ol></html:p>
                    <html:p>
  The second issue can be solved by assuming our equations are <html:em>Lipschitz</html:em> (which the square root function is not). Since smooth functions are at least Lipschitz on compact domains (with Lipschitz constant bounded by the maximal derivative), there is some hope that we can get rid of this problem (but note that, when studying stochastic processes, there are reasons for wanting to study processes with jumps, complicating the situation).
</html:p>
                    <html:p>
  However, the first issue is more resilient. One approach is to restrict our attention to compact manifolds---this is enough to guarantee that every smooth differential equation has a (global) solution. The problem with this is that the spaces of trajectories---like the space of smooth functions <fr:tex display="inline"><![CDATA[\mathbb {R} \to  A]]></fr:tex>---will not even be a manifold, but some type of generalized smooth space. Hence we will not a priori be able to extend this class 
</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>29</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-0022/</fr:uri>
                    <fr:display-uri>efr-0022</fr:display-uri>
                    <fr:route>/efr-0022/</fr:route>
                    <fr:taxon>Theorem</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Consider the category of smooth microlinear spaces <fr:tex display="inline"><![CDATA[X]]></fr:tex> equipped with a map <fr:tex display="inline"><![CDATA[X \to  A]]></fr:tex> and a vector field <fr:tex display="inline"><![CDATA[X \to  TX]]></fr:tex>.
</html:p>
                    <html:ol><html:li>This category has a terminal object, given by the colimit taken over a suitable class of small objects. In other words, a point in the terminal system is given by some system <fr:tex display="inline"><![CDATA[U \to  TU \times  A]]></fr:tex> and a point <fr:tex display="inline"><![CDATA[u_0 \in  U]]></fr:tex>, up to an equivalence relation of bisimulation</html:li>
  <html:li>The mapping space <fr:tex display="inline"><![CDATA[A^R]]></fr:tex>, equipped with the evaluation at <fr:tex display="inline"><![CDATA[0]]></fr:tex> map <fr:tex display="inline"><![CDATA[A^R \to  A]]></fr:tex> and the flow <fr:tex display="inline"><![CDATA[\frac {du}{dt} = \frac {du}{dx}]]></fr:tex> is a subterminal object.</html:li>
  <html:li>A system <fr:tex display="inline"><![CDATA[X \to  A \times  TX]]></fr:tex> admits a map to <fr:tex display="inline"><![CDATA[A^R]]></fr:tex> if and only if it is integrable in both directions</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>2024</fr:year>
                      <fr:month>7</fr:month>
                      <fr:day>1</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-002A/</fr:uri>
                    <fr:display-uri>efr-002A</fr:display-uri>
                    <fr:route>/efr-002A/</fr:route>
                    <fr:title text="Review of coalgebraic modal logic">Review of coalgebraic modal logic</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>1</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-002B/</fr:uri>
                        <fr:display-uri>efr-002B</fr:display-uri>
                        <fr:route>/efr-002B/</fr:route>
                        <fr:title text="Weak limits">Weak limits</fr:title>
                        <fr:taxon>Definition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Let <fr:tex display="inline"><![CDATA[X: I \to  \mathcal {C}]]></fr:tex> be a diagram. A cone <fr:tex display="inline"><![CDATA[A \xrightarrow {f_i} X_i]]></fr:tex> is said to be a <html:em>weak limit</html:em> if, for any other cone <fr:tex display="inline"><![CDATA[B]]></fr:tex>, there exists a map <fr:tex display="inline"><![CDATA[B \to  A]]></fr:tex> (but this map is not necessarily unique).
</html:p>
                        <html:p>
  Observe that, if an actual limit <fr:tex display="inline"><![CDATA[L]]></fr:tex> exists, a cone is a weak limit if and only if the induced map <fr:tex display="inline"><![CDATA[A \to  L]]></fr:tex> admits a section. It follows that any functor which preserves the limit of some diagram also preserves the weak limits (in the sense that they are carried to another weak limit).
</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>1</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-002C/</fr:uri>
                        <fr:display-uri>efr-002C</fr:display-uri>
                        <fr:route>/efr-002C/</fr:route>
                        <fr:taxon>Proposition</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter><html:p>
  Let <fr:tex display="inline"><![CDATA[T: \mathsf {Set} \to  \mathsf {Set}]]></fr:tex> be a functor which preserves weak pullbacks.
  Then the assignment <fr:tex display="inline"><![CDATA[\bar {T}(R: A \nrightarrow  B) = im(T(R)) \subseteq  T(A) \times  T(B)]]></fr:tex> defines a functor <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Rel} \to  \mathsf {\mathbb  Rel}]]></fr:tex> (which just acts as <fr:tex display="inline"><![CDATA[T]]></fr:tex> on the objects).
</html:p>
  <fr:tree show-metadata="false"><fr:frontmatter><fr:authors><fr:author><fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="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>1</fr:day></fr:date><fr:taxon>Proof</fr:taxon></fr:frontmatter><fr:mainmatter>
  <html:p>
    Recall that there is a functor <fr:tex display="inline"><![CDATA[\mathsf {\mathbb  Span}(\mathsf {Set}) \to  \mathsf {\mathbb  Rel}]]></fr:tex>, which carries a span <fr:tex display="inline"><![CDATA[A \leftarrow  R \to  B]]></fr:tex> to its image inside <fr:tex display="inline"><![CDATA[A \times  B]]></fr:tex>. Observe that two spans are identified under this mapping precisely if there exist span maps (not necessarily inverses) between them in both directions.
  </html:p>
  <html:p>
    It follows that, given two composable relations <fr:tex display="inline"><![CDATA[R: A \nrightarrow  B, R': B \nrightarrow  C]]></fr:tex>, the composite of <fr:tex display="inline"><![CDATA[\bar {T}(R)]]></fr:tex> and <fr:tex display="inline"><![CDATA[\bar {T}(R')]]></fr:tex> can be computed by taking the pullback <fr:tex display="inline"><![CDATA[T(R) \times _{T(B)} T(R')]]></fr:tex>, then taking its image inside <fr:tex display="inline"><![CDATA[T(A) \times  T(C)]]></fr:tex>. But since <fr:tex display="inline"><![CDATA[T]]></fr:tex> preserves weak limits, the map from <fr:tex display="inline"><![CDATA[T(R \times _B R')]]></fr:tex> to this pullback admits a section, and hence they go to the same relation. This proves that <fr:tex display="inline"><![CDATA[\bar {T}]]></fr:tex> preserves composition (the claim about identities is straightforward). 
  </html:p>
</fr:mainmatter></fr:tree>
</fr:mainmatter>
                    </fr:tree>
                    <html:p>
  The basic idea is the following: suppose we have a system of formula <fr:tex display="inline"><![CDATA[L]]></fr:tex> we know how to interpret in coalgebras. This interpretation is a relation <fr:tex display="inline"><![CDATA[\vDash  : L \nrightarrow  X]]></fr:tex>, given some coalgebra <fr:tex display="inline"><![CDATA[\xi : X \to  TX]]></fr:tex>. Now, given an element <fr:tex display="inline"><![CDATA[\alpha  \in  TL]]></fr:tex>, we can define its interpretation in <fr:tex display="inline"><![CDATA[TX]]></fr:tex> simply using the lifting <fr:tex display="inline"><![CDATA[\bar {T}]]></fr:tex>. And finally we can take the inverse image of the given subset of <fr:tex display="inline"><![CDATA[TX]]></fr:tex> under <fr:tex display="inline"><![CDATA[\xi ]]></fr:tex> to give a subset of <fr:tex display="inline"><![CDATA[X]]></fr:tex></html:p>
                    <html:p>
  For example, let <fr:tex display="inline"><![CDATA[T(X) = A \times  X,]]></fr:tex> so that a coalgebra is a simple labeled transition system. Then we get a modal operator <fr:tex display="inline"><![CDATA[\nabla _a]]></fr:tex> for each <fr:tex display="inline"><![CDATA[a]]></fr:tex>. The meaning of <fr:tex display="inline"><![CDATA[\nabla _a(\phi )(x)]]></fr:tex> is that <fr:tex display="inline"><![CDATA[\xi (x) = (a,x'),]]></fr:tex> and <fr:tex display="inline"><![CDATA[\phi (x')]]></fr:tex> holds.
</html:p>
                    <html:p>
  If we let our basic language be Boolean logic, and our functor <fr:tex display="inline"><![CDATA[T]]></fr:tex> is not too bad (for example, if it's finitary), we get a result called the <html:em>Hennessy-Milner property</html:em>: two states satisfy the same formulae of the logic precisely if they are bisimilar.
</html:p>
                    <html:p>
  (It is not quite the same as saying formulas up to semantic equivalence are the same as bisimilarity classes---in the above example, we only get to ask about some finite prefix of the stream of outputs produced by <fr:tex display="inline"><![CDATA[x]]></fr:tex>. But of course two streams are equal if all the prefixes agree).
</html:p>
                    <html:p>
  Let <fr:tex display="inline"><![CDATA[\mathsf {Stone}]]></fr:tex> denote the category of <html:em>stone spaces</html:em>, that is topological spaces which are compact, Hausdorff, and totally disconnected (meaning every connected component is a singleton). Then we have the following theorem, due to Stone
</html:p>
                    <fr:tree show-metadata="false">
                      <fr:frontmatter>
                        <fr:authors>
                          <fr:author>
                            <fr:link href="/eigil-rischel/" title="Eigil Fjeldgren Rischel" uri="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>1</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-002D/</fr:uri>
                        <fr:display-uri>efr-002D</fr:display-uri>
                        <fr:route>/efr-002D/</fr:route>
                        <fr:title text="Stone duality">Stone duality</fr:title>
                        <fr:taxon>Theorem</fr:taxon>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  If <fr:tex display="inline"><![CDATA[X]]></fr:tex> is a Stone space, the set of clopen subsets is a Boolean algebra.
  Moreover, the functor <fr:tex display="inline"><![CDATA[\mathsf {Stone}^\mathrm {op} \to  \mathsf {Bool}]]></fr:tex> which carries a Stone space to its set of clopen subsets is an equivalence of categories.
</html:p>
                      </fr:mainmatter>
                    </fr:tree>
                    <html:p>
  Now suppose our behaviour is given by an endofunctor <fr:tex display="inline"><![CDATA[T: \mathsf {Stone} \to  \mathsf {Stone}]]></fr:tex>.
  Then we immediately get a corresponding functor <fr:tex display="inline"><![CDATA[T^\mathrm {op}: \mathsf {Bool} \to  \mathsf {Bool},]]></fr:tex> and the category of <fr:tex display="inline"><![CDATA[T]]></fr:tex>-coalgebras is dual to the category ot <fr:tex display="inline"><![CDATA[T^\mathrm {op}]]></fr:tex>-algebras.
</html:p>
                    <html:p>
  Hence, giving a space the structure of a <fr:tex display="inline"><![CDATA[T]]></fr:tex>-coalgebra <fr:tex display="inline"><![CDATA[\xi : X \to  TX]]></fr:tex> is <html:em>equivalent</html:em> to giving its set of clopen subsets a <fr:tex display="inline"><![CDATA[T^\mathrm {op}]]></fr:tex>-algebra structure <fr:tex display="inline"><![CDATA[T^\mathrm {op} B(X) \to  B(X)]]></fr:tex>. This algebra structure can be interpreted as a (system of) modal operators---for example, if <fr:tex display="inline"><![CDATA[T(X) = A \times  X,]]></fr:tex> giving such a structure amounts to choosing maps <fr:tex display="inline"><![CDATA[B(A) \to  B(X)]]></fr:tex> and <fr:tex display="inline"><![CDATA[B(X) \to  B(X)]]></fr:tex>, corresponding to the operations "will <fr:tex display="inline"><![CDATA[x]]></fr:tex> produce an output <fr:tex display="inline"><![CDATA[a]]></fr:tex> that satisfies statement <fr:tex display="inline"><![CDATA[\phi (a)]]></fr:tex>?" and "will the next state after <fr:tex display="inline"><![CDATA[x]]></fr:tex> satisfy <fr:tex display="inline"><![CDATA[\psi ]]></fr:tex>?"
</html:p>
                    <html:p>
  We would like to move this framework to the setting of categorical systems theory. Of course, we are hampered by two immediate problems: our systems are not, in general, coalgebras of functors, nor are they in general 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>2024</fr:year>
                          <fr:month>7</fr:month>
                          <fr:day>15</fr:day>
                        </fr:date>
                        <fr:uri>https://erischel.com/efr-0030/</fr:uri>
                        <fr:display-uri>efr-0030</fr:display-uri>
                        <fr:route>/efr-0030/</fr:route>
                        <fr:title text="The opposite of \mathsf {FinStoch}">The opposite of <fr:tex display="inline"><![CDATA[\mathsf {FinStoch}]]></fr:tex></fr:title>
                      </fr:frontmatter>
                      <fr:mainmatter>
                        <html:p>
  Recall that (perhaps by definition, perhaps as a trivial theorem, depending on our choice of definition), there is a faithful functor <fr:tex display="inline"><![CDATA[\mathsf {FinStoch} \to  \mathsf {Vect}]]></fr:tex> carrying a set <fr:tex display="inline"><![CDATA[X]]></fr:tex> to the vector space <fr:tex display="inline"><![CDATA[\mathbb {R}\langle  X \rangle ]]></fr:tex> freely generated by <fr:tex display="inline"><![CDATA[X]]></fr:tex>, and a stochastic map <fr:tex display="inline"><![CDATA[f: X \to  Y]]></fr:tex> to the map which takes the basis vector <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex> to the linear combination <fr:tex display="inline"><![CDATA[\sum _{y \in  Y} y f(y|x)]]></fr:tex>. The essential image of this functor is, of course, the finite-dimensional vector spaces. The morphisms in the image are the <html:em>stochastic matrices</html:em>, which can be characterized as those that are <html:em>positive</html:em> (they carry vectors with positive coordinates to other such vectors) and preserve the constant <fr:tex display="inline"><![CDATA[1]]></fr:tex> vector (note that neither of these properties are invariant under isomorphism of finite-dimensional vector space).
</html:p>
                        <html:p>
  One way to think about this is that it proves <fr:tex display="inline"><![CDATA[\mathsf {FinStoch}]]></fr:tex> is equivalent to the category of <html:em>finite-dimensional, ordered, pointed</html:em> vector spaces, where we assume that the chosen point must be positive in the order. (To see the inclusion is essentially surjective, note that given a vector space pointed by <fr:tex display="inline"><![CDATA[(a_1, \dots  a_n)]]></fr:tex>, all those coordinates positive, it receives an isomorphism from the same spaces pointed by <fr:tex display="inline"><![CDATA[(1, \dots  1)]]></fr:tex> given by the diagonal matrix with entries <fr:tex display="inline"><![CDATA[a_1, \dots  a_n]]></fr:tex>).
</html:p>
                        <html:p>
  Now, let <fr:tex display="inline"><![CDATA[\mathsf {fdVect}^\leq ]]></fr:tex> denote the category of finite-dimensional ordered vector spaces. Then equipping a space <fr:tex display="inline"><![CDATA[V]]></fr:tex> with a positive point is exactly choosing an order-preserving linear map <fr:tex display="inline"><![CDATA[\mathbb {R} \to  V]]></fr:tex>, so we have proven <fr:tex display="inline"><![CDATA[\mathsf {FinStoch} \simeq  \mathsf {fdVect}^\leq _{ \mathbb {R} /}]]></fr:tex>. Now we can compute
  <fr:tex display="block"><![CDATA[\mathsf {FinStoch}^\mathrm {op} \simeq  (\mathsf {fdVect}^\leq _{ \ RR/})^\mathrm {op} \cong  (\mathsf {fdVect}^\leq )^\mathrm {op}_{ / \mathbb {R}} \cong  \mathsf {fdVect}^\leq _{ / \mathbb {R}},]]></fr:tex>
  where the last isomorphism is via transposition (note that transposing a positive matrix yields a positive matrix).
</html:p>
                        <html:p>
  This isomorphism merely describes the fact that stochastic maps <fr:tex display="inline"><![CDATA[\phi : X \to  Y]]></fr:tex> can also be described as linear maps <fr:tex display="inline"><![CDATA[f: \mathbb {R}\langle  Y \rangle  \to  \mathbb {R}\langle  X \rangle ]]></fr:tex> so that <fr:tex display="inline"><![CDATA[\sum _x f((a_y))_x = \sum _y a_y]]></fr:tex>. This map interprets a vector as a function on <fr:tex display="inline"><![CDATA[Y]]></fr:tex>, and carries it to the function on <fr:tex display="inline"><![CDATA[X]]></fr:tex> which finds the expected value if <fr:tex display="inline"><![CDATA[y \in  Y]]></fr:tex> is distributed as <fr:tex display="inline"><![CDATA[\phi (x)]]></fr:tex>. The normalization condition merely says a constant function always has that constant as its expectation.
</html:p>
                        <html:p>
  The self-duality of <fr:tex display="inline"><![CDATA[\mathsf {fdVect}]]></fr:tex> does not generalize to infinite-dimensional vector spaces, so once we move beyond finite state spaces, this story will get somewhat more complicated. However, the basic idea that, to carry the tools of coalgebraic modal logic into the stochastic case, the sort of "predicate" we should consider is actually a <html:em>function</html:em> on the state space, will remain the central idea.
</html:p>
                        <html:p>
  (Indeed, to consider the right notion of stochastic function between, for example, smooth manifolds, we will in any case want to use the tools of functional analysis to think of these in terms of transformation on integration operators, which is essentially this idea).
</html:p>
                        <html:p>
  Another way to justify this idea is to note that <fr:tex display="inline"><![CDATA[\Omega  = \{\bot ,\top \}]]></fr:tex> is the subobject classifier for <fr:tex display="inline"><![CDATA[\mathsf {Fin} \subseteq  \mathsf {FinStoch}]]></fr:tex>. Hence if we want our notion of predicate to transform under stochastic maps, and include the logical predicates in the usual sense, we have to at least consider the stochastic maps <fr:tex display="inline"><![CDATA[X \to  \Omega ]]></fr:tex>, which of course amount to functions <fr:tex display="inline"><![CDATA[X \to  [0,1]]]></fr:tex> in this case. But a positive linear map on functions is determined by what it does to functions like this, so whether we work only with these or all functions <fr:tex display="inline"><![CDATA[X \to  \mathbb {R}]]></fr:tex> is more or less a matter of taste.
</html:p>
                        <html:p>
  Instead of having a logic consisting of the operations of Boolean algebra, augmented with extra operations described by <fr:tex display="inline"><![CDATA[T^\mathrm {op} B \to  B]]></fr:tex>, we have the operations of a vector space, augmented by some extra modal operations. The Markov structure of <fr:tex display="inline"><![CDATA[\mathsf {FinStoch},]]></fr:tex> or whichever category we work in, will give the vector space of functions an <fr:tex display="inline"><![CDATA[\mathbb {R}]]></fr:tex>-algebra structure, but we should note that some equations fail to hold in general (dual to the fact that not all morphisms in the Markov category are homomorphisms for the comonoid structure). The Hennessy-Milner property is essentially the same in this situation, saying that our set of modally-expressible functions should separate points in the terminal coalgebra. Since we will have multiplication and linear combinations of functions, this entails under some mild topological conditions that it's <html:em>dense</html:em> in the set of functions on the terminal coalgebra.
</html:p>
                        <html:p>
  It is worth examining this analogy a bit further, in the simpler setup of coalgebraic modal logic. If <fr:tex display="inline"><![CDATA[X]]></fr:tex> is a space in some general sense, let us schematically write <fr:tex display="inline"><![CDATA[C(X)]]></fr:tex> for the space of functions on <fr:tex display="inline"><![CDATA[X]]></fr:tex>, so that as above stochastic maps <fr:tex display="inline"><![CDATA[X \to  Y]]></fr:tex> are identified with certain linear maps <fr:tex display="inline"><![CDATA[C(Y) \to  C(X)]]></fr:tex>. Again, the Markov structure on the category of stochastic maps (whatever it is) amounts to the fact that <fr:tex display="inline"><![CDATA[C(X)]]></fr:tex> carries the structure of an <fr:tex display="inline"><![CDATA[\mathbb {R}]]></fr:tex>-algebra, and deterministic maps are those which are not algebra homomorphisms.
</html:p>
                        <html:p>
  Let now <fr:tex display="inline"><![CDATA[\xi : X \to  A \otimes  X]]></fr:tex> be a simple stochastic dynamical system which outputs a value of type <fr:tex display="inline"><![CDATA[A]]></fr:tex> at each step. The dual of this is <fr:tex display="inline"><![CDATA[C(A) \otimes  C(X) \to  C(X),]]></fr:tex> where the tensor here is now the tensor product of vector spaces.
</html:p>
                        <html:p>
  Among <html:em>algebras</html:em>, the tensor product is the coproduct, so we may restrict the above map to form two modal operators, <fr:tex display="inline"><![CDATA[C(A) \to  C(X)]]></fr:tex> and <fr:tex display="inline"><![CDATA[C(X) \to  C(X)]]></fr:tex>---the latter being simply the transition operator taking a function <fr:tex display="inline"><![CDATA[\phi (x)]]></fr:tex> to the expected value of the next step, the former computing the expected value of the output given <fr:tex display="inline"><![CDATA[x]]></fr:tex>. But since the transition may be nondeterministic, these two restrictions do not determine it. From a logical point of view, the problem is that we can't express statements about the correlation between the output and the next step.
</html:p>
                        <html:p>
  As a simple counterexample, consider two system where <fr:tex display="inline"><![CDATA[X = A = \{0,1\}]]></fr:tex>. In the first, the output and the next state are independent, and both equal the current state with probability <fr:tex display="inline"><![CDATA[1-\epsilon ]]></fr:tex>. In the other, the output and next state are always equal, and again are equal to the current state with probability <fr:tex display="inline"><![CDATA[1-\epsilon ]]></fr:tex></html:p>
                        <html:p>
  These systems have the same marginals <fr:tex display="inline"><![CDATA[X \to  A]]></fr:tex> and <fr:tex display="inline"><![CDATA[X \to  X]]></fr:tex>, and hence the two modal operators above have the same behaviour, and hence every modally expressible function is the same. But in the former, the probability of seeing ab output sequence beginning <fr:tex display="inline"><![CDATA[1,0,\dots ]]></fr:tex> when starting in state <fr:tex display="inline"><![CDATA[0]]></fr:tex> is proportional to <fr:tex display="inline"><![CDATA[\epsilon ]]></fr:tex>, whereas in the latter it is proportional to <fr:tex display="inline"><![CDATA[\epsilon ^2]]></fr:tex> (since you have to flip twice), so these systems have very different behaviour.
</html:p>
                        <html:p>
  Using <fr:link href="/efr-000X/" title="proposition" uri="https://erischel.com/efr-000X/" display-uri="efr-000X" type="local">§ <fr:contextual-number uri="https://erischel.com/efr-000X/" display-uri="efr-000X" /></fr:link>, we can deduce a version of Hennessy-Milner for stochastic transition systems (with no input and outputs in finite set <fr:tex display="inline"><![CDATA[A]]></fr:tex>). Namely, fix a system <fr:tex display="inline"><![CDATA[\xi : X \to  A \otimes  X]]></fr:tex>, and let <fr:tex display="inline"><![CDATA[\nabla (u,v),]]></fr:tex> with <fr:tex display="inline"><![CDATA[u: A \to  \mathbb {R}]]></fr:tex> and <fr:tex display="inline"><![CDATA[v: X \to  \mathbb {R}]]></fr:tex> denote the function which carries <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex> to the expected value of <fr:tex display="inline"><![CDATA[u(a)v(x')]]></fr:tex> when <fr:tex display="inline"><![CDATA[(a,x')]]></fr:tex> are distributed according to the system. Then <fr:tex display="inline"><![CDATA[\nabla ]]></fr:tex> is precisely the bilinear function <fr:tex display="inline"><![CDATA[C(A) \otimes  C(X) \to  C(X)]]></fr:tex> dual to <fr:tex display="inline"><![CDATA[\xi ]]></fr:tex>. Since <fr:tex display="inline"><![CDATA[A^\omega ]]></fr:tex> is the terminal coalgebra, and the inverse limit of <fr:tex display="inline"><![CDATA[A \leftarrow  A^2 \leftarrow  \dots ]]></fr:tex>, we can infer that <fr:tex display="inline"><![CDATA[C(A^\omega )]]></fr:tex> is the colimit of the sequence <fr:tex display="inline"><![CDATA[C(A) \to  C(A) \otimes  C(A) \to  \dots ]]></fr:tex> in some category of <fr:tex display="inline"><![CDATA[\mathbb {R}]]></fr:tex>-algebras (we must think a little about topology to make this precise.)
</html:p>
                        <html:p>
  But this should imply that the union  of the images of <fr:tex display="inline"><![CDATA[C(A)^{\otimes  n}]]></fr:tex> inside this algebra is dense. So certainly they separate points. But this image consists exactly of formulas given by functions on <fr:tex display="inline"><![CDATA[A]]></fr:tex>, applications of <fr:tex display="inline"><![CDATA[\nabla ,]]></fr:tex> and sums and products. So these formulae are sufficiently expressive to separate points of the terminal coalgebra (which are, of course, exactly bisimulation classes).
</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>7</fr:month>
                      <fr:day>2</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-002E/</fr:uri>
                    <fr:display-uri>efr-002E</fr:display-uri>
                    <fr:route>/efr-002E/</fr:route>
                    <fr:title text="Discrete one-step modal operator">Discrete one-step modal operator</fr:title>
                    <fr:taxon>Definition</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Consider the theory of <fr:link href="/efr-002F/" title="The theory of discrete dynamical systems" uri="https://erischel.com/efr-002F/" display-uri="efr-002F" type="local">discrete dynamical systems</fr:link>, and let <fr:tex display="inline"><![CDATA[\xi : TS \leftrightarrows  A = {\bar {A} \choose  A}]]></fr:tex> be a system. Let <fr:tex display="inline"><![CDATA[\phi : S \to  \{\bot ,\top \}]]></fr:tex> be a predicate on <fr:tex display="inline"><![CDATA[S]]></fr:tex>, and let <fr:tex display="inline"><![CDATA[{\bar {U} \choose  U} \subseteq  {\bar {A} \choose  A}]]></fr:tex> be a subobject of <fr:tex display="inline"><![CDATA[A]]></fr:tex> (that is, <fr:tex display="inline"><![CDATA[\bar {U} \subset  \bar {A}]]></fr:tex> and <fr:tex display="inline"><![CDATA[U \subset  A,]]></fr:tex> and if <fr:tex display="inline"><![CDATA[(a,a') \in  \bar {U}]]></fr:tex> then <fr:tex display="inline"><![CDATA[a \in  A]]></fr:tex>).
</html:p>
                    <html:p>
  Then write <fr:tex display="inline"><![CDATA[\nabla _{U}(\phi )]]></fr:tex> for the predicate on <fr:tex display="inline"><![CDATA[S]]></fr:tex> which is true if and only if the following hold: <fr:tex display="inline"><![CDATA[\xi (s) \in  U,]]></fr:tex> and if <fr:tex display="inline"><![CDATA[a' \in  \bar {U} \times _A S,]]></fr:tex> then <fr:tex display="inline"><![CDATA[\xi ^\#(s,a')]]></fr:tex> satisfies <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex>. In other words---the output is in <fr:tex display="inline"><![CDATA[U]]></fr:tex>, and if the input is further in <fr:tex display="inline"><![CDATA[\bar {U},]]></fr:tex> then the next step will satisfy <fr:tex display="inline"><![CDATA[\phi ]]></fr:tex>.
</html:p>
                    <html:p>
  Note that by taking <fr:tex display="inline"><![CDATA[U = A, \bar {U} = \bar {A}]]></fr:tex> this encodes a simple next-step modality.
</html:p>
                    <html:p>
  Observe also that, if <fr:tex display="inline"><![CDATA[A,\bar {A}]]></fr:tex> are both finite, we can encode all the classical covering modality operators as (finite) conjunctions of <fr:tex display="inline"><![CDATA[\nabla _{\{(a,a_i)\}}\phi _i,]]></fr:tex> and hence the logic built up of these modal operators and Boolean operations will enjoy the Hennessy-Milner property.
</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>4</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-002P/</fr:uri>
                    <fr:display-uri>efr-002P</fr:display-uri>
                    <fr:route>/efr-002P/</fr:route>
                    <fr:title text="Logic for control">Logic for control</fr:title>
                    <fr:taxon>Remark</fr:taxon>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Let an MDP (or partially observable MDP) be given, and consider a statement like "given policy <fr:tex display="inline"><![CDATA[\pi ]]></fr:tex>, the expected reward is <fr:tex display="inline"><![CDATA[\geq  r]]></fr:tex>", or "the probability that the total reward is less than <fr:tex display="inline"><![CDATA[r]]></fr:tex> is <fr:tex display="inline"><![CDATA[\leq  \epsilon ]]></fr:tex>", and so on. In one sense, these are statements about policies---but, fixing a policy, they become statements about the states of the MDP (meaning: if the problem is initialized in state <html:em>s_0</html:em>, and we use policy <fr:tex display="inline"><![CDATA[\pi ]]></fr:tex>, ...). In particular, they are statements about the <html:em>behaviour</html:em> of the state of the MDP, and so should be expressible using the modal logic.
</html:p>
                    <html:p>
  In particular, given a system <fr:tex display="inline"><![CDATA[TS \to  A,]]></fr:tex> if we have a good way of controlling the composite system <fr:tex display="inline"><![CDATA[TS \to  A \to  B]]></fr:tex>---that is, a modal formula providing that certain behavior on the interface will lead to a high reward---then we can translate this into a statement that certain behavior on the interface <fr:tex display="inline"><![CDATA[A]]></fr:tex> (namely, the same behaviour translated back) will lead to a high reward in the original system. Moreover, we're not restricted to statements about expected reward, but can encode all sorts of statements about the behavior, like a bound on the probability that some region will be crossed.
</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>23</fr:day>
                    </fr:date>
                    <fr:uri>https://erischel.com/efr-003T/</fr:uri>
                    <fr:display-uri>efr-003T</fr:display-uri>
                    <fr:route>/efr-003T/</fr:route>
                    <fr:title text="\Delta (- \times  A)-coalgebras vs - \otimes  A-coalgebras"><fr:tex display="inline"><![CDATA[\Delta (- \times  A)]]></fr:tex>-coalgebras vs <fr:tex display="inline"><![CDATA[- \otimes  A]]></fr:tex>-coalgebras</fr:title>
                  </fr:frontmatter>
                  <fr:mainmatter>
                    <html:p>
  Both the endofunctor <fr:tex display="inline"><![CDATA[\Delta (- \times  A): \mathsf {Meas} \to  \mathsf {Meas}]]></fr:tex>, and the endofunctor <fr:tex display="inline"><![CDATA[- \otimes  A: \mathsf {Stoch} \to  \mathsf {Stoch}]]></fr:tex> express the idea of a stochastic transition system which produces an output in the measurable space <fr:tex display="inline"><![CDATA[A]]></fr:tex> at each step. (We could also have considered the similar endofunctor on <fr:tex display="inline"><![CDATA[\mathsf {Set}]]></fr:tex>, using a discrete probability monad, and its Kleisli category). In fact, in one sense, these are equivalent---since <fr:tex display="inline"><![CDATA[\mathsf {Stoch}]]></fr:tex> is the Kleisli category of <fr:tex display="inline"><![CDATA[\Delta ,]]></fr:tex> and <fr:tex display="inline"><![CDATA[\otimes ]]></fr:tex> on objects is simply defined as the product measurable space, the sets <fr:tex display="inline"><![CDATA[\mathsf {Stoch}(X,X \otimes  A)]]></fr:tex> and <fr:tex display="inline"><![CDATA[\mathsf {Meas}(X, \Delta (X \times  A))]]></fr:tex> are by definition equal to each other.
</html:p>
                    <html:p>
  The difference is in the category of coalgebras. A morphism between <fr:tex display="inline"><![CDATA[\Delta (- \times  A)]]></fr:tex>-coalgebras must be <html:em>deterministic</html:em>---it must assign to each <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex> a <fr:tex display="inline"><![CDATA[y \in  Y]]></fr:tex> so that the obvious diagram commutes.
  In contrast, a morphism on <fr:tex display="inline"><![CDATA[- \otimes  A]]></fr:tex>-algebras is a morphism in <fr:tex display="inline"><![CDATA[\mathsf {Stoch}]]></fr:tex>---it must assign to each <fr:tex display="inline"><![CDATA[x \in  X]]></fr:tex> a distribution on <fr:tex display="inline"><![CDATA[Y]]></fr:tex>, so that the two implied distributions on <fr:tex display="inline"><![CDATA[A \times  Y]]></fr:tex> agree.
</html:p>
                    <html:p>
  We can see the difference most clearly if we consider which properties are bisimulation invariant (i.e are properties of "behaviours"). We have seen that the terminal <fr:tex display="inline"><![CDATA[- \otimes  A]]></fr:tex>-coalgebra is <fr:tex display="inline"><![CDATA[A^\omega ]]></fr:tex>, so a behaviour in this sense is simply a distribution on streams---the questions we can ask are what the probability of a certain sequence of outputs is.
</html:p>
                    <html:p>
  In contrast, of an element in a <fr:tex display="inline"><![CDATA[\Delta (- \times  A)]]></fr:tex>-coalgebra, we can ask a question like this: "What is the probability that, after 10 steps, we will be in a state which produces output <fr:tex display="inline"><![CDATA[a]]></fr:tex> with probability at least <fr:tex display="inline"><![CDATA[p]]></fr:tex>"? In a <fr:tex display="inline"><![CDATA[- \otimes  A]]></fr:tex>-coalgebra, we can ask "what is the probability that the output on the 11th step is <fr:tex display="inline"><![CDATA[a]]></fr:tex>", or "what is the probability that, after 10 steps, the conditional probability of the next output being <fr:tex display="inline"><![CDATA[a]]></fr:tex>, conditional on the first 10 outputs, is at least <fr:tex display="inline"><![CDATA[p]]></fr:tex>?"---but we cannot access the probabilities of an output given the future state directly, only the correlations that exist between the outputs.
</html:p>
                  </fr:mainmatter>
                </fr:tree>
              </fr:mainmatter>
            </fr:tree>
            <fr:tree show-metadata="false">
              <fr:frontmatter>
                <fr:authors />
                <fr:uri>https://erischel.com/todo-tree/</fr:uri>
                <fr:display-uri>todo-tree</fr:display-uri>
                <fr:route>/todo-tree/</fr:route>
                <fr:title text="To do list">To do list</fr:title>
              </fr:frontmatter>
              <fr:mainmatter />
            </fr:tree>
          </fr:mainmatter>
        </fr:tree>
      </fr:mainmatter>
    </fr:tree>
    <fr:tree show-metadata="false" hidden-when-empty="true">
      <fr:frontmatter>
        <fr:authors />
        <fr:title text="Backlinks">Backlinks</fr:title>
      </fr:frontmatter>
      <fr:mainmatter />
    </fr:tree>
    <fr:tree show-metadata="false" hidden-when-empty="true">
      <fr:frontmatter>
        <fr:authors />
        <fr:title text="Related">Related</fr:title>
      </fr:frontmatter>
      <fr:mainmatter />
    </fr:tree>
    <fr:tree show-metadata="false" hidden-when-empty="true">
      <fr:frontmatter>
        <fr:authors />
        <fr:title text="Contributions">Contributions</fr:title>
      </fr:frontmatter>
      <fr:mainmatter />
    </fr:tree>
  </fr:backmatter>
</fr:tree>
