mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
53 lines
No EOL
16 KiB
HTML
53 lines
No EOL
16 KiB
HTML
<!DOCTYPE HTML>
|
||
<html><head><meta charset="utf-8"><title>Categories.Functor.Algebra</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.Functor.Algebra.html" class="Module">Categories.Functor.Algebra</a> <a id="70" class="Keyword">where</a>
|
||
|
||
<a id="77" class="Comment">-- Algebra for a Functor</a>
|
||
|
||
<a id="103" class="Keyword">open</a> <a id="108" class="Keyword">import</a> <a id="115" href="Level.html" class="Module">Level</a>
|
||
<a id="121" class="Keyword">open</a> <a id="126" class="Keyword">import</a> <a id="133" href="Function.html" class="Module">Function</a> <a id="142" class="Keyword">using</a> <a id="148" class="Symbol">(</a><a id="149" href="Function.Base.html#1928" class="Function Operator">_$_</a><a id="152" class="Symbol">)</a>
|
||
|
||
<a id="155" class="Keyword">open</a> <a id="160" class="Keyword">import</a> <a id="167" href="Categories.Category.html" class="Module">Categories.Category</a> <a id="187" class="Keyword">using</a> <a id="193" class="Symbol">(</a><a id="194" href="Categories.Category.Core.html#442" class="Record">Category</a><a id="202" class="Symbol">)</a>
|
||
<a id="204" class="Keyword">open</a> <a id="209" class="Keyword">import</a> <a id="216" href="Categories.Functor.html" class="Module">Categories.Functor</a> <a id="235" class="Keyword">using</a> <a id="241" class="Symbol">(</a><a id="242" href="Categories.Functor.Core.html#248" class="Record">Functor</a><a id="249" class="Symbol">;</a> <a id="251" href="Categories.Functor.html#283" class="Function">Endofunctor</a><a id="262" class="Symbol">)</a>
|
||
|
||
<a id="265" class="Keyword">private</a>
|
||
<a id="275" class="Keyword">variable</a>
|
||
<a id="288" href="Categories.Functor.Algebra.html#288" class="Generalizable">o</a> <a id="290" href="Categories.Functor.Algebra.html#290" class="Generalizable">ℓ</a> <a id="292" href="Categories.Functor.Algebra.html#292" class="Generalizable">e</a> <a id="294" class="Symbol">:</a> <a id="296" href="Agda.Primitive.html#591" class="Postulate">Level</a>
|
||
|
||
<a id="303" class="Keyword">module</a> <a id="310" href="Categories.Functor.Algebra.html#310" class="Module">_</a> <a id="312" class="Symbol">{</a><a id="313" href="Categories.Functor.Algebra.html#313" class="Bound">C</a> <a id="315" class="Symbol">:</a> <a id="317" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="326" href="Categories.Functor.Algebra.html#288" class="Generalizable">o</a> <a id="328" href="Categories.Functor.Algebra.html#290" class="Generalizable">ℓ</a> <a id="330" href="Categories.Functor.Algebra.html#292" class="Generalizable">e</a><a id="331" class="Symbol">}</a> <a id="333" class="Keyword">where</a>
|
||
|
||
<a id="342" class="Keyword">module</a> <a id="349" href="Categories.Functor.Algebra.html#349" class="Module">_</a> <a id="351" class="Symbol">(</a><a id="352" href="Categories.Functor.Algebra.html#352" class="Bound">F</a> <a id="354" class="Symbol">:</a> <a id="356" href="Categories.Functor.html#283" class="Function">Endofunctor</a> <a id="368" href="Categories.Functor.Algebra.html#313" class="Bound">C</a><a id="369" class="Symbol">)</a> <a id="371" class="Keyword">where</a>
|
||
<a id="381" class="Keyword">open</a> <a id="386" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="395" href="Categories.Functor.Algebra.html#313" class="Bound">C</a>
|
||
<a id="401" class="Keyword">open</a> <a id="406" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="414" href="Categories.Functor.Algebra.html#352" class="Bound">F</a>
|
||
<a id="420" href="Categories.Functor.Algebra.html#420" class="Function">F-Algebra-on</a> <a id="433" class="Symbol">:</a> <a id="435" href="Categories.Category.Core.html#559" class="Function">Obj</a> <a id="439" class="Symbol">→</a> <a id="441" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="445" href="Categories.Functor.Algebra.html#328" class="Bound">ℓ</a>
|
||
<a id="451" href="Categories.Functor.Algebra.html#420" class="Function">F-Algebra-on</a> <a id="464" href="Categories.Functor.Algebra.html#464" class="Bound">A</a> <a id="466" class="Symbol">=</a> <a id="468" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="471" href="Categories.Functor.Algebra.html#464" class="Bound">A</a> <a id="473" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="475" href="Categories.Functor.Algebra.html#464" class="Bound">A</a>
|
||
|
||
<a id="480" class="Keyword">record</a> <a id="487" href="Categories.Functor.Algebra.html#487" class="Record">F-Algebra</a> <a id="497" class="Symbol">(</a><a id="498" href="Categories.Functor.Algebra.html#498" class="Bound">F</a> <a id="500" class="Symbol">:</a> <a id="502" href="Categories.Functor.html#283" class="Function">Endofunctor</a> <a id="514" href="Categories.Functor.Algebra.html#313" class="Bound">C</a><a id="515" class="Symbol">)</a> <a id="517" class="Symbol">:</a> <a id="519" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="523" class="Symbol">(</a><a id="524" href="Categories.Functor.Algebra.html#326" class="Bound">o</a> <a id="526" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="528" href="Categories.Functor.Algebra.html#328" class="Bound">ℓ</a><a id="529" class="Symbol">)</a> <a id="531" class="Keyword">where</a>
|
||
<a id="541" class="Keyword">open</a> <a id="546" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="555" href="Categories.Functor.Algebra.html#313" class="Bound">C</a>
|
||
<a id="561" class="Keyword">field</a>
|
||
<a id="573" href="Categories.Functor.Algebra.html#573" class="Field">A</a> <a id="575" class="Symbol">:</a> <a id="577" href="Categories.Category.Core.html#559" class="Function">Obj</a>
|
||
<a id="587" href="Categories.Functor.Algebra.html#587" class="Field">α</a> <a id="589" class="Symbol">:</a> <a id="591" href="Categories.Functor.Algebra.html#420" class="Function">F-Algebra-on</a> <a id="604" href="Categories.Functor.Algebra.html#498" class="Bound">F</a> <a id="606" href="Categories.Functor.Algebra.html#573" class="Field">A</a>
|
||
|
||
<a id="611" href="Categories.Functor.Algebra.html#611" class="Function">to-Algebra</a> <a id="622" class="Symbol">:</a> <a id="624" class="Symbol">{</a><a id="625" href="Categories.Functor.Algebra.html#625" class="Bound">A</a> <a id="627" class="Symbol">:</a> <a id="629" href="Categories.Category.Core.html#559" class="Field">Category.Obj</a> <a id="642" href="Categories.Functor.Algebra.html#313" class="Bound">C</a><a id="643" class="Symbol">}</a> <a id="645" class="Symbol">→</a> <a id="647" class="Symbol">{</a><a id="648" href="Categories.Functor.Algebra.html#648" class="Bound">F</a> <a id="650" class="Symbol">:</a> <a id="652" href="Categories.Functor.html#283" class="Function">Endofunctor</a> <a id="664" href="Categories.Functor.Algebra.html#313" class="Bound">C</a><a id="665" class="Symbol">}</a> <a id="667" class="Symbol">→</a> <a id="669" class="Symbol">(</a><a id="670" href="Categories.Functor.Algebra.html#420" class="Function">F-Algebra-on</a> <a id="683" href="Categories.Functor.Algebra.html#648" class="Bound">F</a> <a id="685" href="Categories.Functor.Algebra.html#625" class="Bound">A</a><a id="686" class="Symbol">)</a> <a id="688" class="Symbol">→</a> <a id="690" class="Symbol">(</a><a id="691" href="Categories.Functor.Algebra.html#487" class="Record">F-Algebra</a> <a id="701" href="Categories.Functor.Algebra.html#648" class="Bound">F</a><a id="702" class="Symbol">)</a>
|
||
<a id="706" href="Categories.Functor.Algebra.html#611" class="Function">to-Algebra</a> <a id="717" class="Symbol">{</a><a id="718" class="Argument">A</a> <a id="720" class="Symbol">=</a> <a id="722" href="Categories.Functor.Algebra.html#722" class="Bound">A</a><a id="723" class="Symbol">}</a> <a id="725" href="Categories.Functor.Algebra.html#725" class="Bound">α</a> <a id="727" class="Symbol">=</a> <a id="729" class="Keyword">record</a> <a id="736" class="Symbol">{</a><a id="737" href="Categories.Functor.Algebra.html#573" class="Field">A</a> <a id="739" class="Symbol">=</a> <a id="741" href="Categories.Functor.Algebra.html#722" class="Bound">A</a><a id="742" class="Symbol">;</a> <a id="744" href="Categories.Functor.Algebra.html#587" class="Field">α</a> <a id="746" class="Symbol">=</a> <a id="748" href="Categories.Functor.Algebra.html#725" class="Bound">α</a><a id="749" class="Symbol">}</a>
|
||
|
||
<a id="754" class="Keyword">open</a> <a id="759" href="Categories.Functor.Algebra.html#487" class="Module">F-Algebra</a>
|
||
|
||
<a id="772" class="Comment">-- Given an F-Algebra F, one can apply F to it to obtain an new 'iterated' F-Algebra</a>
|
||
<a id="859" href="Categories.Functor.Algebra.html#859" class="Function">iterate</a> <a id="867" class="Symbol">:</a> <a id="869" class="Symbol">{</a><a id="870" href="Categories.Functor.Algebra.html#870" class="Bound">F</a> <a id="872" class="Symbol">:</a> <a id="874" href="Categories.Functor.html#283" class="Function">Endofunctor</a> <a id="886" href="Categories.Functor.Algebra.html#313" class="Bound">C</a><a id="887" class="Symbol">}</a> <a id="889" class="Symbol">→</a> <a id="891" href="Categories.Functor.Algebra.html#487" class="Record">F-Algebra</a> <a id="901" href="Categories.Functor.Algebra.html#870" class="Bound">F</a> <a id="903" class="Symbol">→</a> <a id="905" href="Categories.Functor.Algebra.html#487" class="Record">F-Algebra</a> <a id="915" href="Categories.Functor.Algebra.html#870" class="Bound">F</a>
|
||
<a id="919" href="Categories.Functor.Algebra.html#859" class="Function">iterate</a> <a id="927" class="Symbol">{</a><a id="928" href="Categories.Functor.Algebra.html#928" class="Bound">F</a><a id="929" class="Symbol">}</a> <a id="931" href="Categories.Functor.Algebra.html#931" class="Bound">c</a> <a id="933" class="Symbol">=</a> <a id="935" class="Keyword">record</a> <a id="942" class="Symbol">{</a> <a id="944" href="Categories.Functor.Algebra.html#573" class="Field">A</a> <a id="946" class="Symbol">=</a> <a id="948" href="Categories.Functor.Core.html#432" class="Field">Functor.F₀</a> <a id="959" href="Categories.Functor.Algebra.html#928" class="Bound">F</a> <a id="961" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="963" href="Categories.Functor.Algebra.html#573" class="Field">A</a> <a id="965" href="Categories.Functor.Algebra.html#931" class="Bound">c</a> <a id="967" class="Symbol">;</a> <a id="969" href="Categories.Functor.Algebra.html#587" class="Field">α</a> <a id="971" class="Symbol">=</a> <a id="973" href="Categories.Functor.Core.html#455" class="Field">Functor.F₁</a> <a id="984" href="Categories.Functor.Algebra.html#928" class="Bound">F</a> <a id="986" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="988" href="Categories.Functor.Algebra.html#587" class="Field">α</a> <a id="990" href="Categories.Functor.Algebra.html#931" class="Bound">c</a> <a id="992" class="Symbol">}</a>
|
||
|
||
<a id="997" class="Keyword">module</a> <a id="1004" href="Categories.Functor.Algebra.html#1004" class="Module">_</a> <a id="1006" class="Symbol">{</a><a id="1007" href="Categories.Functor.Algebra.html#1007" class="Bound">F</a> <a id="1009" class="Symbol">:</a> <a id="1011" href="Categories.Functor.html#283" class="Function">Endofunctor</a> <a id="1023" href="Categories.Functor.Algebra.html#313" class="Bound">C</a><a id="1024" class="Symbol">}</a> <a id="1026" class="Symbol">(</a><a id="1027" href="Categories.Functor.Algebra.html#1027" class="Bound">X</a> <a id="1029" href="Categories.Functor.Algebra.html#1029" class="Bound">Y</a> <a id="1031" class="Symbol">:</a> <a id="1033" href="Categories.Functor.Algebra.html#487" class="Record">F-Algebra</a> <a id="1043" href="Categories.Functor.Algebra.html#1007" class="Bound">F</a><a id="1044" class="Symbol">)</a> <a id="1046" class="Keyword">where</a>
|
||
<a id="1056" class="Keyword">open</a> <a id="1061" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="1070" href="Categories.Functor.Algebra.html#313" class="Bound">C</a> <a id="1072" class="Keyword">using</a> <a id="1078" class="Symbol">(</a><a id="1079" href="Categories.Category.Core.html#575" class="Field Operator">_⇒_</a><a id="1082" class="Symbol">;</a> <a id="1084" href="Categories.Category.Core.html#656" class="Field Operator">_∘_</a><a id="1087" class="Symbol">;</a> <a id="1089" href="Categories.Category.Core.html#595" class="Field Operator">_≈_</a><a id="1092" class="Symbol">)</a>
|
||
<a id="1098" class="Keyword">open</a> <a id="1103" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="1111" href="Categories.Functor.Algebra.html#1007" class="Bound">F</a> <a id="1113" class="Keyword">using</a> <a id="1119" class="Symbol">(</a><a id="1120" href="Categories.Functor.Core.html#455" class="Field">F₁</a><a id="1122" class="Symbol">)</a>
|
||
<a id="1128" class="Keyword">private</a>
|
||
<a id="1142" class="Keyword">module</a> <a id="1149" href="Categories.Functor.Algebra.html#1149" class="Module">X</a> <a id="1151" class="Symbol">=</a> <a id="1153" href="Categories.Functor.Algebra.html#487" class="Module">F-Algebra</a> <a id="1163" href="Categories.Functor.Algebra.html#1027" class="Bound">X</a>
|
||
<a id="1171" class="Keyword">module</a> <a id="1178" href="Categories.Functor.Algebra.html#1178" class="Module">Y</a> <a id="1180" class="Symbol">=</a> <a id="1182" href="Categories.Functor.Algebra.html#487" class="Module">F-Algebra</a> <a id="1192" href="Categories.Functor.Algebra.html#1029" class="Bound">Y</a>
|
||
<a id="1198" href="Categories.Functor.Algebra.html#1198" class="Function">is-F-Algebra-Morphism</a> <a id="1220" class="Symbol">:</a> <a id="1222" class="Symbol">(</a><a id="1223" href="Categories.Functor.Algebra.html#573" class="Function">X.A</a> <a id="1227" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="1229" href="Categories.Functor.Algebra.html#573" class="Field">Y.A</a><a id="1232" class="Symbol">)</a> <a id="1234" class="Symbol">→</a> <a id="1236" class="Symbol">(</a><a id="1237" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1241" href="Categories.Functor.Algebra.html#330" class="Bound">e</a><a id="1242" class="Symbol">)</a>
|
||
<a id="1248" href="Categories.Functor.Algebra.html#1198" class="Function">is-F-Algebra-Morphism</a> <a id="1270" href="Categories.Functor.Algebra.html#1270" class="Bound">f</a> <a id="1272" class="Symbol">=</a> <a id="1274" href="Categories.Functor.Algebra.html#1270" class="Bound">f</a> <a id="1276" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="1278" href="Categories.Functor.Algebra.html#587" class="Function">X.α</a> <a id="1282" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="1284" href="Categories.Functor.Algebra.html#587" class="Field">Y.α</a> <a id="1288" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="1290" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="1293" href="Categories.Functor.Algebra.html#1270" class="Bound">f</a>
|
||
|
||
<a id="1300" class="Keyword">record</a> <a id="1307" href="Categories.Functor.Algebra.html#1307" class="Record">F-Algebra-Morphism</a> <a id="1326" class="Symbol">:</a> <a id="1328" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1332" class="Symbol">(</a><a id="1333" href="Categories.Functor.Algebra.html#328" class="Bound">ℓ</a> <a id="1335" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1337" href="Categories.Functor.Algebra.html#330" class="Bound">e</a><a id="1338" class="Symbol">)</a> <a id="1340" class="Keyword">where</a>
|
||
<a id="1352" class="Keyword">field</a>
|
||
<a id="1366" href="Categories.Functor.Algebra.html#1366" class="Field">f</a> <a id="1368" class="Symbol">:</a> <a id="1370" href="Categories.Functor.Algebra.html#573" class="Function">X.A</a> <a id="1374" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="1376" href="Categories.Functor.Algebra.html#573" class="Field">Y.A</a>
|
||
<a id="1388" href="Categories.Functor.Algebra.html#1388" class="Field">commutes</a> <a id="1397" class="Symbol">:</a> <a id="1399" href="Categories.Functor.Algebra.html#1198" class="Function">is-F-Algebra-Morphism</a> <a id="1421" href="Categories.Functor.Algebra.html#1366" class="Field">f</a>
|
||
</pre></body></html> |