mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
49 lines
17 KiB
HTML
49 lines
17 KiB
HTML
|
<!DOCTYPE HTML>
|
|||
|
<html><head><meta charset="utf-8"><title>Categories.Functor.Coalgebra</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.Coalgebra.html" class="Module">Categories.Functor.Coalgebra</a> <a id="72" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="79" class="Comment">-- Co-algebras of a Functor</a>
|
|||
|
<a id="107" class="Keyword">open</a> <a id="112" class="Keyword">import</a> <a id="119" href="Level.html" class="Module">Level</a>
|
|||
|
<a id="125" class="Keyword">open</a> <a id="130" class="Keyword">import</a> <a id="137" href="Function.html" class="Module">Function</a> <a id="146" class="Keyword">using</a> <a id="152" class="Symbol">(</a><a id="153" href="Function.Base.html#1974" class="Function Operator">_$_</a><a id="156" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="159" class="Keyword">open</a> <a id="164" class="Keyword">import</a> <a id="171" href="Categories.Category.html" class="Module">Categories.Category</a> <a id="191" class="Keyword">using</a> <a id="197" class="Symbol">(</a><a id="198" href="Categories.Category.Core.html#442" class="Record">Category</a><a id="206" class="Symbol">)</a>
|
|||
|
<a id="208" class="Keyword">open</a> <a id="213" class="Keyword">import</a> <a id="220" href="Categories.Functor.html" class="Module">Categories.Functor</a> <a id="239" class="Keyword">using</a> <a id="245" class="Symbol">(</a><a id="246" href="Categories.Functor.Core.html#248" class="Record">Functor</a><a id="253" class="Symbol">;</a> <a id="255" href="Categories.Functor.html#283" class="Function">Endofunctor</a><a id="266" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="269" class="Keyword">private</a>
|
|||
|
<a id="279" class="Keyword">variable</a>
|
|||
|
<a id="292" href="Categories.Functor.Coalgebra.html#292" class="Generalizable">o</a> <a id="294" href="Categories.Functor.Coalgebra.html#294" class="Generalizable">ℓ</a> <a id="296" href="Categories.Functor.Coalgebra.html#296" class="Generalizable">e</a> <a id="298" class="Symbol">:</a> <a id="300" href="Agda.Primitive.html#742" class="Postulate">Level</a>
|
|||
|
|
|||
|
<a id="307" class="Keyword">module</a> <a id="314" href="Categories.Functor.Coalgebra.html#314" class="Module">_</a> <a id="316" class="Symbol">{</a><a id="317" href="Categories.Functor.Coalgebra.html#317" class="Bound">C</a> <a id="319" class="Symbol">:</a> <a id="321" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="330" href="Categories.Functor.Coalgebra.html#292" class="Generalizable">o</a> <a id="332" href="Categories.Functor.Coalgebra.html#294" class="Generalizable">ℓ</a> <a id="334" href="Categories.Functor.Coalgebra.html#296" class="Generalizable">e</a><a id="335" class="Symbol">}</a> <a id="337" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="346" href="Categories.Functor.Coalgebra.html#346" class="Function">F-Coalgebra-on</a> <a id="361" class="Symbol">:</a> <a id="363" href="Categories.Functor.html#283" class="Function">Endofunctor</a> <a id="375" href="Categories.Functor.Coalgebra.html#317" class="Bound">C</a> <a id="377" class="Symbol">→</a> <a id="379" href="Categories.Functor.Coalgebra.html#317" class="Bound">C</a> <a id="381" class="Symbol">.</a><a id="382" href="Categories.Category.Core.html#559" class="Field">Category.Obj</a> <a id="395" class="Symbol">→</a> <a id="397" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="401" href="Categories.Functor.Coalgebra.html#332" class="Bound">ℓ</a>
|
|||
|
<a id="405" href="Categories.Functor.Coalgebra.html#346" class="Function">F-Coalgebra-on</a> <a id="420" href="Categories.Functor.Coalgebra.html#420" class="Bound">F</a> <a id="422" href="Categories.Functor.Coalgebra.html#422" class="Bound">A</a> <a id="424" class="Symbol">=</a> <a id="426" href="Categories.Functor.Coalgebra.html#422" class="Bound">A</a> <a id="428" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="430" href="Categories.Functor.Core.html#432" class="Function">F₀</a> <a id="433" href="Categories.Functor.Coalgebra.html#422" class="Bound">A</a> <a id="435" class="Keyword">where</a> <a id="441" class="Keyword">open</a> <a id="446" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="455" href="Categories.Functor.Coalgebra.html#317" class="Bound">C</a><a id="456" class="Symbol">;</a> <a id="458" class="Keyword">open</a> <a id="463" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="471" href="Categories.Functor.Coalgebra.html#420" class="Bound">F</a>
|
|||
|
|
|||
|
<a id="476" class="Keyword">record</a> <a id="483" href="Categories.Functor.Coalgebra.html#483" class="Record">F-Coalgebra</a> <a id="495" class="Symbol">(</a><a id="496" href="Categories.Functor.Coalgebra.html#496" class="Bound">F</a> <a id="498" class="Symbol">:</a> <a id="500" href="Categories.Functor.html#283" class="Function">Endofunctor</a> <a id="512" href="Categories.Functor.Coalgebra.html#317" class="Bound">C</a><a id="513" class="Symbol">)</a> <a id="515" class="Symbol">:</a> <a id="517" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="521" class="Symbol">(</a><a id="522" href="Categories.Functor.Coalgebra.html#330" class="Bound">o</a> <a id="524" href="Agda.Primitive.html#961" class="Primitive Operator">⊔</a> <a id="526" href="Categories.Functor.Coalgebra.html#332" class="Bound">ℓ</a><a id="527" class="Symbol">)</a> <a id="529" class="Keyword">where</a>
|
|||
|
<a id="539" class="Keyword">open</a> <a id="544" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="553" href="Categories.Functor.Coalgebra.html#317" class="Bound">C</a>
|
|||
|
<a id="559" class="Keyword">field</a>
|
|||
|
<a id="571" href="Categories.Functor.Coalgebra.html#571" class="Field">A</a> <a id="573" class="Symbol">:</a> <a id="575" href="Categories.Category.Core.html#559" class="Function">Obj</a>
|
|||
|
<a id="585" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="587" class="Symbol">:</a> <a id="589" href="Categories.Functor.Coalgebra.html#346" class="Function">F-Coalgebra-on</a> <a id="604" href="Categories.Functor.Coalgebra.html#496" class="Bound">F</a> <a id="606" href="Categories.Functor.Coalgebra.html#571" class="Field">A</a>
|
|||
|
|
|||
|
<a id="611" href="Categories.Functor.Coalgebra.html#611" class="Function">to-Coalgebra</a> <a id="624" class="Symbol">:</a> <a id="626" class="Symbol">{</a><a id="627" href="Categories.Functor.Coalgebra.html#627" class="Bound">A</a> <a id="629" class="Symbol">:</a> <a id="631" href="Categories.Category.Core.html#559" class="Field">Category.Obj</a> <a id="644" href="Categories.Functor.Coalgebra.html#317" class="Bound">C</a><a id="645" class="Symbol">}</a> <a id="647" class="Symbol">→</a> <a id="649" class="Symbol">{</a><a id="650" href="Categories.Functor.Coalgebra.html#650" class="Bound">F</a> <a id="652" class="Symbol">:</a> <a id="654" href="Categories.Functor.html#283" class="Function">Endofunctor</a> <a id="666" href="Categories.Functor.Coalgebra.html#317" class="Bound">C</a><a id="667" class="Symbol">}</a> <a id="669" class="Symbol">→</a> <a id="671" class="Symbol">(</a><a id="672" href="Categories.Functor.Coalgebra.html#346" class="Function">F-Coalgebra-on</a> <a id="687" href="Categories.Functor.Coalgebra.html#650" class="Bound">F</a> <a id="689" href="Categories.Functor.Coalgebra.html#627" class="Bound">A</a><a id="690" class="Symbol">)</a> <a id="692" class="Symbol">→</a> <a id="694" class="Symbol">(</a><a id="695" href="Categories.Functor.Coalgebra.html#483" class="Record">F-Coalgebra</a> <a id="707" href="Categories.Functor.Coalgebra.html#650" class="Bound">F</a><a id="708" class="Symbol">)</a>
|
|||
|
<a id="712" href="Categories.Functor.Coalgebra.html#611" class="Function">to-Coalgebra</a> <a id="725" class="Symbol">{</a><a id="726" class="Argument">A</a> <a id="728" class="Symbol">=</a> <a id="730" href="Categories.Functor.Coalgebra.html#730" class="Bound">A</a><a id="731" class="Symbol">}</a> <a id="733" href="Categories.Functor.Coalgebra.html#733" class="Bound">α</a> <a id="735" class="Symbol">=</a> <a id="737" class="Keyword">record</a> <a id="744" class="Symbol">{</a><a id="745" href="Categories.Functor.Coalgebra.html#571" class="Field">A</a> <a id="747" class="Symbol">=</a> <a id="749" href="Categories.Functor.Coalgebra.html#730" class="Bound">A</a><a id="750" class="Symbol">;</a> <a id="752" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="754" class="Symbol">=</a> <a id="756" href="Categories.Functor.Coalgebra.html#733" class="Bound">α</a><a id="757" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="762" class="Keyword">open</a> <a id="767" href="Categories.Functor.Coalgebra.html#483" class="Module">F-Coalgebra</a>
|
|||
|
|
|||
|
<a id="782" class="Comment">-- Given a F-Coalgebra F, one can apply F to it to obtain an new 'iterated' F-Coalgebra</a>
|
|||
|
<a id="872" href="Categories.Functor.Coalgebra.html#872" class="Function">iterate</a> <a id="880" class="Symbol">:</a> <a id="882" class="Symbol">{</a><a id="883" href="Categories.Functor.Coalgebra.html#883" class="Bound">F</a> <a id="885" class="Symbol">:</a> <a id="887" href="Categories.Functor.html#283" class="Function">Endofunctor</a> <a id="899" href="Categories.Functor.Coalgebra.html#317" class="Bound">C</a><a id="900" class="Symbol">}</a> <a id="902" class="Symbol">→</a> <a id="904" href="Categories.Functor.Coalgebra.html#483" class="Record">F-Coalgebra</a> <a id="916" href="Categories.Functor.Coalgebra.html#883" class="Bound">F</a> <a id="918" class="Symbol">→</a> <a id="920" href="Categories.Functor.Coalgebra.html#483" class="Record">F-Coalgebra</a> <a id="932" href="Categories.Functor.Coalgebra.html#883" class="Bound">F</a>
|
|||
|
<a id="936" href="Categories.Functor.Coalgebra.html#872" class="Function">iterate</a> <a id="944" class="Symbol">{</a><a id="945" class="Argument">F</a> <a id="947" class="Symbol">=</a> <a id="949" href="Categories.Functor.Coalgebra.html#949" class="Bound">F</a><a id="950" class="Symbol">}</a> <a id="952" href="Categories.Functor.Coalgebra.html#952" class="Bound">F-alg</a> <a id="958" class="Symbol">=</a> <a id="960" class="Keyword">record</a> <a id="967" class="Symbol">{</a> <a id="969" href="Categories.Functor.Coalgebra.html#571" class="Field">A</a> <a id="971" class="Symbol">=</a> <a id="973" href="Categories.Functor.Core.html#432" class="Field">Functor.F₀</a> <a id="984" href="Categories.Functor.Coalgebra.html#949" class="Bound">F</a> <a id="986" href="Function.Base.html#1974" class="Function Operator">$</a> <a id="988" href="Categories.Functor.Coalgebra.html#571" class="Field">A</a> <a id="990" href="Categories.Functor.Coalgebra.html#952" class="Bound">F-alg</a> <a id="996" class="Symbol">;</a> <a id="998" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="1000" class="Symbol">=</a> <a id="1002" href="Categories.Functor.Core.html#455" class="Field">Functor.F₁</a> <a id="1013" href="Categories.Functor.Coalgebra.html#949" class="Bound">F</a> <a id="1015" href="Function.Base.html#1974" class="Function Operator">$</a> <a id="1017" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="1019" href="Categories.Functor.Coalgebra.html#952" class="Bound">F-alg</a> <a id="1025" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="1030" class="Keyword">module</a> <a id="1037" href="Categories.Functor.Coalgebra.html#1037" class="Module">_</a> <a id="1039" class="Symbol">{</a><a id="1040" href="Categories.Functor.Coalgebra.html#1040" class="Bound">F</a> <a id="1042" class="Symbol">:</a> <a id="1044" href="Categories.Functor.html#283" class="Function">Endofunctor</a> <a id="1056" href="Categories.Functor.Coalgebra.html#317" class="Bound">C</a><a id="1057" class="Symbol">}</a> <a id="1059" class="Symbol">(</a><a id="1060" href="Categories.Functor.Coalgebra.html#1060" class="Bound">X</a> <a id="1062" href="Categories.Functor.Coalgebra.html#1062" class="Bound">Y</a> <a id="1064" class="Symbol">:</a> <a id="1066" href="Categories.Functor.Coalgebra.html#483" class="Record">F-Coalgebra</a> <a id="1078" href="Categories.Functor.Coalgebra.html#1040" class="Bound">F</a><a id="1079" class="Symbol">)</a> <a id="1081" class="Keyword">where</a>
|
|||
|
<a id="1091" class="Keyword">open</a> <a id="1096" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="1105" href="Categories.Functor.Coalgebra.html#317" class="Bound">C</a> <a id="1107" class="Keyword">using</a> <a id="1113" class="Symbol">(</a><a id="1114" href="Categories.Category.Core.html#575" class="Field Operator">_⇒_</a><a id="1117" class="Symbol">;</a> <a id="1119" href="Categories.Category.Core.html#656" class="Field Operator">_∘_</a><a id="1122" class="Symbol">;</a> <a id="1124" href="Categories.Category.Core.html#595" class="Field Operator">_≈_</a><a id="1127" class="Symbol">)</a>
|
|||
|
<a id="1133" class="Keyword">open</a> <a id="1138" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="1146" href="Categories.Functor.Coalgebra.html#1040" class="Bound">F</a> <a id="1148" class="Keyword">using</a> <a id="1154" class="Symbol">(</a><a id="1155" href="Categories.Functor.Core.html#455" class="Field">F₁</a><a id="1157" class="Symbol">)</a>
|
|||
|
<a id="1163" class="Keyword">private</a>
|
|||
|
<a id="1177" class="Keyword">module</a> <a id="1184" href="Categories.Functor.Coalgebra.html#1184" class="Module">X</a> <a id="1186" class="Symbol">=</a> <a id="1188" href="Categories.Functor.Coalgebra.html#483" class="Module">F-Coalgebra</a> <a id="1200" href="Categories.Functor.Coalgebra.html#1060" class="Bound">X</a>
|
|||
|
<a id="1208" class="Keyword">module</a> <a id="1215" href="Categories.Functor.Coalgebra.html#1215" class="Module">Y</a> <a id="1217" class="Symbol">=</a> <a id="1219" href="Categories.Functor.Coalgebra.html#483" class="Module">F-Coalgebra</a> <a id="1231" href="Categories.Functor.Coalgebra.html#1062" class="Bound">Y</a>
|
|||
|
<a id="1237" href="Categories.Functor.Coalgebra.html#1237" class="Function">is-F-Coalgebra-Morphism</a> <a id="1261" class="Symbol">:</a> <a id="1263" class="Symbol">(</a><a id="1264" href="Categories.Functor.Coalgebra.html#571" class="Function">X.A</a> <a id="1268" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="1270" href="Categories.Functor.Coalgebra.html#571" class="Field">Y.A</a><a id="1273" class="Symbol">)</a> <a id="1275" class="Symbol">→</a> <a id="1277" class="Symbol">(</a><a id="1278" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1282" href="Categories.Functor.Coalgebra.html#334" class="Bound">e</a><a id="1283" class="Symbol">)</a>
|
|||
|
<a id="1289" href="Categories.Functor.Coalgebra.html#1237" class="Function">is-F-Coalgebra-Morphism</a> <a id="1313" href="Categories.Functor.Coalgebra.html#1313" class="Bound">f</a> <a id="1315" class="Symbol">=</a> <a id="1317" href="Categories.Functor.Coalgebra.html#585" class="Field">Y.α</a> <a id="1321" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="1323" href="Categories.Functor.Coalgebra.html#1313" class="Bound">f</a> <a id="1325" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="1327" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="1330" href="Categories.Functor.Coalgebra.html#1313" class="Bound">f</a> <a id="1332" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="1334" href="Categories.Functor.Coalgebra.html#585" class="Function">X.α</a>
|
|||
|
|
|||
|
<a id="1343" class="Keyword">record</a> <a id="1350" href="Categories.Functor.Coalgebra.html#1350" class="Record">F-Coalgebra-Morphism</a> <a id="1371" class="Symbol">:</a> <a id="1373" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1377" class="Symbol">(</a><a id="1378" href="Categories.Functor.Coalgebra.html#332" class="Bound">ℓ</a> <a id="1380" href="Agda.Primitive.html#961" class="Primitive Operator">⊔</a> <a id="1382" href="Categories.Functor.Coalgebra.html#334" class="Bound">e</a><a id="1383" class="Symbol">)</a> <a id="1385" class="Keyword">where</a>
|
|||
|
<a id="1397" class="Keyword">field</a>
|
|||
|
<a id="1411" href="Categories.Functor.Coalgebra.html#1411" class="Field">f</a> <a id="1413" class="Symbol">:</a> <a id="1415" href="Categories.Functor.Coalgebra.html#571" class="Function">X.A</a> <a id="1419" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="1421" href="Categories.Functor.Coalgebra.html#571" class="Field">Y.A</a>
|
|||
|
<a id="1433" href="Categories.Functor.Coalgebra.html#1433" class="Field">commutes</a> <a id="1442" class="Symbol">:</a> <a id="1444" href="Categories.Functor.Coalgebra.html#1237" class="Function">is-F-Coalgebra-Morphism</a> <a id="1468" href="Categories.Functor.Coalgebra.html#1411" class="Field">f</a>
|
|||
|
</pre></body></html>
|