bsc-leon-vatthauer/public/Categories.Category.Slice.html

64 lines
No EOL
18 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.Category.Slice</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">open</a> <a id="41" class="Keyword">import</a> <a id="48" href="Categories.Category.Core.html" class="Module">Categories.Category.Core</a>
<a id="74" class="Comment">-- slice category (https://ncatlab.org/nlab/show/over+category)</a>
<a id="138" class="Comment">-- TODO: Forgetful Functor from Slice to 𝒞</a>
<a id="181" class="Keyword">module</a> <a id="188" href="Categories.Category.Slice.html" class="Module">Categories.Category.Slice</a> <a id="214" class="Symbol">{</a><a id="215" href="Categories.Category.Slice.html#215" class="Bound">o</a> <a id="217" href="Categories.Category.Slice.html#217" class="Bound"></a> <a id="219" href="Categories.Category.Slice.html#219" class="Bound">e</a><a id="220" class="Symbol">}</a> <a id="222" class="Symbol">(</a><a id="223" href="Categories.Category.Slice.html#223" class="Bound">𝒞</a> <a id="225" class="Symbol">:</a> <a id="227" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="236" href="Categories.Category.Slice.html#215" class="Bound">o</a> <a id="238" href="Categories.Category.Slice.html#217" class="Bound"></a> <a id="240" href="Categories.Category.Slice.html#219" class="Bound">e</a><a id="241" class="Symbol">)</a> <a id="243" class="Keyword">where</a>
<a id="250" class="Keyword">open</a> <a id="255" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="264" href="Categories.Category.Slice.html#223" class="Bound">𝒞</a>
<a id="266" class="Keyword">open</a> <a id="271" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
<a id="284" class="Keyword">open</a> <a id="289" href="Categories.Category.Core.html#1530" class="Module">Equiv</a>
<a id="296" class="Keyword">open</a> <a id="301" class="Keyword">import</a> <a id="308" href="Level.html" class="Module">Level</a>
<a id="314" class="Keyword">open</a> <a id="319" class="Keyword">import</a> <a id="326" href="Function.Base.html" class="Module">Function.Base</a> <a id="340" class="Keyword">using</a> <a id="346" class="Symbol">(</a><a id="347" href="Function.Base.html#1928" class="Function Operator">_$_</a><a id="350" class="Symbol">)</a>
<a id="352" class="Keyword">open</a> <a id="357" class="Keyword">import</a> <a id="364" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a> <a id="385" class="Keyword">using</a> <a id="391" class="Symbol">(</a><a id="392" href="Relation.Binary.Core.html#891" class="Function">Rel</a><a id="395" class="Symbol">)</a>
<a id="398" class="Keyword">open</a> <a id="403" class="Keyword">import</a> <a id="410" href="Categories.Morphism.Reasoning.html" class="Module">Categories.Morphism.Reasoning</a> <a id="440" href="Categories.Category.Slice.html#223" class="Bound">𝒞</a>
<a id="443" class="Keyword">record</a> <a id="SliceObj"></a><a id="450" href="Categories.Category.Slice.html#450" class="Record">SliceObj</a> <a id="459" class="Symbol">(</a><a id="460" href="Categories.Category.Slice.html#460" class="Bound">X</a> <a id="462" class="Symbol">:</a> <a id="464" href="Categories.Category.Core.html#559" class="Field">Obj</a><a id="467" class="Symbol">)</a> <a id="469" class="Symbol">:</a> <a id="471" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="475" class="Symbol">(</a><a id="476" href="Categories.Category.Slice.html#215" class="Bound">o</a> <a id="478" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="480" href="Categories.Category.Slice.html#217" class="Bound"></a><a id="481" class="Symbol">)</a> <a id="483" class="Keyword">where</a>
<a id="491" class="Keyword">constructor</a> <a id="sliceobj"></a><a id="503" href="Categories.Category.Slice.html#503" class="InductiveConstructor">sliceobj</a>
<a id="514" class="Keyword">field</a>
<a id="524" class="Symbol">{</a><a id="SliceObj.Y"></a><a id="525" href="Categories.Category.Slice.html#525" class="Field">Y</a><a id="526" class="Symbol">}</a> <a id="528" class="Symbol">:</a> <a id="530" href="Categories.Category.Core.html#559" class="Field">Obj</a>
<a id="SliceObj.arr"></a><a id="538" href="Categories.Category.Slice.html#538" class="Field">arr</a> <a id="542" class="Symbol">:</a> <a id="544" href="Categories.Category.Slice.html#525" class="Field">Y</a> <a id="546" href="Categories.Category.Core.html#575" class="Field Operator"></a> <a id="548" href="Categories.Category.Slice.html#460" class="Bound">X</a>
<a id="551" class="Keyword">private</a>
<a id="561" class="Keyword">variable</a>
<a id="574" href="Categories.Category.Slice.html#574" class="Generalizable">A</a> <a id="576" class="Symbol">:</a> <a id="578" href="Categories.Category.Core.html#559" class="Field">Obj</a>
<a id="586" href="Categories.Category.Slice.html#586" class="Generalizable">X</a> <a id="588" href="Categories.Category.Slice.html#588" class="Generalizable">Y</a> <a id="590" href="Categories.Category.Slice.html#590" class="Generalizable">Z</a> <a id="592" class="Symbol">:</a> <a id="594" href="Categories.Category.Slice.html#450" class="Record">SliceObj</a> <a id="603" href="Categories.Category.Slice.html#574" class="Generalizable">A</a>
<a id="606" class="Keyword">record</a> <a id="Slice⇒"></a><a id="613" href="Categories.Category.Slice.html#613" class="Record">Slice⇒</a> <a id="620" class="Symbol">{</a><a id="621" href="Categories.Category.Slice.html#621" class="Bound">A</a> <a id="623" class="Symbol">:</a> <a id="625" href="Categories.Category.Core.html#559" class="Field">Obj</a><a id="628" class="Symbol">}</a> <a id="630" class="Symbol">(</a><a id="631" href="Categories.Category.Slice.html#631" class="Bound">X</a> <a id="633" href="Categories.Category.Slice.html#633" class="Bound">Y</a> <a id="635" class="Symbol">:</a> <a id="637" href="Categories.Category.Slice.html#450" class="Record">SliceObj</a> <a id="646" href="Categories.Category.Slice.html#621" class="Bound">A</a><a id="647" class="Symbol">)</a> <a id="649" class="Symbol">:</a> <a id="651" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="655" class="Symbol">(</a><a id="656" href="Categories.Category.Slice.html#217" class="Bound"></a> <a id="658" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="660" href="Categories.Category.Slice.html#219" class="Bound">e</a><a id="661" class="Symbol">)</a> <a id="663" class="Keyword">where</a>
<a id="671" class="Keyword">constructor</a> <a id="slicearr"></a><a id="683" href="Categories.Category.Slice.html#683" class="InductiveConstructor">slicearr</a>
<a id="694" class="Keyword">private</a>
<a id="706" class="Keyword">module</a> <a id="Slice⇒.X"></a><a id="713" href="Categories.Category.Slice.html#713" class="Module">X</a> <a id="715" class="Symbol">=</a> <a id="717" href="Categories.Category.Slice.html#450" class="Module">SliceObj</a> <a id="726" href="Categories.Category.Slice.html#631" class="Bound">X</a>
<a id="732" class="Keyword">module</a> <a id="Slice⇒.Y"></a><a id="739" href="Categories.Category.Slice.html#739" class="Module">Y</a> <a id="741" class="Symbol">=</a> <a id="743" href="Categories.Category.Slice.html#450" class="Module">SliceObj</a> <a id="752" href="Categories.Category.Slice.html#633" class="Bound">Y</a>
<a id="756" class="Keyword">field</a>
<a id="766" class="Symbol">{</a><a id="Slice⇒.h"></a><a id="767" href="Categories.Category.Slice.html#767" class="Field">h</a><a id="768" class="Symbol">}</a> <a id="770" class="Symbol">:</a> <a id="772" href="Categories.Category.Slice.html#525" class="Function">X.Y</a> <a id="776" href="Categories.Category.Core.html#575" class="Field Operator"></a> <a id="778" href="Categories.Category.Slice.html#525" class="Function">Y.Y</a>
<a id="Slice⇒.△"></a><a id="786" href="Categories.Category.Slice.html#786" class="Field"></a> <a id="790" class="Symbol">:</a> <a id="792" href="Categories.Category.Slice.html#538" class="Function">Y.arr</a> <a id="798" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="800" href="Categories.Category.Slice.html#767" class="Field">h</a> <a id="802" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="804" href="Categories.Category.Slice.html#538" class="Function">X.arr</a>
<a id="Slice"></a><a id="811" href="Categories.Category.Slice.html#811" class="Function">Slice</a> <a id="817" class="Symbol">:</a> <a id="819" href="Categories.Category.Core.html#559" class="Field">Obj</a> <a id="823" class="Symbol"></a> <a id="825" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="834" class="Symbol">_</a> <a id="836" class="Symbol">_</a> <a id="838" class="Symbol">_</a>
<a id="840" href="Categories.Category.Slice.html#811" class="Function">Slice</a> <a id="846" href="Categories.Category.Slice.html#846" class="Bound">A</a> <a id="854" class="Symbol">=</a> <a id="856" class="Keyword">record</a>
<a id="865" class="Symbol">{</a> <a id="867" href="Categories.Category.Core.html#559" class="Field">Obj</a> <a id="877" class="Symbol">=</a> <a id="879" href="Categories.Category.Slice.html#450" class="Record">SliceObj</a> <a id="888" href="Categories.Category.Slice.html#846" class="Bound">A</a>
<a id="892" class="Symbol">;</a> <a id="894" href="Categories.Category.Core.html#575" class="Field Operator">_⇒_</a> <a id="904" class="Symbol">=</a> <a id="906" href="Categories.Category.Slice.html#613" class="Record">Slice⇒</a>
<a id="915" class="Symbol">;</a> <a id="917" href="Categories.Category.Core.html#595" class="Field Operator">_≈_</a> <a id="927" class="Symbol">=</a> <a id="929" class="Symbol">λ</a> <a id="931" class="Keyword">where</a>
<a id="941" class="Symbol">(</a><a id="942" href="Categories.Category.Slice.html#683" class="InductiveConstructor">slicearr</a> <a id="951" class="Symbol">{</a><a id="952" href="Categories.Category.Slice.html#952" class="Bound">f</a><a id="953" class="Symbol">}</a> <a id="955" class="Symbol">_)</a> <a id="958" class="Symbol">(</a><a id="959" href="Categories.Category.Slice.html#683" class="InductiveConstructor">slicearr</a> <a id="968" class="Symbol">{</a><a id="969" href="Categories.Category.Slice.html#969" class="Bound">g</a><a id="970" class="Symbol">}</a> <a id="972" class="Symbol">_)</a> <a id="975" class="Symbol"></a> <a id="977" href="Categories.Category.Slice.html#952" class="Bound">f</a> <a id="979" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="981" href="Categories.Category.Slice.html#969" class="Bound">g</a>
<a id="985" class="Symbol">;</a> <a id="987" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="997" class="Symbol">=</a> <a id="999" href="Categories.Category.Slice.html#683" class="InductiveConstructor">slicearr</a> <a id="1008" href="Categories.Category.Core.html#1145" class="Field">identityʳ</a>
<a id="1020" class="Symbol">;</a> <a id="1022" href="Categories.Category.Core.html#656" class="Field Operator">_∘_</a> <a id="1032" class="Symbol">=</a> <a id="1034" href="Categories.Category.Slice.html#1334" class="Function Operator">_∘_</a>
<a id="1041" class="Symbol">;</a> <a id="1043" href="Categories.Category.Core.html#715" class="Field">assoc</a> <a id="1053" class="Symbol">=</a> <a id="1055" href="Categories.Category.Core.html#715" class="Field">assoc</a>
<a id="1063" class="Symbol">;</a> <a id="1065" href="Categories.Category.Core.html#1004" class="Field">sym-assoc</a> <a id="1075" class="Symbol">=</a> <a id="1077" href="Categories.Category.Core.html#1004" class="Field">sym-assoc</a>
<a id="1089" class="Symbol">;</a> <a id="1091" href="Categories.Category.Core.html#1096" class="Field">identityˡ</a> <a id="1101" class="Symbol">=</a> <a id="1103" href="Categories.Category.Core.html#1096" class="Field">identityˡ</a>
<a id="1115" class="Symbol">;</a> <a id="1117" href="Categories.Category.Core.html#1145" class="Field">identityʳ</a> <a id="1127" class="Symbol">=</a> <a id="1129" href="Categories.Category.Core.html#1145" class="Field">identityʳ</a>
<a id="1141" class="Symbol">;</a> <a id="1143" href="Categories.Category.Core.html#1339" class="Field">identity²</a> <a id="1153" class="Symbol">=</a> <a id="1155" href="Categories.Category.Core.html#1339" class="Field">identity²</a>
<a id="1167" class="Symbol">;</a> <a id="1169" href="Categories.Category.Core.html#1384" class="Field">equiv</a> <a id="1179" class="Symbol">=</a> <a id="1181" class="Keyword">record</a> <a id="1188" class="Comment">-- must be expanded to get levels to work out</a>
<a id="1238" class="Symbol">{</a> <a id="1240" href="Relation.Binary.Structures.html#1577" class="Field">refl</a> <a id="1246" class="Symbol">=</a> <a id="1248" href="Relation.Binary.Structures.html#1577" class="Function">refl</a>
<a id="1257" class="Symbol">;</a> <a id="1259" href="Relation.Binary.Structures.html#1603" class="Field">sym</a> <a id="1265" class="Symbol">=</a> <a id="1267" href="Relation.Binary.Structures.html#1603" class="Function">sym</a>
<a id="1275" class="Symbol">;</a> <a id="1277" href="Relation.Binary.Structures.html#1629" class="Field">trans</a> <a id="1283" class="Symbol">=</a> <a id="1285" href="Relation.Binary.Structures.html#1629" class="Function">trans</a>
<a id="1295" class="Symbol">}</a>
<a id="1299" class="Symbol">;</a> <a id="1301" href="Categories.Category.Core.html#1438" class="Field">∘-resp-≈</a> <a id="1311" class="Symbol">=</a> <a id="1313" href="Categories.Category.Core.html#1438" class="Field">∘-resp-≈</a>
<a id="1324" class="Symbol">}</a>
<a id="1328" class="Keyword">where</a> <a id="1334" href="Categories.Category.Slice.html#1334" class="Function Operator">_∘_</a> <a id="1339" class="Symbol">:</a> <a id="1341" href="Categories.Category.Slice.html#613" class="Record">Slice⇒</a> <a id="1348" href="Categories.Category.Slice.html#588" class="Generalizable">Y</a> <a id="1350" href="Categories.Category.Slice.html#590" class="Generalizable">Z</a> <a id="1352" class="Symbol"></a> <a id="1354" href="Categories.Category.Slice.html#613" class="Record">Slice⇒</a> <a id="1361" href="Categories.Category.Slice.html#586" class="Generalizable">X</a> <a id="1363" href="Categories.Category.Slice.html#588" class="Generalizable">Y</a> <a id="1365" class="Symbol"></a> <a id="1367" href="Categories.Category.Slice.html#613" class="Record">Slice⇒</a> <a id="1374" href="Categories.Category.Slice.html#586" class="Generalizable">X</a> <a id="1376" href="Categories.Category.Slice.html#590" class="Generalizable">Z</a>
<a id="1386" href="Categories.Category.Slice.html#1334" class="Function Operator">_∘_</a> <a id="1391" class="Symbol">{</a><a id="1392" class="Argument">Y</a> <a id="1394" class="Symbol">=</a> <a id="1396" href="Categories.Category.Slice.html#503" class="InductiveConstructor">sliceobj</a> <a id="1405" href="Categories.Category.Slice.html#1405" class="Bound">y</a><a id="1406" class="Symbol">}</a> <a id="1408" class="Symbol">{</a><a id="1409" class="Argument">Z</a> <a id="1411" class="Symbol">=</a> <a id="1413" href="Categories.Category.Slice.html#503" class="InductiveConstructor">sliceobj</a> <a id="1422" href="Categories.Category.Slice.html#1422" class="Bound">z</a><a id="1423" class="Symbol">}</a> <a id="1425" class="Symbol">{</a><a id="1426" class="Argument">X</a> <a id="1428" class="Symbol">=</a> <a id="1430" href="Categories.Category.Slice.html#503" class="InductiveConstructor">sliceobj</a> <a id="1439" href="Categories.Category.Slice.html#1439" class="Bound">x</a><a id="1440" class="Symbol">}</a> <a id="1442" class="Symbol">(</a><a id="1443" href="Categories.Category.Slice.html#683" class="InductiveConstructor">slicearr</a> <a id="1452" class="Symbol">{</a><a id="1453" href="Categories.Category.Slice.html#1453" class="Bound">g</a><a id="1454" class="Symbol">}</a> <a id="1456" href="Categories.Category.Slice.html#1456" class="Bound"></a><a id="1457" class="Symbol">)</a> <a id="1459" class="Symbol">(</a><a id="1460" href="Categories.Category.Slice.html#683" class="InductiveConstructor">slicearr</a> <a id="1469" class="Symbol">{</a><a id="1470" href="Categories.Category.Slice.html#1470" class="Bound">f</a><a id="1471" class="Symbol">}</a> <a id="1473" href="Categories.Category.Slice.html#1473" class="Bound">△′</a><a id="1475" class="Symbol">)</a> <a id="1477" class="Symbol">=</a> <a id="1479" href="Categories.Category.Slice.html#683" class="InductiveConstructor">slicearr</a> <a id="1488" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="1490" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="1506" href="Categories.Category.Slice.html#1422" class="Bound">z</a> <a id="1508" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1510" href="Categories.Category.Slice.html#1453" class="Bound">g</a> <a id="1512" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1514" href="Categories.Category.Slice.html#1470" class="Bound">f</a> <a id="1516" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="1519" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="1525" href="Categories.Category.Slice.html#1456" class="Bound"></a> <a id="1527" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="1539" href="Categories.Category.Slice.html#1405" class="Bound">y</a> <a id="1541" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1543" href="Categories.Category.Slice.html#1470" class="Bound">f</a> <a id="1549" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="1552" href="Categories.Category.Slice.html#1473" class="Bound">△′</a> <a id="1555" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="1567" href="Categories.Category.Slice.html#1439" class="Bound">x</a> <a id="1577" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
</pre></body></html>