bsc-leon-vatthauer/public/Categories.Category.Distributive.html

67 lines
42 KiB
HTML
Raw Normal View History

2023-08-19 16:11:22 +02:00
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Categories.Category.Distributive</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Symbol">{-#</a> <a id="5" class="Keyword">OPTIONS</a> <a id="13" class="Pragma">--without-K</a> <a id="25" class="Pragma">--safe</a> <a id="32" class="Symbol">#-}</a>
<a id="37" class="Keyword">open</a> <a id="42" class="Keyword">import</a> <a id="49" href="Level.html" class="Module">Level</a>
<a id="55" class="Keyword">open</a> <a id="60" class="Keyword">import</a> <a id="67" href="Categories.Category.Core.html" class="Module">Categories.Category.Core</a>
<a id="92" class="Keyword">open</a> <a id="97" class="Keyword">import</a> <a id="104" href="Categories.Category.Cartesian.html" class="Module">Categories.Category.Cartesian</a> <a id="134" class="Keyword">using</a> <a id="140" class="Symbol">(</a><a id="141" href="Categories.Category.Cartesian.html#727" class="Record">Cartesian</a><a id="150" class="Symbol">)</a>
<a id="152" class="Keyword">open</a> <a id="157" class="Keyword">import</a> <a id="164" href="Categories.Category.BinaryProducts.html" class="Module">Categories.Category.BinaryProducts</a> <a id="199" class="Keyword">using</a> <a id="205" class="Symbol">(</a><a id="206" href="Categories.Category.BinaryProducts.html#812" class="Record">BinaryProducts</a><a id="220" class="Symbol">)</a>
<a id="222" class="Keyword">open</a> <a id="227" class="Keyword">import</a> <a id="234" href="Categories.Category.Cocartesian.html" class="Module">Categories.Category.Cocartesian</a> <a id="266" class="Keyword">using</a> <a id="272" class="Symbol">(</a><a id="273" href="Categories.Category.Cocartesian.html#3385" class="Record">Cocartesian</a><a id="284" class="Symbol">)</a>
<a id="286" class="Keyword">import</a> <a id="293" href="Categories.Morphism.html" class="Module">Categories.Morphism</a> <a id="313" class="Symbol">as</a> <a id="316" class="Module">M</a>
<a id="318" class="Keyword">import</a> <a id="325" href="Categories.Morphism.Reasoning.html" class="Module">Categories.Morphism.Reasoning</a> <a id="355" class="Symbol">as</a> <a id="358" class="Module">MR</a>
<a id="362" class="Comment">-- A distributive category is a cartesian, cocartesian category</a>
<a id="426" class="Comment">-- where the canonical distributivity morphism is an iso</a>
<a id="483" class="Comment">-- https://ncatlab.org/nlab/show/distributive+category</a>
<a id="539" class="Keyword">module</a> <a id="546" href="Categories.Category.Distributive.html" class="Module">Categories.Category.Distributive</a> <a id="579" class="Symbol">{</a><a id="580" href="Categories.Category.Distributive.html#580" class="Bound">o</a> <a id="582" href="Categories.Category.Distributive.html#582" class="Bound"></a> <a id="584" href="Categories.Category.Distributive.html#584" class="Bound">e</a><a id="585" class="Symbol">}</a> <a id="587" class="Symbol">(</a><a id="588" href="Categories.Category.Distributive.html#588" class="Bound">𝒞</a> <a id="590" class="Symbol">:</a> <a id="592" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="601" href="Categories.Category.Distributive.html#580" class="Bound">o</a> <a id="603" href="Categories.Category.Distributive.html#582" class="Bound"></a> <a id="605" href="Categories.Category.Distributive.html#584" class="Bound">e</a><a id="606" class="Symbol">)</a> <a id="608" class="Keyword">where</a>
<a id="614" class="Keyword">open</a> <a id="619" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="628" href="Categories.Category.Distributive.html#588" class="Bound">𝒞</a>
<a id="630" class="Keyword">open</a> <a id="635" href="Categories.Morphism.html" class="Module">M</a> <a id="637" href="Categories.Category.Distributive.html#588" class="Bound">𝒞</a>
<a id="639" class="Keyword">open</a> <a id="644" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="647" href="Categories.Category.Distributive.html#588" class="Bound">𝒞</a>
<a id="649" class="Keyword">open</a> <a id="654" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
<a id="667" class="Keyword">open</a> <a id="672" href="Categories.Category.Core.html#1530" class="Module">Equiv</a>
<a id="679" class="Keyword">record</a> <a id="Distributive"></a><a id="686" href="Categories.Category.Distributive.html#686" class="Record">Distributive</a> <a id="699" class="Symbol">:</a> <a id="701" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="705" class="Symbol">(</a><a id="706" href="Level.html#602" class="Function">levelOfTerm</a> <a id="718" href="Categories.Category.Distributive.html#588" class="Bound">𝒞</a><a id="719" class="Symbol">)</a> <a id="721" class="Keyword">where</a>
<a id="729" class="Keyword">field</a>
<a id="Distributive.cartesian"></a><a id="739" href="Categories.Category.Distributive.html#739" class="Field">cartesian</a> <a id="749" class="Symbol">:</a> <a id="751" href="Categories.Category.Cartesian.html#727" class="Record">Cartesian</a> <a id="761" href="Categories.Category.Distributive.html#588" class="Bound">𝒞</a>
<a id="Distributive.cocartesian"></a><a id="767" href="Categories.Category.Distributive.html#767" class="Field">cocartesian</a> <a id="779" class="Symbol">:</a> <a id="781" href="Categories.Category.Cocartesian.html#3385" class="Record">Cocartesian</a> <a id="793" href="Categories.Category.Distributive.html#588" class="Bound">𝒞</a>
<a id="798" class="Keyword">open</a> <a id="803" href="Categories.Category.Cartesian.html#727" class="Module">Cartesian</a> <a id="813" href="Categories.Category.Distributive.html#739" class="Field">cartesian</a> <a id="823" class="Keyword">using</a> <a id="829" class="Symbol">(</a><a id="830" href="Categories.Category.Cartesian.html#801" class="Field">products</a><a id="838" class="Symbol">)</a>
<a id="842" class="Keyword">open</a> <a id="847" href="Categories.Category.BinaryProducts.html#812" class="Module">BinaryProducts</a> <a id="862" href="Categories.Category.Cartesian.html#801" class="Function">products</a>
<a id="873" class="Keyword">open</a> <a id="878" href="Categories.Category.Cocartesian.html#3385" class="Module">Cocartesian</a> <a id="890" href="Categories.Category.Distributive.html#767" class="Field">cocartesian</a>
<a id="Distributive.distributeˡ"></a><a id="905" href="Categories.Category.Distributive.html#905" class="Function">distributeˡ</a> <a id="917" class="Symbol">:</a> <a id="919" class="Symbol"></a> <a id="921" class="Symbol">{</a><a id="922" href="Categories.Category.Distributive.html#922" class="Bound">A</a> <a id="924" href="Categories.Category.Distributive.html#924" class="Bound">B</a> <a id="926" href="Categories.Category.Distributive.html#926" class="Bound">C</a> <a id="928" class="Symbol">:</a> <a id="930" href="Categories.Category.Core.html#559" class="Field">Obj</a><a id="933" class="Symbol">}</a> <a id="935" class="Symbol"></a> <a id="937" href="Categories.Category.Distributive.html#922" class="Bound">A</a> <a id="939" href="Categories.Category.BinaryProducts.html#1017" class="Function Operator">×</a> <a id="941" href="Categories.Category.Distributive.html#924" class="Bound">B</a> <a id="943" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="945" href="Categories.Category.Distributive.html#922" class="Bound">A</a> <a id="947" href="Categories.Category.BinaryProducts.html#1017" class="Function Operator">×</a> <a id="949" href="Categories.Category.Distributive.html#926" class="Bound">C</a> <a id="951" href="Categories.Category.Core.html#575" class="Field Operator"></a> <a id="953" href="Categories.Category.Distributive.html#922" class="Bound">A</a> <a id="955" href="Categories.Category.BinaryProducts.html#1017" class="Function Operator">×</a> <a id="957" class="Symbol">(</a><a id="958" href="Categories.Category.Distributive.html#924" class="Bound">B</a> <a id="960" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="962" href="Categories.Category.Distributive.html#926" class="Bound">C</a><a id="963" class="Symbol">)</a>
<a id="967" href="Categories.Category.Distributive.html#905" class="Function">distributeˡ</a> <a id="979" class="Symbol">=</a> <a id="981" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="983" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="986" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator"></a> <a id="988" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="991" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="993" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="996" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator"></a> <a id="998" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="1001" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a>
<a id="1006" class="Keyword">field</a>
<a id="Distributive.isIsoˡ"></a><a id="1016" href="Categories.Category.Distributive.html#1016" class="Field">isIsoˡ</a> <a id="1023" class="Symbol">:</a> <a id="1025" class="Symbol"></a> <a id="1027" class="Symbol">{</a><a id="1028" href="Categories.Category.Distributive.html#1028" class="Bound">A</a> <a id="1030" href="Categories.Category.Distributive.html#1030" class="Bound">B</a> <a id="1032" href="Categories.Category.Distributive.html#1032" class="Bound">C</a> <a id="1034" class="Symbol">:</a> <a id="1036" href="Categories.Category.Core.html#559" class="Field">Obj</a><a id="1039" class="Symbol">}</a> <a id="1041" class="Symbol"></a> <a id="1043" href="Categories.Morphism.html#1826" class="Record">IsIso</a> <a id="1049" class="Symbol">(</a><a id="1050" href="Categories.Category.Distributive.html#905" class="Function">distributeˡ</a> <a id="1062" class="Symbol">{</a><a id="1063" href="Categories.Category.Distributive.html#1028" class="Bound">A</a><a id="1064" class="Symbol">}</a> <a id="1066" class="Symbol">{</a><a id="1067" href="Categories.Category.Distributive.html#1030" class="Bound">B</a><a id="1068" class="Symbol">}</a> <a id="1070" class="Symbol">{</a><a id="1071" href="Categories.Category.Distributive.html#1032" class="Bound">C</a><a id="1072" class="Symbol">})</a>
<a id="1078" class="Comment">-- the dual to the canonical distributivity morphism is then also an iso</a>
<a id="Distributive.distributeʳ"></a><a id="1153" href="Categories.Category.Distributive.html#1153" class="Function">distributeʳ</a> <a id="1165" class="Symbol">:</a> <a id="1167" class="Symbol"></a> <a id="1169" class="Symbol">{</a><a id="1170" href="Categories.Category.Distributive.html#1170" class="Bound">A</a> <a id="1172" href="Categories.Category.Distributive.html#1172" class="Bound">B</a> <a id="1174" href="Categories.Category.Distributive.html#1174" class="Bound">C</a> <a id="1176" class="Symbol">:</a> <a id="1178" href="Categories.Category.Core.html#559" class="Field">Obj</a><a id="1181" class="Symbol">}</a> <a id="1183" class="Symbol"></a> <a id="1186" href="Categories.Category.Distributive.html#1172" class="Bound">B</a> <a id="1188" href="Categories.Category.BinaryProducts.html#1017" class="Function Operator">×</a> <a id="1190" href="Categories.Category.Distributive.html#1170" class="Bound">A</a> <a id="1192" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="1194" href="Categories.Category.Distributive.html#1174" class="Bound">C</a> <a id="1196" href="Categories.Category.BinaryProducts.html#1017" class="Function Operator">×</a> <a id="1198" href="Categories.Category.Distributive.html#1170" class="Bound">A</a> <a id="1200" href="Categories.Category.Core.html#575" class="Field Operator"></a> <a id="1202" class="Symbol">(</a><a id="1203" href="Categories.Category.Distributive.html#1172" class="Bound">B</a> <a id="1205" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="1207" href="Categories.Category.Distributive.html#1174" class="Bound">C</a><a id="1208" class="Symbol">)</a> <a id="1210" href="Categories.Category.BinaryProducts.html#1017" class="Function Operator">×</a> <a id="1212" href="Categories.Category.Distributive.html#1170" class="Bound">A</a>
<a id="1216" href="Categories.Category.Distributive.html#1153" class="Function">distributeʳ</a> <a id="1228" class="Symbol">=</a> <a id="1230" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="1232" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="1235" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator"></a> <a id="1237" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="1240" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="1242" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="1245" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator"></a> <a id="1247" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="1250" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a>
<a id="Distributive.isIsoʳ"></a><a id="1255" href="Categories.Category.Distributive.html#1255" class="Function">isIsoʳ</a> <a id="1262" class="Symbol">:</a> <a id="1264" class="Symbol"></a> <a id="1266" class="Symbol">{</a><a id="1267" href="Categories.Category.Distributive.html#1267" class="Bound">A</a> <a id="1269" href="Categories.Category.Distributive.html#1269" class="Bound">B</a> <a id="1271" href="Categories.Category.Distributive.html#1271" class="Bound">C</a> <a id="1273" class="Symbol">:</a> <a id="1275" href="Categories.Category.Core.html#559" class="Field">Obj</a><a id="1278" class="Symbol">}</a> <a id="1280" class="Symbol"></a> <a id="1283" href="Categories.Morphism.html#1826" class="Record">IsIso</a> <a id="1289" class="Symbol">(</a><a id="1290" href="Categories.Category.Distributive.html#1153" class="Function">distributeʳ</a> <a id="1302" class="Symbol">{</a><a id="1303" href="Categories.Category.Distributive.html#1267" class="Bound">A</a><a id="1304" class="Symbol">}</a> <a id="1306" class="Symbol">{</a><a id="1307" href="Categories.Category.Distributive.html#1269" class="Bound">B</a><a id="1308" class="Symbol">}</a> <a id="1310" class="Symbol">{</a><a id="1311" href="Categories.Category.Distributive.html#1271" class="Bound">C</a><a id="1312" class="Symbol">})</a>
<a id="1317" href="Categories.Category.Distributive.html#1255" class="Function">isIsoʳ</a> <a id="1324" class="Symbol">{</a><a id="1325" href="Categories.Category.Distributive.html#1325" class="Bound">A</a><a id="1326" class="Symbol">}</a> <a id="1328" class="Symbol">{</a><a id="1329" href="Categories.Category.Distributive.html#1329" class="Bound">B</a><a id="1330" class="Symbol">}</a> <a id="1332" class="Symbol">{</a><a id="1333" href="Categories.Category.Distributive.html#1333" class="Bound">C</a><a id="1334" class="Symbol">}</a> <a id="1336" class="Symbol">=</a> <a id="1338" class="Keyword">record</a>
<a id="1350" class="Symbol">{</a> <a id="1352" href="Categories.Morphism.html#1879" class="Field">inv</a> <a id="1356" class="Symbol">=</a> <a id="1358" class="Symbol">((</a><a id="1360" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="1365" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="1368" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a><a id="1372" class="Symbol">)</a> <a id="1374" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1376" href="Categories.Morphism.html#1879" class="Function">inv</a><a id="1379" class="Symbol">)</a> <a id="1381" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1383" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a>
<a id="1392" class="Symbol">;</a> <a id="1394" href="Categories.Morphism.html#1895" class="Field">iso</a> <a id="1398" class="Symbol">=</a> <a id="1400" class="Keyword">record</a>
<a id="1414" class="Symbol">{</a> <a id="1416" href="Categories.Morphism.html#1586" class="Field">isoˡ</a> <a id="1421" class="Symbol">=</a> <a id="1423" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="1438" class="Symbol">(((</a><a id="1441" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="1446" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="1449" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a><a id="1453" class="Symbol">)</a> <a id="1455" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1457" href="Categories.Morphism.html#1879" class="Function">inv</a><a id="1460" class="Symbol">)</a> <a id="1462" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1464" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a><a id="1468" class="Symbol">)</a> <a id="1470" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1472" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="1474" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="1477" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator"></a> <a id="1479" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="1482" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="1484" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="1487" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator"></a> <a id="1489" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="1492" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="1532" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="1535" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a> <a id="1539" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="1550" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="1552" class="Symbol">(((</a><a id="1555" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="1560" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="1563" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a><a id="1567" class="Symbol">)</a> <a id="1569" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1571" href="Categories.Morphism.html#1879" class="Function">inv</a><a id="1574" class="Symbol">)</a> <a id="1576" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1578" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a><a id="1582" class="Symbol">)</a> <a id="1584" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1586" class="Symbol">(</a><a id="1587" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="1590" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator"></a> <a id="1592" href="Categories.Category.Core.html#630" class="Field">id</a><a id="1594" class="Symbol">)</a> <a id="1596" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="1598" class="Symbol">(((</a><a id="1601" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="1606" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="1609" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a><a id="1613" class="Symbol">)</a> <a id="1615" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1617" href="Categories.Morphism.html#1879" class="Function">inv</a><a id="1620" class="Symbol">)</a> <a id="1622" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1624" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a><a id="1628" class="Symbol">)</a> <a id="1630" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1632" class="Symbol">(</a><a id="1633" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="1636" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator"></a> <a id="1638" href="Categories.Category.Core.html#630" class="Field">id</a><a id="1640" class="Symbol">)</a> <a id="1642" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="1644" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="1647" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="1656" class="Symbol">(</a><a id="1657" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="1663" href="Categories.Category.BinaryProducts.html#4476" class="Function">swap∘⁂</a><a id="1669" class="Symbol">)</a> <a id="1671" class="Symbol">(</a><a id="1672" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="1678" href="Categories.Category.BinaryProducts.html#4476" class="Function">swap∘⁂</a><a id="1684" class="Symbol">)</a> <a id="1686" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="1696" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="1698" class="Symbol">((</a><a id="1700" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="1705" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="1708" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a><a id="1712" class="Symbol">)</a> <a id="1714" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1716" href="Categories.Morphism.html#1879" class="Function">inv</a><a id="1719" class="Symbol">)</a> <a id="1721" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1723" class="Symbol">(</a><a id="1724" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="1727" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator"></a> <a id="1729" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="1731" class="Symbol">)</a> <a id="1733" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1735" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="1740" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="1742" class="Symbol">((</a><a id="1744" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="1749" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="1752" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a><a id="1756" class="Symbol">)</a> <a id="1758" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1760" href="Categories.Morphism.html#1879" class="Function">inv</a><a id="1763" class="Symbol">)</a> <a id="1765" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1767" class="Symbol">(</a><a id="1768" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="1771" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator"></a> <a id="1773" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a><a id="1775" class="Symbol">)</a> <a id="1777" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1779" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="1784" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="1790" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="1794" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a> <a id="1798" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function"></a>
<a id="1808" class="Symbol">((</a><a id="1810" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="1815" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="1818" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a><a id="1822" class="Symbol">)</a> <a id="1824" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1826" href="Categories.Morphism.html#1879" class="Function">inv</a><a id="1829" class="Symbol">)</a> <a id="1831" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1833" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="1835" class="Symbol">(</a><a id="1836" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="1839" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator"></a> <a id="1841" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="1843" class="Symbol">)</a> <a id="1845" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1847" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="1852" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="1854" class="Symbol">(</a><a id="1855" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="1858" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator"></a> <a id="1860" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a><a id="1862" class="Symbol">)</a> <a id="1864" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1866" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="1871" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="1902" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="1906" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="1914" href="Categories.Category.Cocartesian.html#2662" class="Function">[]∘+₁</a> <a id="1920" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function"></a>
<a id="1930" class="Symbol">((</a><a id="1932" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="1937" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="1940" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a><a id="1944" class="Symbol">)</a> <a id="1946" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1948" href="Categories.Morphism.html#1879" class="Function">inv</a><a id="1951" class="Symbol">)</a> <a id="1953" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1955" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="1957" class="Symbol">(</a><a id="1958" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="1961" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator"></a> <a id="1963" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="1965" class="Symbol">)</a> <a id="1967" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="1969" class="Symbol">(</a><a id="1970" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="1973" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator"></a> <a id="1975" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a><a id="1977" class="Symbol">)</a> <a id="1979" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="1981" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1983" class="Symbol">(</a><a id="1984" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="1989" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="1992" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a><a id="1996" class="Symbol">)</a> <a id="2024" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2027" href="Categories.Morphism.Reasoning.Core.html#7037" class="Function">cancelInner</a> <a id="2039" href="Categories.Morphism.html#1586" class="Function">isoˡ</a> <a id="2044" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="2054" class="Symbol">(</a><a id="2055" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="2060" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="2063" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a><a id="2067" class="Symbol">)</a> <a id="2069" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2071" class="Symbol">(</a><a id="2072" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="2077" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="2080" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a><a id="2084" class="Symbol">)</a> <a id="2148" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2151" href="Categories.Category.Cocartesian.html#2699" class="Function">+₁∘+₁</a> <a id="2157" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="2167" class="Symbol">(</a><a id="2168" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="2173" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2175" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a><a id="2179" class="Symbol">)</a> <a id="2181" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="2184" class="Symbol">(</a><a id="2185" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="2190" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2192" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a><a id="2196" class="Symbol">)</a> <a id="2261" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2264" href="Categories.Category.Cocartesian.html#2622" class="Function">+₁-cong₂</a> <a id="2273" href="Categories.Category.BinaryProducts.html#4652" class="Function">swap∘swap</a> <a id="2283" href="Categories.Category.BinaryProducts.html#4652" class="Function">swap∘swap</a> <a id="2293" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="2303" class="Symbol">(</a><a id="2304" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="2307" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="2310" href="Categories.Category.Core.html#630" class="Field">id</a><a id="2312" class="Symbol">)</a> <a id="2397" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2400" href="Categories.Category.Cocartesian.html#1714" class="Function">+-unique</a> <a id="2409" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a> <a id="2421" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a> <a id="2433" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="2443" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="2537" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="2546" class="Symbol">;</a> <a id="2548" href="Categories.Morphism.html#1612" class="Field">isoʳ</a> <a id="2553" class="Symbol">=</a> <a id="2555" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="2570" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="2572" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="2575" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator"></a> <a id="2577" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="2580" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="2582" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="2585" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator"></a> <a id="2587" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="2590" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="2592" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2594" class="Symbol">((</a><a id="2596" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="2601" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="2604" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a><a id="2608" class="Symbol">)</a> <a id="2610" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2612" href="Categories.Morphism.html#1879" class="Function">inv</a><a id="2615" class="Symbol">)</a> <a id="2617" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2619" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="2625" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2628" href="Categories.Morphism.Reasoning.Core.html#7730" class="Function">pull-first</a> <a id="2639" href="Categories.Category.Cocartesian.html#2662" class="Function">[]∘+₁</a> <a id="2645" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="2655" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="2657" class="Symbol">(</a><a id="2658" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="2661" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator"></a> <a id="2663" href="Categories.Category.Core.html#630" class="Field">id</a><a id="2665" class="Symbol">)</a> <a id="2667" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2669" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="2674" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="2676" class="Symbol">(</a><a id="2677" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="2680" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator"></a> <a id="2682" href="Categories.Category.Core.html#630" class="Field">id</a><a id="2684" class="Symbol">)</a> <a id="2686" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2688" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="2693" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="2695" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2697" href="Categories.Morphism.html#1879" class="Function">inv</a> <a id="2701" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2703" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="2710" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="2714" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="2723" href="Categories.Category.BinaryProducts.html#4476" class="Function">swap∘⁂</a> <a id="2730" href="Categories.Category.BinaryProducts.html#4476" class="Function">swap∘⁂</a> <a id="2737" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="2745" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function"></a>
<a id="2755" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="2757" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="2762" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2764" class="Symbol">(</a><a id="2765" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="2768" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator"></a> <a id="2770" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="2772" class="Symbol">)</a> <a id="2774" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="2776" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="2781" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2783" class="Symbol">(</a><a id="2784" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="2787" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator"></a> <a id="2789" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a><a id="2791" class="Symbol">)</a> <a id="2793" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="2795" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2797" href="Categories.Morphism.html#1879" class="Function">inv</a> <a id="2801" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2803" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="2810" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="2814" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a> <a id="2818" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="2826" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function"></a>
<a id="2836" class="Symbol">(</a><a id="2837" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="2842" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2844" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="2846" class="Symbol">(</a><a id="2847" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="2850" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator"></a> <a id="2852" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="2854" class="Symbol">)</a> <a id="2856" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="2858" class="Symbol">(</a><a id="2859" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="2862" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator"></a> <a id="2864" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a><a id="2866" class="Symbol">)</a> <a id="2868" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="2869" class="Symbol">)</a> <a id="2871" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2873" href="Categories.Morphism.html#1879" class="Function">inv</a> <a id="2877" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2879" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="2891" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2894" href="Categories.Morphism.Reasoning.Core.html#7037" class="Function">cancelInner</a> <a id="2906" href="Categories.Morphism.html#1612" class="Function">isoʳ</a> <a id="2912" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="2922" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="2927" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2929" href="Categories.Category.BinaryProducts.html#2012" class="Function">swap</a> <a id="2977" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2980" href="Categories.Category.BinaryProducts.html#4652" class="Function">swap∘swap</a> <a id="2990" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="3000" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="3055" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="3064" class="Symbol">}</a>
<a id="3071" class="Symbol">}</a>
<a id="3077" class="Keyword">where</a>
<a id="3089" class="Keyword">open</a> <a id="3094" href="Categories.Morphism.html#1826" class="Module">IsIso</a> <a id="3100" class="Symbol">(</a><a id="3101" href="Categories.Category.Distributive.html#1016" class="Field">isIsoˡ</a> <a id="3108" class="Symbol">{</a><a id="3109" href="Categories.Category.Distributive.html#1325" class="Bound">A</a><a id="3110" class="Symbol">}</a> <a id="3112" class="Symbol">{</a><a id="3113" href="Categories.Category.Distributive.html#1329" class="Bound">B</a><a id="3114" class="Symbol">}</a> <a id="3116" class="Symbol">{</a><a id="3117" href="Categories.Category.Distributive.html#1333" class="Bound">C</a><a id="3118" class="Symbol">})</a>
</pre></body></html>