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

46 lines
No EOL
13 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.Monad.Commutative</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="Comment">-- Commutative Monad on a braided monoidal category</a>
<a id="89" class="Comment">-- https://ncatlab.org/nlab/show/commutative+monad</a>
<a id="141" class="Keyword">module</a> <a id="148" href="Categories.Monad.Commutative.html" class="Module">Categories.Monad.Commutative</a> <a id="177" class="Keyword">where</a>
<a id="184" class="Keyword">open</a> <a id="189" class="Keyword">import</a> <a id="196" href="Level.html" class="Module">Level</a>
<a id="202" class="Keyword">open</a> <a id="207" class="Keyword">import</a> <a id="214" href="Data.Product.html" class="Module">Data.Product</a> <a id="227" class="Keyword">using</a> <a id="233" class="Symbol">(</a><a id="234" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">_,_</a><a id="237" class="Symbol">)</a>
<a id="240" class="Keyword">open</a> <a id="245" class="Keyword">import</a> <a id="252" href="Categories.Category.Core.html" class="Module">Categories.Category.Core</a> <a id="277" class="Keyword">using</a> <a id="283" class="Symbol">(</a><a id="284" href="Categories.Category.Core.html#442" class="Record">Category</a><a id="292" class="Symbol">)</a>
<a id="294" class="Keyword">open</a> <a id="299" class="Keyword">import</a> <a id="306" href="Categories.Category.Monoidal.html" class="Module">Categories.Category.Monoidal</a> <a id="335" class="Keyword">using</a> <a id="341" class="Symbol">(</a><a id="342" href="Categories.Category.Monoidal.Core.html#1287" class="Record">Monoidal</a><a id="350" class="Symbol">)</a>
<a id="352" class="Keyword">open</a> <a id="357" class="Keyword">import</a> <a id="364" href="Categories.Category.Monoidal.Braided.html" class="Module">Categories.Category.Monoidal.Braided</a> <a id="401" class="Keyword">using</a> <a id="407" class="Symbol">(</a><a id="408" href="Categories.Category.Monoidal.Braided.html#643" class="Record">Braided</a><a id="415" class="Symbol">)</a>
<a id="417" class="Keyword">open</a> <a id="422" class="Keyword">import</a> <a id="429" href="Categories.Monad.html" class="Module">Categories.Monad</a> <a id="446" class="Keyword">using</a> <a id="452" class="Symbol">(</a><a id="453" href="Categories.Monad.html#454" class="Record">Monad</a><a id="458" class="Symbol">)</a>
<a id="460" class="Keyword">open</a> <a id="465" class="Keyword">import</a> <a id="472" href="Categories.Monad.Strong.html" class="Module">Categories.Monad.Strong</a> <a id="496" class="Keyword">using</a> <a id="502" class="Symbol">(</a><a id="503" href="Categories.Monad.Strong.html#1832" class="Record">StrongMonad</a><a id="514" class="Symbol">;</a> <a id="516" href="Categories.Monad.Strong.html#2046" class="Record">RightStrength</a><a id="529" class="Symbol">;</a> <a id="531" href="Categories.Monad.Strong.html#764" class="Record">Strength</a><a id="539" class="Symbol">)</a>
<a id="541" class="Keyword">import</a> <a id="548" href="Categories.Monad.Strong.Properties.html" class="Module">Categories.Monad.Strong.Properties</a> <a id="583" class="Symbol">as</a> <a id="586" class="Module">StrongProps</a>
<a id="599" class="Keyword">private</a>
<a id="609" class="Keyword">variable</a>
<a id="622" href="Categories.Monad.Commutative.html#622" class="Generalizable">o</a> <a id="624" href="Categories.Monad.Commutative.html#624" class="Generalizable"></a> <a id="626" href="Categories.Monad.Commutative.html#626" class="Generalizable">e</a> <a id="628" class="Symbol">:</a> <a id="630" href="Agda.Primitive.html#742" class="Postulate">Level</a>
<a id="637" class="Keyword">module</a> <a id="644" href="Categories.Monad.Commutative.html#644" class="Module">_</a> <a id="646" class="Symbol">{</a><a id="647" href="Categories.Monad.Commutative.html#647" class="Bound">C</a> <a id="649" class="Symbol">:</a> <a id="651" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="660" href="Categories.Monad.Commutative.html#622" class="Generalizable">o</a> <a id="662" href="Categories.Monad.Commutative.html#624" class="Generalizable"></a> <a id="664" href="Categories.Monad.Commutative.html#626" class="Generalizable">e</a><a id="665" class="Symbol">}</a> <a id="667" class="Symbol">{</a><a id="668" href="Categories.Monad.Commutative.html#668" class="Bound">V</a> <a id="670" class="Symbol">:</a> <a id="672" href="Categories.Category.Monoidal.Core.html#1287" class="Record">Monoidal</a> <a id="681" href="Categories.Monad.Commutative.html#647" class="Bound">C</a><a id="682" class="Symbol">}</a> <a id="684" class="Symbol">(</a><a id="685" href="Categories.Monad.Commutative.html#685" class="Bound">B</a> <a id="687" class="Symbol">:</a> <a id="689" href="Categories.Category.Monoidal.Braided.html#643" class="Record">Braided</a> <a id="697" href="Categories.Monad.Commutative.html#668" class="Bound">V</a><a id="698" class="Symbol">)</a> <a id="700" class="Keyword">where</a>
<a id="708" class="Keyword">record</a> <a id="715" href="Categories.Monad.Commutative.html#715" class="Record">Commutative</a> <a id="727" class="Symbol">(</a><a id="728" href="Categories.Monad.Commutative.html#728" class="Bound">LSM</a> <a id="732" class="Symbol">:</a> <a id="734" href="Categories.Monad.Strong.html#1832" class="Record">StrongMonad</a> <a id="746" href="Categories.Monad.Commutative.html#668" class="Bound">V</a><a id="747" class="Symbol">)</a> <a id="749" class="Symbol">:</a> <a id="751" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="755" class="Symbol">(</a><a id="756" href="Categories.Monad.Commutative.html#660" class="Bound">o</a> <a id="758" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="760" href="Categories.Monad.Commutative.html#662" class="Bound"></a> <a id="762" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="764" href="Categories.Monad.Commutative.html#664" class="Bound">e</a><a id="765" class="Symbol">)</a> <a id="767" class="Keyword">where</a>
<a id="777" class="Keyword">open</a> <a id="782" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="791" href="Categories.Monad.Commutative.html#647" class="Bound">C</a> <a id="793" class="Keyword">using</a> <a id="799" class="Symbol">(</a><a id="800" href="Categories.Category.Core.html#575" class="Field Operator">_⇒_</a><a id="803" class="Symbol">;</a> <a id="805" href="Categories.Category.Core.html#656" class="Field Operator">_∘_</a><a id="808" class="Symbol">;</a> <a id="810" href="Categories.Category.Core.html#595" class="Field Operator">_≈_</a><a id="813" class="Symbol">)</a>
<a id="819" class="Keyword">open</a> <a id="824" href="Categories.Category.Monoidal.Braided.html#643" class="Module">Braided</a> <a id="832" href="Categories.Monad.Commutative.html#685" class="Bound">B</a> <a id="834" class="Keyword">using</a> <a id="840" class="Symbol">(</a><a id="841" href="Categories.Category.Monoidal.Core.html#1435" class="Function Operator">_⊗₀_</a><a id="845" class="Symbol">)</a>
<a id="851" class="Keyword">open</a> <a id="856" href="Categories.Monad.Strong.html#1832" class="Module">StrongMonad</a> <a id="868" href="Categories.Monad.Commutative.html#728" class="Bound">LSM</a> <a id="872" class="Keyword">using</a> <a id="878" class="Symbol">(</a><a id="879" href="Categories.Monad.Strong.html#1918" class="Field">M</a><a id="880" class="Symbol">;</a> <a id="882" href="Categories.Monad.Strong.html#1941" class="Field">strength</a><a id="890" class="Symbol">)</a>
<a id="896" class="Keyword">open</a> <a id="901" href="Categories.Monad.Strong.Properties.html#2688" class="Module">StrongProps.Left.Shorthands</a> <a id="929" href="Categories.Monad.Strong.html#1941" class="Function">strength</a>
<a id="943" href="Categories.Monad.Commutative.html#943" class="Function">rightStrength</a> <a id="957" class="Symbol">:</a> <a id="959" href="Categories.Monad.Strong.html#2046" class="Record">RightStrength</a> <a id="973" href="Categories.Monad.Commutative.html#668" class="Bound">V</a> <a id="975" href="Categories.Monad.Strong.html#1918" class="Function">M</a>
<a id="981" href="Categories.Monad.Commutative.html#943" class="Function">rightStrength</a> <a id="995" class="Symbol">=</a> <a id="997" href="Categories.Monad.Strong.Properties.html#9001" class="Function">StrongProps.Strength⇒RightStrength</a> <a id="1032" href="Categories.Monad.Commutative.html#685" class="Bound">B</a> <a id="1034" href="Categories.Monad.Strong.html#1941" class="Function">strength</a>
<a id="1048" class="Keyword">open</a> <a id="1053" href="Categories.Monad.Strong.Properties.html#9608" class="Module">StrongProps.Right.Shorthands</a> <a id="1082" href="Categories.Monad.Commutative.html#943" class="Function">rightStrength</a>
<a id="1101" class="Keyword">field</a>
<a id="1113" href="Categories.Monad.Commutative.html#1113" class="Field">commutes</a> <a id="1122" class="Symbol">:</a> <a id="1124" class="Symbol"></a> <a id="1126" class="Symbol">{</a><a id="1127" href="Categories.Monad.Commutative.html#1127" class="Bound">X</a> <a id="1129" href="Categories.Monad.Commutative.html#1129" class="Bound">Y</a><a id="1130" class="Symbol">}</a> <a id="1132" class="Symbol"></a> <a id="1134" href="Categories.NaturalTransformation.Core.html#783" class="Function">M.μ.η</a> <a id="1140" class="Symbol">(</a><a id="1141" href="Categories.Monad.Commutative.html#1127" class="Bound">X</a> <a id="1143" href="Categories.Category.Monoidal.Core.html#1435" class="Function Operator">⊗₀</a> <a id="1146" href="Categories.Monad.Commutative.html#1129" class="Bound">Y</a><a id="1147" class="Symbol">)</a> <a id="1149" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1151" href="Categories.Functor.Core.html#806" class="Function">M.F.₁</a> <a id="1157" href="Categories.Monad.Strong.Properties.html#9676" class="Function">τ</a> <a id="1159" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1161" href="Categories.Monad.Strong.Properties.html#2741" class="Function">σ</a> <a id="1163" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="1165" href="Categories.NaturalTransformation.Core.html#783" class="Function">M.μ.η</a> <a id="1171" class="Symbol">(</a><a id="1172" href="Categories.Monad.Commutative.html#1127" class="Bound">X</a> <a id="1174" href="Categories.Category.Monoidal.Core.html#1435" class="Function Operator">⊗₀</a> <a id="1177" href="Categories.Monad.Commutative.html#1129" class="Bound">Y</a><a id="1178" class="Symbol">)</a> <a id="1180" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1182" href="Categories.Functor.Core.html#806" class="Function">M.F.₁</a> <a id="1188" href="Categories.Monad.Strong.Properties.html#2741" class="Function">σ</a> <a id="1190" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1192" href="Categories.Monad.Strong.Properties.html#9676" class="Function">τ</a>
<a id="1197" class="Keyword">record</a> <a id="1204" href="Categories.Monad.Commutative.html#1204" class="Record">CommutativeMonad</a> <a id="1221" class="Symbol">:</a> <a id="1223" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1227" class="Symbol">(</a><a id="1228" href="Categories.Monad.Commutative.html#660" class="Bound">o</a> <a id="1230" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="1232" href="Categories.Monad.Commutative.html#662" class="Bound"></a> <a id="1234" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="1236" href="Categories.Monad.Commutative.html#664" class="Bound">e</a><a id="1237" class="Symbol">)</a> <a id="1239" class="Keyword">where</a>
<a id="1249" class="Keyword">field</a>
<a id="1261" href="Categories.Monad.Commutative.html#1261" class="Field">strongMonad</a> <a id="1273" class="Symbol">:</a> <a id="1275" href="Categories.Monad.Strong.html#1832" class="Record">StrongMonad</a> <a id="1287" href="Categories.Monad.Commutative.html#668" class="Bound">V</a>
<a id="1295" href="Categories.Monad.Commutative.html#1295" class="Field">commutative</a> <a id="1307" class="Symbol">:</a> <a id="1309" href="Categories.Monad.Commutative.html#715" class="Record">Commutative</a> <a id="1321" href="Categories.Monad.Commutative.html#1261" class="Field">strongMonad</a>
<a id="1338" class="Keyword">open</a> <a id="1343" href="Categories.Monad.Strong.html#1832" class="Module">StrongMonad</a> <a id="1355" href="Categories.Monad.Commutative.html#1261" class="Field">strongMonad</a> <a id="1367" class="Keyword">public</a>
<a id="1378" class="Keyword">open</a> <a id="1383" href="Categories.Monad.Commutative.html#715" class="Module">Commutative</a> <a id="1395" href="Categories.Monad.Commutative.html#1295" class="Field">commutative</a> <a id="1407" class="Keyword">public</a>
</pre></body></html>