mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
40 lines
13 KiB
HTML
40 lines
13 KiB
HTML
|
<!DOCTYPE HTML>
|
|||
|
<html><head><meta charset="utf-8"><title>Categories.NaturalTransformation.Equivalence</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="Comment">-- define a less-than-great equivalence on natural transformations</a>
|
|||
|
<a id="104" class="Keyword">module</a> <a id="111" href="Categories.NaturalTransformation.Equivalence.html" class="Module">Categories.NaturalTransformation.Equivalence</a> <a id="156" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="163" class="Keyword">open</a> <a id="168" class="Keyword">import</a> <a id="175" href="Level.html" class="Module">Level</a>
|
|||
|
<a id="181" class="Keyword">open</a> <a id="186" class="Keyword">import</a> <a id="193" href="Relation.Binary.html" class="Module">Relation.Binary</a> <a id="209" class="Keyword">using</a> <a id="215" class="Symbol">(</a><a id="216" href="Relation.Binary.Core.html#896" class="Function">Rel</a><a id="219" class="Symbol">;</a> <a id="221" href="Relation.Binary.Structures.html#1550" class="Record">IsEquivalence</a><a id="234" class="Symbol">;</a> <a id="236" href="Relation.Binary.Bundles.html#1080" class="Record">Setoid</a><a id="242" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="245" class="Keyword">open</a> <a id="250" class="Keyword">import</a> <a id="257" href="Categories.Category.html" class="Module">Categories.Category</a>
|
|||
|
<a id="277" class="Keyword">open</a> <a id="282" class="Keyword">import</a> <a id="289" href="Categories.Functor.html" class="Module">Categories.Functor</a>
|
|||
|
<a id="308" class="Keyword">open</a> <a id="313" class="Keyword">import</a> <a id="320" href="Categories.NaturalTransformation.Core.html" class="Module">Categories.NaturalTransformation.Core</a>
|
|||
|
|
|||
|
<a id="359" class="Keyword">private</a>
|
|||
|
<a id="369" class="Keyword">variable</a>
|
|||
|
<a id="382" href="Categories.NaturalTransformation.Equivalence.html#382" class="Generalizable">o</a> <a id="384" href="Categories.NaturalTransformation.Equivalence.html#384" class="Generalizable">ℓ</a> <a id="386" href="Categories.NaturalTransformation.Equivalence.html#386" class="Generalizable">e</a> <a id="388" href="Categories.NaturalTransformation.Equivalence.html#388" class="Generalizable">o′</a> <a id="391" href="Categories.NaturalTransformation.Equivalence.html#391" class="Generalizable">ℓ′</a> <a id="394" href="Categories.NaturalTransformation.Equivalence.html#394" class="Generalizable">e′</a> <a id="397" class="Symbol">:</a> <a id="399" href="Agda.Primitive.html#742" class="Postulate">Level</a>
|
|||
|
<a id="409" href="Categories.NaturalTransformation.Equivalence.html#409" class="Generalizable">C</a> <a id="411" href="Categories.NaturalTransformation.Equivalence.html#411" class="Generalizable">D</a> <a id="413" href="Categories.NaturalTransformation.Equivalence.html#413" class="Generalizable">E</a> <a id="415" class="Symbol">:</a> <a id="417" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="426" href="Categories.NaturalTransformation.Equivalence.html#382" class="Generalizable">o</a> <a id="428" href="Categories.NaturalTransformation.Equivalence.html#384" class="Generalizable">ℓ</a> <a id="430" href="Categories.NaturalTransformation.Equivalence.html#386" class="Generalizable">e</a>
|
|||
|
|
|||
|
<a id="433" class="Comment">-- This ad hoc equivalence for NaturalTransformation should really be 'modification'</a>
|
|||
|
<a id="518" class="Comment">-- (yep, tricategories!). What is below is only part of the definition of a 'modification'. TODO</a>
|
|||
|
<a id="617" class="Keyword">infix</a> <a id="623" class="Number">4</a> <a id="625" href="Categories.NaturalTransformation.Equivalence.html#630" class="Function Operator">_≃_</a>
|
|||
|
|
|||
|
<a id="_≃_"></a><a id="630" href="Categories.NaturalTransformation.Equivalence.html#630" class="Function Operator">_≃_</a> <a id="634" class="Symbol">:</a> <a id="636" class="Symbol">∀</a> <a id="638" class="Symbol">{</a><a id="639" href="Categories.NaturalTransformation.Equivalence.html#639" class="Bound">F</a> <a id="641" href="Categories.NaturalTransformation.Equivalence.html#641" class="Bound">G</a> <a id="643" class="Symbol">:</a> <a id="645" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="653" href="Categories.NaturalTransformation.Equivalence.html#409" class="Generalizable">C</a> <a id="655" href="Categories.NaturalTransformation.Equivalence.html#411" class="Generalizable">D</a><a id="656" class="Symbol">}</a> <a id="658" class="Symbol">→</a> <a id="660" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="664" class="Symbol">(</a><a id="665" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="687" href="Categories.NaturalTransformation.Equivalence.html#639" class="Bound">F</a> <a id="689" href="Categories.NaturalTransformation.Equivalence.html#641" class="Bound">G</a><a id="690" class="Symbol">)</a> <a id="692" class="Symbol">_</a>
|
|||
|
<a id="694" href="Categories.NaturalTransformation.Equivalence.html#630" class="Function Operator">_≃_</a> <a id="698" class="Symbol">{</a><a id="699" class="Argument">D</a> <a id="701" class="Symbol">=</a> <a id="703" href="Categories.NaturalTransformation.Equivalence.html#703" class="Bound">D</a><a id="704" class="Symbol">}</a> <a id="706" href="Categories.NaturalTransformation.Equivalence.html#706" class="Bound">X</a> <a id="708" href="Categories.NaturalTransformation.Equivalence.html#708" class="Bound">Y</a> <a id="710" class="Symbol">=</a> <a id="712" class="Symbol">∀</a> <a id="714" class="Symbol">{</a><a id="715" href="Categories.NaturalTransformation.Equivalence.html#715" class="Bound">x</a><a id="716" class="Symbol">}</a> <a id="718" class="Symbol">→</a> <a id="720" href="Categories.NaturalTransformation.Equivalence.html#703" class="Bound">D</a> <a id="722" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="724" href="Categories.NaturalTransformation.Core.html#783" class="Field">NaturalTransformation.η</a> <a id="748" href="Categories.NaturalTransformation.Equivalence.html#706" class="Bound">X</a> <a id="750" href="Categories.NaturalTransformation.Equivalence.html#715" class="Bound">x</a> <a id="752" href="Categories.Category.html#609" class="Function Operator">≈</a> <a id="754" href="Categories.NaturalTransformation.Core.html#783" class="Field">NaturalTransformation.η</a> <a id="778" href="Categories.NaturalTransformation.Equivalence.html#708" class="Bound">Y</a> <a id="780" href="Categories.NaturalTransformation.Equivalence.html#715" class="Bound">x</a> <a id="782" href="Categories.Category.html#609" class="Function Operator">]</a>
|
|||
|
|
|||
|
<a id="≃-isEquivalence"></a><a id="785" href="Categories.NaturalTransformation.Equivalence.html#785" class="Function">≃-isEquivalence</a> <a id="801" class="Symbol">:</a> <a id="803" class="Symbol">∀</a> <a id="805" class="Symbol">{</a><a id="806" href="Categories.NaturalTransformation.Equivalence.html#806" class="Bound">F</a> <a id="808" href="Categories.NaturalTransformation.Equivalence.html#808" class="Bound">G</a> <a id="810" class="Symbol">:</a> <a id="812" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="820" href="Categories.NaturalTransformation.Equivalence.html#409" class="Generalizable">C</a> <a id="822" href="Categories.NaturalTransformation.Equivalence.html#411" class="Generalizable">D</a><a id="823" class="Symbol">}</a> <a id="825" class="Symbol">→</a> <a id="827" href="Relation.Binary.Structures.html#1550" class="Record">IsEquivalence</a> <a id="841" class="Symbol">(</a><a id="842" href="Categories.NaturalTransformation.Equivalence.html#630" class="Function Operator">_≃_</a> <a id="846" class="Symbol">{</a><a id="847" class="Argument">F</a> <a id="849" class="Symbol">=</a> <a id="851" href="Categories.NaturalTransformation.Equivalence.html#806" class="Bound">F</a><a id="852" class="Symbol">}</a> <a id="854" class="Symbol">{</a><a id="855" href="Categories.NaturalTransformation.Equivalence.html#808" class="Bound">G</a><a id="856" class="Symbol">})</a>
|
|||
|
<a id="859" href="Categories.NaturalTransformation.Equivalence.html#785" class="Function">≃-isEquivalence</a> <a id="875" class="Symbol">{</a><a id="876" class="Argument">D</a> <a id="878" class="Symbol">=</a> <a id="880" href="Categories.NaturalTransformation.Equivalence.html#880" class="Bound">D</a><a id="881" class="Symbol">}</a> <a id="883" class="Symbol">{</a><a id="884" href="Categories.NaturalTransformation.Equivalence.html#884" class="Bound">F</a><a id="885" class="Symbol">}</a> <a id="887" class="Symbol">{</a><a id="888" href="Categories.NaturalTransformation.Equivalence.html#888" class="Bound">G</a><a id="889" class="Symbol">}</a> <a id="891" class="Symbol">=</a> <a id="893" class="Keyword">record</a>
|
|||
|
<a id="902" class="Symbol">{</a> <a id="904" href="Relation.Binary.Structures.html#1596" class="Field">refl</a> <a id="910" class="Symbol">=</a> <a id="912" href="Relation.Binary.Structures.html#1596" class="Function">refl</a>
|
|||
|
<a id="919" class="Symbol">;</a> <a id="921" href="Relation.Binary.Structures.html#1622" class="Field">sym</a> <a id="927" class="Symbol">=</a> <a id="929" class="Symbol">λ</a> <a id="931" href="Categories.NaturalTransformation.Equivalence.html#931" class="Bound">f</a> <a id="933" class="Symbol">→</a> <a id="935" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="939" href="Categories.NaturalTransformation.Equivalence.html#931" class="Bound">f</a> <a id="941" class="Comment">-- need to eta-expand to get things to line up properly</a>
|
|||
|
<a id="999" class="Symbol">;</a> <a id="1001" href="Relation.Binary.Structures.html#1648" class="Field">trans</a> <a id="1007" class="Symbol">=</a> <a id="1009" class="Symbol">λ</a> <a id="1011" href="Categories.NaturalTransformation.Equivalence.html#1011" class="Bound">f</a> <a id="1013" href="Categories.NaturalTransformation.Equivalence.html#1013" class="Bound">g</a> <a id="1015" class="Symbol">→</a> <a id="1017" href="Relation.Binary.Structures.html#1648" class="Function">trans</a> <a id="1023" href="Categories.NaturalTransformation.Equivalence.html#1011" class="Bound">f</a> <a id="1025" href="Categories.NaturalTransformation.Equivalence.html#1013" class="Bound">g</a>
|
|||
|
<a id="1029" class="Symbol">}</a>
|
|||
|
<a id="1033" class="Keyword">where</a> <a id="1039" class="Keyword">open</a> <a id="1044" href="Categories.Category.Core.html#1530" class="Module">Category.Equiv</a> <a id="1059" href="Categories.NaturalTransformation.Equivalence.html#880" class="Bound">D</a>
|
|||
|
|
|||
|
<a id="≃-setoid"></a><a id="1062" href="Categories.NaturalTransformation.Equivalence.html#1062" class="Function">≃-setoid</a> <a id="1071" class="Symbol">:</a> <a id="1073" class="Symbol">∀</a> <a id="1075" class="Symbol">(</a><a id="1076" href="Categories.NaturalTransformation.Equivalence.html#1076" class="Bound">F</a> <a id="1078" href="Categories.NaturalTransformation.Equivalence.html#1078" class="Bound">G</a> <a id="1080" class="Symbol">:</a> <a id="1082" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1090" href="Categories.NaturalTransformation.Equivalence.html#409" class="Generalizable">C</a> <a id="1092" href="Categories.NaturalTransformation.Equivalence.html#411" class="Generalizable">D</a><a id="1093" class="Symbol">)</a> <a id="1095" class="Symbol">→</a> <a id="1097" href="Relation.Binary.Bundles.html#1080" class="Record">Setoid</a> <a id="1104" class="Symbol">_</a> <a id="1106" class="Symbol">_</a>
|
|||
|
<a id="1108" href="Categories.NaturalTransformation.Equivalence.html#1062" class="Function">≃-setoid</a> <a id="1117" href="Categories.NaturalTransformation.Equivalence.html#1117" class="Bound">F</a> <a id="1119" href="Categories.NaturalTransformation.Equivalence.html#1119" class="Bound">G</a> <a id="1121" class="Symbol">=</a> <a id="1123" class="Keyword">record</a>
|
|||
|
<a id="1132" class="Symbol">{</a> <a id="1134" href="Relation.Binary.Bundles.html#1143" class="Field">Carrier</a> <a id="1148" class="Symbol">=</a> <a id="1150" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="1172" href="Categories.NaturalTransformation.Equivalence.html#1117" class="Bound">F</a> <a id="1174" href="Categories.NaturalTransformation.Equivalence.html#1119" class="Bound">G</a>
|
|||
|
<a id="1178" class="Symbol">;</a> <a id="1180" href="Relation.Binary.Bundles.html#1169" class="Field Operator">_≈_</a> <a id="1194" class="Symbol">=</a> <a id="1196" href="Categories.NaturalTransformation.Equivalence.html#630" class="Function Operator">_≃_</a>
|
|||
|
<a id="1202" class="Symbol">;</a> <a id="1204" href="Relation.Binary.Bundles.html#1203" class="Field">isEquivalence</a> <a id="1218" class="Symbol">=</a> <a id="1220" href="Categories.NaturalTransformation.Equivalence.html#785" class="Function">≃-isEquivalence</a>
|
|||
|
<a id="1238" class="Symbol">}</a>
|
|||
|
</pre></body></html>
|