bsc-leon-vatthauer/agda/bsc-thesis/Categories.Category.Construction.Kleisli.html

60 lines
36 KiB
HTML
Raw Normal View History

2024-02-09 17:53:52 +01:00
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Categories.Category.Construction.Kleisli</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="36" class="Keyword">module</a> <a id="43" href="Categories.Category.Construction.Kleisli.html" class="Module">Categories.Category.Construction.Kleisli</a> <a id="84" class="Keyword">where</a>
<a id="91" class="Keyword">open</a> <a id="96" class="Keyword">import</a> <a id="103" href="Level.html" class="Module">Level</a>
<a id="110" class="Keyword">open</a> <a id="115" class="Keyword">import</a> <a id="122" href="Categories.Category.html" class="Module">Categories.Category</a>
<a id="142" class="Keyword">open</a> <a id="147" class="Keyword">import</a> <a id="154" href="Categories.Functor.html" class="Module">Categories.Functor</a> <a id="173" class="Keyword">using</a> <a id="179" class="Symbol">(</a><a id="180" href="Categories.Functor.Core.html#248" class="Record">Functor</a><a id="187" class="Symbol">;</a> <a id="189" class="Keyword">module</a> <a id="196" href="Categories.Functor.Core.html#248" class="Module">Functor</a><a id="203" class="Symbol">)</a>
<a id="205" class="Keyword">open</a> <a id="210" class="Keyword">import</a> <a id="217" href="Categories.NaturalTransformation.html" class="Module">Categories.NaturalTransformation</a> <a id="250" class="Keyword">hiding</a> <a id="257" class="Symbol">(</a><a id="258" href="Categories.NaturalTransformation.Core.html#2132" class="Function">id</a><a id="260" class="Symbol">)</a>
<a id="262" class="Keyword">open</a> <a id="267" class="Keyword">import</a> <a id="274" href="Categories.Monad.html" class="Module">Categories.Monad</a>
<a id="291" class="Keyword">import</a> <a id="298" href="Categories.Morphism.Reasoning.Core.html" class="Module">Categories.Morphism.Reasoning.Core</a> <a id="333" class="Symbol">as</a> <a id="336" class="Module">MR</a>
<a id="340" class="Keyword">private</a>
<a id="350" class="Keyword">variable</a>
<a id="363" href="Categories.Category.Construction.Kleisli.html#363" class="Generalizable">o</a> <a id="365" href="Categories.Category.Construction.Kleisli.html#365" class="Generalizable"></a> <a id="367" href="Categories.Category.Construction.Kleisli.html#367" class="Generalizable">e</a> <a id="369" class="Symbol">:</a> <a id="371" href="Agda.Primitive.html#742" class="Postulate">Level</a>
<a id="Kleisli"></a><a id="378" href="Categories.Category.Construction.Kleisli.html#378" class="Function">Kleisli</a> <a id="386" class="Symbol">:</a> <a id="388" class="Symbol">{</a><a id="389" href="Categories.Category.Construction.Kleisli.html#389" class="Bound">𝒞</a> <a id="391" class="Symbol">:</a> <a id="393" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="402" href="Categories.Category.Construction.Kleisli.html#363" class="Generalizable">o</a> <a id="404" href="Categories.Category.Construction.Kleisli.html#365" class="Generalizable"></a> <a id="406" href="Categories.Category.Construction.Kleisli.html#367" class="Generalizable">e</a><a id="407" class="Symbol">}</a> <a id="409" class="Symbol"></a> <a id="411" href="Categories.Monad.html#454" class="Record">Monad</a> <a id="417" href="Categories.Category.Construction.Kleisli.html#389" class="Bound">𝒞</a> <a id="419" class="Symbol"></a> <a id="421" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="430" href="Categories.Category.Construction.Kleisli.html#363" class="Generalizable">o</a> <a id="432" href="Categories.Category.Construction.Kleisli.html#365" class="Generalizable"></a> <a id="434" href="Categories.Category.Construction.Kleisli.html#367" class="Generalizable">e</a>
<a id="436" href="Categories.Category.Construction.Kleisli.html#378" class="Function">Kleisli</a> <a id="444" class="Symbol">{</a><a id="445" class="Argument">𝒞</a> <a id="447" class="Symbol">=</a> <a id="449" href="Categories.Category.Construction.Kleisli.html#449" class="Bound">𝒞</a><a id="450" class="Symbol">}</a> <a id="452" href="Categories.Category.Construction.Kleisli.html#452" class="Bound">M</a> <a id="454" class="Symbol">=</a> <a id="456" class="Keyword">record</a>
<a id="465" class="Symbol">{</a> <a id="467" href="Categories.Category.Core.html#559" class="Field">Obj</a> <a id="477" class="Symbol">=</a> <a id="479" href="Categories.Category.Core.html#559" class="Function">Obj</a>
<a id="485" class="Symbol">;</a> <a id="487" href="Categories.Category.Core.html#575" class="Field Operator">_⇒_</a> <a id="497" class="Symbol">=</a> <a id="499" class="Symbol">λ</a> <a id="501" href="Categories.Category.Construction.Kleisli.html#501" class="Bound">A</a> <a id="503" href="Categories.Category.Construction.Kleisli.html#503" class="Bound">B</a> <a id="505" class="Symbol"></a> <a id="507" class="Symbol">(</a><a id="508" href="Categories.Category.Construction.Kleisli.html#501" class="Bound">A</a> <a id="510" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="512" href="Categories.Functor.Core.html#432" class="Function">F₀</a> <a id="515" href="Categories.Category.Construction.Kleisli.html#503" class="Bound">B</a><a id="516" class="Symbol">)</a>
<a id="520" class="Symbol">;</a> <a id="522" href="Categories.Category.Core.html#595" class="Field Operator">_≈_</a> <a id="532" class="Symbol">=</a> <a id="534" href="Categories.Category.Core.html#595" class="Function Operator">_≈_</a>
<a id="540" class="Symbol">;</a> <a id="542" href="Categories.Category.Core.html#656" class="Field Operator">_∘_</a> <a id="552" class="Symbol">=</a> <a id="554" class="Symbol">λ</a> <a id="556" href="Categories.Category.Construction.Kleisli.html#556" class="Bound">f</a> <a id="558" href="Categories.Category.Construction.Kleisli.html#558" class="Bound">g</a> <a id="560" class="Symbol"></a> <a id="562" class="Symbol">(</a><a id="563" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="567" class="Symbol">_</a> <a id="569" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="571" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="574" href="Categories.Category.Construction.Kleisli.html#556" class="Bound">f</a><a id="575" class="Symbol">)</a> <a id="577" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="579" href="Categories.Category.Construction.Kleisli.html#558" class="Bound">g</a>
<a id="583" class="Symbol">;</a> <a id="585" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="595" class="Symbol">=</a> <a id="597" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="601" class="Symbol">_</a>
<a id="605" class="Symbol">;</a> <a id="607" href="Categories.Category.Core.html#715" class="Field">assoc</a> <a id="617" class="Symbol">=</a> <a id="619" href="Categories.Category.Construction.Kleisli.html#958" class="Function">assoc</a>
<a id="628" class="Symbol">;</a> <a id="630" href="Categories.Category.Core.html#1004" class="Field">sym-assoc</a> <a id="640" class="Symbol">=</a> <a id="642" href="Relation.Binary.Structures.html#1622" class="Function">Equiv.sym</a> <a id="652" href="Categories.Category.Construction.Kleisli.html#958" class="Function">assoc</a>
<a id="661" class="Symbol">;</a> <a id="663" href="Categories.Category.Core.html#1096" class="Field">identityˡ</a> <a id="673" class="Symbol">=</a> <a id="675" href="Categories.Category.Construction.Kleisli.html#1570" class="Function">identityˡ</a>
<a id="688" class="Symbol">;</a> <a id="690" href="Categories.Category.Core.html#1145" class="Field">identityʳ</a> <a id="700" class="Symbol">=</a> <a id="702" href="Categories.Category.Construction.Kleisli.html#1685" class="Function">identityʳ</a>
<a id="715" class="Symbol">;</a> <a id="717" href="Categories.Category.Core.html#1339" class="Field">identity²</a> <a id="727" class="Symbol">=</a> <a id="729" href="Categories.Category.Construction.Kleisli.html#1941" class="Function">identity²</a>
<a id="742" class="Symbol">;</a> <a id="744" href="Categories.Category.Core.html#1384" class="Field">equiv</a> <a id="754" class="Symbol">=</a> <a id="756" href="Categories.Category.Core.html#1384" class="Function">equiv</a>
<a id="764" class="Symbol">;</a> <a id="766" href="Categories.Category.Core.html#1438" class="Field">∘-resp-≈</a> <a id="776" class="Symbol">=</a> <a id="778" class="Symbol">λ</a> <a id="780" href="Categories.Category.Construction.Kleisli.html#780" class="Bound">f≈h</a> <a id="784" href="Categories.Category.Construction.Kleisli.html#784" class="Bound">g≈i</a> <a id="788" class="Symbol"></a> <a id="790" href="Categories.Category.Core.html#1438" class="Function">∘-resp-≈</a> <a id="799" class="Symbol">(</a><a id="800" href="Categories.Category.Core.html#1706" class="Function">∘-resp-≈ʳ</a> <a id="810" class="Symbol">(</a><a id="811" href="Categories.Functor.Core.html#696" class="Function">F-resp-≈</a> <a id="820" href="Categories.Category.Construction.Kleisli.html#780" class="Bound">f≈h</a><a id="823" class="Symbol">))</a> <a id="826" href="Categories.Category.Construction.Kleisli.html#784" class="Bound">g≈i</a>
<a id="832" class="Symbol">}</a>
<a id="836" class="Keyword">where</a>
<a id="844" class="Keyword">module</a> <a id="851" href="Categories.Category.Construction.Kleisli.html#851" class="Module">M</a> <a id="853" class="Symbol">=</a> <a id="855" href="Categories.Monad.html#454" class="Module">Monad</a> <a id="861" href="Categories.Category.Construction.Kleisli.html#452" class="Bound">M</a>
<a id="865" class="Keyword">open</a> <a id="870" href="Categories.Category.Construction.Kleisli.html#851" class="Module">M</a> <a id="872" class="Keyword">using</a> <a id="878" class="Symbol">(</a><a id="879" href="Categories.Monad.html#583" class="Field">μ</a><a id="880" class="Symbol">;</a> <a id="882" href="Categories.Monad.html#547" class="Field">η</a><a id="883" class="Symbol">;</a> <a id="885" href="Categories.Monad.html#525" class="Field">F</a><a id="886" class="Symbol">)</a>
<a id="890" class="Keyword">open</a> <a id="895" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="903" href="Categories.Monad.html#525" class="Field">F</a>
<a id="907" class="Keyword">open</a> <a id="912" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="921" href="Categories.Category.Construction.Kleisli.html#449" class="Bound">𝒞</a>
<a id="925" class="Keyword">open</a> <a id="930" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
<a id="945" class="Keyword">open</a> <a id="950" href="Categories.Morphism.Reasoning.Core.html" class="Module">MR</a> <a id="953" href="Categories.Category.Construction.Kleisli.html#449" class="Bound">𝒞</a>
<a id="958" href="Categories.Category.Construction.Kleisli.html#958" class="Function">assoc</a> <a id="965" class="Symbol">:</a> <a id="967" class="Symbol"></a> <a id="969" class="Symbol">{</a><a id="970" href="Categories.Category.Construction.Kleisli.html#970" class="Bound">A</a> <a id="972" href="Categories.Category.Construction.Kleisli.html#972" class="Bound">B</a> <a id="974" href="Categories.Category.Construction.Kleisli.html#974" class="Bound">C</a> <a id="976" href="Categories.Category.Construction.Kleisli.html#976" class="Bound">D</a><a id="977" class="Symbol">}</a> <a id="979" class="Symbol">{</a><a id="980" href="Categories.Category.Construction.Kleisli.html#980" class="Bound">f</a> <a id="982" class="Symbol">:</a> <a id="984" href="Categories.Category.Construction.Kleisli.html#970" class="Bound">A</a> <a id="986" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="988" href="Categories.Functor.Core.html#432" class="Function">F₀</a> <a id="991" href="Categories.Category.Construction.Kleisli.html#972" class="Bound">B</a><a id="992" class="Symbol">}</a> <a id="994" class="Symbol">{</a><a id="995" href="Categories.Category.Construction.Kleisli.html#995" class="Bound">g</a> <a id="997" class="Symbol">:</a> <a id="999" href="Categories.Category.Construction.Kleisli.html#972" class="Bound">B</a> <a id="1001" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="1003" href="Categories.Functor.Core.html#432" class="Function">F₀</a> <a id="1006" href="Categories.Category.Construction.Kleisli.html#974" class="Bound">C</a><a id="1007" class="Symbol">}</a> <a id="1009" class="Symbol">{</a><a id="1010" href="Categories.Category.Construction.Kleisli.html#1010" class="Bound">h</a> <a id="1012" class="Symbol">:</a> <a id="1014" href="Categories.Category.Construction.Kleisli.html#974" class="Bound">C</a> <a id="1016" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="1018" href="Categories.Functor.Core.html#432" class="Function">F₀</a> <a id="1021" href="Categories.Category.Construction.Kleisli.html#976" class="Bound">D</a><a id="1022" class="Symbol">}</a>
<a id="1034" class="Symbol"></a> <a id="1036" class="Symbol">(</a><a id="1037" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="1041" href="Categories.Category.Construction.Kleisli.html#976" class="Bound">D</a> <a id="1043" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1045" class="Symbol">(</a><a id="1046" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="1049" class="Symbol">((</a><a id="1051" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="1055" href="Categories.Category.Construction.Kleisli.html#976" class="Bound">D</a> <a id="1057" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1059" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="1062" href="Categories.Category.Construction.Kleisli.html#1010" class="Bound">h</a><a id="1063" class="Symbol">)</a> <a id="1065" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1067" href="Categories.Category.Construction.Kleisli.html#995" class="Bound">g</a><a id="1068" class="Symbol">)))</a> <a id="1072" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1074" href="Categories.Category.Construction.Kleisli.html#980" class="Bound">f</a> <a id="1076" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="1078" class="Symbol">(</a><a id="1079" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="1083" href="Categories.Category.Construction.Kleisli.html#976" class="Bound">D</a> <a id="1085" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1087" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="1090" href="Categories.Category.Construction.Kleisli.html#1010" class="Bound">h</a><a id="1091" class="Symbol">)</a> <a id="1093" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1095" class="Symbol">((</a><a id="1097" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="1101" href="Categories.Category.Construction.Kleisli.html#974" class="Bound">C</a> <a id="1103" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1105" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="1108" href="Categories.Category.Construction.Kleisli.html#995" class="Bound">g</a><a id="1109" class="Symbol">)</a> <a id="1111" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1113" href="Categories.Category.Construction.Kleisli.html#980" class="Bound">f</a><a id="1114" class="Symbol">)</a>
<a id="1118" href="Categories.Category.Construction.Kleisli.html#958" class="Function">assoc</a> <a id="1125" class="Symbol">{</a><a id="1126" href="Categories.Category.Construction.Kleisli.html#1126" class="Bound">A</a><a id="1127" class="Symbol">}</a> <a id="1129" class="Symbol">{</a><a id="1130" href="Categories.Category.Construction.Kleisli.html#1130" class="Bound">B</a><a id="1131" class="Symbol">}</a> <a id="1133" class="Symbol">{</a><a id="1134" href="Categories.Category.Construction.Kleisli.html#1134" class="Bound">C</a><a id="1135" class="Symbol">}</a> <a id="1137" class="Symbol">{</a><a id="1138" href="Categories.Category.Construction.Kleisli.html#1138" class="Bound">D</a><a id="1139" class="Symbol">}</a> <a id="1141" class="Symbol">{</a><a id="1142" href="Categories.Category.Construction.Kleisli.html#1142" class="Bound">f</a><a id="1143" class="Symbol">}</a> <a id="1145" class="Symbol">{</a><a id="1146" href="Categories.Category.Construction.Kleisli.html#1146" class="Bound">g</a><a id="1147" class="Symbol">}</a> <a id="1149" class="Symbol">{</a><a id="1150" href="Categories.Category.Construction.Kleisli.html#1150" class="Bound">h</a><a id="1151" class="Symbol">}</a> <a id="1153" class="Symbol">=</a> <a id="1155" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="1165" class="Symbol">(</a><a id="1166" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="1170" href="Categories.Category.Construction.Kleisli.html#1138" class="Bound">D</a> <a id="1172" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1174" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="1177" class="Symbol">((</a><a id="1179" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="1183" href="Categories.Category.Construction.Kleisli.html#1138" class="Bound">D</a> <a id="1185" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1187" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="1190" href="Categories.Category.Construction.Kleisli.html#1150" class="Bound">h</a><a id="1191" class="Symbol">)</a> <a id="1193" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1195" href="Categories.Category.Construction.Kleisli.html#1146" class="Bound">g</a><a id="1196" class="Symbol">))</a> <a id="1199" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1201" href="Categories.Category.Construction.Kleisli.html#1142" class="Bound">f</a> <a id="1213" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="1216" href="Categories.Morphism.Reasoning.Core.html#2347" class="Function">pushʳ</a> <a id="1222" href="Categories.Functor.Core.html#565" class="Function">homomorphism</a> <a id="1235" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="1243" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="1249" class="Symbol">((</a><a id="1251" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="1255" href="Categories.Category.Construction.Kleisli.html#1138" class="Bound">D</a> <a id="1257" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1259" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="1262" class="Symbol">(</a><a id="1263" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="1267" href="Categories.Category.Construction.Kleisli.html#1138" class="Bound">D</a> <a id="1269" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1271" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="1274" href="Categories.Category.Construction.Kleisli.html#1150" class="Bound">h</a><a id="1275" class="Symbol">))</a> <a id="1278" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1280" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="1283" href="Categories.Category.Construction.Kleisli.html#1146" class="Bound">g</a><a id="1284" class="Symbol">)</a> <a id="1286" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1288" href="Categories.Category.Construction.Kleisli.html#1142" class="Bound">f</a> <a id="1297" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="1300" href="Categories.Morphism.Reasoning.Core.html#2485" class="Function">pushˡ</a> <a id="1306" class="Symbol">(</a><a id="1307" href="Categories.Category.Core.html#1597" class="Function">∘-resp-≈ˡ</a> <a id="1317" class="Symbol">(</a><a id="1318" href="Categories.Category.Core.html#1706" class="Function">∘-resp-≈ʳ</a> <a id="1328" href="Categories.Functor.Core.html#565" class="Function">homomorphism</a><a id="1340" class="Symbol">))</a> <a id="1343" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="1349" class="Symbol">(</a><a id="1350" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="1354" href="Categories.Category.Construction.Kleisli.html#1138" class="Bound">D</a> <a id="1356" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1358" class="Symbol">(</a><a id="1359" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="1362" class="Symbol">(</a><a id="1363" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="1367" href="Categories.Category.Construction.Kleisli.html#1138" class="Bound">D</a><a id="1368" class="Symbol">)</a> <a id="1370" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1372" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="1375" class="Symbol">(</a><a id="1376" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="1379" href="Categories.Category.Construction.Kleisli.html#1150" class="Bound">h</a><a id="1380" class="Symbol">)))</a> <a id="1384" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1386" class="Symbol">(</a><a id="1387" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="1390" href="Categories.Category.Construction.Kleisli.html#1146" class="Bound">g</a> <a id="1392" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1394" href="Categories.Category.Construction.Kleisli.html#1142" class="Bound">f</a><a id="1395" class="Symbol">)</a> <a id="1397" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="1400" href="Categories.Morphism.Reasoning.Core.html#2485" class="Function">pushˡ</a> <a id="1406" class="Symbol">(</a><a id="1407" href="Categories.Morphism.Reasoning.Core.html#4688" class="Function">glue</a> <a id="1413" href="Categories.Monad.html#759" class="Field">M.assoc</a> <a id="1421" class="Symbol">(</a><a id="1422" href="Categories.NaturalTransformation.Core.html#827" class="Function">μ.commute</a> <a id="1432" href="Categories.Category.Construction.Kleisli.html#1150" class="Bound">h</a><a id="1433" class="Symbol">))</a> <a id="1436" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="1442" class="Symbol">(</a><a id="1443" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="1447" href="Categories.Category.Construction.Kleisli.html#1138" class="Bound">D</a> <a id="1449" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1451" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="1454" href="Categories.Category.Construction.Kleisli.html#1150" class="Bound">h</a><a id="1455" class="Symbol">)</a> <a id="1457" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1459" class="Symbol">(</a><a id="1460" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="1464" href="Categories.Category.Construction.Kleisli.html#1134" class="Bound">C</a> <a id="1466" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1468" class="Symbol">(</a><a id="1469" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="1472" href="Categories.Category.Construction.Kleisli.html#1146" class="Bound">g</a> <a id="1474" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1476" href="Categories.Category.Construction.Kleisli.html#1142" class="Bound">f</a><a id="1477" class="Symbol">))</a> <a id="1490" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="1493" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="1501" href="Categories.Category.Core.html#1004" class="Function">sym-assoc</a> <a id="1511" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="1517" class="Symbol">(</a><a id="1518" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="1522" href="Categories.Category.Construction.Kleisli.html#1138" class="Bound">D</a> <a id="1524" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1526" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="1529" href="Categories.Category.Construction.Kleisli.html#1150" class="Bound">h</a><a id="1530" class="Symbol">)</a> <a id="1532" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1534" class="Symbol">((</a><a id="1536" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="1540" href="Categories.Category.Construction.Kleisli.html#1134" class="Bound">C</a> <a id="1542" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1544" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="1547" href="Categories.Category.Construction.Kleisli.html#1146" class="Bound">g</a><a id="1548" class="Symbol">)</a> <a id="1550" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1552" href="Categories.Category.Construction.Kleisli.html#1142" class="Bound">f</a><a id="1553" class="Symbol">)</a> <a id="1565" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="1570" href="Categories.Category.Construction.Kleisli.html#1570" class="Function">identityˡ</a> <a id="1581" class="Symbol">:</a> <a id="1583" class="Symbol"></a> <a id="1585" class="Symbol">{</a><a id="1586" href="Categories.Category.Construction.Kleisli.html#1586" class="Bound">A</a> <a id="1588" href="Categories.Category.Construction.Kleisli.html#1588" class="Bound">B</a><a id="1589" class="Symbol">}</a> <a id="1591" class="Symbol">{</a><a id="1592" href="Categories.Category.Construction.Kleisli.html#1592" class="Bound">f</a> <a id="1594" class="Symbol">:</a> <a id="1596" href="Categories.Category.Construction.Kleisli.html#1586" class="Bound">A</a> <a id="1598" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="1600" href="Categories.Functor.Core.html#432" class="Function">F₀</a> <a id="1603" href="Categories.Category.Construction.Kleisli.html#1588" class="Bound">B</a><a id="1604" class="Symbol">}</a> <a id="1606" class="Symbol"></a> <a id="1608" class="Symbol">(</a><a id="1609" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="1613" href="Categories.Category.Construction.Kleisli.html#1588" class="Bound">B</a> <a id="1615" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1617" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="1620" class="Symbol">(</a><a id="1621" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="1625" href="Categories.Category.Construction.Kleisli.html#1588" class="Bound">B</a><a id="1626" class="Symbol">))</a> <a id="1629" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1631" href="Categories.Category.Construction.Kleisli.html#1592" class="Bound">f</a> <a id="1633" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="1635" href="Categories.Category.Construction.Kleisli.html#1592" class="Bound">f</a>
<a id="1639" href="Categories.Category.Construction.Kleisli.html#1570" class="Function">identityˡ</a> <a id="1650" class="Symbol">{</a><a id="1651" href="Categories.Category.Construction.Kleisli.html#1651" class="Bound">A</a><a id="1652" class="Symbol">}</a> <a id="1654" class="Symbol">{</a><a id="1655" href="Categories.Category.Construction.Kleisli.html#1655" class="Bound">B</a><a id="1656" class="Symbol">}</a> <a id="1658" class="Symbol">{</a><a id="1659" href="Categories.Category.Construction.Kleisli.html#1659" class="Bound">f</a><a id="1660" class="Symbol">}</a> <a id="1662" class="Symbol">=</a> <a id="1664" href="Categories.Morphism.Reasoning.Core.html#2948" class="Function">elimˡ</a> <a id="1670" href="Categories.Monad.html#899" class="Field">M.identityˡ</a>
<a id="1685" href="Categories.Category.Construction.Kleisli.html#1685" class="Function">identityʳ</a> <a id="1696" class="Symbol">:</a> <a id="1698" class="Symbol"></a> <a id="1700" class="Symbol">{</a><a id="1701" href="Categories.Category.Construction.Kleisli.html#1701" class="Bound">A</a> <a id="1703" href="Categories.Category.Construction.Kleisli.html#1703" class="Bound">B</a><a id="1704" class="Symbol">}</a> <a id="1706" class="Symbol">{</a><a id="1707" href="Categories.Category.Construction.Kleisli.html#1707" class="Bound">f</a> <a id="1709" class="Symbol">:</a> <a id="1711" href="Categories.Category.Construction.Kleisli.html#1701" class="Bound">A</a> <a id="1713" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="1715" href="Categories.Functor.Core.html#432" class="Function">F₀</a> <a id="1718" href="Categories.Category.Construction.Kleisli.html#1703" class="Bound">B</a><a id="1719" class="Symbol">}</a> <a id="1721" class="Symbol"></a> <a id="1723" class="Symbol">(</a><a id="1724" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="1728" href="Categories.Category.Construction.Kleisli.html#1703" class="Bound">B</a> <a id="1730" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1732" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="1735" href="Categories.Category.Construction.Kleisli.html#1707" class="Bound">f</a><a id="1736" class="Symbol">)</a> <a id="1738" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1740" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="1744" href="Categories.Category.Construction.Kleisli.html#1701" class="Bound">A</a> <a id="1746" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="1748" href="Categories.Category.Construction.Kleisli.html#1707" class="Bound">f</a>
<a id="1752" href="Categories.Category.Construction.Kleisli.html#1685" class="Function">identityʳ</a> <a id="1763" class="Symbol">{</a><a id="1764" href="Categories.Category.Construction.Kleisli.html#1764" class="Bound">A</a><a id="1765" class="Symbol">}</a> <a id="1767" class="Symbol">{</a><a id="1768" href="Categories.Category.Construction.Kleisli.html#1768" class="Bound">B</a><a id="1769" class="Symbol">}</a> <a id="1771" class="Symbol">{</a><a id="1772" href="Categories.Category.Construction.Kleisli.html#1772" class="Bound">f</a><a id="1773" class="Symbol">}</a> <a id="1775" class="Symbol">=</a> <a id="1777" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="1791" class="Symbol">(</a><a id="1792" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="1796" href="Categories.Category.Construction.Kleisli.html#1768" class="Bound">B</a> <a id="1798" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1800" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="1803" href="Categories.Category.Construction.Kleisli.html#1772" class="Bound">f</a><a id="1804" class="Symbol">)</a> <a id="1806" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1808" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="1812" href="Categories.Category.Construction.Kleisli.html#1764" class="Bound">A</a> <a id="1817" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="1821" href="Categories.Morphism.Reasoning.Core.html#3392" class="Function">extendˡ</a> <a id="1829" class="Symbol">(</a><a id="1830" href="Categories.NaturalTransformation.Core.html#827" class="Function">η.commute</a> <a id="1840" href="Categories.Category.Construction.Kleisli.html#1772" class="Bound">f</a><a id="1841" class="Symbol">)</a> <a id="1843" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="1853" class="Symbol">(</a><a id="1854" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="1858" href="Categories.Category.Construction.Kleisli.html#1768" class="Bound">B</a> <a id="1860" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1862" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="1866" class="Symbol">(</a><a id="1867" href="Categories.Functor.Core.html#432" class="Function">F₀</a> <a id="1870" href="Categories.Category.Construction.Kleisli.html#1768" class="Bound">B</a><a id="1871" class="Symbol">))</a> <a id="1874" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1876" href="Categories.Category.Construction.Kleisli.html#1772" class="Bound">f</a> <a id="1879" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="1882" href="Categories.Morphism.Reasoning.Core.html#2948" class="Function">elimˡ</a> <a id="1888" href="Categories.Monad.html#953" class="Field">M.identityʳ</a> <a id="1900" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="1910" href="Categories.Category.Construction.Kleisli.html#1772" class="Bound">f</a> <a id="1936" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="1941" href="Categories.Category.Construction.Kleisli.html#1941" class="Function">identity²</a> <a id="1952" class="Symbol">:</a> <a id="1954" class="Symbol">{</a><a id="1955" href="Categories.Category.Construction.Kleisli.html#1955" class="Bound">A</a> <a id="1957" class="Symbol">:</a> <a id="1959" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="1962" class="Symbol">}</a> <a id="1964" class="Symbol"></a> <a id="1966" class="Symbol">(</a><a id="1967" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="1971" href="Categories.Category.Construction.Kleisli.html#1955" class="Bound">A</a> <a id="1973" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1975" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="1978" class="Symbol">(</a><a id="1979" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="1983" href="Categories.Category.Construction.Kleisli.html#1955" class="Bound">A</a><a id="1984" class="Symbol">))</a> <a id="1987" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1989" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="1993" href="Categories.Category.Construction.Kleisli.html#1955" class="Bound">A</a> <a id="1995" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="1997" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="2001" href="Categories.Category.Construction.Kleisli.html#1955" class="Bound">A</a>
<a id="2005" href="Categories.Category.Construction.Kleisli.html#1941" class="Function">identity²</a> <a id="2016" class="Symbol">=</a> <a id="2018" href="Categories.Morphism.Reasoning.Core.html#2948" class="Function">elimˡ</a> <a id="2024" href="Categories.Monad.html#899" class="Field">M.identityˡ</a>
</pre></body></html>