mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
66 lines
No EOL
38 KiB
HTML
66 lines
No EOL
38 KiB
HTML
<!DOCTYPE HTML>
|
||
<html><head><meta charset="utf-8"><title>Categories.Monad.Relative</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.Monad.Relative.html" class="Module">Categories.Monad.Relative</a> <a id="69" class="Keyword">where</a>
|
||
|
||
<a id="76" class="Keyword">open</a> <a id="81" class="Keyword">import</a> <a id="88" href="Level.html" class="Module">Level</a>
|
||
|
||
<a id="95" class="Keyword">open</a> <a id="100" class="Keyword">import</a> <a id="107" href="Categories.Category.html" class="Module">Categories.Category</a> <a id="127" class="Keyword">using</a> <a id="133" class="Symbol">(</a><a id="134" href="Categories.Category.Core.html#442" class="Record">Category</a><a id="142" class="Symbol">)</a>
|
||
<a id="144" class="Keyword">open</a> <a id="149" class="Keyword">import</a> <a id="156" href="Categories.Functor.html" class="Module">Categories.Functor</a> <a id="175" class="Keyword">using</a> <a id="181" class="Symbol">(</a><a id="182" href="Categories.Functor.Core.html#248" class="Record">Functor</a><a id="189" class="Symbol">;</a> <a id="191" href="Categories.Functor.html#283" class="Function">Endofunctor</a><a id="202" class="Symbol">;</a> <a id="204" href="Categories.Functor.html#747" class="Function Operator">_∘F_</a><a id="208" class="Symbol">)</a> <a id="210" class="Keyword">renaming</a> <a id="219" class="Symbol">(</a><a id="220" href="Categories.Functor.html#349" class="Function">id</a> <a id="223" class="Symbol">to</a> <a id="226" class="Function">idF</a><a id="229" class="Symbol">)</a>
|
||
<a id="231" class="Keyword">import</a> <a id="238" href="Categories.Morphism.Reasoning.html" class="Module">Categories.Morphism.Reasoning</a> <a id="268" class="Symbol">as</a> <a id="271" class="Module">MR</a>
|
||
<a id="274" class="Keyword">open</a> <a id="279" class="Keyword">import</a> <a id="286" href="Categories.NaturalTransformation.html" class="Module">Categories.NaturalTransformation</a> <a id="319" class="Keyword">renaming</a> <a id="328" class="Symbol">(</a><a id="329" href="Categories.NaturalTransformation.Core.html#2132" class="Function">id</a> <a id="332" class="Symbol">to</a> <a id="335" class="Function">idN</a><a id="338" class="Symbol">)</a>
|
||
<a id="340" class="Keyword">open</a> <a id="345" class="Keyword">import</a> <a id="352" href="Categories.NaturalTransformation.NaturalIsomorphism.html" class="Module">Categories.NaturalTransformation.NaturalIsomorphism</a> <a id="404" class="Keyword">hiding</a> <a id="411" class="Symbol">(</a><a id="412" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3600" class="Function Operator">_≃_</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.NaturalTransformation.Equivalence.html" class="Module">Categories.NaturalTransformation.Equivalence</a>
|
||
<a id="474" class="Keyword">open</a> <a id="479" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Module">NaturalIsomorphism</a>
|
||
|
||
<a id="499" class="Keyword">private</a>
|
||
<a id="509" class="Keyword">variable</a>
|
||
<a id="522" href="Categories.Monad.Relative.html#522" class="Generalizable">o</a> <a id="524" href="Categories.Monad.Relative.html#524" class="Generalizable">ℓ</a> <a id="526" href="Categories.Monad.Relative.html#526" class="Generalizable">e</a> <a id="528" href="Categories.Monad.Relative.html#528" class="Generalizable">o′</a> <a id="531" href="Categories.Monad.Relative.html#531" class="Generalizable">ℓ′</a> <a id="534" href="Categories.Monad.Relative.html#534" class="Generalizable">e′</a> <a id="537" class="Symbol">:</a> <a id="539" href="Agda.Primitive.html#591" class="Postulate">Level</a>
|
||
<a id="549" href="Categories.Monad.Relative.html#549" class="Generalizable">C</a> <a id="551" class="Symbol">:</a> <a id="553" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="562" href="Categories.Monad.Relative.html#522" class="Generalizable">o</a> <a id="564" href="Categories.Monad.Relative.html#524" class="Generalizable">ℓ</a> <a id="566" href="Categories.Monad.Relative.html#526" class="Generalizable">e</a>
|
||
<a id="572" href="Categories.Monad.Relative.html#572" class="Generalizable">D</a> <a id="574" class="Symbol">:</a> <a id="576" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="585" href="Categories.Monad.Relative.html#528" class="Generalizable">o′</a> <a id="588" href="Categories.Monad.Relative.html#531" class="Generalizable">ℓ′</a> <a id="591" href="Categories.Monad.Relative.html#534" class="Generalizable">e′</a>
|
||
|
||
<a id="595" class="Keyword">record</a> <a id="Monad"></a><a id="602" href="Categories.Monad.Relative.html#602" class="Record">Monad</a> <a id="608" class="Symbol">{</a><a id="609" href="Categories.Monad.Relative.html#609" class="Bound">C</a> <a id="611" class="Symbol">:</a> <a id="613" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="622" href="Categories.Monad.Relative.html#522" class="Generalizable">o</a> <a id="624" href="Categories.Monad.Relative.html#524" class="Generalizable">ℓ</a> <a id="626" href="Categories.Monad.Relative.html#526" class="Generalizable">e</a><a id="627" class="Symbol">}</a> <a id="629" class="Symbol">{</a><a id="630" href="Categories.Monad.Relative.html#630" class="Bound">D</a> <a id="632" class="Symbol">:</a> <a id="634" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="643" href="Categories.Monad.Relative.html#528" class="Generalizable">o′</a> <a id="646" href="Categories.Monad.Relative.html#531" class="Generalizable">ℓ′</a> <a id="649" href="Categories.Monad.Relative.html#534" class="Generalizable">e′</a><a id="651" class="Symbol">}</a> <a id="653" class="Symbol">(</a><a id="654" href="Categories.Monad.Relative.html#654" class="Bound">J</a> <a id="656" class="Symbol">:</a> <a id="658" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="666" href="Categories.Monad.Relative.html#609" class="Bound">C</a> <a id="668" href="Categories.Monad.Relative.html#630" class="Bound">D</a><a id="669" class="Symbol">)</a> <a id="671" class="Symbol">:</a> <a id="673" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="677" class="Symbol">(</a><a id="678" href="Categories.Monad.Relative.html#622" class="Bound">o</a> <a id="680" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="682" href="Categories.Monad.Relative.html#643" class="Bound">o′</a> <a id="685" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="687" href="Categories.Monad.Relative.html#646" class="Bound">ℓ′</a> <a id="690" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="692" href="Categories.Monad.Relative.html#649" class="Bound">e′</a><a id="694" class="Symbol">)</a> <a id="696" class="Keyword">where</a>
|
||
<a id="704" class="Keyword">private</a>
|
||
<a id="716" class="Keyword">module</a> <a id="Monad.C"></a><a id="723" href="Categories.Monad.Relative.html#723" class="Module">C</a> <a id="725" class="Symbol">=</a> <a id="727" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="736" href="Categories.Monad.Relative.html#609" class="Bound">C</a>
|
||
<a id="742" class="Keyword">module</a> <a id="Monad.D"></a><a id="749" href="Categories.Monad.Relative.html#749" class="Module">D</a> <a id="751" class="Symbol">=</a> <a id="753" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="762" href="Categories.Monad.Relative.html#630" class="Bound">D</a>
|
||
<a id="768" class="Keyword">module</a> <a id="Monad.J"></a><a id="775" href="Categories.Monad.Relative.html#775" class="Module">J</a> <a id="777" class="Symbol">=</a> <a id="779" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="787" href="Categories.Monad.Relative.html#654" class="Bound">J</a>
|
||
<a id="793" class="Keyword">open</a> <a id="798" href="Categories.Monad.Relative.html#749" class="Module">D</a> <a id="800" class="Keyword">using</a> <a id="806" class="Symbol">(</a><a id="807" href="Categories.Category.Core.html#575" class="Function Operator">_⇒_</a><a id="810" class="Symbol">;</a> <a id="812" href="Categories.Category.Core.html#656" class="Function Operator">_∘_</a><a id="815" class="Symbol">;</a> <a id="817" href="Categories.Category.Core.html#595" class="Function Operator">_≈_</a><a id="820" class="Symbol">)</a>
|
||
<a id="824" class="Keyword">field</a>
|
||
<a id="Monad.F₀"></a><a id="834" href="Categories.Monad.Relative.html#834" class="Field">F₀</a> <a id="837" class="Symbol">:</a> <a id="839" href="Categories.Category.Core.html#559" class="Function">C.Obj</a> <a id="845" class="Symbol">→</a> <a id="847" href="Categories.Category.Core.html#559" class="Function">D.Obj</a>
|
||
<a id="Monad.unit"></a><a id="857" href="Categories.Monad.Relative.html#857" class="Field">unit</a> <a id="862" class="Symbol">:</a> <a id="864" class="Symbol">{</a><a id="865" href="Categories.Monad.Relative.html#865" class="Bound">c</a> <a id="867" class="Symbol">:</a> <a id="869" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="874" class="Symbol">}</a> <a id="876" class="Symbol">→</a> <a id="878" href="Categories.Functor.Core.html#797" class="Function">J.₀</a> <a id="882" href="Categories.Monad.Relative.html#865" class="Bound">c</a> <a id="884" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="886" href="Categories.Monad.Relative.html#834" class="Field">F₀</a> <a id="889" href="Categories.Monad.Relative.html#865" class="Bound">c</a>
|
||
<a id="Monad.extend"></a><a id="895" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="902" class="Symbol">:</a> <a id="904" class="Symbol">{</a><a id="905" href="Categories.Monad.Relative.html#905" class="Bound">x</a> <a id="907" href="Categories.Monad.Relative.html#907" class="Bound">y</a> <a id="909" class="Symbol">:</a> <a id="911" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="916" class="Symbol">}</a> <a id="918" class="Symbol">→</a> <a id="920" class="Symbol">(</a><a id="921" href="Categories.Functor.Core.html#797" class="Function">J.₀</a> <a id="925" href="Categories.Monad.Relative.html#905" class="Bound">x</a> <a id="927" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="929" href="Categories.Monad.Relative.html#834" class="Field">F₀</a> <a id="932" href="Categories.Monad.Relative.html#907" class="Bound">y</a><a id="933" class="Symbol">)</a> <a id="935" class="Symbol">→</a> <a id="937" href="Categories.Monad.Relative.html#834" class="Field">F₀</a> <a id="940" href="Categories.Monad.Relative.html#905" class="Bound">x</a> <a id="942" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="944" href="Categories.Monad.Relative.html#834" class="Field">F₀</a> <a id="947" href="Categories.Monad.Relative.html#907" class="Bound">y</a>
|
||
<a id="Monad.identityʳ"></a><a id="953" href="Categories.Monad.Relative.html#953" class="Field">identityʳ</a> <a id="963" class="Symbol">:</a> <a id="965" class="Symbol">{</a><a id="966" href="Categories.Monad.Relative.html#966" class="Bound">x</a> <a id="968" href="Categories.Monad.Relative.html#968" class="Bound">y</a> <a id="970" class="Symbol">:</a> <a id="972" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="977" class="Symbol">}</a> <a id="979" class="Symbol">{</a> <a id="981" href="Categories.Monad.Relative.html#981" class="Bound">k</a> <a id="983" class="Symbol">:</a> <a id="985" href="Categories.Functor.Core.html#797" class="Function">J.₀</a> <a id="989" href="Categories.Monad.Relative.html#966" class="Bound">x</a> <a id="991" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="993" href="Categories.Monad.Relative.html#834" class="Field">F₀</a> <a id="996" href="Categories.Monad.Relative.html#968" class="Bound">y</a><a id="997" class="Symbol">}</a> <a id="999" class="Symbol">→</a> <a id="1001" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="1008" href="Categories.Monad.Relative.html#981" class="Bound">k</a> <a id="1010" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="1012" href="Categories.Monad.Relative.html#857" class="Field">unit</a> <a id="1017" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="1019" href="Categories.Monad.Relative.html#981" class="Bound">k</a>
|
||
<a id="Monad.identityˡ"></a><a id="1025" href="Categories.Monad.Relative.html#1025" class="Field">identityˡ</a> <a id="1035" class="Symbol">:</a> <a id="1037" class="Symbol">{</a><a id="1038" href="Categories.Monad.Relative.html#1038" class="Bound">x</a> <a id="1040" class="Symbol">:</a> <a id="1042" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="1047" class="Symbol">}</a> <a id="1049" class="Symbol">→</a> <a id="1051" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="1058" class="Symbol">{</a><a id="1059" href="Categories.Monad.Relative.html#1038" class="Bound">x</a><a id="1060" class="Symbol">}</a> <a id="1062" href="Categories.Monad.Relative.html#857" class="Field">unit</a> <a id="1067" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="1069" href="Categories.Category.Core.html#630" class="Function">D.id</a>
|
||
<a id="Monad.assoc"></a><a id="1078" href="Categories.Monad.Relative.html#1078" class="Field">assoc</a> <a id="1084" class="Symbol">:</a> <a id="1086" class="Symbol">{</a><a id="1087" href="Categories.Monad.Relative.html#1087" class="Bound">x</a> <a id="1089" href="Categories.Monad.Relative.html#1089" class="Bound">y</a> <a id="1091" href="Categories.Monad.Relative.html#1091" class="Bound">z</a> <a id="1093" class="Symbol">:</a> <a id="1095" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="1100" class="Symbol">}</a> <a id="1102" class="Symbol">{</a><a id="1103" href="Categories.Monad.Relative.html#1103" class="Bound">k</a> <a id="1105" class="Symbol">:</a> <a id="1107" href="Categories.Functor.Core.html#797" class="Function">J.₀</a> <a id="1111" href="Categories.Monad.Relative.html#1087" class="Bound">x</a> <a id="1113" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="1115" href="Categories.Monad.Relative.html#834" class="Field">F₀</a> <a id="1118" href="Categories.Monad.Relative.html#1089" class="Bound">y</a><a id="1119" class="Symbol">}</a> <a id="1121" class="Symbol">{</a><a id="1122" href="Categories.Monad.Relative.html#1122" class="Bound">l</a> <a id="1124" class="Symbol">:</a> <a id="1126" href="Categories.Functor.Core.html#797" class="Function">J.₀</a> <a id="1130" href="Categories.Monad.Relative.html#1089" class="Bound">y</a> <a id="1132" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="1134" href="Categories.Monad.Relative.html#834" class="Field">F₀</a> <a id="1137" href="Categories.Monad.Relative.html#1091" class="Bound">z</a><a id="1138" class="Symbol">}</a> <a id="1140" class="Symbol">→</a> <a id="1142" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="1149" class="Symbol">(</a><a id="1150" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="1157" href="Categories.Monad.Relative.html#1122" class="Bound">l</a> <a id="1159" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="1161" href="Categories.Monad.Relative.html#1103" class="Bound">k</a><a id="1162" class="Symbol">)</a> <a id="1164" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="1166" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="1173" href="Categories.Monad.Relative.html#1122" class="Bound">l</a> <a id="1175" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="1177" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="1184" href="Categories.Monad.Relative.html#1103" class="Bound">k</a>
|
||
<a id="Monad.sym-assoc"></a><a id="1190" href="Categories.Monad.Relative.html#1190" class="Field">sym-assoc</a> <a id="1200" class="Symbol">:</a> <a id="1202" class="Symbol">{</a><a id="1203" href="Categories.Monad.Relative.html#1203" class="Bound">x</a> <a id="1205" href="Categories.Monad.Relative.html#1205" class="Bound">y</a> <a id="1207" href="Categories.Monad.Relative.html#1207" class="Bound">z</a> <a id="1209" class="Symbol">:</a> <a id="1211" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="1216" class="Symbol">}</a> <a id="1218" class="Symbol">{</a><a id="1219" href="Categories.Monad.Relative.html#1219" class="Bound">k</a> <a id="1221" class="Symbol">:</a> <a id="1223" href="Categories.Functor.Core.html#797" class="Function">J.₀</a> <a id="1227" href="Categories.Monad.Relative.html#1203" class="Bound">x</a> <a id="1229" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="1231" href="Categories.Monad.Relative.html#834" class="Field">F₀</a> <a id="1234" href="Categories.Monad.Relative.html#1205" class="Bound">y</a><a id="1235" class="Symbol">}</a> <a id="1237" class="Symbol">{</a><a id="1238" href="Categories.Monad.Relative.html#1238" class="Bound">l</a> <a id="1240" class="Symbol">:</a> <a id="1242" href="Categories.Functor.Core.html#797" class="Function">J.₀</a> <a id="1246" href="Categories.Monad.Relative.html#1205" class="Bound">y</a> <a id="1248" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="1250" href="Categories.Monad.Relative.html#834" class="Field">F₀</a> <a id="1253" href="Categories.Monad.Relative.html#1207" class="Bound">z</a><a id="1254" class="Symbol">}</a> <a id="1256" class="Symbol">→</a> <a id="1258" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="1265" href="Categories.Monad.Relative.html#1238" class="Bound">l</a> <a id="1267" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="1269" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="1276" href="Categories.Monad.Relative.html#1219" class="Bound">k</a> <a id="1278" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="1280" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="1287" class="Symbol">(</a><a id="1288" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="1295" href="Categories.Monad.Relative.html#1238" class="Bound">l</a> <a id="1297" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="1299" href="Categories.Monad.Relative.html#1219" class="Bound">k</a><a id="1300" class="Symbol">)</a>
|
||
<a id="Monad.extend-≈"></a><a id="1306" href="Categories.Monad.Relative.html#1306" class="Field">extend-≈</a> <a id="1315" class="Symbol">:</a> <a id="1317" class="Symbol">{</a><a id="1318" href="Categories.Monad.Relative.html#1318" class="Bound">x</a> <a id="1320" href="Categories.Monad.Relative.html#1320" class="Bound">y</a> <a id="1322" class="Symbol">:</a> <a id="1324" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="1329" class="Symbol">}</a> <a id="1331" class="Symbol">{</a><a id="1332" href="Categories.Monad.Relative.html#1332" class="Bound">k</a> <a id="1334" href="Categories.Monad.Relative.html#1334" class="Bound">h</a> <a id="1336" class="Symbol">:</a> <a id="1338" href="Categories.Functor.Core.html#797" class="Function">J.₀</a> <a id="1342" href="Categories.Monad.Relative.html#1318" class="Bound">x</a> <a id="1344" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="1346" href="Categories.Monad.Relative.html#834" class="Field">F₀</a> <a id="1349" href="Categories.Monad.Relative.html#1320" class="Bound">y</a><a id="1350" class="Symbol">}</a> <a id="1352" class="Symbol">→</a> <a id="1354" href="Categories.Monad.Relative.html#1332" class="Bound">k</a> <a id="1356" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="1358" href="Categories.Monad.Relative.html#1334" class="Bound">h</a> <a id="1360" class="Symbol">→</a> <a id="1362" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="1369" href="Categories.Monad.Relative.html#1332" class="Bound">k</a> <a id="1371" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="1373" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="1380" href="Categories.Monad.Relative.html#1334" class="Bound">h</a>
|
||
|
||
<a id="1383" class="Comment">-- From a Relative Monad, we can extract a functor</a>
|
||
<a id="RMonad⇒Functor"></a><a id="1434" href="Categories.Monad.Relative.html#1434" class="Function">RMonad⇒Functor</a> <a id="1449" class="Symbol">:</a> <a id="1451" class="Symbol">{</a><a id="1452" href="Categories.Monad.Relative.html#1452" class="Bound">J</a> <a id="1454" class="Symbol">:</a> <a id="1456" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1464" href="Categories.Monad.Relative.html#549" class="Generalizable">C</a> <a id="1466" href="Categories.Monad.Relative.html#572" class="Generalizable">D</a><a id="1467" class="Symbol">}</a> <a id="1469" class="Symbol">→</a> <a id="1471" href="Categories.Monad.Relative.html#602" class="Record">Monad</a> <a id="1477" href="Categories.Monad.Relative.html#1452" class="Bound">J</a> <a id="1479" class="Symbol">→</a> <a id="1481" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1489" href="Categories.Monad.Relative.html#549" class="Generalizable">C</a> <a id="1491" href="Categories.Monad.Relative.html#572" class="Generalizable">D</a>
|
||
<a id="1493" href="Categories.Monad.Relative.html#1434" class="Function">RMonad⇒Functor</a> <a id="1508" class="Symbol">{</a><a id="1509" class="Argument">C</a> <a id="1511" class="Symbol">=</a> <a id="1513" href="Categories.Monad.Relative.html#1513" class="Bound">C</a><a id="1514" class="Symbol">}</a> <a id="1516" class="Symbol">{</a><a id="1517" class="Argument">D</a> <a id="1519" class="Symbol">=</a> <a id="1521" href="Categories.Monad.Relative.html#1521" class="Bound">D</a><a id="1522" class="Symbol">}</a> <a id="1524" class="Symbol">{</a><a id="1525" class="Argument">J</a> <a id="1527" class="Symbol">=</a> <a id="1529" href="Categories.Monad.Relative.html#1529" class="Bound">J</a><a id="1530" class="Symbol">}</a> <a id="1532" href="Categories.Monad.Relative.html#1532" class="Bound">r</a> <a id="1534" class="Symbol">=</a> <a id="1536" class="Keyword">record</a>
|
||
<a id="1545" class="Symbol">{</a> <a id="1547" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="1550" class="Symbol">=</a> <a id="1552" href="Categories.Monad.Relative.html#834" class="Field">F₀</a>
|
||
<a id="1557" class="Symbol">;</a> <a id="1559" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="1562" class="Symbol">=</a> <a id="1564" class="Symbol">λ</a> <a id="1566" href="Categories.Monad.Relative.html#1566" class="Bound">f</a> <a id="1568" class="Symbol">→</a> <a id="1570" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="1577" class="Symbol">(</a><a id="1578" href="Categories.Monad.Relative.html#857" class="Field">unit</a> <a id="1583" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="1585" href="Categories.Functor.Core.html#806" class="Function">J.₁</a> <a id="1589" href="Categories.Monad.Relative.html#1566" class="Bound">f</a><a id="1590" class="Symbol">)</a>
|
||
<a id="1594" class="Symbol">;</a> <a id="1596" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="1605" class="Symbol">=</a> <a id="1607" href="Categories.Monad.Relative.html#1889" class="Function">identity′</a>
|
||
<a id="1619" class="Symbol">;</a> <a id="1621" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="1634" class="Symbol">=</a> <a id="1636" href="Categories.Monad.Relative.html#2111" class="Function">hom′</a>
|
||
<a id="1643" class="Symbol">;</a> <a id="1645" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="1654" class="Symbol">=</a> <a id="1656" class="Symbol">λ</a> <a id="1658" href="Categories.Monad.Relative.html#1658" class="Bound">f≈g</a> <a id="1662" class="Symbol">→</a> <a id="1664" href="Categories.Monad.Relative.html#1306" class="Field">extend-≈</a> <a id="1673" class="Symbol">(</a><a id="1674" href="Categories.Category.Core.html#1706" class="Function">∘-resp-≈ʳ</a> <a id="1684" class="Symbol">(</a><a id="1685" href="Categories.Functor.Core.html#696" class="Function">J.F-resp-≈</a> <a id="1696" href="Categories.Monad.Relative.html#1658" class="Bound">f≈g</a><a id="1699" class="Symbol">))</a>
|
||
<a id="1704" class="Symbol">}</a>
|
||
<a id="1708" class="Keyword">where</a>
|
||
<a id="1716" class="Keyword">open</a> <a id="1721" href="Categories.Monad.Relative.html#602" class="Module">Monad</a> <a id="1727" href="Categories.Monad.Relative.html#1532" class="Bound">r</a>
|
||
<a id="1731" class="Keyword">module</a> <a id="1738" href="Categories.Monad.Relative.html#1738" class="Module">C</a> <a id="1740" class="Symbol">=</a> <a id="1742" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="1751" href="Categories.Monad.Relative.html#1513" class="Bound">C</a>
|
||
<a id="1755" class="Keyword">module</a> <a id="1762" href="Categories.Monad.Relative.html#1762" class="Module">D</a> <a id="1764" class="Symbol">=</a> <a id="1766" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="1775" href="Categories.Monad.Relative.html#1521" class="Bound">D</a>
|
||
<a id="1779" class="Keyword">module</a> <a id="1786" href="Categories.Monad.Relative.html#1786" class="Module">J</a> <a id="1788" class="Symbol">=</a> <a id="1790" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="1798" href="Categories.Monad.Relative.html#1529" class="Bound">J</a>
|
||
<a id="1802" class="Keyword">open</a> <a id="1807" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="1816" href="Categories.Monad.Relative.html#1521" class="Bound">D</a> <a id="1818" class="Keyword">hiding</a> <a id="1825" class="Symbol">(</a><a id="1826" href="Categories.Category.Core.html#1096" class="Field">identityˡ</a><a id="1835" class="Symbol">;</a> <a id="1837" href="Categories.Category.Core.html#1145" class="Field">identityʳ</a><a id="1846" class="Symbol">;</a> <a id="1848" href="Categories.Category.Core.html#715" class="Field">assoc</a><a id="1853" class="Symbol">)</a>
|
||
<a id="1857" class="Keyword">open</a> <a id="1862" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
|
||
<a id="1877" class="Keyword">open</a> <a id="1882" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="1885" href="Categories.Monad.Relative.html#1521" class="Bound">D</a>
|
||
<a id="1889" href="Categories.Monad.Relative.html#1889" class="Function">identity′</a> <a id="1899" class="Symbol">:</a> <a id="1901" class="Symbol">{</a><a id="1902" href="Categories.Monad.Relative.html#1902" class="Bound">c</a> <a id="1904" class="Symbol">:</a> <a id="1906" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="1911" class="Symbol">}</a> <a id="1913" class="Symbol">→</a> <a id="1915" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="1922" class="Symbol">{</a><a id="1923" href="Categories.Monad.Relative.html#1902" class="Bound">c</a><a id="1924" class="Symbol">}</a> <a id="1926" class="Symbol">(</a><a id="1927" href="Categories.Monad.Relative.html#857" class="Field">unit</a> <a id="1932" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="1934" href="Categories.Functor.Core.html#806" class="Function">J.₁</a> <a id="1938" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="1942" class="Symbol">)</a> <a id="1944" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="1946" href="Categories.Category.Core.html#630" class="Function">id</a>
|
||
<a id="1951" href="Categories.Monad.Relative.html#1889" class="Function">identity′</a> <a id="1961" class="Symbol">=</a> <a id="1963" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
||
<a id="1974" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="1981" class="Symbol">(</a><a id="1982" href="Categories.Monad.Relative.html#857" class="Field">unit</a> <a id="1987" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="1989" href="Categories.Functor.Core.html#806" class="Function">J.₁</a> <a id="1993" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="1997" class="Symbol">)</a> <a id="1999" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2002" href="Categories.Monad.Relative.html#1306" class="Field">extend-≈</a> <a id="2011" class="Symbol">(</a><a id="2012" href="Categories.Morphism.Reasoning.Core.html#2786" class="Function">elimʳ</a> <a id="2018" href="Categories.Functor.Core.html#511" class="Function">J.identity</a><a id="2028" class="Symbol">)</a> <a id="2030" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="2037" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="2044" href="Categories.Monad.Relative.html#857" class="Field">unit</a> <a id="2062" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2065" href="Categories.Monad.Relative.html#1025" class="Field">identityˡ</a> <a id="2075" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="2082" href="Categories.Category.Core.html#630" class="Function">id</a> <a id="2107" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
||
<a id="2111" href="Categories.Monad.Relative.html#2111" class="Function">hom′</a> <a id="2116" class="Symbol">:</a> <a id="2118" class="Symbol">{</a><a id="2119" href="Categories.Monad.Relative.html#2119" class="Bound">X</a> <a id="2121" href="Categories.Monad.Relative.html#2121" class="Bound">Y</a> <a id="2123" href="Categories.Monad.Relative.html#2123" class="Bound">Z</a> <a id="2125" class="Symbol">:</a> <a id="2127" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="2132" class="Symbol">}</a> <a id="2134" class="Symbol">{</a><a id="2135" href="Categories.Monad.Relative.html#2135" class="Bound">f</a> <a id="2137" class="Symbol">:</a> <a id="2139" href="Categories.Monad.Relative.html#2119" class="Bound">X</a> <a id="2141" href="Categories.Category.Core.html#575" class="Function Operator">C.⇒</a> <a id="2145" href="Categories.Monad.Relative.html#2121" class="Bound">Y</a><a id="2146" class="Symbol">}</a> <a id="2148" class="Symbol">{</a><a id="2149" href="Categories.Monad.Relative.html#2149" class="Bound">g</a> <a id="2151" class="Symbol">:</a> <a id="2153" href="Categories.Monad.Relative.html#2121" class="Bound">Y</a> <a id="2155" href="Categories.Category.Core.html#575" class="Function Operator">C.⇒</a> <a id="2159" href="Categories.Monad.Relative.html#2123" class="Bound">Z</a><a id="2160" class="Symbol">}</a> <a id="2162" class="Symbol">→</a>
|
||
<a id="2170" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="2177" class="Symbol">(</a><a id="2178" href="Categories.Monad.Relative.html#857" class="Field">unit</a> <a id="2183" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="2185" href="Categories.Functor.Core.html#806" class="Function">J.₁</a> <a id="2189" class="Symbol">(</a><a id="2190" href="Categories.Monad.Relative.html#2149" class="Bound">g</a> <a id="2192" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2196" href="Categories.Monad.Relative.html#2135" class="Bound">f</a><a id="2197" class="Symbol">))</a> <a id="2200" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="2202" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="2209" class="Symbol">(</a><a id="2210" href="Categories.Monad.Relative.html#857" class="Field">unit</a> <a id="2215" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="2217" href="Categories.Functor.Core.html#806" class="Function">J.₁</a> <a id="2221" href="Categories.Monad.Relative.html#2149" class="Bound">g</a><a id="2222" class="Symbol">)</a> <a id="2224" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="2226" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="2233" class="Symbol">(</a><a id="2234" href="Categories.Monad.Relative.html#857" class="Field">unit</a> <a id="2239" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="2241" href="Categories.Functor.Core.html#455" class="Function">J.F₁</a> <a id="2246" href="Categories.Monad.Relative.html#2135" class="Bound">f</a><a id="2247" class="Symbol">)</a>
|
||
<a id="2251" href="Categories.Monad.Relative.html#2111" class="Function">hom′</a> <a id="2256" class="Symbol">{</a><a id="2257" class="Argument">f</a> <a id="2259" class="Symbol">=</a> <a id="2261" href="Categories.Monad.Relative.html#2261" class="Bound">f</a><a id="2262" class="Symbol">}</a> <a id="2264" class="Symbol">{</a><a id="2265" href="Categories.Monad.Relative.html#2265" class="Bound">g</a><a id="2266" class="Symbol">}</a> <a id="2268" class="Symbol">=</a> <a id="2270" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
||
<a id="2280" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="2287" class="Symbol">(</a><a id="2288" href="Categories.Monad.Relative.html#857" class="Field">unit</a> <a id="2293" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="2295" href="Categories.Functor.Core.html#806" class="Function">J.₁</a> <a id="2299" class="Symbol">(</a><a id="2300" href="Categories.Monad.Relative.html#2265" class="Bound">g</a> <a id="2302" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2306" href="Categories.Monad.Relative.html#2261" class="Bound">f</a><a id="2307" class="Symbol">))</a> <a id="2330" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2333" href="Categories.Monad.Relative.html#1306" class="Field">extend-≈</a> <a id="2342" class="Symbol">(</a><a id="2343" href="Categories.Morphism.Reasoning.Core.html#2347" class="Function">pushʳ</a> <a id="2349" href="Categories.Functor.Core.html#565" class="Function">J.homomorphism</a><a id="2363" class="Symbol">)</a> <a id="2365" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="2371" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="2378" class="Symbol">((</a><a id="2380" href="Categories.Monad.Relative.html#857" class="Field">unit</a> <a id="2385" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="2387" href="Categories.Functor.Core.html#806" class="Function">J.₁</a> <a id="2391" href="Categories.Monad.Relative.html#2265" class="Bound">g</a><a id="2392" class="Symbol">)</a> <a id="2394" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="2396" href="Categories.Functor.Core.html#806" class="Function">J.₁</a> <a id="2400" href="Categories.Monad.Relative.html#2261" class="Bound">f</a><a id="2401" class="Symbol">)</a> <a id="2421" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2424" href="Categories.Monad.Relative.html#1306" class="Field">extend-≈</a> <a id="2433" class="Symbol">(</a><a id="2434" href="Categories.Morphism.Reasoning.Core.html#2485" class="Function">pushˡ</a> <a id="2440" class="Symbol">(</a><a id="2441" href="Categories.Category.Core.html#3005" class="Function">⟺</a> <a id="2443" href="Categories.Monad.Relative.html#953" class="Field">identityʳ</a><a id="2452" class="Symbol">))</a> <a id="2455" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="2461" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="2468" class="Symbol">(</a><a id="2469" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="2476" class="Symbol">(</a><a id="2477" href="Categories.Monad.Relative.html#857" class="Field">unit</a> <a id="2482" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="2484" href="Categories.Functor.Core.html#806" class="Function">J.₁</a> <a id="2488" href="Categories.Monad.Relative.html#2265" class="Bound">g</a><a id="2489" class="Symbol">)</a> <a id="2491" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="2493" class="Symbol">(</a><a id="2494" href="Categories.Monad.Relative.html#857" class="Field">unit</a> <a id="2499" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="2501" href="Categories.Functor.Core.html#455" class="Function">J.F₁</a> <a id="2506" href="Categories.Monad.Relative.html#2261" class="Bound">f</a><a id="2507" class="Symbol">))</a> <a id="2511" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2514" href="Categories.Monad.Relative.html#1078" class="Field">assoc</a> <a id="2520" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="2526" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="2533" class="Symbol">(</a><a id="2534" href="Categories.Monad.Relative.html#857" class="Field">unit</a> <a id="2539" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="2541" href="Categories.Functor.Core.html#806" class="Function">J.₁</a> <a id="2545" href="Categories.Monad.Relative.html#2265" class="Bound">g</a><a id="2546" class="Symbol">)</a> <a id="2548" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="2550" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="2557" class="Symbol">(</a><a id="2558" href="Categories.Monad.Relative.html#857" class="Field">unit</a> <a id="2563" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="2565" href="Categories.Functor.Core.html#455" class="Function">J.F₁</a> <a id="2570" href="Categories.Monad.Relative.html#2261" class="Bound">f</a><a id="2571" class="Symbol">)</a> <a id="2576" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
||
</pre></body></html> |