bsc-leon-vatthauer/public/Categories.Monad.Duality.html

55 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.Duality</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="70" class="Keyword">module</a> <a id="77" href="Categories.Monad.Duality.html" class="Module">Categories.Monad.Duality</a> <a id="102" class="Symbol">{</a><a id="103" href="Categories.Monad.Duality.html#103" class="Bound">o</a> <a id="105" href="Categories.Monad.Duality.html#105" class="Bound"></a> <a id="107" href="Categories.Monad.Duality.html#107" class="Bound">e</a><a id="108" class="Symbol">}</a> <a id="110" class="Symbol">(</a><a id="111" href="Categories.Monad.Duality.html#111" class="Bound">C</a> <a id="113" class="Symbol">:</a> <a id="115" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="124" href="Categories.Monad.Duality.html#103" class="Bound">o</a> <a id="126" href="Categories.Monad.Duality.html#105" class="Bound"></a> <a id="128" href="Categories.Monad.Duality.html#107" class="Bound">e</a><a id="129" class="Symbol">)</a> <a id="131" class="Keyword">where</a>
<a id="138" class="Keyword">open</a> <a id="143" class="Keyword">import</a> <a id="150" href="Relation.Binary.PropositionalEquality.Core.html" class="Module">Relation.Binary.PropositionalEquality.Core</a> <a id="193" class="Keyword">using</a> <a id="199" class="Symbol">(</a><a id="200" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a><a id="203" class="Symbol">;</a> <a id="205" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a><a id="209" class="Symbol">)</a>
<a id="212" class="Keyword">open</a> <a id="217" class="Keyword">import</a> <a id="224" href="Categories.Functor.Core.html" class="Module">Categories.Functor.Core</a> <a id="248" class="Keyword">using</a> <a id="254" class="Symbol">(</a><a id="255" href="Categories.Functor.Core.html#248" class="Record">Functor</a><a id="262" class="Symbol">)</a>
<a id="264" class="Keyword">open</a> <a id="269" class="Keyword">import</a> <a id="276" href="Categories.NaturalTransformation.Core.html" class="Module">Categories.NaturalTransformation.Core</a> <a id="314" class="Keyword">using</a> <a id="320" class="Symbol">(</a><a id="321" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a><a id="342" class="Symbol">)</a>
<a id="344" class="Keyword">open</a> <a id="349" class="Keyword">import</a> <a id="356" href="Categories.Monad.html" class="Module">Categories.Monad</a>
<a id="373" class="Keyword">open</a> <a id="378" class="Keyword">import</a> <a id="385" href="Categories.Comonad.html" class="Module">Categories.Comonad</a>
<a id="405" class="Keyword">private</a>
<a id="415" class="Keyword">module</a> <a id="C"></a><a id="422" href="Categories.Monad.Duality.html#422" class="Module">C</a> <a id="424" class="Symbol">=</a> <a id="426" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="435" href="Categories.Monad.Duality.html#111" class="Bound">C</a>
<a id="439" class="Keyword">open</a> <a id="444" href="Categories.Monad.Duality.html#422" class="Module">C</a>
<a id="448" class="Keyword">open</a> <a id="453" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
<a id="coMonad⇒Comonad"></a><a id="467" href="Categories.Monad.Duality.html#467" class="Function">coMonad⇒Comonad</a> <a id="483" class="Symbol">:</a> <a id="485" href="Categories.Monad.html#454" class="Record">Monad</a> <a id="491" href="Categories.Category.Core.html#3132" class="Function">C.op</a> <a id="496" class="Symbol"></a> <a id="498" href="Categories.Comonad.html#456" class="Record">Comonad</a> <a id="506" href="Categories.Monad.Duality.html#111" class="Bound">C</a>
<a id="508" href="Categories.Monad.Duality.html#467" class="Function">coMonad⇒Comonad</a> <a id="524" href="Categories.Monad.Duality.html#524" class="Bound">M</a> <a id="526" class="Symbol">=</a> <a id="528" class="Keyword">record</a>
<a id="539" class="Symbol">{</a> <a id="541" href="Categories.Comonad.html#529" class="Field">F</a> <a id="551" class="Symbol">=</a> <a id="553" href="Categories.Functor.Core.html#816" class="Function">Functor.op</a> <a id="564" href="Categories.Monad.html#525" class="Field">F</a>
<a id="570" class="Symbol">;</a> <a id="572" href="Categories.Comonad.html#551" class="Field">ε</a> <a id="582" class="Symbol">=</a> <a id="584" href="Categories.NaturalTransformation.Core.html#1114" class="Function">NaturalTransformation.op</a> <a id="609" href="Categories.Monad.html#547" class="Field">η</a>
<a id="615" class="Symbol">;</a> <a id="617" href="Categories.Comonad.html#587" class="Field">δ</a> <a id="627" class="Symbol">=</a> <a id="629" href="Categories.NaturalTransformation.Core.html#1114" class="Function">NaturalTransformation.op</a> <a id="654" href="Categories.Monad.html#583" class="Field">μ</a>
<a id="660" class="Symbol">;</a> <a id="662" href="Categories.Comonad.html#771" class="Field">assoc</a> <a id="672" class="Symbol">=</a> <a id="674" href="Categories.Monad.html#829" class="Field">M.sym-assoc</a>
<a id="690" class="Symbol">;</a> <a id="692" href="Categories.Comonad.html#841" class="Field">sym-assoc</a> <a id="702" class="Symbol">=</a> <a id="704" href="Categories.Monad.html#759" class="Field">M.assoc</a>
<a id="716" class="Symbol">;</a> <a id="718" href="Categories.Comonad.html#911" class="Field">identityˡ</a> <a id="728" class="Symbol">=</a> <a id="730" href="Categories.Monad.html#899" class="Field">M.identityˡ</a>
<a id="746" class="Symbol">;</a> <a id="748" href="Categories.Comonad.html#965" class="Field">identityʳ</a> <a id="758" class="Symbol">=</a> <a id="760" href="Categories.Monad.html#953" class="Field">M.identityʳ</a>
<a id="776" class="Symbol">}</a>
<a id="780" class="Keyword">where</a> <a id="786" class="Keyword">module</a> <a id="793" href="Categories.Monad.Duality.html#793" class="Module">M</a> <a id="795" class="Symbol">=</a> <a id="797" href="Categories.Monad.html#454" class="Module">Monad</a> <a id="803" href="Categories.Monad.Duality.html#524" class="Bound">M</a>
<a id="813" class="Keyword">open</a> <a id="818" href="Categories.Monad.Duality.html#793" class="Module">M</a> <a id="820" class="Keyword">using</a> <a id="826" class="Symbol">(</a><a id="827" href="Categories.Monad.html#525" class="Field">F</a><a id="828" class="Symbol">;</a> <a id="830" href="Categories.Monad.html#547" class="Field">η</a><a id="831" class="Symbol">;</a> <a id="833" href="Categories.Monad.html#583" class="Field">μ</a><a id="834" class="Symbol">)</a>
<a id="Comonad⇒coMonad"></a><a id="837" href="Categories.Monad.Duality.html#837" class="Function">Comonad⇒coMonad</a> <a id="853" class="Symbol">:</a> <a id="855" href="Categories.Comonad.html#456" class="Record">Comonad</a> <a id="863" href="Categories.Monad.Duality.html#111" class="Bound">C</a> <a id="865" class="Symbol"></a> <a id="867" href="Categories.Monad.html#454" class="Record">Monad</a> <a id="873" href="Categories.Category.Core.html#3132" class="Function">C.op</a>
<a id="878" href="Categories.Monad.Duality.html#837" class="Function">Comonad⇒coMonad</a> <a id="894" href="Categories.Monad.Duality.html#894" class="Bound">M</a> <a id="896" class="Symbol">=</a> <a id="898" class="Keyword">record</a>
<a id="909" class="Symbol">{</a> <a id="911" href="Categories.Monad.html#525" class="Field">F</a> <a id="921" class="Symbol">=</a> <a id="923" href="Categories.Functor.Core.html#816" class="Function">Functor.op</a> <a id="934" href="Categories.Comonad.html#529" class="Field">F</a>
<a id="940" class="Symbol">;</a> <a id="942" href="Categories.Monad.html#547" class="Field">η</a> <a id="952" class="Symbol">=</a> <a id="954" href="Categories.NaturalTransformation.Core.html#1114" class="Function">NaturalTransformation.op</a> <a id="979" href="Categories.Comonad.html#551" class="Field">ε</a>
<a id="985" class="Symbol">;</a> <a id="987" href="Categories.Monad.html#583" class="Field">μ</a> <a id="997" class="Symbol">=</a> <a id="999" href="Categories.NaturalTransformation.Core.html#1114" class="Function">NaturalTransformation.op</a> <a id="1024" href="Categories.Comonad.html#587" class="Field">δ</a>
<a id="1030" class="Symbol">;</a> <a id="1032" href="Categories.Monad.html#759" class="Field">assoc</a> <a id="1042" class="Symbol">=</a> <a id="1044" href="Categories.Comonad.html#841" class="Field">M.sym-assoc</a>
<a id="1060" class="Symbol">;</a> <a id="1062" href="Categories.Monad.html#829" class="Field">sym-assoc</a> <a id="1072" class="Symbol">=</a> <a id="1074" href="Categories.Comonad.html#771" class="Field">M.assoc</a>
<a id="1086" class="Symbol">;</a> <a id="1088" href="Categories.Monad.html#899" class="Field">identityˡ</a> <a id="1098" class="Symbol">=</a> <a id="1100" href="Categories.Comonad.html#911" class="Field">M.identityˡ</a>
<a id="1116" class="Symbol">;</a> <a id="1118" href="Categories.Monad.html#953" class="Field">identityʳ</a> <a id="1128" class="Symbol">=</a> <a id="1130" href="Categories.Comonad.html#965" class="Field">M.identityʳ</a>
<a id="1146" class="Symbol">}</a>
<a id="1150" class="Keyword">where</a> <a id="1156" class="Keyword">module</a> <a id="1163" href="Categories.Monad.Duality.html#1163" class="Module">M</a> <a id="1165" class="Symbol">=</a> <a id="1167" href="Categories.Comonad.html#456" class="Module">Comonad</a> <a id="1175" href="Categories.Monad.Duality.html#894" class="Bound">M</a>
<a id="1185" class="Keyword">open</a> <a id="1190" href="Categories.Monad.Duality.html#1163" class="Module">M</a> <a id="1192" class="Keyword">using</a> <a id="1198" class="Symbol">(</a><a id="1199" href="Categories.Comonad.html#529" class="Field">F</a><a id="1200" class="Symbol">;</a> <a id="1202" href="Categories.Comonad.html#551" class="Field">ε</a><a id="1203" class="Symbol">;</a> <a id="1205" href="Categories.Comonad.html#587" class="Field">δ</a><a id="1206" class="Symbol">)</a>
<a id="1210" class="Keyword">module</a> <a id="MonadDualityConversionProperties"></a><a id="1217" href="Categories.Monad.Duality.html#1217" class="Module">MonadDualityConversionProperties</a> <a id="1250" class="Keyword">where</a>
<a id="1258" class="Keyword">private</a>
<a id="MonadDualityConversionProperties.coMonad⇔Comonad"></a><a id="1270" href="Categories.Monad.Duality.html#1270" class="Function">coMonad⇔Comonad</a> <a id="1286" class="Symbol">:</a> <a id="1288" class="Symbol"></a> <a id="1290" class="Symbol">(</a><a id="1291" href="Categories.Monad.Duality.html#1291" class="Bound">coMonad</a> <a id="1299" class="Symbol">:</a> <a id="1301" href="Categories.Monad.html#454" class="Record">Monad</a> <a id="1307" href="Categories.Category.Core.html#3132" class="Function">C.op</a><a id="1311" class="Symbol">)</a> <a id="1313" class="Symbol"></a>
<a id="1335" href="Categories.Monad.Duality.html#837" class="Function">Comonad⇒coMonad</a> <a id="1351" class="Symbol">(</a><a id="1352" href="Categories.Monad.Duality.html#467" class="Function">coMonad⇒Comonad</a> <a id="1368" href="Categories.Monad.Duality.html#1291" class="Bound">coMonad</a><a id="1375" class="Symbol">)</a> <a id="1377" href="Agda.Builtin.Equality.html#133" class="Datatype Operator"></a> <a id="1379" href="Categories.Monad.Duality.html#1291" class="Bound">coMonad</a>
<a id="1391" href="Categories.Monad.Duality.html#1270" class="Function">coMonad⇔Comonad</a> <a id="1407" class="Symbol">_</a> <a id="1409" class="Symbol">=</a> <a id="1411" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
<a id="MonadDualityConversionProperties.Comonad⇔coMonad"></a><a id="1421" href="Categories.Monad.Duality.html#1421" class="Function">Comonad⇔coMonad</a> <a id="1437" class="Symbol">:</a> <a id="1439" class="Symbol"></a> <a id="1441" class="Symbol">(</a><a id="1442" href="Categories.Monad.Duality.html#1442" class="Bound">M</a> <a id="1444" class="Symbol">:</a> <a id="1446" href="Categories.Comonad.html#456" class="Record">Comonad</a> <a id="1454" href="Categories.Monad.Duality.html#111" class="Bound">C</a><a id="1455" class="Symbol">)</a> <a id="1457" class="Symbol"></a> <a id="1459" href="Categories.Monad.Duality.html#467" class="Function">coMonad⇒Comonad</a> <a id="1475" class="Symbol">(</a><a id="1476" href="Categories.Monad.Duality.html#837" class="Function">Comonad⇒coMonad</a> <a id="1492" href="Categories.Monad.Duality.html#1442" class="Bound">M</a><a id="1493" class="Symbol">)</a> <a id="1495" href="Agda.Builtin.Equality.html#133" class="Datatype Operator"></a> <a id="1497" href="Categories.Monad.Duality.html#1442" class="Bound">M</a>
<a id="1503" href="Categories.Monad.Duality.html#1421" class="Function">Comonad⇔coMonad</a> <a id="1519" class="Symbol">_</a> <a id="1521" class="Symbol">=</a> <a id="1523" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
</pre></body></html>