bsc-leon-vatthauer/agda/bsc-thesis/Categories.Adjoint.Equivalence.html
2024-02-09 17:53:52 +01:00

70 lines
No EOL
20 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.Adjoint.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="Keyword">module</a> <a id="44" href="Categories.Adjoint.Equivalence.html" class="Module">Categories.Adjoint.Equivalence</a> <a id="75" class="Keyword">where</a>
<a id="82" class="Keyword">open</a> <a id="87" class="Keyword">import</a> <a id="94" href="Level.html" class="Module">Level</a>
<a id="101" class="Keyword">open</a> <a id="106" class="Keyword">import</a> <a id="113" href="Categories.Adjoint.html" class="Module">Categories.Adjoint</a>
<a id="132" class="Keyword">open</a> <a id="137" class="Keyword">import</a> <a id="144" href="Categories.Adjoint.TwoSided.html" class="Module">Categories.Adjoint.TwoSided</a>
<a id="172" class="Keyword">open</a> <a id="177" class="Keyword">import</a> <a id="184" href="Categories.Adjoint.TwoSided.Compose.html" class="Module">Categories.Adjoint.TwoSided.Compose</a>
<a id="220" class="Keyword">open</a> <a id="225" class="Keyword">import</a> <a id="232" href="Categories.Category.Core.html" class="Module">Categories.Category.Core</a> <a id="257" class="Keyword">using</a> <a id="263" class="Symbol">(</a><a id="264" href="Categories.Category.Core.html#442" class="Record">Category</a><a id="272" class="Symbol">)</a>
<a id="274" class="Keyword">open</a> <a id="279" class="Keyword">import</a> <a id="286" href="Categories.Functor.html" class="Module">Categories.Functor</a> <a id="305" class="Keyword">using</a> <a id="311" class="Symbol">(</a><a id="312" href="Categories.Functor.Core.html#248" class="Record">Functor</a><a id="319" class="Symbol">;</a> <a id="321" href="Categories.Functor.html#747" class="Function Operator">_∘F_</a><a id="325" class="Symbol">)</a> <a id="327" class="Keyword">renaming</a> <a id="336" class="Symbol">(</a><a id="337" href="Categories.Functor.html#349" class="Function">id</a> <a id="340" class="Symbol">to</a> <a id="343" class="Function">idF</a><a id="346" class="Symbol">)</a>
<a id="348" class="Keyword">open</a> <a id="353" class="Keyword">import</a> <a id="360" href="Categories.NaturalTransformation.NaturalIsomorphism.html" class="Module">Categories.NaturalTransformation.NaturalIsomorphism</a> <a id="412" class="Symbol">as</a> <a id="415" class="Module"></a> <a id="417" class="Keyword">using</a> <a id="423" class="Symbol">(</a><a id="424" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3600" class="Function Operator">_≃_</a><a id="427" class="Symbol">)</a>
<a id="430" class="Keyword">open</a> <a id="435" class="Keyword">import</a> <a id="442" href="Relation.Binary.html" class="Module">Relation.Binary</a> <a id="458" class="Keyword">using</a> <a id="464" class="Symbol">(</a><a id="465" href="Relation.Binary.Bundles.html#1080" class="Record">Setoid</a><a id="471" class="Symbol">;</a> <a id="473" href="Relation.Binary.Structures.html#1550" class="Record">IsEquivalence</a><a id="486" class="Symbol">)</a>
<a id="489" class="Keyword">private</a>
<a id="499" class="Keyword">variable</a>
<a id="512" href="Categories.Adjoint.Equivalence.html#512" class="Generalizable">o</a> <a id="514" href="Categories.Adjoint.Equivalence.html#514" class="Generalizable"></a> <a id="516" href="Categories.Adjoint.Equivalence.html#516" class="Generalizable">e</a> <a id="518" href="Categories.Adjoint.Equivalence.html#518" class="Generalizable">o</a> <a id="521" href="Categories.Adjoint.Equivalence.html#521" class="Generalizable"></a> <a id="524" href="Categories.Adjoint.Equivalence.html#524" class="Generalizable">e</a> <a id="527" class="Symbol">:</a> <a id="529" href="Agda.Primitive.html#742" class="Postulate">Level</a>
<a id="539" href="Categories.Adjoint.Equivalence.html#539" class="Generalizable">C</a> <a id="541" href="Categories.Adjoint.Equivalence.html#541" class="Generalizable">D</a> <a id="543" href="Categories.Adjoint.Equivalence.html#543" class="Generalizable">E</a> <a id="548" class="Symbol">:</a> <a id="550" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="559" href="Categories.Adjoint.Equivalence.html#512" class="Generalizable">o</a> <a id="561" href="Categories.Adjoint.Equivalence.html#514" class="Generalizable"></a> <a id="563" href="Categories.Adjoint.Equivalence.html#516" class="Generalizable">e</a>
<a id="566" class="Keyword">record</a> <a id="⊣Equivalence"></a><a id="573" href="Categories.Adjoint.Equivalence.html#573" class="Record">⊣Equivalence</a> <a id="586" class="Symbol">(</a><a id="587" href="Categories.Adjoint.Equivalence.html#587" class="Bound">C</a> <a id="589" class="Symbol">:</a> <a id="591" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="600" href="Categories.Adjoint.Equivalence.html#512" class="Generalizable">o</a> <a id="602" href="Categories.Adjoint.Equivalence.html#514" class="Generalizable"></a> <a id="604" href="Categories.Adjoint.Equivalence.html#516" class="Generalizable">e</a><a id="605" class="Symbol">)</a> <a id="607" class="Symbol">(</a><a id="608" href="Categories.Adjoint.Equivalence.html#608" class="Bound">D</a> <a id="610" class="Symbol">:</a> <a id="612" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="621" href="Categories.Adjoint.Equivalence.html#518" class="Generalizable">o</a> <a id="624" href="Categories.Adjoint.Equivalence.html#521" class="Generalizable"></a> <a id="627" href="Categories.Adjoint.Equivalence.html#524" class="Generalizable">e</a><a id="629" class="Symbol">)</a> <a id="631" class="Symbol">:</a> <a id="633" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="637" class="Symbol">(</a><a id="638" href="Categories.Adjoint.Equivalence.html#600" class="Bound">o</a> <a id="640" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="642" href="Categories.Adjoint.Equivalence.html#602" class="Bound"></a> <a id="644" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="646" href="Categories.Adjoint.Equivalence.html#604" class="Bound">e</a> <a id="648" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="650" href="Categories.Adjoint.Equivalence.html#621" class="Bound">o</a> <a id="653" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="655" href="Categories.Adjoint.Equivalence.html#624" class="Bound"></a> <a id="658" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="660" href="Categories.Adjoint.Equivalence.html#627" class="Bound">e</a><a id="662" class="Symbol">)</a> <a id="664" class="Keyword">where</a>
<a id="672" class="Keyword">field</a>
<a id="⊣Equivalence.L"></a><a id="682" href="Categories.Adjoint.Equivalence.html#682" class="Field">L</a> <a id="687" class="Symbol">:</a> <a id="689" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="697" href="Categories.Adjoint.Equivalence.html#587" class="Bound">C</a> <a id="699" href="Categories.Adjoint.Equivalence.html#608" class="Bound">D</a>
<a id="⊣Equivalence.R"></a><a id="705" href="Categories.Adjoint.Equivalence.html#705" class="Field">R</a> <a id="710" class="Symbol">:</a> <a id="712" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="720" href="Categories.Adjoint.Equivalence.html#608" class="Bound">D</a> <a id="722" href="Categories.Adjoint.Equivalence.html#587" class="Bound">C</a>
<a id="⊣Equivalence.L⊣⊢R"></a><a id="728" href="Categories.Adjoint.Equivalence.html#728" class="Field">L⊣⊢R</a> <a id="733" class="Symbol">:</a> <a id="735" href="Categories.Adjoint.Equivalence.html#682" class="Field">L</a> <a id="737" href="Categories.Adjoint.TwoSided.html#863" class="Record Operator">⊣⊢</a> <a id="740" href="Categories.Adjoint.Equivalence.html#705" class="Field">R</a>
<a id="745" class="Keyword">module</a> <a id="⊣Equivalence.L"></a><a id="752" href="Categories.Adjoint.Equivalence.html#752" class="Module">L</a> <a id="757" class="Symbol">=</a> <a id="759" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="767" href="Categories.Adjoint.Equivalence.html#682" class="Field">L</a>
<a id="771" class="Keyword">module</a> <a id="⊣Equivalence.R"></a><a id="778" href="Categories.Adjoint.Equivalence.html#778" class="Module">R</a> <a id="783" class="Symbol">=</a> <a id="785" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="793" href="Categories.Adjoint.Equivalence.html#705" class="Field">R</a>
<a id="798" class="Keyword">open</a> <a id="803" href="Categories.Adjoint.TwoSided.html#863" class="Module Operator">_⊣⊢_</a> <a id="808" href="Categories.Adjoint.Equivalence.html#728" class="Field">L⊣⊢R</a> <a id="813" class="Keyword">public</a>
<a id="refl"></a><a id="821" href="Categories.Adjoint.Equivalence.html#821" class="Function">refl</a> <a id="826" class="Symbol">:</a> <a id="828" href="Categories.Adjoint.Equivalence.html#573" class="Record">⊣Equivalence</a> <a id="841" href="Categories.Adjoint.Equivalence.html#539" class="Generalizable">C</a> <a id="843" href="Categories.Adjoint.Equivalence.html#539" class="Generalizable">C</a>
<a id="845" href="Categories.Adjoint.Equivalence.html#821" class="Function">refl</a> <a id="850" class="Symbol">=</a> <a id="852" class="Keyword">record</a>
<a id="861" class="Symbol">{</a> <a id="863" href="Categories.Adjoint.Equivalence.html#682" class="Field">L</a> <a id="868" class="Symbol">=</a> <a id="870" href="Categories.Adjoint.Equivalence.html#343" class="Function">idF</a>
<a id="876" class="Symbol">;</a> <a id="878" href="Categories.Adjoint.Equivalence.html#705" class="Field">R</a> <a id="883" class="Symbol">=</a> <a id="885" href="Categories.Adjoint.Equivalence.html#343" class="Function">idF</a>
<a id="891" class="Symbol">;</a> <a id="893" href="Categories.Adjoint.Equivalence.html#728" class="Field">L⊣⊢R</a> <a id="898" class="Symbol">=</a> <a id="900" href="Categories.Adjoint.TwoSided.html#6204" class="Function">id⊣⊢id</a>
<a id="909" class="Symbol">}</a>
<a id="sym"></a><a id="912" href="Categories.Adjoint.Equivalence.html#912" class="Function">sym</a> <a id="916" class="Symbol">:</a> <a id="918" href="Categories.Adjoint.Equivalence.html#573" class="Record">⊣Equivalence</a> <a id="931" href="Categories.Adjoint.Equivalence.html#539" class="Generalizable">C</a> <a id="933" href="Categories.Adjoint.Equivalence.html#541" class="Generalizable">D</a> <a id="935" class="Symbol"></a> <a id="937" href="Categories.Adjoint.Equivalence.html#573" class="Record">⊣Equivalence</a> <a id="950" href="Categories.Adjoint.Equivalence.html#541" class="Generalizable">D</a> <a id="952" href="Categories.Adjoint.Equivalence.html#539" class="Generalizable">C</a>
<a id="954" href="Categories.Adjoint.Equivalence.html#912" class="Function">sym</a> <a id="958" href="Categories.Adjoint.Equivalence.html#958" class="Bound">e</a> <a id="960" class="Symbol">=</a> <a id="962" class="Keyword">record</a>
<a id="971" class="Symbol">{</a> <a id="973" href="Categories.Adjoint.Equivalence.html#682" class="Field">L</a> <a id="978" class="Symbol">=</a> <a id="980" href="Categories.Adjoint.Equivalence.html#705" class="Field">R</a>
<a id="984" class="Symbol">;</a> <a id="986" href="Categories.Adjoint.Equivalence.html#705" class="Field">R</a> <a id="991" class="Symbol">=</a> <a id="993" href="Categories.Adjoint.Equivalence.html#682" class="Field">L</a>
<a id="997" class="Symbol">;</a> <a id="999" href="Categories.Adjoint.Equivalence.html#728" class="Field">L⊣⊢R</a> <a id="1004" class="Symbol">=</a> <a id="1006" href="Categories.Adjoint.TwoSided.html#2503" class="Function">op₂</a>
<a id="1012" class="Symbol">}</a>
<a id="1016" class="Keyword">where</a> <a id="1022" class="Keyword">open</a> <a id="1027" href="Categories.Adjoint.Equivalence.html#573" class="Module">⊣Equivalence</a> <a id="1040" href="Categories.Adjoint.Equivalence.html#958" class="Bound">e</a>
<a id="trans"></a><a id="1043" href="Categories.Adjoint.Equivalence.html#1043" class="Function">trans</a> <a id="1049" class="Symbol">:</a> <a id="1051" href="Categories.Adjoint.Equivalence.html#573" class="Record">⊣Equivalence</a> <a id="1064" href="Categories.Adjoint.Equivalence.html#539" class="Generalizable">C</a> <a id="1066" href="Categories.Adjoint.Equivalence.html#541" class="Generalizable">D</a> <a id="1068" class="Symbol"></a> <a id="1070" href="Categories.Adjoint.Equivalence.html#573" class="Record">⊣Equivalence</a> <a id="1083" href="Categories.Adjoint.Equivalence.html#541" class="Generalizable">D</a> <a id="1085" href="Categories.Adjoint.Equivalence.html#543" class="Generalizable">E</a> <a id="1087" class="Symbol"></a> <a id="1089" href="Categories.Adjoint.Equivalence.html#573" class="Record">⊣Equivalence</a> <a id="1102" href="Categories.Adjoint.Equivalence.html#539" class="Generalizable">C</a> <a id="1104" href="Categories.Adjoint.Equivalence.html#543" class="Generalizable">E</a>
<a id="1106" href="Categories.Adjoint.Equivalence.html#1043" class="Function">trans</a> <a id="1112" href="Categories.Adjoint.Equivalence.html#1112" class="Bound">e</a> <a id="1114" href="Categories.Adjoint.Equivalence.html#1114" class="Bound">e</a> <a id="1117" class="Symbol">=</a> <a id="1119" class="Keyword">record</a>
<a id="1128" class="Symbol">{</a> <a id="1130" href="Categories.Adjoint.Equivalence.html#682" class="Field">L</a> <a id="1135" class="Symbol">=</a> <a id="1137" href="Categories.Adjoint.Equivalence.html#682" class="Field">e.L</a> <a id="1142" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="1145" href="Categories.Adjoint.Equivalence.html#682" class="Function">e.L</a>
<a id="1151" class="Symbol">;</a> <a id="1153" href="Categories.Adjoint.Equivalence.html#705" class="Field">R</a> <a id="1158" class="Symbol">=</a> <a id="1160" href="Categories.Adjoint.Equivalence.html#705" class="Function">e.R</a> <a id="1164" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="1167" href="Categories.Adjoint.Equivalence.html#705" class="Field">e.R</a>
<a id="1174" class="Symbol">;</a> <a id="1176" href="Categories.Adjoint.Equivalence.html#728" class="Field">L⊣⊢R</a> <a id="1181" class="Symbol">=</a> <a id="1183" href="Categories.Adjoint.Equivalence.html#728" class="Function">e.L⊣⊢R</a> <a id="1190" href="Categories.Adjoint.TwoSided.Compose.html#722" class="Function Operator">∘⊣⊢</a> <a id="1194" href="Categories.Adjoint.Equivalence.html#728" class="Field">e.L⊣⊢R</a>
<a id="1204" class="Symbol">}</a>
<a id="1208" class="Keyword">where</a> <a id="1214" class="Keyword">module</a> <a id="1221" href="Categories.Adjoint.Equivalence.html#1221" class="Module">e</a> <a id="1224" class="Symbol">=</a> <a id="1226" href="Categories.Adjoint.Equivalence.html#573" class="Module">⊣Equivalence</a> <a id="1239" href="Categories.Adjoint.Equivalence.html#1112" class="Bound">e</a> <a id="1241" class="Keyword">using</a> <a id="1247" class="Symbol">(</a><a id="1248" href="Categories.Adjoint.Equivalence.html#682" class="Field">L</a><a id="1249" class="Symbol">;</a> <a id="1251" href="Categories.Adjoint.Equivalence.html#705" class="Field">R</a><a id="1252" class="Symbol">;</a> <a id="1254" href="Categories.Adjoint.Equivalence.html#728" class="Field">L⊣⊢R</a><a id="1258" class="Symbol">)</a>
<a id="1268" class="Keyword">module</a> <a id="1275" href="Categories.Adjoint.Equivalence.html#1275" class="Module">e</a> <a id="1278" class="Symbol">=</a> <a id="1280" href="Categories.Adjoint.Equivalence.html#573" class="Module">⊣Equivalence</a> <a id="1293" href="Categories.Adjoint.Equivalence.html#1114" class="Bound">e</a> <a id="1296" class="Keyword">using</a> <a id="1302" class="Symbol">(</a><a id="1303" href="Categories.Adjoint.Equivalence.html#682" class="Field">L</a><a id="1304" class="Symbol">;</a> <a id="1306" href="Categories.Adjoint.Equivalence.html#705" class="Field">R</a><a id="1307" class="Symbol">;</a> <a id="1309" href="Categories.Adjoint.Equivalence.html#728" class="Field">L⊣⊢R</a><a id="1313" class="Symbol">)</a>
<a id="isEquivalence"></a><a id="1316" href="Categories.Adjoint.Equivalence.html#1316" class="Function">isEquivalence</a> <a id="1330" class="Symbol">:</a> <a id="1332" class="Symbol"></a> <a id="1334" class="Symbol">{</a><a id="1335" href="Categories.Adjoint.Equivalence.html#1335" class="Bound">o</a> <a id="1337" href="Categories.Adjoint.Equivalence.html#1337" class="Bound"></a> <a id="1339" href="Categories.Adjoint.Equivalence.html#1339" class="Bound">e</a><a id="1340" class="Symbol">}</a> <a id="1342" class="Symbol"></a> <a id="1344" href="Relation.Binary.Structures.html#1550" class="Record">IsEquivalence</a> <a id="1358" class="Symbol">(</a><a id="1359" href="Categories.Adjoint.Equivalence.html#573" class="Record">⊣Equivalence</a> <a id="1372" class="Symbol">{</a><a id="1373" href="Categories.Adjoint.Equivalence.html#1335" class="Bound">o</a><a id="1374" class="Symbol">}</a> <a id="1376" class="Symbol">{</a><a id="1377" href="Categories.Adjoint.Equivalence.html#1337" class="Bound"></a><a id="1378" class="Symbol">}</a> <a id="1380" class="Symbol">{</a><a id="1381" href="Categories.Adjoint.Equivalence.html#1339" class="Bound">e</a><a id="1382" class="Symbol">})</a>
<a id="1385" href="Categories.Adjoint.Equivalence.html#1316" class="Function">isEquivalence</a> <a id="1399" class="Symbol">=</a> <a id="1401" class="Keyword">record</a>
<a id="1410" class="Symbol">{</a> <a id="1412" href="Relation.Binary.Structures.html#1596" class="Field">refl</a> <a id="1418" class="Symbol">=</a> <a id="1420" href="Categories.Adjoint.Equivalence.html#821" class="Function">refl</a>
<a id="1427" class="Symbol">;</a> <a id="1429" href="Relation.Binary.Structures.html#1622" class="Field">sym</a> <a id="1435" class="Symbol">=</a> <a id="1437" href="Categories.Adjoint.Equivalence.html#912" class="Function">sym</a>
<a id="1443" class="Symbol">;</a> <a id="1445" href="Relation.Binary.Structures.html#1648" class="Field">trans</a> <a id="1451" class="Symbol">=</a> <a id="1453" href="Categories.Adjoint.Equivalence.html#1043" class="Function">trans</a>
<a id="1461" class="Symbol">}</a>
<a id="setoid"></a><a id="1464" href="Categories.Adjoint.Equivalence.html#1464" class="Function">setoid</a> <a id="1471" class="Symbol">:</a> <a id="1473" class="Symbol"></a> <a id="1475" href="Categories.Adjoint.Equivalence.html#1475" class="Bound">o</a> <a id="1477" href="Categories.Adjoint.Equivalence.html#1477" class="Bound"></a> <a id="1479" href="Categories.Adjoint.Equivalence.html#1479" class="Bound">e</a> <a id="1481" class="Symbol"></a> <a id="1483" href="Relation.Binary.Bundles.html#1080" class="Record">Setoid</a> <a id="1490" class="Symbol">_</a> <a id="1492" class="Symbol">_</a>
<a id="1494" href="Categories.Adjoint.Equivalence.html#1464" class="Function">setoid</a> <a id="1501" href="Categories.Adjoint.Equivalence.html#1501" class="Bound">o</a> <a id="1503" href="Categories.Adjoint.Equivalence.html#1503" class="Bound"></a> <a id="1505" href="Categories.Adjoint.Equivalence.html#1505" class="Bound">e</a> <a id="1507" class="Symbol">=</a> <a id="1509" class="Keyword">record</a>
<a id="1518" class="Symbol">{</a> <a id="1520" href="Relation.Binary.Bundles.html#1143" class="Field">Carrier</a> <a id="1534" class="Symbol">=</a> <a id="1536" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="1545" href="Categories.Adjoint.Equivalence.html#1501" class="Bound">o</a> <a id="1547" href="Categories.Adjoint.Equivalence.html#1503" class="Bound"></a> <a id="1549" href="Categories.Adjoint.Equivalence.html#1505" class="Bound">e</a>
<a id="1553" class="Symbol">;</a> <a id="1555" href="Relation.Binary.Bundles.html#1169" class="Field Operator">_≈_</a> <a id="1569" class="Symbol">=</a> <a id="1571" href="Categories.Adjoint.Equivalence.html#573" class="Record">⊣Equivalence</a>
<a id="1586" class="Symbol">;</a> <a id="1588" href="Relation.Binary.Bundles.html#1203" class="Field">isEquivalence</a> <a id="1602" class="Symbol">=</a> <a id="1604" href="Categories.Adjoint.Equivalence.html#1316" class="Function">isEquivalence</a>
<a id="1620" class="Symbol">}</a>
</pre></body></html>