bsc-leon-vatthauer/agda/bsc-thesis/Categories.Category.Cocartesian.html
2024-02-09 17:53:52 +01:00

226 lines
No EOL
58 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Categories.Category.Cocartesian</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="Categories.Category.Core.html" class="Module">Categories.Category.Core</a> <a id="74" class="Keyword">using</a> <a id="80" class="Symbol">(</a><a id="81" href="Categories.Category.Core.html#442" class="Record">Category</a><a id="89" class="Symbol">)</a>
<a id="92" class="Comment">-- BinaryCoproducts -- a category with all binary coproducts</a>
<a id="153" class="Comment">-- Cocartesian -- a category with all coproducts</a>
<a id="203" class="Comment">-- since most of the work is dual to Categories.Category.Cartesian, so the idea</a>
<a id="283" class="Comment">-- in this module is to make use of duality</a>
<a id="327" class="Keyword">module</a> <a id="334" href="Categories.Category.Cocartesian.html" class="Module">Categories.Category.Cocartesian</a> <a id="366" class="Symbol">{</a><a id="367" href="Categories.Category.Cocartesian.html#367" class="Bound">o</a> <a id="369" href="Categories.Category.Cocartesian.html#369" class="Bound"></a> <a id="371" href="Categories.Category.Cocartesian.html#371" class="Bound">e</a><a id="372" class="Symbol">}</a> <a id="374" class="Symbol">(</a><a id="375" href="Categories.Category.Cocartesian.html#375" class="Bound">𝒞</a> <a id="377" class="Symbol">:</a> <a id="379" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="388" href="Categories.Category.Cocartesian.html#367" class="Bound">o</a> <a id="390" href="Categories.Category.Cocartesian.html#369" class="Bound"></a> <a id="392" href="Categories.Category.Cocartesian.html#371" class="Bound">e</a><a id="393" class="Symbol">)</a> <a id="395" class="Keyword">where</a>
<a id="402" class="Keyword">open</a> <a id="407" class="Keyword">import</a> <a id="414" href="Level.html" class="Module">Level</a>
<a id="421" class="Keyword">private</a>
<a id="431" class="Keyword">module</a> <a id="𝒞"></a><a id="438" href="Categories.Category.Cocartesian.html#438" class="Module">𝒞</a> <a id="440" class="Symbol">=</a> <a id="442" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="451" href="Categories.Category.Cocartesian.html#375" class="Bound">𝒞</a>
<a id="455" class="Keyword">open</a> <a id="460" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="469" href="Categories.Category.Cocartesian.html#375" class="Bound">𝒞</a>
<a id="473" class="Keyword">open</a> <a id="478" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
<a id="493" class="Keyword">variable</a>
<a id="506" href="Categories.Category.Cocartesian.html#506" class="Generalizable">A</a> <a id="508" href="Categories.Category.Cocartesian.html#508" class="Generalizable">B</a> <a id="510" href="Categories.Category.Cocartesian.html#510" class="Generalizable">C</a> <a id="512" href="Categories.Category.Cocartesian.html#512" class="Generalizable">D</a> <a id="514" class="Symbol">:</a> <a id="516" href="Categories.Category.Core.html#559" class="Field">Obj</a>
<a id="524" href="Categories.Category.Cocartesian.html#524" class="Generalizable">f</a> <a id="526" href="Categories.Category.Cocartesian.html#526" class="Generalizable">g</a> <a id="528" href="Categories.Category.Cocartesian.html#528" class="Generalizable">h</a> <a id="530" href="Categories.Category.Cocartesian.html#530" class="Generalizable">i</a> <a id="532" class="Symbol">:</a> <a id="534" href="Categories.Category.Cocartesian.html#506" class="Generalizable">A</a> <a id="536" href="Categories.Category.Core.html#575" class="Field Operator"></a> <a id="538" href="Categories.Category.Cocartesian.html#508" class="Generalizable">B</a>
<a id="541" class="Keyword">open</a> <a id="546" class="Keyword">import</a> <a id="553" href="Categories.Category.BinaryProducts.html" class="Module">Categories.Category.BinaryProducts</a> <a id="588" class="Keyword">using</a> <a id="594" class="Symbol">(</a><a id="595" href="Categories.Category.BinaryProducts.html#848" class="Record">BinaryProducts</a><a id="609" class="Symbol">)</a>
<a id="611" class="Keyword">open</a> <a id="616" class="Keyword">import</a> <a id="623" href="Categories.Category.Cartesian.html" class="Module">Categories.Category.Cartesian</a> <a id="653" href="Categories.Category.Core.html#3132" class="Function">𝒞.op</a>
<a id="658" class="Keyword">open</a> <a id="663" class="Keyword">import</a> <a id="670" href="Categories.Category.Cartesian.Monoidal.html" class="Module">Categories.Category.Cartesian.Monoidal</a> <a id="709" class="Keyword">using</a> <a id="715" class="Symbol">(</a><a id="716" class="Keyword">module</a> <a id="723" href="Categories.Category.Cartesian.Monoidal.html#1139" class="Module">CartesianMonoidal</a><a id="740" class="Symbol">)</a>
<a id="742" class="Keyword">import</a> <a id="749" href="Categories.Category.Cartesian.SymmetricMonoidal.html" class="Module">Categories.Category.Cartesian.SymmetricMonoidal</a> <a id="797" class="Symbol">as</a> <a id="800" class="Module">CSM</a>
<a id="804" class="Keyword">open</a> <a id="809" class="Keyword">import</a> <a id="816" href="Categories.Category.Monoidal.html" class="Module">Categories.Category.Monoidal</a> <a id="845" class="Keyword">using</a> <a id="851" class="Symbol">(</a><a id="852" href="Categories.Category.Monoidal.Core.html#1287" class="Record">Monoidal</a><a id="860" class="Symbol">)</a>
<a id="862" class="Keyword">open</a> <a id="867" class="Keyword">import</a> <a id="874" href="Categories.Category.Monoidal.Symmetric.html" class="Module">Categories.Category.Monoidal.Symmetric</a>
<a id="913" class="Keyword">open</a> <a id="918" class="Keyword">import</a> <a id="925" href="Categories.Morphism.html" class="Module">Categories.Morphism</a> <a id="945" href="Categories.Category.Cocartesian.html#375" class="Bound">𝒞</a>
<a id="947" class="Keyword">open</a> <a id="952" class="Keyword">import</a> <a id="959" href="Categories.Morphism.Properties.html" class="Module">Categories.Morphism.Properties</a> <a id="990" href="Categories.Category.Cocartesian.html#375" class="Bound">𝒞</a>
<a id="992" class="Keyword">open</a> <a id="997" class="Keyword">import</a> <a id="1004" href="Categories.Morphism.Duality.html" class="Module">Categories.Morphism.Duality</a> <a id="1032" href="Categories.Category.Cocartesian.html#375" class="Bound">𝒞</a>
<a id="1034" class="Keyword">open</a> <a id="1039" class="Keyword">import</a> <a id="1046" href="Categories.Morphism.Reasoning.html" class="Module">Categories.Morphism.Reasoning</a> <a id="1076" href="Categories.Category.Cocartesian.html#375" class="Bound">𝒞</a>
<a id="1078" class="Keyword">open</a> <a id="1083" class="Keyword">import</a> <a id="1090" href="Categories.Object.Initial.html" class="Module">Categories.Object.Initial</a> <a id="1116" href="Categories.Category.Cocartesian.html#375" class="Bound">𝒞</a> <a id="1118" class="Keyword">using</a> <a id="1124" class="Symbol">(</a><a id="1125" href="Categories.Object.Initial.html#760" class="Record">Initial</a><a id="1132" class="Symbol">)</a>
<a id="1134" class="Keyword">open</a> <a id="1139" class="Keyword">import</a> <a id="1146" href="Categories.Object.Coproduct.html" class="Module">Categories.Object.Coproduct</a> <a id="1174" href="Categories.Category.Cocartesian.html#375" class="Bound">𝒞</a>
<a id="1176" class="Keyword">open</a> <a id="1181" class="Keyword">import</a> <a id="1188" href="Categories.Object.Duality.html" class="Module">Categories.Object.Duality</a> <a id="1214" href="Categories.Category.Cocartesian.html#375" class="Bound">𝒞</a>
<a id="1217" class="Keyword">open</a> <a id="1222" class="Keyword">import</a> <a id="1229" href="Categories.Functor.html" class="Module">Categories.Functor</a> <a id="1248" class="Keyword">renaming</a> <a id="1257" class="Symbol">(</a><a id="1258" href="Categories.Functor.html#349" class="Function">id</a> <a id="1261" class="Symbol">to</a> <a id="1264" class="Function">idF</a><a id="1267" class="Symbol">)</a>
<a id="1269" class="Keyword">open</a> <a id="1274" class="Keyword">import</a> <a id="1281" href="Categories.Functor.Properties.html" class="Module">Categories.Functor.Properties</a>
<a id="1311" class="Keyword">open</a> <a id="1316" class="Keyword">import</a> <a id="1323" href="Categories.Functor.Bifunctor.html" class="Module">Categories.Functor.Bifunctor</a>
<a id="1353" class="Keyword">record</a> <a id="BinaryCoproducts"></a><a id="1360" href="Categories.Category.Cocartesian.html#1360" class="Record">BinaryCoproducts</a> <a id="1377" class="Symbol">:</a> <a id="1379" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1383" class="Symbol">(</a><a id="1384" href="Level.html#602" class="Function">levelOfTerm</a> <a id="1396" href="Categories.Category.Cocartesian.html#375" class="Bound">𝒞</a><a id="1397" class="Symbol">)</a> <a id="1399" class="Keyword">where</a>
<a id="1408" class="Keyword">infixr</a> <a id="1415" class="Number">6</a> <a id="1417" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">_+_</a>
<a id="1423" class="Keyword">infixr</a> <a id="1430" class="Number">7</a> <a id="1432" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">_+₁_</a>
<a id="1440" class="Keyword">field</a>
<a id="BinaryCoproducts.coproduct"></a><a id="1450" href="Categories.Category.Cocartesian.html#1450" class="Field">coproduct</a> <a id="1460" class="Symbol">:</a> <a id="1462" class="Symbol"></a> <a id="1464" class="Symbol">{</a><a id="1465" href="Categories.Category.Cocartesian.html#1465" class="Bound">A</a> <a id="1467" href="Categories.Category.Cocartesian.html#1467" class="Bound">B</a><a id="1468" class="Symbol">}</a> <a id="1470" class="Symbol"></a> <a id="1472" href="Categories.Object.Coproduct.html#398" class="Record">Coproduct</a> <a id="1482" href="Categories.Category.Cocartesian.html#1465" class="Bound">A</a> <a id="1484" href="Categories.Category.Cocartesian.html#1467" class="Bound">B</a>
<a id="1489" class="Keyword">module</a> <a id="BinaryCoproducts.coproduct"></a><a id="1496" href="Categories.Category.Cocartesian.html#1496" class="Module">coproduct</a> <a id="1506" class="Symbol">{</a><a id="1507" href="Categories.Category.Cocartesian.html#1507" class="Bound">A</a><a id="1508" class="Symbol">}</a> <a id="1510" class="Symbol">{</a><a id="1511" href="Categories.Category.Cocartesian.html#1511" class="Bound">B</a><a id="1512" class="Symbol">}</a> <a id="1514" class="Symbol">=</a> <a id="1516" href="Categories.Object.Coproduct.html#398" class="Module">Coproduct</a> <a id="1526" class="Symbol">(</a><a id="1527" href="Categories.Category.Cocartesian.html#1450" class="Field">coproduct</a> <a id="1537" class="Symbol">{</a><a id="1538" href="Categories.Category.Cocartesian.html#1507" class="Bound">A</a><a id="1539" class="Symbol">}</a> <a id="1541" class="Symbol">{</a><a id="1542" href="Categories.Category.Cocartesian.html#1511" class="Bound">B</a><a id="1543" class="Symbol">})</a>
<a id="BinaryCoproducts._+_"></a><a id="1549" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">_+_</a> <a id="1553" class="Symbol">:</a> <a id="1555" href="Categories.Category.Core.html#559" class="Field">Obj</a> <a id="1559" class="Symbol"></a> <a id="1561" href="Categories.Category.Core.html#559" class="Field">Obj</a> <a id="1565" class="Symbol"></a> <a id="1567" href="Categories.Category.Core.html#559" class="Field">Obj</a>
<a id="1573" href="Categories.Category.Cocartesian.html#1573" class="Bound">A</a> <a id="1575" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="1577" href="Categories.Category.Cocartesian.html#1577" class="Bound">B</a> <a id="1579" class="Symbol">=</a> <a id="1581" href="Categories.Object.Coproduct.html#476" class="Function">coproduct.A+B</a> <a id="1595" class="Symbol">{</a><a id="1596" href="Categories.Category.Cocartesian.html#1573" class="Bound">A</a><a id="1597" class="Symbol">}</a> <a id="1599" class="Symbol">{</a><a id="1600" href="Categories.Category.Cocartesian.html#1577" class="Bound">B</a><a id="1601" class="Symbol">}</a>
<a id="1606" class="Keyword">open</a> <a id="1611" href="Categories.Category.Cocartesian.html#1496" class="Module">coproduct</a>
<a id="1625" class="Keyword">using</a> <a id="1631" class="Symbol">(</a><a id="1632" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="1634" class="Symbol">;</a> <a id="1636" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a><a id="1638" class="Symbol">;</a> <a id="1640" href="Categories.Object.Coproduct.html#532" class="Function Operator">[_,_]</a><a id="1645" class="Symbol">;</a> <a id="1647" href="Categories.Object.Coproduct.html#569" class="Function">inject₁</a><a id="1654" class="Symbol">;</a> <a id="1656" href="Categories.Object.Coproduct.html#602" class="Function">inject₂</a><a id="1663" class="Symbol">;</a> <a id="1665" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a><a id="1673" class="Symbol">;</a> <a id="1675" href="Categories.Object.Coproduct.html#980" class="Function">∘-distribˡ-[]</a><a id="1688" class="Symbol">)</a>
<a id="1694" class="Keyword">renaming</a> <a id="1703" class="Symbol">(</a><a id="1704" href="Categories.Object.Coproduct.html#635" class="Function">unique</a> <a id="1711" class="Symbol">to</a> <a id="1714" class="Function">+-unique</a><a id="1722" class="Symbol">;</a> <a id="1724" href="Categories.Object.Coproduct.html#759" class="Function">η</a> <a id="1726" class="Symbol">to</a> <a id="1729" class="Function">+-η</a><a id="1732" class="Symbol">;</a> <a id="1734" href="Categories.Object.Coproduct.html#689" class="Function">g-η</a> <a id="1738" class="Symbol">to</a> <a id="1741" class="Function">+-g-η</a><a id="1746" class="Symbol">)</a>
<a id="1752" class="Keyword">public</a>
<a id="1762" class="Keyword">module</a> <a id="BinaryCoproducts.Dual"></a><a id="1769" href="Categories.Category.Cocartesian.html#1769" class="Module">Dual</a> <a id="1774" class="Keyword">where</a>
<a id="BinaryCoproducts.Dual.op-binaryProducts"></a><a id="1784" href="Categories.Category.Cocartesian.html#1784" class="Function">op-binaryProducts</a> <a id="1802" class="Symbol">:</a> <a id="1804" href="Categories.Category.BinaryProducts.html#848" class="Record">BinaryProducts</a> <a id="1819" href="Categories.Category.Core.html#3132" class="Function">op</a>
<a id="1826" href="Categories.Category.Cocartesian.html#1784" class="Function">op-binaryProducts</a> <a id="1844" class="Symbol">=</a> <a id="1846" class="Keyword">record</a> <a id="1853" class="Symbol">{</a> <a id="1855" href="Categories.Category.BinaryProducts.html#952" class="Field">product</a> <a id="1863" class="Symbol">=</a> <a id="1865" href="Categories.Object.Duality.html#1367" class="Function">Coproduct⇒coProduct</a> <a id="1885" href="Categories.Category.Cocartesian.html#1450" class="Field">coproduct</a> <a id="1895" class="Symbol">}</a>
<a id="1902" class="Keyword">module</a> <a id="BinaryCoproducts.Dual.op-binaryProducts"></a><a id="1909" href="Categories.Category.Cocartesian.html#1909" class="Module">op-binaryProducts</a> <a id="1927" class="Symbol">=</a> <a id="1929" href="Categories.Category.BinaryProducts.html#848" class="Module">BinaryProducts</a> <a id="1944" href="Categories.Category.Cocartesian.html#1784" class="Function">op-binaryProducts</a>
<a id="1965" class="Keyword">open</a> <a id="1970" href="Categories.Category.Cocartesian.html#1769" class="Module">Dual</a>
<a id="BinaryCoproducts.+-comm"></a><a id="1978" href="Categories.Category.Cocartesian.html#1978" class="Function">+-comm</a> <a id="1985" class="Symbol">:</a> <a id="1987" href="Categories.Category.Cocartesian.html#506" class="Generalizable">A</a> <a id="1989" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="1991" href="Categories.Category.Cocartesian.html#508" class="Generalizable">B</a> <a id="1993" href="Categories.Morphism.html#1958" class="Record Operator"></a> <a id="1995" href="Categories.Category.Cocartesian.html#508" class="Generalizable">B</a> <a id="1997" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="1999" href="Categories.Category.Cocartesian.html#506" class="Generalizable">A</a>
<a id="2003" href="Categories.Category.Cocartesian.html#1978" class="Function">+-comm</a> <a id="2010" class="Symbol">=</a> <a id="2012" href="Categories.Morphism.Duality.html#873" class="Function">op-≅⇒≅</a> <a id="2019" class="Symbol">(</a><a id="2020" href="Categories.Category.BinaryProducts.html#1118" class="Function">op-binaryProducts.×-comm</a><a id="2044" class="Symbol">)</a>
<a id="BinaryCoproducts.+-assoc"></a><a id="2049" href="Categories.Category.Cocartesian.html#2049" class="Function">+-assoc</a> <a id="2057" class="Symbol">:</a> <a id="2059" href="Categories.Category.Cocartesian.html#506" class="Generalizable">A</a> <a id="2061" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="2063" href="Categories.Category.Cocartesian.html#508" class="Generalizable">B</a> <a id="2065" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="2067" href="Categories.Category.Cocartesian.html#510" class="Generalizable">C</a> <a id="2069" href="Categories.Morphism.html#1958" class="Record Operator"></a> <a id="2071" class="Symbol">(</a><a id="2072" href="Categories.Category.Cocartesian.html#506" class="Generalizable">A</a> <a id="2074" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="2076" href="Categories.Category.Cocartesian.html#508" class="Generalizable">B</a><a id="2077" class="Symbol">)</a> <a id="2079" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="2081" href="Categories.Category.Cocartesian.html#510" class="Generalizable">C</a>
<a id="2085" href="Categories.Category.Cocartesian.html#2049" class="Function">+-assoc</a> <a id="2093" class="Symbol">=</a> <a id="2095" href="Categories.Morphism.Duality.html#873" class="Function">op-≅⇒≅</a> <a id="2102" class="Symbol">(</a><a id="2103" href="Categories.Category.BinaryProducts.html#1183" class="Function">op-binaryProducts.×-assoc</a><a id="2128" class="Symbol">)</a>
<a id="BinaryCoproducts._+₁_"></a><a id="2133" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">_+₁_</a> <a id="2138" class="Symbol">:</a> <a id="2140" href="Categories.Category.Cocartesian.html#506" class="Generalizable">A</a> <a id="2142" href="Categories.Category.Core.html#575" class="Field Operator"></a> <a id="2144" href="Categories.Category.Cocartesian.html#508" class="Generalizable">B</a> <a id="2146" class="Symbol"></a> <a id="2148" href="Categories.Category.Cocartesian.html#510" class="Generalizable">C</a> <a id="2150" href="Categories.Category.Core.html#575" class="Field Operator"></a> <a id="2152" href="Categories.Category.Cocartesian.html#512" class="Generalizable">D</a> <a id="2154" class="Symbol"></a> <a id="2156" href="Categories.Category.Cocartesian.html#506" class="Generalizable">A</a> <a id="2158" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="2160" href="Categories.Category.Cocartesian.html#510" class="Generalizable">C</a> <a id="2162" href="Categories.Category.Core.html#575" class="Field Operator"></a> <a id="2164" href="Categories.Category.Cocartesian.html#508" class="Generalizable">B</a> <a id="2166" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="2168" href="Categories.Category.Cocartesian.html#512" class="Generalizable">D</a>
<a id="2172" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">_+₁_</a> <a id="2177" class="Symbol">=</a> <a id="2179" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">op-binaryProducts._⁂_</a>
<a id="2204" class="Keyword">open</a> <a id="2209" href="Categories.Category.Cocartesian.html#1909" class="Module">op-binaryProducts</a>
<a id="2231" class="Keyword">using</a> <a id="2237" class="Symbol">()</a>
<a id="2244" class="Keyword">renaming</a> <a id="2253" class="Symbol">(</a> <a id="2255" href="Categories.Category.BinaryProducts.html#1878" class="Function">⟨⟩-congʳ</a> <a id="2268" class="Symbol">to</a> <a id="2271" class="Function">[]-congʳ</a>
<a id="2293" class="Symbol">;</a> <a id="2295" href="Categories.Category.BinaryProducts.html#1963" class="Function">⟨⟩-congˡ</a> <a id="2308" class="Symbol">to</a> <a id="2311" class="Function">[]-congˡ</a>
<a id="2333" class="Symbol">;</a> <a id="2335" href="Categories.Category.BinaryProducts.html#1542" class="Function">assocˡ</a> <a id="2348" class="Symbol">to</a> <a id="2351" class="Function">+-assocʳ</a>
<a id="2373" class="Symbol">;</a> <a id="2375" href="Categories.Category.BinaryProducts.html#1604" class="Function">assocʳ</a> <a id="2388" class="Symbol">to</a> <a id="2391" class="Function">+-assocˡ</a>
<a id="2413" class="Symbol">;</a> <a id="2415" href="Categories.Category.BinaryProducts.html#2048" class="Function">swap</a> <a id="2428" class="Symbol">to</a> <a id="2431" class="Function">+-swap</a>
<a id="2451" class="Symbol">;</a> <a id="2453" href="Categories.Category.BinaryProducts.html#2249" class="Function">first</a> <a id="2466" class="Symbol">to</a> <a id="2469" class="Function">+-first</a>
<a id="2490" class="Symbol">;</a> <a id="2492" href="Categories.Category.BinaryProducts.html#2301" class="Function">second</a> <a id="2505" class="Symbol">to</a> <a id="2508" class="Function">+-second</a>
<a id="2530" class="Symbol">;</a> <a id="2532" href="Categories.Category.BinaryProducts.html#2391" class="Function">π₁∘⁂</a> <a id="2545" class="Symbol">to</a> <a id="2548" class="Function">+₁∘i₁</a>
<a id="2567" class="Symbol">;</a> <a id="2569" href="Categories.Category.BinaryProducts.html#2453" class="Function">π₂∘⁂</a> <a id="2582" class="Symbol">to</a> <a id="2585" class="Function">+₁∘i₂</a>
<a id="2604" class="Symbol">;</a> <a id="2606" href="Categories.Category.BinaryProducts.html#2515" class="Function">⁂-cong₂</a> <a id="2619" class="Symbol">to</a> <a id="2622" class="Function">+₁-cong₂</a>
<a id="2644" class="Symbol">;</a> <a id="2646" href="Categories.Category.BinaryProducts.html#2599" class="Function">⁂∘⟨⟩</a> <a id="2659" class="Symbol">to</a> <a id="2662" class="Function">[]∘+₁</a>
<a id="2681" class="Symbol">;</a> <a id="2683" href="Categories.Category.BinaryProducts.html#2881" class="Function">⁂∘⁂</a> <a id="2696" class="Symbol">to</a> <a id="2699" class="Function">+₁∘+₁</a>
<a id="2718" class="Symbol">;</a> <a id="2720" href="Categories.Category.BinaryProducts.html#2975" class="Function">⟨⟩∘</a> <a id="2733" class="Symbol">to</a> <a id="2736" class="Function">∘[]</a>
<a id="2753" class="Symbol">;</a> <a id="2755" href="Categories.Category.BinaryProducts.html#3714" class="Function">first↔second</a> <a id="2768" class="Symbol">to</a> <a id="2771" class="Function">+-second↔first</a>
<a id="2799" class="Symbol">;</a> <a id="2801" href="Categories.Category.BinaryProducts.html#4512" class="Function">swap∘⁂</a> <a id="2814" class="Symbol">to</a> <a id="2817" class="Function">+₁∘+-swap</a>
<a id="2840" class="Symbol">;</a> <a id="2842" href="Categories.Category.BinaryProducts.html#4688" class="Function">swap∘swap</a> <a id="2855" class="Symbol">to</a> <a id="2858" class="Function">+-swap∘swap</a>
<a id="2883" class="Symbol">)</a>
<a id="2889" class="Keyword">public</a>
<a id="2899" class="Comment">-- since op-×- has type Bifunctor 𝒞.op 𝒞.op 𝒞.op,</a>
<a id="2951" class="Comment">-- need to rewrap in order to type check</a>
<a id="BinaryCoproducts.-+-"></a><a id="2994" href="Categories.Category.Cocartesian.html#2994" class="Function">-+-</a> <a id="2998" class="Symbol">:</a> <a id="3000" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="3010" href="Categories.Category.Cocartesian.html#375" class="Bound">𝒞</a> <a id="3012" href="Categories.Category.Cocartesian.html#375" class="Bound">𝒞</a> <a id="3014" href="Categories.Category.Cocartesian.html#375" class="Bound">𝒞</a>
<a id="3018" href="Categories.Category.Cocartesian.html#2994" class="Function">-+-</a> <a id="3022" class="Symbol">=</a> <a id="3024" class="Keyword">record</a>
<a id="3035" class="Symbol">{</a> <a id="3037" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="3050" class="Symbol">=</a> <a id="3052" href="Categories.Functor.Core.html#432" class="Function">op-×-.F₀</a>
<a id="3065" class="Symbol">;</a> <a id="3067" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3080" class="Symbol">=</a> <a id="3082" href="Categories.Functor.Core.html#455" class="Function">op-×-.F₁</a>
<a id="3095" class="Symbol">;</a> <a id="3097" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="3110" class="Symbol">=</a> <a id="3112" href="Categories.Functor.Core.html#511" class="Function">op-×-.identity</a>
<a id="3131" class="Symbol">;</a> <a id="3133" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="3146" class="Symbol">=</a> <a id="3148" href="Categories.Functor.Core.html#565" class="Function">op-×-.homomorphism</a>
<a id="3171" class="Symbol">;</a> <a id="3173" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="3186" class="Symbol">=</a> <a id="3188" href="Categories.Functor.Core.html#696" class="Function">op-×-.F-resp-≈</a>
<a id="3207" class="Symbol">}</a>
<a id="3213" class="Keyword">where</a> <a id="3219" href="Categories.Category.Cocartesian.html#3219" class="Function">op-×-</a> <a id="3225" class="Symbol">=</a> <a id="3227" href="Categories.Category.BinaryProducts.html#7327" class="Function">op-binaryProducts.-×-</a>
<a id="3259" class="Keyword">module</a> <a id="3266" href="Categories.Category.Cocartesian.html#3266" class="Module">op-×-</a> <a id="3272" class="Symbol">=</a> <a id="3274" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="3282" href="Categories.Category.Cocartesian.html#3219" class="Function">op-×-</a>
<a id="BinaryCoproducts.-+_"></a><a id="3291" href="Categories.Category.Cocartesian.html#3291" class="Function Operator">-+_</a> <a id="3295" class="Symbol">:</a> <a id="3297" href="Categories.Category.Core.html#559" class="Field">Obj</a> <a id="3301" class="Symbol"></a> <a id="3303" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="3311" href="Categories.Category.Cocartesian.html#375" class="Bound">𝒞</a> <a id="3313" href="Categories.Category.Cocartesian.html#375" class="Bound">𝒞</a>
<a id="3317" href="Categories.Category.Cocartesian.html#3291" class="Function Operator">-+_</a> <a id="3321" class="Symbol">=</a> <a id="3323" href="Categories.Functor.Bifunctor.html#938" class="Function">appʳ</a> <a id="3328" href="Categories.Category.Cocartesian.html#2994" class="Function">-+-</a>
<a id="BinaryCoproducts._+-"></a><a id="3335" href="Categories.Category.Cocartesian.html#3335" class="Function Operator">_+-</a> <a id="3339" class="Symbol">:</a> <a id="3341" href="Categories.Category.Core.html#559" class="Field">Obj</a> <a id="3345" class="Symbol"></a> <a id="3347" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="3355" href="Categories.Category.Cocartesian.html#375" class="Bound">𝒞</a> <a id="3357" href="Categories.Category.Cocartesian.html#375" class="Bound">𝒞</a>
<a id="3361" href="Categories.Category.Cocartesian.html#3335" class="Function Operator">_+-</a> <a id="3365" class="Symbol">=</a> <a id="3367" href="Categories.Functor.Bifunctor.html#874" class="Function">appˡ</a> <a id="3372" href="Categories.Category.Cocartesian.html#2994" class="Function">-+-</a>
<a id="3378" class="Keyword">record</a> <a id="Cocartesian"></a><a id="3385" href="Categories.Category.Cocartesian.html#3385" class="Record">Cocartesian</a> <a id="3397" class="Symbol">:</a> <a id="3399" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3403" class="Symbol">(</a><a id="3404" href="Level.html#602" class="Function">levelOfTerm</a> <a id="3416" href="Categories.Category.Cocartesian.html#375" class="Bound">𝒞</a><a id="3417" class="Symbol">)</a> <a id="3419" class="Keyword">where</a>
<a id="3427" class="Keyword">field</a>
<a id="Cocartesian.initial"></a><a id="3437" href="Categories.Category.Cocartesian.html#3437" class="Field">initial</a> <a id="3448" class="Symbol">:</a> <a id="3450" href="Categories.Object.Initial.html#760" class="Record">Initial</a>
<a id="Cocartesian.coproducts"></a><a id="3462" href="Categories.Category.Cocartesian.html#3462" class="Field">coproducts</a> <a id="3473" class="Symbol">:</a> <a id="3475" href="Categories.Category.Cocartesian.html#1360" class="Record">BinaryCoproducts</a>
<a id="3495" class="Keyword">module</a> <a id="Cocartesian.initial"></a><a id="3502" href="Categories.Category.Cocartesian.html#3502" class="Module">initial</a> <a id="3513" class="Symbol">=</a> <a id="3515" href="Categories.Object.Initial.html#760" class="Module">Initial</a> <a id="3523" href="Categories.Category.Cocartesian.html#3437" class="Field">initial</a>
<a id="3533" class="Keyword">module</a> <a id="Cocartesian.coproducts"></a><a id="3540" href="Categories.Category.Cocartesian.html#3540" class="Module">coproducts</a> <a id="3551" class="Symbol">=</a> <a id="3553" href="Categories.Category.Cocartesian.html#1360" class="Module">BinaryCoproducts</a> <a id="3570" href="Categories.Category.Cocartesian.html#3462" class="Field">coproducts</a>
<a id="3584" class="Keyword">open</a> <a id="3589" href="Categories.Category.Cocartesian.html#3502" class="Module">initial</a>
<a id="3601" class="Keyword">renaming</a> <a id="3610" class="Symbol">(</a><a id="3611" href="Categories.Object.Initial.html#478" class="Function">!</a> <a id="3613" class="Symbol">to</a> <a id="3616" class="Function">¡</a><a id="3617" class="Symbol">;</a> <a id="3619" href="Categories.Object.Initial.html#506" class="Function">!-unique</a> <a id="3628" class="Symbol">to</a> <a id="3631" class="Function">¡-unique</a><a id="3639" class="Symbol">;</a> <a id="3641" href="Categories.Object.Initial.html#548" class="Function">!-unique₂</a> <a id="3651" class="Symbol">to</a> <a id="3654" class="Function">¡-unique₂</a><a id="3663" class="Symbol">)</a>
<a id="3669" class="Keyword">public</a>
<a id="3678" class="Keyword">open</a> <a id="3683" href="Categories.Category.Cocartesian.html#3540" class="Module">coproducts</a> <a id="3694" class="Keyword">hiding</a> <a id="3701" class="Symbol">(</a><a id="3702" class="Keyword">module</a> <a id="3709" href="Categories.Category.Cocartesian.html#1769" class="Module">Dual</a><a id="3713" class="Symbol">)</a> <a id="3715" class="Keyword">public</a>
<a id="3725" class="Keyword">module</a> <a id="Cocartesian.Dual"></a><a id="3732" href="Categories.Category.Cocartesian.html#3732" class="Module">Dual</a> <a id="3737" class="Keyword">where</a>
<a id="3747" class="Keyword">open</a> <a id="3752" href="Categories.Category.Cocartesian.html#1769" class="Module">coproducts.Dual</a> <a id="3768" class="Keyword">public</a>
<a id="Cocartesian.Dual.op-cartesian"></a><a id="3780" href="Categories.Category.Cocartesian.html#3780" class="Function">op-cartesian</a> <a id="3793" class="Symbol">:</a> <a id="3795" href="Categories.Category.Cartesian.html#727" class="Record">Cartesian</a>
<a id="3809" href="Categories.Category.Cocartesian.html#3780" class="Function">op-cartesian</a> <a id="3822" class="Symbol">=</a> <a id="3824" class="Keyword">record</a>
<a id="3837" class="Symbol">{</a> <a id="3839" href="Categories.Category.Cartesian.html#777" class="Field">terminal</a> <a id="3848" class="Symbol">=</a> <a id="3850" href="Categories.Object.Duality.html#905" class="Function">⊥⇒op</a> <a id="3856" href="Categories.Category.Cocartesian.html#3437" class="Field">initial</a>
<a id="3870" class="Symbol">;</a> <a id="3872" href="Categories.Category.Cartesian.html#801" class="Field">products</a> <a id="3881" class="Symbol">=</a> <a id="3883" href="Categories.Category.Cocartesian.html#1784" class="Function">op-binaryProducts</a>
<a id="3907" class="Symbol">}</a>
<a id="3914" class="Keyword">module</a> <a id="Cocartesian.Dual.op-cartesian"></a><a id="3921" href="Categories.Category.Cocartesian.html#3921" class="Module">op-cartesian</a> <a id="3934" class="Symbol">=</a> <a id="3936" href="Categories.Category.Cartesian.html#727" class="Module">Cartesian</a> <a id="3946" href="Categories.Category.Cocartesian.html#3780" class="Function">op-cartesian</a>
<a id="3960" class="Comment">-- The op-cartesian structure induces a monoidal one.</a>
<a id="4015" class="Keyword">module</a> <a id="CocartesianMonoidal"></a><a id="4022" href="Categories.Category.Cocartesian.html#4022" class="Module">CocartesianMonoidal</a> <a id="4042" class="Symbol">(</a><a id="4043" href="Categories.Category.Cocartesian.html#4043" class="Bound">cocartesian</a> <a id="4055" class="Symbol">:</a> <a id="4057" href="Categories.Category.Cocartesian.html#3385" class="Record">Cocartesian</a><a id="4068" class="Symbol">)</a> <a id="4070" class="Keyword">where</a>
<a id="4078" class="Keyword">open</a> <a id="4083" href="Categories.Category.Cocartesian.html#3385" class="Module">Cocartesian</a> <a id="4095" href="Categories.Category.Cocartesian.html#4043" class="Bound">cocartesian</a>
<a id="4109" class="Keyword">private</a> <a id="4117" class="Keyword">module</a> <a id="CocartesianMonoidal.op-cartesianMonoidal"></a><a id="4124" href="Categories.Category.Cocartesian.html#4124" class="Module">op-cartesianMonoidal</a> <a id="4145" class="Symbol">=</a> <a id="4147" href="Categories.Category.Cartesian.Monoidal.html#1139" class="Module">CartesianMonoidal</a> <a id="4165" href="Categories.Category.Cocartesian.html#3780" class="Function">Dual.op-cartesian</a>
<a id="CocartesianMonoidal.⊥+A≅A"></a><a id="4186" href="Categories.Category.Cocartesian.html#4186" class="Function">⊥+A≅A</a> <a id="4192" class="Symbol">:</a> <a id="4194" href="Categories.Object.Initial.html#804" class="Function"></a> <a id="4196" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="4198" href="Categories.Category.Cocartesian.html#506" class="Generalizable">A</a> <a id="4200" href="Categories.Morphism.html#1958" class="Record Operator"></a> <a id="4202" href="Categories.Category.Cocartesian.html#506" class="Generalizable">A</a>
<a id="4206" href="Categories.Category.Cocartesian.html#4186" class="Function">⊥+A≅A</a> <a id="4212" class="Symbol">=</a> <a id="4214" href="Categories.Morphism.Duality.html#873" class="Function">op-≅⇒≅</a> <a id="4221" class="Symbol">(</a><a id="4222" href="Categories.Category.Cartesian.Monoidal.html#1572" class="Function">op-cartesianMonoidal.×A≅A</a><a id="4248" class="Symbol">)</a>
<a id="CocartesianMonoidal.A+⊥≅A"></a><a id="4253" href="Categories.Category.Cocartesian.html#4253" class="Function">A+⊥≅A</a> <a id="4259" class="Symbol">:</a> <a id="4261" href="Categories.Category.Cocartesian.html#506" class="Generalizable">A</a> <a id="4263" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="4265" href="Categories.Object.Initial.html#804" class="Function"></a> <a id="4267" href="Categories.Morphism.html#1958" class="Record Operator"></a> <a id="4269" href="Categories.Category.Cocartesian.html#506" class="Generalizable">A</a>
<a id="4273" href="Categories.Category.Cocartesian.html#4253" class="Function">A+⊥≅A</a> <a id="4279" class="Symbol">=</a> <a id="4281" href="Categories.Morphism.Duality.html#873" class="Function">op-≅⇒≅</a> <a id="4288" class="Symbol">(</a><a id="4289" href="Categories.Category.Cartesian.Monoidal.html#1852" class="Function">op-cartesianMonoidal.A×≅A</a><a id="4315" class="Symbol">)</a>
<a id="4320" class="Keyword">open</a> <a id="4325" href="Categories.Category.Cocartesian.html#4124" class="Module">op-cartesianMonoidal</a>
<a id="4350" class="Keyword">using</a> <a id="4356" class="Symbol">(</a><a id="4357" href="Categories.Category.Cartesian.Monoidal.html#5400" class="Function">monoidal</a><a id="4365" class="Symbol">)</a>
<a id="4371" class="Comment">-- both are natural isomorphism</a>
<a id="4407" class="Keyword">renaming</a> <a id="4416" class="Symbol">(</a><a id="4417" href="Categories.Category.Cartesian.Monoidal.html#2132" class="Function">×--id</a> <a id="4424" class="Symbol">to</a> <a id="4427" class="Function">⊥+--id</a><a id="4433" class="Symbol">;</a> <a id="4435" href="Categories.Category.Cartesian.Monoidal.html#2927" class="Function">-×-id</a> <a id="4442" class="Symbol">to</a> <a id="4445" class="Function">-+⊥-id</a><a id="4451" class="Symbol">)</a>
<a id="4457" class="Keyword">public</a>
<a id="4467" class="Keyword">open</a> <a id="4472" href="Categories.Category.Monoidal.Core.html#1287" class="Module">Monoidal</a> <a id="4481" href="Categories.Category.Cartesian.Monoidal.html#5400" class="Function">monoidal</a> <a id="4490" class="Keyword">using</a> <a id="4496" class="Symbol">(</a><a id="4497" href="Categories.Category.Monoidal.Core.html#1380" class="Field">unit</a><a id="4501" class="Symbol">;</a> <a id="4503" href="Categories.Category.Monoidal.Core.html#2582" class="Field">unitorˡ-commute-to</a><a id="4521" class="Symbol">;</a> <a id="4523" href="Categories.Category.Monoidal.Core.html#2517" class="Field">unitorˡ-commute-from</a><a id="4543" class="Symbol">;</a> <a id="4545" href="Categories.Category.Monoidal.Core.html#2712" class="Field">unitorʳ-commute-to</a><a id="4563" class="Symbol">;</a>
<a id="4569" href="Categories.Category.Monoidal.Core.html#2647" class="Field">unitorʳ-commute-from</a><a id="4589" class="Symbol">;</a> <a id="4591" href="Categories.Category.Monoidal.Core.html#2860" class="Field">assoc-commute-to</a><a id="4607" class="Symbol">;</a> <a id="4609" href="Categories.Category.Monoidal.Core.html#2777" class="Field">assoc-commute-from</a><a id="4627" class="Symbol">;</a> <a id="4629" href="Categories.Category.Monoidal.Core.html#2943" class="Field">triangle</a><a id="4637" class="Symbol">;</a> <a id="4639" href="Categories.Category.Monoidal.Core.html#3174" class="Field">pentagon</a><a id="4647" class="Symbol">)</a>
<a id="CocartesianMonoidal.+-monoidal"></a><a id="4652" href="Categories.Category.Cocartesian.html#4652" class="Function">+-monoidal</a> <a id="4663" class="Symbol">:</a> <a id="4665" href="Categories.Category.Monoidal.Core.html#1287" class="Record">Monoidal</a> <a id="4674" href="Categories.Category.Cocartesian.html#375" class="Bound">𝒞</a>
<a id="4678" href="Categories.Category.Cocartesian.html#4652" class="Function">+-monoidal</a> <a id="4689" class="Symbol">=</a> <a id="4691" class="Keyword">record</a>
<a id="4702" class="Symbol">{</a> <a id="4704" href="Categories.Category.Monoidal.Core.html#1355" class="Field"></a> <a id="4725" class="Symbol">=</a> <a id="4727" href="Categories.Category.Cocartesian.html#2994" class="Function">-+-</a>
<a id="4735" class="Symbol">;</a> <a id="4737" href="Categories.Category.Monoidal.Core.html#1380" class="Field">unit</a> <a id="4758" class="Symbol">=</a> <a id="4760" href="Categories.Category.Monoidal.Core.html#1380" class="Function">unit</a>
<a id="4769" class="Symbol">;</a> <a id="4771" href="Categories.Category.Monoidal.Core.html#1700" class="Field">unitorˡ</a> <a id="4792" class="Symbol">=</a> <a id="4794" href="Categories.Category.Cocartesian.html#4186" class="Function">⊥+A≅A</a>
<a id="4804" class="Symbol">;</a> <a id="4806" href="Categories.Category.Monoidal.Core.html#1731" class="Field">unitorʳ</a> <a id="4827" class="Symbol">=</a> <a id="4829" href="Categories.Category.Cocartesian.html#4253" class="Function">A+⊥≅A</a>
<a id="4839" class="Symbol">;</a> <a id="4841" href="Categories.Category.Monoidal.Core.html#1762" class="Field">associator</a> <a id="4862" class="Symbol">=</a> <a id="4864" href="Relation.Binary.Structures.html#1622" class="Function">≅.sym</a> <a id="4870" href="Categories.Category.Cocartesian.html#2049" class="Function">+-assoc</a>
<a id="4882" class="Symbol">;</a> <a id="4884" href="Categories.Category.Monoidal.Core.html#2517" class="Field">unitorˡ-commute-from</a> <a id="4905" class="Symbol">=</a> <a id="4907" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="4909" href="Categories.Category.Monoidal.Core.html#2582" class="Function">unitorˡ-commute-to</a>
<a id="4932" class="Symbol">;</a> <a id="4934" href="Categories.Category.Monoidal.Core.html#2582" class="Field">unitorˡ-commute-to</a> <a id="4955" class="Symbol">=</a> <a id="4957" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="4959" href="Categories.Category.Monoidal.Core.html#2517" class="Function">unitorˡ-commute-from</a>
<a id="4984" class="Symbol">;</a> <a id="4986" href="Categories.Category.Monoidal.Core.html#2647" class="Field">unitorʳ-commute-from</a> <a id="5007" class="Symbol">=</a> <a id="5009" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="5011" href="Categories.Category.Monoidal.Core.html#2712" class="Function">unitorʳ-commute-to</a>
<a id="5034" class="Symbol">;</a> <a id="5036" href="Categories.Category.Monoidal.Core.html#2712" class="Field">unitorʳ-commute-to</a> <a id="5057" class="Symbol">=</a> <a id="5059" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="5061" href="Categories.Category.Monoidal.Core.html#2647" class="Function">unitorʳ-commute-from</a>
<a id="5086" class="Symbol">;</a> <a id="5088" href="Categories.Category.Monoidal.Core.html#2777" class="Field">assoc-commute-from</a> <a id="5109" class="Symbol">=</a> <a id="5111" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="5113" href="Categories.Category.Monoidal.Core.html#2860" class="Function">assoc-commute-to</a>
<a id="5134" class="Symbol">;</a> <a id="5136" href="Categories.Category.Monoidal.Core.html#2860" class="Field">assoc-commute-to</a> <a id="5157" class="Symbol">=</a> <a id="5159" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="5161" href="Categories.Category.Monoidal.Core.html#2777" class="Function">assoc-commute-from</a>
<a id="5184" class="Comment">-- the proof idea of triangle is that the opposite triangle is obtained for free,</a>
<a id="5270" class="Comment">-- but notice that triangle and the opposite triangle form isomorphism.</a>
<a id="5346" class="Symbol">;</a> <a id="5348" href="Categories.Category.Monoidal.Core.html#2943" class="Field">triangle</a> <a id="5369" class="Symbol">=</a> <a id="5371" class="Symbol">λ</a> <a id="5373" class="Symbol">{</a><a id="5374" href="Categories.Category.Cocartesian.html#5374" class="Bound">X</a> <a id="5376" href="Categories.Category.Cocartesian.html#5376" class="Bound">Y</a><a id="5377" class="Symbol">}</a> <a id="5379" class="Symbol"></a>
<a id="5412" href="Categories.Morphism.Properties.html#1507" class="Function">Iso-≈</a> <a id="5418" href="Categories.Category.Monoidal.Core.html#2943" class="Function">triangle</a>
<a id="5464" class="Symbol">(</a><a id="5465" href="Categories.Morphism.Properties.html#1137" class="Function">Iso-∘</a> <a id="5471" class="Symbol">(</a><a id="5472" href="Categories.Functor.Properties.html#2843" class="Function Operator">[</a> <a id="5474" href="Categories.Category.Cocartesian.html#5374" class="Bound">X</a> <a id="5476" href="Categories.Category.Cocartesian.html#3335" class="Function Operator">+-</a> <a id="5479" href="Categories.Functor.Properties.html#2843" class="Function Operator">]-resp-Iso</a> <a id="5490" class="Symbol">(</a><a id="5491" href="Categories.Morphism.Properties.html#734" class="Function">Iso-swap</a> <a id="5500" class="Symbol">(</a><a id="5501" href="Categories.Morphism.html#2040" class="Field">iso</a> <a id="5505" href="Categories.Category.Cocartesian.html#4186" class="Function">⊥+A≅A</a><a id="5510" class="Symbol">)))</a>
<a id="5558" class="Symbol">(</a><a id="5559" href="Categories.Morphism.html#2040" class="Field">iso</a> <a id="5563" href="Categories.Category.Cocartesian.html#2049" class="Function">+-assoc</a><a id="5570" class="Symbol">))</a>
<a id="5610" class="Symbol">(</a><a id="5611" href="Categories.Functor.Properties.html#2843" class="Function Operator">[</a> <a id="5613" href="Categories.Category.Cocartesian.html#3291" class="Function Operator">-+</a> <a id="5616" href="Categories.Category.Cocartesian.html#5376" class="Bound">Y</a> <a id="5618" href="Categories.Functor.Properties.html#2843" class="Function Operator">]-resp-Iso</a> <a id="5629" class="Symbol">(</a><a id="5630" href="Categories.Morphism.Properties.html#734" class="Function">Iso-swap</a> <a id="5639" class="Symbol">(</a><a id="5640" href="Categories.Morphism.html#2040" class="Field">iso</a> <a id="5644" href="Categories.Category.Cocartesian.html#4253" class="Function">A+⊥≅A</a><a id="5649" class="Symbol">)))</a>
<a id="5657" class="Symbol">;</a> <a id="5659" href="Categories.Category.Monoidal.Core.html#3174" class="Field">pentagon</a> <a id="5680" class="Symbol">=</a> <a id="5682" class="Symbol">λ</a> <a id="5684" class="Symbol">{</a><a id="5685" href="Categories.Category.Cocartesian.html#5685" class="Bound">X</a> <a id="5687" href="Categories.Category.Cocartesian.html#5687" class="Bound">Y</a> <a id="5689" href="Categories.Category.Cocartesian.html#5689" class="Bound">Z</a> <a id="5691" href="Categories.Category.Cocartesian.html#5691" class="Bound">W</a><a id="5692" class="Symbol">}</a> <a id="5694" class="Symbol"></a>
<a id="5727" href="Categories.Morphism.Properties.html#1507" class="Function">Iso-≈</a> <a id="5733" href="Categories.Category.Monoidal.Core.html#3174" class="Function">pentagon</a>
<a id="5779" class="Symbol">(</a><a id="5780" href="Categories.Morphism.Properties.html#1137" class="Function">Iso-∘</a> <a id="5786" class="Symbol">(</a><a id="5787" href="Categories.Functor.Properties.html#2843" class="Function Operator">[</a> <a id="5789" href="Categories.Category.Cocartesian.html#5685" class="Bound">X</a> <a id="5791" href="Categories.Category.Cocartesian.html#3335" class="Function Operator">+-</a> <a id="5794" href="Categories.Functor.Properties.html#2843" class="Function Operator">]-resp-Iso</a> <a id="5805" class="Symbol">(</a><a id="5806" href="Categories.Morphism.html#2040" class="Field">iso</a> <a id="5810" href="Categories.Category.Cocartesian.html#2049" class="Function">+-assoc</a><a id="5817" class="Symbol">))</a>
<a id="5857" class="Symbol">(</a><a id="5858" href="Categories.Morphism.Properties.html#1137" class="Function">Iso-∘</a> <a id="5864" class="Symbol">(</a><a id="5865" href="Categories.Morphism.html#2040" class="Field">iso</a> <a id="5869" href="Categories.Category.Cocartesian.html#2049" class="Function">+-assoc</a><a id="5876" class="Symbol">)</a>
<a id="5922" class="Symbol">(</a><a id="5923" href="Categories.Functor.Properties.html#2843" class="Function Operator">[</a> <a id="5925" href="Categories.Category.Cocartesian.html#3291" class="Function Operator">-+</a> <a id="5928" href="Categories.Category.Cocartesian.html#5691" class="Bound">W</a> <a id="5930" href="Categories.Functor.Properties.html#2843" class="Function Operator">]-resp-Iso</a> <a id="5941" class="Symbol">(</a><a id="5942" href="Categories.Morphism.html#2040" class="Field">iso</a> <a id="5946" href="Categories.Category.Cocartesian.html#2049" class="Function">+-assoc</a><a id="5953" class="Symbol">))))</a>
<a id="5995" class="Symbol">(</a><a id="5996" href="Categories.Morphism.Properties.html#1137" class="Function">Iso-∘</a> <a id="6002" class="Symbol">(</a><a id="6003" href="Categories.Morphism.html#2040" class="Field">iso</a> <a id="6007" href="Categories.Category.Cocartesian.html#2049" class="Function">+-assoc</a><a id="6014" class="Symbol">)</a> <a id="6016" class="Symbol">(</a><a id="6017" href="Categories.Morphism.html#2040" class="Field">iso</a> <a id="6021" href="Categories.Category.Cocartesian.html#2049" class="Function">+-assoc</a><a id="6028" class="Symbol">))</a>
<a id="6035" class="Symbol">}</a>
<a id="6041" class="Keyword">where</a> <a id="6047" class="Keyword">open</a> <a id="6052" href="Categories.Category.Cocartesian.html#4124" class="Module">op-cartesianMonoidal</a>
<a id="6083" class="Keyword">open</a> <a id="6088" href="Categories.Morphism.html#1958" class="Module Operator">_≅_</a>
<a id="6095" class="Keyword">open</a> <a id="6100" href="Categories.Category.Monoidal.Core.html#1287" class="Module">Monoidal</a> <a id="6109" href="Categories.Category.Cocartesian.html#4652" class="Function">+-monoidal</a> <a id="6120" class="Keyword">public</a>
<a id="6128" class="Keyword">module</a> <a id="CocartesianSymmetricMonoidal"></a><a id="6135" href="Categories.Category.Cocartesian.html#6135" class="Module">CocartesianSymmetricMonoidal</a> <a id="6164" class="Symbol">(</a><a id="6165" href="Categories.Category.Cocartesian.html#6165" class="Bound">cocartesian</a> <a id="6177" class="Symbol">:</a> <a id="6179" href="Categories.Category.Cocartesian.html#3385" class="Record">Cocartesian</a><a id="6190" class="Symbol">)</a> <a id="6192" class="Keyword">where</a>
<a id="6200" class="Keyword">open</a> <a id="6205" href="Categories.Category.Cocartesian.html#3385" class="Module">Cocartesian</a> <a id="6217" href="Categories.Category.Cocartesian.html#6165" class="Bound">cocartesian</a>
<a id="6231" class="Keyword">open</a> <a id="6236" href="Categories.Category.Cocartesian.html#4022" class="Module">CocartesianMonoidal</a> <a id="6256" href="Categories.Category.Cocartesian.html#6165" class="Bound">cocartesian</a>
<a id="6270" class="Keyword">private</a>
<a id="6282" class="Keyword">module</a> <a id="CocartesianSymmetricMonoidal.op-cartesianSymmetricMonoidal"></a><a id="6289" href="Categories.Category.Cocartesian.html#6289" class="Module">op-cartesianSymmetricMonoidal</a> <a id="6319" class="Symbol">=</a> <a id="6321" href="Categories.Category.Cartesian.SymmetricMonoidal.html" class="Module">CSM</a> <a id="6325" href="Categories.Category.Core.html#3132" class="Function">𝒞.op</a> <a id="6330" href="Categories.Category.Cocartesian.html#3780" class="Function">Dual.op-cartesian</a>
<a id="CocartesianSymmetricMonoidal.+-symmetric"></a><a id="6351" href="Categories.Category.Cocartesian.html#6351" class="Function">+-symmetric</a> <a id="6363" class="Symbol">:</a> <a id="6365" href="Categories.Category.Monoidal.Symmetric.html#997" class="Record">Symmetric</a> <a id="6375" href="Categories.Category.Cocartesian.html#4652" class="Function">+-monoidal</a>
<a id="6388" href="Categories.Category.Cocartesian.html#6351" class="Function">+-symmetric</a> <a id="6400" class="Symbol">=</a> <a id="6402" class="Keyword">record</a>
<a id="6413" class="Symbol">{</a> <a id="6415" href="Categories.Category.Monoidal.Symmetric.html#1047" class="Field">braided</a> <a id="6427" class="Symbol">=</a> <a id="6429" class="Keyword">record</a>
<a id="6442" class="Symbol">{</a> <a id="6444" href="Categories.Category.Monoidal.Braided.html#717" class="Field">braiding</a> <a id="6453" class="Symbol">=</a> <a id="6455" class="Keyword">record</a>
<a id="6470" class="Symbol">{</a> <a id="6472" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="6476" class="Symbol">=</a> <a id="6478" class="Keyword">record</a>
<a id="6495" class="Symbol">{</a> <a id="6497" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="6509" class="Symbol">=</a> <a id="6511" class="Symbol">λ</a> <a id="6513" href="Categories.Category.Cocartesian.html#6513" class="Bound">_</a> <a id="6515" class="Symbol"></a> <a id="6517" href="Categories.Category.Cocartesian.html#2431" class="Function">+-swap</a>
<a id="6534" class="Symbol">;</a> <a id="6536" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="6548" class="Symbol">=</a> <a id="6550" class="Symbol">λ</a> <a id="6552" href="Categories.Category.Cocartesian.html#6552" class="Bound">_</a> <a id="6554" class="Symbol"></a> <a id="6556" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="6558" href="Categories.Category.Cocartesian.html#2817" class="Function">+₁∘+-swap</a>
<a id="6578" class="Symbol">;</a> <a id="6580" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="6592" class="Symbol">=</a> <a id="6594" class="Symbol">λ</a> <a id="6596" href="Categories.Category.Cocartesian.html#6596" class="Bound">_</a> <a id="6598" class="Symbol"></a> <a id="6600" href="Categories.Category.Cocartesian.html#2817" class="Function">+₁∘+-swap</a>
<a id="6620" class="Symbol">}</a>
<a id="6630" class="Symbol">;</a> <a id="6632" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="6636" class="Symbol">=</a> <a id="6638" class="Keyword">record</a>
<a id="6655" class="Symbol">{</a> <a id="6657" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="6669" class="Symbol">=</a> <a id="6671" class="Symbol">λ</a> <a id="6673" href="Categories.Category.Cocartesian.html#6673" class="Bound">_</a> <a id="6675" class="Symbol"></a> <a id="6677" href="Categories.Category.Cocartesian.html#2431" class="Function">+-swap</a>
<a id="6694" class="Symbol">;</a> <a id="6696" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="6708" class="Symbol">=</a> <a id="6710" class="Symbol">λ</a> <a id="6712" href="Categories.Category.Cocartesian.html#6712" class="Bound">_</a> <a id="6714" class="Symbol"></a> <a id="6716" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="6718" href="Categories.Category.Cocartesian.html#2817" class="Function">+₁∘+-swap</a>
<a id="6738" class="Symbol">;</a> <a id="6740" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="6752" class="Symbol">=</a> <a id="6754" class="Symbol">λ</a> <a id="6756" href="Categories.Category.Cocartesian.html#6756" class="Bound">_</a> <a id="6758" class="Symbol"></a> <a id="6760" href="Categories.Category.Cocartesian.html#2817" class="Function">+₁∘+-swap</a>
<a id="6780" class="Symbol">}</a>
<a id="6790" class="Symbol">;</a> <a id="6792" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="6796" class="Symbol">=</a> <a id="6798" class="Symbol">λ</a> <a id="6800" href="Categories.Category.Cocartesian.html#6800" class="Bound">_</a> <a id="6802" class="Symbol"></a> <a id="6804" href="Categories.Morphism.html#2040" class="Field">iso</a> <a id="6808" href="Categories.Category.Cocartesian.html#1978" class="Function">+-comm</a>
<a id="6823" class="Symbol">}</a>
<a id="6831" class="Symbol">;</a> <a id="6833" href="Categories.Category.Monoidal.Braided.html#912" class="Field">hexagon₁</a> <a id="6842" class="Symbol">=</a> <a id="6844" href="Categories.Category.Monoidal.Braided.html#1287" class="Function">hexagon₂</a>
<a id="6859" class="Symbol">;</a> <a id="6861" href="Categories.Category.Monoidal.Braided.html#1287" class="Field">hexagon₂</a> <a id="6870" class="Symbol">=</a> <a id="6872" href="Categories.Category.Monoidal.Braided.html#912" class="Function">hexagon₁</a>
<a id="6887" class="Symbol">}</a>
<a id="6893" class="Symbol">;</a> <a id="6895" href="Categories.Category.Monoidal.Symmetric.html#1218" class="Field">commutative</a> <a id="6907" class="Symbol">=</a> <a id="6909" href="Categories.Category.Monoidal.Symmetric.html#1218" class="Function">commutative</a>
<a id="6925" class="Symbol">}</a>
<a id="6931" class="Keyword">where</a> <a id="6937" class="Keyword">open</a> <a id="6942" href="Categories.Category.Cocartesian.html#6289" class="Module">op-cartesianSymmetricMonoidal</a>
<a id="6982" class="Keyword">open</a> <a id="6987" href="Categories.Morphism.html#1958" class="Module Operator">_≅_</a>
<a id="7001" class="Keyword">open</a> <a id="7006" href="Categories.Category.Monoidal.Symmetric.html#997" class="Module">Symmetric</a> <a id="7016" href="Categories.Category.Cartesian.SymmetricMonoidal.html#2255" class="Function">symmetric</a> <a id="7026" class="Keyword">using</a> <a id="7032" class="Symbol">(</a><a id="7033" href="Categories.Category.Monoidal.Symmetric.html#1218" class="Field">commutative</a><a id="7044" class="Symbol">;</a> <a id="7046" href="Categories.Category.Monoidal.Braided.html#912" class="Function">hexagon₁</a><a id="7054" class="Symbol">;</a> <a id="7056" href="Categories.Category.Monoidal.Braided.html#1287" class="Function">hexagon₂</a><a id="7064" class="Symbol">)</a>
<a id="7069" class="Keyword">open</a> <a id="7074" href="Categories.Category.Monoidal.Symmetric.html#997" class="Module">Symmetric</a> <a id="7084" href="Categories.Category.Cocartesian.html#6351" class="Function">+-symmetric</a> <a id="7096" class="Keyword">public</a>
</pre></body></html>