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

128 lines
No EOL
36 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.Construction.Reverse</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">module</a> <a id="44" href="Categories.Category.Monoidal.Construction.Reverse.html" class="Module">Categories.Category.Monoidal.Construction.Reverse</a> <a id="94" class="Keyword">where</a>
<a id="101" class="Comment">-- The reverse monoidal category of a monoidal category V has the same</a>
<a id="172" class="Comment">-- underlying category and unit as V but reversed monoidal product,</a>
<a id="240" class="Comment">-- and similarly for tensors of morphisms.</a>
<a id="283" class="Comment">--</a>
<a id="286" class="Comment">-- https://ncatlab.org/nlab/show/reverse+monoidal+category</a>
<a id="346" class="Keyword">open</a> <a id="351" class="Keyword">import</a> <a id="358" href="Level.html" class="Module">Level</a> <a id="364" class="Keyword">using</a> <a id="370" class="Symbol">(</a><a id="371" href="Agda.Primitive.html#961" class="Primitive Operator">_⊔_</a><a id="374" class="Symbol">)</a>
<a id="376" class="Keyword">open</a> <a id="381" class="Keyword">import</a> <a id="388" href="Data.Product.html" class="Module">Data.Product</a> <a id="401" class="Keyword">using</a> <a id="407" class="Symbol">(</a><a id="408" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">_,_</a><a id="411" class="Symbol">;</a> <a id="413" href="Data.Product.Base.html#5054" class="Function">swap</a><a id="417" class="Symbol">)</a>
<a id="419" class="Keyword">import</a> <a id="426" href="Function.html" class="Module">Function</a>
<a id="436" class="Keyword">open</a> <a id="441" class="Keyword">import</a> <a id="448" href="Categories.Category.html" class="Module">Categories.Category</a> <a id="468" class="Keyword">using</a> <a id="474" class="Symbol">(</a><a id="475" href="Categories.Category.Core.html#442" class="Record">Category</a><a id="483" class="Symbol">)</a>
<a id="485" class="Keyword">open</a> <a id="490" class="Keyword">import</a> <a id="497" href="Categories.Category.Monoidal.html" class="Module">Categories.Category.Monoidal</a>
<a id="526" class="Keyword">open</a> <a id="531" class="Keyword">import</a> <a id="538" href="Categories.Category.Monoidal.Braided.html" class="Module">Categories.Category.Monoidal.Braided</a> <a id="575" class="Keyword">using</a> <a id="581" class="Symbol">(</a><a id="582" href="Categories.Category.Monoidal.Braided.html#643" class="Record">Braided</a><a id="589" class="Symbol">)</a>
<a id="591" class="Keyword">import</a> <a id="598" href="Categories.Category.Monoidal.Braided.Properties.html" class="Module">Categories.Category.Monoidal.Braided.Properties</a> <a id="646" class="Symbol">as</a> <a id="649" class="Module">BraidedProperties</a>
<a id="667" class="Keyword">import</a> <a id="674" href="Categories.Category.Monoidal.Symmetric.Properties.html" class="Module">Categories.Category.Monoidal.Symmetric.Properties</a> <a id="724" class="Symbol">as</a> <a id="727" class="Module">SymmetricProperties</a>
<a id="747" class="Keyword">open</a> <a id="752" class="Keyword">import</a> <a id="759" href="Categories.Category.Monoidal.Symmetric.html" class="Module">Categories.Category.Monoidal.Symmetric</a> <a id="798" class="Keyword">using</a> <a id="804" class="Symbol">(</a><a id="805" href="Categories.Category.Monoidal.Symmetric.html#997" class="Record">Symmetric</a><a id="814" class="Symbol">)</a>
<a id="816" class="Keyword">import</a> <a id="823" href="Categories.Category.Monoidal.Utilities.html" class="Module">Categories.Category.Monoidal.Utilities</a> <a id="862" class="Symbol">as</a> <a id="865" class="Module">MonoidalUtils</a>
<a id="879" class="Keyword">import</a> <a id="886" href="Categories.Morphism.html" class="Module">Categories.Morphism</a> <a id="906" class="Symbol">as</a> <a id="909" class="Module">Morphism</a>
<a id="918" class="Keyword">import</a> <a id="925" href="Categories.Morphism.Reasoning.html" class="Module">Categories.Morphism.Reasoning</a> <a id="955" class="Symbol">as</a> <a id="958" class="Module">MorphismReasoning</a>
<a id="976" class="Keyword">open</a> <a id="981" class="Keyword">import</a> <a id="988" href="Categories.Functor.Bifunctor.html" class="Module">Categories.Functor.Bifunctor</a> <a id="1017" class="Keyword">using</a> <a id="1023" class="Symbol">(</a><a id="1024" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a><a id="1033" class="Symbol">)</a>
<a id="1035" class="Keyword">open</a> <a id="1040" class="Keyword">import</a> <a id="1047" href="Categories.NaturalTransformation.NaturalIsomorphism.html" class="Module">Categories.NaturalTransformation.NaturalIsomorphism</a> <a id="1099" class="Keyword">using</a> <a id="1105" class="Symbol">(</a><a id="1106" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2810" class="Function">niHelper</a><a id="1114" class="Symbol">)</a>
<a id="1117" class="Keyword">open</a> <a id="1122" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="1131" class="Keyword">using</a> <a id="1137" class="Symbol">(</a><a id="1138" href="Categories.Category.Core.html#559" class="Field">Obj</a><a id="1141" class="Symbol">)</a>
<a id="1144" class="Keyword">module</a> <a id="1151" href="Categories.Category.Monoidal.Construction.Reverse.html#1151" class="Module">_</a> <a id="1153" class="Symbol">{</a><a id="1154" href="Categories.Category.Monoidal.Construction.Reverse.html#1154" class="Bound">o</a> <a id="1156" href="Categories.Category.Monoidal.Construction.Reverse.html#1156" class="Bound"></a> <a id="1158" href="Categories.Category.Monoidal.Construction.Reverse.html#1158" class="Bound">e</a><a id="1159" class="Symbol">}</a> <a id="1161" class="Symbol">{</a><a id="1162" href="Categories.Category.Monoidal.Construction.Reverse.html#1162" class="Bound">C</a> <a id="1164" class="Symbol">:</a> <a id="1166" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="1175" href="Categories.Category.Monoidal.Construction.Reverse.html#1154" class="Bound">o</a> <a id="1177" href="Categories.Category.Monoidal.Construction.Reverse.html#1156" class="Bound"></a> <a id="1179" href="Categories.Category.Monoidal.Construction.Reverse.html#1158" class="Bound">e</a><a id="1180" class="Symbol">}</a> <a id="1182" class="Symbol">(</a><a id="1183" href="Categories.Category.Monoidal.Construction.Reverse.html#1183" class="Bound">M</a> <a id="1185" class="Symbol">:</a> <a id="1187" href="Categories.Category.Monoidal.Core.html#1287" class="Record">Monoidal</a> <a id="1196" href="Categories.Category.Monoidal.Construction.Reverse.html#1162" class="Bound">C</a><a id="1197" class="Symbol">)</a> <a id="1199" class="Keyword">where</a>
<a id="1208" class="Keyword">private</a> <a id="1216" class="Keyword">module</a> <a id="1223" href="Categories.Category.Monoidal.Construction.Reverse.html#1223" class="Module">M</a> <a id="1225" class="Symbol">=</a> <a id="1227" href="Categories.Category.Monoidal.Core.html#1287" class="Module">Monoidal</a> <a id="1236" href="Categories.Category.Monoidal.Construction.Reverse.html#1183" class="Bound">M</a>
<a id="1241" class="Keyword">open</a> <a id="1246" href="Function.html" class="Module">Function</a> <a id="1255" class="Keyword">using</a> <a id="1261" class="Symbol">(</a><a id="1262" href="Function.Base.html#1115" class="Function Operator">_∘_</a><a id="1265" class="Symbol">)</a>
<a id="1269" class="Keyword">open</a> <a id="1274" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="1283" href="Categories.Category.Monoidal.Construction.Reverse.html#1162" class="Bound">C</a> <a id="1285" class="Keyword">using</a> <a id="1291" class="Symbol">(</a><a id="1292" href="Categories.Category.Core.html#1004" class="Field">sym-assoc</a><a id="1301" class="Symbol">)</a>
<a id="1305" class="Keyword">open</a> <a id="1310" href="Categories.Category.Core.html#2462" class="Module">Category.HomReasoning</a> <a id="1332" href="Categories.Category.Monoidal.Construction.Reverse.html#1162" class="Bound">C</a> <a id="1334" class="Keyword">using</a> <a id="1340" class="Symbol">(</a><a id="1341" href="Categories.Category.Core.html#3005" class="Function"></a><a id="1342" class="Symbol">;</a> <a id="1344" href="Categories.Category.Core.html#3061" class="Function Operator">_○_</a><a id="1347" class="Symbol">)</a>
<a id="1351" class="Keyword">open</a> <a id="1356" href="Categories.Morphism.html" class="Module">Morphism</a> <a id="1365" href="Categories.Category.Monoidal.Construction.Reverse.html#1162" class="Bound">C</a> <a id="1367" class="Keyword">using</a> <a id="1373" class="Symbol">(</a><a id="1374" class="Keyword">module</a> <a id="1381" href="Categories.Morphism.html#3269" class="Module"></a><a id="1382" class="Symbol">)</a>
<a id="1386" class="Keyword">open</a> <a id="1391" href="Categories.Morphism.Reasoning.html" class="Module">MorphismReasoning</a> <a id="1409" href="Categories.Category.Monoidal.Construction.Reverse.html#1162" class="Bound">C</a> <a id="1411" class="Keyword">using</a> <a id="1417" class="Symbol">(</a><a id="1418" href="Categories.Morphism.Reasoning.Iso.html#1094" class="Function">switch-fromtoʳ</a><a id="1432" class="Symbol">)</a>
<a id="1436" class="Keyword">open</a> <a id="1441" href="Categories.Category.Monoidal.Utilities.html" class="Module">MonoidalUtils</a> <a id="1455" href="Categories.Category.Monoidal.Construction.Reverse.html#1183" class="Bound">M</a> <a id="1457" class="Keyword">using</a> <a id="1463" class="Symbol">(</a><a id="1464" href="Categories.Category.Monoidal.Utilities.html#4223" class="Function">pentagon-inv</a><a id="1476" class="Symbol">)</a>
<a id="1481" href="Categories.Category.Monoidal.Construction.Reverse.html#1481" class="Function"></a> <a id="1483" class="Symbol">:</a> <a id="1485" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="1495" href="Categories.Category.Monoidal.Construction.Reverse.html#1162" class="Bound">C</a> <a id="1497" href="Categories.Category.Monoidal.Construction.Reverse.html#1162" class="Bound">C</a> <a id="1499" href="Categories.Category.Monoidal.Construction.Reverse.html#1162" class="Bound">C</a>
<a id="1503" href="Categories.Category.Monoidal.Construction.Reverse.html#1481" class="Function"></a> <a id="1505" class="Symbol">=</a> <a id="1507" class="Keyword">record</a>
<a id="1518" class="Symbol">{</a> <a id="1520" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="1533" class="Symbol">=</a> <a id="1535" href="Categories.Functor.Core.html#797" class="Function">M.⊗.₀</a> <a id="1541" href="Function.Base.html#1115" class="Function Operator"></a> <a id="1543" href="Data.Product.Base.html#5054" class="Function">swap</a>
<a id="1552" class="Symbol">;</a> <a id="1554" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="1567" class="Symbol">=</a> <a id="1569" href="Categories.Functor.Core.html#806" class="Function">M.⊗.₁</a> <a id="1575" href="Function.Base.html#1115" class="Function Operator"></a> <a id="1577" href="Data.Product.Base.html#5054" class="Function">swap</a>
<a id="1586" class="Symbol">;</a> <a id="1588" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="1601" class="Symbol">=</a> <a id="1603" href="Categories.Functor.Core.html#511" class="Function">M.⊗.identity</a>
<a id="1620" class="Symbol">;</a> <a id="1622" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="1635" class="Symbol">=</a> <a id="1637" href="Categories.Functor.Core.html#565" class="Function">M.⊗.homomorphism</a>
<a id="1658" class="Symbol">;</a> <a id="1660" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="1673" class="Symbol">=</a> <a id="1675" href="Categories.Functor.Core.html#696" class="Function">M.⊗.F-resp-≈</a> <a id="1688" href="Function.Base.html#1115" class="Function Operator"></a> <a id="1690" href="Data.Product.Base.html#5054" class="Function">swap</a>
<a id="1699" class="Symbol">}</a>
<a id="1704" href="Categories.Category.Monoidal.Construction.Reverse.html#1704" class="Function">Reverse-Monoidal</a> <a id="1721" class="Symbol">:</a> <a id="1723" href="Categories.Category.Monoidal.Core.html#1287" class="Record">Monoidal</a> <a id="1732" href="Categories.Category.Monoidal.Construction.Reverse.html#1162" class="Bound">C</a>
<a id="1736" href="Categories.Category.Monoidal.Construction.Reverse.html#1704" class="Function">Reverse-Monoidal</a> <a id="1753" class="Symbol">=</a> <a id="1755" class="Keyword">record</a>
<a id="1766" class="Symbol">{</a> <a id="1768" href="Categories.Category.Monoidal.Core.html#1355" class="Field"></a> <a id="1789" class="Symbol">=</a> <a id="1791" href="Categories.Category.Monoidal.Construction.Reverse.html#1481" class="Function"></a>
<a id="1797" class="Symbol">;</a> <a id="1799" href="Categories.Category.Monoidal.Core.html#1380" class="Field">unit</a> <a id="1820" class="Symbol">=</a> <a id="1822" href="Categories.Category.Monoidal.Core.html#1380" class="Field">M.unit</a>
<a id="1833" class="Symbol">;</a> <a id="1835" href="Categories.Category.Monoidal.Core.html#1700" class="Field">unitorˡ</a> <a id="1856" class="Symbol">=</a> <a id="1858" href="Categories.Category.Monoidal.Core.html#1731" class="Field">M.unitorʳ</a>
<a id="1872" class="Symbol">;</a> <a id="1874" href="Categories.Category.Monoidal.Core.html#1731" class="Field">unitorʳ</a> <a id="1895" class="Symbol">=</a> <a id="1897" href="Categories.Category.Monoidal.Core.html#1700" class="Field">M.unitorˡ</a>
<a id="1911" class="Symbol">;</a> <a id="1913" href="Categories.Category.Monoidal.Core.html#1762" class="Field">associator</a> <a id="1934" class="Symbol">=</a> <a id="1936" href="Relation.Binary.Structures.html#1622" class="Function">≅.sym</a> <a id="1942" href="Categories.Category.Monoidal.Core.html#1762" class="Field">M.associator</a>
<a id="1959" class="Symbol">;</a> <a id="1961" href="Categories.Category.Monoidal.Core.html#2517" class="Field">unitorˡ-commute-from</a> <a id="1982" class="Symbol">=</a> <a id="1984" href="Categories.Category.Monoidal.Core.html#2647" class="Field">M.unitorʳ-commute-from</a>
<a id="2011" class="Symbol">;</a> <a id="2013" href="Categories.Category.Monoidal.Core.html#2582" class="Field">unitorˡ-commute-to</a> <a id="2034" class="Symbol">=</a> <a id="2036" href="Categories.Category.Monoidal.Core.html#2712" class="Field">M.unitorʳ-commute-to</a>
<a id="2061" class="Symbol">;</a> <a id="2063" href="Categories.Category.Monoidal.Core.html#2647" class="Field">unitorʳ-commute-from</a> <a id="2084" class="Symbol">=</a> <a id="2086" href="Categories.Category.Monoidal.Core.html#2517" class="Field">M.unitorˡ-commute-from</a>
<a id="2113" class="Symbol">;</a> <a id="2115" href="Categories.Category.Monoidal.Core.html#2712" class="Field">unitorʳ-commute-to</a> <a id="2136" class="Symbol">=</a> <a id="2138" href="Categories.Category.Monoidal.Core.html#2582" class="Field">M.unitorˡ-commute-to</a>
<a id="2163" class="Symbol">;</a> <a id="2165" href="Categories.Category.Monoidal.Core.html#2777" class="Field">assoc-commute-from</a> <a id="2186" class="Symbol">=</a> <a id="2188" href="Categories.Category.Monoidal.Core.html#2860" class="Field">M.assoc-commute-to</a>
<a id="2211" class="Symbol">;</a> <a id="2213" href="Categories.Category.Monoidal.Core.html#2860" class="Field">assoc-commute-to</a> <a id="2234" class="Symbol">=</a> <a id="2236" href="Categories.Category.Monoidal.Core.html#2777" class="Field">M.assoc-commute-from</a>
<a id="2261" class="Symbol">;</a> <a id="2263" href="Categories.Category.Monoidal.Core.html#2943" class="Field">triangle</a> <a id="2284" class="Symbol">=</a> <a id="2286" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="2288" class="Symbol">(</a><a id="2289" href="Categories.Morphism.Reasoning.Iso.html#1094" class="Function">switch-fromtoʳ</a> <a id="2304" href="Categories.Category.Monoidal.Core.html#1762" class="Field">M.associator</a> <a id="2317" href="Categories.Category.Monoidal.Core.html#2943" class="Field">M.triangle</a><a id="2327" class="Symbol">)</a>
<a id="2333" class="Symbol">;</a> <a id="2335" href="Categories.Category.Monoidal.Core.html#3174" class="Field">pentagon</a> <a id="2356" class="Symbol">=</a> <a id="2358" href="Categories.Category.Core.html#1004" class="Function">sym-assoc</a> <a id="2368" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="2370" href="Categories.Category.Monoidal.Utilities.html#4223" class="Function">pentagon-inv</a>
<a id="2387" class="Symbol">}</a>
<a id="2390" class="Keyword">module</a> <a id="2397" href="Categories.Category.Monoidal.Construction.Reverse.html#2397" class="Module">_</a> <a id="2399" class="Symbol">{</a><a id="2400" href="Categories.Category.Monoidal.Construction.Reverse.html#2400" class="Bound">o</a> <a id="2402" href="Categories.Category.Monoidal.Construction.Reverse.html#2402" class="Bound"></a> <a id="2404" href="Categories.Category.Monoidal.Construction.Reverse.html#2404" class="Bound">e</a><a id="2405" class="Symbol">}</a> <a id="2407" class="Symbol">{</a><a id="2408" href="Categories.Category.Monoidal.Construction.Reverse.html#2408" class="Bound">C</a> <a id="2410" class="Symbol">:</a> <a id="2412" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="2421" href="Categories.Category.Monoidal.Construction.Reverse.html#2400" class="Bound">o</a> <a id="2423" href="Categories.Category.Monoidal.Construction.Reverse.html#2402" class="Bound"></a> <a id="2425" href="Categories.Category.Monoidal.Construction.Reverse.html#2404" class="Bound">e</a><a id="2426" class="Symbol">}</a> <a id="2428" class="Symbol">{</a><a id="2429" href="Categories.Category.Monoidal.Construction.Reverse.html#2429" class="Bound">M</a> <a id="2431" class="Symbol">:</a> <a id="2433" href="Categories.Category.Monoidal.Core.html#1287" class="Record">Monoidal</a> <a id="2442" href="Categories.Category.Monoidal.Construction.Reverse.html#2408" class="Bound">C</a><a id="2443" class="Symbol">}</a> <a id="2445" class="Keyword">where</a>
<a id="2454" class="Keyword">open</a> <a id="2459" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="2468" href="Categories.Category.Monoidal.Construction.Reverse.html#2408" class="Bound">C</a> <a id="2470" class="Keyword">using</a> <a id="2476" class="Symbol">(</a><a id="2477" href="Categories.Category.Core.html#715" class="Field">assoc</a><a id="2482" class="Symbol">;</a> <a id="2484" href="Categories.Category.Core.html#1004" class="Field">sym-assoc</a><a id="2493" class="Symbol">)</a>
<a id="2497" class="Keyword">open</a> <a id="2502" href="Categories.Category.Core.html#2462" class="Module">Category.HomReasoning</a> <a id="2524" href="Categories.Category.Monoidal.Construction.Reverse.html#2408" class="Bound">C</a> <a id="2526" class="Keyword">using</a> <a id="2532" class="Symbol">(</a><a id="2533" href="Categories.Category.Core.html#3061" class="Function Operator">_○_</a><a id="2536" class="Symbol">)</a>
<a id="2541" class="Comment">-- The reverse of a braided category is again braided.</a>
<a id="2599" href="Categories.Category.Monoidal.Construction.Reverse.html#2599" class="Function">Reverse-Braided</a> <a id="2615" class="Symbol">:</a> <a id="2617" href="Categories.Category.Monoidal.Braided.html#643" class="Record">Braided</a> <a id="2625" href="Categories.Category.Monoidal.Construction.Reverse.html#2429" class="Bound">M</a> <a id="2627" class="Symbol"></a> <a id="2629" href="Categories.Category.Monoidal.Braided.html#643" class="Record">Braided</a> <a id="2637" class="Symbol">(</a><a id="2638" href="Categories.Category.Monoidal.Construction.Reverse.html#1704" class="Function">Reverse-Monoidal</a> <a id="2655" href="Categories.Category.Monoidal.Construction.Reverse.html#2429" class="Bound">M</a><a id="2656" class="Symbol">)</a>
<a id="2660" href="Categories.Category.Monoidal.Construction.Reverse.html#2599" class="Function">Reverse-Braided</a> <a id="2676" href="Categories.Category.Monoidal.Construction.Reverse.html#2676" class="Bound">BM</a> <a id="2679" class="Symbol">=</a> <a id="2681" class="Keyword">record</a>
<a id="2692" class="Symbol">{</a> <a id="2694" href="Categories.Category.Monoidal.Braided.html#717" class="Field">braiding</a> <a id="2704" class="Symbol">=</a> <a id="2706" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2810" class="Function">niHelper</a> <a id="2715" class="Symbol">(</a><a id="2716" class="Keyword">record</a>
<a id="2729" class="Symbol">{</a> <a id="2731" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2606" class="Field">η</a> <a id="2739" class="Symbol">=</a> <a id="2741" href="Categories.NaturalTransformation.Core.html#783" class="Function">braiding.⇐.η</a>
<a id="2760" class="Symbol">;</a> <a id="2762" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2648" class="Field">η⁻¹</a> <a id="2770" class="Symbol">=</a> <a id="2772" href="Categories.NaturalTransformation.Core.html#783" class="Function">braiding.⇒.η</a>
<a id="2791" class="Symbol">;</a> <a id="2793" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2690" class="Field">commute</a> <a id="2801" class="Symbol">=</a> <a id="2803" href="Categories.NaturalTransformation.Core.html#827" class="Function">braiding.⇐.commute</a>
<a id="2828" class="Symbol">;</a> <a id="2830" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2760" class="Field">iso</a> <a id="2838" class="Symbol">=</a> <a id="2840" class="Symbol">λ</a> <a id="2842" href="Categories.Category.Monoidal.Construction.Reverse.html#2842" class="Bound">XY</a> <a id="2845" class="Symbol"></a> <a id="2847" class="Keyword">record</a>
<a id="2862" class="Symbol">{</a> <a id="2864" href="Categories.Morphism.html#1586" class="Field">isoˡ</a> <a id="2870" class="Symbol">=</a> <a id="2872" href="Categories.Morphism.html#1612" class="Function">braiding.iso.isoʳ</a> <a id="2890" href="Categories.Category.Monoidal.Construction.Reverse.html#2842" class="Bound">XY</a>
<a id="2901" class="Symbol">;</a> <a id="2903" href="Categories.Morphism.html#1612" class="Field">isoʳ</a> <a id="2909" class="Symbol">=</a> <a id="2911" href="Categories.Morphism.html#1586" class="Function">braiding.iso.isoˡ</a> <a id="2929" href="Categories.Category.Monoidal.Construction.Reverse.html#2842" class="Bound">XY</a> <a id="2932" class="Symbol">}</a>
<a id="2940" class="Symbol">})</a>
<a id="2947" class="Symbol">;</a> <a id="2949" href="Categories.Category.Monoidal.Braided.html#912" class="Field">hexagon₁</a> <a id="2959" class="Symbol">=</a> <a id="2961" href="Categories.Category.Core.html#1004" class="Function">sym-assoc</a> <a id="2971" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="2973" href="Categories.Category.Monoidal.Braided.Properties.html#4444" class="Function">hexagon₁-inv</a> <a id="2986" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="2988" href="Categories.Category.Core.html#715" class="Function">assoc</a>
<a id="2998" class="Symbol">;</a> <a id="3000" href="Categories.Category.Monoidal.Braided.html#1287" class="Field">hexagon₂</a> <a id="3010" class="Symbol">=</a> <a id="3012" href="Categories.Category.Core.html#715" class="Function">assoc</a> <a id="3018" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="3020" href="Categories.Category.Monoidal.Braided.Properties.html#4742" class="Function">hexagon₂-inv</a> <a id="3033" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="3035" href="Categories.Category.Core.html#1004" class="Function">sym-assoc</a>
<a id="3049" class="Symbol">}</a>
<a id="3055" class="Keyword">where</a>
<a id="3067" class="Keyword">open</a> <a id="3072" href="Categories.Category.Monoidal.Braided.html#643" class="Module">Braided</a> <a id="3080" href="Categories.Category.Monoidal.Construction.Reverse.html#2676" class="Bound">BM</a>
<a id="3089" class="Keyword">open</a> <a id="3094" href="Categories.Category.Monoidal.Braided.Properties.html" class="Module">BraidedProperties</a> <a id="3112" href="Categories.Category.Monoidal.Construction.Reverse.html#2676" class="Bound">BM</a> <a id="3115" class="Keyword">using</a> <a id="3121" class="Symbol">(</a><a id="3122" href="Categories.Category.Monoidal.Braided.Properties.html#4444" class="Function">hexagon₁-inv</a><a id="3134" class="Symbol">;</a> <a id="3136" href="Categories.Category.Monoidal.Braided.Properties.html#4742" class="Function">hexagon₂-inv</a><a id="3148" class="Symbol">)</a>
<a id="3153" class="Comment">-- The reverse of a symmetric category is again symmetric.</a>
<a id="3215" href="Categories.Category.Monoidal.Construction.Reverse.html#3215" class="Function">Reverse-Symmetric</a> <a id="3233" class="Symbol">:</a> <a id="3235" href="Categories.Category.Monoidal.Symmetric.html#997" class="Record">Symmetric</a> <a id="3245" href="Categories.Category.Monoidal.Construction.Reverse.html#2429" class="Bound">M</a> <a id="3247" class="Symbol"></a> <a id="3249" href="Categories.Category.Monoidal.Symmetric.html#997" class="Record">Symmetric</a> <a id="3259" class="Symbol">(</a><a id="3260" href="Categories.Category.Monoidal.Construction.Reverse.html#1704" class="Function">Reverse-Monoidal</a> <a id="3277" href="Categories.Category.Monoidal.Construction.Reverse.html#2429" class="Bound">M</a><a id="3278" class="Symbol">)</a>
<a id="3282" href="Categories.Category.Monoidal.Construction.Reverse.html#3215" class="Function">Reverse-Symmetric</a> <a id="3300" href="Categories.Category.Monoidal.Construction.Reverse.html#3300" class="Bound">SM</a> <a id="3303" class="Symbol">=</a> <a id="3305" class="Keyword">record</a>
<a id="3316" class="Symbol">{</a> <a id="3318" href="Categories.Category.Monoidal.Symmetric.html#1047" class="Field">braided</a> <a id="3330" class="Symbol">=</a> <a id="3332" href="Categories.Category.Monoidal.Construction.Reverse.html#2599" class="Function">Reverse-Braided</a> <a id="3348" href="Categories.Category.Monoidal.Symmetric.html#1047" class="Field">braided</a>
<a id="3360" class="Symbol">;</a> <a id="3362" href="Categories.Category.Monoidal.Symmetric.html#1218" class="Field">commutative</a> <a id="3374" class="Symbol">=</a> <a id="3376" href="Categories.Category.Monoidal.Symmetric.Properties.html#876" class="Function">inv-commutative</a>
<a id="3396" class="Symbol">}</a>
<a id="3402" class="Keyword">where</a>
<a id="3414" class="Keyword">open</a> <a id="3419" href="Categories.Category.Monoidal.Symmetric.html#997" class="Module">Symmetric</a> <a id="3429" href="Categories.Category.Monoidal.Construction.Reverse.html#3300" class="Bound">SM</a> <a id="3432" class="Keyword">using</a> <a id="3438" class="Symbol">(</a><a id="3439" href="Categories.Category.Monoidal.Symmetric.html#1047" class="Field">braided</a><a id="3446" class="Symbol">)</a>
<a id="3454" class="Keyword">open</a> <a id="3459" href="Categories.Category.Monoidal.Symmetric.Properties.html" class="Module">SymmetricProperties</a> <a id="3479" href="Categories.Category.Monoidal.Construction.Reverse.html#3300" class="Bound">SM</a> <a id="3482" class="Keyword">using</a> <a id="3488" class="Symbol">(</a><a id="3489" href="Categories.Category.Monoidal.Symmetric.Properties.html#876" class="Function">inv-commutative</a><a id="3504" class="Symbol">)</a>
<a id="3507" class="Comment">-- Bundled versions of the above</a>
<a id="Reverse-MonoidalCategory"></a><a id="3541" href="Categories.Category.Monoidal.Construction.Reverse.html#3541" class="Function">Reverse-MonoidalCategory</a> <a id="3566" class="Symbol">:</a> <a id="3568" class="Symbol"></a> <a id="3570" class="Symbol">{</a><a id="3571" href="Categories.Category.Monoidal.Construction.Reverse.html#3571" class="Bound">o</a> <a id="3573" href="Categories.Category.Monoidal.Construction.Reverse.html#3573" class="Bound"></a> <a id="3575" href="Categories.Category.Monoidal.Construction.Reverse.html#3575" class="Bound">e</a><a id="3576" class="Symbol">}</a> <a id="3578" class="Symbol"></a> <a id="3580" href="Categories.Category.Monoidal.Bundle.html#405" class="Record">MonoidalCategory</a> <a id="3597" href="Categories.Category.Monoidal.Construction.Reverse.html#3571" class="Bound">o</a> <a id="3599" href="Categories.Category.Monoidal.Construction.Reverse.html#3573" class="Bound"></a> <a id="3601" href="Categories.Category.Monoidal.Construction.Reverse.html#3575" class="Bound">e</a> <a id="3603" class="Symbol"></a> <a id="3605" href="Categories.Category.Monoidal.Bundle.html#405" class="Record">MonoidalCategory</a> <a id="3622" href="Categories.Category.Monoidal.Construction.Reverse.html#3571" class="Bound">o</a> <a id="3624" href="Categories.Category.Monoidal.Construction.Reverse.html#3573" class="Bound"></a> <a id="3626" href="Categories.Category.Monoidal.Construction.Reverse.html#3575" class="Bound">e</a>
<a id="3628" href="Categories.Category.Monoidal.Construction.Reverse.html#3541" class="Function">Reverse-MonoidalCategory</a> <a id="3653" href="Categories.Category.Monoidal.Construction.Reverse.html#3653" class="Bound">C</a> <a id="3655" class="Symbol">=</a> <a id="3657" class="Keyword">record</a>
<a id="3666" class="Symbol">{</a> <a id="3668" href="Categories.Category.Monoidal.Bundle.html#470" class="Field">U</a> <a id="3677" class="Symbol">=</a> <a id="3679" href="Categories.Category.Monoidal.Bundle.html#470" class="Field">U</a>
<a id="3683" class="Symbol">;</a> <a id="3685" href="Categories.Category.Monoidal.Bundle.html#500" class="Field">monoidal</a> <a id="3694" class="Symbol">=</a> <a id="3696" href="Categories.Category.Monoidal.Construction.Reverse.html#1704" class="Function">Reverse-Monoidal</a> <a id="3713" href="Categories.Category.Monoidal.Bundle.html#500" class="Field">monoidal</a>
<a id="3724" class="Symbol">}</a>
<a id="3728" class="Keyword">where</a> <a id="3734" class="Keyword">open</a> <a id="3739" href="Categories.Category.Monoidal.Bundle.html#405" class="Module">MonoidalCategory</a> <a id="3756" href="Categories.Category.Monoidal.Construction.Reverse.html#3653" class="Bound">C</a>
<a id="Reverse-BraidedMonoidalCategory"></a><a id="3759" href="Categories.Category.Monoidal.Construction.Reverse.html#3759" class="Function">Reverse-BraidedMonoidalCategory</a> <a id="3791" class="Symbol">:</a> <a id="3793" class="Symbol"></a> <a id="3795" class="Symbol">{</a><a id="3796" href="Categories.Category.Monoidal.Construction.Reverse.html#3796" class="Bound">o</a> <a id="3798" href="Categories.Category.Monoidal.Construction.Reverse.html#3798" class="Bound"></a> <a id="3800" href="Categories.Category.Monoidal.Construction.Reverse.html#3800" class="Bound">e</a><a id="3801" class="Symbol">}</a> <a id="3803" class="Symbol"></a>
<a id="3807" href="Categories.Category.Monoidal.Bundle.html#588" class="Record">BraidedMonoidalCategory</a> <a id="3831" href="Categories.Category.Monoidal.Construction.Reverse.html#3796" class="Bound">o</a> <a id="3833" href="Categories.Category.Monoidal.Construction.Reverse.html#3798" class="Bound"></a> <a id="3835" href="Categories.Category.Monoidal.Construction.Reverse.html#3800" class="Bound">e</a> <a id="3837" class="Symbol"></a> <a id="3839" href="Categories.Category.Monoidal.Bundle.html#588" class="Record">BraidedMonoidalCategory</a> <a id="3863" href="Categories.Category.Monoidal.Construction.Reverse.html#3796" class="Bound">o</a> <a id="3865" href="Categories.Category.Monoidal.Construction.Reverse.html#3798" class="Bound"></a> <a id="3867" href="Categories.Category.Monoidal.Construction.Reverse.html#3800" class="Bound">e</a>
<a id="3869" href="Categories.Category.Monoidal.Construction.Reverse.html#3759" class="Function">Reverse-BraidedMonoidalCategory</a> <a id="3901" href="Categories.Category.Monoidal.Construction.Reverse.html#3901" class="Bound">C</a> <a id="3903" class="Symbol">=</a> <a id="3905" class="Keyword">record</a>
<a id="3914" class="Symbol">{</a> <a id="3916" href="Categories.Category.Monoidal.Bundle.html#660" class="Field">U</a> <a id="3925" class="Symbol">=</a> <a id="3927" href="Categories.Category.Monoidal.Bundle.html#660" class="Field">U</a>
<a id="3931" class="Symbol">;</a> <a id="3933" href="Categories.Category.Monoidal.Bundle.html#691" class="Field">monoidal</a> <a id="3942" class="Symbol">=</a> <a id="3944" href="Categories.Category.Monoidal.Construction.Reverse.html#1704" class="Function">Reverse-Monoidal</a> <a id="3961" href="Categories.Category.Monoidal.Bundle.html#691" class="Field">monoidal</a>
<a id="3972" class="Symbol">;</a> <a id="3974" href="Categories.Category.Monoidal.Bundle.html#718" class="Field">braided</a> <a id="3983" class="Symbol">=</a> <a id="3985" href="Categories.Category.Monoidal.Construction.Reverse.html#2599" class="Function">Reverse-Braided</a> <a id="4001" href="Categories.Category.Monoidal.Bundle.html#718" class="Field">braided</a>
<a id="4011" class="Symbol">}</a>
<a id="4015" class="Keyword">where</a> <a id="4021" class="Keyword">open</a> <a id="4026" href="Categories.Category.Monoidal.Bundle.html#588" class="Module">BraidedMonoidalCategory</a> <a id="4050" href="Categories.Category.Monoidal.Construction.Reverse.html#3901" class="Bound">C</a>
<a id="Reverse-SymmetricMonoidalCategory"></a><a id="4053" href="Categories.Category.Monoidal.Construction.Reverse.html#4053" class="Function">Reverse-SymmetricMonoidalCategory</a> <a id="4087" class="Symbol">:</a> <a id="4089" class="Symbol"></a> <a id="4091" class="Symbol">{</a><a id="4092" href="Categories.Category.Monoidal.Construction.Reverse.html#4092" class="Bound">o</a> <a id="4094" href="Categories.Category.Monoidal.Construction.Reverse.html#4094" class="Bound"></a> <a id="4096" href="Categories.Category.Monoidal.Construction.Reverse.html#4096" class="Bound">e</a><a id="4097" class="Symbol">}</a> <a id="4099" class="Symbol"></a>
<a id="4103" href="Categories.Category.Monoidal.Bundle.html#916" class="Record">SymmetricMonoidalCategory</a> <a id="4129" href="Categories.Category.Monoidal.Construction.Reverse.html#4092" class="Bound">o</a> <a id="4131" href="Categories.Category.Monoidal.Construction.Reverse.html#4094" class="Bound"></a> <a id="4133" href="Categories.Category.Monoidal.Construction.Reverse.html#4096" class="Bound">e</a> <a id="4135" class="Symbol"></a> <a id="4137" href="Categories.Category.Monoidal.Bundle.html#916" class="Record">SymmetricMonoidalCategory</a> <a id="4163" href="Categories.Category.Monoidal.Construction.Reverse.html#4092" class="Bound">o</a> <a id="4165" href="Categories.Category.Monoidal.Construction.Reverse.html#4094" class="Bound"></a> <a id="4167" href="Categories.Category.Monoidal.Construction.Reverse.html#4096" class="Bound">e</a>
<a id="4169" href="Categories.Category.Monoidal.Construction.Reverse.html#4053" class="Function">Reverse-SymmetricMonoidalCategory</a> <a id="4203" href="Categories.Category.Monoidal.Construction.Reverse.html#4203" class="Bound">C</a> <a id="4205" class="Symbol">=</a> <a id="4207" class="Keyword">record</a>
<a id="4216" class="Symbol">{</a> <a id="4218" href="Categories.Category.Monoidal.Bundle.html#990" class="Field">U</a> <a id="4228" class="Symbol">=</a> <a id="4230" href="Categories.Category.Monoidal.Bundle.html#990" class="Field">U</a>
<a id="4234" class="Symbol">;</a> <a id="4236" href="Categories.Category.Monoidal.Bundle.html#1021" class="Field">monoidal</a> <a id="4246" class="Symbol">=</a> <a id="4248" href="Categories.Category.Monoidal.Construction.Reverse.html#1704" class="Function">Reverse-Monoidal</a> <a id="4265" href="Categories.Category.Monoidal.Bundle.html#1021" class="Field">monoidal</a>
<a id="4276" class="Symbol">;</a> <a id="4278" href="Categories.Category.Monoidal.Bundle.html#1048" class="Field">symmetric</a> <a id="4288" class="Symbol">=</a> <a id="4290" href="Categories.Category.Monoidal.Construction.Reverse.html#3215" class="Function">Reverse-Symmetric</a> <a id="4308" href="Categories.Category.Monoidal.Bundle.html#1048" class="Field">symmetric</a>
<a id="4320" class="Symbol">}</a>
<a id="4324" class="Keyword">where</a> <a id="4330" class="Keyword">open</a> <a id="4335" href="Categories.Category.Monoidal.Bundle.html#916" class="Module">SymmetricMonoidalCategory</a> <a id="4361" href="Categories.Category.Monoidal.Construction.Reverse.html#4203" class="Bound">C</a>
</pre></body></html>