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

116 lines
No EOL
33 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.Monoidal.Symmetric</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.html" class="Module">Categories.Category</a>
<a id="69" class="Keyword">open</a> <a id="74" class="Keyword">import</a> <a id="81" href="Categories.Category.Monoidal.Core.html" class="Module">Categories.Category.Monoidal.Core</a> <a id="115" class="Keyword">using</a> <a id="121" class="Symbol">(</a><a id="122" href="Categories.Category.Monoidal.Core.html#1287" class="Record">Monoidal</a><a id="130" class="Symbol">)</a>
<a id="133" class="Keyword">module</a> <a id="140" href="Categories.Category.Monoidal.Symmetric.html" class="Module">Categories.Category.Monoidal.Symmetric</a> <a id="179" class="Symbol">{</a><a id="180" href="Categories.Category.Monoidal.Symmetric.html#180" class="Bound">o</a> <a id="182" href="Categories.Category.Monoidal.Symmetric.html#182" class="Bound"></a> <a id="184" href="Categories.Category.Monoidal.Symmetric.html#184" class="Bound">e</a><a id="185" class="Symbol">}</a> <a id="187" class="Symbol">{</a><a id="188" href="Categories.Category.Monoidal.Symmetric.html#188" class="Bound">C</a> <a id="190" class="Symbol">:</a> <a id="192" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="201" href="Categories.Category.Monoidal.Symmetric.html#180" class="Bound">o</a> <a id="203" href="Categories.Category.Monoidal.Symmetric.html#182" class="Bound"></a> <a id="205" href="Categories.Category.Monoidal.Symmetric.html#184" class="Bound">e</a><a id="206" class="Symbol">}</a> <a id="208" class="Symbol">(</a><a id="209" href="Categories.Category.Monoidal.Symmetric.html#209" class="Bound">M</a> <a id="211" class="Symbol">:</a> <a id="213" href="Categories.Category.Monoidal.Core.html#1287" class="Record">Monoidal</a> <a id="222" href="Categories.Category.Monoidal.Symmetric.html#188" class="Bound">C</a><a id="223" class="Symbol">)</a> <a id="225" class="Keyword">where</a>
<a id="232" class="Keyword">open</a> <a id="237" class="Keyword">import</a> <a id="244" href="Level.html" class="Module">Level</a>
<a id="251" class="Keyword">open</a> <a id="256" class="Keyword">import</a> <a id="263" href="Data.Product.html" class="Module">Data.Product</a> <a id="276" class="Keyword">using</a> <a id="282" class="Symbol">(</a><a id="283" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a><a id="284" class="Symbol">;</a> <a id="286" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">_,_</a><a id="289" class="Symbol">)</a>
<a id="292" class="Keyword">open</a> <a id="297" class="Keyword">import</a> <a id="304" href="Categories.Functor.Bifunctor.html" class="Module">Categories.Functor.Bifunctor</a>
<a id="333" class="Keyword">open</a> <a id="338" class="Keyword">import</a> <a id="345" href="Categories.Functor.Properties.html" class="Module">Categories.Functor.Properties</a>
<a id="375" class="Keyword">open</a> <a id="380" class="Keyword">import</a> <a id="387" href="Categories.NaturalTransformation.NaturalIsomorphism.html" class="Module">Categories.NaturalTransformation.NaturalIsomorphism</a> <a id="439" class="Keyword">using</a> <a id="445" class="Symbol">(</a><a id="446" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Record">NaturalIsomorphism</a><a id="464" class="Symbol">)</a>
<a id="467" class="Keyword">open</a> <a id="472" class="Keyword">import</a> <a id="479" href="Categories.Morphism.html" class="Module">Categories.Morphism</a> <a id="499" href="Categories.Category.Monoidal.Symmetric.html#188" class="Bound">C</a>
<a id="501" class="Keyword">open</a> <a id="506" class="Keyword">import</a> <a id="513" href="Categories.Morphism.Properties.html" class="Module">Categories.Morphism.Properties</a> <a id="544" href="Categories.Category.Monoidal.Symmetric.html#188" class="Bound">C</a>
<a id="546" class="Keyword">open</a> <a id="551" class="Keyword">import</a> <a id="558" href="Categories.Category.Monoidal.Braided.html" class="Module">Categories.Category.Monoidal.Braided</a> <a id="595" href="Categories.Category.Monoidal.Symmetric.html#209" class="Bound">M</a>
<a id="597" class="Keyword">open</a> <a id="602" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="611" href="Categories.Category.Monoidal.Symmetric.html#188" class="Bound">C</a>
<a id="613" class="Keyword">open</a> <a id="618" href="Categories.Category.html#1298" class="Module">Commutation</a> <a id="630" href="Categories.Category.Monoidal.Symmetric.html#188" class="Bound">C</a>
<a id="633" class="Keyword">private</a>
<a id="643" class="Keyword">variable</a>
<a id="656" href="Categories.Category.Monoidal.Symmetric.html#656" class="Generalizable">X</a> <a id="658" href="Categories.Category.Monoidal.Symmetric.html#658" class="Generalizable">Y</a> <a id="660" href="Categories.Category.Monoidal.Symmetric.html#660" class="Generalizable">Z</a> <a id="662" class="Symbol">:</a> <a id="664" href="Categories.Category.Core.html#559" class="Function">Obj</a>
<a id="669" class="Comment">-- symmetric monoidal category</a>
<a id="700" class="Comment">-- commutative braided monoidal category</a>
<a id="741" class="Comment">--</a>
<a id="744" class="Comment">-- the reason why we define symmetric categories via braided monoidal categories could</a>
<a id="831" class="Comment">-- be not obvious, but it is the right definition: it requires again a redundant</a>
<a id="912" class="Comment">-- hexagon proof which allows achieves definitional equality of the opposite.</a>
<a id="990" class="Keyword">record</a> <a id="Symmetric"></a><a id="997" href="Categories.Category.Monoidal.Symmetric.html#997" class="Record">Symmetric</a> <a id="1007" class="Symbol">:</a> <a id="1009" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1013" class="Symbol">(</a><a id="1014" href="Level.html#602" class="Function">levelOfTerm</a> <a id="1026" href="Categories.Category.Monoidal.Symmetric.html#209" class="Bound">M</a><a id="1027" class="Symbol">)</a> <a id="1029" class="Keyword">where</a>
<a id="1037" class="Keyword">field</a>
<a id="Symmetric.braided"></a><a id="1047" href="Categories.Category.Monoidal.Symmetric.html#1047" class="Field">braided</a> <a id="1055" class="Symbol">:</a> <a id="1057" href="Categories.Category.Monoidal.Braided.html#643" class="Record">Braided</a>
<a id="1068" class="Keyword">module</a> <a id="Symmetric.braided"></a><a id="1075" href="Categories.Category.Monoidal.Symmetric.html#1075" class="Module">braided</a> <a id="1083" class="Symbol">=</a> <a id="1085" href="Categories.Category.Monoidal.Braided.html#643" class="Module">Braided</a> <a id="1093" href="Categories.Category.Monoidal.Symmetric.html#1047" class="Field">braided</a>
<a id="1103" class="Keyword">open</a> <a id="1108" href="Categories.Category.Monoidal.Symmetric.html#1075" class="Module">braided</a> <a id="1116" class="Keyword">public</a>
<a id="1126" class="Keyword">private</a>
<a id="Symmetric.B"></a><a id="1138" href="Categories.Category.Monoidal.Symmetric.html#1138" class="Function">B</a> <a id="1140" class="Symbol">:</a> <a id="1142" class="Symbol"></a> <a id="1144" class="Symbol">{</a><a id="1145" href="Categories.Category.Monoidal.Symmetric.html#1145" class="Bound">X</a> <a id="1147" href="Categories.Category.Monoidal.Symmetric.html#1147" class="Bound">Y</a><a id="1148" class="Symbol">}</a> <a id="1150" class="Symbol"></a> <a id="1152" href="Categories.Category.Monoidal.Symmetric.html#1145" class="Bound">X</a> <a id="1154" href="Categories.Category.Monoidal.Core.html#1435" class="Function Operator">⊗₀</a> <a id="1157" href="Categories.Category.Monoidal.Symmetric.html#1147" class="Bound">Y</a> <a id="1159" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="1161" href="Categories.Category.Monoidal.Symmetric.html#1147" class="Bound">Y</a> <a id="1163" href="Categories.Category.Monoidal.Core.html#1435" class="Function Operator">⊗₀</a> <a id="1166" href="Categories.Category.Monoidal.Symmetric.html#1145" class="Bound">X</a>
<a id="1172" href="Categories.Category.Monoidal.Symmetric.html#1138" class="Function">B</a> <a id="1174" class="Symbol">{</a><a id="1175" href="Categories.Category.Monoidal.Symmetric.html#1175" class="Bound">X</a><a id="1176" class="Symbol">}</a> <a id="1178" class="Symbol">{</a><a id="1179" href="Categories.Category.Monoidal.Symmetric.html#1179" class="Bound">Y</a><a id="1180" class="Symbol">}</a> <a id="1182" class="Symbol">=</a> <a id="1184" href="Categories.NaturalTransformation.Core.html#783" class="Function">braiding.⇒.η</a> <a id="1197" class="Symbol">(</a><a id="1198" href="Categories.Category.Monoidal.Symmetric.html#1175" class="Bound">X</a> <a id="1200" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="1202" href="Categories.Category.Monoidal.Symmetric.html#1179" class="Bound">Y</a><a id="1203" class="Symbol">)</a>
<a id="1208" class="Keyword">field</a>
<a id="Symmetric.commutative"></a><a id="1218" href="Categories.Category.Monoidal.Symmetric.html#1218" class="Field">commutative</a> <a id="1230" class="Symbol">:</a> <a id="1232" href="Categories.Category.Monoidal.Symmetric.html#1138" class="Function">B</a> <a id="1234" class="Symbol">{</a><a id="1235" href="Categories.Category.Monoidal.Symmetric.html#656" class="Generalizable">X</a><a id="1236" class="Symbol">}</a> <a id="1238" class="Symbol">{</a><a id="1239" href="Categories.Category.Monoidal.Symmetric.html#658" class="Generalizable">Y</a><a id="1240" class="Symbol">}</a> <a id="1242" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1244" href="Categories.Category.Monoidal.Symmetric.html#1138" class="Function">B</a> <a id="1246" class="Symbol">{</a><a id="1247" href="Categories.Category.Monoidal.Symmetric.html#658" class="Generalizable">Y</a><a id="1248" class="Symbol">}</a> <a id="1250" class="Symbol">{</a><a id="1251" href="Categories.Category.Monoidal.Symmetric.html#656" class="Generalizable">X</a><a id="1252" class="Symbol">}</a> <a id="1254" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="1256" href="Categories.Category.Core.html#630" class="Function">id</a>
<a id="Symmetric.braided-iso"></a><a id="1262" href="Categories.Category.Monoidal.Symmetric.html#1262" class="Function">braided-iso</a> <a id="1274" class="Symbol">:</a> <a id="1276" href="Categories.Category.Monoidal.Symmetric.html#656" class="Generalizable">X</a> <a id="1278" href="Categories.Category.Monoidal.Core.html#1435" class="Function Operator">⊗₀</a> <a id="1281" href="Categories.Category.Monoidal.Symmetric.html#658" class="Generalizable">Y</a> <a id="1283" href="Categories.Morphism.html#1958" class="Record Operator"></a> <a id="1285" href="Categories.Category.Monoidal.Symmetric.html#658" class="Generalizable">Y</a> <a id="1287" href="Categories.Category.Monoidal.Core.html#1435" class="Function Operator">⊗₀</a> <a id="1290" href="Categories.Category.Monoidal.Symmetric.html#656" class="Generalizable">X</a>
<a id="1294" href="Categories.Category.Monoidal.Symmetric.html#1262" class="Function">braided-iso</a> <a id="1306" class="Symbol">=</a> <a id="1308" class="Keyword">record</a>
<a id="1319" class="Symbol">{</a> <a id="1321" href="Categories.Morphism.html#2006" class="Field">from</a> <a id="1326" class="Symbol">=</a> <a id="1328" href="Categories.Category.Monoidal.Symmetric.html#1138" class="Function">B</a>
<a id="1334" class="Symbol">;</a> <a id="1336" href="Categories.Morphism.html#2023" class="Field">to</a> <a id="1341" class="Symbol">=</a> <a id="1343" href="Categories.Category.Monoidal.Symmetric.html#1138" class="Function">B</a>
<a id="1349" class="Symbol">;</a> <a id="1351" href="Categories.Morphism.html#2040" class="Field">iso</a> <a id="1356" class="Symbol">=</a> <a id="1358" class="Keyword">record</a>
<a id="1371" class="Symbol">{</a> <a id="1373" href="Categories.Morphism.html#1586" class="Field">isoˡ</a> <a id="1378" class="Symbol">=</a> <a id="1380" href="Categories.Category.Monoidal.Symmetric.html#1218" class="Field">commutative</a>
<a id="1398" class="Symbol">;</a> <a id="1400" href="Categories.Morphism.html#1612" class="Field">isoʳ</a> <a id="1405" class="Symbol">=</a> <a id="1407" href="Categories.Category.Monoidal.Symmetric.html#1218" class="Field">commutative</a>
<a id="1425" class="Symbol">}</a>
<a id="1431" class="Symbol">}</a>
<a id="1436" class="Keyword">module</a> <a id="Symmetric.braided-iso"></a><a id="1443" href="Categories.Category.Monoidal.Symmetric.html#1443" class="Module">braided-iso</a> <a id="1455" class="Symbol">{</a><a id="1456" href="Categories.Category.Monoidal.Symmetric.html#1456" class="Bound">X</a> <a id="1458" href="Categories.Category.Monoidal.Symmetric.html#1458" class="Bound">Y</a><a id="1459" class="Symbol">}</a> <a id="1461" class="Symbol">=</a> <a id="1463" href="Categories.Morphism.html#1958" class="Module Operator">_≅_</a> <a id="1467" class="Symbol">(</a><a id="1468" href="Categories.Category.Monoidal.Symmetric.html#1262" class="Function">braided-iso</a> <a id="1480" class="Symbol">{</a><a id="1481" href="Categories.Category.Monoidal.Symmetric.html#1456" class="Bound">X</a><a id="1482" class="Symbol">}</a> <a id="1484" class="Symbol">{</a><a id="1485" href="Categories.Category.Monoidal.Symmetric.html#1458" class="Bound">Y</a><a id="1486" class="Symbol">})</a>
<a id="1490" class="Keyword">private</a>
<a id="1500" class="Keyword">record</a> <a id="Symmetric"></a><a id="1507" href="Categories.Category.Monoidal.Symmetric.html#1507" class="Record">Symmetric</a> <a id="1518" class="Symbol">:</a> <a id="1520" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1524" class="Symbol">(</a><a id="1525" href="Level.html#602" class="Function">levelOfTerm</a> <a id="1537" href="Categories.Category.Monoidal.Symmetric.html#209" class="Bound">M</a><a id="1538" class="Symbol">)</a> <a id="1540" class="Keyword">where</a>
<a id="1550" class="Keyword">open</a> <a id="1555" href="Categories.Category.Monoidal.Core.html#1287" class="Module">Monoidal</a> <a id="1564" href="Categories.Category.Monoidal.Symmetric.html#209" class="Bound">M</a>
<a id="1571" class="Keyword">field</a>
<a id="Symmetric.braiding"></a><a id="1583" href="Categories.Category.Monoidal.Symmetric.html#1583" class="Field">braiding</a> <a id="1592" class="Symbol">:</a> <a id="1594" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Record">NaturalIsomorphism</a> <a id="1613" href="Categories.Category.Monoidal.Core.html#1355" class="Function"></a> <a id="1615" class="Symbol">(</a><a id="1616" href="Categories.Functor.Bifunctor.html#2113" class="Function">flip-bifunctor</a> <a id="1631" href="Categories.Category.Monoidal.Core.html#1355" class="Function"></a><a id="1632" class="Symbol">)</a>
<a id="1639" class="Keyword">module</a> <a id="Symmetric.braiding"></a><a id="1646" href="Categories.Category.Monoidal.Symmetric.html#1646" class="Module">braiding</a> <a id="1655" class="Symbol">=</a> <a id="1657" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Module">NaturalIsomorphism</a> <a id="1676" href="Categories.Category.Monoidal.Symmetric.html#1583" class="Field">braiding</a>
<a id="1690" class="Keyword">private</a>
<a id="Symmetric.B"></a><a id="1704" href="Categories.Category.Monoidal.Symmetric.html#1704" class="Function">B</a> <a id="1706" class="Symbol">:</a> <a id="1708" class="Symbol"></a> <a id="1710" class="Symbol">{</a><a id="1711" href="Categories.Category.Monoidal.Symmetric.html#1711" class="Bound">X</a> <a id="1713" href="Categories.Category.Monoidal.Symmetric.html#1713" class="Bound">Y</a><a id="1714" class="Symbol">}</a> <a id="1716" class="Symbol"></a> <a id="1718" href="Categories.Category.Monoidal.Symmetric.html#1711" class="Bound">X</a> <a id="1720" href="Categories.Category.Monoidal.Core.html#1435" class="Function Operator">⊗₀</a> <a id="1723" href="Categories.Category.Monoidal.Symmetric.html#1713" class="Bound">Y</a> <a id="1725" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="1727" href="Categories.Category.Monoidal.Symmetric.html#1713" class="Bound">Y</a> <a id="1729" href="Categories.Category.Monoidal.Core.html#1435" class="Function Operator">⊗₀</a> <a id="1732" href="Categories.Category.Monoidal.Symmetric.html#1711" class="Bound">X</a>
<a id="1740" href="Categories.Category.Monoidal.Symmetric.html#1704" class="Function">B</a> <a id="1742" class="Symbol">{</a><a id="1743" href="Categories.Category.Monoidal.Symmetric.html#1743" class="Bound">X</a><a id="1744" class="Symbol">}</a> <a id="1746" class="Symbol">{</a><a id="1747" href="Categories.Category.Monoidal.Symmetric.html#1747" class="Bound">Y</a><a id="1748" class="Symbol">}</a> <a id="1750" class="Symbol">=</a> <a id="1752" href="Categories.NaturalTransformation.Core.html#783" class="Function">braiding.⇒.η</a> <a id="1765" class="Symbol">(</a><a id="1766" href="Categories.Category.Monoidal.Symmetric.html#1743" class="Bound">X</a> <a id="1768" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="1770" href="Categories.Category.Monoidal.Symmetric.html#1747" class="Bound">Y</a><a id="1771" class="Symbol">)</a>
<a id="1778" class="Keyword">field</a>
<a id="Symmetric.commutative"></a><a id="1790" href="Categories.Category.Monoidal.Symmetric.html#1790" class="Field">commutative</a> <a id="1802" class="Symbol">:</a> <a id="1804" href="Categories.Category.Monoidal.Symmetric.html#1704" class="Function">B</a> <a id="1806" class="Symbol">{</a><a id="1807" href="Categories.Category.Monoidal.Symmetric.html#656" class="Generalizable">X</a><a id="1808" class="Symbol">}</a> <a id="1810" class="Symbol">{</a><a id="1811" href="Categories.Category.Monoidal.Symmetric.html#658" class="Generalizable">Y</a><a id="1812" class="Symbol">}</a> <a id="1814" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1816" href="Categories.Category.Monoidal.Symmetric.html#1704" class="Function">B</a> <a id="1818" class="Symbol">{</a><a id="1819" href="Categories.Category.Monoidal.Symmetric.html#658" class="Generalizable">Y</a><a id="1820" class="Symbol">}</a> <a id="1822" class="Symbol">{</a><a id="1823" href="Categories.Category.Monoidal.Symmetric.html#656" class="Generalizable">X</a><a id="1824" class="Symbol">}</a> <a id="1826" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="1828" href="Categories.Category.Core.html#630" class="Function">id</a>
<a id="Symmetric.hexagon"></a><a id="1837" href="Categories.Category.Monoidal.Symmetric.html#1837" class="Field">hexagon</a> <a id="1849" class="Symbol">:</a> <a id="1851" href="Categories.Category.html#1379" class="Function Operator">[</a> <a id="1853" class="Symbol">(</a><a id="1854" href="Categories.Category.Monoidal.Symmetric.html#656" class="Generalizable">X</a> <a id="1856" href="Categories.Category.Monoidal.Core.html#1435" class="Function Operator">⊗₀</a> <a id="1859" href="Categories.Category.Monoidal.Symmetric.html#658" class="Generalizable">Y</a><a id="1860" class="Symbol">)</a> <a id="1862" href="Categories.Category.Monoidal.Core.html#1435" class="Function Operator">⊗₀</a> <a id="1865" href="Categories.Category.Monoidal.Symmetric.html#660" class="Generalizable">Z</a> <a id="1867" href="Categories.Category.html#1379" class="Function Operator"></a> <a id="1869" href="Categories.Category.Monoidal.Symmetric.html#658" class="Generalizable">Y</a> <a id="1871" href="Categories.Category.Monoidal.Core.html#1435" class="Function Operator">⊗₀</a> <a id="1874" href="Categories.Category.Monoidal.Symmetric.html#660" class="Generalizable">Z</a> <a id="1876" href="Categories.Category.Monoidal.Core.html#1435" class="Function Operator">⊗₀</a> <a id="1879" href="Categories.Category.Monoidal.Symmetric.html#656" class="Generalizable">X</a> <a id="1881" href="Categories.Category.html#1379" class="Function Operator">]⟨</a>
<a id="1906" href="Categories.Category.Monoidal.Symmetric.html#1704" class="Function">B</a> <a id="1909" href="Categories.Category.Monoidal.Core.html#1536" class="Function Operator">⊗₁</a> <a id="1912" href="Categories.Category.Core.html#630" class="Function">id</a> <a id="1934" href="Categories.Category.html#1481" class="Function">⇒⟨</a> <a id="1937" class="Symbol">(</a><a id="1938" href="Categories.Category.Monoidal.Symmetric.html#658" class="Generalizable">Y</a> <a id="1940" href="Categories.Category.Monoidal.Core.html#1435" class="Function Operator">⊗₀</a> <a id="1943" href="Categories.Category.Monoidal.Symmetric.html#656" class="Generalizable">X</a><a id="1944" class="Symbol">)</a> <a id="1946" href="Categories.Category.Monoidal.Core.html#1435" class="Function Operator">⊗₀</a> <a id="1949" href="Categories.Category.Monoidal.Symmetric.html#660" class="Generalizable">Z</a> <a id="1951" href="Categories.Category.html#1481" class="Function"></a>
<a id="1975" href="Categories.Morphism.html#2006" class="Function">associator.from</a> <a id="2003" href="Categories.Category.html#1481" class="Function">⇒⟨</a> <a id="2006" href="Categories.Category.Monoidal.Symmetric.html#658" class="Generalizable">Y</a> <a id="2008" href="Categories.Category.Monoidal.Core.html#1435" class="Function Operator">⊗₀</a> <a id="2011" href="Categories.Category.Monoidal.Symmetric.html#656" class="Generalizable">X</a> <a id="2013" href="Categories.Category.Monoidal.Core.html#1435" class="Function Operator">⊗₀</a> <a id="2016" href="Categories.Category.Monoidal.Symmetric.html#660" class="Generalizable">Z</a> <a id="2018" href="Categories.Category.html#1481" class="Function"></a>
<a id="2042" href="Categories.Category.Core.html#630" class="Function">id</a> <a id="2045" href="Categories.Category.Monoidal.Core.html#1536" class="Function Operator">⊗₁</a> <a id="2048" href="Categories.Category.Monoidal.Symmetric.html#1704" class="Function">B</a>
<a id="2070" href="Categories.Category.html#1379" class="Function Operator"></a> <a id="2072" href="Categories.Morphism.html#2006" class="Function">associator.from</a> <a id="2100" href="Categories.Category.html#1481" class="Function">⇒⟨</a> <a id="2103" href="Categories.Category.Monoidal.Symmetric.html#656" class="Generalizable">X</a> <a id="2105" href="Categories.Category.Monoidal.Core.html#1435" class="Function Operator">⊗₀</a> <a id="2108" href="Categories.Category.Monoidal.Symmetric.html#658" class="Generalizable">Y</a> <a id="2110" href="Categories.Category.Monoidal.Core.html#1435" class="Function Operator">⊗₀</a> <a id="2113" href="Categories.Category.Monoidal.Symmetric.html#660" class="Generalizable">Z</a> <a id="2115" href="Categories.Category.html#1481" class="Function"></a>
<a id="2139" href="Categories.Category.Monoidal.Symmetric.html#1704" class="Function">B</a> <a id="2167" href="Categories.Category.html#1481" class="Function">⇒⟨</a> <a id="2170" class="Symbol">(</a><a id="2171" href="Categories.Category.Monoidal.Symmetric.html#658" class="Generalizable">Y</a> <a id="2173" href="Categories.Category.Monoidal.Core.html#1435" class="Function Operator">⊗₀</a> <a id="2176" href="Categories.Category.Monoidal.Symmetric.html#660" class="Generalizable">Z</a><a id="2177" class="Symbol">)</a> <a id="2179" href="Categories.Category.Monoidal.Core.html#1435" class="Function Operator">⊗₀</a> <a id="2182" href="Categories.Category.Monoidal.Symmetric.html#656" class="Generalizable">X</a> <a id="2184" href="Categories.Category.html#1481" class="Function"></a>
<a id="2208" href="Categories.Morphism.html#2006" class="Function">associator.from</a>
<a id="2244" href="Categories.Category.html#1379" class="Function Operator"></a>
<a id="Symmetric.braided-iso"></a><a id="2251" href="Categories.Category.Monoidal.Symmetric.html#2251" class="Function">braided-iso</a> <a id="2263" class="Symbol">:</a> <a id="2265" href="Categories.Category.Monoidal.Symmetric.html#656" class="Generalizable">X</a> <a id="2267" href="Categories.Category.Monoidal.Core.html#1435" class="Function Operator">⊗₀</a> <a id="2270" href="Categories.Category.Monoidal.Symmetric.html#658" class="Generalizable">Y</a> <a id="2272" href="Categories.Morphism.html#1958" class="Record Operator"></a> <a id="2274" href="Categories.Category.Monoidal.Symmetric.html#658" class="Generalizable">Y</a> <a id="2276" href="Categories.Category.Monoidal.Core.html#1435" class="Function Operator">⊗₀</a> <a id="2279" href="Categories.Category.Monoidal.Symmetric.html#656" class="Generalizable">X</a>
<a id="2285" href="Categories.Category.Monoidal.Symmetric.html#2251" class="Function">braided-iso</a> <a id="2297" class="Symbol">=</a> <a id="2299" class="Keyword">record</a>
<a id="2312" class="Symbol">{</a> <a id="2314" href="Categories.Morphism.html#2006" class="Field">from</a> <a id="2319" class="Symbol">=</a> <a id="2321" href="Categories.Category.Monoidal.Symmetric.html#1704" class="Function">B</a>
<a id="2329" class="Symbol">;</a> <a id="2331" href="Categories.Morphism.html#2023" class="Field">to</a> <a id="2336" class="Symbol">=</a> <a id="2338" href="Categories.Category.Monoidal.Symmetric.html#1704" class="Function">B</a>
<a id="2346" class="Symbol">;</a> <a id="2348" href="Categories.Morphism.html#2040" class="Field">iso</a> <a id="2353" class="Symbol">=</a> <a id="2355" class="Keyword">record</a>
<a id="2370" class="Symbol">{</a> <a id="2372" href="Categories.Morphism.html#1586" class="Field">isoˡ</a> <a id="2377" class="Symbol">=</a> <a id="2379" href="Categories.Category.Monoidal.Symmetric.html#1790" class="Field">commutative</a>
<a id="2399" class="Symbol">;</a> <a id="2401" href="Categories.Morphism.html#1612" class="Field">isoʳ</a> <a id="2406" class="Symbol">=</a> <a id="2408" href="Categories.Category.Monoidal.Symmetric.html#1790" class="Field">commutative</a>
<a id="2428" class="Symbol">}</a>
<a id="2436" class="Symbol">}</a>
<a id="2443" class="Keyword">module</a> <a id="Symmetric.braided-iso"></a><a id="2450" href="Categories.Category.Monoidal.Symmetric.html#2450" class="Module">braided-iso</a> <a id="2462" class="Symbol">{</a><a id="2463" href="Categories.Category.Monoidal.Symmetric.html#2463" class="Bound">X</a> <a id="2465" href="Categories.Category.Monoidal.Symmetric.html#2465" class="Bound">Y</a><a id="2466" class="Symbol">}</a> <a id="2468" class="Symbol">=</a> <a id="2470" href="Categories.Morphism.html#1958" class="Module Operator">_≅_</a> <a id="2474" class="Symbol">(</a><a id="2475" href="Categories.Category.Monoidal.Symmetric.html#2251" class="Function">braided-iso</a> <a id="2487" class="Symbol">{</a><a id="2488" href="Categories.Category.Monoidal.Symmetric.html#2463" class="Bound">X</a><a id="2489" class="Symbol">}</a> <a id="2491" class="Symbol">{</a><a id="2492" href="Categories.Category.Monoidal.Symmetric.html#2465" class="Bound">Y</a><a id="2493" class="Symbol">})</a>
<a id="2501" class="Comment">-- we don&#39;t define [Symmetric] from [Braided] because we want to avoid asking</a>
<a id="2583" class="Comment">-- [hexagon₂], which can readily be proven using the [hexagon] and [commutative].</a>
<a id="Symmetric.braided"></a><a id="2669" href="Categories.Category.Monoidal.Symmetric.html#2669" class="Function">braided</a> <a id="2677" class="Symbol">:</a> <a id="2679" href="Categories.Category.Monoidal.Braided.html#643" class="Record">Braided</a>
<a id="2691" href="Categories.Category.Monoidal.Symmetric.html#2669" class="Function">braided</a> <a id="2699" class="Symbol">=</a> <a id="2701" class="Keyword">record</a>
<a id="2714" class="Symbol">{</a> <a id="2716" href="Categories.Category.Monoidal.Braided.html#717" class="Field">braiding</a> <a id="2725" class="Symbol">=</a> <a id="2727" href="Categories.Category.Monoidal.Symmetric.html#1583" class="Field">braiding</a>
<a id="2742" class="Symbol">;</a> <a id="2744" href="Categories.Category.Monoidal.Braided.html#912" class="Field">hexagon₁</a> <a id="2753" class="Symbol">=</a> <a id="2755" href="Categories.Category.Monoidal.Symmetric.html#1837" class="Field">hexagon</a>
<a id="2769" class="Symbol">;</a> <a id="2771" href="Categories.Category.Monoidal.Braided.html#1287" class="Field">hexagon₂</a> <a id="2780" class="Symbol">=</a> <a id="2782" class="Symbol">λ</a> <a id="2784" class="Symbol">{</a><a id="2785" href="Categories.Category.Monoidal.Symmetric.html#2785" class="Bound">X</a> <a id="2787" href="Categories.Category.Monoidal.Symmetric.html#2787" class="Bound">Y</a> <a id="2789" href="Categories.Category.Monoidal.Symmetric.html#2789" class="Bound">Z</a><a id="2790" class="Symbol">}</a> <a id="2792" class="Symbol"></a>
<a id="2815" href="Categories.Morphism.Properties.html#1507" class="Function">Iso-≈</a> <a id="2821" href="Categories.Category.Monoidal.Symmetric.html#1837" class="Field">hexagon</a>
<a id="2856" class="Symbol">(</a><a id="2857" href="Categories.Morphism.Properties.html#1137" class="Function">Iso-∘</a> <a id="2863" class="Symbol">(</a><a id="2864" href="Categories.Morphism.Properties.html#1137" class="Function">Iso-∘</a> <a id="2870" class="Symbol">(</a><a id="2871" href="Categories.Functor.Properties.html#2843" class="Function Operator">[</a> <a id="2873" href="Categories.Category.Monoidal.Core.html#1645" class="Function Operator">-⊗</a> <a id="2876" href="Categories.Category.Monoidal.Symmetric.html#2787" class="Bound">Y</a> <a id="2878" href="Categories.Functor.Properties.html#2843" class="Function Operator">]-resp-Iso</a> <a id="2889" href="Categories.Morphism.html#2040" class="Function">braided-iso.iso</a><a id="2904" class="Symbol">)</a> <a id="2906" href="Categories.Morphism.html#2040" class="Function">associator.iso</a><a id="2920" class="Symbol">)</a>
<a id="2956" class="Symbol">(</a><a id="2957" href="Categories.Functor.Properties.html#2843" class="Function Operator">[</a> <a id="2959" href="Categories.Category.Monoidal.Symmetric.html#2785" class="Bound">X</a> <a id="2961" href="Categories.Category.Monoidal.Core.html#1600" class="Function Operator">⊗-</a> <a id="2964" href="Categories.Functor.Properties.html#2843" class="Function Operator">]-resp-Iso</a> <a id="2975" href="Categories.Morphism.html#2040" class="Function">braided-iso.iso</a><a id="2990" class="Symbol">))</a>
<a id="3020" class="Symbol">(</a><a id="3021" href="Categories.Morphism.Properties.html#1137" class="Function">Iso-∘</a> <a id="3027" class="Symbol">(</a><a id="3028" href="Categories.Morphism.Properties.html#1137" class="Function">Iso-∘</a> <a id="3034" href="Categories.Morphism.html#2040" class="Function">associator.iso</a> <a id="3049" href="Categories.Morphism.html#2040" class="Function">braided-iso.iso</a><a id="3064" class="Symbol">)</a>
<a id="3100" href="Categories.Morphism.html#2040" class="Function">associator.iso</a><a id="3114" class="Symbol">)</a>
<a id="3122" class="Symbol">}</a>
<a id="symmetricHelper"></a><a id="3126" href="Categories.Category.Monoidal.Symmetric.html#3126" class="Function">symmetricHelper</a> <a id="3142" class="Symbol">:</a> <a id="3144" href="Categories.Category.Monoidal.Symmetric.html#1507" class="Record">Symmetric</a> <a id="3155" class="Symbol"></a> <a id="3157" href="Categories.Category.Monoidal.Symmetric.html#997" class="Record">Symmetric</a>
<a id="3167" href="Categories.Category.Monoidal.Symmetric.html#3126" class="Function">symmetricHelper</a> <a id="3183" href="Categories.Category.Monoidal.Symmetric.html#3183" class="Bound">S</a> <a id="3185" class="Symbol">=</a> <a id="3187" class="Keyword">record</a>
<a id="3196" class="Symbol">{</a> <a id="3198" href="Categories.Category.Monoidal.Symmetric.html#1047" class="Field">braided</a> <a id="3210" class="Symbol">=</a> <a id="3212" href="Categories.Category.Monoidal.Symmetric.html#2669" class="Function">braided</a>
<a id="3222" class="Symbol">;</a> <a id="3224" href="Categories.Category.Monoidal.Symmetric.html#1218" class="Field">commutative</a> <a id="3236" class="Symbol">=</a> <a id="3238" href="Categories.Category.Monoidal.Symmetric.html#1790" class="Field">commutative</a>
<a id="3252" class="Symbol">}</a>
<a id="3256" class="Keyword">where</a> <a id="3262" class="Keyword">open</a> <a id="3267" href="Categories.Category.Monoidal.Symmetric.html#1507" class="Module">Symmetric</a> <a id="3278" href="Categories.Category.Monoidal.Symmetric.html#3183" class="Bound">S</a>
</pre></body></html>