bsc-leon-vatthauer/public/Categories.Functor.Construction.LiftSetoids.html

45 lines
16 KiB
HTML
Raw Normal View History

2023-08-19 16:11:22 +02:00
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Categories.Functor.Construction.LiftSetoids</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.Functor.Construction.LiftSetoids.html" class="Module">Categories.Functor.Construction.LiftSetoids</a> <a id="88" class="Keyword">where</a>
<a id="95" class="Keyword">open</a> <a id="100" class="Keyword">import</a> <a id="107" href="Level.html" class="Module">Level</a>
<a id="113" class="Keyword">open</a> <a id="118" class="Keyword">import</a> <a id="125" href="Relation.Binary.html" class="Module">Relation.Binary</a>
<a id="141" class="Keyword">open</a> <a id="146" class="Keyword">import</a> <a id="153" href="Function.Equality.html" class="Module">Function.Equality</a>
<a id="171" class="Keyword">open</a> <a id="176" class="Keyword">import</a> <a id="183" href="Function.html" class="Module">Function</a> <a id="192" class="Keyword">using</a> <a id="198" class="Symbol">(</a><a id="199" href="Function.Base.html#1928" class="Function Operator">_$_</a><a id="202" class="Symbol">)</a> <a id="204" class="Keyword">renaming</a> <a id="213" class="Symbol">(</a><a id="214" href="Function.Base.html#624" class="Function">id</a> <a id="217" class="Symbol">to</a> <a id="220" class="Function">idf</a><a id="223" class="Symbol">)</a>
<a id="226" class="Keyword">open</a> <a id="231" class="Keyword">import</a> <a id="238" href="Categories.Category.html" class="Module">Categories.Category</a>
<a id="258" class="Keyword">open</a> <a id="263" class="Keyword">import</a> <a id="270" href="Categories.Category.Instance.Setoids.html" class="Module">Categories.Category.Instance.Setoids</a>
<a id="307" class="Keyword">open</a> <a id="312" class="Keyword">import</a> <a id="319" href="Categories.Functor.html" class="Module">Categories.Functor</a>
<a id="339" class="Keyword">private</a>
<a id="349" class="Keyword">variable</a>
<a id="362" href="Categories.Functor.Construction.LiftSetoids.html#362" class="Generalizable">c</a> <a id="364" href="Categories.Functor.Construction.LiftSetoids.html#364" class="Generalizable"></a> <a id="366" class="Symbol">:</a> <a id="368" href="Agda.Primitive.html#591" class="Postulate">Level</a>
<a id="375" class="Comment">-- Use pattern-matching (instead of explicit calls to lower) to minimize the</a>
<a id="452" class="Comment">-- number of needed parens, and also make it syntactically apparent that</a>
<a id="525" class="Comment">-- this is indeed just a Lift.</a>
<a id="LiftedSetoid"></a><a id="556" href="Categories.Functor.Construction.LiftSetoids.html#556" class="Function">LiftedSetoid</a> <a id="569" class="Symbol">:</a> <a id="571" class="Symbol"></a> <a id="573" href="Categories.Functor.Construction.LiftSetoids.html#573" class="Bound">c</a> <a id="576" href="Categories.Functor.Construction.LiftSetoids.html#576" class="Bound"></a> <a id="579" class="Symbol"></a> <a id="581" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a> <a id="588" href="Categories.Functor.Construction.LiftSetoids.html#362" class="Generalizable">c</a> <a id="590" href="Categories.Functor.Construction.LiftSetoids.html#364" class="Generalizable"></a> <a id="592" class="Symbol"></a> <a id="594" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a> <a id="601" class="Symbol">(</a><a id="602" href="Categories.Functor.Construction.LiftSetoids.html#362" class="Generalizable">c</a> <a id="604" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="606" href="Categories.Functor.Construction.LiftSetoids.html#573" class="Bound">c</a><a id="608" class="Symbol">)</a> <a id="610" class="Symbol">(</a><a id="611" href="Categories.Functor.Construction.LiftSetoids.html#364" class="Generalizable"></a> <a id="613" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="615" href="Categories.Functor.Construction.LiftSetoids.html#576" class="Bound"></a><a id="617" class="Symbol">)</a>
<a id="619" href="Categories.Functor.Construction.LiftSetoids.html#556" class="Function">LiftedSetoid</a> <a id="632" href="Categories.Functor.Construction.LiftSetoids.html#632" class="Bound">c</a> <a id="635" href="Categories.Functor.Construction.LiftSetoids.html#635" class="Bound"></a> <a id="638" href="Categories.Functor.Construction.LiftSetoids.html#638" class="Bound">S</a> <a id="640" class="Symbol">=</a> <a id="642" class="Keyword">record</a>
<a id="651" class="Symbol">{</a> <a id="653" href="Relation.Binary.Bundles.html#1081" class="Field">Carrier</a> <a id="667" class="Symbol">=</a> <a id="669" href="Level.html#409" class="Record">Lift</a> <a id="674" href="Categories.Functor.Construction.LiftSetoids.html#632" class="Bound">c</a> <a id="677" href="Relation.Binary.Bundles.html#1081" class="Field">Carrier</a>
<a id="687" class="Symbol">;</a> <a id="689" href="Relation.Binary.Bundles.html#1107" class="Field Operator">_≈_</a> <a id="703" class="Symbol">=</a> <a id="705" class="Symbol">λ</a> <a id="707" class="Keyword">where</a> <a id="713" class="Symbol">(</a><a id="714" href="Level.html#466" class="InductiveConstructor">lift</a> <a id="719" href="Categories.Functor.Construction.LiftSetoids.html#719" class="Bound">x</a><a id="720" class="Symbol">)</a> <a id="722" class="Symbol">(</a><a id="723" href="Level.html#466" class="InductiveConstructor">lift</a> <a id="728" href="Categories.Functor.Construction.LiftSetoids.html#728" class="Bound">y</a><a id="729" class="Symbol">)</a> <a id="731" class="Symbol"></a> <a id="733" href="Level.html#409" class="Record">Lift</a> <a id="738" href="Categories.Functor.Construction.LiftSetoids.html#635" class="Bound"></a> <a id="741" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="743" href="Categories.Functor.Construction.LiftSetoids.html#719" class="Bound">x</a> <a id="745" href="Relation.Binary.Bundles.html#1107" class="Field Operator"></a> <a id="747" href="Categories.Functor.Construction.LiftSetoids.html#728" class="Bound">y</a>
<a id="751" class="Symbol">;</a> <a id="753" href="Relation.Binary.Bundles.html#1141" class="Field">isEquivalence</a> <a id="767" class="Symbol">=</a> <a id="769" class="Keyword">record</a>
<a id="780" class="Symbol">{</a> <a id="782" href="Relation.Binary.Structures.html#1577" class="Field">refl</a> <a id="788" class="Symbol">=</a> <a id="790" href="Level.html#466" class="InductiveConstructor">lift</a> <a id="795" href="Relation.Binary.Structures.html#1577" class="Function">refl</a>
<a id="804" class="Symbol">;</a> <a id="806" href="Relation.Binary.Structures.html#1603" class="Field">sym</a> <a id="812" class="Symbol">=</a> <a id="814" class="Symbol">λ</a> <a id="816" class="Keyword">where</a> <a id="822" class="Symbol">(</a><a id="823" href="Level.html#466" class="InductiveConstructor">lift</a> <a id="828" href="Categories.Functor.Construction.LiftSetoids.html#828" class="Bound">eq</a><a id="830" class="Symbol">)</a> <a id="843" class="Symbol"></a> <a id="845" href="Level.html#466" class="InductiveConstructor">lift</a> <a id="850" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="852" href="Relation.Binary.Structures.html#1603" class="Function">sym</a> <a id="856" href="Categories.Functor.Construction.LiftSetoids.html#828" class="Bound">eq</a>
<a id="863" class="Symbol">;</a> <a id="865" href="Relation.Binary.Structures.html#1629" class="Field">trans</a> <a id="871" class="Symbol">=</a> <a id="873" class="Symbol">λ</a> <a id="875" class="Keyword">where</a> <a id="881" class="Symbol">(</a><a id="882" href="Level.html#466" class="InductiveConstructor">lift</a> <a id="887" href="Categories.Functor.Construction.LiftSetoids.html#887" class="Bound">eq</a><a id="889" class="Symbol">)</a> <a id="891" class="Symbol">(</a><a id="892" href="Level.html#466" class="InductiveConstructor">lift</a> <a id="897" href="Categories.Functor.Construction.LiftSetoids.html#897" class="Bound">eq</a><a id="900" class="Symbol">)</a> <a id="902" class="Symbol"></a> <a id="904" href="Level.html#466" class="InductiveConstructor">lift</a> <a id="909" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="911" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="917" href="Categories.Functor.Construction.LiftSetoids.html#887" class="Bound">eq</a> <a id="920" href="Categories.Functor.Construction.LiftSetoids.html#897" class="Bound">eq</a>
<a id="928" class="Symbol">}</a>
<a id="932" class="Symbol">}</a>
<a id="936" class="Keyword">where</a> <a id="942" class="Keyword">open</a> <a id="947" href="Relation.Binary.Bundles.html#1018" class="Module">Setoid</a> <a id="954" href="Categories.Functor.Construction.LiftSetoids.html#638" class="Bound">S</a>
<a id="LiftSetoids"></a><a id="957" href="Categories.Functor.Construction.LiftSetoids.html#957" class="Function">LiftSetoids</a> <a id="969" class="Symbol">:</a> <a id="971" class="Symbol"></a> <a id="973" href="Categories.Functor.Construction.LiftSetoids.html#973" class="Bound">c</a> <a id="976" href="Categories.Functor.Construction.LiftSetoids.html#976" class="Bound"></a> <a id="979" class="Symbol"></a> <a id="981" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="989" class="Symbol">(</a><a id="990" href="Categories.Category.Instance.Setoids.html#316" class="Function">Setoids</a> <a id="998" href="Categories.Functor.Construction.LiftSetoids.html#362" class="Generalizable">c</a> <a id="1000" href="Categories.Functor.Construction.LiftSetoids.html#364" class="Generalizable"></a><a id="1001" class="Symbol">)</a> <a id="1003" class="Symbol">(</a><a id="1004" href="Categories.Category.Instance.Setoids.html#316" class="Function">Setoids</a> <a id="1012" class="Symbol">(</a><a id="1013" href="Categories.Functor.Construction.LiftSetoids.html#362" class="Generalizable">c</a> <a id="1015" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="1017" href="Categories.Functor.Construction.LiftSetoids.html#973" class="Bound">c</a><a id="1019" class="Symbol">)</a> <a id="1021" class="Symbol">(</a><a id="1022" href="Categories.Functor.Construction.LiftSetoids.html#364" class="Generalizable"></a> <a id="1024" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="1026" href="Categories.Functor.Construction.LiftSetoids.html#976" class="Bound"></a><a id="1028" class="Symbol">))</a>
<a id="1031" href="Categories.Functor.Construction.LiftSetoids.html#957" class="Function">LiftSetoids</a> <a id="1043" href="Categories.Functor.Construction.LiftSetoids.html#1043" class="Bound">c</a> <a id="1046" href="Categories.Functor.Construction.LiftSetoids.html#1046" class="Bound"></a> <a id="1049" class="Symbol">=</a> <a id="1051" class="Keyword">record</a>
<a id="1060" class="Symbol">{</a> <a id="1062" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="1075" class="Symbol">=</a> <a id="1077" href="Categories.Functor.Construction.LiftSetoids.html#556" class="Function">LiftedSetoid</a> <a id="1090" href="Categories.Functor.Construction.LiftSetoids.html#1043" class="Bound">c</a> <a id="1093" href="Categories.Functor.Construction.LiftSetoids.html#1046" class="Bound"></a>
<a id="1098" class="Symbol">;</a> <a id="1100" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="1113" class="Symbol">=</a> <a id="1115" class="Symbol">λ</a> <a id="1117" href="Categories.Functor.Construction.LiftSetoids.html#1117" class="Bound">f</a> <a id="1119" class="Symbol"></a> <a id="1121" class="Keyword">record</a>
<a id="1132" class="Symbol">{</a> <a id="1134" href="Function.Equality.html#1073" class="Field Operator">_⟨$⟩_</a> <a id="1141" class="Symbol">=</a> <a id="1143" class="Symbol">λ</a> <a id="1145" class="Keyword">where</a> <a id="1151" class="Symbol">(</a><a id="1152" href="Level.html#466" class="InductiveConstructor">lift</a> <a id="1157" href="Categories.Functor.Construction.LiftSetoids.html#1157" class="Bound">x</a><a id="1158" class="Symbol">)</a> <a id="1161" class="Symbol"></a> <a id="1163" href="Level.html#466" class="InductiveConstructor">lift</a> <a id="1168" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="1170" href="Categories.Functor.Construction.LiftSetoids.html#1117" class="Bound">f</a> <a id="1172" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="1176" href="Categories.Functor.Construction.LiftSetoids.html#1157" class="Bound">x</a>
<a id="1182" class="Symbol">;</a> <a id="1184" href="Function.Equality.html#1140" class="Field">cong</a> <a id="1190" class="Symbol">=</a> <a id="1192" class="Symbol">λ</a> <a id="1194" class="Keyword">where</a> <a id="1200" class="Symbol">(</a><a id="1201" href="Level.html#466" class="InductiveConstructor">lift</a> <a id="1206" href="Categories.Functor.Construction.LiftSetoids.html#1206" class="Bound">eq</a><a id="1208" class="Symbol">)</a> <a id="1210" class="Symbol"></a> <a id="1212" href="Level.html#466" class="InductiveConstructor">lift</a> <a id="1217" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="1219" href="Function.Equality.html#1140" class="Field">cong</a> <a id="1224" href="Categories.Functor.Construction.LiftSetoids.html#1117" class="Bound">f</a> <a id="1226" href="Categories.Functor.Construction.LiftSetoids.html#1206" class="Bound">eq</a>
<a id="1233" class="Symbol">}</a>
<a id="1237" class="Symbol">;</a> <a id="1239" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="1252" class="Symbol">=</a> <a id="1254" href="Categories.Functor.Construction.LiftSetoids.html#220" class="Function">idf</a>
<a id="1260" class="Symbol">;</a> <a id="1262" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="1275" class="Symbol">=</a> <a id="1277" class="Symbol">λ</a> <a id="1279" class="Keyword">where</a> <a id="1285" class="Symbol">{</a><a id="1286" class="Argument">f</a> <a id="1288" class="Symbol">=</a> <a id="1290" href="Categories.Functor.Construction.LiftSetoids.html#1290" class="Bound">f</a><a id="1291" class="Symbol">}</a> <a id="1293" class="Symbol">{</a><a id="1294" class="Argument">g</a> <a id="1296" class="Symbol">=</a> <a id="1298" href="Categories.Functor.Construction.LiftSetoids.html#1298" class="Bound">g</a><a id="1299" class="Symbol">}</a> <a id="1301" class="Symbol">(</a><a id="1302" href="Level.html#466" class="InductiveConstructor">lift</a> <a id="1307" href="Categories.Functor.Construction.LiftSetoids.html#1307" class="Bound">eq</a><a id="1309" class="Symbol">)</a> <a id="1311" class="Symbol"></a> <a id="1313" href="Level.html#466" class="InductiveConstructor">lift</a> <a id="1318" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="1320" href="Function.Equality.html#1140" class="Field">cong</a> <a id="1325" href="Categories.Functor.Construction.LiftSetoids.html#1298" class="Bound">g</a> <a id="1327" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="1329" href="Function.Equality.html#1140" class="Field">cong</a> <a id="1334" href="Categories.Functor.Construction.LiftSetoids.html#1290" class="Bound">f</a> <a id="1336" href="Categories.Functor.Construction.LiftSetoids.html#1307" class="Bound">eq</a>
<a id="1341" class="Symbol">;</a> <a id="1343" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="1356" class="Symbol">=</a> <a id="1358" class="Symbol">λ</a> <a id="1360" class="Keyword">where</a> <a id="1366" href="Categories.Functor.Construction.LiftSetoids.html#1366" class="Bound">fx≈gy</a> <a id="1372" class="Symbol">(</a><a id="1373" href="Level.html#466" class="InductiveConstructor">lift</a> <a id="1378" href="Categories.Functor.Construction.LiftSetoids.html#1378" class="Bound">x≈y</a><a id="1381" class="Symbol">)</a> <a id="1392" class="Symbol"></a> <a id="1394" href="Level.html#466" class="InductiveConstructor">lift</a> <a id="1399" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="1401" href="Categories.Functor.Construction.LiftSetoids.html#1366" class="Bound">fx≈gy</a> <a id="1407" href="Categories.Functor.Construction.LiftSetoids.html#1378" class="Bound">x≈y</a>
<a id="1413" class="Symbol">}</a>
</pre></body></html>