bsc-leon-vatthauer/public/Categories.Diagram.ReflexivePair.html

40 lines
9.4 KiB
HTML
Raw Normal View History

2023-08-19 16:11:22 +02:00
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Categories.Diagram.ReflexivePair</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">open</a> <a id="42" class="Keyword">import</a> <a id="49" href="Categories.Category.Core.html" class="Module">Categories.Category.Core</a>
<a id="75" class="Comment">-- Reflexive pairs and reflexive coequalizers</a>
<a id="121" class="Comment">-- https://ncatlab.org/nlab/show/reflexive+coequalizer</a>
<a id="176" class="Keyword">module</a> <a id="183" href="Categories.Diagram.ReflexivePair.html" class="Module">Categories.Diagram.ReflexivePair</a> <a id="216" class="Symbol">{</a><a id="217" href="Categories.Diagram.ReflexivePair.html#217" class="Bound">o</a> <a id="219" href="Categories.Diagram.ReflexivePair.html#219" class="Bound"></a> <a id="221" href="Categories.Diagram.ReflexivePair.html#221" class="Bound">e</a><a id="222" class="Symbol">}</a> <a id="224" class="Symbol">(</a><a id="225" href="Categories.Diagram.ReflexivePair.html#225" class="Bound">𝒞</a> <a id="227" class="Symbol">:</a> <a id="229" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="238" href="Categories.Diagram.ReflexivePair.html#217" class="Bound">o</a> <a id="240" href="Categories.Diagram.ReflexivePair.html#219" class="Bound"></a> <a id="242" href="Categories.Diagram.ReflexivePair.html#221" class="Bound">e</a><a id="243" class="Symbol">)</a> <a id="245" class="Keyword">where</a>
<a id="252" class="Keyword">open</a> <a id="257" class="Keyword">import</a> <a id="264" href="Level.html" class="Module">Level</a>
<a id="271" class="Keyword">open</a> <a id="276" class="Keyword">import</a> <a id="283" href="Categories.Diagram.Coequalizer.html" class="Module">Categories.Diagram.Coequalizer</a> <a id="314" href="Categories.Diagram.ReflexivePair.html#225" class="Bound">𝒞</a>
<a id="317" class="Keyword">open</a> <a id="322" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="331" href="Categories.Diagram.ReflexivePair.html#225" class="Bound">𝒞</a>
<a id="333" class="Keyword">open</a> <a id="338" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
<a id="351" class="Keyword">open</a> <a id="356" href="Categories.Category.Core.html#1530" class="Module">Equiv</a>
<a id="363" class="Keyword">private</a>
<a id="373" class="Keyword">variable</a>
<a id="386" href="Categories.Diagram.ReflexivePair.html#386" class="Generalizable">A</a> <a id="388" href="Categories.Diagram.ReflexivePair.html#388" class="Generalizable">B</a> <a id="390" href="Categories.Diagram.ReflexivePair.html#390" class="Generalizable">R</a> <a id="392" class="Symbol">:</a> <a id="394" href="Categories.Category.Core.html#559" class="Field">Obj</a>
<a id="399" class="Comment">-- A reflexive pair can be thought of as a vast generalization of a reflexive relation.</a>
<a id="487" class="Comment">-- To see this, consider the case in &#39;Set&#39; where &#39;R ⊆ A × A&#39;, and &#39;f&#39; and &#39;g&#39; are the projections.</a>
<a id="586" class="Comment">-- Then, our morphism &#39;s&#39; would have to look something like the diagonal morphism due to the</a>
<a id="679" class="Comment">-- restriction it is a section of both &#39;f&#39; and &#39;g&#39;.</a>
<a id="731" class="Keyword">record</a> <a id="IsReflexivePair"></a><a id="738" href="Categories.Diagram.ReflexivePair.html#738" class="Record">IsReflexivePair</a> <a id="754" class="Symbol">(</a><a id="755" href="Categories.Diagram.ReflexivePair.html#755" class="Bound">f</a> <a id="757" href="Categories.Diagram.ReflexivePair.html#757" class="Bound">g</a> <a id="759" class="Symbol">:</a> <a id="761" href="Categories.Diagram.ReflexivePair.html#390" class="Generalizable">R</a> <a id="763" href="Categories.Category.Core.html#575" class="Field Operator"></a> <a id="765" href="Categories.Diagram.ReflexivePair.html#386" class="Generalizable">A</a><a id="766" class="Symbol">)</a> <a id="768" class="Symbol">(</a><a id="769" href="Categories.Diagram.ReflexivePair.html#769" class="Bound">s</a> <a id="771" class="Symbol">:</a> <a id="773" href="Categories.Diagram.ReflexivePair.html#386" class="Generalizable">A</a> <a id="775" href="Categories.Category.Core.html#575" class="Field Operator"></a> <a id="777" href="Categories.Diagram.ReflexivePair.html#390" class="Generalizable">R</a><a id="778" class="Symbol">)</a> <a id="780" class="Symbol">:</a> <a id="782" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="786" href="Categories.Diagram.ReflexivePair.html#221" class="Bound">e</a> <a id="788" class="Keyword">where</a>
<a id="796" class="Keyword">field</a>
<a id="IsReflexivePair.sectionₗ"></a><a id="806" href="Categories.Diagram.ReflexivePair.html#806" class="Field">sectionₗ</a> <a id="815" class="Symbol">:</a> <a id="817" href="Categories.Diagram.ReflexivePair.html#755" class="Bound">f</a> <a id="819" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="821" href="Categories.Diagram.ReflexivePair.html#769" class="Bound">s</a> <a id="823" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="825" href="Categories.Category.Core.html#630" class="Field">id</a>
<a id="IsReflexivePair.sectionᵣ"></a><a id="832" href="Categories.Diagram.ReflexivePair.html#832" class="Field">sectionᵣ</a> <a id="841" class="Symbol">:</a> <a id="843" href="Categories.Diagram.ReflexivePair.html#757" class="Bound">g</a> <a id="845" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="847" href="Categories.Diagram.ReflexivePair.html#769" class="Bound">s</a> <a id="849" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="851" href="Categories.Category.Core.html#630" class="Field">id</a>
<a id="IsReflexivePair.section"></a><a id="857" href="Categories.Diagram.ReflexivePair.html#857" class="Function">section</a> <a id="865" class="Symbol">:</a> <a id="867" href="Categories.Diagram.ReflexivePair.html#755" class="Bound">f</a> <a id="869" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="871" href="Categories.Diagram.ReflexivePair.html#769" class="Bound">s</a> <a id="873" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="875" href="Categories.Diagram.ReflexivePair.html#757" class="Bound">g</a> <a id="877" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="879" href="Categories.Diagram.ReflexivePair.html#769" class="Bound">s</a>
<a id="883" href="Categories.Diagram.ReflexivePair.html#857" class="Function">section</a> <a id="891" class="Symbol">=</a> <a id="893" href="Categories.Diagram.ReflexivePair.html#806" class="Field">sectionₗ</a> <a id="902" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="904" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="906" href="Categories.Diagram.ReflexivePair.html#832" class="Field">sectionᵣ</a>
<a id="916" class="Keyword">record</a> <a id="ReflexivePair"></a><a id="923" href="Categories.Diagram.ReflexivePair.html#923" class="Record">ReflexivePair</a> <a id="937" class="Symbol">(</a><a id="938" href="Categories.Diagram.ReflexivePair.html#938" class="Bound">f</a> <a id="940" href="Categories.Diagram.ReflexivePair.html#940" class="Bound">g</a> <a id="942" class="Symbol">:</a> <a id="944" href="Categories.Diagram.ReflexivePair.html#390" class="Generalizable">R</a> <a id="946" href="Categories.Category.Core.html#575" class="Field Operator"></a> <a id="948" href="Categories.Diagram.ReflexivePair.html#386" class="Generalizable">A</a><a id="949" class="Symbol">)</a> <a id="951" class="Symbol">:</a> <a id="953" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="957" class="Symbol">(</a><a id="958" href="Categories.Diagram.ReflexivePair.html#219" class="Bound"></a> <a id="960" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="962" href="Categories.Diagram.ReflexivePair.html#221" class="Bound">e</a><a id="963" class="Symbol">)</a> <a id="965" class="Keyword">where</a>
<a id="973" class="Keyword">field</a>
<a id="ReflexivePair.s"></a><a id="983" href="Categories.Diagram.ReflexivePair.html#983" class="Field">s</a> <a id="985" class="Symbol">:</a> <a id="987" href="Categories.Diagram.ReflexivePair.html#948" class="Bound">A</a> <a id="989" href="Categories.Category.Core.html#575" class="Field Operator"></a> <a id="991" href="Categories.Diagram.ReflexivePair.html#944" class="Bound">R</a>
<a id="ReflexivePair.isReflexivePair"></a><a id="997" href="Categories.Diagram.ReflexivePair.html#997" class="Field">isReflexivePair</a> <a id="1013" class="Symbol">:</a> <a id="1015" href="Categories.Diagram.ReflexivePair.html#738" class="Record">IsReflexivePair</a> <a id="1031" href="Categories.Diagram.ReflexivePair.html#938" class="Bound">f</a> <a id="1033" href="Categories.Diagram.ReflexivePair.html#940" class="Bound">g</a> <a id="1035" href="Categories.Diagram.ReflexivePair.html#983" class="Field">s</a>
<a id="1040" class="Keyword">open</a> <a id="1045" href="Categories.Diagram.ReflexivePair.html#738" class="Module">IsReflexivePair</a> <a id="1061" href="Categories.Diagram.ReflexivePair.html#997" class="Field">isReflexivePair</a> <a id="1077" class="Keyword">public</a>
</pre></body></html>