mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
270 lines
186 KiB
HTML
270 lines
186 KiB
HTML
|
<!DOCTYPE html>
|
|||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
|
|||
|
<head>
|
|||
|
<meta charset="utf-8" />
|
|||
|
<meta name="generator" content="pandoc" />
|
|||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
|||
|
<title>ElgotAlgebras</title>
|
|||
|
<style>
|
|||
|
code{white-space: pre-wrap;}
|
|||
|
span.smallcaps{font-variant: small-caps;}
|
|||
|
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
|||
|
div.column{flex: auto; overflow-x: auto;}
|
|||
|
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
|||
|
ul.task-list{list-style: none;}
|
|||
|
ul.task-list li input[type="checkbox"] {
|
|||
|
width: 0.8em;
|
|||
|
margin: 0 0.8em 0.2em -1.6em;
|
|||
|
vertical-align: middle;
|
|||
|
}
|
|||
|
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
|
|||
|
</style>
|
|||
|
<link rel="stylesheet" href="Agda.css" />
|
|||
|
<!--[if lt IE 9]>
|
|||
|
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
|
|||
|
<![endif]-->
|
|||
|
</head>
|
|||
|
<body>
|
|||
|
<!--
|
|||
|
<pre class="Agda"><a id="14" class="Symbol">{-#</a> <a id="18" class="Keyword">OPTIONS</a> <a id="26" class="Pragma">--allow-unsolved-metas</a> <a id="49" class="Symbol">#-}</a>
|
|||
|
<a id="53" class="Keyword">open</a> <a id="58" class="Keyword">import</a> <a id="65" href="Level.html" class="Module">Level</a>
|
|||
|
<a id="71" class="Keyword">open</a> <a id="76" class="Keyword">import</a> <a id="83" href="Categories.Category.Cocartesian.html" class="Module">Categories.Category.Cocartesian</a> <a id="115" class="Keyword">using</a> <a id="121" class="Symbol">(</a><a id="122" href="Categories.Category.Cocartesian.html#3385" class="Record">Cocartesian</a><a id="133" class="Symbol">)</a>
|
|||
|
<a id="135" class="Keyword">open</a> <a id="140" class="Keyword">import</a> <a id="147" href="Categories.Category.Cartesian.html" class="Module">Categories.Category.Cartesian</a> <a id="177" class="Keyword">using</a> <a id="183" class="Symbol">(</a><a id="184" href="Categories.Category.Cartesian.html#727" class="Record">Cartesian</a><a id="193" class="Symbol">)</a>
|
|||
|
<a id="195" class="Keyword">open</a> <a id="200" class="Keyword">import</a> <a id="207" href="Categories.Category.BinaryProducts.html" class="Module">Categories.Category.BinaryProducts</a> <a id="242" class="Keyword">using</a> <a id="248" class="Symbol">(</a><a id="249" href="Categories.Category.BinaryProducts.html#812" class="Record">BinaryProducts</a><a id="263" class="Symbol">)</a>
|
|||
|
<a id="265" class="Keyword">open</a> <a id="270" class="Keyword">import</a> <a id="277" href="Categories.Functor.html" class="Module">Categories.Functor</a> <a id="296" class="Keyword">using</a> <a id="302" class="Symbol">(</a><a id="303" href="Categories.Functor.Core.html#248" class="Record">Functor</a><a id="310" class="Symbol">)</a> <a id="312" class="Keyword">renaming</a> <a id="321" class="Symbol">(</a><a id="322" href="Categories.Functor.html#349" class="Function">id</a> <a id="325" class="Symbol">to</a> <a id="328" class="Function">idF</a><a id="331" class="Symbol">)</a>
|
|||
|
<a id="333" class="Keyword">open</a> <a id="338" class="Keyword">import</a> <a id="345" href="Categories.Object.Terminal.html" class="Module">Categories.Object.Terminal</a> <a id="372" class="Keyword">using</a> <a id="378" class="Symbol">(</a><a id="379" href="Categories.Object.Terminal.html#860" class="Record">Terminal</a><a id="387" class="Symbol">)</a>
|
|||
|
<a id="389" class="Keyword">open</a> <a id="394" class="Keyword">import</a> <a id="401" href="Categories.Object.Product.html" class="Module">Categories.Object.Product</a> <a id="427" class="Keyword">using</a> <a id="433" class="Symbol">(</a><a id="434" href="Categories.Object.Product.Core.html#435" class="Record">Product</a><a id="441" class="Symbol">)</a>
|
|||
|
<a id="443" class="Keyword">open</a> <a id="448" class="Keyword">import</a> <a id="455" href="Categories.Object.Coproduct.html" class="Module">Categories.Object.Coproduct</a> <a id="483" class="Keyword">using</a> <a id="489" class="Symbol">(</a><a id="490" href="Categories.Object.Coproduct.html#398" class="Record">Coproduct</a><a id="499" class="Symbol">)</a>
|
|||
|
<a id="501" class="Keyword">open</a> <a id="506" class="Keyword">import</a> <a id="513" href="Categories.Object.Exponential.html" class="Module">Categories.Object.Exponential</a> <a id="543" class="Keyword">using</a> <a id="549" class="Symbol">(</a><a id="550" href="Categories.Object.Exponential.html#583" class="Record">Exponential</a><a id="561" class="Symbol">)</a>
|
|||
|
<a id="563" class="Keyword">open</a> <a id="568" class="Keyword">import</a> <a id="575" href="Categories.Category.html" class="Module">Categories.Category</a>
|
|||
|
<a id="595" class="Keyword">open</a> <a id="600" class="Keyword">import</a> <a id="607" href="ElgotAlgebra.html" class="Module">ElgotAlgebra</a>
|
|||
|
<a id="620" class="Keyword">open</a> <a id="625" class="Keyword">import</a> <a id="632" href="Categories.Category.Distributive.html" class="Module">Categories.Category.Distributive</a>
|
|||
|
<a id="665" class="Keyword">open</a> <a id="670" class="Keyword">import</a> <a id="677" href="Categories.Category.Extensive.Bundle.html" class="Module">Categories.Category.Extensive.Bundle</a>
|
|||
|
<a id="714" class="Keyword">open</a> <a id="719" class="Keyword">import</a> <a id="726" href="Categories.Category.Extensive.html" class="Module">Categories.Category.Extensive</a>
|
|||
|
<a id="756" class="Keyword">import</a> <a id="763" href="Categories.Morphism.html" class="Module">Categories.Morphism</a> <a id="783" class="Symbol">as</a> <a id="786" class="Module">M</a>
|
|||
|
<a id="788" class="Keyword">import</a> <a id="795" href="Categories.Morphism.Reasoning.html" class="Module">Categories.Morphism.Reasoning</a> <a id="825" class="Symbol">as</a> <a id="828" class="Module">MR</a>
|
|||
|
</pre>-->
|
|||
|
<h2 id="summary">Summary</h2>
|
|||
|
<p>This file introduces the category of <em>unguarded</em> elgot
|
|||
|
algebras</p>
|
|||
|
<ul class="task-list">
|
|||
|
<li><input type="checkbox" disabled="" checked="" /><em>Definition
|
|||
|
7</em> Category of elgot algebras</li>
|
|||
|
<li><input type="checkbox" disabled="" checked="" /><em>Lemma 11</em>
|
|||
|
Products of elgot algebras</li>
|
|||
|
<li><input type="checkbox" disabled="" /><em>Lemma 11</em> Exponentials
|
|||
|
of elgot algebras</li>
|
|||
|
</ul>
|
|||
|
<h2 id="code">Code</h2>
|
|||
|
<pre class="Agda"><a id="1074" class="Keyword">module</a> <a id="1081" href="ElgotAlgebras.html" class="Module">ElgotAlgebras</a> <a id="1095" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="1102" class="Keyword">private</a>
|
|||
|
<a id="1112" class="Keyword">variable</a>
|
|||
|
<a id="1125" href="ElgotAlgebras.html#1125" class="Generalizable">o</a> <a id="1127" href="ElgotAlgebras.html#1127" class="Generalizable">ℓ</a> <a id="1129" href="ElgotAlgebras.html#1129" class="Generalizable">e</a> <a id="1131" class="Symbol">:</a> <a id="1133" href="Agda.Primitive.html#591" class="Postulate">Level</a>
|
|||
|
|
|||
|
<a id="1140" class="Keyword">module</a> <a id="1147" href="ElgotAlgebras.html#1147" class="Module">_</a> <a id="1149" class="Symbol">(</a><a id="1150" href="ElgotAlgebras.html#1150" class="Bound">D</a> <a id="1152" class="Symbol">:</a> <a id="1154" href="Categories.Category.Extensive.Bundle.html#781" class="Record">ExtensiveDistributiveCategory</a> <a id="1184" href="ElgotAlgebras.html#1125" class="Generalizable">o</a> <a id="1186" href="ElgotAlgebras.html#1127" class="Generalizable">ℓ</a> <a id="1188" href="ElgotAlgebras.html#1129" class="Generalizable">e</a><a id="1189" class="Symbol">)</a> <a id="1191" class="Keyword">where</a>
|
|||
|
<a id="1199" class="Keyword">open</a> <a id="1204" href="Categories.Category.Extensive.Bundle.html#781" class="Module">ExtensiveDistributiveCategory</a> <a id="1234" href="ElgotAlgebras.html#1150" class="Bound">D</a> <a id="1236" class="Keyword">renaming</a> <a id="1245" class="Symbol">(</a><a id="1246" href="Categories.Category.Extensive.Bundle.html#859" class="Field">U</a> <a id="1248" class="Symbol">to</a> <a id="1251" class="Field">C</a><a id="1252" class="Symbol">;</a> <a id="1254" href="Categories.Category.Core.html#630" class="Function">id</a> <a id="1257" class="Symbol">to</a> <a id="1260" class="Function">idC</a><a id="1263" class="Symbol">)</a>
|
|||
|
<a id="1267" class="Keyword">open</a> <a id="1272" href="Categories.Category.Cocartesian.html#3385" class="Module">Cocartesian</a> <a id="1284" class="Symbol">(</a><a id="1285" href="Categories.Category.Extensive.html#734" class="Field">Extensive.cocartesian</a> <a id="1307" href="Categories.Category.Extensive.Bundle.html#913" class="Field">extensive</a><a id="1316" class="Symbol">)</a>
|
|||
|
<a id="1320" class="Keyword">open</a> <a id="1325" href="Categories.Category.Cartesian.html#727" class="Module">Cartesian</a> <a id="1335" class="Symbol">(</a><a id="1336" href="Categories.Category.Extensive.Bundle.html#943" class="Field">ExtensiveDistributiveCategory.cartesian</a> <a id="1376" href="ElgotAlgebras.html#1150" class="Bound">D</a><a id="1377" class="Symbol">)</a>
|
|||
|
<a id="1381" class="Keyword">open</a> <a id="1386" href="Categories.Category.BinaryProducts.html#812" class="Module">BinaryProducts</a> <a id="1401" href="Categories.Category.Cartesian.html#801" class="Function">products</a>
|
|||
|
<a id="1412" class="Keyword">open</a> <a id="1417" href="Categories.Morphism.html" class="Module">M</a> <a id="1419" href="ElgotAlgebras.html#1251" class="Field">C</a>
|
|||
|
<a id="1423" class="Keyword">open</a> <a id="1428" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="1431" href="ElgotAlgebras.html#1251" class="Field">C</a>
|
|||
|
<a id="1435" class="Keyword">open</a> <a id="1440" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
|
|||
|
<a id="1455" class="Keyword">open</a> <a id="1460" href="Categories.Category.Core.html#1530" class="Module">Equiv</a>
|
|||
|
</pre>
|
|||
|
<h3 id="definition-7-category-of-elgot-algebras"><em>Definition 7</em>:
|
|||
|
Category of elgot algebras</h3>
|
|||
|
<pre class="Agda">
|
|||
|
<a id="1530" class="Comment">-- iteration preversing morphism between two elgot-algebras</a>
|
|||
|
<a id="1592" class="Keyword">module</a> <a id="1599" href="ElgotAlgebras.html#1599" class="Module">_</a> <a id="1601" class="Symbol">(</a><a id="1602" href="ElgotAlgebras.html#1602" class="Bound">E₁</a> <a id="1605" href="ElgotAlgebras.html#1605" class="Bound">E₂</a> <a id="1608" class="Symbol">:</a> <a id="1610" href="ElgotAlgebra.html#6203" class="Record">Elgot-Algebra</a> <a id="1624" href="ElgotAlgebras.html#1150" class="Bound">D</a><a id="1625" class="Symbol">)</a> <a id="1627" class="Keyword">where</a>
|
|||
|
<a id="1637" class="Keyword">open</a> <a id="1642" href="ElgotAlgebra.html#6203" class="Module">Elgot-Algebra</a> <a id="1656" href="ElgotAlgebras.html#1602" class="Bound">E₁</a> <a id="1659" class="Keyword">renaming</a> <a id="1668" class="Symbol">(</a><a id="1669" href="ElgotAlgebra.html#2186" class="Function Operator">_#</a> <a id="1672" class="Symbol">to</a> <a id="1675" class="Function Operator">_#₁</a><a id="1678" class="Symbol">)</a>
|
|||
|
<a id="1684" class="Keyword">open</a> <a id="1689" href="ElgotAlgebra.html#6203" class="Module">Elgot-Algebra</a> <a id="1703" href="ElgotAlgebras.html#1605" class="Bound">E₂</a> <a id="1706" class="Keyword">renaming</a> <a id="1715" class="Symbol">(</a><a id="1716" href="ElgotAlgebra.html#2186" class="Function Operator">_#</a> <a id="1719" class="Symbol">to</a> <a id="1722" class="Function Operator">_#₂</a><a id="1725" class="Symbol">;</a> <a id="1727" href="ElgotAlgebra.html#6257" class="Field">A</a> <a id="1729" class="Symbol">to</a> <a id="1732" class="Field">B</a><a id="1733" class="Symbol">)</a>
|
|||
|
<a id="1739" class="Keyword">record</a> <a id="1746" href="ElgotAlgebras.html#1746" class="Record">Elgot-Algebra-Morphism</a> <a id="1769" class="Symbol">:</a> <a id="1771" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1775" class="Symbol">(</a><a id="1776" href="ElgotAlgebras.html#1184" class="Bound">o</a> <a id="1778" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1780" href="ElgotAlgebras.html#1186" class="Bound">ℓ</a> <a id="1782" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1784" href="ElgotAlgebras.html#1188" class="Bound">e</a><a id="1785" class="Symbol">)</a> <a id="1787" class="Keyword">where</a>
|
|||
|
<a id="1799" class="Keyword">field</a>
|
|||
|
<a id="1813" href="ElgotAlgebras.html#1813" class="Field">h</a> <a id="1815" class="Symbol">:</a> <a id="1817" href="ElgotAlgebra.html#6257" class="Function">A</a> <a id="1819" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="1821" href="ElgotAlgebras.html#1732" class="Field">B</a>
|
|||
|
<a id="1831" href="ElgotAlgebras.html#1831" class="Field">preserves</a> <a id="1841" class="Symbol">:</a> <a id="1843" class="Symbol">∀</a> <a id="1845" class="Symbol">{</a><a id="1846" href="ElgotAlgebras.html#1846" class="Bound">X</a><a id="1847" class="Symbol">}</a> <a id="1849" class="Symbol">{</a><a id="1850" href="ElgotAlgebras.html#1850" class="Bound">f</a> <a id="1852" class="Symbol">:</a> <a id="1854" href="ElgotAlgebras.html#1846" class="Bound">X</a> <a id="1856" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="1858" href="ElgotAlgebra.html#6257" class="Function">A</a> <a id="1860" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="1862" href="ElgotAlgebras.html#1846" class="Bound">X</a><a id="1863" class="Symbol">}</a> <a id="1865" class="Symbol">→</a> <a id="1867" href="ElgotAlgebras.html#1813" class="Field">h</a> <a id="1869" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="1871" class="Symbol">(</a><a id="1872" href="ElgotAlgebras.html#1850" class="Bound">f</a> <a id="1874" href="ElgotAlgebras.html#1675" class="Function Operator">#₁</a><a id="1876" class="Symbol">)</a> <a id="1878" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="1880" class="Symbol">((</a><a id="1882" href="ElgotAlgebras.html#1813" class="Field">h</a> <a id="1884" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="1887" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="1890" class="Symbol">)</a> <a id="1892" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="1894" href="ElgotAlgebras.html#1850" class="Bound">f</a><a id="1895" class="Symbol">)</a><a id="1896" href="ElgotAlgebras.html#1722" class="Function Operator">#₂</a>
|
|||
|
|
|||
|
<a id="1902" class="Comment">-- the category of elgot algebras for a given category</a>
|
|||
|
<a id="1959" href="ElgotAlgebras.html#1959" class="Function">Elgot-Algebras</a> <a id="1974" class="Symbol">:</a> <a id="1976" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="1985" class="Symbol">(</a><a id="1986" href="ElgotAlgebras.html#1184" class="Bound">o</a> <a id="1988" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1990" href="ElgotAlgebras.html#1186" class="Bound">ℓ</a> <a id="1992" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1994" href="ElgotAlgebras.html#1188" class="Bound">e</a><a id="1995" class="Symbol">)</a> <a id="1997" class="Symbol">(</a><a id="1998" href="ElgotAlgebras.html#1184" class="Bound">o</a> <a id="2000" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="2002" href="ElgotAlgebras.html#1186" class="Bound">ℓ</a> <a id="2004" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="2006" href="ElgotAlgebras.html#1188" class="Bound">e</a><a id="2007" class="Symbol">)</a> <a id="2009" href="ElgotAlgebras.html#1188" class="Bound">e</a>
|
|||
|
<a id="2013" href="ElgotAlgebras.html#1959" class="Function">Elgot-Algebras</a> <a id="2028" class="Symbol">=</a> <a id="2030" class="Keyword">record</a>
|
|||
|
<a id="2041" class="Symbol">{</a> <a id="2043" href="Categories.Category.Core.html#559" class="Field">Obj</a> <a id="2053" class="Symbol">=</a> <a id="2055" href="ElgotAlgebra.html#6203" class="Record">Elgot-Algebra</a> <a id="2069" href="ElgotAlgebras.html#1150" class="Bound">D</a>
|
|||
|
<a id="2075" class="Symbol">;</a> <a id="2077" href="Categories.Category.Core.html#575" class="Field Operator">_⇒_</a> <a id="2087" class="Symbol">=</a> <a id="2089" href="ElgotAlgebras.html#1746" class="Record">Elgot-Algebra-Morphism</a>
|
|||
|
<a id="2116" class="Symbol">;</a> <a id="2118" href="Categories.Category.Core.html#595" class="Field Operator">_≈_</a> <a id="2128" class="Symbol">=</a> <a id="2130" class="Symbol">λ</a> <a id="2132" href="ElgotAlgebras.html#2132" class="Bound">f</a> <a id="2134" href="ElgotAlgebras.html#2134" class="Bound">g</a> <a id="2136" class="Symbol">→</a> <a id="2138" href="ElgotAlgebras.html#1813" class="Field">Elgot-Algebra-Morphism.h</a> <a id="2163" href="ElgotAlgebras.html#2132" class="Bound">f</a> <a id="2165" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="2167" href="ElgotAlgebras.html#1813" class="Field">Elgot-Algebra-Morphism.h</a> <a id="2192" href="ElgotAlgebras.html#2134" class="Bound">g</a>
|
|||
|
<a id="2198" class="Symbol">;</a> <a id="2200" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="2210" class="Symbol">=</a> <a id="2212" class="Symbol">λ</a> <a id="2214" class="Symbol">{</a><a id="2215" href="ElgotAlgebras.html#2215" class="Bound">EB</a><a id="2217" class="Symbol">}</a> <a id="2219" class="Symbol">→</a> <a id="2221" class="Keyword">let</a> <a id="2225" class="Keyword">open</a> <a id="2230" href="ElgotAlgebra.html#6203" class="Module">Elgot-Algebra</a> <a id="2244" href="ElgotAlgebras.html#2215" class="Bound">EB</a> <a id="2247" class="Keyword">in</a>
|
|||
|
<a id="2255" class="Keyword">record</a> <a id="2262" class="Symbol">{</a> <a id="2264" href="ElgotAlgebras.html#1813" class="Field">h</a> <a id="2266" class="Symbol">=</a> <a id="2268" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="2271" class="Symbol">;</a> <a id="2273" href="ElgotAlgebras.html#1831" class="Field">preserves</a> <a id="2283" class="Symbol">=</a> <a id="2285" class="Symbol">λ</a> <a id="2287" class="Symbol">{</a><a id="2288" href="ElgotAlgebras.html#2288" class="Bound">X</a> <a id="2290" class="Symbol">:</a> <a id="2292" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="2295" class="Symbol">}</a> <a id="2297" class="Symbol">{</a><a id="2298" href="ElgotAlgebras.html#2298" class="Bound">f</a> <a id="2300" class="Symbol">:</a> <a id="2302" href="ElgotAlgebras.html#2288" class="Bound">X</a> <a id="2304" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="2306" href="ElgotAlgebra.html#6257" class="Field">A</a> <a id="2308" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="2310" href="ElgotAlgebras.html#2288" class="Bound">X</a><a id="2311" class="Symbol">}</a> <a id="2313" class="Symbol">→</a> <a id="2315" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
|||
|
<a id="2327" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="2331" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="2333" href="ElgotAlgebras.html#2298" class="Bound">f</a> <a id="2335" href="ElgotAlgebra.html#2186" class="Function Operator">#</a> <a id="2348" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2351" href="Categories.Category.Core.html#1096" class="Function">identityˡ</a> <a id="2361" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="2370" href="ElgotAlgebras.html#2298" class="Bound">f</a> <a id="2372" href="ElgotAlgebra.html#2186" class="Function Operator">#</a> <a id="2391" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2394" href="ElgotAlgebra.html#2582" class="Function">#-resp-≈</a> <a id="2403" class="Symbol">(</a><a id="2404" href="Categories.Morphism.Reasoning.Core.html#3063" class="Function">introˡ</a> <a id="2411" class="Symbol">(</a><a id="2412" href="Categories.Object.Coproduct.html#635" class="Function">coproduct.unique</a> <a id="2429" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a> <a id="2441" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a><a id="2452" class="Symbol">))</a> <a id="2455" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="2463" class="Symbol">((</a><a id="2465" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="2469" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="2472" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="2475" class="Symbol">)</a> <a id="2477" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="2479" href="ElgotAlgebras.html#2298" class="Bound">f</a><a id="2480" class="Symbol">)</a> <a id="2482" href="ElgotAlgebra.html#2186" class="Function Operator">#</a> <a id="2484" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a> <a id="2486" class="Symbol">}</a>
|
|||
|
<a id="2492" class="Symbol">;</a> <a id="2494" href="Categories.Category.Core.html#656" class="Field Operator">_∘_</a> <a id="2504" class="Symbol">=</a> <a id="2506" class="Symbol">λ</a> <a id="2508" class="Symbol">{</a><a id="2509" href="ElgotAlgebras.html#2509" class="Bound">EA</a><a id="2511" class="Symbol">}</a> <a id="2513" class="Symbol">{</a><a id="2514" href="ElgotAlgebras.html#2514" class="Bound">EB</a><a id="2516" class="Symbol">}</a> <a id="2518" class="Symbol">{</a><a id="2519" href="ElgotAlgebras.html#2519" class="Bound">EC</a><a id="2521" class="Symbol">}</a> <a id="2523" href="ElgotAlgebras.html#2523" class="Bound">f</a> <a id="2525" href="ElgotAlgebras.html#2525" class="Bound">g</a> <a id="2527" class="Symbol">→</a> <a id="2529" class="Keyword">let</a>
|
|||
|
<a id="2540" class="Keyword">open</a> <a id="2545" href="ElgotAlgebras.html#1746" class="Module">Elgot-Algebra-Morphism</a> <a id="2568" href="ElgotAlgebras.html#2523" class="Bound">f</a> <a id="2570" class="Keyword">renaming</a> <a id="2579" class="Symbol">(</a><a id="2580" href="ElgotAlgebras.html#1813" class="Field">h</a> <a id="2582" class="Symbol">to</a> <a id="2585" class="Field">hᶠ</a><a id="2587" class="Symbol">;</a> <a id="2589" href="ElgotAlgebras.html#1831" class="Field">preserves</a> <a id="2599" class="Symbol">to</a> <a id="2602" class="Field">preservesᶠ</a><a id="2612" class="Symbol">)</a>
|
|||
|
<a id="2620" class="Keyword">open</a> <a id="2625" href="ElgotAlgebras.html#1746" class="Module">Elgot-Algebra-Morphism</a> <a id="2648" href="ElgotAlgebras.html#2525" class="Bound">g</a> <a id="2650" class="Keyword">renaming</a> <a id="2659" class="Symbol">(</a><a id="2660" href="ElgotAlgebras.html#1813" class="Field">h</a> <a id="2662" class="Symbol">to</a> <a id="2665" class="Field">hᵍ</a><a id="2667" class="Symbol">;</a> <a id="2669" href="ElgotAlgebras.html#1831" class="Field">preserves</a> <a id="2679" class="Symbol">to</a> <a id="2682" class="Field">preservesᵍ</a><a id="2692" class="Symbol">)</a>
|
|||
|
<a id="2700" class="Keyword">open</a> <a id="2705" href="ElgotAlgebra.html#6203" class="Module">Elgot-Algebra</a> <a id="2719" href="ElgotAlgebras.html#2509" class="Bound">EA</a> <a id="2722" class="Keyword">using</a> <a id="2728" class="Symbol">(</a><a id="2729" href="ElgotAlgebra.html#6257" class="Field">A</a><a id="2730" class="Symbol">)</a> <a id="2732" class="Keyword">renaming</a> <a id="2741" class="Symbol">(</a><a id="2742" href="ElgotAlgebra.html#2186" class="Function Operator">_#</a> <a id="2745" class="Symbol">to</a> <a id="2748" class="Function Operator">_#ᵃ</a><a id="2751" class="Symbol">)</a>
|
|||
|
<a id="2759" class="Keyword">open</a> <a id="2764" href="ElgotAlgebra.html#6203" class="Module">Elgot-Algebra</a> <a id="2778" href="ElgotAlgebras.html#2514" class="Bound">EB</a> <a id="2781" class="Keyword">using</a> <a id="2787" class="Symbol">()</a> <a id="2790" class="Keyword">renaming</a> <a id="2799" class="Symbol">(</a><a id="2800" href="ElgotAlgebra.html#2186" class="Function Operator">_#</a> <a id="2803" class="Symbol">to</a> <a id="2806" class="Function Operator">_#ᵇ</a><a id="2809" class="Symbol">;</a> <a id="2811" href="ElgotAlgebra.html#6257" class="Field">A</a> <a id="2813" class="Symbol">to</a> <a id="2816" class="Field">B</a><a id="2817" class="Symbol">)</a>
|
|||
|
<a id="2825" class="Keyword">open</a> <a id="2830" href="ElgotAlgebra.html#6203" class="Module">Elgot-Algebra</a> <a id="2844" href="ElgotAlgebras.html#2519" class="Bound">EC</a> <a id="2847" class="Keyword">using</a> <a id="2853" class="Symbol">()</a> <a id="2856" class="Keyword">renaming</a> <a id="2865" class="Symbol">(</a><a id="2866" href="ElgotAlgebra.html#2186" class="Function Operator">_#</a> <a id="2869" class="Symbol">to</a> <a id="2872" class="Function Operator">_#ᶜ</a><a id="2875" class="Symbol">;</a> <a id="2877" href="ElgotAlgebra.html#6257" class="Field">A</a> <a id="2879" class="Symbol">to</a> <a id="2882" class="Field">C</a><a id="2883" class="Symbol">;</a> <a id="2885" href="ElgotAlgebra.html#2582" class="Function">#-resp-≈</a> <a id="2894" class="Symbol">to</a> <a id="2897" class="Function">#ᶜ-resp-≈</a><a id="2906" class="Symbol">)</a>
|
|||
|
<a id="2914" class="Keyword">in</a> <a id="2917" class="Keyword">record</a> <a id="2924" class="Symbol">{</a> <a id="2926" href="ElgotAlgebras.html#1813" class="Field">h</a> <a id="2928" class="Symbol">=</a> <a id="2930" href="ElgotAlgebras.html#2585" class="Function">hᶠ</a> <a id="2933" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="2935" href="ElgotAlgebras.html#2665" class="Field">hᵍ</a><a id="2937" class="Symbol">;</a> <a id="2939" href="ElgotAlgebras.html#1831" class="Field">preserves</a> <a id="2949" class="Symbol">=</a> <a id="2951" class="Symbol">λ</a> <a id="2953" class="Symbol">{</a><a id="2954" href="ElgotAlgebras.html#2954" class="Bound">X</a><a id="2955" class="Symbol">}</a> <a id="2957" class="Symbol">{</a><a id="2958" href="ElgotAlgebras.html#2958" class="Bound">f</a> <a id="2960" class="Symbol">:</a> <a id="2962" href="ElgotAlgebras.html#2954" class="Bound">X</a> <a id="2964" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="2966" href="ElgotAlgebra.html#6257" class="Function">A</a> <a id="2968" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="2970" href="ElgotAlgebras.html#2954" class="Bound">X</a><a id="2971" class="Symbol">}</a> <a id="2973" class="Symbol">→</a> <a id="2975" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
|||
|
<a id="2990" class="Symbol">(</a><a id="2991" href="ElgotAlgebras.html#2585" class="Function">hᶠ</a> <a id="2994" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="2996" href="ElgotAlgebras.html#2665" class="Field">hᵍ</a><a id="2998" class="Symbol">)</a> <a id="3000" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3002" class="Symbol">(</a><a id="3003" href="ElgotAlgebras.html#2958" class="Bound">f</a> <a id="3005" href="ElgotAlgebras.html#2748" class="Function Operator">#ᵃ</a><a id="3007" class="Symbol">)</a> <a id="3029" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3032" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="3038" href="ElgotAlgebras.html#2682" class="Field">preservesᵍ</a> <a id="3049" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="3059" class="Symbol">(</a><a id="3060" href="ElgotAlgebras.html#2585" class="Function">hᶠ</a> <a id="3063" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3065" class="Symbol">(((</a><a id="3068" href="ElgotAlgebras.html#2665" class="Field">hᵍ</a> <a id="3071" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="3074" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="3077" class="Symbol">)</a> <a id="3079" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3081" href="ElgotAlgebras.html#2958" class="Bound">f</a><a id="3082" class="Symbol">)</a> <a id="3084" href="ElgotAlgebras.html#2806" class="Function Operator">#ᵇ</a><a id="3086" class="Symbol">))</a> <a id="3098" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3101" href="ElgotAlgebras.html#2602" class="Function">preservesᶠ</a> <a id="3112" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="3123" class="Symbol">(((</a><a id="3126" href="ElgotAlgebras.html#2585" class="Function">hᶠ</a> <a id="3129" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="3132" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="3135" class="Symbol">)</a> <a id="3137" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3139" class="Symbol">(</a><a id="3140" href="ElgotAlgebras.html#2665" class="Field">hᵍ</a> <a id="3143" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="3146" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="3149" class="Symbol">)</a> <a id="3151" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3153" href="ElgotAlgebras.html#2958" class="Bound">f</a><a id="3154" class="Symbol">)</a> <a id="3156" href="ElgotAlgebras.html#2872" class="Function Operator">#ᶜ</a><a id="3158" class="Symbol">)</a> <a id="3162" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3165" href="ElgotAlgebras.html#2897" class="Function">#ᶜ-resp-≈</a> <a id="3175" class="Symbol">(</a><a id="3176" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="3182" class="Symbol">(</a><a id="3183" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="3189" href="Categories.Category.Cocartesian.html#2699" class="Function">+₁∘+₁</a> <a id="3195" class="Symbol">(</a><a id="3196" href="Categories.Category.Cocartesian.html#2622" class="Function">+₁-cong₂</a> <a id="3205" href="Relation.Binary.Structures.html#1577" class="Function">refl</a> <a id="3210" class="Symbol">(</a><a id="3211" href="Categories.Category.Core.html#1339" class="Function">identity²</a><a id="3220" class="Symbol">))))</a> <a id="3225" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="3236" class="Symbol">((</a><a id="3238" href="ElgotAlgebras.html#2585" class="Function">hᶠ</a> <a id="3241" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3243" href="ElgotAlgebras.html#2665" class="Field">hᵍ</a> <a id="3246" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="3249" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="3252" class="Symbol">)</a> <a id="3254" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3256" href="ElgotAlgebras.html#2958" class="Bound">f</a><a id="3257" class="Symbol">)</a> <a id="3259" href="ElgotAlgebras.html#2872" class="Function Operator">#ᶜ</a> <a id="3275" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a> <a id="3277" class="Symbol">}</a>
|
|||
|
<a id="3283" class="Symbol">;</a> <a id="3285" href="Categories.Category.Core.html#1096" class="Field">identityˡ</a> <a id="3295" class="Symbol">=</a> <a id="3297" href="Categories.Category.Core.html#1096" class="Function">identityˡ</a>
|
|||
|
<a id="3311" class="Symbol">;</a> <a id="3313" href="Categories.Category.Core.html#1145" class="Field">identityʳ</a> <a id="3323" class="Symbol">=</a> <a id="3325" href="Categories.Category.Core.html#1145" class="Function">identityʳ</a>
|
|||
|
<a id="3339" class="Symbol">;</a> <a id="3341" href="Categories.Category.Core.html#1339" class="Field">identity²</a> <a id="3351" class="Symbol">=</a> <a id="3353" href="Categories.Category.Core.html#1339" class="Function">identity²</a>
|
|||
|
<a id="3367" class="Symbol">;</a> <a id="3369" href="Categories.Category.Core.html#715" class="Field">assoc</a> <a id="3379" class="Symbol">=</a> <a id="3381" href="Categories.Category.Core.html#715" class="Function">assoc</a>
|
|||
|
<a id="3391" class="Symbol">;</a> <a id="3393" href="Categories.Category.Core.html#1004" class="Field">sym-assoc</a> <a id="3403" class="Symbol">=</a> <a id="3405" href="Categories.Category.Core.html#1004" class="Function">sym-assoc</a>
|
|||
|
<a id="3419" class="Symbol">;</a> <a id="3421" href="Categories.Category.Core.html#1384" class="Field">equiv</a> <a id="3431" class="Symbol">=</a> <a id="3433" class="Keyword">record</a>
|
|||
|
<a id="3446" class="Symbol">{</a> <a id="3448" href="Relation.Binary.Structures.html#1577" class="Field">refl</a> <a id="3454" class="Symbol">=</a> <a id="3456" href="Relation.Binary.Structures.html#1577" class="Function">refl</a>
|
|||
|
<a id="3467" class="Symbol">;</a> <a id="3469" href="Relation.Binary.Structures.html#1603" class="Field">sym</a> <a id="3475" class="Symbol">=</a> <a id="3477" href="Relation.Binary.Structures.html#1603" class="Function">sym</a>
|
|||
|
<a id="3487" class="Symbol">;</a> <a id="3489" href="Relation.Binary.Structures.html#1629" class="Field">trans</a> <a id="3495" class="Symbol">=</a> <a id="3497" href="Relation.Binary.Structures.html#1629" class="Function">trans</a>
|
|||
|
<a id="3509" class="Symbol">}</a>
|
|||
|
<a id="3515" class="Symbol">;</a> <a id="3517" href="Categories.Category.Core.html#1438" class="Field">∘-resp-≈</a> <a id="3527" class="Symbol">=</a> <a id="3529" href="Categories.Category.Core.html#1438" class="Function">∘-resp-≈</a>
|
|||
|
<a id="3542" class="Symbol">}</a>
|
|||
|
<a id="3548" class="Keyword">where</a> <a id="3554" class="Keyword">open</a> <a id="3559" href="ElgotAlgebras.html#1746" class="Module">Elgot-Algebra-Morphism</a>
|
|||
|
</pre>
|
|||
|
<h3 id="lemma-11-products-of-elgot-algebras"><em>Lemma 11</em>: Products
|
|||
|
of elgot algebras</h3>
|
|||
|
<pre class="Agda"> <a id="3641" class="Comment">-- if the carrier contains a terminal, so does elgot-algebras</a>
|
|||
|
<a id="3705" href="ElgotAlgebras.html#3705" class="Function">Terminal-Elgot-Algebras</a> <a id="3729" class="Symbol">:</a> <a id="3731" href="Categories.Object.Terminal.html#860" class="Record">Terminal</a> <a id="3740" href="ElgotAlgebras.html#1251" class="Field">C</a> <a id="3742" class="Symbol">→</a> <a id="3744" href="Categories.Object.Terminal.html#860" class="Record">Terminal</a> <a id="3753" href="ElgotAlgebras.html#1959" class="Function">Elgot-Algebras</a>
|
|||
|
<a id="3770" href="ElgotAlgebras.html#3705" class="Function">Terminal-Elgot-Algebras</a> <a id="3794" href="ElgotAlgebras.html#3794" class="Bound">T</a> <a id="3796" class="Symbol">=</a> <a id="3798" class="Keyword">record</a>
|
|||
|
<a id="3810" class="Symbol">{</a> <a id="3812" href="Categories.Object.Terminal.html#905" class="Field">⊤</a> <a id="3814" class="Symbol">=</a> <a id="3816" class="Keyword">record</a>
|
|||
|
<a id="3829" class="Symbol">{</a> <a id="3831" href="ElgotAlgebra.html#6257" class="Field">A</a> <a id="3833" class="Symbol">=</a> <a id="3835" href="Categories.Object.Terminal.html#905" class="Field">⊤</a>
|
|||
|
<a id="3843" class="Symbol">;</a> <a id="3845" href="ElgotAlgebra.html#6271" class="Field">algebra</a> <a id="3853" class="Symbol">=</a> <a id="3855" class="Keyword">record</a>
|
|||
|
<a id="3870" class="Symbol">{</a> <a id="3872" href="ElgotAlgebra.html#2186" class="Field Operator">_#</a> <a id="3875" class="Symbol">=</a> <a id="3877" class="Symbol">λ</a> <a id="3879" href="ElgotAlgebras.html#3879" class="Bound">x</a> <a id="3881" class="Symbol">→</a> <a id="3883" href="Categories.Object.Terminal.html#577" class="Function">!</a>
|
|||
|
<a id="3893" class="Symbol">;</a> <a id="3895" href="ElgotAlgebra.html#2259" class="Field">#-Fixpoint</a> <a id="3906" class="Symbol">=</a> <a id="3908" class="Symbol">λ</a> <a id="3910" class="Symbol">{</a><a id="3911" href="ElgotAlgebras.html#3911" class="Bound">_</a> <a id="3913" href="ElgotAlgebras.html#3913" class="Bound">f</a><a id="3914" class="Symbol">}</a> <a id="3916" class="Symbol">→</a> <a id="3918" href="Categories.Object.Terminal.html#605" class="Function">!-unique</a> <a id="3927" class="Symbol">(</a><a id="3928" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="3930" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="3934" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="3936" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="3938" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="3940" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3942" href="ElgotAlgebras.html#3913" class="Bound">f</a><a id="3943" class="Symbol">)</a>
|
|||
|
<a id="3953" class="Symbol">;</a> <a id="3955" href="ElgotAlgebra.html#2335" class="Field">#-Uniformity</a> <a id="3968" class="Symbol">=</a> <a id="3970" class="Symbol">λ</a> <a id="3972" class="Symbol">{</a><a id="3973" href="ElgotAlgebras.html#3973" class="Bound">_</a> <a id="3975" href="ElgotAlgebras.html#3975" class="Bound">_</a> <a id="3977" href="ElgotAlgebras.html#3977" class="Bound">_</a> <a id="3979" href="ElgotAlgebras.html#3979" class="Bound">_</a> <a id="3981" href="ElgotAlgebras.html#3981" class="Bound">h</a><a id="3982" class="Symbol">}</a> <a id="3984" href="ElgotAlgebras.html#3984" class="Bound">_</a> <a id="3986" class="Symbol">→</a> <a id="3988" href="Categories.Object.Terminal.html#605" class="Function">!-unique</a> <a id="3997" class="Symbol">(</a><a id="3998" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="4000" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4002" href="ElgotAlgebras.html#3981" class="Bound">h</a><a id="4003" class="Symbol">)</a>
|
|||
|
<a id="4013" class="Symbol">;</a> <a id="4015" href="ElgotAlgebra.html#2466" class="Field">#-Folding</a> <a id="4025" class="Symbol">=</a> <a id="4027" href="Relation.Binary.Structures.html#1577" class="Function">refl</a>
|
|||
|
<a id="4040" class="Symbol">;</a> <a id="4042" href="ElgotAlgebra.html#2582" class="Field">#-resp-≈</a> <a id="4051" class="Symbol">=</a> <a id="4053" class="Symbol">λ</a> <a id="4055" href="ElgotAlgebras.html#4055" class="Bound">_</a> <a id="4057" class="Symbol">→</a> <a id="4059" href="Relation.Binary.Structures.html#1577" class="Function">refl</a>
|
|||
|
<a id="4072" class="Symbol">}</a>
|
|||
|
<a id="4080" class="Symbol">}</a>
|
|||
|
<a id="4087" class="Symbol">;</a> <a id="4089" href="Categories.Object.Terminal.html#917" class="Field">⊤-is-terminal</a> <a id="4103" class="Symbol">=</a> <a id="4105" class="Keyword">record</a>
|
|||
|
<a id="4119" class="Symbol">{</a> <a id="4121" href="Categories.Object.Terminal.html#577" class="Field">!</a> <a id="4123" class="Symbol">=</a> <a id="4125" class="Symbol">λ</a> <a id="4127" class="Symbol">{</a><a id="4128" href="ElgotAlgebras.html#4128" class="Bound">A</a><a id="4129" class="Symbol">}</a> <a id="4131" class="Symbol">→</a> <a id="4133" class="Keyword">record</a> <a id="4140" class="Symbol">{</a> <a id="4142" href="ElgotAlgebras.html#1813" class="Field">h</a> <a id="4144" class="Symbol">=</a> <a id="4146" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="4148" class="Symbol">;</a> <a id="4150" href="ElgotAlgebras.html#1831" class="Field">preserves</a> <a id="4160" class="Symbol">=</a> <a id="4162" class="Symbol">λ</a> <a id="4164" class="Symbol">{</a><a id="4165" href="ElgotAlgebras.html#4165" class="Bound">X</a><a id="4166" class="Symbol">}</a> <a id="4168" class="Symbol">{</a><a id="4169" href="ElgotAlgebras.html#4169" class="Bound">f</a><a id="4170" class="Symbol">}</a> <a id="4172" class="Symbol">→</a> <a id="4174" href="Relation.Binary.Structures.html#1603" class="Function">sym</a> <a id="4178" class="Symbol">(</a><a id="4179" href="Categories.Object.Terminal.html#605" class="Function">!-unique</a> <a id="4188" class="Symbol">(</a><a id="4189" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="4191" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4193" class="Symbol">(</a><a id="4194" href="ElgotAlgebras.html#4128" class="Bound">A</a> <a id="4196" href="ElgotAlgebra.html#2186" class="Function Operator">Elgot-Algebra.#</a><a id="4211" class="Symbol">)</a> <a id="4213" href="ElgotAlgebras.html#4169" class="Bound">f</a><a id="4214" class="Symbol">))</a> <a id="4219" class="Symbol">}</a>
|
|||
|
<a id="4228" class="Symbol">;</a> <a id="4230" href="Categories.Object.Terminal.html#605" class="Field">!-unique</a> <a id="4239" class="Symbol">=</a> <a id="4241" class="Symbol">λ</a> <a id="4243" class="Symbol">{</a><a id="4244" href="ElgotAlgebras.html#4244" class="Bound">A</a><a id="4245" class="Symbol">}</a> <a id="4247" href="ElgotAlgebras.html#4247" class="Bound">f</a> <a id="4249" class="Symbol">→</a> <a id="4251" href="Categories.Object.Terminal.html#605" class="Function">!-unique</a> <a id="4260" class="Symbol">(</a><a id="4261" href="ElgotAlgebras.html#1813" class="Field">Elgot-Algebra-Morphism.h</a> <a id="4286" href="ElgotAlgebras.html#4247" class="Bound">f</a><a id="4287" class="Symbol">)</a>
|
|||
|
<a id="4296" class="Symbol">}</a>
|
|||
|
<a id="4303" class="Symbol">}</a>
|
|||
|
<a id="4309" class="Keyword">where</a>
|
|||
|
<a id="4320" class="Keyword">open</a> <a id="4325" href="Categories.Object.Terminal.html#860" class="Module">Terminal</a> <a id="4334" href="ElgotAlgebras.html#3794" class="Bound">T</a>
|
|||
|
|
|||
|
<a id="4339" class="Comment">-- if the carriers of the algebra form a product, so do the algebras</a>
|
|||
|
<a id="4410" href="ElgotAlgebras.html#4410" class="Function">A×B-Helper</a> <a id="4421" class="Symbol">:</a> <a id="4423" class="Symbol">∀</a> <a id="4425" class="Symbol">{</a><a id="4426" href="ElgotAlgebras.html#4426" class="Bound">EA</a> <a id="4429" href="ElgotAlgebras.html#4429" class="Bound">EB</a> <a id="4432" class="Symbol">:</a> <a id="4434" href="ElgotAlgebra.html#6203" class="Record">Elgot-Algebra</a> <a id="4448" href="ElgotAlgebras.html#1150" class="Bound">D</a><a id="4449" class="Symbol">}</a> <a id="4451" class="Symbol">→</a> <a id="4453" href="ElgotAlgebra.html#6203" class="Record">Elgot-Algebra</a> <a id="4467" href="ElgotAlgebras.html#1150" class="Bound">D</a>
|
|||
|
<a id="4471" href="ElgotAlgebras.html#4410" class="Function">A×B-Helper</a> <a id="4482" class="Symbol">{</a><a id="4483" href="ElgotAlgebras.html#4483" class="Bound">EA</a><a id="4485" class="Symbol">}</a> <a id="4487" class="Symbol">{</a><a id="4488" href="ElgotAlgebras.html#4488" class="Bound">EB</a><a id="4490" class="Symbol">}</a> <a id="4493" class="Symbol">=</a> <a id="4495" class="Keyword">record</a>
|
|||
|
<a id="4506" class="Symbol">{</a> <a id="4508" href="ElgotAlgebra.html#6257" class="Field">A</a> <a id="4510" class="Symbol">=</a> <a id="4512" href="ElgotAlgebra.html#6257" class="Function">A</a> <a id="4514" href="Categories.Category.BinaryProducts.html#1017" class="Function Operator">×</a> <a id="4516" href="ElgotAlgebras.html#8303" class="Field">B</a>
|
|||
|
<a id="4522" class="Symbol">;</a> <a id="4524" href="ElgotAlgebra.html#6271" class="Field">algebra</a> <a id="4532" class="Symbol">=</a> <a id="4534" class="Keyword">record</a>
|
|||
|
<a id="4547" class="Symbol">{</a> <a id="4549" href="ElgotAlgebra.html#2186" class="Field Operator">_#</a> <a id="4552" class="Symbol">=</a> <a id="4554" class="Symbol">λ</a> <a id="4556" class="Symbol">{</a><a id="4557" href="ElgotAlgebras.html#4557" class="Bound">X</a> <a id="4559" class="Symbol">:</a> <a id="4561" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="4564" class="Symbol">}</a> <a id="4566" class="Symbol">(</a><a id="4567" href="ElgotAlgebras.html#4567" class="Bound">h</a> <a id="4569" class="Symbol">:</a> <a id="4571" href="ElgotAlgebras.html#4557" class="Bound">X</a> <a id="4573" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="4575" href="Categories.Object.Product.Core.html#510" class="Function">A×B</a> <a id="4579" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="4581" href="ElgotAlgebras.html#4557" class="Bound">X</a><a id="4582" class="Symbol">)</a> <a id="4584" class="Symbol">→</a> <a id="4586" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="4588" class="Symbol">((</a><a id="4590" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="4593" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="4596" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="4599" class="Symbol">)</a> <a id="4601" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4603" href="ElgotAlgebras.html#4567" class="Bound">h</a><a id="4604" class="Symbol">)</a><a id="4605" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a> <a id="4608" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="4610" class="Symbol">((</a><a id="4612" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="4615" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="4618" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="4621" class="Symbol">)</a> <a id="4623" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4625" href="ElgotAlgebras.html#4567" class="Bound">h</a><a id="4626" class="Symbol">)</a><a id="4627" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="4630" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a>
|
|||
|
<a id="4638" class="Symbol">;</a> <a id="4640" href="ElgotAlgebra.html#2259" class="Field">#-Fixpoint</a> <a id="4651" class="Symbol">=</a> <a id="4653" class="Symbol">λ</a> <a id="4655" class="Symbol">{</a><a id="4656" href="ElgotAlgebras.html#4656" class="Bound">X</a><a id="4657" class="Symbol">}</a> <a id="4659" class="Symbol">{</a><a id="4660" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="4661" class="Symbol">}</a> <a id="4663" class="Symbol">→</a> <a id="4665" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
|||
|
<a id="4679" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="4681" class="Symbol">((</a><a id="4683" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="4686" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="4689" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="4692" class="Symbol">)</a> <a id="4694" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4696" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="4697" class="Symbol">)</a><a id="4698" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a> <a id="4701" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="4703" class="Symbol">((</a><a id="4705" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="4708" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="4711" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="4714" class="Symbol">)</a> <a id="4716" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4718" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="4719" class="Symbol">)</a><a id="4720" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="4723" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="4785" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="4788" href="Categories.Object.Product.Core.html#854" class="Function">⟨⟩-cong₂</a> <a id="4797" href="ElgotAlgebras.html#8161" class="Function">#ᵃ-Fixpoint</a> <a id="4809" href="ElgotAlgebras.html#8331" class="Function">#ᵇ-Fixpoint</a> <a id="4821" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="4831" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="4833" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="4835" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="4839" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="4841" class="Symbol">((</a><a id="4843" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="4846" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="4849" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="4852" class="Symbol">)</a> <a id="4854" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4856" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="4857" class="Symbol">)</a><a id="4858" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a> <a id="4861" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="4863" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4865" class="Symbol">((</a><a id="4867" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="4870" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="4873" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="4876" class="Symbol">)</a> <a id="4878" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4880" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="4881" class="Symbol">)</a> <a id="4883" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="4885" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="4887" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="4891" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="4893" class="Symbol">((</a><a id="4895" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="4898" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="4901" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="4904" class="Symbol">)</a> <a id="4906" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4908" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="4909" class="Symbol">)</a><a id="4910" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="4913" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="4915" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4917" class="Symbol">((</a><a id="4919" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="4922" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="4925" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="4928" class="Symbol">)</a> <a id="4930" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4932" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="4933" class="Symbol">)</a> <a id="4935" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="4937" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="4940" href="Categories.Object.Product.Core.html#854" class="Function">⟨⟩-cong₂</a> <a id="4949" class="Symbol">(</a><a id="4950" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="4956" href="Categories.Category.Cocartesian.html#2662" class="Function">[]∘+₁</a><a id="4961" class="Symbol">)</a> <a id="4963" class="Symbol">(</a><a id="4964" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="4970" href="Categories.Category.Cocartesian.html#2662" class="Function">[]∘+₁</a><a id="4975" class="Symbol">)</a> <a id="4977" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Functio
|
|||
|
<a id="4987" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="4989" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="4991" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="4995" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4997" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="5000" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="5002" class="Symbol">((</a><a id="5004" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="5007" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5010" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="5013" class="Symbol">)</a> <a id="5015" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5017" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="5018" class="Symbol">)</a><a id="5019" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a> <a id="5022" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5024" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="5028" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="5030" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5032" href="ElgotAlgebras.html#4660" class="Bound">f</a> <a id="5034" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="5036" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="5038" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="5042" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5044" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="5047" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="5049" class="Symbol">((</a><a id="5051" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="5054" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5057" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="5060" class="Symbol">)</a> <a id="5062" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5064" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="5065" class="Symbol">)</a><a id="5066" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="5069" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5071" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="5075" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="5077" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5079" href="ElgotAlgebras.html#4660" class="Bound">f</a> <a id="5081" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="5093" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="5097" href="Categories.Category.BinaryProducts.html#2939" class="Function">⟨⟩∘</a> <a id="5101" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
|||
|
<a id="5111" class="Symbol">(</a><a id="5112" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="5114" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="5116" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="5120" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5122" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="5125" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="5127" class="Symbol">((</a><a id="5129" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="5132" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5135" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="5138" class="Symbol">)</a> <a id="5140" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5142" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="5143" class="Symbol">)</a><a id="5144" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a> <a id="5147" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5149" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="5153" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="5155" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="5157" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="5159" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="5163" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5165" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="5168" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="5170" class="Symbol">((</a><a id="5172" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="5175" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5178" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="5181" class="Symbol">)</a> <a id="5183" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5185" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="5186" class="Symbol">)</a><a id="5187" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="5190" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5192" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="5196" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="5198" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="5200" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5202" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="5203" class="Symbol">)</a> <a id="5217" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="5220" href="Categories.Category.Core.html#1597" class="Function">∘-resp-≈ˡ</a> <a id="5230" class="Symbol">(</a><a id="5231" href="Categories.Object.Product.Core.html#1170" class="Function">unique′</a>
|
|||
|
<a id="5250" class="Symbol">(</a><a id="5251" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
|||
|
<a id="5270" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="5273" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5275" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="5277" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="5279" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="5283" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5285" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="5288" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="5290" class="Symbol">((</a><a id="5292" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="5295" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5298" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="5301" class="Symbol">)</a> <a id="5303" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5305" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="5306" class="Symbol">)</a><a id="5307" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a> <a id="5310" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5312" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="5316" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="5318" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="5320" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="5322" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="5326" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5328" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="5331" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="5333" class="Symbol">((</a><a id="5335" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="5338" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5341" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="5344" class="Symbol">)</a> <a id="5346" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5348" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="5349" class="Symbol">)</a><a id="5350" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="5353" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5355" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="5359" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="5361" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="5363" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="5366" href="Categories.Object.Product.Core.html#603" class="Function">project₁</a> <a id="5375" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="5390" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="5392" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="5396" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5398" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="5401" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="5403" class="Symbol">((</a><a id="5405" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="5408" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5411" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="5414" class="Symbol">)</a> <a id="5416" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5418" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="5419" class="Symbol">)</a><a id="5420" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a> <a id="5423" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5425" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="5429" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="5483" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="5486" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="5495" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a> <a id="5507" class="Symbol">(</a><a id="5508" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="5514" href="Categories.Category.Core.html#1145" class="Function">identityʳ</a> <a id="5524" class="Symbol">(</a><a id="5525" href="Relation.Binary.Structures.html#1603" class="Function">sym</a> <a id="5529" href="Categories.Object.Product.Core.html#603" class="Function">project₁</a><a id="5537" class="Symbol">))</a> <a id="5540" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="5554" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="5556" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="5559" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5561" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="5565" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="5567" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="5570" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5572" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="5574" class="Symbol">((</a><a id="5576" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="5579" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5582" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="5585" class="Symbol">)</a> <a id="5587" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5589" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="5590" class="Symbol">)</a><a id="5591" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a> <a id="5594" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="5596" class="Symbol">((</a><a id="5598" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="5601" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5604" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="5607" class="Symbol">)</a> <a id="5609" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5611" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="5612" class="Symbol">)</a><a id="5613" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="5616" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="5618" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="5647" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="5651" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a> <a id="5655" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
|||
|
<a id="5669" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="5672" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5674" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="5676" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="5680" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="5682" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="5684" class="Symbol">((</a><a id="5686" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="5689" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5692" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="5695" class="Symbol">)</a> <a id="5697" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5699" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="5700" class="Symbol">)</a><a id="5701" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a> <a id="5704" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="5706" class="Symbol">((</a><a id="5708" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="5711" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5714" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="5717" class="Symbol">)</a> <a id="5719" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5721" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="5722" class="Symbol">)</a><a id="5723" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="5726" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="5728" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="5762" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a><a id="5763" class="Symbol">)</a>
|
|||
|
<a id="5776" class="Symbol">(</a><a id="5777" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
|||
|
<a id="5796" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="5799" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5801" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="5803" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="5805" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="5809" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5811" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="5814" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="5816" class="Symbol">((</a><a id="5818" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="5821" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5824" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="5827" class="Symbol">)</a> <a id="5829" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5831" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="5832" class="Symbol">)</a><a id="5833" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a> <a id="5836" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5838" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="5842" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="5844" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="5846" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="5848" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="5852" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5854" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="5857" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="5859" class="Symbol">((</a><a id="5861" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="5864" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5867" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="5870" class="Symbol">)</a> <a id="5872" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5874" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="5875" class="Symbol">)</a><a id="5876" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="5879" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5881" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="5885" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="5887" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="5889" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="5892" href="Categories.Object.Product.Core.html#637" class="Function">project₂</a> <a id="5901" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="5916" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="5918" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="5922" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5924" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="5927" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="5929" class="Symbol">((</a><a id="5931" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="5934" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5937" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="5940" class="Symbol">)</a> <a id="5942" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5944" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="5945" class="Symbol">)</a><a id="5946" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="5949" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5951" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="5955" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="6009" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="6012" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="6021" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a> <a id="6033" class="Symbol">(</a><a id="6034" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="6040" href="Categories.Category.Core.html#1145" class="Function">identityʳ</a> <a id="6050" class="Symbol">(</a><a id="6051" href="Relation.Binary.Structures.html#1603" class="Function">sym</a> <a id="6055" href="Categories.Object.Product.Core.html#637" class="Function">project₂</a><a id="6063" class="Symbol">))</a> <a id="6066" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="6080" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="6082" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="6085" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6087" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="6091" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="6093" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="6096" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6098" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="6100" class="Symbol">((</a><a id="6102" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="6105" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="6108" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="6111" class="Symbol">)</a> <a id="6113" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6115" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="6116" class="Symbol">)</a><a id="6117" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a> <a id="6120" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="6122" class="Symbol">((</a><a id="6124" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="6127" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="6130" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="6133" class="Symbol">)</a> <a id="6135" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6137" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="6138" class="Symbol">)</a><a id="6139" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="6142" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="6144" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="6173" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="6177" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a> <a id="6181" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
|||
|
<a id="6195" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="6198" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6200" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="6202" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="6206" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="6208" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="6210" class="Symbol">((</a><a id="6212" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="6215" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="6218" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="6221" class="Symbol">)</a> <a id="6223" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6225" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="6226" class="Symbol">)</a><a id="6227" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a> <a id="6230" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="6232" class="Symbol">((</a><a id="6234" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="6237" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="6240" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="6243" class="Symbol">)</a> <a id="6245" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6247" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="6248" class="Symbol">)</a><a id="6249" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="6252" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="6254" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="6288" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a><a id="6289" class="Symbol">)</a>
|
|||
|
<a id="6299" class="Symbol">)</a><a id="6300" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="6310" class="Symbol">(</a><a id="6311" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="6313" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="6317" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="6319" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="6321" class="Symbol">((</a><a id="6323" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="6326" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="6329" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="6332" class="Symbol">)</a> <a id="6334" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6336" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="6337" class="Symbol">)</a><a id="6338" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a> <a id="6341" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="6343" class="Symbol">((</a><a id="6345" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="6348" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="6351" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="6354" class="Symbol">)</a> <a id="6356" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6358" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="6359" class="Symbol">)</a><a id="6360" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="6363" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="6365" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="6367" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6369" href="ElgotAlgebras.html#4660" class="Bound">f</a><a id="6370" class="Symbol">)</a> <a id="6416" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
|||
|
<a id="6424" class="Symbol">;</a> <a id="6426" href="ElgotAlgebra.html#2335" class="Field">#-Uniformity</a> <a id="6439" class="Symbol">=</a> <a id="6441" class="Symbol">λ</a> <a id="6443" class="Symbol">{</a><a id="6444" href="ElgotAlgebras.html#6444" class="Bound">X</a> <a id="6446" href="ElgotAlgebras.html#6446" class="Bound">Y</a> <a id="6448" href="ElgotAlgebras.html#6448" class="Bound">f</a> <a id="6450" href="ElgotAlgebras.html#6450" class="Bound">g</a> <a id="6452" href="ElgotAlgebras.html#6452" class="Bound">h</a><a id="6453" class="Symbol">}</a> <a id="6455" href="ElgotAlgebras.html#6455" class="Bound">uni</a> <a id="6459" class="Symbol">→</a> <a id="6461" href="Categories.Object.Product.Core.html#1170" class="Function">unique′</a>
|
|||
|
<a id="6478" class="Symbol">(</a><a id="6479" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
|||
|
<a id="6496" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="6499" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6501" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="6503" class="Symbol">((</a><a id="6505" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="6508" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="6511" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="6514" class="Symbol">)</a> <a id="6516" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6518" href="ElgotAlgebras.html#6448" class="Bound">f</a><a id="6519" class="Symbol">)</a><a id="6520" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a> <a id="6523" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="6525" class="Symbol">((</a><a id="6527" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="6530" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="6533" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="6536" class="Symbol">)</a> <a id="6538" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6540" href="ElgotAlgebras.html#6448" class="Bound">f</a><a id="6541" class="Symbol">)</a><a id="6542" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="6545" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="6547" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="6550" href="Categories.Object.Product.Core.html#603" class="Function">project₁</a> <a id="6559" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="6574" class="Symbol">(((</a><a id="6577" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="6580" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="6583" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="6586" class="Symbol">)</a> <a id="6588" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6590" href="ElgotAlgebras.html#6448" class="Bound">f</a><a id="6591" class="Symbol">)</a><a id="6592" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a><a id="6594" class="Symbol">)</a> <a id="6623" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="6626" href="ElgotAlgebras.html#8190" class="Function">#ᵃ-Uniformity</a>
|
|||
|
<a id="6655" class="Symbol">(</a><a id="6656" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
|||
|
<a id="6677" class="Comment">-- TODO factor these out or adjust +₁ swap... maybe call it +₁-id-comm</a>
|
|||
|
<a id="6764" class="Symbol">(</a><a id="6765" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="6769" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="6772" href="ElgotAlgebras.html#6452" class="Bound">h</a><a id="6773" class="Symbol">)</a> <a id="6775" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6777" class="Symbol">(</a><a id="6778" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="6781" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="6784" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="6787" class="Symbol">)</a> <a id="6789" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6791" href="ElgotAlgebras.html#6448" class="Bound">f</a> <a id="6813" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="6816" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="6822" class="Symbol">(</a><a id="6823" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="6829" href="Categories.Category.Cocartesian.html#2699" class="Function">+₁∘+₁</a> <a id="6835" class="Symbol">(</a><a id="6836" href="Categories.Category.Cocartesian.html#2622" class="Function">+₁-cong₂</a> <a id="6845" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a> <a id="6857" href="Categories.Morphism.Reasoning.Core.html#1202" class="Function">id-comm</a><a id="6864" class="Symbol">))</a> <a id="6867" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="6886" class="Symbol">(</a><a id="6887" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="6890" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6892" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="6896" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="6899" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="6903" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6905" href="ElgotAlgebras.html#6452" class="Bound">h</a><a id="6906" class="Symbol">)</a> <a id="6908" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6910" href="ElgotAlgebras.html#6448" class="Bound">f</a> <a id="6935" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="6939" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="6945" href="Categories.Category.Cocartesian.html#2699" class="Function">+₁∘+₁</a> <a id="6951" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
|||
|
<a id="6969" class="Symbol">(</a><a id="6970" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="6973" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="6976" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="6979" class="Symbol">)</a> <a id="6981" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6983" class="Symbol">(</a><a id="6984" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="6988" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="6991" href="ElgotAlgebras.html#6452" class="Bound">h</a><a id="6992" class="Symbol">)</a> <a id="6994" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6996" href="ElgotAlgebras.html#6448" class="Bound">f</a> <a id="7018" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="7021" href="Categories.Morphism.Reasoning.Core.html#2347" class="Function">pushʳ</a> <a id="7027" href="ElgotAlgebras.html#6455" class="Bound">uni</a> <a id="7031" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="7049" class="Symbol">((</a><a id="7051" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="7054" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="7057" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="7060" class="Symbol">)</a> <a id="7062" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7064" href="ElgotAlgebras.html#6450" class="Bound">g</a><a id="7065" class="Symbol">)</a> <a id="7067" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7069" href="ElgotAlgebras.html#6452" class="Bound">h</a> <a id="7098" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a><a id="7099" class="Symbol">)</a><a id="7100" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="7110" class="Symbol">(((</a><a id="7113" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="7116" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="7119" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="7122" class="Symbol">)</a> <a id="7124" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7126" href="ElgotAlgebras.html#6450" class="Bound">g</a><a id="7127" class="Symbol">)</a><a id="7128" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a> <a id="7131" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7133" href="ElgotAlgebras.html#6452" class="Bound">h</a><a id="7134" class="Symbol">)</a> <a id="7169" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="7173" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="7179" href="Categories.Object.Product.Core.html#603" class="Function">project₁</a> <a id="7188" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
|||
|
<a id="7200" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="7203" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7205" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="7207" class="Symbol">((</a><a id="7209" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="7212" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="7215" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="7218" class="Symbol">)</a> <a id="7220" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7222" href="ElgotAlgebras.html#6450" class="Bound">g</a><a id="7223" class="Symbol">)</a><a id="7224" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a> <a id="7227" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="7229" class="Symbol">((</a><a id="7231" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="7234" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="7237" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="7240" class="Symbol">)</a> <a id="7242" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7244" href="ElgotAlgebras.html#6450" class="Bound">g</a><a id="7245" class="Symbol">)</a><a id="7246" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="7249" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="7251" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7253" href="ElgotAlgebras.html#6452" class="Bound">h</a> <a id="7259" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a><a id="7260" class="Symbol">)</a>
|
|||
|
<a id="7271" class="Symbol">(</a><a id="7272" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
|||
|
<a id="7289" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="7292" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7294" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="7296" class="Symbol">((</a><a id="7298" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="7301" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="7304" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="7307" class="Symbol">)</a> <a id="7309" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7311" href="ElgotAlgebras.html#6448" class="Bound">f</a><a id="7312" class="Symbol">)</a><a id="7313" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a> <a id="7316" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="7318" class="Symbol">((</a><a id="7320" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="7323" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="7326" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="7329" class="Symbol">)</a> <a id="7331" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7333" href="ElgotAlgebras.html#6448" class="Bound">f</a><a id="7334" class="Symbol">)</a><a id="7335" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="7338" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="7340" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="7343" href="Categories.Object.Product.Core.html#637" class="Function">project₂</a> <a id="7352" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="7365" class="Symbol">((</a><a id="7367" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="7370" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="7373" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="7376" class="Symbol">)</a> <a id="7378" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7380" href="ElgotAlgebras.html#6448" class="Bound">f</a><a id="7381" class="Symbol">)</a><a id="7382" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="7416" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="7419" href="ElgotAlgebras.html#8360" class="Function">#ᵇ-Uniformity</a>
|
|||
|
<a id="7446" class="Symbol">(</a><a id="7447" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
|||
|
<a id="7468" class="Symbol">(</a><a id="7469" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="7473" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="7476" href="ElgotAlgebras.html#6452" class="Bound">h</a><a id="7477" class="Symbol">)</a> <a id="7479" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7481" class="Symbol">(</a><a id="7482" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="7485" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="7488" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="7491" class="Symbol">)</a> <a id="7493" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7495" href="ElgotAlgebras.html#6448" class="Bound">f</a> <a id="7499" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="7502" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="7508" class="Symbol">(</a><a id="7509" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="7515" href="Categories.Category.Cocartesian.html#2699" class="Function">+₁∘+₁</a> <a id="7521" class="Symbol">(</a><a id="7522" href="Categories.Category.Cocartesian.html#2622" class="Function">+₁-cong₂</a> <a id="7531" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a> <a id="7543" href="Categories.Morphism.Reasoning.Core.html#1202" class="Function">id-comm</a><a id="7550" class="Symbol">))</a><a id="7552" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="7568" class="Symbol">((</a><a id="7570" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="7573" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7575" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="7579" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="7582" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="7586" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7588" href="ElgotAlgebras.html#6452" class="Bound">h</a><a id="7589" class="Symbol">)</a> <a id="7591" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7593" href="ElgotAlgebras.html#6448" class="Bound">f</a><a id="7594" class="Symbol">)</a> <a id="7599" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="7603" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="7609" href="Categories.Category.Cocartesian.html#2699" class="Function">+₁∘+₁</a> <a id="7615" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
|||
|
<a id="7631" class="Symbol">(</a><a id="7632" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="7635" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="7638" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="7641" class="Symbol">)</a> <a id="7643" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7645" class="Symbol">((</a><a id="7647" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="7651" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="7654" href="ElgotAlgebras.html#6452" class="Bound">h</a><a id="7655" class="Symbol">))</a> <a id="7658" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7660" href="ElgotAlgebras.html#6448" class="Bound">f</a> <a id="7662" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="7665" href="Categories.Morphism.Reasoning.Core.html#2347" class="Function">pushʳ</a> <a id="7671" href="ElgotAlgebras.html#6455" class="Bound">uni</a> <a id="7675" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="7691" class="Symbol">((</a><a id="7693" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="7696" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="7699" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="7702" class="Symbol">)</a> <a id="7704" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7706" href="ElgotAlgebras.html#6450" class="Bound">g</a><a id="7707" class="Symbol">)</a> <a id="7709" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7711" href="ElgotAlgebras.html#6452" class="Bound">h</a> <a id="7722" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a><a id="7723" class="Symbol">)</a><a id="7724" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="7736" class="Symbol">((</a><a id="7738" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="7741" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="7744" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="7747" class="Symbol">)</a> <a id="7749" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7751" href="ElgotAlgebras.html#6450" class="Bound">g</a><a id="7752" class="Symbol">)</a><a id="7753" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="7756" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7758" href="ElgotAlgebras.html#6452" class="Bound">h</a> <a id="7795" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="7799" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="7805" href="Categories.Object.Product.Core.html#637" class="Function">project₂</a> <a id="7814" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
|||
|
<a id="7826" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="7829" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7831" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="7833" class="Symbol">((</a><a id="7835" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="7838" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="7841" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="7844" class="Symbol">)</a> <a id="7846" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7848" href="ElgotAlgebras.html#6450" class="Bound">g</a><a id="7849" class="Symbol">)</a><a id="7850" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a> <a id="7853" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="7855" class="Symbol">((</a><a id="7857" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="7860" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="7863" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="7866" class="Symbol">)</a> <a id="7868" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7870" href="ElgotAlgebras.html#6450" class="Bound">g</a><a id="7871" class="Symbol">)</a><a id="7872" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="7875" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="7877" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7879" href="ElgotAlgebras.html#6452" class="Bound">h</a> <a id="7885" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a><a id="7886" class="Symbol">)</a>
|
|||
|
<a id="7894" class="Symbol">;</a> <a id="7896" href="ElgotAlgebra.html#2466" class="Field">#-Folding</a> <a id="7906" class="Symbol">=</a> <a id="7908" class="Symbol">λ</a> <a id="7910" class="Symbol">{</a><a id="7911" href="ElgotAlgebras.html#7911" class="Bound">X</a><a id="7912" class="Symbol">}</a> <a id="7914" class="Symbol">{</a><a id="7915" href="ElgotAlgebras.html#7915" class="Bound">Y</a><a id="7916" class="Symbol">}</a> <a id="7918" class="Symbol">{</a><a id="7919" href="ElgotAlgebras.html#7919" class="Bound">f</a><a id="7920" class="Symbol">}</a> <a id="7922" class="Symbol">{</a><a id="7923" href="ElgotAlgebras.html#7923" class="Bound">h</a><a id="7924" class="Symbol">}</a> <a id="7926" class="Symbol">→</a> <a id="7928" href="Categories.Object.Product.Core.html#854" class="Function">⟨⟩-cong₂</a> <a id="7937" class="Symbol">(</a><a id="7938" href="ElgotAlgebras.html#9191" class="Function">foldingˡ</a> <a id="7947" class="Symbol">{</a><a id="7948" href="ElgotAlgebras.html#7911" class="Bound">X</a><a id="7949" class="Symbol">}</a> <a id="7951" class="Symbol">{</a><a id="7952" href="ElgotAlgebras.html#7915" class="Bound">Y</a><a id="7953" class="Symbol">})</a> <a id="7956" class="Symbol">(</a><a id="7957" href="ElgotAlgebras.html#9803" class="Function">foldingʳ</a> <a id="7966" class="Symbol">{</a><a id="7967" href="ElgotAlgebras.html#7911" class="Bound">X</a><a id="7968" class="Symbol">}</a> <a id="7970" class="Symbol">{</a><a id="7971" href="ElgotAlgebras.html#7915" class="Bound">Y</a><a id="7972" class="Symbol">})</a>
|
|||
|
<a id="7981" class="Symbol">;</a> <a id="7983" href="ElgotAlgebra.html#2582" class="Field">#-resp-≈</a> <a id="7992" class="Symbol">=</a> <a id="7994" class="Symbol">λ</a> <a id="7996" href="ElgotAlgebras.html#7996" class="Bound">fg</a> <a id="7999" class="Symbol">→</a> <a id="8001" href="Categories.Object.Product.Core.html#854" class="Function">⟨⟩-cong₂</a> <a id="8010" class="Symbol">(</a><a id="8011" href="ElgotAlgebras.html#8242" class="Function">#ᵃ-resp-≈</a> <a id="8021" class="Symbol">(</a><a id="8022" href="Categories.Category.Core.html#1706" class="Function">∘-resp-≈ʳ</a> <a id="8032" href="ElgotAlgebras.html#7996" class="Bound">fg</a><a id="8034" class="Symbol">))</a> <a id="8037" class="Symbol">(</a><a id="8038" href="ElgotAlgebras.html#8412" class="Function">#ᵇ-resp-≈</a> <a id="8048" class="Symbol">(</a><a id="8049" href="Categories.Category.Core.html#1706" class="Function">∘-resp-≈ʳ</a> <a id="8059" href="ElgotAlgebras.html#7996" class="Bound">fg</a><a id="8061" class="Symbol">))</a>
|
|||
|
<a id="8071" class="Symbol">}</a>
|
|||
|
<a id="8077" class="Symbol">}</a>
|
|||
|
<a id="8083" class="Keyword">where</a>
|
|||
|
<a id="8094" class="Keyword">open</a> <a id="8099" href="ElgotAlgebra.html#6203" class="Module">Elgot-Algebra</a> <a id="8113" href="ElgotAlgebras.html#4483" class="Bound">EA</a> <a id="8116" class="Keyword">using</a> <a id="8122" class="Symbol">(</a><a id="8123" href="ElgotAlgebra.html#6257" class="Field">A</a><a id="8124" class="Symbol">)</a> <a id="8126" class="Keyword">renaming</a> <a id="8135" class="Symbol">(</a><a id="8136" href="ElgotAlgebra.html#2186" class="Function Operator">_#</a> <a id="8139" class="Symbol">to</a> <a id="8142" class="Function Operator">_#ᵃ</a><a id="8145" class="Symbol">;</a> <a id="8147" href="ElgotAlgebra.html#2259" class="Function">#-Fixpoint</a> <a id="8158" class="Symbol">to</a> <a id="8161" class="Function">#ᵃ-Fixpoint</a><a id="8172" class="Symbol">;</a> <a id="8174" href="ElgotAlgebra.html#2335" class="Function">#-Uniformity</a> <a id="8187" class="Symbol">to</a> <a id="8190" class="Function">#ᵃ-Uniformity</a><a id="8203" class="Symbol">;</a> <a id="8205" href="ElgotAlgebra.html#2466" class="Function">#-Folding</a> <a id="8215" class="Symbol">to</a> <a id="8218" class="Function">#ᵃ-Folding</a><a id="8228" class="Symbol">;</a> <a id="8230" href="ElgotAlgebra.html#2582" class="Function">#-resp-≈</a> <a id="8239" class="Symbol">to</a> <a id="8242" class="Function">#ᵃ-resp-≈</a><a id="8251" class="Symbol">)</a>
|
|||
|
<a id="8257" class="Keyword">open</a> <a id="8262" href="ElgotAlgebra.html#6203" class="Module">Elgot-Algebra</a> <a id="8276" href="ElgotAlgebras.html#4488" class="Bound">EB</a> <a id="8279" class="Keyword">using</a> <a id="8285" class="Symbol">()</a> <a id="8288" class="Keyword">renaming</a> <a id="8297" class="Symbol">(</a><a id="8298" href="ElgotAlgebra.html#6257" class="Field">A</a> <a id="8300" class="Symbol">to</a> <a id="8303" class="Field">B</a><a id="8304" class="Symbol">;</a> <a id="8306" href="ElgotAlgebra.html#2186" class="Function Operator">_#</a> <a id="8309" class="Symbol">to</a> <a id="8312" class="Function Operator">_#ᵇ</a><a id="8315" class="Symbol">;</a> <a id="8317" href="ElgotAlgebra.html#2259" class="Function">#-Fixpoint</a> <a id="8328" class="Symbol">to</a> <a id="8331" class="Function">#ᵇ-Fixpoint</a><a id="8342" class="Symbol">;</a> <a id="8344" href="ElgotAlgebra.html#2335" class="Function">#-Uniformity</a> <a id="8357" class="Symbol">to</a> <a id="8360" class="Function">#ᵇ-Uniformity</a><a id="8373" class="Symbol">;</a> <a id="8375" href="ElgotAlgebra.html#2466" class="Function">#-Folding</a> <a id="8385" class="Symbol">to</a> <a id="8388" class="Function">#ᵇ-Folding</a><a id="8398" class="Symbol">;</a> <a id="8400" href="ElgotAlgebra.html#2582" class="Function">#-resp-≈</a> <a id="8409" class="Symbol">to</a> <a id="8412" class="Function">#ᵇ-resp-≈</a><a id="8421" class="Symbol">)</a>
|
|||
|
<a id="8427" href="ElgotAlgebras.html#8427" class="Function">+₁-id-swap</a> <a id="8438" class="Symbol">:</a> <a id="8440" class="Symbol">∀</a> <a id="8442" class="Symbol">{</a><a id="8443" href="ElgotAlgebras.html#8443" class="Bound">X</a> <a id="8445" href="ElgotAlgebras.html#8445" class="Bound">Y</a> <a id="8447" href="ElgotAlgebras.html#8447" class="Bound">C</a><a id="8448" class="Symbol">}</a> <a id="8450" class="Symbol">{</a><a id="8451" href="ElgotAlgebras.html#8451" class="Bound">f</a> <a id="8453" class="Symbol">:</a> <a id="8455" href="ElgotAlgebras.html#8443" class="Bound">X</a> <a id="8457" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="8459" class="Symbol">(</a><a id="8460" href="ElgotAlgebra.html#6257" class="Function">A</a> <a id="8462" href="Categories.Category.BinaryProducts.html#1017" class="Function Operator">×</a> <a id="8464" href="ElgotAlgebras.html#8303" class="Field">B</a><a id="8465" class="Symbol">)</a> <a id="8467" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="8469" href="ElgotAlgebras.html#8443" class="Bound">X</a><a id="8470" class="Symbol">}</a> <a id="8472" class="Symbol">{</a><a id="8473" href="ElgotAlgebras.html#8473" class="Bound">h</a> <a id="8475" class="Symbol">:</a> <a id="8477" href="ElgotAlgebras.html#8445" class="Bound">Y</a> <a id="8479" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="8481" href="ElgotAlgebras.html#8443" class="Bound">X</a> <a id="8483" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="8485" href="ElgotAlgebras.html#8445" class="Bound">Y</a><a id="8486" class="Symbol">}</a> <a id="8488" class="Symbol">(</a><a id="8489" href="ElgotAlgebras.html#8489" class="Bound">π</a> <a id="8491" class="Symbol">:</a> <a id="8493" href="ElgotAlgebra.html#6257" class="Function">A</a> <a id="8495" href="Categories.Category.BinaryProducts.html#1017" class="Function Operator">×</a> <a id="8497" href="ElgotAlgebras.html#8303" class="Field">B</a> <a id="8499" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="8501" href="ElgotAlgebras.html#8447" class="Bound">C</a><a id="8502" class="Symbol">)</a> <a id="8504" class="Symbol">→</a> <a id="8506" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="8508" class="Symbol">(</a><a id="8509" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="8513" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8516" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="8518" class="Symbol">)</a> <a id="8520" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8522" class="Symbol">((</a><a id="8524" href="ElgotAlgebras.html#8489" class="Bound">π</a> <a id="8526" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8529" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="8532" class="Symbol">)</a> <a id="8534" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8536" href="ElgotAlgebras.html#8451" class="Bound">f</a><a id="8537" class="Symbol">)</a> <a id="8539" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="8541" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="8544" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8546" href="ElgotAlgebras.html#8473" class="Bound">h</a> <a id="8548" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="8550" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="8552" class="Symbol">(</a><a id="8553" href="ElgotAlgebras.html#8489" class="Bound">π</a> <a id="8555" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8558" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="8561" class="Symbol">)</a> <a id="8563" href="Catego
|
|||
|
<a id="8598" href="ElgotAlgebras.html#8427" class="Function">+₁-id-swap</a> <a id="8609" class="Symbol">{</a><a id="8610" href="ElgotAlgebras.html#8610" class="Bound">X</a><a id="8611" class="Symbol">}</a> <a id="8613" class="Symbol">{</a><a id="8614" href="ElgotAlgebras.html#8614" class="Bound">Y</a><a id="8615" class="Symbol">}</a> <a id="8617" class="Symbol">{</a><a id="8618" href="ElgotAlgebras.html#8618" class="Bound">C</a><a id="8619" class="Symbol">}</a> <a id="8621" class="Symbol">{</a><a id="8622" href="ElgotAlgebras.html#8622" class="Bound">f</a><a id="8623" class="Symbol">}</a> <a id="8625" class="Symbol">{</a><a id="8626" href="ElgotAlgebras.html#8626" class="Bound">h</a><a id="8627" class="Symbol">}</a> <a id="8629" href="ElgotAlgebras.html#8629" class="Bound">π</a> <a id="8631" class="Symbol">=</a> <a id="8633" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a> <a id="8639" class="Symbol">(</a><a id="8640" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="8642" class="Symbol">(</a><a id="8643" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="8647" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8650" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="8652" class="Symbol">)</a> <a id="8654" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8656" class="Symbol">((</a><a id="8658" href="ElgotAlgebras.html#8629" class="Bound">π</a> <a id="8660" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8663" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="8666" class="Symbol">)</a> <a id="8668" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8670" href="ElgotAlgebras.html#8622" class="Bound">f</a><a id="8671" class="Symbol">)</a> <a id="8673" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="8675" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="8678" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8680" href="ElgotAlgebras.html#8626" class="Bound">h</a> <a id="8682" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="8684" class="Symbol">)</a> <a id="8707" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="8710" class="Symbol">(</a><a id="8711" href="Categories.Category.Cocartesian.html#2271" class="Function">[]-congʳ</a> <a id="8720" href="Categories.Category.Core.html#1004" class="Function">sym-assoc</a><a id="8729" class="Symbol">)</a> <a id="8731" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="8740" class="Symbol">(</a><a id="8741" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="8743" class="Symbol">((</a><a id="8745" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="8749" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8752" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="8754" class="Symbol">)</a> <a id="8756" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8758" class="Symbol">(</a><a id="8759" href="ElgotAlgebras.html#8629" class="Bound">π</a> <a id="8761" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8764" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="8767" class="Symbol">))</a> <a id="8770" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8772" href="ElgotAlgebras.html#8622" class="Bound">f</a> <a id="8774" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="8776" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="8779" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8781" href="ElgotAlgebras.html#8626" class="Bound">h</a> <a id="8783" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="8785" class="Symbol">)</a> <a id="8808" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="8811" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="8820" class="Symbol">(</a><a id="8821" href="Categories.Category.Core.html#1597" class="Function">∘-resp-≈ˡ</a> <a id="8831" class="Symbol">(</a><a id="8832" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="8838" href="Categories.Category.Cocartesian.html#2699" class="Function">+₁∘+₁</a> <a id="8844" class="Symbol">(</a><a id="8845" href="Categories.Category.Cocartesian.html#2622" class="Function">+₁-cong₂</a> <a id="8854" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a> <a id="8866" href="Categories.Morphism.Reasoning.Core.html#1202" class="Function">id-comm</a><a id="8873" class="Symbol">)))</a> <a id="8877" class="Symbol">(</a><a id="8878" href="Categories.Category.Core.html#1597" class="Function">∘-resp-≈ˡ</a> <a id="8888" class="Symbol">(</a><a id="8889" href="Relation.Binary.Structures.html#1603" class="Function">sym</a> <a id="8893" href="Categories.Category.Core.html#1145" class="Function">identityʳ</a><a id="8902" class="Symbol">))</a> <a id="8905" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="8914" class="Symbol">((</a><a id="8916" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="8918" class="Symbol">(</a><a id="8919" href="ElgotAlgebras.html#8629" class="Bound">π</a> <a id="8921" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8923" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="8927" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8930" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="8934" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8936" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="8938" class="Symbol">)</a> <a id="8940" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8942" href="ElgotAlgebras.html#8622" class="Bound">f</a> <a id="8944" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="8947" class="Symbol">(</a><a id="8948" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="8951" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8953" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="8956" class="Symbol">)</a> <a id="8958" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8960" href="ElgotAlgebras.html#8626" class="Bound">h</a> <a id="8962" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="8963" class="Symbol">))</a> <a id="8982" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="8986" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="8995" class="Symbol">(</a><a id="8996" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="9002" href="Categories.Category.Cocartesian.html#2699" class="Function">+₁∘+₁</a><a id="9007" class="Symbol">)</a> <a id="9009" class="Symbol">(</a><a id="9010" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="9016" href="Categories.Category.Cocartesian.html#2585" class="Function">+₁∘i₂</a><a id="9021" class="Symbol">)</a> <a id="9023" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
|||
|
<a id="9032" class="Symbol">((</a><a id="9034" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="9036" class="Symbol">(</a><a id="9037" href="ElgotAlgebras.html#8629" class="Bound">π</a> <a id="9039" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9042" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="9045" class="Symbol">)</a> <a id="9047" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9049" class="Symbol">(</a><a id="9050" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="9054" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9057" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="9059" class="Symbol">)</a> <a id="9061" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9063" href="ElgotAlgebras.html#8622" class="Bound">f</a> <a id="9065" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="9067" class="Symbol">(</a><a id="9068" href="ElgotAlgebras.html#8629" class="Bound">π</a> <a id="9070" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9073" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="9076" class="Symbol">)</a> <a id="9078" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9080" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="9083" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9085" href="ElgotAlgebras.html#8626" class="Bound">h</a> <a id="9087" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="9088" class="Symbol">))</a> <a id="9100" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="9104" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a> <a id="9108" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
|||
|
<a id="9117" class="Symbol">((</a><a id="9119" href="ElgotAlgebras.html#8629" class="Bound">π</a> <a id="9121" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9124" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="9127" class="Symbol">)</a> <a id="9129" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9131" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="9133" class="Symbol">(</a><a id="9134" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="9138" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9141" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="9143" class="Symbol">)</a> <a id="9145" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9147" href="ElgotAlgebras.html#8622" class="Bound">f</a> <a id="9149" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="9151" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="9154" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9156" href="ElgotAlgebras.html#8626" class="Bound">h</a> <a id="9158" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="9159" class="Symbol">)</a> <a id="9185" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
|||
|
<a id="9191" href="ElgotAlgebras.html#9191" class="Function">foldingˡ</a> <a id="9200" class="Symbol">:</a> <a id="9202" class="Symbol">∀</a> <a id="9204" class="Symbol">{</a><a id="9205" href="ElgotAlgebras.html#9205" class="Bound">X</a><a id="9206" class="Symbol">}</a> <a id="9208" class="Symbol">{</a><a id="9209" href="ElgotAlgebras.html#9209" class="Bound">Y</a><a id="9210" class="Symbol">}</a> <a id="9212" class="Symbol">{</a><a id="9213" href="ElgotAlgebras.html#9213" class="Bound">f</a><a id="9214" class="Symbol">}</a> <a id="9216" class="Symbol">{</a><a id="9217" href="ElgotAlgebras.html#9217" class="Bound">h</a><a id="9218" class="Symbol">}</a> <a id="9220" class="Symbol">→</a> <a id="9222" class="Symbol">(((</a><a id="9225" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="9228" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9231" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="9234" class="Symbol">)</a> <a id="9236" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9238" class="Symbol">(</a><a id="9239" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="9241" class="Symbol">((</a><a id="9243" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="9246" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9249" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="9252" class="Symbol">)</a> <a id="9254" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9256" href="ElgotAlgebras.html#9213" class="Bound">f</a><a id="9257" class="Symbol">)</a><a id="9258" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a> <a id="9261" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="9263" class="Symbol">((</a><a id="9265" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="9268" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9271" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="9274" class="Symbol">)</a> <a id="9276" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9278" href="ElgotAlgebras.html#9213" class="Bound">f</a><a id="9279" class="Symbol">)</a><a id="9280" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="9283" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="9285" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9288" href="ElgotAlgebras.html#9217" class="Bound">h</a><a id="9289" class="Symbol">))</a><a id="9291" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a><a id="9293" class="Symbol">)</a> <a id="9295" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="9297" class="Symbol">((</a><a id="9299" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="9302" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9305" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="9308" class="Symbol">)</a> <a id="9310" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9312" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="9314" class="Symbol">(</a><a id="9315" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="9319" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9322" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="9324" class="Symbol">)</a> <a id="9326" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9328" href="ElgotAlgebras.html#9213" class="Bound">f</a> <a id="9330" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="9332" href="Categories.Object.Cop
|
|||
|
<a id="9348" href="ElgotAlgebras.html#9191" class="Function">foldingˡ</a> <a id="9357" class="Symbol">{</a><a id="9358" href="ElgotAlgebras.html#9358" class="Bound">X</a><a id="9359" class="Symbol">}</a> <a id="9361" class="Symbol">{</a><a id="9362" href="ElgotAlgebras.html#9362" class="Bound">Y</a><a id="9363" class="Symbol">}</a> <a id="9365" class="Symbol">{</a><a id="9366" href="ElgotAlgebras.html#9366" class="Bound">f</a><a id="9367" class="Symbol">}</a> <a id="9369" class="Symbol">{</a><a id="9370" href="ElgotAlgebras.html#9370" class="Bound">h</a><a id="9371" class="Symbol">}</a> <a id="9373" class="Symbol">=</a> <a id="9375" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
|||
|
<a id="9388" class="Symbol">((</a><a id="9390" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="9393" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9396" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="9399" class="Symbol">)</a> <a id="9401" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9403" class="Symbol">(</a><a id="9404" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="9406" class="Symbol">((</a><a id="9408" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="9411" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9414" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="9417" class="Symbol">)</a> <a id="9419" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9421" href="ElgotAlgebras.html#9366" class="Bound">f</a><a id="9422" class="Symbol">)</a><a id="9423" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a> <a id="9426" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="9428" class="Symbol">((</a><a id="9430" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="9433" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9436" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="9439" class="Symbol">)</a> <a id="9441" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9443" href="ElgotAlgebras.html#9366" class="Bound">f</a><a id="9444" class="Symbol">)</a><a id="9445" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="9448" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="9450" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9453" href="ElgotAlgebras.html#9370" class="Bound">h</a><a id="9454" class="Symbol">))</a><a id="9456" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a> <a id="9459" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="9462" href="ElgotAlgebras.html#8242" class="Function">#ᵃ-resp-≈</a> <a id="9472" class="Symbol">(</a><a id="9473" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="9479" href="Categories.Category.Cocartesian.html#2699" class="Function">+₁∘+₁</a> <a id="9485" class="Symbol">(</a><a id="9486" href="Categories.Category.Cocartesian.html#2622" class="Function">+₁-cong₂</a> <a id="9495" href="Categories.Object.Product.Core.html#603" class="Function">project₁</a> <a id="9504" href="Categories.Category.Core.html#1096" class="Function">identityˡ</a><a id="9513" class="Symbol">))</a> <a id="9516" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="9525" class="Symbol">((((</a><a id="9529" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="9532" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9535" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="9538" class="Symbol">)</a> <a id="9540" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9542" href="ElgotAlgebras.html#9366" class="Bound">f</a><a id="9543" class="Symbol">)</a><a id="9544" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a> <a id="9547" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9550" href="ElgotAlgebras.html#9370" class="Bound">h</a><a id="9551" class="Symbol">)</a><a id="9552" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a><a id="9554" class="Symbol">)</a> <a id="9596" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="9599" href="ElgotAlgebras.html#8218" class="Function">#ᵃ-Folding</a> <a id="9610" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="9619" class="Symbol">(</a><a id="9620" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="9622" class="Symbol">(</a><a id="9623" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="9627" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9630" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="9632" class="Symbol">)</a> <a id="9634" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9636" class="Symbol">((</a><a id="9638" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="9641" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9644" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="9647" class="Symbol">)</a> <a id="9649" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9651" href="ElgotAlgebras.html#9366" class="Bound">f</a><a id="9652" class="Symbol">)</a> <a id="9654" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="9656" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="9659" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9661" href="ElgotAlgebras.html#9370" class="Bound">h</a> <a id="9663" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="9665" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a><a id="9667" class="Symbol">)</a> <a id="9690" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="9693" href="ElgotAlgebras.html#8242" class="Function">#ᵃ-resp-≈</a> <a id="9703" class="Symbol">(</a><a id="9704" href="ElgotAlgebras.html#8427" class="Function">+₁-id-swap</a> <a id="9715" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a><a id="9717" class="Symbol">)</a><a id="9718" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="9726" class="Symbol">((</a><a id="9728" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="9731" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9734" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="9737" class="Symbol">)</a> <a id="9739" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9741" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="9743" class="Symbol">(</a><a id="9744" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="9748" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9751" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="9753" class="Symbol">)</a> <a id="9755" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9757" href="ElgotAlgebras.html#9366" class="Bound">f</a> <a id="9759" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="9761" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="9764" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9766" href="ElgotAlgebras.html#9370" class="Bound">h</a> <a id="9768" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="9769" class="Symbol">)</a><a id="9770" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a> <a id="9797" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
|||
|
<a id="9803" href="ElgotAlgebras.html#9803" class="Function">foldingʳ</a> <a id="9812" class="Symbol">:</a> <a id="9814" class="Symbol">∀</a> <a id="9816" class="Symbol">{</a><a id="9817" href="ElgotAlgebras.html#9817" class="Bound">X</a><a id="9818" class="Symbol">}</a> <a id="9820" class="Symbol">{</a><a id="9821" href="ElgotAlgebras.html#9821" class="Bound">Y</a><a id="9822" class="Symbol">}</a> <a id="9824" class="Symbol">{</a><a id="9825" href="ElgotAlgebras.html#9825" class="Bound">f</a><a id="9826" class="Symbol">}</a> <a id="9828" class="Symbol">{</a><a id="9829" href="ElgotAlgebras.html#9829" class="Bound">h</a><a id="9830" class="Symbol">}</a> <a id="9832" class="Symbol">→</a> <a id="9834" class="Symbol">((</a><a id="9836" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="9839" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9842" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="9845" class="Symbol">)</a> <a id="9847" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9849" class="Symbol">(</a><a id="9850" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="9852" class="Symbol">((</a><a id="9854" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="9857" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9860" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="9863" class="Symbol">)</a> <a id="9865" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9867" href="ElgotAlgebras.html#9825" class="Bound">f</a><a id="9868" class="Symbol">)</a><a id="9869" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a> <a id="9872" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="9874" class="Symbol">((</a><a id="9876" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="9879" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9882" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="9885" class="Symbol">)</a> <a id="9887" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9889" href="ElgotAlgebras.html#9825" class="Bound">f</a><a id="9890" class="Symbol">)</a><a id="9891" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="9894" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="9896" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9899" href="ElgotAlgebras.html#9829" class="Bound">h</a><a id="9900" class="Symbol">))</a><a id="9902" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="9905" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="9907" class="Symbol">((</a><a id="9909" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="9912" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9915" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="9918" class="Symbol">)</a> <a id="9920" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9922" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="9924" class="Symbol">(</a><a id="9925" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="9929" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9932" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="9934" class="Symbol">)</a> <a id="9936" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9938" href="ElgotAlgebras.html#9825" class="Bound">f</a> <a id="9940" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="9942" href="Categories.Object.Coproduct.html#512" class="Function">
|
|||
|
<a id="9958" href="ElgotAlgebras.html#9803" class="Function">foldingʳ</a> <a id="9967" class="Symbol">{</a><a id="9968" href="ElgotAlgebras.html#9968" class="Bound">X</a><a id="9969" class="Symbol">}</a> <a id="9971" class="Symbol">{</a><a id="9972" href="ElgotAlgebras.html#9972" class="Bound">Y</a><a id="9973" class="Symbol">}</a> <a id="9975" class="Symbol">{</a><a id="9976" href="ElgotAlgebras.html#9976" class="Bound">f</a><a id="9977" class="Symbol">}</a> <a id="9979" class="Symbol">{</a><a id="9980" href="ElgotAlgebras.html#9980" class="Bound">h</a><a id="9981" class="Symbol">}</a> <a id="9983" class="Symbol">=</a> <a id="9985" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
|||
|
<a id="9997" class="Symbol">((</a><a id="9999" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="10002" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="10005" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="10008" class="Symbol">)</a> <a id="10010" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10012" class="Symbol">(</a><a id="10013" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="10015" class="Symbol">((</a><a id="10017" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="10020" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="10023" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="10026" class="Symbol">)</a> <a id="10028" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10030" href="ElgotAlgebras.html#9976" class="Bound">f</a><a id="10031" class="Symbol">)</a><a id="10032" href="ElgotAlgebras.html#8142" class="Function Operator">#ᵃ</a> <a id="10035" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="10037" class="Symbol">((</a><a id="10039" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="10042" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="10045" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="10048" class="Symbol">)</a> <a id="10050" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10052" href="ElgotAlgebras.html#9976" class="Bound">f</a><a id="10053" class="Symbol">)</a><a id="10054" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="10057" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="10059" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="10062" href="ElgotAlgebras.html#9980" class="Bound">h</a><a id="10063" class="Symbol">))</a><a id="10065" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="10068" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="10071" href="ElgotAlgebras.html#8412" class="Function">#ᵇ-resp-≈</a> <a id="10081" class="Symbol">(</a><a id="10082" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="10088" href="Categories.Category.Cocartesian.html#2699" class="Function">+₁∘+₁</a> <a id="10094" class="Symbol">(</a><a id="10095" href="Categories.Category.Cocartesian.html#2622" class="Function">+₁-cong₂</a> <a id="10104" href="Categories.Object.Product.Core.html#637" class="Function">project₂</a> <a id="10113" href="Categories.Category.Core.html#1096" class="Function">identityˡ</a><a id="10122" class="Symbol">))</a> <a id="10125" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="10133" class="Symbol">((((</a><a id="10137" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="10140" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="10143" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="10146" class="Symbol">)</a> <a id="10148" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10150" href="ElgotAlgebras.html#9976" class="Bound">f</a><a id="10151" class="Symbol">)</a><a id="10152" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="10155" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="10158" href="ElgotAlgebras.html#9980" class="Bound">h</a><a id="10159" class="Symbol">)</a><a id="10160" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a><a id="10162" class="Symbol">)</a> <a id="10204" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="10207" href="ElgotAlgebras.html#8388" class="Function">#ᵇ-Folding</a> <a id="10218" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="10226" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="10228" class="Symbol">(</a><a id="10229" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="10233" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="10236" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="10238" class="Symbol">)</a> <a id="10240" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10242" class="Symbol">((</a><a id="10244" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="10247" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="10250" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="10253" class="Symbol">)</a> <a id="10255" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10257" href="ElgotAlgebras.html#9976" class="Bound">f</a><a id="10258" class="Symbol">)</a> <a id="10260" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="10262" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="10265" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10267" href="ElgotAlgebras.html#9980" class="Bound">h</a> <a id="10269" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="10271" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="10297" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="10300" href="ElgotAlgebras.html#8412" class="Function">#ᵇ-resp-≈</a> <a id="10310" class="Symbol">(</a><a id="10311" href="ElgotAlgebras.html#8427" class="Function">+₁-id-swap</a> <a id="10322" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a><a id="10324" class="Symbol">)</a> <a id="10326" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="10334" class="Symbol">((</a><a id="10336" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="10339" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="10342" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="10345" class="Symbol">)</a> <a id="10347" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10349" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="10351" class="Symbol">(</a><a id="10352" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="10356" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="10359" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="10361" class="Symbol">)</a> <a id="10363" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10365" href="ElgotAlgebras.html#9976" class="Bound">f</a> <a id="10367" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="10369" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="10372" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10374" href="ElgotAlgebras.html#9980" class="Bound">h</a> <a id="10376" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="10377" class="Symbol">)</a><a id="10378" href="ElgotAlgebras.html#8312" class="Function Operator">#ᵇ</a> <a id="10405" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
|||
|
|
|||
|
<a id="10410" href="ElgotAlgebras.html#10410" class="Function">Product-Elgot-Algebras</a> <a id="10433" class="Symbol">:</a> <a id="10435" class="Symbol">∀</a> <a id="10437" class="Symbol">(</a><a id="10438" href="ElgotAlgebras.html#10438" class="Bound">EA</a> <a id="10441" href="ElgotAlgebras.html#10441" class="Bound">EB</a> <a id="10444" class="Symbol">:</a> <a id="10446" href="ElgotAlgebra.html#6203" class="Record">Elgot-Algebra</a> <a id="10460" href="ElgotAlgebras.html#1150" class="Bound">D</a><a id="10461" class="Symbol">)</a> <a id="10463" class="Symbol">→</a> <a id="10465" href="Categories.Object.Product.Core.html#435" class="Record">Product</a> <a id="10473" href="ElgotAlgebras.html#1959" class="Function">Elgot-Algebras</a> <a id="10488" href="ElgotAlgebras.html#10438" class="Bound">EA</a> <a id="10491" href="ElgotAlgebras.html#10441" class="Bound">EB</a>
|
|||
|
<a id="10496" href="ElgotAlgebras.html#10410" class="Function">Product-Elgot-Algebras</a> <a id="10519" href="ElgotAlgebras.html#10519" class="Bound">EA</a> <a id="10522" href="ElgotAlgebras.html#10522" class="Bound">EB</a> <a id="10525" class="Symbol">=</a> <a id="10527" class="Keyword">record</a>
|
|||
|
<a id="10538" class="Symbol">{</a> <a id="10540" href="Categories.Object.Product.Core.html#510" class="Field">A×B</a> <a id="10544" class="Symbol">=</a> <a id="10546" href="ElgotAlgebras.html#4410" class="Function">A×B-Helper</a> <a id="10557" class="Symbol">{</a><a id="10558" href="ElgotAlgebras.html#10519" class="Bound">EA</a><a id="10560" class="Symbol">}</a> <a id="10562" class="Symbol">{</a><a id="10563" href="ElgotAlgebras.html#10522" class="Bound">EB</a><a id="10565" class="Symbol">}</a>
|
|||
|
<a id="10571" class="Symbol">;</a> <a id="10573" href="Categories.Object.Product.Core.html#526" class="Field">π₁</a> <a id="10576" class="Symbol">=</a> <a id="10578" class="Keyword">record</a> <a id="10585" class="Symbol">{</a> <a id="10587" href="ElgotAlgebras.html#1813" class="Field">h</a> <a id="10589" class="Symbol">=</a> <a id="10591" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="10594" class="Symbol">;</a> <a id="10596" href="ElgotAlgebras.html#1831" class="Field">preserves</a> <a id="10606" class="Symbol">=</a> <a id="10608" class="Symbol">λ</a> <a id="10610" class="Symbol">{</a><a id="10611" href="ElgotAlgebras.html#10611" class="Bound">X</a><a id="10612" class="Symbol">}</a> <a id="10614" class="Symbol">{</a><a id="10615" href="ElgotAlgebras.html#10615" class="Bound">f</a><a id="10616" class="Symbol">}</a> <a id="10618" class="Symbol">→</a> <a id="10620" href="Categories.Object.Product.Core.html#603" class="Function">project₁</a> <a id="10629" class="Symbol">}</a>
|
|||
|
<a id="10635" class="Symbol">;</a> <a id="10637" href="Categories.Object.Product.Core.html#546" class="Field">π₂</a> <a id="10640" class="Symbol">=</a> <a id="10642" class="Keyword">record</a> <a id="10649" class="Symbol">{</a> <a id="10651" href="ElgotAlgebras.html#1813" class="Field">h</a> <a id="10653" class="Symbol">=</a> <a id="10655" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="10658" class="Symbol">;</a> <a id="10660" href="ElgotAlgebras.html#1831" class="Field">preserves</a> <a id="10670" class="Symbol">=</a> <a id="10672" class="Symbol">λ</a> <a id="10674" class="Symbol">{</a><a id="10675" href="ElgotAlgebras.html#10675" class="Bound">X</a><a id="10676" class="Symbol">}</a> <a id="10678" class="Symbol">{</a><a id="10679" href="ElgotAlgebras.html#10679" class="Bound">f</a><a id="10680" class="Symbol">}</a> <a id="10682" class="Symbol">→</a> <a id="10684" href="Categories.Object.Product.Core.html#637" class="Function">project₂</a> <a id="10693" class="Symbol">}</a>
|
|||
|
<a id="10699" class="Symbol">;</a> <a id="10701" href="Categories.Object.Product.Core.html#566" class="Field Operator">⟨_,_⟩</a> <a id="10707" class="Symbol">=</a> <a id="10709" class="Symbol">λ</a> <a id="10711" class="Symbol">{</a><a id="10712" href="ElgotAlgebras.html#10712" class="Bound">E</a><a id="10713" class="Symbol">}</a> <a id="10715" href="ElgotAlgebras.html#10715" class="Bound">f</a> <a id="10717" href="ElgotAlgebras.html#10717" class="Bound">g</a> <a id="10719" class="Symbol">→</a> <a id="10721" class="Keyword">let</a>
|
|||
|
<a id="10732" class="Keyword">open</a> <a id="10737" href="ElgotAlgebras.html#1746" class="Module">Elgot-Algebra-Morphism</a> <a id="10760" href="ElgotAlgebras.html#10715" class="Bound">f</a> <a id="10762" class="Keyword">renaming</a> <a id="10771" class="Symbol">(</a><a id="10772" href="ElgotAlgebras.html#1813" class="Field">h</a> <a id="10774" class="Symbol">to</a> <a id="10777" class="Field">f′</a><a id="10779" class="Symbol">;</a> <a id="10781" href="ElgotAlgebras.html#1831" class="Field">preserves</a> <a id="10791" class="Symbol">to</a> <a id="10794" class="Field">preservesᶠ</a><a id="10804" class="Symbol">)</a>
|
|||
|
<a id="10812" class="Keyword">open</a> <a id="10817" href="ElgotAlgebras.html#1746" class="Module">Elgot-Algebra-Morphism</a> <a id="10840" href="ElgotAlgebras.html#10717" class="Bound">g</a> <a id="10842" class="Keyword">renaming</a> <a id="10851" class="Symbol">(</a><a id="10852" href="ElgotAlgebras.html#1813" class="Field">h</a> <a id="10854" class="Symbol">to</a> <a id="10857" class="Field">g′</a><a id="10859" class="Symbol">;</a> <a id="10861" href="ElgotAlgebras.html#1831" class="Field">preserves</a> <a id="10871" class="Symbol">to</a> <a id="10874" class="Field">preservesᵍ</a><a id="10884" class="Symbol">)</a>
|
|||
|
<a id="10892" class="Keyword">open</a> <a id="10897" href="ElgotAlgebra.html#6203" class="Module">Elgot-Algebra</a> <a id="10911" href="ElgotAlgebras.html#10712" class="Bound">E</a> <a id="10913" class="Keyword">renaming</a> <a id="10922" class="Symbol">(</a><a id="10923" href="ElgotAlgebra.html#2186" class="Function Operator">_#</a> <a id="10926" class="Symbol">to</a> <a id="10929" class="Function Operator">_#ᵉ</a><a id="10932" class="Symbol">)</a> <a id="10934" class="Keyword">in</a> <a id="10937" class="Keyword">record</a> <a id="10944" class="Symbol">{</a> <a id="10946" href="ElgotAlgebras.html#1813" class="Field">h</a> <a id="10948" class="Symbol">=</a> <a id="10950" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="10952" href="ElgotAlgebras.html#10777" class="Function">f′</a> <a id="10955" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="10957" href="ElgotAlgebras.html#10857" class="Field">g′</a> <a id="10960" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="10962" class="Symbol">;</a> <a id="10964" href="ElgotAlgebras.html#1831" class="Field">preserves</a> <a id="10974" class="Symbol">=</a> <a id="10976" class="Symbol">λ</a> <a id="10978" class="Symbol">{</a><a id="10979" href="ElgotAlgebras.html#10979" class="Bound">X</a><a id="10980" class="Symbol">}</a> <a id="10982" class="Symbol">{</a><a id="10983" href="ElgotAlgebras.html#10983" class="Bound">h</a><a id="10984" class="Symbol">}</a> <a id="10986" class="Symbol">→</a>
|
|||
|
<a id="10995" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
|||
|
<a id="11010" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="11012" href="ElgotAlgebras.html#10777" class="Function">f′</a> <a id="11015" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="11017" href="ElgotAlgebras.html#10857" class="Field">g′</a> <a id="11020" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="11022" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11024" class="Symbol">(</a><a id="11025" href="ElgotAlgebras.html#10983" class="Bound">h</a> <a id="11027" href="ElgotAlgebras.html#10929" class="Function Operator">#ᵉ</a><a id="11029" class="Symbol">)</a> <a id="11108" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="11111" href="Categories.Category.BinaryProducts.html#2939" class="Function">⟨⟩∘</a> <a id="11115" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="11126" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="11128" href="ElgotAlgebras.html#10777" class="Function">f′</a> <a id="11131" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11133" class="Symbol">(</a><a id="11134" href="ElgotAlgebras.html#10983" class="Bound">h</a> <a id="11136" href="ElgotAlgebras.html#10929" class="Function Operator">#ᵉ</a><a id="11138" class="Symbol">)</a> <a id="11140" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="11142" href="ElgotAlgebras.html#10857" class="Field">g′</a> <a id="11145" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11147" class="Symbol">(</a><a id="11148" href="ElgotAlgebras.html#10983" class="Bound">h</a> <a id="11150" href="ElgotAlgebras.html#10929" class="Function Operator">#ᵉ</a><a id="11152" class="Symbol">)</a> <a id="11154" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="11224" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="11227" href="Categories.Object.Product.Core.html#854" class="Function">⟨⟩-cong₂</a> <a id="11236" href="ElgotAlgebras.html#10794" class="Function">preservesᶠ</a> <a id="11247" href="ElgotAlgebras.html#10874" class="Field">preservesᵍ</a> <a id="11258" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="11268" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="11270" class="Symbol">((</a><a id="11272" href="ElgotAlgebras.html#10777" class="Function">f′</a> <a id="11275" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="11278" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="11281" class="Symbol">)</a> <a id="11283" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11285" href="ElgotAlgebras.html#10983" class="Bound">h</a><a id="11286" class="Symbol">)</a> <a id="11288" href="ElgotAlgebras.html#11914" class="Function Operator">#ᵃ</a> <a id="11291" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="11293" class="Symbol">((</a><a id="11295" href="ElgotAlgebras.html#10857" class="Field">g′</a> <a id="11298" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="11301" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="11304" class="Symbol">)</a> <a id="11306" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11308" href="ElgotAlgebras.html#10983" class="Bound">h</a><a id="11309" class="Symbol">)</a> <a id="11311" href="ElgotAlgebras.html#12084" class="Function Operator">#ᵇ</a> <a id="11314" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="11366" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="11370" href="Categories.Object.Product.Core.html#854" class="Function">⟨⟩-cong₂</a> <a id="11379" class="Symbol">(</a><a id="11380" href="ElgotAlgebras.html#12014" class="Function">#ᵃ-resp-≈</a> <a id="11390" class="Symbol">(</a><a id="11391" href="Categories.Category.Core.html#1597" class="Function">∘-resp-≈ˡ</a> <a id="11401" class="Symbol">(</a><a id="11402" href="Categories.Category.Cocartesian.html#2622" class="Function">+₁-cong₂</a> <a id="11411" href="Categories.Object.Product.Core.html#603" class="Function">project₁</a> <a id="11420" href="Categories.Category.Core.html#1339" class="Function">identity²</a><a id="11429" class="Symbol">)))</a> <a id="11433" class="Symbol">(</a><a id="11434" href="ElgotAlgebras.html#12184" class="Function">#ᵇ-resp-≈</a> <a id="11444" class="Symbol">(</a><a id="11445" href="Categories.Category.Core.html#1597" class="Function">∘-resp-≈ˡ</a> <a id="11455" class="Symbol">(</a><a id="11456" href="Categories.Category.Cocartesian.html#2622" class="Function">+₁-cong₂</a> <a id="11465" href="Categories.Object.Product.Core.html#637" class="Function">project₂</a> <a id="11474" href="Categories.Category.Core.html#1339" class="Function">identity²</a><a id="11483" class="Symbol">)))</a> <a id="11487" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
|||
|
<a id="11497" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="11499" class="Symbol">((</a><a id="11501" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="11504" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11506" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="11508" href="ElgotAlgebras.html#10777" class="Function">f′</a> <a id="11511" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="11513" href="ElgotAlgebras.html#10857" class="Field">g′</a> <a id="11516" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="11518" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="11521" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="11525" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11527" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="11530" class="Symbol">)</a> <a id="11532" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11534" href="ElgotAlgebras.html#10983" class="Bound">h</a><a id="11535" class="Symbol">)</a> <a id="11537" href="ElgotAlgebras.html#11914" class="Function Operator">#ᵃ</a> <a id="11540" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="11542" class="Symbol">((</a><a id="11544" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="11547" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11549" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="11551" href="ElgotAlgebras.html#10777" class="Function">f′</a> <a id="11554" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="11556" href="ElgotAlgebras.html#10857" class="Field">g′</a> <a id="11559" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="11561" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="11564" href="ElgotAlgebras.html#1260" class="Function">idC</a> <a id="11568" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11570" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="11573" class="Symbol">)</a> <a id="11575" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11577" href="ElgotAlgebras.html#10983" class="Bound">h</a><a id="11578" class="Symbol">)</a> <a id="11580" href="ElgotAlgebras.html#12084" class="Function Operator">#ᵇ</a> <a id="11583" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="11595" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="11599" href="Categories.Object.Product.Core.html#854" class="Function">⟨⟩-cong₂</a> <a id="11608" class="Symbol">(</a><a id="11609" href="ElgotAlgebras.html#12014" class="Function">#ᵃ-resp-≈</a> <a id="11619" class="Symbol">(</a><a id="11620" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="11626" href="Categories.Category.Cocartesian.html#2699" class="Function">+₁∘+₁</a><a id="11631" class="Symbol">))</a> <a id="11634" class="Symbol">(</a><a id="11635" href="ElgotAlgebras.html#12184" class="Function">#ᵇ-resp-≈</a> <a id="11645" class="Symbol">(</a><a id="11646" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="11652" href="Categories.Category.Cocartesian.html#2699" class="Function">+₁∘+₁</a><a id="11657" class="Symbol">))</a> <a id="11660" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
|||
|
<a id="11670" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="11672" class="Symbol">((</a><a id="11674" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="11677" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="11680" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="11683" class="Symbol">)</a> <a id="11685" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11687" class="Symbol">(</a><a id="11688" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="11690" href="ElgotAlgebras.html#10777" class="Function">f′</a> <a id="11693" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="11695" href="ElgotAlgebras.html#10857" class="Field">g′</a> <a id="11698" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="11700" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="11703" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="11706" class="Symbol">)</a> <a id="11708" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11710" href="ElgotAlgebras.html#10983" class="Bound">h</a><a id="11711" class="Symbol">)</a> <a id="11713" href="ElgotAlgebras.html#11914" class="Function Operator">#ᵃ</a> <a id="11716" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="11718" class="Symbol">((</a><a id="11720" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="11723" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="11726" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="11729" class="Symbol">)</a> <a id="11731" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11733" class="Symbol">(</a><a id="11734" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="11736" href="ElgotAlgebras.html#10777" class="Function">f′</a> <a id="11739" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="11741" href="ElgotAlgebras.html#10857" class="Field">g′</a> <a id="11744" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="11746" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="11749" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="11752" class="Symbol">)</a> <a id="11754" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11756" href="ElgotAlgebras.html#10983" class="Bound">h</a><a id="11757" class="Symbol">)</a> <a id="11759" href="ElgotAlgebras.html#12084" class="Function Operator">#ᵇ</a> <a id="11762" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="11768" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a> <a id="11770" class="Symbol">}</a>
|
|||
|
<a id="11776" class="Symbol">;</a> <a id="11778" href="Categories.Object.Product.Core.html#603" class="Field">project₁</a> <a id="11787" class="Symbol">=</a> <a id="11789" href="Categories.Object.Product.Core.html#603" class="Function">project₁</a>
|
|||
|
<a id="11802" class="Symbol">;</a> <a id="11804" href="Categories.Object.Product.Core.html#637" class="Field">project₂</a> <a id="11813" class="Symbol">=</a> <a id="11815" href="Categories.Object.Product.Core.html#637" class="Function">project₂</a>
|
|||
|
<a id="11828" class="Symbol">;</a> <a id="11830" href="Categories.Object.Product.Core.html#671" class="Field">unique</a> <a id="11837" class="Symbol">=</a> <a id="11839" href="Categories.Object.Product.Core.html#671" class="Function">unique</a>
|
|||
|
<a id="11850" class="Symbol">}</a>
|
|||
|
<a id="11856" class="Keyword">where</a>
|
|||
|
<a id="11866" class="Keyword">open</a> <a id="11871" href="ElgotAlgebra.html#6203" class="Module">Elgot-Algebra</a> <a id="11885" href="ElgotAlgebras.html#10519" class="Bound">EA</a> <a id="11888" class="Keyword">using</a> <a id="11894" class="Symbol">(</a><a id="11895" href="ElgotAlgebra.html#6257" class="Field">A</a><a id="11896" class="Symbol">)</a> <a id="11898" class="Keyword">renaming</a> <a id="11907" class="Symbol">(</a><a id="11908" href="ElgotAlgebra.html#2186" class="Function Operator">_#</a> <a id="11911" class="Symbol">to</a> <a id="11914" class="Function Operator">_#ᵃ</a><a id="11917" class="Symbol">;</a> <a id="11919" href="ElgotAlgebra.html#2259" class="Function">#-Fixpoint</a> <a id="11930" class="Symbol">to</a> <a id="11933" class="Function">#ᵃ-Fixpoint</a><a id="11944" class="Symbol">;</a> <a id="11946" href="ElgotAlgebra.html#2335" class="Function">#-Uniformity</a> <a id="11959" class="Symbol">to</a> <a id="11962" class="Function">#ᵃ-Uniformity</a><a id="11975" class="Symbol">;</a> <a id="11977" href="ElgotAlgebra.html#2466" class="Function">#-Folding</a> <a id="11987" class="Symbol">to</a> <a id="11990" class="Function">#ᵃ-Folding</a><a id="12000" class="Symbol">;</a> <a id="12002" href="ElgotAlgebra.html#2582" class="Function">#-resp-≈</a> <a id="12011" class="Symbol">to</a> <a id="12014" class="Function">#ᵃ-resp-≈</a><a id="12023" class="Symbol">)</a>
|
|||
|
<a id="12029" class="Keyword">open</a> <a id="12034" href="ElgotAlgebra.html#6203" class="Module">Elgot-Algebra</a> <a id="12048" href="ElgotAlgebras.html#10522" class="Bound">EB</a> <a id="12051" class="Keyword">using</a> <a id="12057" class="Symbol">()</a> <a id="12060" class="Keyword">renaming</a> <a id="12069" class="Symbol">(</a><a id="12070" href="ElgotAlgebra.html#6257" class="Field">A</a> <a id="12072" class="Symbol">to</a> <a id="12075" class="Field">B</a><a id="12076" class="Symbol">;</a> <a id="12078" href="ElgotAlgebra.html#2186" class="Function Operator">_#</a> <a id="12081" class="Symbol">to</a> <a id="12084" class="Function Operator">_#ᵇ</a><a id="12087" class="Symbol">;</a> <a id="12089" href="ElgotAlgebra.html#2259" class="Function">#-Fixpoint</a> <a id="12100" class="Symbol">to</a> <a id="12103" class="Function">#ᵇ-Fixpoint</a><a id="12114" class="Symbol">;</a> <a id="12116" href="ElgotAlgebra.html#2335" class="Function">#-Uniformity</a> <a id="12129" class="Symbol">to</a> <a id="12132" class="Function">#ᵇ-Uniformity</a><a id="12145" class="Symbol">;</a> <a id="12147" href="ElgotAlgebra.html#2466" class="Function">#-Folding</a> <a id="12157" class="Symbol">to</a> <a id="12160" class="Function">#ᵇ-Folding</a><a id="12170" class="Symbol">;</a> <a id="12172" href="ElgotAlgebra.html#2582" class="Function">#-resp-≈</a> <a id="12181" class="Symbol">to</a> <a id="12184" class="Function">#ᵇ-resp-≈</a><a id="12193" class="Symbol">)</a>
|
|||
|
<a id="12199" class="Keyword">open</a> <a id="12204" href="ElgotAlgebra.html#6203" class="Module">Elgot-Algebra</a> <a id="12218" class="Symbol">(</a><a id="12219" href="ElgotAlgebras.html#4410" class="Function">A×B-Helper</a> <a id="12230" class="Symbol">{</a><a id="12231" href="ElgotAlgebras.html#10519" class="Bound">EA</a><a id="12233" class="Symbol">}</a> <a id="12235" class="Symbol">{</a><a id="12236" href="ElgotAlgebras.html#10522" class="Bound">EB</a><a id="12238" class="Symbol">})</a> <a id="12241" class="Keyword">using</a> <a id="12247" class="Symbol">()</a> <a id="12250" class="Keyword">renaming</a> <a id="12259" class="Symbol">(</a><a id="12260" href="ElgotAlgebra.html#2186" class="Function Operator">_#</a> <a id="12263" class="Symbol">to</a> <a id="12266" class="Function Operator">_#ᵖ</a><a id="12269" class="Symbol">)</a>
|
|||
|
|
|||
|
|
|||
|
<a id="12276" class="Comment">-- if the carrier is cartesian, so is the category of algebras</a>
|
|||
|
<a id="12341" href="ElgotAlgebras.html#12341" class="Function">Cartesian-Elgot-Algebras</a> <a id="12366" class="Symbol">:</a> <a id="12368" href="Categories.Category.Cartesian.html#727" class="Record">Cartesian</a> <a id="12378" href="ElgotAlgebras.html#1959" class="Function">Elgot-Algebras</a>
|
|||
|
<a id="12395" href="ElgotAlgebras.html#12341" class="Function">Cartesian-Elgot-Algebras</a> <a id="12420" class="Symbol">=</a> <a id="12422" class="Keyword">record</a>
|
|||
|
<a id="12434" class="Symbol">{</a> <a id="12436" href="Categories.Category.Cartesian.html#777" class="Field">terminal</a> <a id="12445" class="Symbol">=</a> <a id="12447" href="ElgotAlgebras.html#3705" class="Function">Terminal-Elgot-Algebras</a> <a id="12471" href="Categories.Category.Cartesian.html#777" class="Function">terminal</a>
|
|||
|
<a id="12484" class="Symbol">;</a> <a id="12486" href="Categories.Category.Cartesian.html#801" class="Field">products</a> <a id="12495" class="Symbol">=</a> <a id="12497" class="Keyword">record</a> <a id="12504" class="Symbol">{</a> <a id="12506" href="Categories.Category.BinaryProducts.html#916" class="Field">product</a> <a id="12514" class="Symbol">=</a> <a id="12516" class="Symbol">λ</a> <a id="12518" class="Symbol">{</a><a id="12519" href="ElgotAlgebras.html#12519" class="Bound">EA</a> <a id="12522" href="ElgotAlgebras.html#12522" class="Bound">EB</a><a id="12524" class="Symbol">}</a> <a id="12526" class="Symbol">→</a> <a id="12528" href="ElgotAlgebras.html#10410" class="Function">Product-Elgot-Algebras</a> <a id="12551" href="ElgotAlgebras.html#12519" class="Bound">EA</a> <a id="12554" href="ElgotAlgebras.html#12522" class="Bound">EB</a> <a id="12557" class="Symbol">}</a>
|
|||
|
<a id="12563" class="Symbol">}</a>
|
|||
|
</pre>
|
|||
|
<p><em>Lemma 11</em>: Exponentials of elgot algebras</p>
|
|||
|
<pre class="Agda"> <a id="12624" class="Comment">-- if the carriers of the algebra form a exponential, so do the algebras</a>
|
|||
|
<a id="12699" href="ElgotAlgebras.html#12699" class="Function">B^A-Helper</a> <a id="12710" class="Symbol">:</a> <a id="12712" class="Symbol">∀</a> <a id="12714" class="Symbol">{</a><a id="12715" href="ElgotAlgebras.html#12715" class="Bound">EA</a> <a id="12718" class="Symbol">:</a> <a id="12720" href="ElgotAlgebra.html#6203" class="Record">Elgot-Algebra</a> <a id="12734" href="ElgotAlgebras.html#1150" class="Bound">D</a><a id="12735" class="Symbol">}</a> <a id="12737" class="Symbol">{</a><a id="12738" href="ElgotAlgebras.html#12738" class="Bound">X</a> <a id="12740" class="Symbol">:</a> <a id="12742" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="12745" class="Symbol">}</a> <a id="12747" class="Symbol">→</a> <a id="12749" href="Categories.Object.Exponential.html#583" class="Record">Exponential</a> <a id="12761" href="ElgotAlgebras.html#1251" class="Field">C</a> <a id="12763" href="ElgotAlgebras.html#12738" class="Bound">X</a> <a id="12765" class="Symbol">(</a><a id="12766" href="ElgotAlgebra.html#6257" class="Field">Elgot-Algebra.A</a> <a id="12782" href="ElgotAlgebras.html#12715" class="Bound">EA</a><a id="12784" class="Symbol">)</a> <a id="12786" class="Symbol">→</a> <a id="12788" href="ElgotAlgebra.html#6203" class="Record">Elgot-Algebra</a> <a id="12802" href="ElgotAlgebras.html#1150" class="Bound">D</a>
|
|||
|
<a id="12806" href="ElgotAlgebras.html#12699" class="Function">B^A-Helper</a> <a id="12817" class="Symbol">{</a><a id="12818" href="ElgotAlgebras.html#12818" class="Bound">EA</a><a id="12820" class="Symbol">}</a> <a id="12822" class="Symbol">{</a><a id="12823" href="ElgotAlgebras.html#12823" class="Bound">X</a><a id="12824" class="Symbol">}</a> <a id="12826" href="ElgotAlgebras.html#12826" class="Bound">exp</a> <a id="12830" class="Symbol">=</a> <a id="12832" class="Keyword">record</a>
|
|||
|
<a id="12843" class="Symbol">{</a> <a id="12845" href="ElgotAlgebra.html#6257" class="Field">A</a> <a id="12847" class="Symbol">=</a> <a id="12849" href="ElgotAlgebras.html#13199" class="Field">A^X</a>
|
|||
|
<a id="12857" class="Symbol">;</a> <a id="12859" href="ElgotAlgebra.html#6271" class="Field">algebra</a> <a id="12867" class="Symbol">=</a> <a id="12869" class="Keyword">record</a>
|
|||
|
<a id="12882" class="Symbol">{</a> <a id="12884" href="ElgotAlgebra.html#2186" class="Field Operator">_#</a> <a id="12887" class="Symbol">=</a> <a id="12889" class="Symbol">λ</a> <a id="12891" class="Symbol">{</a><a id="12892" href="ElgotAlgebras.html#12892" class="Bound">Z</a><a id="12893" class="Symbol">}</a> <a id="12895" href="ElgotAlgebras.html#12895" class="Bound">f</a> <a id="12897" class="Symbol">→</a> <a id="12899" href="Categories.Object.Exponential.html#792" class="Field">λg</a> <a id="12902" href="Categories.Category.BinaryProducts.html#916" class="Function">product</a> <a id="12910" class="Symbol">(((((</a><a id="12915" href="Categories.Object.Exponential.html#767" class="Field">eval</a> <a id="12920" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="12923" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="12926" class="Symbol">)</a> <a id="12928" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="12930" class="Symbol">(</a><a id="12931" href="Categories.Object.Product.Core.html#2078" class="Function">Categories.Object.Product.repack</a> <a id="12964" href="ElgotAlgebras.html#1251" class="Field">C</a> <a id="12966" href="Categories.Category.BinaryProducts.html#916" class="Function">product</a> <a id="12974" href="ElgotAlgebras.html#13215" class="Field">product'</a> <a id="12983" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="12986" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="12989" class="Symbol">))</a> <a id="12992" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="12994" href="ElgotAlgebras.html#13446" class="Function">dstl</a><a id="12998" class="Symbol">)</a> <a id="13000" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="13002" class="Symbol">(</a><a id="13003" href="ElgotAlgebras.html#12895" class="Bound">f</a> <a id="13005" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator">⁂</a> <a id="13007" href="ElgotAlgebras.html#1260" class="Function">idC</a><a id="13010" class="Symbol">))</a> <a id="13013" href="ElgotAlgebras.html#13277" class="Function Operator">#ᵃ</a><a id="13015" class="Symbol">)</a>
|
|||
|
<a id="13024" class="Symbol">;</a> <a id="13026" href="ElgotAlgebra.html#2259" class="Field">#-Fixpoint</a> <a id="13037" class="Symbol">=</a> <a id="13039" class="Hole">{! !}</a>
|
|||
|
<a id="13053" class="Symbol">;</a> <a id="13055" href="ElgotAlgebra.html#2335" class="Field">#-Uniformity</a> <a id="13068" class="Symbol">=</a> <a id="13070" class="Hole">{! !}</a>
|
|||
|
<a id="13084" class="Symbol">;</a> <a id="13086" href="ElgotAlgebra.html#2466" class="Field">#-Folding</a> <a id="13096" class="Symbol">=</a> <a id="13098" class="Hole">{! !}</a>
|
|||
|
<a id="13112" class="Symbol">;</a> <a id="13114" href="ElgotAlgebra.html#2582" class="Field">#-resp-≈</a> <a id="13123" class="Symbol">=</a> <a id="13125" class="Hole">{! !}</a>
|
|||
|
<a id="13139" class="Symbol">}</a>
|
|||
|
<a id="13145" class="Symbol">}</a>
|
|||
|
<a id="13151" class="Keyword">where</a>
|
|||
|
<a id="13161" class="Keyword">open</a> <a id="13166" href="Categories.Object.Exponential.html#583" class="Module">Exponential</a> <a id="13178" href="ElgotAlgebras.html#12826" class="Bound">exp</a> <a id="13182" class="Keyword">renaming</a> <a id="13191" class="Symbol">(</a><a id="13192" href="Categories.Object.Exponential.html#643" class="Field">B^A</a> <a id="13196" class="Symbol">to</a> <a id="13199" class="Field">A^X</a><a id="13202" class="Symbol">;</a> <a id="13204" href="Categories.Object.Exponential.html#657" class="Field">product</a> <a id="13212" class="Symbol">to</a> <a id="13215" class="Field">product'</a><a id="13223" class="Symbol">)</a>
|
|||
|
<a id="13229" class="Keyword">open</a> <a id="13234" href="ElgotAlgebra.html#6203" class="Module">Elgot-Algebra</a> <a id="13248" href="ElgotAlgebras.html#12818" class="Bound">EA</a> <a id="13251" class="Keyword">using</a> <a id="13257" class="Symbol">(</a><a id="13258" href="ElgotAlgebra.html#6257" class="Field">A</a><a id="13259" class="Symbol">)</a> <a id="13261" class="Keyword">renaming</a> <a id="13270" class="Symbol">(</a><a id="13271" href="ElgotAlgebra.html#2186" class="Function Operator">_#</a> <a id="13274" class="Symbol">to</a> <a id="13277" class="Function Operator">_#ᵃ</a><a id="13280" class="Symbol">;</a> <a id="13282" href="ElgotAlgebra.html#2259" class="Function">#-Fixpoint</a> <a id="13293" class="Symbol">to</a> <a id="13296" class="Function">#ᵃ-Fixpoint</a><a id="13307" class="Symbol">;</a> <a id="13309" href="ElgotAlgebra.html#2335" class="Function">#-Uniformity</a> <a id="13322" class="Symbol">to</a> <a id="13325" class="Function">#ᵃ-Uniformity</a><a id="13338" class="Symbol">;</a> <a id="13340" href="ElgotAlgebra.html#2466" class="Function">#-Folding</a> <a id="13350" class="Symbol">to</a> <a id="13353" class="Function">#ᵃ-Folding</a><a id="13363" class="Symbol">;</a> <a id="13365" href="ElgotAlgebra.html#2582" class="Function">#-resp-≈</a> <a id="13374" class="Symbol">to</a> <a id="13377" class="Function">#ᵃ-resp-≈</a><a id="13386" class="Symbol">)</a>
|
|||
|
<a id="13392" href="ElgotAlgebras.html#13392" class="Function">dstr</a> <a id="13397" class="Symbol">=</a> <a id="13399" class="Symbol">λ</a> <a id="13401" class="Symbol">{</a><a id="13402" href="ElgotAlgebras.html#13402" class="Bound">X</a> <a id="13404" href="ElgotAlgebras.html#13404" class="Bound">Y</a> <a id="13406" href="ElgotAlgebras.html#13406" class="Bound">Z</a><a id="13407" class="Symbol">}</a> <a id="13409" class="Symbol">→</a> <a id="13411" href="Categories.Morphism.html#1879" class="Field">IsIso.inv</a> <a id="13421" class="Symbol">(</a><a id="13422" href="Categories.Category.Distributive.html#1016" class="Function">isIsoˡ</a> <a id="13429" class="Symbol">{</a><a id="13430" href="ElgotAlgebras.html#13402" class="Bound">X</a><a id="13431" class="Symbol">}</a> <a id="13433" class="Symbol">{</a><a id="13434" href="ElgotAlgebras.html#13404" class="Bound">Y</a><a id="13435" class="Symbol">}</a> <a id="13437" class="Symbol">{</a><a id="13438" href="ElgotAlgebras.html#13406" class="Bound">Z</a><a id="13439" class="Symbol">})</a>
|
|||
|
<a id="13446" href="ElgotAlgebras.html#13446" class="Function">dstl</a> <a id="13451" class="Symbol">=</a> <a id="13453" class="Symbol">λ</a> <a id="13455" class="Symbol">{</a><a id="13456" href="ElgotAlgebras.html#13456" class="Bound">X</a> <a id="13458" href="ElgotAlgebras.html#13458" class="Bound">Y</a> <a id="13460" href="ElgotAlgebras.html#13460" class="Bound">Z</a><a id="13461" class="Symbol">}</a> <a id="13463" class="Symbol">→</a> <a id="13465" href="Categories.Morphism.html#1879" class="Field">IsIso.inv</a> <a id="13475" class="Symbol">(</a><a id="13476" href="Categories.Category.Distributive.html#1255" class="Function">isIsoʳ</a> <a id="13483" class="Symbol">{</a><a id="13484" href="ElgotAlgebras.html#13456" class="Bound">X</a><a id="13485" class="Symbol">}</a> <a id="13487" class="Symbol">{</a><a id="13488" href="ElgotAlgebras.html#13458" class="Bound">Y</a><a id="13489" class="Symbol">}</a> <a id="13491" class="Symbol">{</a><a id="13492" href="ElgotAlgebras.html#13460" class="Bound">Z</a><a id="13493" class="Symbol">})</a>
|
|||
|
</pre>
|
|||
|
</body>
|
|||
|
</html>
|