add some agda stuff

This commit is contained in:
Rachel Lambda Samuelsson 2022-06-23 22:12:24 +02:00
parent 11c0a5f856
commit f69b6e6959
60 changed files with 6964 additions and 0 deletions

View File

@ -0,0 +1,17 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Agda.Builtin.Bool</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="Pragma">--no-universe-polymorphism</a>
<a id="71" class="Pragma">--no-sized-types</a> <a id="88" class="Pragma">--no-guardedness</a> <a id="106" class="Pragma">--no-subtyping</a> <a id="121" class="Symbol">#-}</a>
<a id="126" class="Keyword">module</a> <a id="133" href="Agda.Builtin.Bool.html" class="Module">Agda.Builtin.Bool</a> <a id="151" class="Keyword">where</a>
<a id="158" class="Keyword">data</a> <a id="Bool"></a><a id="163" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a> <a id="168" class="Symbol">:</a> <a id="170" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="174" class="Keyword">where</a>
<a id="Bool.false"></a><a id="182" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="Bool.true"></a><a id="188" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="193" class="Symbol">:</a> <a id="195" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a>
<a id="201" class="Symbol">{-#</a> <a id="205" class="Keyword">BUILTIN</a> <a id="213" class="Keyword">BOOL</a> <a id="219" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a> <a id="225" class="Symbol">#-}</a>
<a id="229" class="Symbol">{-#</a> <a id="233" class="Keyword">BUILTIN</a> <a id="241" class="Keyword">FALSE</a> <a id="247" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="253" class="Symbol">#-}</a>
<a id="257" class="Symbol">{-#</a> <a id="261" class="Keyword">BUILTIN</a> <a id="269" class="Keyword">TRUE</a> <a id="275" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="281" class="Symbol">#-}</a>
<a id="286" class="Symbol">{-#</a> <a id="290" class="Keyword">COMPILE</a> <a id="298" class="Keyword">JS</a> <a id="301" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a> <a id="307" class="Pragma">=</a> <a id="309" class="Pragma">function</a> <a id="318" class="Pragma">(x,v)</a> <a id="324" class="Pragma">{</a> <a id="326" class="Pragma">return</a> <a id="333" class="Pragma">((x)?</a> <a id="339" class="Pragma">v[&quot;true&quot;]()</a> <a id="351" class="Pragma">:</a> <a id="353" class="Pragma">v[&quot;false&quot;]());</a> <a id="368" class="Pragma">}</a> <a id="370" class="Symbol">#-}</a>
<a id="374" class="Symbol">{-#</a> <a id="378" class="Keyword">COMPILE</a> <a id="386" class="Keyword">JS</a> <a id="389" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="395" class="Pragma">=</a> <a id="397" class="Pragma">false</a> <a id="403" class="Symbol">#-}</a>
<a id="407" class="Symbol">{-#</a> <a id="411" class="Keyword">COMPILE</a> <a id="419" class="Keyword">JS</a> <a id="422" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="428" class="Pragma">=</a> <a id="430" class="Pragma">true</a> <a id="436" class="Symbol">#-}</a>
</pre></body></html>

View File

@ -0,0 +1,12 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Agda.Builtin.Equality</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="Pragma">--no-sized-types</a> <a id="49" class="Pragma">--no-guardedness</a>
<a id="78" class="Pragma">--no-subtyping</a> <a id="93" class="Symbol">#-}</a>
<a id="98" class="Keyword">module</a> <a id="105" href="Agda.Builtin.Equality.html" class="Module">Agda.Builtin.Equality</a> <a id="127" class="Keyword">where</a>
<a id="134" class="Keyword">infix</a> <a id="140" class="Number">4</a> <a id="142" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a>
<a id="146" class="Keyword">data</a> <a id="_≡_"></a><a id="151" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a> <a id="155" class="Symbol">{</a><a id="156" href="Agda.Builtin.Equality.html#156" class="Bound">a</a><a id="157" class="Symbol">}</a> <a id="159" class="Symbol">{</a><a id="160" href="Agda.Builtin.Equality.html#160" class="Bound">A</a> <a id="162" class="Symbol">:</a> <a id="164" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="168" href="Agda.Builtin.Equality.html#156" class="Bound">a</a><a id="169" class="Symbol">}</a> <a id="171" class="Symbol">(</a><a id="172" href="Agda.Builtin.Equality.html#172" class="Bound">x</a> <a id="174" class="Symbol">:</a> <a id="176" href="Agda.Builtin.Equality.html#160" class="Bound">A</a><a id="177" class="Symbol">)</a> <a id="179" class="Symbol">:</a> <a id="181" href="Agda.Builtin.Equality.html#160" class="Bound">A</a> <a id="183" class="Symbol"></a> <a id="185" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="189" href="Agda.Builtin.Equality.html#156" class="Bound">a</a> <a id="191" class="Keyword">where</a>
<a id="199" class="Keyword">instance</a> <a id="_≡_.refl"></a><a id="208" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="213" class="Symbol">:</a> <a id="215" href="Agda.Builtin.Equality.html#172" class="Bound">x</a> <a id="217" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="219" href="Agda.Builtin.Equality.html#172" class="Bound">x</a>
<a id="222" class="Symbol">{-#</a> <a id="226" class="Keyword">BUILTIN</a> <a id="234" class="Keyword">EQUALITY</a> <a id="243" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a> <a id="247" class="Symbol">#-}</a>
</pre></body></html>

View File

@ -0,0 +1,12 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Agda.Builtin.Maybe</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="Pragma">--no-sized-types</a> <a id="49" class="Pragma">--no-guardedness</a>
<a id="78" class="Pragma">--no-subtyping</a> <a id="93" class="Symbol">#-}</a>
<a id="98" class="Keyword">module</a> <a id="105" href="Agda.Builtin.Maybe.html" class="Module">Agda.Builtin.Maybe</a> <a id="124" class="Keyword">where</a>
<a id="131" class="Keyword">data</a> <a id="Maybe"></a><a id="136" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="142" class="Symbol">{</a><a id="143" href="Agda.Builtin.Maybe.html#143" class="Bound">a</a><a id="144" class="Symbol">}</a> <a id="146" class="Symbol">(</a><a id="147" href="Agda.Builtin.Maybe.html#147" class="Bound">A</a> <a id="149" class="Symbol">:</a> <a id="151" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="155" href="Agda.Builtin.Maybe.html#143" class="Bound">a</a><a id="156" class="Symbol">)</a> <a id="158" class="Symbol">:</a> <a id="160" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="164" href="Agda.Builtin.Maybe.html#143" class="Bound">a</a> <a id="166" class="Keyword">where</a>
<a id="Maybe.just"></a><a id="174" href="Agda.Builtin.Maybe.html#174" class="InductiveConstructor">just</a> <a id="179" class="Symbol">:</a> <a id="181" href="Agda.Builtin.Maybe.html#147" class="Bound">A</a> <a id="183" class="Symbol"></a> <a id="185" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="191" href="Agda.Builtin.Maybe.html#147" class="Bound">A</a>
<a id="Maybe.nothing"></a><a id="195" href="Agda.Builtin.Maybe.html#195" class="InductiveConstructor">nothing</a> <a id="203" class="Symbol">:</a> <a id="205" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="211" href="Agda.Builtin.Maybe.html#147" class="Bound">A</a>
<a id="214" class="Symbol">{-#</a> <a id="218" class="Keyword">BUILTIN</a> <a id="226" class="Keyword">MAYBE</a> <a id="232" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="238" class="Symbol">#-}</a>
</pre></body></html>

136
misc/Agda.Builtin.Nat.html Normal file
View File

@ -0,0 +1,136 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Agda.Builtin.Nat</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="Pragma">--no-universe-polymorphism</a>
<a id="71" class="Pragma">--no-sized-types</a> <a id="88" class="Pragma">--no-guardedness</a> <a id="105" class="Pragma">--no-subtyping</a> <a id="120" class="Symbol">#-}</a>
<a id="125" class="Keyword">module</a> <a id="132" href="Agda.Builtin.Nat.html" class="Module">Agda.Builtin.Nat</a> <a id="149" class="Keyword">where</a>
<a id="156" class="Keyword">open</a> <a id="161" class="Keyword">import</a> <a id="168" href="Agda.Builtin.Bool.html" class="Module">Agda.Builtin.Bool</a>
<a id="187" class="Keyword">data</a> <a id="Nat"></a><a id="192" href="Agda.Builtin.Nat.html#192" class="Datatype">Nat</a> <a id="196" class="Symbol">:</a> <a id="198" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="202" class="Keyword">where</a>
<a id="Nat.zero"></a><a id="210" href="Agda.Builtin.Nat.html#210" class="InductiveConstructor">zero</a> <a id="215" class="Symbol">:</a> <a id="217" href="Agda.Builtin.Nat.html#192" class="Datatype">Nat</a>
<a id="Nat.suc"></a><a id="223" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="228" class="Symbol">:</a> <a id="230" class="Symbol">(</a><a id="231" href="Agda.Builtin.Nat.html#231" class="Bound">n</a> <a id="233" class="Symbol">:</a> <a id="235" href="Agda.Builtin.Nat.html#192" class="Datatype">Nat</a><a id="238" class="Symbol">)</a> <a id="240" class="Symbol"></a> <a id="242" href="Agda.Builtin.Nat.html#192" class="Datatype">Nat</a>
<a id="247" class="Symbol">{-#</a> <a id="251" class="Keyword">BUILTIN</a> <a id="259" class="Keyword">NATURAL</a> <a id="267" href="Agda.Builtin.Nat.html#192" class="Datatype">Nat</a> <a id="271" class="Symbol">#-}</a>
<a id="276" class="Keyword">infix</a> <a id="283" class="Number">4</a> <a id="285" href="Agda.Builtin.Nat.html#620" class="Primitive Operator">_==_</a> <a id="290" href="Agda.Builtin.Nat.html#746" class="Primitive Operator">_&lt;_</a>
<a id="294" class="Keyword">infixl</a> <a id="301" class="Number">6</a> <a id="303" href="Agda.Builtin.Nat.html#325" class="Primitive Operator">_+_</a> <a id="307" href="Agda.Builtin.Nat.html#415" class="Primitive Operator">_-_</a>
<a id="311" class="Keyword">infixl</a> <a id="318" class="Number">7</a> <a id="320" href="Agda.Builtin.Nat.html#528" class="Primitive Operator">_*_</a>
<a id="_+_"></a><a id="325" href="Agda.Builtin.Nat.html#325" class="Function Operator">_+_</a> <a id="329" class="Symbol">:</a> <a id="331" href="Agda.Builtin.Nat.html#192" class="Datatype">Nat</a> <a id="335" class="Symbol"></a> <a id="337" href="Agda.Builtin.Nat.html#192" class="Datatype">Nat</a> <a id="341" class="Symbol"></a> <a id="343" href="Agda.Builtin.Nat.html#192" class="Datatype">Nat</a>
<a id="347" href="Agda.Builtin.Nat.html#210" class="InductiveConstructor">zero</a> <a id="353" href="Agda.Builtin.Nat.html#325" class="Function Operator">+</a> <a id="355" href="Agda.Builtin.Nat.html#355" class="Bound">m</a> <a id="357" class="Symbol">=</a> <a id="359" href="Agda.Builtin.Nat.html#355" class="Bound">m</a>
<a id="361" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="365" href="Agda.Builtin.Nat.html#365" class="Bound">n</a> <a id="367" href="Agda.Builtin.Nat.html#325" class="Function Operator">+</a> <a id="369" href="Agda.Builtin.Nat.html#369" class="Bound">m</a> <a id="371" class="Symbol">=</a> <a id="373" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="377" class="Symbol">(</a><a id="378" href="Agda.Builtin.Nat.html#365" class="Bound">n</a> <a id="380" href="Agda.Builtin.Nat.html#325" class="Function Operator">+</a> <a id="382" href="Agda.Builtin.Nat.html#369" class="Bound">m</a><a id="383" class="Symbol">)</a>
<a id="386" class="Symbol">{-#</a> <a id="390" class="Keyword">BUILTIN</a> <a id="398" class="Keyword">NATPLUS</a> <a id="406" href="Agda.Builtin.Nat.html#325" class="Primitive Operator">_+_</a> <a id="410" class="Symbol">#-}</a>
<a id="_-_"></a><a id="415" href="Agda.Builtin.Nat.html#415" class="Function Operator">_-_</a> <a id="419" class="Symbol">:</a> <a id="421" href="Agda.Builtin.Nat.html#192" class="Datatype">Nat</a> <a id="425" class="Symbol"></a> <a id="427" href="Agda.Builtin.Nat.html#192" class="Datatype">Nat</a> <a id="431" class="Symbol"></a> <a id="433" href="Agda.Builtin.Nat.html#192" class="Datatype">Nat</a>
<a id="437" href="Agda.Builtin.Nat.html#437" class="Bound">n</a> <a id="443" href="Agda.Builtin.Nat.html#415" class="Function Operator">-</a> <a id="445" href="Agda.Builtin.Nat.html#210" class="InductiveConstructor">zero</a> <a id="450" class="Symbol">=</a> <a id="452" href="Agda.Builtin.Nat.html#437" class="Bound">n</a>
<a id="454" href="Agda.Builtin.Nat.html#210" class="InductiveConstructor">zero</a> <a id="460" href="Agda.Builtin.Nat.html#415" class="Function Operator">-</a> <a id="462" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="466" href="Agda.Builtin.Nat.html#466" class="Bound">m</a> <a id="468" class="Symbol">=</a> <a id="470" href="Agda.Builtin.Nat.html#210" class="InductiveConstructor">zero</a>
<a id="475" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="479" href="Agda.Builtin.Nat.html#479" class="Bound">n</a> <a id="481" href="Agda.Builtin.Nat.html#415" class="Function Operator">-</a> <a id="483" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="487" href="Agda.Builtin.Nat.html#487" class="Bound">m</a> <a id="489" class="Symbol">=</a> <a id="491" href="Agda.Builtin.Nat.html#479" class="Bound">n</a> <a id="493" href="Agda.Builtin.Nat.html#415" class="Function Operator">-</a> <a id="495" href="Agda.Builtin.Nat.html#487" class="Bound">m</a>
<a id="498" class="Symbol">{-#</a> <a id="502" class="Keyword">BUILTIN</a> <a id="510" class="Keyword">NATMINUS</a> <a id="519" href="Agda.Builtin.Nat.html#415" class="Primitive Operator">_-_</a> <a id="523" class="Symbol">#-}</a>
<a id="_*_"></a><a id="528" href="Agda.Builtin.Nat.html#528" class="Function Operator">_*_</a> <a id="532" class="Symbol">:</a> <a id="534" href="Agda.Builtin.Nat.html#192" class="Datatype">Nat</a> <a id="538" class="Symbol"></a> <a id="540" href="Agda.Builtin.Nat.html#192" class="Datatype">Nat</a> <a id="544" class="Symbol"></a> <a id="546" href="Agda.Builtin.Nat.html#192" class="Datatype">Nat</a>
<a id="550" href="Agda.Builtin.Nat.html#210" class="InductiveConstructor">zero</a> <a id="556" href="Agda.Builtin.Nat.html#528" class="Function Operator">*</a> <a id="558" href="Agda.Builtin.Nat.html#558" class="Bound">m</a> <a id="560" class="Symbol">=</a> <a id="562" href="Agda.Builtin.Nat.html#210" class="InductiveConstructor">zero</a>
<a id="567" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="571" href="Agda.Builtin.Nat.html#571" class="Bound">n</a> <a id="573" href="Agda.Builtin.Nat.html#528" class="Function Operator">*</a> <a id="575" href="Agda.Builtin.Nat.html#575" class="Bound">m</a> <a id="577" class="Symbol">=</a> <a id="579" href="Agda.Builtin.Nat.html#575" class="Bound">m</a> <a id="581" href="Agda.Builtin.Nat.html#325" class="Primitive Operator">+</a> <a id="583" href="Agda.Builtin.Nat.html#571" class="Bound">n</a> <a id="585" href="Agda.Builtin.Nat.html#528" class="Function Operator">*</a> <a id="587" href="Agda.Builtin.Nat.html#575" class="Bound">m</a>
<a id="590" class="Symbol">{-#</a> <a id="594" class="Keyword">BUILTIN</a> <a id="602" class="Keyword">NATTIMES</a> <a id="611" href="Agda.Builtin.Nat.html#528" class="Primitive Operator">_*_</a> <a id="615" class="Symbol">#-}</a>
<a id="_==_"></a><a id="620" href="Agda.Builtin.Nat.html#620" class="Function Operator">_==_</a> <a id="625" class="Symbol">:</a> <a id="627" href="Agda.Builtin.Nat.html#192" class="Datatype">Nat</a> <a id="631" class="Symbol"></a> <a id="633" href="Agda.Builtin.Nat.html#192" class="Datatype">Nat</a> <a id="637" class="Symbol"></a> <a id="639" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a>
<a id="644" href="Agda.Builtin.Nat.html#210" class="InductiveConstructor">zero</a> <a id="650" href="Agda.Builtin.Nat.html#620" class="Function Operator">==</a> <a id="653" href="Agda.Builtin.Nat.html#210" class="InductiveConstructor">zero</a> <a id="659" class="Symbol">=</a> <a id="661" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a>
<a id="666" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="670" href="Agda.Builtin.Nat.html#670" class="Bound">n</a> <a id="672" href="Agda.Builtin.Nat.html#620" class="Function Operator">==</a> <a id="675" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="679" href="Agda.Builtin.Nat.html#679" class="Bound">m</a> <a id="681" class="Symbol">=</a> <a id="683" href="Agda.Builtin.Nat.html#670" class="Bound">n</a> <a id="685" href="Agda.Builtin.Nat.html#620" class="Function Operator">==</a> <a id="688" href="Agda.Builtin.Nat.html#679" class="Bound">m</a>
<a id="690" class="CatchallClause Symbol">_</a><a id="691" class="CatchallClause"> </a><a id="696" href="Agda.Builtin.Nat.html#620" class="CatchallClause Function Operator">==</a><a id="698" class="CatchallClause"> </a><a id="699" class="CatchallClause Symbol">_</a> <a id="705" class="Symbol">=</a> <a id="707" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a>
<a id="714" class="Symbol">{-#</a> <a id="718" class="Keyword">BUILTIN</a> <a id="726" class="Keyword">NATEQUALS</a> <a id="736" href="Agda.Builtin.Nat.html#620" class="Primitive Operator">_==_</a> <a id="741" class="Symbol">#-}</a>
<a id="_&lt;_"></a><a id="746" href="Agda.Builtin.Nat.html#746" class="Function Operator">_&lt;_</a> <a id="750" class="Symbol">:</a> <a id="752" href="Agda.Builtin.Nat.html#192" class="Datatype">Nat</a> <a id="756" class="Symbol"></a> <a id="758" href="Agda.Builtin.Nat.html#192" class="Datatype">Nat</a> <a id="762" class="Symbol"></a> <a id="764" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a>
<a id="769" class="Symbol">_</a> <a id="775" href="Agda.Builtin.Nat.html#746" class="Function Operator">&lt;</a> <a id="777" href="Agda.Builtin.Nat.html#210" class="InductiveConstructor">zero</a> <a id="783" class="Symbol">=</a> <a id="785" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a>
<a id="791" href="Agda.Builtin.Nat.html#210" class="InductiveConstructor">zero</a> <a id="797" href="Agda.Builtin.Nat.html#746" class="Function Operator">&lt;</a> <a id="799" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="803" class="Symbol">_</a> <a id="805" class="Symbol">=</a> <a id="807" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a>
<a id="812" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="816" href="Agda.Builtin.Nat.html#816" class="Bound">n</a> <a id="818" href="Agda.Builtin.Nat.html#746" class="Function Operator">&lt;</a> <a id="820" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="824" href="Agda.Builtin.Nat.html#824" class="Bound">m</a> <a id="826" class="Symbol">=</a> <a id="828" href="Agda.Builtin.Nat.html#816" class="Bound">n</a> <a id="830" href="Agda.Builtin.Nat.html#746" class="Function Operator">&lt;</a> <a id="832" href="Agda.Builtin.Nat.html#824" class="Bound">m</a>
<a id="835" class="Symbol">{-#</a> <a id="839" class="Keyword">BUILTIN</a> <a id="847" class="Keyword">NATLESS</a> <a id="855" href="Agda.Builtin.Nat.html#746" class="Primitive Operator">_&lt;_</a> <a id="859" class="Symbol">#-}</a>
<a id="864" class="Comment">-- Helper function div-helper for Euclidean division.</a>
<a id="920" class="Comment">---------------------------------------------------------------------------</a>
<a id="996" class="Comment">--</a>
<a id="999" class="Comment">-- div-helper computes n / 1+m via iteration on n.</a>
<a id="1050" class="Comment">--</a>
<a id="1053" class="Comment">-- n div (suc m) = div-helper 0 m n m</a>
<a id="1093" class="Comment">--</a>
<a id="1096" class="Comment">-- The state of the iterator has two accumulator variables:</a>
<a id="1156" class="Comment">--</a>
<a id="1159" class="Comment">-- k: The quotient, returned once n=0. Initialized to 0.</a>
<a id="1219" class="Comment">--</a>
<a id="1222" class="Comment">-- j: A counter, initialized to the divisor m, decreased on each iteration step.</a>
<a id="1305" class="Comment">-- Once it reaches 0, the quotient k is increased and j reset to m,</a>
<a id="1378" class="Comment">-- starting the next countdown.</a>
<a id="1415" class="Comment">--</a>
<a id="1418" class="Comment">-- Under the precondition j ≤ m, the invariant is</a>
<a id="1468" class="Comment">--</a>
<a id="1471" class="Comment">-- div-helper k m n j = k + (n + m - j) div (1 + m)</a>
<a id="div-helper"></a><a id="1526" href="Agda.Builtin.Nat.html#1526" class="Function">div-helper</a> <a id="1537" class="Symbol">:</a> <a id="1539" class="Symbol">(</a><a id="1540" href="Agda.Builtin.Nat.html#1540" class="Bound">k</a> <a id="1542" href="Agda.Builtin.Nat.html#1542" class="Bound">m</a> <a id="1544" href="Agda.Builtin.Nat.html#1544" class="Bound">n</a> <a id="1546" href="Agda.Builtin.Nat.html#1546" class="Bound">j</a> <a id="1548" class="Symbol">:</a> <a id="1550" href="Agda.Builtin.Nat.html#192" class="Datatype">Nat</a><a id="1553" class="Symbol">)</a> <a id="1555" class="Symbol"></a> <a id="1557" href="Agda.Builtin.Nat.html#192" class="Datatype">Nat</a>
<a id="1561" href="Agda.Builtin.Nat.html#1526" class="Function">div-helper</a> <a id="1572" href="Agda.Builtin.Nat.html#1572" class="Bound">k</a> <a id="1574" href="Agda.Builtin.Nat.html#1574" class="Bound">m</a> <a id="1577" href="Agda.Builtin.Nat.html#210" class="InductiveConstructor">zero</a> <a id="1585" href="Agda.Builtin.Nat.html#1585" class="Bound">j</a> <a id="1592" class="Symbol">=</a> <a id="1594" href="Agda.Builtin.Nat.html#1572" class="Bound">k</a>
<a id="1596" href="Agda.Builtin.Nat.html#1526" class="Function">div-helper</a> <a id="1607" href="Agda.Builtin.Nat.html#1607" class="Bound">k</a> <a id="1609" href="Agda.Builtin.Nat.html#1609" class="Bound">m</a> <a id="1611" class="Symbol">(</a><a id="1612" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="1616" href="Agda.Builtin.Nat.html#1616" class="Bound">n</a><a id="1617" class="Symbol">)</a> <a id="1620" href="Agda.Builtin.Nat.html#210" class="InductiveConstructor">zero</a> <a id="1627" class="Symbol">=</a> <a id="1629" href="Agda.Builtin.Nat.html#1526" class="Function">div-helper</a> <a id="1640" class="Symbol">(</a><a id="1641" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="1645" href="Agda.Builtin.Nat.html#1607" class="Bound">k</a><a id="1646" class="Symbol">)</a> <a id="1648" href="Agda.Builtin.Nat.html#1609" class="Bound">m</a> <a id="1650" href="Agda.Builtin.Nat.html#1616" class="Bound">n</a> <a id="1652" href="Agda.Builtin.Nat.html#1609" class="Bound">m</a>
<a id="1654" href="Agda.Builtin.Nat.html#1526" class="Function">div-helper</a> <a id="1665" href="Agda.Builtin.Nat.html#1665" class="Bound">k</a> <a id="1667" href="Agda.Builtin.Nat.html#1667" class="Bound">m</a> <a id="1669" class="Symbol">(</a><a id="1670" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="1674" href="Agda.Builtin.Nat.html#1674" class="Bound">n</a><a id="1675" class="Symbol">)</a> <a id="1677" class="Symbol">(</a><a id="1678" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="1682" href="Agda.Builtin.Nat.html#1682" class="Bound">j</a><a id="1683" class="Symbol">)</a> <a id="1685" class="Symbol">=</a> <a id="1687" href="Agda.Builtin.Nat.html#1526" class="Function">div-helper</a> <a id="1698" href="Agda.Builtin.Nat.html#1665" class="Bound">k</a> <a id="1706" href="Agda.Builtin.Nat.html#1667" class="Bound">m</a> <a id="1708" href="Agda.Builtin.Nat.html#1674" class="Bound">n</a> <a id="1710" href="Agda.Builtin.Nat.html#1682" class="Bound">j</a>
<a id="1713" class="Symbol">{-#</a> <a id="1717" class="Keyword">BUILTIN</a> <a id="1725" class="Keyword">NATDIVSUCAUX</a> <a id="1738" href="Agda.Builtin.Nat.html#1526" class="Primitive">div-helper</a> <a id="1749" class="Symbol">#-}</a>
<a id="1754" class="Comment">-- Proof of the invariant by induction on n.</a>
<a id="1799" class="Comment">--</a>
<a id="1802" class="Comment">-- clause 1: div-helper k m 0 j</a>
<a id="1836" class="Comment">-- = k by definition</a>
<a id="1906" class="Comment">-- = k + (0 + m - j) div (1 + m) since m - j &lt; 1 + m</a>
<a id="1982" class="Comment">--</a>
<a id="1985" class="Comment">-- clause 2: div-helper k m (1 + n) 0</a>
<a id="2025" class="Comment">-- = div-helper (1 + k) m n m by definition</a>
<a id="2095" class="Comment">-- = 1 + k + (n + m - m) div (1 + m) by induction hypothesis</a>
<a id="2175" class="Comment">-- = 1 + k + n div (1 + m) by simplification</a>
<a id="2249" class="Comment">-- = k + (n + (1 + m)) div (1 + m) by expansion</a>
<a id="2318" class="Comment">-- = k + (1 + n + m - 0) div (1 + m) by expansion</a>
<a id="2387" class="Comment">--</a>
<a id="2390" class="Comment">-- clause 3: div-helper k m (1 + n) (1 + j)</a>
<a id="2436" class="Comment">-- = div-helper k m n j by definition</a>
<a id="2506" class="Comment">-- = k + (n + m - j) div (1 + m) by induction hypothesis</a>
<a id="2586" class="Comment">-- = k + ((1 + n) + m - (1 + j)) div (1 + m) by expansion</a>
<a id="2655" class="Comment">--</a>
<a id="2658" class="Comment">-- Q.e.d.</a>
<a id="2669" class="Comment">-- Helper function mod-helper for the remainder computation.</a>
<a id="2732" class="Comment">---------------------------------------------------------------------------</a>
<a id="2808" class="Comment">--</a>
<a id="2811" class="Comment">-- (Analogous to div-helper.)</a>
<a id="2841" class="Comment">--</a>
<a id="2844" class="Comment">-- mod-helper computes n % 1+m via iteration on n.</a>
<a id="2895" class="Comment">--</a>
<a id="2898" class="Comment">-- n mod (suc m) = mod-helper 0 m n m</a>
<a id="2938" class="Comment">--</a>
<a id="2941" class="Comment">-- The invariant is:</a>
<a id="2962" class="Comment">--</a>
<a id="2965" class="Comment">-- m = k + j ==&gt; mod-helper k m n j = (n + k) mod (1 + m).</a>
<a id="mod-helper"></a><a id="3029" href="Agda.Builtin.Nat.html#3029" class="Function">mod-helper</a> <a id="3040" class="Symbol">:</a> <a id="3042" class="Symbol">(</a><a id="3043" href="Agda.Builtin.Nat.html#3043" class="Bound">k</a> <a id="3045" href="Agda.Builtin.Nat.html#3045" class="Bound">m</a> <a id="3047" href="Agda.Builtin.Nat.html#3047" class="Bound">n</a> <a id="3049" href="Agda.Builtin.Nat.html#3049" class="Bound">j</a> <a id="3051" class="Symbol">:</a> <a id="3053" href="Agda.Builtin.Nat.html#192" class="Datatype">Nat</a><a id="3056" class="Symbol">)</a> <a id="3058" class="Symbol"></a> <a id="3060" href="Agda.Builtin.Nat.html#192" class="Datatype">Nat</a>
<a id="3064" href="Agda.Builtin.Nat.html#3029" class="Function">mod-helper</a> <a id="3075" href="Agda.Builtin.Nat.html#3075" class="Bound">k</a> <a id="3077" href="Agda.Builtin.Nat.html#3077" class="Bound">m</a> <a id="3080" href="Agda.Builtin.Nat.html#210" class="InductiveConstructor">zero</a> <a id="3088" href="Agda.Builtin.Nat.html#3088" class="Bound">j</a> <a id="3095" class="Symbol">=</a> <a id="3097" href="Agda.Builtin.Nat.html#3075" class="Bound">k</a>
<a id="3099" href="Agda.Builtin.Nat.html#3029" class="Function">mod-helper</a> <a id="3110" href="Agda.Builtin.Nat.html#3110" class="Bound">k</a> <a id="3112" href="Agda.Builtin.Nat.html#3112" class="Bound">m</a> <a id="3114" class="Symbol">(</a><a id="3115" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="3119" href="Agda.Builtin.Nat.html#3119" class="Bound">n</a><a id="3120" class="Symbol">)</a> <a id="3123" href="Agda.Builtin.Nat.html#210" class="InductiveConstructor">zero</a> <a id="3130" class="Symbol">=</a> <a id="3132" href="Agda.Builtin.Nat.html#3029" class="Function">mod-helper</a> <a id="3143" class="Number">0</a> <a id="3151" href="Agda.Builtin.Nat.html#3112" class="Bound">m</a> <a id="3153" href="Agda.Builtin.Nat.html#3119" class="Bound">n</a> <a id="3155" href="Agda.Builtin.Nat.html#3112" class="Bound">m</a>
<a id="3157" href="Agda.Builtin.Nat.html#3029" class="Function">mod-helper</a> <a id="3168" href="Agda.Builtin.Nat.html#3168" class="Bound">k</a> <a id="3170" href="Agda.Builtin.Nat.html#3170" class="Bound">m</a> <a id="3172" class="Symbol">(</a><a id="3173" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="3177" href="Agda.Builtin.Nat.html#3177" class="Bound">n</a><a id="3178" class="Symbol">)</a> <a id="3180" class="Symbol">(</a><a id="3181" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="3185" href="Agda.Builtin.Nat.html#3185" class="Bound">j</a><a id="3186" class="Symbol">)</a> <a id="3188" class="Symbol">=</a> <a id="3190" href="Agda.Builtin.Nat.html#3029" class="Function">mod-helper</a> <a id="3201" class="Symbol">(</a><a id="3202" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="3206" href="Agda.Builtin.Nat.html#3168" class="Bound">k</a><a id="3207" class="Symbol">)</a> <a id="3209" href="Agda.Builtin.Nat.html#3170" class="Bound">m</a> <a id="3211" href="Agda.Builtin.Nat.html#3177" class="Bound">n</a> <a id="3213" href="Agda.Builtin.Nat.html#3185" class="Bound">j</a>
<a id="3216" class="Symbol">{-#</a> <a id="3220" class="Keyword">BUILTIN</a> <a id="3228" class="Keyword">NATMODSUCAUX</a> <a id="3241" href="Agda.Builtin.Nat.html#3029" class="Primitive">mod-helper</a> <a id="3252" class="Symbol">#-}</a>
<a id="3257" class="Comment">-- Proof of the invariant by induction on n.</a>
<a id="3302" class="Comment">--</a>
<a id="3305" class="Comment">-- clause 1: mod-helper k m 0 j</a>
<a id="3339" class="Comment">-- = k by definition</a>
<a id="3400" class="Comment">-- = (0 + k) mod (1 + m) since m = k + j, thus k &lt; m</a>
<a id="3475" class="Comment">--</a>
<a id="3478" class="Comment">-- clause 2: mod-helper k m (1 + n) 0</a>
<a id="3518" class="Comment">-- = mod-helper 0 m n m by definition</a>
<a id="3579" class="Comment">-- = (n + 0) mod (1 + m) by induction hypothesis</a>
<a id="3650" class="Comment">-- = (n + (1 + m)) mod (1 + m) by expansion</a>
<a id="3710" class="Comment">-- = (1 + n) + k) mod (1 + m) since k = m (as l = 0)</a>
<a id="3780" class="Comment">--</a>
<a id="3783" class="Comment">-- clause 3: mod-helper k m (1 + n) (1 + j)</a>
<a id="3829" class="Comment">-- = mod-helper (1 + k) m n j by definition</a>
<a id="3890" class="Comment">-- = (n + (1 + k)) mod (1 + m) by induction hypothesis</a>
<a id="3961" class="Comment">-- = ((1 + n) + k) mod (1 + m) by commutativity</a>
<a id="4025" class="Comment">--</a>
<a id="4028" class="Comment">-- Q.e.d.</a>
</pre></body></html>

View File

@ -0,0 +1,20 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Agda.Builtin.Sigma</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="Pragma">--no-sized-types</a> <a id="49" class="Pragma">--no-guardedness</a>
<a id="78" class="Pragma">--no-subtyping</a> <a id="93" class="Symbol">#-}</a>
<a id="98" class="Keyword">module</a> <a id="105" href="Agda.Builtin.Sigma.html" class="Module">Agda.Builtin.Sigma</a> <a id="124" class="Keyword">where</a>
<a id="131" class="Keyword">open</a> <a id="136" class="Keyword">import</a> <a id="143" href="Agda.Primitive.html" class="Module">Agda.Primitive</a>
<a id="159" class="Keyword">record</a> <a id="Σ"></a><a id="166" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="168" class="Symbol">{</a><a id="169" href="Agda.Builtin.Sigma.html#169" class="Bound">a</a> <a id="171" href="Agda.Builtin.Sigma.html#171" class="Bound">b</a><a id="172" class="Symbol">}</a> <a id="174" class="Symbol">(</a><a id="175" href="Agda.Builtin.Sigma.html#175" class="Bound">A</a> <a id="177" class="Symbol">:</a> <a id="179" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="183" href="Agda.Builtin.Sigma.html#169" class="Bound">a</a><a id="184" class="Symbol">)</a> <a id="186" class="Symbol">(</a><a id="187" href="Agda.Builtin.Sigma.html#187" class="Bound">B</a> <a id="189" class="Symbol">:</a> <a id="191" href="Agda.Builtin.Sigma.html#175" class="Bound">A</a> <a id="193" class="Symbol"></a> <a id="195" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="199" href="Agda.Builtin.Sigma.html#171" class="Bound">b</a><a id="200" class="Symbol">)</a> <a id="202" class="Symbol">:</a> <a id="204" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="208" class="Symbol">(</a><a id="209" href="Agda.Builtin.Sigma.html#169" class="Bound">a</a> <a id="211" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="213" href="Agda.Builtin.Sigma.html#171" class="Bound">b</a><a id="214" class="Symbol">)</a> <a id="216" class="Keyword">where</a>
<a id="224" class="Keyword">constructor</a> <a id="_,_"></a><a id="236" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">_,_</a>
<a id="242" class="Keyword">field</a>
<a id="Σ.fst"></a><a id="252" href="Agda.Builtin.Sigma.html#252" class="Field">fst</a> <a id="256" class="Symbol">:</a> <a id="258" href="Agda.Builtin.Sigma.html#175" class="Bound">A</a>
<a id="Σ.snd"></a><a id="264" href="Agda.Builtin.Sigma.html#264" class="Field">snd</a> <a id="268" class="Symbol">:</a> <a id="270" href="Agda.Builtin.Sigma.html#187" class="Bound">B</a> <a id="272" href="Agda.Builtin.Sigma.html#252" class="Field">fst</a>
<a id="277" class="Keyword">open</a> <a id="282" href="Agda.Builtin.Sigma.html#166" class="Module">Σ</a> <a id="284" class="Keyword">public</a>
<a id="292" class="Keyword">infixr</a> <a id="299" class="Number">4</a> <a id="301" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">_,_</a>
<a id="306" class="Symbol">{-#</a> <a id="310" class="Keyword">BUILTIN</a> <a id="318" class="Keyword">SIGMA</a> <a id="324" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="326" class="Symbol">#-}</a>
</pre></body></html>

View File

@ -0,0 +1,12 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Agda.Builtin.Strict</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="Pragma">--no-sized-types</a> <a id="49" class="Pragma">--no-guardedness</a>
<a id="78" class="Pragma">--no-subtyping</a> <a id="93" class="Symbol">#-}</a>
<a id="98" class="Keyword">module</a> <a id="105" href="Agda.Builtin.Strict.html" class="Module">Agda.Builtin.Strict</a> <a id="125" class="Keyword">where</a>
<a id="132" class="Keyword">open</a> <a id="137" class="Keyword">import</a> <a id="144" href="Agda.Builtin.Equality.html" class="Module">Agda.Builtin.Equality</a>
<a id="167" class="Keyword">primitive</a>
<a id="primForce"></a><a id="179" href="Agda.Builtin.Strict.html#179" class="Primitive">primForce</a> <a id="194" class="Symbol">:</a> <a id="196" class="Symbol"></a> <a id="198" class="Symbol">{</a><a id="199" href="Agda.Builtin.Strict.html#199" class="Bound">a</a> <a id="201" href="Agda.Builtin.Strict.html#201" class="Bound">b</a><a id="202" class="Symbol">}</a> <a id="204" class="Symbol">{</a><a id="205" href="Agda.Builtin.Strict.html#205" class="Bound">A</a> <a id="207" class="Symbol">:</a> <a id="209" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="213" href="Agda.Builtin.Strict.html#199" class="Bound">a</a><a id="214" class="Symbol">}</a> <a id="216" class="Symbol">{</a><a id="217" href="Agda.Builtin.Strict.html#217" class="Bound">B</a> <a id="219" class="Symbol">:</a> <a id="221" href="Agda.Builtin.Strict.html#205" class="Bound">A</a> <a id="223" class="Symbol"></a> <a id="225" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="229" href="Agda.Builtin.Strict.html#201" class="Bound">b</a><a id="230" class="Symbol">}</a> <a id="232" class="Symbol">(</a><a id="233" href="Agda.Builtin.Strict.html#233" class="Bound">x</a> <a id="235" class="Symbol">:</a> <a id="237" href="Agda.Builtin.Strict.html#205" class="Bound">A</a><a id="238" class="Symbol">)</a> <a id="240" class="Symbol"></a> <a id="242" class="Symbol">(∀</a> <a id="245" href="Agda.Builtin.Strict.html#245" class="Bound">x</a> <a id="247" class="Symbol"></a> <a id="249" href="Agda.Builtin.Strict.html#217" class="Bound">B</a> <a id="251" href="Agda.Builtin.Strict.html#245" class="Bound">x</a><a id="252" class="Symbol">)</a> <a id="254" class="Symbol"></a> <a id="256" href="Agda.Builtin.Strict.html#217" class="Bound">B</a> <a id="258" href="Agda.Builtin.Strict.html#233" class="Bound">x</a>
<a id="primForceLemma"></a><a id="262" href="Agda.Builtin.Strict.html#262" class="Primitive">primForceLemma</a> <a id="277" class="Symbol">:</a> <a id="279" class="Symbol"></a> <a id="281" class="Symbol">{</a><a id="282" href="Agda.Builtin.Strict.html#282" class="Bound">a</a> <a id="284" href="Agda.Builtin.Strict.html#284" class="Bound">b</a><a id="285" class="Symbol">}</a> <a id="287" class="Symbol">{</a><a id="288" href="Agda.Builtin.Strict.html#288" class="Bound">A</a> <a id="290" class="Symbol">:</a> <a id="292" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="296" href="Agda.Builtin.Strict.html#282" class="Bound">a</a><a id="297" class="Symbol">}</a> <a id="299" class="Symbol">{</a><a id="300" href="Agda.Builtin.Strict.html#300" class="Bound">B</a> <a id="302" class="Symbol">:</a> <a id="304" href="Agda.Builtin.Strict.html#288" class="Bound">A</a> <a id="306" class="Symbol"></a> <a id="308" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="312" href="Agda.Builtin.Strict.html#284" class="Bound">b</a><a id="313" class="Symbol">}</a> <a id="315" class="Symbol">(</a><a id="316" href="Agda.Builtin.Strict.html#316" class="Bound">x</a> <a id="318" class="Symbol">:</a> <a id="320" href="Agda.Builtin.Strict.html#288" class="Bound">A</a><a id="321" class="Symbol">)</a> <a id="323" class="Symbol">(</a><a id="324" href="Agda.Builtin.Strict.html#324" class="Bound">f</a> <a id="326" class="Symbol">:</a> <a id="328" class="Symbol"></a> <a id="330" href="Agda.Builtin.Strict.html#330" class="Bound">x</a> <a id="332" class="Symbol"></a> <a id="334" href="Agda.Builtin.Strict.html#300" class="Bound">B</a> <a id="336" href="Agda.Builtin.Strict.html#330" class="Bound">x</a><a id="337" class="Symbol">)</a> <a id="339" class="Symbol"></a> <a id="341" href="Agda.Builtin.Strict.html#179" class="Primitive">primForce</a> <a id="351" href="Agda.Builtin.Strict.html#316" class="Bound">x</a> <a id="353" href="Agda.Builtin.Strict.html#324" class="Bound">f</a> <a id="355" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="357" href="Agda.Builtin.Strict.html#324" class="Bound">f</a> <a id="359" href="Agda.Builtin.Strict.html#316" class="Bound">x</a>
</pre></body></html>

View File

@ -0,0 +1,12 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Agda.Builtin.Unit</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="Pragma">--no-universe-polymorphism</a>
<a id="71" class="Pragma">--no-sized-types</a> <a id="88" class="Pragma">--no-guardedness</a> <a id="105" class="Pragma">--no-subtyping</a> <a id="120" class="Symbol">#-}</a>
<a id="125" class="Keyword">module</a> <a id="132" href="Agda.Builtin.Unit.html" class="Module">Agda.Builtin.Unit</a> <a id="150" class="Keyword">where</a>
<a id="157" class="Keyword">record</a> <a id=""></a><a id="164" href="Agda.Builtin.Unit.html#164" class="Record"></a> <a id="166" class="Symbol">:</a> <a id="168" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="172" class="Keyword">where</a>
<a id="180" class="Keyword">instance</a> <a id="189" class="Keyword">constructor</a> <a id="tt"></a><a id="201" href="Agda.Builtin.Unit.html#201" class="InductiveConstructor">tt</a>
<a id="205" class="Symbol">{-#</a> <a id="209" class="Keyword">BUILTIN</a> <a id="217" class="Keyword">UNIT</a> <a id="222" href="Agda.Builtin.Unit.html#164" class="Record"></a> <a id="224" class="Symbol">#-}</a>
<a id="228" class="Symbol">{-#</a> <a id="232" class="Keyword">COMPILE</a> <a id="240" class="Keyword">GHC</a> <a id="244" href="Agda.Builtin.Unit.html#164" class="Record"></a> <a id="246" class="Pragma">=</a> <a id="248" class="Pragma">data</a> <a id="253" class="Pragma">()</a> <a id="256" class="Pragma">(())</a> <a id="261" class="Symbol">#-}</a>
</pre></body></html>

39
misc/Agda.Primitive.html Normal file
View File

@ -0,0 +1,39 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Agda.Primitive</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">-- The Agda primitives (preloaded).</a>
<a id="38" class="Symbol">{-#</a> <a id="42" class="Keyword">OPTIONS</a> <a id="50" class="Pragma">--without-K</a> <a id="62" class="Pragma">--no-subtyping</a> <a id="77" class="Pragma">--no-import-sorts</a> <a id="95" class="Symbol">#-}</a>
<a id="100" class="Keyword">module</a> <a id="107" href="Agda.Primitive.html" class="Module">Agda.Primitive</a> <a id="122" class="Keyword">where</a>
<a id="129" class="Comment">------------------------------------------------------------------------</a>
<a id="202" class="Comment">-- Universe levels</a>
<a id="221" class="Comment">------------------------------------------------------------------------</a>
<a id="295" class="Keyword">infixl</a> <a id="302" class="Number">6</a> <a id="304" href="Agda.Primitive.html#810" class="Primitive Operator">_⊔_</a>
<a id="309" class="Symbol">{-#</a> <a id="313" class="Keyword">BUILTIN</a> <a id="321" class="Keyword">TYPE</a> <a id="Set"></a><a id="326" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="330" class="Symbol">#-}</a>
<a id="334" class="Symbol">{-#</a> <a id="338" class="Keyword">BUILTIN</a> <a id="346" class="Keyword">PROP</a> <a id="Prop"></a><a id="351" href="Agda.Primitive.html#351" class="Primitive">Prop</a> <a id="356" class="Symbol">#-}</a>
<a id="360" class="Symbol">{-#</a> <a id="364" class="Keyword">BUILTIN</a> <a id="372" class="Keyword">SETOMEGA</a> <a id="Setω"></a><a id="381" href="Agda.Primitive.html#381" class="Primitive">Setω</a> <a id="386" class="Symbol">#-}</a>
<a id="390" class="Symbol">{-#</a> <a id="394" class="Keyword">BUILTIN</a> <a id="402" class="Keyword">STRICTSET</a> <a id="SSet"></a><a id="417" href="Agda.Primitive.html#417" class="Primitive">SSet</a> <a id="423" class="Symbol">#-}</a>
<a id="427" class="Symbol">{-#</a> <a id="431" class="Keyword">BUILTIN</a> <a id="439" class="Keyword">STRICTSETOMEGA</a> <a id="SSetω"></a><a id="454" href="Agda.Primitive.html#454" class="Primitive">SSetω</a> <a id="460" class="Symbol">#-}</a>
<a id="465" class="Comment">-- Level is the first thing we need to define.</a>
<a id="512" class="Comment">-- The other postulates can only be checked if built-in Level is known.</a>
<a id="585" class="Keyword">postulate</a>
<a id="Level"></a><a id="597" href="Agda.Primitive.html#597" class="Postulate">Level</a> <a id="603" class="Symbol">:</a> <a id="605" href="Agda.Primitive.html#326" class="Primitive">Set</a>
<a id="610" class="Comment">-- MAlonzo compiles Level to (). This should be safe, because it is</a>
<a id="678" class="Comment">-- not possible to pattern match on levels.</a>
<a id="723" class="Symbol">{-#</a> <a id="727" class="Keyword">BUILTIN</a> <a id="735" class="Keyword">LEVEL</a> <a id="741" href="Agda.Primitive.html#597" class="Postulate">Level</a> <a id="747" class="Symbol">#-}</a>
<a id="752" class="Keyword">postulate</a>
<a id="lzero"></a><a id="764" href="Agda.Primitive.html#764" class="Postulate">lzero</a> <a id="770" class="Symbol">:</a> <a id="772" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="lsuc"></a><a id="780" href="Agda.Primitive.html#780" class="Postulate">lsuc</a> <a id="786" class="Symbol">:</a> <a id="788" class="Symbol">(</a><a id="789" href="Agda.Primitive.html#789" class="Bound"></a> <a id="791" class="Symbol">:</a> <a id="793" href="Agda.Primitive.html#597" class="Postulate">Level</a><a id="798" class="Symbol">)</a> <a id="800" class="Symbol"></a> <a id="802" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="_⊔_"></a><a id="810" href="Agda.Primitive.html#810" class="Postulate Operator">_⊔_</a> <a id="816" class="Symbol">:</a> <a id="818" class="Symbol">(</a><a id="819" href="Agda.Primitive.html#819" class="Bound">ℓ₁</a> <a id="822" href="Agda.Primitive.html#822" class="Bound">ℓ₂</a> <a id="825" class="Symbol">:</a> <a id="827" href="Agda.Primitive.html#597" class="Postulate">Level</a><a id="832" class="Symbol">)</a> <a id="834" class="Symbol"></a> <a id="836" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="843" class="Symbol">{-#</a> <a id="847" class="Keyword">BUILTIN</a> <a id="855" class="Keyword">LEVELZERO</a> <a id="865" href="Agda.Primitive.html#764" class="Primitive">lzero</a> <a id="871" class="Symbol">#-}</a>
<a id="875" class="Symbol">{-#</a> <a id="879" class="Keyword">BUILTIN</a> <a id="887" class="Keyword">LEVELSUC</a> <a id="897" href="Agda.Primitive.html#780" class="Primitive">lsuc</a> <a id="903" class="Symbol">#-}</a>
<a id="907" class="Symbol">{-#</a> <a id="911" class="Keyword">BUILTIN</a> <a id="919" class="Keyword">LEVELMAX</a> <a id="929" href="Agda.Primitive.html#810" class="Primitive Operator">_⊔_</a> <a id="935" class="Symbol">#-}</a>
</pre></body></html>

41
misc/Agda.css Normal file
View File

@ -0,0 +1,41 @@
/* Aspects. */
.Agda .Comment { color: #B22222 }
.Agda .Background {}
.Agda .Markup { color: #000000 }
.Agda .Keyword { color: #CD6600 }
.Agda .String { color: #B22222 }
.Agda .Number { color: #A020F0 }
.Agda .Symbol { color: #404040 }
.Agda .PrimitiveType { color: #0000CD }
.Agda .Pragma { color: black }
.Agda .Operator {}
.Agda .Hole { background: #B4EEB4 }
/* NameKinds. */
.Agda .Bound { color: black }
.Agda .Generalizable { color: black }
.Agda .InductiveConstructor { color: #008B00 }
.Agda .CoinductiveConstructor { color: #8B7500 }
.Agda .Datatype { color: #0000CD }
.Agda .Field { color: #EE1289 }
.Agda .Function { color: #0000CD }
.Agda .Module { color: #A020F0 }
.Agda .Postulate { color: #0000CD }
.Agda .Primitive { color: #0000CD }
.Agda .Record { color: #0000CD }
/* OtherAspects. */
.Agda .DottedPattern {}
.Agda .UnsolvedMeta { color: black; background: yellow }
.Agda .UnsolvedConstraint { color: black; background: yellow }
.Agda .TerminationProblem { color: black; background: #FFA07A }
.Agda .IncompletePattern { color: black; background: #F5DEB3 }
.Agda .Error { color: red; text-decoration: underline }
.Agda .TypeChecks { color: black; background: #ADD8E6 }
.Agda .Deadcode { color: black; background: #808080 }
.Agda .ShadowingInTelescope { color: black; background: #808080 }
/* Standard attributes. */
.Agda a { text-decoration: none }
.Agda a[href]:hover { background-color: #B4EEB4 }
.Agda [href].hover-highlight { background-color: #B4EEB4; }

934
misc/Algebra.Bundles.html Normal file
View File

@ -0,0 +1,934 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Algebra.Bundles</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Definitions of algebraic structures like monoids and rings</a>
<a id="168" class="Comment">-- (packed in records together with sets, operations, etc.)</a>
<a id="228" class="Comment">------------------------------------------------------------------------</a>
<a id="302" class="Comment">-- The contents of this module should be accessed via `Algebra`.</a>
<a id="368" class="Symbol">{-#</a> <a id="372" class="Keyword">OPTIONS</a> <a id="380" class="Pragma">--without-K</a> <a id="392" class="Pragma">--safe</a> <a id="399" class="Symbol">#-}</a>
<a id="404" class="Keyword">module</a> <a id="411" href="Algebra.Bundles.html" class="Module">Algebra.Bundles</a> <a id="427" class="Keyword">where</a>
<a id="434" class="Keyword">open</a> <a id="439" class="Keyword">import</a> <a id="446" href="Algebra.Core.html" class="Module">Algebra.Core</a>
<a id="459" class="Keyword">open</a> <a id="464" class="Keyword">import</a> <a id="471" href="Algebra.Structures.html" class="Module">Algebra.Structures</a>
<a id="490" class="Keyword">open</a> <a id="495" class="Keyword">import</a> <a id="502" href="Relation.Binary.html" class="Module">Relation.Binary</a>
<a id="518" class="Keyword">open</a> <a id="523" class="Keyword">import</a> <a id="530" href="Function.Base.html" class="Module">Function.Base</a>
<a id="544" class="Keyword">import</a> <a id="551" href="Relation.Nullary.html" class="Module">Relation.Nullary</a> <a id="568" class="Symbol">as</a> <a id="571" class="Module">N</a>
<a id="573" class="Keyword">open</a> <a id="578" class="Keyword">import</a> <a id="585" href="Level.html" class="Module">Level</a>
<a id="592" class="Comment">------------------------------------------------------------------------</a>
<a id="665" class="Comment">-- Bundles with 1 binary operation</a>
<a id="700" class="Comment">------------------------------------------------------------------------</a>
<a id="774" class="Keyword">record</a> <a id="RawMagma"></a><a id="781" href="Algebra.Bundles.html#781" class="Record">RawMagma</a> <a id="790" href="Algebra.Bundles.html#790" class="Bound">c</a> <a id="792" href="Algebra.Bundles.html#792" class="Bound"></a> <a id="794" class="Symbol">:</a> <a id="796" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="800" class="Symbol">(</a><a id="801" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="805" class="Symbol">(</a><a id="806" href="Algebra.Bundles.html#790" class="Bound">c</a> <a id="808" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="810" href="Algebra.Bundles.html#792" class="Bound"></a><a id="811" class="Symbol">))</a> <a id="814" class="Keyword">where</a>
<a id="822" class="Keyword">infixl</a> <a id="829" class="Number">7</a> <a id="831" href="Algebra.Bundles.html#910" class="Field Operator">_∙_</a>
<a id="837" class="Keyword">infix</a> <a id="844" class="Number">4</a> <a id="846" href="Algebra.Bundles.html#882" class="Field Operator">_≈_</a>
<a id="852" class="Keyword">field</a>
<a id="RawMagma.Carrier"></a><a id="862" href="Algebra.Bundles.html#862" class="Field">Carrier</a> <a id="870" class="Symbol">:</a> <a id="872" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="876" href="Algebra.Bundles.html#790" class="Bound">c</a>
<a id="RawMagma._≈_"></a><a id="882" href="Algebra.Bundles.html#882" class="Field Operator">_≈_</a> <a id="890" class="Symbol">:</a> <a id="892" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="896" href="Algebra.Bundles.html#862" class="Field">Carrier</a> <a id="904" href="Algebra.Bundles.html#792" class="Bound"></a>
<a id="RawMagma._∙_"></a><a id="910" href="Algebra.Bundles.html#910" class="Field Operator">_∙_</a> <a id="918" class="Symbol">:</a> <a id="920" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="924" href="Algebra.Bundles.html#862" class="Field">Carrier</a>
<a id="935" class="Keyword">infix</a> <a id="941" class="Number">4</a> <a id="943" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a>
<a id="RawMagma._≉_"></a><a id="949" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a> <a id="953" class="Symbol">:</a> <a id="955" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="959" href="Algebra.Bundles.html#862" class="Field">Carrier</a> <a id="967" class="Symbol">_</a>
<a id="971" href="Algebra.Bundles.html#971" class="Bound">x</a> <a id="973" href="Algebra.Bundles.html#949" class="Function Operator"></a> <a id="975" href="Algebra.Bundles.html#975" class="Bound">y</a> <a id="977" class="Symbol">=</a> <a id="979" href="Relation.Nullary.html#656" class="Function Operator">N.¬</a> <a id="983" class="Symbol">(</a><a id="984" href="Algebra.Bundles.html#971" class="Bound">x</a> <a id="986" href="Algebra.Bundles.html#882" class="Field Operator"></a> <a id="988" href="Algebra.Bundles.html#975" class="Bound">y</a><a id="989" class="Symbol">)</a>
<a id="993" class="Keyword">record</a> <a id="Magma"></a><a id="1000" href="Algebra.Bundles.html#1000" class="Record">Magma</a> <a id="1006" href="Algebra.Bundles.html#1006" class="Bound">c</a> <a id="1008" href="Algebra.Bundles.html#1008" class="Bound"></a> <a id="1010" class="Symbol">:</a> <a id="1012" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1016" class="Symbol">(</a><a id="1017" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="1021" class="Symbol">(</a><a id="1022" href="Algebra.Bundles.html#1006" class="Bound">c</a> <a id="1024" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1026" href="Algebra.Bundles.html#1008" class="Bound"></a><a id="1027" class="Symbol">))</a> <a id="1030" class="Keyword">where</a>
<a id="1038" class="Keyword">infixl</a> <a id="1045" class="Number">7</a> <a id="1047" href="Algebra.Bundles.html#1126" class="Field Operator">_∙_</a>
<a id="1053" class="Keyword">infix</a> <a id="1060" class="Number">4</a> <a id="1062" href="Algebra.Bundles.html#1098" class="Field Operator">_≈_</a>
<a id="1068" class="Keyword">field</a>
<a id="Magma.Carrier"></a><a id="1078" href="Algebra.Bundles.html#1078" class="Field">Carrier</a> <a id="1086" class="Symbol">:</a> <a id="1088" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1092" href="Algebra.Bundles.html#1006" class="Bound">c</a>
<a id="Magma._≈_"></a><a id="1098" href="Algebra.Bundles.html#1098" class="Field Operator">_≈_</a> <a id="1106" class="Symbol">:</a> <a id="1108" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="1112" href="Algebra.Bundles.html#1078" class="Field">Carrier</a> <a id="1120" href="Algebra.Bundles.html#1008" class="Bound"></a>
<a id="Magma._∙_"></a><a id="1126" href="Algebra.Bundles.html#1126" class="Field Operator">_∙_</a> <a id="1134" class="Symbol">:</a> <a id="1136" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="1140" href="Algebra.Bundles.html#1078" class="Field">Carrier</a>
<a id="Magma.isMagma"></a><a id="1152" href="Algebra.Bundles.html#1152" class="Field">isMagma</a> <a id="1160" class="Symbol">:</a> <a id="1162" href="Algebra.Structures.html#1120" class="Record">IsMagma</a> <a id="1170" href="Algebra.Bundles.html#1098" class="Field Operator">_≈_</a> <a id="1174" href="Algebra.Bundles.html#1126" class="Field Operator">_∙_</a>
<a id="1181" class="Keyword">open</a> <a id="1186" href="Algebra.Structures.html#1120" class="Module">IsMagma</a> <a id="1194" href="Algebra.Bundles.html#1152" class="Field">isMagma</a> <a id="1202" class="Keyword">public</a>
<a id="Magma.rawMagma"></a><a id="1212" href="Algebra.Bundles.html#1212" class="Function">rawMagma</a> <a id="1221" class="Symbol">:</a> <a id="1223" href="Algebra.Bundles.html#781" class="Record">RawMagma</a> <a id="1232" class="Symbol">_</a> <a id="1234" class="Symbol">_</a>
<a id="1238" href="Algebra.Bundles.html#1212" class="Function">rawMagma</a> <a id="1247" class="Symbol">=</a> <a id="1249" class="Keyword">record</a> <a id="1256" class="Symbol">{</a> <a id="1258" href="Algebra.Bundles.html#882" class="Field Operator">_≈_</a> <a id="1262" class="Symbol">=</a> <a id="1264" href="Algebra.Bundles.html#1098" class="Field Operator">_≈_</a><a id="1267" class="Symbol">;</a> <a id="1269" href="Algebra.Bundles.html#910" class="Field Operator">_∙_</a> <a id="1273" class="Symbol">=</a> <a id="1275" href="Algebra.Bundles.html#1126" class="Field Operator">_∙_</a> <a id="1279" class="Symbol">}</a>
<a id="1284" class="Keyword">open</a> <a id="1289" href="Algebra.Bundles.html#781" class="Module">RawMagma</a> <a id="1298" href="Algebra.Bundles.html#1212" class="Function">rawMagma</a> <a id="1307" class="Keyword">public</a>
<a id="1318" class="Keyword">using</a> <a id="1324" class="Symbol">(</a><a id="1325" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a><a id="1328" class="Symbol">)</a>
<a id="1332" class="Keyword">record</a> <a id="SelectiveMagma"></a><a id="1339" href="Algebra.Bundles.html#1339" class="Record">SelectiveMagma</a> <a id="1354" href="Algebra.Bundles.html#1354" class="Bound">c</a> <a id="1356" href="Algebra.Bundles.html#1356" class="Bound"></a> <a id="1358" class="Symbol">:</a> <a id="1360" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1364" class="Symbol">(</a><a id="1365" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="1369" class="Symbol">(</a><a id="1370" href="Algebra.Bundles.html#1354" class="Bound">c</a> <a id="1372" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1374" href="Algebra.Bundles.html#1356" class="Bound"></a><a id="1375" class="Symbol">))</a> <a id="1378" class="Keyword">where</a>
<a id="1386" class="Keyword">infixl</a> <a id="1393" class="Number">7</a> <a id="1395" href="Algebra.Bundles.html#1492" class="Field Operator">_∙_</a>
<a id="1401" class="Keyword">infix</a> <a id="1408" class="Number">4</a> <a id="1410" href="Algebra.Bundles.html#1455" class="Field Operator">_≈_</a>
<a id="1416" class="Keyword">field</a>
<a id="SelectiveMagma.Carrier"></a><a id="1426" href="Algebra.Bundles.html#1426" class="Field">Carrier</a> <a id="1443" class="Symbol">:</a> <a id="1445" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1449" href="Algebra.Bundles.html#1354" class="Bound">c</a>
<a id="SelectiveMagma._≈_"></a><a id="1455" href="Algebra.Bundles.html#1455" class="Field Operator">_≈_</a> <a id="1472" class="Symbol">:</a> <a id="1474" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="1478" href="Algebra.Bundles.html#1426" class="Field">Carrier</a> <a id="1486" href="Algebra.Bundles.html#1356" class="Bound"></a>
<a id="SelectiveMagma._∙_"></a><a id="1492" href="Algebra.Bundles.html#1492" class="Field Operator">_∙_</a> <a id="1509" class="Symbol">:</a> <a id="1511" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="1515" href="Algebra.Bundles.html#1426" class="Field">Carrier</a>
<a id="SelectiveMagma.isSelectiveMagma"></a><a id="1527" href="Algebra.Bundles.html#1527" class="Field">isSelectiveMagma</a> <a id="1544" class="Symbol">:</a> <a id="1546" href="Algebra.Structures.html#1640" class="Record">IsSelectiveMagma</a> <a id="1563" href="Algebra.Bundles.html#1455" class="Field Operator">_≈_</a> <a id="1567" href="Algebra.Bundles.html#1492" class="Field Operator">_∙_</a>
<a id="1574" class="Keyword">open</a> <a id="1579" href="Algebra.Structures.html#1640" class="Module">IsSelectiveMagma</a> <a id="1596" href="Algebra.Bundles.html#1527" class="Field">isSelectiveMagma</a> <a id="1613" class="Keyword">public</a>
<a id="SelectiveMagma.magma"></a><a id="1623" href="Algebra.Bundles.html#1623" class="Function">magma</a> <a id="1629" class="Symbol">:</a> <a id="1631" href="Algebra.Bundles.html#1000" class="Record">Magma</a> <a id="1637" href="Algebra.Bundles.html#1354" class="Bound">c</a> <a id="1639" href="Algebra.Bundles.html#1356" class="Bound"></a>
<a id="1643" href="Algebra.Bundles.html#1623" class="Function">magma</a> <a id="1649" class="Symbol">=</a> <a id="1651" class="Keyword">record</a> <a id="1658" class="Symbol">{</a> <a id="1660" href="Algebra.Bundles.html#1152" class="Field">isMagma</a> <a id="1668" class="Symbol">=</a> <a id="1670" href="Algebra.Structures.html#1701" class="Function">isMagma</a> <a id="1678" class="Symbol">}</a>
<a id="1683" class="Keyword">open</a> <a id="1688" href="Algebra.Bundles.html#1000" class="Module">Magma</a> <a id="1694" href="Algebra.Bundles.html#1623" class="Function">magma</a> <a id="1700" class="Keyword">public</a> <a id="1707" class="Keyword">using</a> <a id="1713" class="Symbol">(</a><a id="1714" href="Algebra.Bundles.html#1212" class="Function">rawMagma</a><a id="1722" class="Symbol">)</a>
<a id="1726" class="Keyword">record</a> <a id="CommutativeMagma"></a><a id="1733" href="Algebra.Bundles.html#1733" class="Record">CommutativeMagma</a> <a id="1750" href="Algebra.Bundles.html#1750" class="Bound">c</a> <a id="1752" href="Algebra.Bundles.html#1752" class="Bound"></a> <a id="1754" class="Symbol">:</a> <a id="1756" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1760" class="Symbol">(</a><a id="1761" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="1765" class="Symbol">(</a><a id="1766" href="Algebra.Bundles.html#1750" class="Bound">c</a> <a id="1768" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1770" href="Algebra.Bundles.html#1752" class="Bound"></a><a id="1771" class="Symbol">))</a> <a id="1774" class="Keyword">where</a>
<a id="1782" class="Keyword">infixl</a> <a id="1789" class="Number">7</a> <a id="1791" href="Algebra.Bundles.html#1892" class="Field Operator">_∙_</a>
<a id="1797" class="Keyword">infix</a> <a id="1804" class="Number">4</a> <a id="1806" href="Algebra.Bundles.html#1853" class="Field Operator">_≈_</a>
<a id="1812" class="Keyword">field</a>
<a id="CommutativeMagma.Carrier"></a><a id="1822" href="Algebra.Bundles.html#1822" class="Field">Carrier</a> <a id="1841" class="Symbol">:</a> <a id="1843" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1847" href="Algebra.Bundles.html#1750" class="Bound">c</a>
<a id="CommutativeMagma._≈_"></a><a id="1853" href="Algebra.Bundles.html#1853" class="Field Operator">_≈_</a> <a id="1872" class="Symbol">:</a> <a id="1874" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="1878" href="Algebra.Bundles.html#1822" class="Field">Carrier</a> <a id="1886" href="Algebra.Bundles.html#1752" class="Bound"></a>
<a id="CommutativeMagma._∙_"></a><a id="1892" href="Algebra.Bundles.html#1892" class="Field Operator">_∙_</a> <a id="1911" class="Symbol">:</a> <a id="1913" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="1917" href="Algebra.Bundles.html#1822" class="Field">Carrier</a>
<a id="CommutativeMagma.isCommutativeMagma"></a><a id="1929" href="Algebra.Bundles.html#1929" class="Field">isCommutativeMagma</a> <a id="1948" class="Symbol">:</a> <a id="1950" href="Algebra.Structures.html#1489" class="Record">IsCommutativeMagma</a> <a id="1969" href="Algebra.Bundles.html#1853" class="Field Operator">_≈_</a> <a id="1973" href="Algebra.Bundles.html#1892" class="Field Operator">_∙_</a>
<a id="1980" class="Keyword">open</a> <a id="1985" href="Algebra.Structures.html#1489" class="Module">IsCommutativeMagma</a> <a id="2004" href="Algebra.Bundles.html#1929" class="Field">isCommutativeMagma</a> <a id="2023" class="Keyword">public</a>
<a id="CommutativeMagma.magma"></a><a id="2033" href="Algebra.Bundles.html#2033" class="Function">magma</a> <a id="2039" class="Symbol">:</a> <a id="2041" href="Algebra.Bundles.html#1000" class="Record">Magma</a> <a id="2047" href="Algebra.Bundles.html#1750" class="Bound">c</a> <a id="2049" href="Algebra.Bundles.html#1752" class="Bound"></a>
<a id="2053" href="Algebra.Bundles.html#2033" class="Function">magma</a> <a id="2059" class="Symbol">=</a> <a id="2061" class="Keyword">record</a> <a id="2068" class="Symbol">{</a> <a id="2070" href="Algebra.Bundles.html#1152" class="Field">isMagma</a> <a id="2078" class="Symbol">=</a> <a id="2080" href="Algebra.Structures.html#1552" class="Function">isMagma</a> <a id="2088" class="Symbol">}</a>
<a id="2093" class="Keyword">open</a> <a id="2098" href="Algebra.Bundles.html#1000" class="Module">Magma</a> <a id="2104" href="Algebra.Bundles.html#2033" class="Function">magma</a> <a id="2110" class="Keyword">public</a> <a id="2117" class="Keyword">using</a> <a id="2123" class="Symbol">(</a><a id="2124" href="Algebra.Bundles.html#1212" class="Function">rawMagma</a><a id="2132" class="Symbol">)</a>
<a id="2136" class="Keyword">record</a> <a id="Semigroup"></a><a id="2143" href="Algebra.Bundles.html#2143" class="Record">Semigroup</a> <a id="2153" href="Algebra.Bundles.html#2153" class="Bound">c</a> <a id="2155" href="Algebra.Bundles.html#2155" class="Bound"></a> <a id="2157" class="Symbol">:</a> <a id="2159" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2163" class="Symbol">(</a><a id="2164" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="2168" class="Symbol">(</a><a id="2169" href="Algebra.Bundles.html#2153" class="Bound">c</a> <a id="2171" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2173" href="Algebra.Bundles.html#2155" class="Bound"></a><a id="2174" class="Symbol">))</a> <a id="2177" class="Keyword">where</a>
<a id="2185" class="Keyword">infixl</a> <a id="2192" class="Number">7</a> <a id="2194" href="Algebra.Bundles.html#2281" class="Field Operator">_∙_</a>
<a id="2200" class="Keyword">infix</a> <a id="2207" class="Number">4</a> <a id="2209" href="Algebra.Bundles.html#2249" class="Field Operator">_≈_</a>
<a id="2215" class="Keyword">field</a>
<a id="Semigroup.Carrier"></a><a id="2225" href="Algebra.Bundles.html#2225" class="Field">Carrier</a> <a id="2237" class="Symbol">:</a> <a id="2239" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2243" href="Algebra.Bundles.html#2153" class="Bound">c</a>
<a id="Semigroup._≈_"></a><a id="2249" href="Algebra.Bundles.html#2249" class="Field Operator">_≈_</a> <a id="2261" class="Symbol">:</a> <a id="2263" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="2267" href="Algebra.Bundles.html#2225" class="Field">Carrier</a> <a id="2275" href="Algebra.Bundles.html#2155" class="Bound"></a>
<a id="Semigroup._∙_"></a><a id="2281" href="Algebra.Bundles.html#2281" class="Field Operator">_∙_</a> <a id="2293" class="Symbol">:</a> <a id="2295" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="2299" href="Algebra.Bundles.html#2225" class="Field">Carrier</a>
<a id="Semigroup.isSemigroup"></a><a id="2311" href="Algebra.Bundles.html#2311" class="Field">isSemigroup</a> <a id="2323" class="Symbol">:</a> <a id="2325" href="Algebra.Structures.html#1787" class="Record">IsSemigroup</a> <a id="2337" href="Algebra.Bundles.html#2249" class="Field Operator">_≈_</a> <a id="2341" href="Algebra.Bundles.html#2281" class="Field Operator">_∙_</a>
<a id="2348" class="Keyword">open</a> <a id="2353" href="Algebra.Structures.html#1787" class="Module">IsSemigroup</a> <a id="2365" href="Algebra.Bundles.html#2311" class="Field">isSemigroup</a> <a id="2377" class="Keyword">public</a>
<a id="Semigroup.magma"></a><a id="2387" href="Algebra.Bundles.html#2387" class="Function">magma</a> <a id="2393" class="Symbol">:</a> <a id="2395" href="Algebra.Bundles.html#1000" class="Record">Magma</a> <a id="2401" href="Algebra.Bundles.html#2153" class="Bound">c</a> <a id="2403" href="Algebra.Bundles.html#2155" class="Bound"></a>
<a id="2407" href="Algebra.Bundles.html#2387" class="Function">magma</a> <a id="2413" class="Symbol">=</a> <a id="2415" class="Keyword">record</a> <a id="2422" class="Symbol">{</a> <a id="2424" href="Algebra.Bundles.html#1152" class="Field">isMagma</a> <a id="2432" class="Symbol">=</a> <a id="2434" href="Algebra.Structures.html#1843" class="Function">isMagma</a> <a id="2442" class="Symbol">}</a>
<a id="2447" class="Keyword">open</a> <a id="2452" href="Algebra.Bundles.html#1000" class="Module">Magma</a> <a id="2458" href="Algebra.Bundles.html#2387" class="Function">magma</a> <a id="2464" class="Keyword">public</a>
<a id="2475" class="Keyword">using</a> <a id="2481" class="Symbol">(</a><a id="2482" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a><a id="2485" class="Symbol">;</a> <a id="2487" href="Algebra.Bundles.html#1212" class="Function">rawMagma</a><a id="2495" class="Symbol">)</a>
<a id="2499" class="Keyword">record</a> <a id="Band"></a><a id="2506" href="Algebra.Bundles.html#2506" class="Record">Band</a> <a id="2511" href="Algebra.Bundles.html#2511" class="Bound">c</a> <a id="2513" href="Algebra.Bundles.html#2513" class="Bound"></a> <a id="2515" class="Symbol">:</a> <a id="2517" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2521" class="Symbol">(</a><a id="2522" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="2526" class="Symbol">(</a><a id="2527" href="Algebra.Bundles.html#2511" class="Bound">c</a> <a id="2529" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2531" href="Algebra.Bundles.html#2513" class="Bound"></a><a id="2532" class="Symbol">))</a> <a id="2535" class="Keyword">where</a>
<a id="2543" class="Keyword">infixl</a> <a id="2550" class="Number">7</a> <a id="2552" href="Algebra.Bundles.html#2631" class="Field Operator">_∙_</a>
<a id="2558" class="Keyword">infix</a> <a id="2565" class="Number">4</a> <a id="2567" href="Algebra.Bundles.html#2603" class="Field Operator">_≈_</a>
<a id="2573" class="Keyword">field</a>
<a id="Band.Carrier"></a><a id="2583" href="Algebra.Bundles.html#2583" class="Field">Carrier</a> <a id="2591" class="Symbol">:</a> <a id="2593" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2597" href="Algebra.Bundles.html#2511" class="Bound">c</a>
<a id="Band._≈_"></a><a id="2603" href="Algebra.Bundles.html#2603" class="Field Operator">_≈_</a> <a id="2611" class="Symbol">:</a> <a id="2613" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="2617" href="Algebra.Bundles.html#2583" class="Field">Carrier</a> <a id="2625" href="Algebra.Bundles.html#2513" class="Bound"></a>
<a id="Band._∙_"></a><a id="2631" href="Algebra.Bundles.html#2631" class="Field Operator">_∙_</a> <a id="2639" class="Symbol">:</a> <a id="2641" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="2645" href="Algebra.Bundles.html#2583" class="Field">Carrier</a>
<a id="Band.isBand"></a><a id="2657" href="Algebra.Bundles.html#2657" class="Field">isBand</a> <a id="2665" class="Symbol">:</a> <a id="2667" href="Algebra.Structures.html#1931" class="Record">IsBand</a> <a id="2674" href="Algebra.Bundles.html#2603" class="Field Operator">_≈_</a> <a id="2678" href="Algebra.Bundles.html#2631" class="Field Operator">_∙_</a>
<a id="2685" class="Keyword">open</a> <a id="2690" href="Algebra.Structures.html#1931" class="Module">IsBand</a> <a id="2697" href="Algebra.Bundles.html#2657" class="Field">isBand</a> <a id="2704" class="Keyword">public</a>
<a id="Band.semigroup"></a><a id="2714" href="Algebra.Bundles.html#2714" class="Function">semigroup</a> <a id="2724" class="Symbol">:</a> <a id="2726" href="Algebra.Bundles.html#2143" class="Record">Semigroup</a> <a id="2736" href="Algebra.Bundles.html#2511" class="Bound">c</a> <a id="2738" href="Algebra.Bundles.html#2513" class="Bound"></a>
<a id="2742" href="Algebra.Bundles.html#2714" class="Function">semigroup</a> <a id="2752" class="Symbol">=</a> <a id="2754" class="Keyword">record</a> <a id="2761" class="Symbol">{</a> <a id="2763" href="Algebra.Bundles.html#2311" class="Field">isSemigroup</a> <a id="2775" class="Symbol">=</a> <a id="2777" href="Algebra.Structures.html#1982" class="Function">isSemigroup</a> <a id="2789" class="Symbol">}</a>
<a id="2794" class="Keyword">open</a> <a id="2799" href="Algebra.Bundles.html#2143" class="Module">Semigroup</a> <a id="2809" href="Algebra.Bundles.html#2714" class="Function">semigroup</a> <a id="2819" class="Keyword">public</a>
<a id="2830" class="Keyword">using</a> <a id="2836" class="Symbol">(</a><a id="2837" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a><a id="2840" class="Symbol">;</a> <a id="2842" href="Algebra.Bundles.html#2387" class="Function">magma</a><a id="2847" class="Symbol">;</a> <a id="2849" href="Algebra.Bundles.html#1212" class="Function">rawMagma</a><a id="2857" class="Symbol">)</a>
<a id="2861" class="Keyword">record</a> <a id="CommutativeSemigroup"></a><a id="2868" href="Algebra.Bundles.html#2868" class="Record">CommutativeSemigroup</a> <a id="2889" href="Algebra.Bundles.html#2889" class="Bound">c</a> <a id="2891" href="Algebra.Bundles.html#2891" class="Bound"></a> <a id="2893" class="Symbol">:</a> <a id="2895" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2899" class="Symbol">(</a><a id="2900" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="2904" class="Symbol">(</a><a id="2905" href="Algebra.Bundles.html#2889" class="Bound">c</a> <a id="2907" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2909" href="Algebra.Bundles.html#2891" class="Bound"></a><a id="2910" class="Symbol">))</a> <a id="2913" class="Keyword">where</a>
<a id="2921" class="Keyword">infixl</a> <a id="2928" class="Number">7</a> <a id="2930" href="Algebra.Bundles.html#3041" class="Field Operator">_∙_</a>
<a id="2936" class="Keyword">infix</a> <a id="2943" class="Number">4</a> <a id="2945" href="Algebra.Bundles.html#2997" class="Field Operator">_≈_</a>
<a id="2951" class="Keyword">field</a>
<a id="CommutativeSemigroup.Carrier"></a><a id="2961" href="Algebra.Bundles.html#2961" class="Field">Carrier</a> <a id="2985" class="Symbol">:</a> <a id="2987" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2991" href="Algebra.Bundles.html#2889" class="Bound">c</a>
<a id="CommutativeSemigroup._≈_"></a><a id="2997" href="Algebra.Bundles.html#2997" class="Field Operator">_≈_</a> <a id="3021" class="Symbol">:</a> <a id="3023" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="3027" href="Algebra.Bundles.html#2961" class="Field">Carrier</a> <a id="3035" href="Algebra.Bundles.html#2891" class="Bound"></a>
<a id="CommutativeSemigroup._∙_"></a><a id="3041" href="Algebra.Bundles.html#3041" class="Field Operator">_∙_</a> <a id="3065" class="Symbol">:</a> <a id="3067" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="3071" href="Algebra.Bundles.html#2961" class="Field">Carrier</a>
<a id="CommutativeSemigroup.isCommutativeSemigroup"></a><a id="3083" href="Algebra.Bundles.html#3083" class="Field">isCommutativeSemigroup</a> <a id="3107" class="Symbol">:</a> <a id="3109" href="Algebra.Structures.html#2089" class="Record">IsCommutativeSemigroup</a> <a id="3132" href="Algebra.Bundles.html#2997" class="Field Operator">_≈_</a> <a id="3136" href="Algebra.Bundles.html#3041" class="Field Operator">_∙_</a>
<a id="3143" class="Keyword">open</a> <a id="3148" href="Algebra.Structures.html#2089" class="Module">IsCommutativeSemigroup</a> <a id="3171" href="Algebra.Bundles.html#3083" class="Field">isCommutativeSemigroup</a> <a id="3194" class="Keyword">public</a>
<a id="CommutativeSemigroup.semigroup"></a><a id="3204" href="Algebra.Bundles.html#3204" class="Function">semigroup</a> <a id="3214" class="Symbol">:</a> <a id="3216" href="Algebra.Bundles.html#2143" class="Record">Semigroup</a> <a id="3226" href="Algebra.Bundles.html#2889" class="Bound">c</a> <a id="3228" href="Algebra.Bundles.html#2891" class="Bound"></a>
<a id="3232" href="Algebra.Bundles.html#3204" class="Function">semigroup</a> <a id="3242" class="Symbol">=</a> <a id="3244" class="Keyword">record</a> <a id="3251" class="Symbol">{</a> <a id="3253" href="Algebra.Bundles.html#2311" class="Field">isSemigroup</a> <a id="3265" class="Symbol">=</a> <a id="3267" href="Algebra.Structures.html#2156" class="Function">isSemigroup</a> <a id="3279" class="Symbol">}</a>
<a id="3284" class="Keyword">open</a> <a id="3289" href="Algebra.Bundles.html#2143" class="Module">Semigroup</a> <a id="3299" href="Algebra.Bundles.html#3204" class="Function">semigroup</a> <a id="3309" class="Keyword">public</a>
<a id="3320" class="Keyword">using</a> <a id="3326" class="Symbol">(</a><a id="3327" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a><a id="3330" class="Symbol">;</a> <a id="3332" href="Algebra.Bundles.html#2387" class="Function">magma</a><a id="3337" class="Symbol">;</a> <a id="3339" href="Algebra.Bundles.html#1212" class="Function">rawMagma</a><a id="3347" class="Symbol">)</a>
<a id="CommutativeSemigroup.commutativeMagma"></a><a id="3352" href="Algebra.Bundles.html#3352" class="Function">commutativeMagma</a> <a id="3369" class="Symbol">:</a> <a id="3371" href="Algebra.Bundles.html#1733" class="Record">CommutativeMagma</a> <a id="3388" href="Algebra.Bundles.html#2889" class="Bound">c</a> <a id="3390" href="Algebra.Bundles.html#2891" class="Bound"></a>
<a id="3394" href="Algebra.Bundles.html#3352" class="Function">commutativeMagma</a> <a id="3411" class="Symbol">=</a> <a id="3413" class="Keyword">record</a> <a id="3420" class="Symbol">{</a> <a id="3422" href="Algebra.Bundles.html#1929" class="Field">isCommutativeMagma</a> <a id="3441" class="Symbol">=</a> <a id="3443" href="Algebra.Structures.html#2258" class="Function">isCommutativeMagma</a> <a id="3462" class="Symbol">}</a>
<a id="3466" class="Keyword">record</a> <a id="Semilattice"></a><a id="3473" href="Algebra.Bundles.html#3473" class="Record">Semilattice</a> <a id="3485" href="Algebra.Bundles.html#3485" class="Bound">c</a> <a id="3487" href="Algebra.Bundles.html#3487" class="Bound"></a> <a id="3489" class="Symbol">:</a> <a id="3491" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3495" class="Symbol">(</a><a id="3496" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="3500" class="Symbol">(</a><a id="3501" href="Algebra.Bundles.html#3485" class="Bound">c</a> <a id="3503" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="3505" href="Algebra.Bundles.html#3487" class="Bound"></a><a id="3506" class="Symbol">))</a> <a id="3509" class="Keyword">where</a>
<a id="3517" class="Keyword">infixr</a> <a id="3524" class="Number">7</a> <a id="3526" href="Algebra.Bundles.html#3617" class="Field Operator">_∧_</a>
<a id="3532" class="Keyword">infix</a> <a id="3539" class="Number">4</a> <a id="3541" href="Algebra.Bundles.html#3583" class="Field Operator">_≈_</a>
<a id="3547" class="Keyword">field</a>
<a id="Semilattice.Carrier"></a><a id="3557" href="Algebra.Bundles.html#3557" class="Field">Carrier</a> <a id="3571" class="Symbol">:</a> <a id="3573" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3577" href="Algebra.Bundles.html#3485" class="Bound">c</a>
<a id="Semilattice._≈_"></a><a id="3583" href="Algebra.Bundles.html#3583" class="Field Operator">_≈_</a> <a id="3597" class="Symbol">:</a> <a id="3599" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="3603" href="Algebra.Bundles.html#3557" class="Field">Carrier</a> <a id="3611" href="Algebra.Bundles.html#3487" class="Bound"></a>
<a id="Semilattice._∧_"></a><a id="3617" href="Algebra.Bundles.html#3617" class="Field Operator">_∧_</a> <a id="3631" class="Symbol">:</a> <a id="3633" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="3637" href="Algebra.Bundles.html#3557" class="Field">Carrier</a>
<a id="Semilattice.isSemilattice"></a><a id="3649" href="Algebra.Bundles.html#3649" class="Field">isSemilattice</a> <a id="3663" class="Symbol">:</a> <a id="3665" href="Algebra.Structures.html#2390" class="Record">IsSemilattice</a> <a id="3679" href="Algebra.Bundles.html#3583" class="Field Operator">_≈_</a> <a id="3683" href="Algebra.Bundles.html#3617" class="Field Operator">_∧_</a>
<a id="3690" class="Keyword">open</a> <a id="3695" href="Algebra.Structures.html#2390" class="Module">IsSemilattice</a> <a id="3709" href="Algebra.Bundles.html#3649" class="Field">isSemilattice</a> <a id="3723" class="Keyword">public</a>
<a id="Semilattice.band"></a><a id="3733" href="Algebra.Bundles.html#3733" class="Function">band</a> <a id="3738" class="Symbol">:</a> <a id="3740" href="Algebra.Bundles.html#2506" class="Record">Band</a> <a id="3745" href="Algebra.Bundles.html#3485" class="Bound">c</a> <a id="3747" href="Algebra.Bundles.html#3487" class="Bound"></a>
<a id="3751" href="Algebra.Bundles.html#3733" class="Function">band</a> <a id="3756" class="Symbol">=</a> <a id="3758" class="Keyword">record</a> <a id="3765" class="Symbol">{</a> <a id="3767" href="Algebra.Bundles.html#2657" class="Field">isBand</a> <a id="3774" class="Symbol">=</a> <a id="3776" href="Algebra.Structures.html#2448" class="Function">isBand</a> <a id="3783" class="Symbol">}</a>
<a id="3788" class="Keyword">open</a> <a id="3793" href="Algebra.Bundles.html#2506" class="Module">Band</a> <a id="3798" href="Algebra.Bundles.html#3733" class="Function">band</a> <a id="3803" class="Keyword">public</a>
<a id="3814" class="Keyword">using</a> <a id="3820" class="Symbol">(</a><a id="3821" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a><a id="3824" class="Symbol">;</a> <a id="3826" href="Algebra.Bundles.html#1212" class="Function">rawMagma</a><a id="3834" class="Symbol">;</a> <a id="3836" href="Algebra.Bundles.html#2387" class="Function">magma</a><a id="3841" class="Symbol">;</a> <a id="3843" href="Algebra.Bundles.html#2714" class="Function">semigroup</a><a id="3852" class="Symbol">)</a>
<a id="3856" class="Comment">------------------------------------------------------------------------</a>
<a id="3929" class="Comment">-- Bundles with 1 binary operation &amp; 1 element</a>
<a id="3976" class="Comment">------------------------------------------------------------------------</a>
<a id="4050" class="Comment">-- A raw monoid is a monoid without any laws.</a>
<a id="4097" class="Keyword">record</a> <a id="RawMonoid"></a><a id="4104" href="Algebra.Bundles.html#4104" class="Record">RawMonoid</a> <a id="4114" href="Algebra.Bundles.html#4114" class="Bound">c</a> <a id="4116" href="Algebra.Bundles.html#4116" class="Bound"></a> <a id="4118" class="Symbol">:</a> <a id="4120" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4124" class="Symbol">(</a><a id="4125" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="4129" class="Symbol">(</a><a id="4130" href="Algebra.Bundles.html#4114" class="Bound">c</a> <a id="4132" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="4134" href="Algebra.Bundles.html#4116" class="Bound"></a><a id="4135" class="Symbol">))</a> <a id="4138" class="Keyword">where</a>
<a id="4146" class="Keyword">infixl</a> <a id="4153" class="Number">7</a> <a id="4155" href="Algebra.Bundles.html#4234" class="Field Operator">_∙_</a>
<a id="4161" class="Keyword">infix</a> <a id="4168" class="Number">4</a> <a id="4170" href="Algebra.Bundles.html#4206" class="Field Operator">_≈_</a>
<a id="4176" class="Keyword">field</a>
<a id="RawMonoid.Carrier"></a><a id="4186" href="Algebra.Bundles.html#4186" class="Field">Carrier</a> <a id="4194" class="Symbol">:</a> <a id="4196" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4200" href="Algebra.Bundles.html#4114" class="Bound">c</a>
<a id="RawMonoid._≈_"></a><a id="4206" href="Algebra.Bundles.html#4206" class="Field Operator">_≈_</a> <a id="4214" class="Symbol">:</a> <a id="4216" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="4220" href="Algebra.Bundles.html#4186" class="Field">Carrier</a> <a id="4228" href="Algebra.Bundles.html#4116" class="Bound"></a>
<a id="RawMonoid._∙_"></a><a id="4234" href="Algebra.Bundles.html#4234" class="Field Operator">_∙_</a> <a id="4242" class="Symbol">:</a> <a id="4244" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="4248" href="Algebra.Bundles.html#4186" class="Field">Carrier</a>
<a id="RawMonoid.ε"></a><a id="4260" href="Algebra.Bundles.html#4260" class="Field">ε</a> <a id="4268" class="Symbol">:</a> <a id="4270" href="Algebra.Bundles.html#4186" class="Field">Carrier</a>
<a id="RawMonoid.rawMagma"></a><a id="4281" href="Algebra.Bundles.html#4281" class="Function">rawMagma</a> <a id="4290" class="Symbol">:</a> <a id="4292" href="Algebra.Bundles.html#781" class="Record">RawMagma</a> <a id="4301" href="Algebra.Bundles.html#4114" class="Bound">c</a> <a id="4303" href="Algebra.Bundles.html#4116" class="Bound"></a>
<a id="4307" href="Algebra.Bundles.html#4281" class="Function">rawMagma</a> <a id="4316" class="Symbol">=</a> <a id="4318" class="Keyword">record</a>
<a id="4329" class="Symbol">{</a> <a id="4331" href="Algebra.Bundles.html#882" class="Field Operator">_≈_</a> <a id="4335" class="Symbol">=</a> <a id="4337" href="Algebra.Bundles.html#4206" class="Field Operator">_≈_</a>
<a id="4345" class="Symbol">;</a> <a id="4347" href="Algebra.Bundles.html#910" class="Field Operator">_∙_</a> <a id="4351" class="Symbol">=</a> <a id="4353" href="Algebra.Bundles.html#4234" class="Field Operator">_∙_</a>
<a id="4361" class="Symbol">}</a>
<a id="4366" class="Keyword">open</a> <a id="4371" href="Algebra.Bundles.html#781" class="Module">RawMagma</a> <a id="4380" href="Algebra.Bundles.html#4281" class="Function">rawMagma</a> <a id="4389" class="Keyword">public</a>
<a id="4400" class="Keyword">using</a> <a id="4406" class="Symbol">(</a><a id="4407" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a><a id="4410" class="Symbol">)</a>
<a id="4414" class="Keyword">record</a> <a id="Monoid"></a><a id="4421" href="Algebra.Bundles.html#4421" class="Record">Monoid</a> <a id="4428" href="Algebra.Bundles.html#4428" class="Bound">c</a> <a id="4430" href="Algebra.Bundles.html#4430" class="Bound"></a> <a id="4432" class="Symbol">:</a> <a id="4434" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4438" class="Symbol">(</a><a id="4439" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="4443" class="Symbol">(</a><a id="4444" href="Algebra.Bundles.html#4428" class="Bound">c</a> <a id="4446" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="4448" href="Algebra.Bundles.html#4430" class="Bound"></a><a id="4449" class="Symbol">))</a> <a id="4452" class="Keyword">where</a>
<a id="4460" class="Keyword">infixl</a> <a id="4467" class="Number">7</a> <a id="4469" href="Algebra.Bundles.html#4550" class="Field Operator">_∙_</a>
<a id="4475" class="Keyword">infix</a> <a id="4482" class="Number">4</a> <a id="4484" href="Algebra.Bundles.html#4521" class="Field Operator">_≈_</a>
<a id="4490" class="Keyword">field</a>
<a id="Monoid.Carrier"></a><a id="4500" href="Algebra.Bundles.html#4500" class="Field">Carrier</a> <a id="4509" class="Symbol">:</a> <a id="4511" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4515" href="Algebra.Bundles.html#4428" class="Bound">c</a>
<a id="Monoid._≈_"></a><a id="4521" href="Algebra.Bundles.html#4521" class="Field Operator">_≈_</a> <a id="4530" class="Symbol">:</a> <a id="4532" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="4536" href="Algebra.Bundles.html#4500" class="Field">Carrier</a> <a id="4544" href="Algebra.Bundles.html#4430" class="Bound"></a>
<a id="Monoid._∙_"></a><a id="4550" href="Algebra.Bundles.html#4550" class="Field Operator">_∙_</a> <a id="4559" class="Symbol">:</a> <a id="4561" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="4565" href="Algebra.Bundles.html#4500" class="Field">Carrier</a>
<a id="Monoid.ε"></a><a id="4577" href="Algebra.Bundles.html#4577" class="Field">ε</a> <a id="4586" class="Symbol">:</a> <a id="4588" href="Algebra.Bundles.html#4500" class="Field">Carrier</a>
<a id="Monoid.isMonoid"></a><a id="4600" href="Algebra.Bundles.html#4600" class="Field">isMonoid</a> <a id="4609" class="Symbol">:</a> <a id="4611" href="Algebra.Structures.html#2801" class="Record">IsMonoid</a> <a id="4620" href="Algebra.Bundles.html#4521" class="Field Operator">_≈_</a> <a id="4624" href="Algebra.Bundles.html#4550" class="Field Operator">_∙_</a> <a id="4628" href="Algebra.Bundles.html#4577" class="Field">ε</a>
<a id="4633" class="Keyword">open</a> <a id="4638" href="Algebra.Structures.html#2801" class="Module">IsMonoid</a> <a id="4647" href="Algebra.Bundles.html#4600" class="Field">isMonoid</a> <a id="4656" class="Keyword">public</a>
<a id="Monoid.semigroup"></a><a id="4666" href="Algebra.Bundles.html#4666" class="Function">semigroup</a> <a id="4676" class="Symbol">:</a> <a id="4678" href="Algebra.Bundles.html#2143" class="Record">Semigroup</a> <a id="4688" class="Symbol">_</a> <a id="4690" class="Symbol">_</a>
<a id="4694" href="Algebra.Bundles.html#4666" class="Function">semigroup</a> <a id="4704" class="Symbol">=</a> <a id="4706" class="Keyword">record</a> <a id="4713" class="Symbol">{</a> <a id="4715" href="Algebra.Bundles.html#2311" class="Field">isSemigroup</a> <a id="4727" class="Symbol">=</a> <a id="4729" href="Algebra.Structures.html#2862" class="Function">isSemigroup</a> <a id="4741" class="Symbol">}</a>
<a id="4746" class="Keyword">open</a> <a id="4751" href="Algebra.Bundles.html#2143" class="Module">Semigroup</a> <a id="4761" href="Algebra.Bundles.html#4666" class="Function">semigroup</a> <a id="4771" class="Keyword">public</a>
<a id="4782" class="Keyword">using</a> <a id="4788" class="Symbol">(</a><a id="4789" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a><a id="4792" class="Symbol">;</a> <a id="4794" href="Algebra.Bundles.html#1212" class="Function">rawMagma</a><a id="4802" class="Symbol">;</a> <a id="4804" href="Algebra.Bundles.html#2387" class="Function">magma</a><a id="4809" class="Symbol">)</a>
<a id="Monoid.rawMonoid"></a><a id="4814" href="Algebra.Bundles.html#4814" class="Function">rawMonoid</a> <a id="4824" class="Symbol">:</a> <a id="4826" href="Algebra.Bundles.html#4104" class="Record">RawMonoid</a> <a id="4836" class="Symbol">_</a> <a id="4838" class="Symbol">_</a>
<a id="4842" href="Algebra.Bundles.html#4814" class="Function">rawMonoid</a> <a id="4852" class="Symbol">=</a> <a id="4854" class="Keyword">record</a> <a id="4861" class="Symbol">{</a> <a id="4863" href="Algebra.Bundles.html#4206" class="Field Operator">_≈_</a> <a id="4867" class="Symbol">=</a> <a id="4869" href="Algebra.Bundles.html#4521" class="Field Operator">_≈_</a><a id="4872" class="Symbol">;</a> <a id="4874" href="Algebra.Bundles.html#4234" class="Field Operator">_∙_</a> <a id="4878" class="Symbol">=</a> <a id="4880" href="Algebra.Bundles.html#4550" class="Field Operator">_∙_</a><a id="4883" class="Symbol">;</a> <a id="4885" href="Algebra.Bundles.html#4260" class="Field">ε</a> <a id="4887" class="Symbol">=</a> <a id="4889" href="Algebra.Bundles.html#4577" class="Field">ε</a><a id="4890" class="Symbol">}</a>
<a id="4894" class="Keyword">record</a> <a id="CommutativeMonoid"></a><a id="4901" href="Algebra.Bundles.html#4901" class="Record">CommutativeMonoid</a> <a id="4919" href="Algebra.Bundles.html#4919" class="Bound">c</a> <a id="4921" href="Algebra.Bundles.html#4921" class="Bound"></a> <a id="4923" class="Symbol">:</a> <a id="4925" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4929" class="Symbol">(</a><a id="4930" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="4934" class="Symbol">(</a><a id="4935" href="Algebra.Bundles.html#4919" class="Bound">c</a> <a id="4937" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="4939" href="Algebra.Bundles.html#4921" class="Bound"></a><a id="4940" class="Symbol">))</a> <a id="4943" class="Keyword">where</a>
<a id="4951" class="Keyword">infixl</a> <a id="4958" class="Number">7</a> <a id="4960" href="Algebra.Bundles.html#5063" class="Field Operator">_∙_</a>
<a id="4966" class="Keyword">infix</a> <a id="4973" class="Number">4</a> <a id="4975" href="Algebra.Bundles.html#5023" class="Field Operator">_≈_</a>
<a id="4981" class="Keyword">field</a>
<a id="CommutativeMonoid.Carrier"></a><a id="4991" href="Algebra.Bundles.html#4991" class="Field">Carrier</a> <a id="5011" class="Symbol">:</a> <a id="5013" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="5017" href="Algebra.Bundles.html#4919" class="Bound">c</a>
<a id="CommutativeMonoid._≈_"></a><a id="5023" href="Algebra.Bundles.html#5023" class="Field Operator">_≈_</a> <a id="5043" class="Symbol">:</a> <a id="5045" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="5049" href="Algebra.Bundles.html#4991" class="Field">Carrier</a> <a id="5057" href="Algebra.Bundles.html#4921" class="Bound"></a>
<a id="CommutativeMonoid._∙_"></a><a id="5063" href="Algebra.Bundles.html#5063" class="Field Operator">_∙_</a> <a id="5083" class="Symbol">:</a> <a id="5085" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="5089" href="Algebra.Bundles.html#4991" class="Field">Carrier</a>
<a id="CommutativeMonoid.ε"></a><a id="5101" href="Algebra.Bundles.html#5101" class="Field">ε</a> <a id="5121" class="Symbol">:</a> <a id="5123" href="Algebra.Bundles.html#4991" class="Field">Carrier</a>
<a id="CommutativeMonoid.isCommutativeMonoid"></a><a id="5135" href="Algebra.Bundles.html#5135" class="Field">isCommutativeMonoid</a> <a id="5155" class="Symbol">:</a> <a id="5157" href="Algebra.Structures.html#3092" class="Record">IsCommutativeMonoid</a> <a id="5177" href="Algebra.Bundles.html#5023" class="Field Operator">_≈_</a> <a id="5181" href="Algebra.Bundles.html#5063" class="Field Operator">_∙_</a> <a id="5185" href="Algebra.Bundles.html#5101" class="Field">ε</a>
<a id="5190" class="Keyword">open</a> <a id="5195" href="Algebra.Structures.html#3092" class="Module">IsCommutativeMonoid</a> <a id="5215" href="Algebra.Bundles.html#5135" class="Field">isCommutativeMonoid</a> <a id="5235" class="Keyword">public</a>
<a id="CommutativeMonoid.monoid"></a><a id="5245" href="Algebra.Bundles.html#5245" class="Function">monoid</a> <a id="5252" class="Symbol">:</a> <a id="5254" href="Algebra.Bundles.html#4421" class="Record">Monoid</a> <a id="5261" class="Symbol">_</a> <a id="5263" class="Symbol">_</a>
<a id="5267" href="Algebra.Bundles.html#5245" class="Function">monoid</a> <a id="5274" class="Symbol">=</a> <a id="5276" class="Keyword">record</a> <a id="5283" class="Symbol">{</a> <a id="5285" href="Algebra.Bundles.html#4600" class="Field">isMonoid</a> <a id="5294" class="Symbol">=</a> <a id="5296" href="Algebra.Structures.html#3164" class="Function">isMonoid</a> <a id="5305" class="Symbol">}</a>
<a id="5310" class="Keyword">open</a> <a id="5315" href="Algebra.Bundles.html#4421" class="Module">Monoid</a> <a id="5322" href="Algebra.Bundles.html#5245" class="Function">monoid</a> <a id="5329" class="Keyword">public</a>
<a id="5340" class="Keyword">using</a> <a id="5346" class="Symbol">(</a><a id="5347" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a><a id="5350" class="Symbol">;</a> <a id="5352" href="Algebra.Bundles.html#1212" class="Function">rawMagma</a><a id="5360" class="Symbol">;</a> <a id="5362" href="Algebra.Bundles.html#2387" class="Function">magma</a><a id="5367" class="Symbol">;</a> <a id="5369" href="Algebra.Bundles.html#4666" class="Function">semigroup</a><a id="5378" class="Symbol">;</a> <a id="5380" href="Algebra.Bundles.html#4814" class="Function">rawMonoid</a><a id="5389" class="Symbol">)</a>
<a id="CommutativeMonoid.commutativeSemigroup"></a><a id="5394" href="Algebra.Bundles.html#5394" class="Function">commutativeSemigroup</a> <a id="5415" class="Symbol">:</a> <a id="5417" href="Algebra.Bundles.html#2868" class="Record">CommutativeSemigroup</a> <a id="5438" class="Symbol">_</a> <a id="5440" class="Symbol">_</a>
<a id="5444" href="Algebra.Bundles.html#5394" class="Function">commutativeSemigroup</a> <a id="5465" class="Symbol">=</a> <a id="5467" class="Keyword">record</a> <a id="5474" class="Symbol">{</a> <a id="5476" href="Algebra.Bundles.html#3083" class="Field">isCommutativeSemigroup</a> <a id="5499" class="Symbol">=</a> <a id="5501" href="Algebra.Structures.html#3253" class="Function">isCommutativeSemigroup</a> <a id="5524" class="Symbol">}</a>
<a id="5529" class="Keyword">open</a> <a id="5534" href="Algebra.Bundles.html#2868" class="Module">CommutativeSemigroup</a> <a id="5555" href="Algebra.Bundles.html#5394" class="Function">commutativeSemigroup</a> <a id="5576" class="Keyword">public</a>
<a id="5587" class="Keyword">using</a> <a id="5593" class="Symbol">(</a><a id="5594" href="Algebra.Bundles.html#3352" class="Function">commutativeMagma</a><a id="5610" class="Symbol">)</a>
<a id="5614" class="Keyword">record</a> <a id="IdempotentCommutativeMonoid"></a><a id="5621" href="Algebra.Bundles.html#5621" class="Record">IdempotentCommutativeMonoid</a> <a id="5649" href="Algebra.Bundles.html#5649" class="Bound">c</a> <a id="5651" href="Algebra.Bundles.html#5651" class="Bound"></a> <a id="5653" class="Symbol">:</a> <a id="5655" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="5659" class="Symbol">(</a><a id="5660" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="5664" class="Symbol">(</a><a id="5665" href="Algebra.Bundles.html#5649" class="Bound">c</a> <a id="5667" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="5669" href="Algebra.Bundles.html#5651" class="Bound"></a><a id="5670" class="Symbol">))</a> <a id="5673" class="Keyword">where</a>
<a id="5681" class="Keyword">infixl</a> <a id="5688" class="Number">7</a> <a id="5690" href="Algebra.Bundles.html#5813" class="Field Operator">_∙_</a>
<a id="5696" class="Keyword">infix</a> <a id="5703" class="Number">4</a> <a id="5705" href="Algebra.Bundles.html#5763" class="Field Operator">_≈_</a>
<a id="5711" class="Keyword">field</a>
<a id="IdempotentCommutativeMonoid.Carrier"></a><a id="5721" href="Algebra.Bundles.html#5721" class="Field">Carrier</a> <a id="5751" class="Symbol">:</a> <a id="5753" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="5757" href="Algebra.Bundles.html#5649" class="Bound">c</a>
<a id="IdempotentCommutativeMonoid._≈_"></a><a id="5763" href="Algebra.Bundles.html#5763" class="Field Operator">_≈_</a> <a id="5793" class="Symbol">:</a> <a id="5795" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="5799" href="Algebra.Bundles.html#5721" class="Field">Carrier</a> <a id="5807" href="Algebra.Bundles.html#5651" class="Bound"></a>
<a id="IdempotentCommutativeMonoid._∙_"></a><a id="5813" href="Algebra.Bundles.html#5813" class="Field Operator">_∙_</a> <a id="5843" class="Symbol">:</a> <a id="5845" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="5849" href="Algebra.Bundles.html#5721" class="Field">Carrier</a>
<a id="IdempotentCommutativeMonoid.ε"></a><a id="5861" href="Algebra.Bundles.html#5861" class="Field">ε</a> <a id="5891" class="Symbol">:</a> <a id="5893" href="Algebra.Bundles.html#5721" class="Field">Carrier</a>
<a id="IdempotentCommutativeMonoid.isIdempotentCommutativeMonoid"></a><a id="5905" href="Algebra.Bundles.html#5905" class="Field">isIdempotentCommutativeMonoid</a> <a id="5935" class="Symbol">:</a> <a id="5937" href="Algebra.Structures.html#3501" class="Record">IsIdempotentCommutativeMonoid</a> <a id="5967" href="Algebra.Bundles.html#5763" class="Field Operator">_≈_</a> <a id="5971" href="Algebra.Bundles.html#5813" class="Field Operator">_∙_</a> <a id="5975" href="Algebra.Bundles.html#5861" class="Field">ε</a>
<a id="5980" class="Keyword">open</a> <a id="5985" href="Algebra.Structures.html#3501" class="Module">IsIdempotentCommutativeMonoid</a> <a id="6015" href="Algebra.Bundles.html#5905" class="Field">isIdempotentCommutativeMonoid</a> <a id="6045" class="Keyword">public</a>
<a id="IdempotentCommutativeMonoid.commutativeMonoid"></a><a id="6055" href="Algebra.Bundles.html#6055" class="Function">commutativeMonoid</a> <a id="6073" class="Symbol">:</a> <a id="6075" href="Algebra.Bundles.html#4901" class="Record">CommutativeMonoid</a> <a id="6093" class="Symbol">_</a> <a id="6095" class="Symbol">_</a>
<a id="6099" href="Algebra.Bundles.html#6055" class="Function">commutativeMonoid</a> <a id="6117" class="Symbol">=</a> <a id="6119" class="Keyword">record</a> <a id="6126" class="Symbol">{</a> <a id="6128" href="Algebra.Bundles.html#5135" class="Field">isCommutativeMonoid</a> <a id="6148" class="Symbol">=</a> <a id="6150" href="Algebra.Structures.html#3620" class="Function">isCommutativeMonoid</a> <a id="6170" class="Symbol">}</a>
<a id="6175" class="Keyword">open</a> <a id="6180" href="Algebra.Bundles.html#4901" class="Module">CommutativeMonoid</a> <a id="6198" href="Algebra.Bundles.html#6055" class="Function">commutativeMonoid</a> <a id="6216" class="Keyword">public</a>
<a id="6227" class="Keyword">using</a>
<a id="6237" class="Symbol">(</a> <a id="6239" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a><a id="6242" class="Symbol">;</a> <a id="6244" href="Algebra.Bundles.html#1212" class="Function">rawMagma</a><a id="6252" class="Symbol">;</a> <a id="6254" href="Algebra.Bundles.html#2387" class="Function">magma</a><a id="6259" class="Symbol">;</a> <a id="6261" href="Algebra.Bundles.html#3352" class="Function">commutativeMagma</a><a id="6277" class="Symbol">;</a> <a id="6279" href="Algebra.Bundles.html#4666" class="Function">semigroup</a><a id="6288" class="Symbol">;</a> <a id="6290" href="Algebra.Bundles.html#5394" class="Function">commutativeSemigroup</a>
<a id="6315" class="Symbol">;</a> <a id="6317" href="Algebra.Bundles.html#4814" class="Function">rawMonoid</a><a id="6326" class="Symbol">;</a> <a id="6328" href="Algebra.Bundles.html#5245" class="Function">monoid</a>
<a id="6339" class="Symbol">)</a>
<a id="6343" class="Comment">-- Idempotent commutative monoids are also known as bounded lattices.</a>
<a id="6413" class="Comment">-- Note that the BoundedLattice necessarily uses the notation inherited</a>
<a id="6485" class="Comment">-- from monoids rather than lattices.</a>
<a id="BoundedLattice"></a><a id="6524" href="Algebra.Bundles.html#6524" class="Function">BoundedLattice</a> <a id="6539" class="Symbol">=</a> <a id="6541" href="Algebra.Bundles.html#5621" class="Record">IdempotentCommutativeMonoid</a>
<a id="6570" class="Keyword">module</a> <a id="BoundedLattice"></a><a id="6577" href="Algebra.Bundles.html#6577" class="Module">BoundedLattice</a> <a id="6592" class="Symbol">{</a><a id="6593" href="Algebra.Bundles.html#6593" class="Bound">c</a> <a id="6595" href="Algebra.Bundles.html#6595" class="Bound"></a><a id="6596" class="Symbol">}</a> <a id="6598" class="Symbol">(</a><a id="6599" href="Algebra.Bundles.html#6599" class="Bound">idemCommMonoid</a> <a id="6614" class="Symbol">:</a> <a id="6616" href="Algebra.Bundles.html#5621" class="Record">IdempotentCommutativeMonoid</a> <a id="6644" href="Algebra.Bundles.html#6593" class="Bound">c</a> <a id="6646" href="Algebra.Bundles.html#6595" class="Bound"></a><a id="6647" class="Symbol">)</a> <a id="6649" class="Symbol">=</a>
<a id="6658" href="Algebra.Bundles.html#5621" class="Module">IdempotentCommutativeMonoid</a> <a id="6686" href="Algebra.Bundles.html#6599" class="Bound">idemCommMonoid</a>
<a id="6703" class="Comment">------------------------------------------------------------------------</a>
<a id="6776" class="Comment">-- Bundles with 1 binary operation, 1 unary operation &amp; 1 element</a>
<a id="6842" class="Comment">------------------------------------------------------------------------</a>
<a id="6916" class="Keyword">record</a> <a id="RawGroup"></a><a id="6923" href="Algebra.Bundles.html#6923" class="Record">RawGroup</a> <a id="6932" href="Algebra.Bundles.html#6932" class="Bound">c</a> <a id="6934" href="Algebra.Bundles.html#6934" class="Bound"></a> <a id="6936" class="Symbol">:</a> <a id="6938" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="6942" class="Symbol">(</a><a id="6943" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="6947" class="Symbol">(</a><a id="6948" href="Algebra.Bundles.html#6932" class="Bound">c</a> <a id="6950" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="6952" href="Algebra.Bundles.html#6934" class="Bound"></a><a id="6953" class="Symbol">))</a> <a id="6956" class="Keyword">where</a>
<a id="6964" class="Keyword">infix</a> <a id="6971" class="Number">8</a> <a id="6973" href="Algebra.Bundles.html#7115" class="Field Operator">_⁻¹</a>
<a id="6979" class="Keyword">infixl</a> <a id="6986" class="Number">7</a> <a id="6988" href="Algebra.Bundles.html#7067" class="Field Operator">_∙_</a>
<a id="6994" class="Keyword">infix</a> <a id="7001" class="Number">4</a> <a id="7003" href="Algebra.Bundles.html#7039" class="Field Operator">_≈_</a>
<a id="7009" class="Keyword">field</a>
<a id="RawGroup.Carrier"></a><a id="7019" href="Algebra.Bundles.html#7019" class="Field">Carrier</a> <a id="7027" class="Symbol">:</a> <a id="7029" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="7033" href="Algebra.Bundles.html#6932" class="Bound">c</a>
<a id="RawGroup._≈_"></a><a id="7039" href="Algebra.Bundles.html#7039" class="Field Operator">_≈_</a> <a id="7047" class="Symbol">:</a> <a id="7049" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="7053" href="Algebra.Bundles.html#7019" class="Field">Carrier</a> <a id="7061" href="Algebra.Bundles.html#6934" class="Bound"></a>
<a id="RawGroup._∙_"></a><a id="7067" href="Algebra.Bundles.html#7067" class="Field Operator">_∙_</a> <a id="7075" class="Symbol">:</a> <a id="7077" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="7081" href="Algebra.Bundles.html#7019" class="Field">Carrier</a>
<a id="RawGroup.ε"></a><a id="7093" href="Algebra.Bundles.html#7093" class="Field">ε</a> <a id="7101" class="Symbol">:</a> <a id="7103" href="Algebra.Bundles.html#7019" class="Field">Carrier</a>
<a id="RawGroup._⁻¹"></a><a id="7115" href="Algebra.Bundles.html#7115" class="Field Operator">_⁻¹</a> <a id="7123" class="Symbol">:</a> <a id="7125" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="7129" href="Algebra.Bundles.html#7019" class="Field">Carrier</a>
<a id="RawGroup.rawMonoid"></a><a id="7140" href="Algebra.Bundles.html#7140" class="Function">rawMonoid</a> <a id="7150" class="Symbol">:</a> <a id="7152" href="Algebra.Bundles.html#4104" class="Record">RawMonoid</a> <a id="7162" href="Algebra.Bundles.html#6932" class="Bound">c</a> <a id="7164" href="Algebra.Bundles.html#6934" class="Bound"></a>
<a id="7168" href="Algebra.Bundles.html#7140" class="Function">rawMonoid</a> <a id="7178" class="Symbol">=</a> <a id="7180" class="Keyword">record</a>
<a id="7191" class="Symbol">{</a> <a id="7193" href="Algebra.Bundles.html#4206" class="Field Operator">_≈_</a> <a id="7197" class="Symbol">=</a> <a id="7199" href="Algebra.Bundles.html#7039" class="Field Operator">_≈_</a>
<a id="7207" class="Symbol">;</a> <a id="7209" href="Algebra.Bundles.html#4234" class="Field Operator">_∙_</a> <a id="7213" class="Symbol">=</a> <a id="7215" href="Algebra.Bundles.html#7067" class="Field Operator">_∙_</a>
<a id="7223" class="Symbol">;</a> <a id="7225" href="Algebra.Bundles.html#4260" class="Field">ε</a> <a id="7229" class="Symbol">=</a> <a id="7231" href="Algebra.Bundles.html#7093" class="Field">ε</a>
<a id="7237" class="Symbol">}</a>
<a id="7242" class="Keyword">open</a> <a id="7247" href="Algebra.Bundles.html#4104" class="Module">RawMonoid</a> <a id="7257" href="Algebra.Bundles.html#7140" class="Function">rawMonoid</a> <a id="7267" class="Keyword">public</a>
<a id="7278" class="Keyword">using</a> <a id="7284" class="Symbol">(</a><a id="7285" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a><a id="7288" class="Symbol">;</a> <a id="7290" href="Algebra.Bundles.html#4281" class="Function">rawMagma</a><a id="7298" class="Symbol">)</a>
<a id="7302" class="Keyword">record</a> <a id="Group"></a><a id="7309" href="Algebra.Bundles.html#7309" class="Record">Group</a> <a id="7315" href="Algebra.Bundles.html#7315" class="Bound">c</a> <a id="7317" href="Algebra.Bundles.html#7317" class="Bound"></a> <a id="7319" class="Symbol">:</a> <a id="7321" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="7325" class="Symbol">(</a><a id="7326" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="7330" class="Symbol">(</a><a id="7331" href="Algebra.Bundles.html#7315" class="Bound">c</a> <a id="7333" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="7335" href="Algebra.Bundles.html#7317" class="Bound"></a><a id="7336" class="Symbol">))</a> <a id="7339" class="Keyword">where</a>
<a id="7347" class="Keyword">infix</a> <a id="7354" class="Number">8</a> <a id="7356" href="Algebra.Bundles.html#7498" class="Field Operator">_⁻¹</a>
<a id="7362" class="Keyword">infixl</a> <a id="7369" class="Number">7</a> <a id="7371" href="Algebra.Bundles.html#7450" class="Field Operator">_∙_</a>
<a id="7377" class="Keyword">infix</a> <a id="7384" class="Number">4</a> <a id="7386" href="Algebra.Bundles.html#7422" class="Field Operator">_≈_</a>
<a id="7392" class="Keyword">field</a>
<a id="Group.Carrier"></a><a id="7402" href="Algebra.Bundles.html#7402" class="Field">Carrier</a> <a id="7410" class="Symbol">:</a> <a id="7412" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="7416" href="Algebra.Bundles.html#7315" class="Bound">c</a>
<a id="Group._≈_"></a><a id="7422" href="Algebra.Bundles.html#7422" class="Field Operator">_≈_</a> <a id="7430" class="Symbol">:</a> <a id="7432" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="7436" href="Algebra.Bundles.html#7402" class="Field">Carrier</a> <a id="7444" href="Algebra.Bundles.html#7317" class="Bound"></a>
<a id="Group._∙_"></a><a id="7450" href="Algebra.Bundles.html#7450" class="Field Operator">_∙_</a> <a id="7458" class="Symbol">:</a> <a id="7460" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="7464" href="Algebra.Bundles.html#7402" class="Field">Carrier</a>
<a id="Group.ε"></a><a id="7476" href="Algebra.Bundles.html#7476" class="Field">ε</a> <a id="7484" class="Symbol">:</a> <a id="7486" href="Algebra.Bundles.html#7402" class="Field">Carrier</a>
<a id="Group._⁻¹"></a><a id="7498" href="Algebra.Bundles.html#7498" class="Field Operator">_⁻¹</a> <a id="7506" class="Symbol">:</a> <a id="7508" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="7512" href="Algebra.Bundles.html#7402" class="Field">Carrier</a>
<a id="Group.isGroup"></a><a id="7524" href="Algebra.Bundles.html#7524" class="Field">isGroup</a> <a id="7532" class="Symbol">:</a> <a id="7534" href="Algebra.Structures.html#4421" class="Record">IsGroup</a> <a id="7542" href="Algebra.Bundles.html#7422" class="Field Operator">_≈_</a> <a id="7546" href="Algebra.Bundles.html#7450" class="Field Operator">_∙_</a> <a id="7550" href="Algebra.Bundles.html#7476" class="Field">ε</a> <a id="7552" href="Algebra.Bundles.html#7498" class="Field Operator">_⁻¹</a>
<a id="7559" class="Keyword">open</a> <a id="7564" href="Algebra.Structures.html#4421" class="Module">IsGroup</a> <a id="7572" href="Algebra.Bundles.html#7524" class="Field">isGroup</a> <a id="7580" class="Keyword">public</a>
<a id="Group.rawGroup"></a><a id="7590" href="Algebra.Bundles.html#7590" class="Function">rawGroup</a> <a id="7599" class="Symbol">:</a> <a id="7601" href="Algebra.Bundles.html#6923" class="Record">RawGroup</a> <a id="7610" class="Symbol">_</a> <a id="7612" class="Symbol">_</a>
<a id="7616" href="Algebra.Bundles.html#7590" class="Function">rawGroup</a> <a id="7625" class="Symbol">=</a> <a id="7627" class="Keyword">record</a> <a id="7634" class="Symbol">{</a> <a id="7636" href="Algebra.Bundles.html#7039" class="Field Operator">_≈_</a> <a id="7640" class="Symbol">=</a> <a id="7642" href="Algebra.Bundles.html#7422" class="Field Operator">_≈_</a><a id="7645" class="Symbol">;</a> <a id="7647" href="Algebra.Bundles.html#7067" class="Field Operator">_∙_</a> <a id="7651" class="Symbol">=</a> <a id="7653" href="Algebra.Bundles.html#7450" class="Field Operator">_∙_</a><a id="7656" class="Symbol">;</a> <a id="7658" href="Algebra.Bundles.html#7093" class="Field">ε</a> <a id="7660" class="Symbol">=</a> <a id="7662" href="Algebra.Bundles.html#7476" class="Field">ε</a><a id="7663" class="Symbol">;</a> <a id="7665" href="Algebra.Bundles.html#7115" class="Field Operator">_⁻¹</a> <a id="7669" class="Symbol">=</a> <a id="7671" href="Algebra.Bundles.html#7498" class="Field Operator">_⁻¹</a><a id="7674" class="Symbol">}</a>
<a id="Group.monoid"></a><a id="7679" href="Algebra.Bundles.html#7679" class="Function">monoid</a> <a id="7686" class="Symbol">:</a> <a id="7688" href="Algebra.Bundles.html#4421" class="Record">Monoid</a> <a id="7695" class="Symbol">_</a> <a id="7697" class="Symbol">_</a>
<a id="7701" href="Algebra.Bundles.html#7679" class="Function">monoid</a> <a id="7708" class="Symbol">=</a> <a id="7710" class="Keyword">record</a> <a id="7717" class="Symbol">{</a> <a id="7719" href="Algebra.Bundles.html#4600" class="Field">isMonoid</a> <a id="7728" class="Symbol">=</a> <a id="7730" href="Algebra.Structures.html#4497" class="Function">isMonoid</a> <a id="7739" class="Symbol">}</a>
<a id="7744" class="Keyword">open</a> <a id="7749" href="Algebra.Bundles.html#4421" class="Module">Monoid</a> <a id="7756" href="Algebra.Bundles.html#7679" class="Function">monoid</a> <a id="7763" class="Keyword">public</a>
<a id="7774" class="Keyword">using</a> <a id="7780" class="Symbol">(</a><a id="7781" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a><a id="7784" class="Symbol">;</a> <a id="7786" href="Algebra.Bundles.html#1212" class="Function">rawMagma</a><a id="7794" class="Symbol">;</a> <a id="7796" href="Algebra.Bundles.html#2387" class="Function">magma</a><a id="7801" class="Symbol">;</a> <a id="7803" href="Algebra.Bundles.html#4666" class="Function">semigroup</a><a id="7812" class="Symbol">;</a> <a id="7814" href="Algebra.Bundles.html#4814" class="Function">rawMonoid</a><a id="7823" class="Symbol">)</a>
<a id="7826" class="Keyword">record</a> <a id="AbelianGroup"></a><a id="7833" href="Algebra.Bundles.html#7833" class="Record">AbelianGroup</a> <a id="7846" href="Algebra.Bundles.html#7846" class="Bound">c</a> <a id="7848" href="Algebra.Bundles.html#7848" class="Bound"></a> <a id="7850" class="Symbol">:</a> <a id="7852" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="7856" class="Symbol">(</a><a id="7857" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="7861" class="Symbol">(</a><a id="7862" href="Algebra.Bundles.html#7846" class="Bound">c</a> <a id="7864" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="7866" href="Algebra.Bundles.html#7848" class="Bound"></a><a id="7867" class="Symbol">))</a> <a id="7870" class="Keyword">where</a>
<a id="7878" class="Keyword">infix</a> <a id="7885" class="Number">8</a> <a id="7887" href="Algebra.Bundles.html#8057" class="Field Operator">_⁻¹</a>
<a id="7893" class="Keyword">infixl</a> <a id="7900" class="Number">7</a> <a id="7902" href="Algebra.Bundles.html#7995" class="Field Operator">_∙_</a>
<a id="7908" class="Keyword">infix</a> <a id="7915" class="Number">4</a> <a id="7917" href="Algebra.Bundles.html#7960" class="Field Operator">_≈_</a>
<a id="7923" class="Keyword">field</a>
<a id="AbelianGroup.Carrier"></a><a id="7933" href="Algebra.Bundles.html#7933" class="Field">Carrier</a> <a id="7948" class="Symbol">:</a> <a id="7950" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="7954" href="Algebra.Bundles.html#7846" class="Bound">c</a>
<a id="AbelianGroup._≈_"></a><a id="7960" href="Algebra.Bundles.html#7960" class="Field Operator">_≈_</a> <a id="7975" class="Symbol">:</a> <a id="7977" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="7981" href="Algebra.Bundles.html#7933" class="Field">Carrier</a> <a id="7989" href="Algebra.Bundles.html#7848" class="Bound"></a>
<a id="AbelianGroup._∙_"></a><a id="7995" href="Algebra.Bundles.html#7995" class="Field Operator">_∙_</a> <a id="8010" class="Symbol">:</a> <a id="8012" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="8016" href="Algebra.Bundles.html#7933" class="Field">Carrier</a>
<a id="AbelianGroup.ε"></a><a id="8028" href="Algebra.Bundles.html#8028" class="Field">ε</a> <a id="8043" class="Symbol">:</a> <a id="8045" href="Algebra.Bundles.html#7933" class="Field">Carrier</a>
<a id="AbelianGroup._⁻¹"></a><a id="8057" href="Algebra.Bundles.html#8057" class="Field Operator">_⁻¹</a> <a id="8072" class="Symbol">:</a> <a id="8074" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="8078" href="Algebra.Bundles.html#7933" class="Field">Carrier</a>
<a id="AbelianGroup.isAbelianGroup"></a><a id="8090" href="Algebra.Bundles.html#8090" class="Field">isAbelianGroup</a> <a id="8105" class="Symbol">:</a> <a id="8107" href="Algebra.Structures.html#5123" class="Record">IsAbelianGroup</a> <a id="8122" href="Algebra.Bundles.html#7960" class="Field Operator">_≈_</a> <a id="8126" href="Algebra.Bundles.html#7995" class="Field Operator">_∙_</a> <a id="8130" href="Algebra.Bundles.html#8028" class="Field">ε</a> <a id="8132" href="Algebra.Bundles.html#8057" class="Field Operator">_⁻¹</a>
<a id="8139" class="Keyword">open</a> <a id="8144" href="Algebra.Structures.html#5123" class="Module">IsAbelianGroup</a> <a id="8159" href="Algebra.Bundles.html#8090" class="Field">isAbelianGroup</a> <a id="8174" class="Keyword">public</a>
<a id="AbelianGroup.group"></a><a id="8184" href="Algebra.Bundles.html#8184" class="Function">group</a> <a id="8190" class="Symbol">:</a> <a id="8192" href="Algebra.Bundles.html#7309" class="Record">Group</a> <a id="8198" class="Symbol">_</a> <a id="8200" class="Symbol">_</a>
<a id="8204" href="Algebra.Bundles.html#8184" class="Function">group</a> <a id="8210" class="Symbol">=</a> <a id="8212" class="Keyword">record</a> <a id="8219" class="Symbol">{</a> <a id="8221" href="Algebra.Bundles.html#7524" class="Field">isGroup</a> <a id="8229" class="Symbol">=</a> <a id="8231" href="Algebra.Structures.html#5225" class="Function">isGroup</a> <a id="8239" class="Symbol">}</a>
<a id="8244" class="Keyword">open</a> <a id="8249" href="Algebra.Bundles.html#7309" class="Module">Group</a> <a id="8255" href="Algebra.Bundles.html#8184" class="Function">group</a> <a id="8261" class="Keyword">public</a>
<a id="8272" class="Keyword">using</a> <a id="8278" class="Symbol">(</a><a id="8279" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a><a id="8282" class="Symbol">;</a> <a id="8284" href="Algebra.Bundles.html#1212" class="Function">rawMagma</a><a id="8292" class="Symbol">;</a> <a id="8294" href="Algebra.Bundles.html#2387" class="Function">magma</a><a id="8299" class="Symbol">;</a> <a id="8301" href="Algebra.Bundles.html#4666" class="Function">semigroup</a><a id="8310" class="Symbol">;</a> <a id="8312" href="Algebra.Bundles.html#7679" class="Function">monoid</a><a id="8318" class="Symbol">;</a> <a id="8320" href="Algebra.Bundles.html#4814" class="Function">rawMonoid</a><a id="8329" class="Symbol">;</a> <a id="8331" href="Algebra.Bundles.html#7590" class="Function">rawGroup</a><a id="8339" class="Symbol">)</a>
<a id="AbelianGroup.commutativeMonoid"></a><a id="8344" href="Algebra.Bundles.html#8344" class="Function">commutativeMonoid</a> <a id="8362" class="Symbol">:</a> <a id="8364" href="Algebra.Bundles.html#4901" class="Record">CommutativeMonoid</a> <a id="8382" class="Symbol">_</a> <a id="8384" class="Symbol">_</a>
<a id="8388" href="Algebra.Bundles.html#8344" class="Function">commutativeMonoid</a> <a id="8406" class="Symbol">=</a> <a id="8408" class="Keyword">record</a> <a id="8415" class="Symbol">{</a> <a id="8417" href="Algebra.Bundles.html#5135" class="Field">isCommutativeMonoid</a> <a id="8437" class="Symbol">=</a> <a id="8439" href="Algebra.Structures.html#5312" class="Function">isCommutativeMonoid</a> <a id="8459" class="Symbol">}</a>
<a id="8464" class="Keyword">open</a> <a id="8469" href="Algebra.Bundles.html#4901" class="Module">CommutativeMonoid</a> <a id="8487" href="Algebra.Bundles.html#8344" class="Function">commutativeMonoid</a> <a id="8505" class="Keyword">public</a>
<a id="8516" class="Keyword">using</a> <a id="8522" class="Symbol">(</a><a id="8523" href="Algebra.Bundles.html#3352" class="Function">commutativeMagma</a><a id="8539" class="Symbol">;</a> <a id="8541" href="Algebra.Bundles.html#5394" class="Function">commutativeSemigroup</a><a id="8561" class="Symbol">)</a>
<a id="8565" class="Comment">------------------------------------------------------------------------</a>
<a id="8638" class="Comment">-- Bundles with 2 binary operations</a>
<a id="8674" class="Comment">------------------------------------------------------------------------</a>
<a id="8748" class="Keyword">record</a> <a id="RawLattice"></a><a id="8755" href="Algebra.Bundles.html#8755" class="Record">RawLattice</a> <a id="8766" href="Algebra.Bundles.html#8766" class="Bound">c</a> <a id="8768" href="Algebra.Bundles.html#8768" class="Bound"></a> <a id="8770" class="Symbol">:</a> <a id="8772" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8776" class="Symbol">(</a><a id="8777" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="8781" class="Symbol">(</a><a id="8782" href="Algebra.Bundles.html#8766" class="Bound">c</a> <a id="8784" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="8786" href="Algebra.Bundles.html#8768" class="Bound"></a><a id="8787" class="Symbol">))</a> <a id="8790" class="Keyword">where</a>
<a id="8798" class="Keyword">infixr</a> <a id="8805" class="Number">7</a> <a id="8807" href="Algebra.Bundles.html#8901" class="Field Operator">_∧_</a>
<a id="8813" class="Keyword">infixr</a> <a id="8820" class="Number">6</a> <a id="8822" href="Algebra.Bundles.html#8927" class="Field Operator">__</a>
<a id="8828" class="Keyword">infix</a> <a id="8835" class="Number">4</a> <a id="8837" href="Algebra.Bundles.html#8873" class="Field Operator">_≈_</a>
<a id="8843" class="Keyword">field</a>
<a id="RawLattice.Carrier"></a><a id="8853" href="Algebra.Bundles.html#8853" class="Field">Carrier</a> <a id="8861" class="Symbol">:</a> <a id="8863" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8867" href="Algebra.Bundles.html#8766" class="Bound">c</a>
<a id="RawLattice._≈_"></a><a id="8873" href="Algebra.Bundles.html#8873" class="Field Operator">_≈_</a> <a id="8881" class="Symbol">:</a> <a id="8883" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="8887" href="Algebra.Bundles.html#8853" class="Field">Carrier</a> <a id="8895" href="Algebra.Bundles.html#8768" class="Bound"></a>
<a id="RawLattice._∧_"></a><a id="8901" href="Algebra.Bundles.html#8901" class="Field Operator">_∧_</a> <a id="8909" class="Symbol">:</a> <a id="8911" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="8915" href="Algebra.Bundles.html#8853" class="Field">Carrier</a>
<a id="RawLattice.__"></a><a id="8927" href="Algebra.Bundles.html#8927" class="Field Operator">__</a> <a id="8935" class="Symbol">:</a> <a id="8937" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="8941" href="Algebra.Bundles.html#8853" class="Field">Carrier</a>
<a id="RawLattice.-rawMagma"></a><a id="8952" href="Algebra.Bundles.html#8952" class="Function">-rawMagma</a> <a id="8963" class="Symbol">:</a> <a id="8965" href="Algebra.Bundles.html#781" class="Record">RawMagma</a> <a id="8974" href="Algebra.Bundles.html#8766" class="Bound">c</a> <a id="8976" href="Algebra.Bundles.html#8768" class="Bound"></a>
<a id="8980" href="Algebra.Bundles.html#8952" class="Function">-rawMagma</a> <a id="8991" class="Symbol">=</a> <a id="8993" class="Keyword">record</a> <a id="9000" class="Symbol">{</a> <a id="9002" href="Algebra.Bundles.html#882" class="Field Operator">_≈_</a> <a id="9006" class="Symbol">=</a> <a id="9008" href="Algebra.Bundles.html#8873" class="Field Operator">_≈_</a><a id="9011" class="Symbol">;</a> <a id="9013" href="Algebra.Bundles.html#910" class="Field Operator">_∙_</a> <a id="9017" class="Symbol">=</a> <a id="9019" href="Algebra.Bundles.html#8927" class="Field Operator">__</a> <a id="9023" class="Symbol">}</a>
<a id="RawLattice.∧-rawMagma"></a><a id="9028" href="Algebra.Bundles.html#9028" class="Function">∧-rawMagma</a> <a id="9039" class="Symbol">:</a> <a id="9041" href="Algebra.Bundles.html#781" class="Record">RawMagma</a> <a id="9050" href="Algebra.Bundles.html#8766" class="Bound">c</a> <a id="9052" href="Algebra.Bundles.html#8768" class="Bound"></a>
<a id="9056" href="Algebra.Bundles.html#9028" class="Function">∧-rawMagma</a> <a id="9067" class="Symbol">=</a> <a id="9069" class="Keyword">record</a> <a id="9076" class="Symbol">{</a> <a id="9078" href="Algebra.Bundles.html#882" class="Field Operator">_≈_</a> <a id="9082" class="Symbol">=</a> <a id="9084" href="Algebra.Bundles.html#8873" class="Field Operator">_≈_</a><a id="9087" class="Symbol">;</a> <a id="9089" href="Algebra.Bundles.html#910" class="Field Operator">_∙_</a> <a id="9093" class="Symbol">=</a> <a id="9095" href="Algebra.Bundles.html#8901" class="Field Operator">_∧_</a> <a id="9099" class="Symbol">}</a>
<a id="9104" class="Keyword">open</a> <a id="9109" href="Algebra.Bundles.html#781" class="Module">RawMagma</a> <a id="9118" href="Algebra.Bundles.html#8952" class="Function">-rawMagma</a> <a id="9129" class="Keyword">public</a>
<a id="9140" class="Keyword">using</a> <a id="9146" class="Symbol">(</a><a id="9147" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a><a id="9150" class="Symbol">)</a>
<a id="9154" class="Keyword">record</a> <a id="Lattice"></a><a id="9161" href="Algebra.Bundles.html#9161" class="Record">Lattice</a> <a id="9169" href="Algebra.Bundles.html#9169" class="Bound">c</a> <a id="9171" href="Algebra.Bundles.html#9171" class="Bound"></a> <a id="9173" class="Symbol">:</a> <a id="9175" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="9179" class="Symbol">(</a><a id="9180" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="9184" class="Symbol">(</a><a id="9185" href="Algebra.Bundles.html#9169" class="Bound">c</a> <a id="9187" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="9189" href="Algebra.Bundles.html#9171" class="Bound"></a><a id="9190" class="Symbol">))</a> <a id="9193" class="Keyword">where</a>
<a id="9201" class="Keyword">infixr</a> <a id="9208" class="Number">7</a> <a id="9210" href="Algebra.Bundles.html#9336" class="Field Operator">_∧_</a>
<a id="9216" class="Keyword">infixr</a> <a id="9223" class="Number">6</a> <a id="9225" href="Algebra.Bundles.html#9308" class="Field Operator">__</a>
<a id="9231" class="Keyword">infix</a> <a id="9238" class="Number">4</a> <a id="9240" href="Algebra.Bundles.html#9278" class="Field Operator">_≈_</a>
<a id="9246" class="Keyword">field</a>
<a id="Lattice.Carrier"></a><a id="9256" href="Algebra.Bundles.html#9256" class="Field">Carrier</a> <a id="9266" class="Symbol">:</a> <a id="9268" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="9272" href="Algebra.Bundles.html#9169" class="Bound">c</a>
<a id="Lattice._≈_"></a><a id="9278" href="Algebra.Bundles.html#9278" class="Field Operator">_≈_</a> <a id="9288" class="Symbol">:</a> <a id="9290" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="9294" href="Algebra.Bundles.html#9256" class="Field">Carrier</a> <a id="9302" href="Algebra.Bundles.html#9171" class="Bound"></a>
<a id="Lattice.__"></a><a id="9308" href="Algebra.Bundles.html#9308" class="Field Operator">__</a> <a id="9318" class="Symbol">:</a> <a id="9320" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="9324" href="Algebra.Bundles.html#9256" class="Field">Carrier</a>
<a id="Lattice._∧_"></a><a id="9336" href="Algebra.Bundles.html#9336" class="Field Operator">_∧_</a> <a id="9346" class="Symbol">:</a> <a id="9348" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="9352" href="Algebra.Bundles.html#9256" class="Field">Carrier</a>
<a id="Lattice.isLattice"></a><a id="9364" href="Algebra.Bundles.html#9364" class="Field">isLattice</a> <a id="9374" class="Symbol">:</a> <a id="9376" href="Algebra.Structures.html#6121" class="Record">IsLattice</a> <a id="9386" href="Algebra.Bundles.html#9278" class="Field Operator">_≈_</a> <a id="9390" href="Algebra.Bundles.html#9308" class="Field Operator">__</a> <a id="9394" href="Algebra.Bundles.html#9336" class="Field Operator">_∧_</a>
<a id="9401" class="Keyword">open</a> <a id="9406" href="Algebra.Structures.html#6121" class="Module">IsLattice</a> <a id="9416" href="Algebra.Bundles.html#9364" class="Field">isLattice</a> <a id="9426" class="Keyword">public</a>
<a id="Lattice.rawLattice"></a><a id="9436" href="Algebra.Bundles.html#9436" class="Function">rawLattice</a> <a id="9447" class="Symbol">:</a> <a id="9449" href="Algebra.Bundles.html#8755" class="Record">RawLattice</a> <a id="9460" href="Algebra.Bundles.html#9169" class="Bound">c</a> <a id="9462" href="Algebra.Bundles.html#9171" class="Bound"></a>
<a id="9466" href="Algebra.Bundles.html#9436" class="Function">rawLattice</a> <a id="9477" class="Symbol">=</a> <a id="9479" class="Keyword">record</a>
<a id="9490" class="Symbol">{</a> <a id="9492" href="Algebra.Bundles.html#8873" class="Field Operator">_≈_</a> <a id="9497" class="Symbol">=</a> <a id="9499" href="Algebra.Bundles.html#9278" class="Field Operator">_≈_</a>
<a id="9507" class="Symbol">;</a> <a id="9509" href="Algebra.Bundles.html#8901" class="Field Operator">_∧_</a> <a id="9514" class="Symbol">=</a> <a id="9516" href="Algebra.Bundles.html#9336" class="Field Operator">_∧_</a>
<a id="9524" class="Symbol">;</a> <a id="9526" href="Algebra.Bundles.html#8927" class="Field Operator">__</a> <a id="9531" class="Symbol">=</a> <a id="9533" href="Algebra.Bundles.html#9308" class="Field Operator">__</a>
<a id="9541" class="Symbol">}</a>
<a id="9546" class="Keyword">open</a> <a id="9551" href="Algebra.Bundles.html#8755" class="Module">RawLattice</a> <a id="9562" href="Algebra.Bundles.html#9436" class="Function">rawLattice</a>
<a id="9577" class="Keyword">using</a> <a id="9583" class="Symbol">(</a><a id="9584" href="Algebra.Bundles.html#8952" class="Function">-rawMagma</a><a id="9594" class="Symbol">;</a> <a id="9596" href="Algebra.Bundles.html#9028" class="Function">∧-rawMagma</a><a id="9606" class="Symbol">)</a>
<a id="Lattice.setoid"></a><a id="9611" href="Algebra.Bundles.html#9611" class="Function">setoid</a> <a id="9618" class="Symbol">:</a> <a id="9620" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="9627" class="Symbol">_</a> <a id="9629" class="Symbol">_</a>
<a id="9633" href="Algebra.Bundles.html#9611" class="Function">setoid</a> <a id="9640" class="Symbol">=</a> <a id="9642" class="Keyword">record</a> <a id="9649" class="Symbol">{</a> <a id="9651" href="Relation.Binary.Bundles.html#1132" class="Field">isEquivalence</a> <a id="9665" class="Symbol">=</a> <a id="9667" href="Algebra.Structures.html#6177" class="Function">isEquivalence</a> <a id="9681" class="Symbol">}</a>
<a id="9686" class="Keyword">open</a> <a id="9691" href="Relation.Binary.Bundles.html#1009" class="Module">Setoid</a> <a id="9698" href="Algebra.Bundles.html#9611" class="Function">setoid</a> <a id="9705" class="Keyword">public</a>
<a id="9716" class="Keyword">using</a> <a id="9722" class="Symbol">(</a><a id="9723" href="Relation.Binary.Bundles.html#960" class="Function Operator">_≉_</a><a id="9726" class="Symbol">)</a>
<a id="9730" class="Keyword">record</a> <a id="DistributiveLattice"></a><a id="9737" href="Algebra.Bundles.html#9737" class="Record">DistributiveLattice</a> <a id="9757" href="Algebra.Bundles.html#9757" class="Bound">c</a> <a id="9759" href="Algebra.Bundles.html#9759" class="Bound"></a> <a id="9761" class="Symbol">:</a> <a id="9763" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="9767" class="Symbol">(</a><a id="9768" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="9772" class="Symbol">(</a><a id="9773" href="Algebra.Bundles.html#9757" class="Bound">c</a> <a id="9775" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="9777" href="Algebra.Bundles.html#9759" class="Bound"></a><a id="9778" class="Symbol">))</a> <a id="9781" class="Keyword">where</a>
<a id="9789" class="Keyword">infixr</a> <a id="9796" class="Number">7</a> <a id="9798" href="Algebra.Bundles.html#9960" class="Field Operator">_∧_</a>
<a id="9804" class="Keyword">infixr</a> <a id="9811" class="Number">6</a> <a id="9813" href="Algebra.Bundles.html#9920" class="Field Operator">__</a>
<a id="9819" class="Keyword">infix</a> <a id="9826" class="Number">4</a> <a id="9828" href="Algebra.Bundles.html#9878" class="Field Operator">_≈_</a>
<a id="9834" class="Keyword">field</a>
<a id="DistributiveLattice.Carrier"></a><a id="9844" href="Algebra.Bundles.html#9844" class="Field">Carrier</a> <a id="9866" class="Symbol">:</a> <a id="9868" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="9872" href="Algebra.Bundles.html#9757" class="Bound">c</a>
<a id="DistributiveLattice._≈_"></a><a id="9878" href="Algebra.Bundles.html#9878" class="Field Operator">_≈_</a> <a id="9900" class="Symbol">:</a> <a id="9902" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="9906" href="Algebra.Bundles.html#9844" class="Field">Carrier</a> <a id="9914" href="Algebra.Bundles.html#9759" class="Bound"></a>
<a id="DistributiveLattice.__"></a><a id="9920" href="Algebra.Bundles.html#9920" class="Field Operator">__</a> <a id="9942" class="Symbol">:</a> <a id="9944" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="9948" href="Algebra.Bundles.html#9844" class="Field">Carrier</a>
<a id="DistributiveLattice._∧_"></a><a id="9960" href="Algebra.Bundles.html#9960" class="Field Operator">_∧_</a> <a id="9982" class="Symbol">:</a> <a id="9984" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="9988" href="Algebra.Bundles.html#9844" class="Field">Carrier</a>
<a id="DistributiveLattice.isDistributiveLattice"></a><a id="10000" href="Algebra.Bundles.html#10000" class="Field">isDistributiveLattice</a> <a id="10022" class="Symbol">:</a> <a id="10024" href="Algebra.Structures.html#6870" class="Record">IsDistributiveLattice</a> <a id="10046" href="Algebra.Bundles.html#9878" class="Field Operator">_≈_</a> <a id="10050" href="Algebra.Bundles.html#9920" class="Field Operator">__</a> <a id="10054" href="Algebra.Bundles.html#9960" class="Field Operator">_∧_</a>
<a id="10061" class="Keyword">open</a> <a id="10066" href="Algebra.Structures.html#6870" class="Module">IsDistributiveLattice</a> <a id="10088" href="Algebra.Bundles.html#10000" class="Field">isDistributiveLattice</a> <a id="10110" class="Keyword">public</a>
<a id="DistributiveLattice.lattice"></a><a id="10120" href="Algebra.Bundles.html#10120" class="Function">lattice</a> <a id="10128" class="Symbol">:</a> <a id="10130" href="Algebra.Bundles.html#9161" class="Record">Lattice</a> <a id="10138" class="Symbol">_</a> <a id="10140" class="Symbol">_</a>
<a id="10144" href="Algebra.Bundles.html#10120" class="Function">lattice</a> <a id="10152" class="Symbol">=</a> <a id="10154" class="Keyword">record</a> <a id="10161" class="Symbol">{</a> <a id="10163" href="Algebra.Bundles.html#9364" class="Field">isLattice</a> <a id="10173" class="Symbol">=</a> <a id="10175" href="Algebra.Structures.html#6938" class="Function">isLattice</a> <a id="10185" class="Symbol">}</a>
<a id="10190" class="Keyword">open</a> <a id="10195" href="Algebra.Bundles.html#9161" class="Module">Lattice</a> <a id="10203" href="Algebra.Bundles.html#10120" class="Function">lattice</a> <a id="10211" class="Keyword">public</a>
<a id="10222" class="Keyword">using</a> <a id="10228" class="Symbol">(</a><a id="10229" href="Relation.Binary.Bundles.html#960" class="Function Operator">_≉_</a><a id="10232" class="Symbol">;</a> <a id="10234" href="Algebra.Bundles.html#9436" class="Function">rawLattice</a><a id="10244" class="Symbol">;</a> <a id="10246" href="Algebra.Bundles.html#9611" class="Function">setoid</a><a id="10252" class="Symbol">)</a>
<a id="10256" class="Comment">------------------------------------------------------------------------</a>
<a id="10329" class="Comment">-- Bundles with 2 binary operations &amp; 1 element</a>
<a id="10377" class="Comment">------------------------------------------------------------------------</a>
<a id="10451" class="Keyword">record</a> <a id="RawNearSemiring"></a><a id="10458" href="Algebra.Bundles.html#10458" class="Record">RawNearSemiring</a> <a id="10474" href="Algebra.Bundles.html#10474" class="Bound">c</a> <a id="10476" href="Algebra.Bundles.html#10476" class="Bound"></a> <a id="10478" class="Symbol">:</a> <a id="10480" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="10484" class="Symbol">(</a><a id="10485" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="10489" class="Symbol">(</a><a id="10490" href="Algebra.Bundles.html#10474" class="Bound">c</a> <a id="10492" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="10494" href="Algebra.Bundles.html#10476" class="Bound"></a><a id="10495" class="Symbol">))</a> <a id="10498" class="Keyword">where</a>
<a id="10506" class="Keyword">infixl</a> <a id="10513" class="Number">7</a> <a id="10515" href="Algebra.Bundles.html#10635" class="Field Operator">_*_</a>
<a id="10521" class="Keyword">infixl</a> <a id="10528" class="Number">6</a> <a id="10530" href="Algebra.Bundles.html#10609" class="Field Operator">_+_</a>
<a id="10536" class="Keyword">infix</a> <a id="10543" class="Number">4</a> <a id="10545" href="Algebra.Bundles.html#10581" class="Field Operator">_≈_</a>
<a id="10551" class="Keyword">field</a>
<a id="RawNearSemiring.Carrier"></a><a id="10561" href="Algebra.Bundles.html#10561" class="Field">Carrier</a> <a id="10569" class="Symbol">:</a> <a id="10571" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="10575" href="Algebra.Bundles.html#10474" class="Bound">c</a>
<a id="RawNearSemiring._≈_"></a><a id="10581" href="Algebra.Bundles.html#10581" class="Field Operator">_≈_</a> <a id="10589" class="Symbol">:</a> <a id="10591" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="10595" href="Algebra.Bundles.html#10561" class="Field">Carrier</a> <a id="10603" href="Algebra.Bundles.html#10476" class="Bound"></a>
<a id="RawNearSemiring._+_"></a><a id="10609" href="Algebra.Bundles.html#10609" class="Field Operator">_+_</a> <a id="10617" class="Symbol">:</a> <a id="10619" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="10623" href="Algebra.Bundles.html#10561" class="Field">Carrier</a>
<a id="RawNearSemiring._*_"></a><a id="10635" href="Algebra.Bundles.html#10635" class="Field Operator">_*_</a> <a id="10643" class="Symbol">:</a> <a id="10645" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="10649" href="Algebra.Bundles.html#10561" class="Field">Carrier</a>
<a id="RawNearSemiring.0#"></a><a id="10661" href="Algebra.Bundles.html#10661" class="Field">0#</a> <a id="10669" class="Symbol">:</a> <a id="10671" href="Algebra.Bundles.html#10561" class="Field">Carrier</a>
<a id="RawNearSemiring.+-rawMonoid"></a><a id="10682" href="Algebra.Bundles.html#10682" class="Function">+-rawMonoid</a> <a id="10694" class="Symbol">:</a> <a id="10696" href="Algebra.Bundles.html#4104" class="Record">RawMonoid</a> <a id="10706" href="Algebra.Bundles.html#10474" class="Bound">c</a> <a id="10708" href="Algebra.Bundles.html#10476" class="Bound"></a>
<a id="10712" href="Algebra.Bundles.html#10682" class="Function">+-rawMonoid</a> <a id="10724" class="Symbol">=</a> <a id="10726" class="Keyword">record</a>
<a id="10737" class="Symbol">{</a> <a id="10739" href="Algebra.Bundles.html#4206" class="Field Operator">_≈_</a> <a id="10743" class="Symbol">=</a> <a id="10745" href="Algebra.Bundles.html#10581" class="Field Operator">_≈_</a>
<a id="10753" class="Symbol">;</a> <a id="10755" href="Algebra.Bundles.html#4234" class="Field Operator">_∙_</a> <a id="10759" class="Symbol">=</a> <a id="10761" href="Algebra.Bundles.html#10609" class="Field Operator">_+_</a>
<a id="10769" class="Symbol">;</a> <a id="10772" href="Algebra.Bundles.html#4260" class="Field">ε</a> <a id="10775" class="Symbol">=</a> <a id="10777" href="Algebra.Bundles.html#10661" class="Field">0#</a>
<a id="10784" class="Symbol">}</a>
<a id="10789" class="Keyword">open</a> <a id="10794" href="Algebra.Bundles.html#4104" class="Module">RawMonoid</a> <a id="10804" href="Algebra.Bundles.html#10682" class="Function">+-rawMonoid</a> <a id="10816" class="Keyword">public</a>
<a id="10827" class="Keyword">using</a> <a id="10833" class="Symbol">(</a><a id="10834" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a><a id="10837" class="Symbol">)</a> <a id="10839" class="Keyword">renaming</a> <a id="10848" class="Symbol">(</a><a id="10849" href="Algebra.Bundles.html#4281" class="Function">rawMagma</a> <a id="10858" class="Symbol">to</a> <a id="10861" class="Function">+-rawMagma</a><a id="10871" class="Symbol">)</a>
<a id="RawNearSemiring.*-rawMagma"></a><a id="10876" href="Algebra.Bundles.html#10876" class="Function">*-rawMagma</a> <a id="10887" class="Symbol">:</a> <a id="10889" href="Algebra.Bundles.html#781" class="Record">RawMagma</a> <a id="10898" href="Algebra.Bundles.html#10474" class="Bound">c</a> <a id="10900" href="Algebra.Bundles.html#10476" class="Bound"></a>
<a id="10904" href="Algebra.Bundles.html#10876" class="Function">*-rawMagma</a> <a id="10915" class="Symbol">=</a> <a id="10917" class="Keyword">record</a>
<a id="10928" class="Symbol">{</a> <a id="10930" href="Algebra.Bundles.html#882" class="Field Operator">_≈_</a> <a id="10934" class="Symbol">=</a> <a id="10936" href="Algebra.Bundles.html#10581" class="Field Operator">_≈_</a>
<a id="10944" class="Symbol">;</a> <a id="10946" href="Algebra.Bundles.html#910" class="Field Operator">_∙_</a> <a id="10950" class="Symbol">=</a> <a id="10952" href="Algebra.Bundles.html#10635" class="Field Operator">_*_</a>
<a id="10960" class="Symbol">}</a>
<a id="10964" class="Keyword">record</a> <a id="NearSemiring"></a><a id="10971" href="Algebra.Bundles.html#10971" class="Record">NearSemiring</a> <a id="10984" href="Algebra.Bundles.html#10984" class="Bound">c</a> <a id="10986" href="Algebra.Bundles.html#10986" class="Bound"></a> <a id="10988" class="Symbol">:</a> <a id="10990" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="10994" class="Symbol">(</a><a id="10995" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="10999" class="Symbol">(</a><a id="11000" href="Algebra.Bundles.html#10984" class="Bound">c</a> <a id="11002" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="11004" href="Algebra.Bundles.html#10986" class="Bound"></a><a id="11005" class="Symbol">))</a> <a id="11008" class="Keyword">where</a>
<a id="11016" class="Keyword">infixl</a> <a id="11023" class="Number">7</a> <a id="11025" href="Algebra.Bundles.html#11166" class="Field Operator">_*_</a>
<a id="11031" class="Keyword">infixl</a> <a id="11038" class="Number">6</a> <a id="11040" href="Algebra.Bundles.html#11133" class="Field Operator">_+_</a>
<a id="11046" class="Keyword">infix</a> <a id="11053" class="Number">4</a> <a id="11055" href="Algebra.Bundles.html#11098" class="Field Operator">_≈_</a>
<a id="11061" class="Keyword">field</a>
<a id="NearSemiring.Carrier"></a><a id="11071" href="Algebra.Bundles.html#11071" class="Field">Carrier</a> <a id="11086" class="Symbol">:</a> <a id="11088" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="11092" href="Algebra.Bundles.html#10984" class="Bound">c</a>
<a id="NearSemiring._≈_"></a><a id="11098" href="Algebra.Bundles.html#11098" class="Field Operator">_≈_</a> <a id="11113" class="Symbol">:</a> <a id="11115" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="11119" href="Algebra.Bundles.html#11071" class="Field">Carrier</a> <a id="11127" href="Algebra.Bundles.html#10986" class="Bound"></a>
<a id="NearSemiring._+_"></a><a id="11133" href="Algebra.Bundles.html#11133" class="Field Operator">_+_</a> <a id="11148" class="Symbol">:</a> <a id="11150" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="11154" href="Algebra.Bundles.html#11071" class="Field">Carrier</a>
<a id="NearSemiring._*_"></a><a id="11166" href="Algebra.Bundles.html#11166" class="Field Operator">_*_</a> <a id="11181" class="Symbol">:</a> <a id="11183" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="11187" href="Algebra.Bundles.html#11071" class="Field">Carrier</a>
<a id="NearSemiring.0#"></a><a id="11199" href="Algebra.Bundles.html#11199" class="Field">0#</a> <a id="11214" class="Symbol">:</a> <a id="11216" href="Algebra.Bundles.html#11071" class="Field">Carrier</a>
<a id="NearSemiring.isNearSemiring"></a><a id="11228" href="Algebra.Bundles.html#11228" class="Field">isNearSemiring</a> <a id="11243" class="Symbol">:</a> <a id="11245" href="Algebra.Structures.html#7406" class="Record">IsNearSemiring</a> <a id="11260" href="Algebra.Bundles.html#11098" class="Field Operator">_≈_</a> <a id="11264" href="Algebra.Bundles.html#11133" class="Field Operator">_+_</a> <a id="11268" href="Algebra.Bundles.html#11166" class="Field Operator">_*_</a> <a id="11272" href="Algebra.Bundles.html#11199" class="Field">0#</a>
<a id="11278" class="Keyword">open</a> <a id="11283" href="Algebra.Structures.html#7406" class="Module">IsNearSemiring</a> <a id="11298" href="Algebra.Bundles.html#11228" class="Field">isNearSemiring</a> <a id="11313" class="Keyword">public</a>
<a id="NearSemiring.rawNearSemiring"></a><a id="11323" href="Algebra.Bundles.html#11323" class="Function">rawNearSemiring</a> <a id="11339" class="Symbol">:</a> <a id="11341" href="Algebra.Bundles.html#10458" class="Record">RawNearSemiring</a> <a id="11357" class="Symbol">_</a> <a id="11359" class="Symbol">_</a>
<a id="11363" href="Algebra.Bundles.html#11323" class="Function">rawNearSemiring</a> <a id="11379" class="Symbol">=</a> <a id="11381" class="Keyword">record</a>
<a id="11392" class="Symbol">{</a> <a id="11394" href="Algebra.Bundles.html#10581" class="Field Operator">_≈_</a> <a id="11398" class="Symbol">=</a> <a id="11400" href="Algebra.Bundles.html#11098" class="Field Operator">_≈_</a>
<a id="11408" class="Symbol">;</a> <a id="11410" href="Algebra.Bundles.html#10609" class="Field Operator">_+_</a> <a id="11414" class="Symbol">=</a> <a id="11416" href="Algebra.Bundles.html#11133" class="Field Operator">_+_</a>
<a id="11424" class="Symbol">;</a> <a id="11426" href="Algebra.Bundles.html#10635" class="Field Operator">_*_</a> <a id="11430" class="Symbol">=</a> <a id="11432" href="Algebra.Bundles.html#11166" class="Field Operator">_*_</a>
<a id="11440" class="Symbol">;</a> <a id="11442" href="Algebra.Bundles.html#10661" class="Field">0#</a> <a id="11446" class="Symbol">=</a> <a id="11448" href="Algebra.Bundles.html#11199" class="Field">0#</a>
<a id="11455" class="Symbol">}</a>
<a id="NearSemiring.+-monoid"></a><a id="11460" href="Algebra.Bundles.html#11460" class="Function">+-monoid</a> <a id="11469" class="Symbol">:</a> <a id="11471" href="Algebra.Bundles.html#4421" class="Record">Monoid</a> <a id="11478" class="Symbol">_</a> <a id="11480" class="Symbol">_</a>
<a id="11484" href="Algebra.Bundles.html#11460" class="Function">+-monoid</a> <a id="11493" class="Symbol">=</a> <a id="11495" class="Keyword">record</a> <a id="11502" class="Symbol">{</a> <a id="11504" href="Algebra.Bundles.html#4600" class="Field">isMonoid</a> <a id="11513" class="Symbol">=</a> <a id="11515" href="Algebra.Structures.html#7476" class="Function">+-isMonoid</a> <a id="11526" class="Symbol">}</a>
<a id="11531" class="Keyword">open</a> <a id="11536" href="Algebra.Bundles.html#4421" class="Module">Monoid</a> <a id="11543" href="Algebra.Bundles.html#11460" class="Function">+-monoid</a> <a id="11552" class="Keyword">public</a>
<a id="11563" class="Keyword">using</a> <a id="11569" class="Symbol">(</a><a id="11570" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a><a id="11573" class="Symbol">)</a> <a id="11575" class="Keyword">renaming</a>
<a id="11588" class="Symbol">(</a> <a id="11590" href="Algebra.Bundles.html#1212" class="Function">rawMagma</a> <a id="11600" class="Symbol">to</a> <a id="11603" class="Function">+-rawMagma</a>
<a id="11618" class="Symbol">;</a> <a id="11620" href="Algebra.Bundles.html#2387" class="Function">magma</a> <a id="11630" class="Symbol">to</a> <a id="11633" class="Function">+-magma</a>
<a id="11645" class="Symbol">;</a> <a id="11647" href="Algebra.Bundles.html#4666" class="Function">semigroup</a> <a id="11657" class="Symbol">to</a> <a id="11660" class="Function">+-semigroup</a>
<a id="11676" class="Symbol">;</a> <a id="11678" href="Algebra.Bundles.html#4814" class="Function">rawMonoid</a> <a id="11688" class="Symbol">to</a> <a id="11691" class="Function">+-rawMonoid</a>
<a id="11707" class="Symbol">)</a>
<a id="NearSemiring.*-semigroup"></a><a id="11712" href="Algebra.Bundles.html#11712" class="Function">*-semigroup</a> <a id="11724" class="Symbol">:</a> <a id="11726" href="Algebra.Bundles.html#2143" class="Record">Semigroup</a> <a id="11736" class="Symbol">_</a> <a id="11738" class="Symbol">_</a>
<a id="11742" href="Algebra.Bundles.html#11712" class="Function">*-semigroup</a> <a id="11754" class="Symbol">=</a> <a id="11756" class="Keyword">record</a> <a id="11763" class="Symbol">{</a> <a id="11765" href="Algebra.Bundles.html#2311" class="Field">isSemigroup</a> <a id="11777" class="Symbol">=</a> <a id="11779" href="Algebra.Structures.html#7510" class="Function">*-isSemigroup</a> <a id="11793" class="Symbol">}</a>
<a id="11798" class="Keyword">open</a> <a id="11803" href="Algebra.Bundles.html#2143" class="Module">Semigroup</a> <a id="11813" href="Algebra.Bundles.html#11712" class="Function">*-semigroup</a> <a id="11825" class="Keyword">public</a>
<a id="11836" class="Keyword">using</a> <a id="11842" class="Symbol">()</a> <a id="11845" class="Keyword">renaming</a>
<a id="11858" class="Symbol">(</a> <a id="11860" href="Algebra.Bundles.html#1212" class="Function">rawMagma</a> <a id="11869" class="Symbol">to</a> <a id="11872" class="Function">*-rawMagma</a>
<a id="11887" class="Symbol">;</a> <a id="11889" href="Algebra.Bundles.html#2387" class="Function">magma</a> <a id="11898" class="Symbol">to</a> <a id="11901" class="Function">*-magma</a>
<a id="11913" class="Symbol">)</a>
<a id="11917" class="Keyword">record</a> <a id="SemiringWithoutOne"></a><a id="11924" href="Algebra.Bundles.html#11924" class="Record">SemiringWithoutOne</a> <a id="11943" href="Algebra.Bundles.html#11943" class="Bound">c</a> <a id="11945" href="Algebra.Bundles.html#11945" class="Bound"></a> <a id="11947" class="Symbol">:</a> <a id="11949" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="11953" class="Symbol">(</a><a id="11954" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="11958" class="Symbol">(</a><a id="11959" href="Algebra.Bundles.html#11943" class="Bound">c</a> <a id="11961" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="11963" href="Algebra.Bundles.html#11945" class="Bound"></a><a id="11964" class="Symbol">))</a> <a id="11967" class="Keyword">where</a>
<a id="11975" class="Keyword">infixl</a> <a id="11982" class="Number">7</a> <a id="11984" href="Algebra.Bundles.html#12143" class="Field Operator">_*_</a>
<a id="11990" class="Keyword">infixl</a> <a id="11997" class="Number">6</a> <a id="11999" href="Algebra.Bundles.html#12104" class="Field Operator">_+_</a>
<a id="12005" class="Keyword">infix</a> <a id="12012" class="Number">4</a> <a id="12014" href="Algebra.Bundles.html#12063" class="Field Operator">_≈_</a>
<a id="12020" class="Keyword">field</a>
<a id="SemiringWithoutOne.Carrier"></a><a id="12030" href="Algebra.Bundles.html#12030" class="Field">Carrier</a> <a id="12051" class="Symbol">:</a> <a id="12053" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="12057" href="Algebra.Bundles.html#11943" class="Bound">c</a>
<a id="SemiringWithoutOne._≈_"></a><a id="12063" href="Algebra.Bundles.html#12063" class="Field Operator">_≈_</a> <a id="12084" class="Symbol">:</a> <a id="12086" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="12090" href="Algebra.Bundles.html#12030" class="Field">Carrier</a> <a id="12098" href="Algebra.Bundles.html#11945" class="Bound"></a>
<a id="SemiringWithoutOne._+_"></a><a id="12104" href="Algebra.Bundles.html#12104" class="Field Operator">_+_</a> <a id="12125" class="Symbol">:</a> <a id="12127" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="12131" href="Algebra.Bundles.html#12030" class="Field">Carrier</a>
<a id="SemiringWithoutOne._*_"></a><a id="12143" href="Algebra.Bundles.html#12143" class="Field Operator">_*_</a> <a id="12164" class="Symbol">:</a> <a id="12166" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="12170" href="Algebra.Bundles.html#12030" class="Field">Carrier</a>
<a id="SemiringWithoutOne.0#"></a><a id="12182" href="Algebra.Bundles.html#12182" class="Field">0#</a> <a id="12203" class="Symbol">:</a> <a id="12205" href="Algebra.Bundles.html#12030" class="Field">Carrier</a>
<a id="SemiringWithoutOne.isSemiringWithoutOne"></a><a id="12217" href="Algebra.Bundles.html#12217" class="Field">isSemiringWithoutOne</a> <a id="12238" class="Symbol">:</a> <a id="12240" href="Algebra.Structures.html#8161" class="Record">IsSemiringWithoutOne</a> <a id="12261" href="Algebra.Bundles.html#12063" class="Field Operator">_≈_</a> <a id="12265" href="Algebra.Bundles.html#12104" class="Field Operator">_+_</a> <a id="12269" href="Algebra.Bundles.html#12143" class="Field Operator">_*_</a> <a id="12273" href="Algebra.Bundles.html#12182" class="Field">0#</a>
<a id="12279" class="Keyword">open</a> <a id="12284" href="Algebra.Structures.html#8161" class="Module">IsSemiringWithoutOne</a> <a id="12305" href="Algebra.Bundles.html#12217" class="Field">isSemiringWithoutOne</a> <a id="12326" class="Keyword">public</a>
<a id="SemiringWithoutOne.nearSemiring"></a><a id="12336" href="Algebra.Bundles.html#12336" class="Function">nearSemiring</a> <a id="12349" class="Symbol">:</a> <a id="12351" href="Algebra.Bundles.html#10971" class="Record">NearSemiring</a> <a id="12364" class="Symbol">_</a> <a id="12366" class="Symbol">_</a>
<a id="12370" href="Algebra.Bundles.html#12336" class="Function">nearSemiring</a> <a id="12383" class="Symbol">=</a> <a id="12385" class="Keyword">record</a> <a id="12392" class="Symbol">{</a> <a id="12394" href="Algebra.Bundles.html#11228" class="Field">isNearSemiring</a> <a id="12409" class="Symbol">=</a> <a id="12411" href="Algebra.Structures.html#8791" class="Function">isNearSemiring</a> <a id="12426" class="Symbol">}</a>
<a id="12431" class="Keyword">open</a> <a id="12436" href="Algebra.Bundles.html#10971" class="Module">NearSemiring</a> <a id="12449" href="Algebra.Bundles.html#12336" class="Function">nearSemiring</a> <a id="12462" class="Keyword">public</a>
<a id="12473" class="Keyword">using</a>
<a id="12483" class="Symbol">(</a> <a id="12485" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a><a id="12488" class="Symbol">;</a> <a id="12490" href="Algebra.Bundles.html#11603" class="Function">+-rawMagma</a><a id="12500" class="Symbol">;</a> <a id="12502" href="Algebra.Bundles.html#11633" class="Function">+-magma</a><a id="12509" class="Symbol">;</a> <a id="12511" href="Algebra.Bundles.html#11660" class="Function">+-semigroup</a>
<a id="12527" class="Symbol">;</a> <a id="12529" href="Algebra.Bundles.html#11691" class="Function">+-rawMonoid</a><a id="12540" class="Symbol">;</a> <a id="12542" href="Algebra.Bundles.html#11460" class="Function">+-monoid</a>
<a id="12555" class="Symbol">;</a> <a id="12557" href="Algebra.Bundles.html#11872" class="Function">*-rawMagma</a><a id="12567" class="Symbol">;</a> <a id="12569" href="Algebra.Bundles.html#11901" class="Function">*-magma</a><a id="12576" class="Symbol">;</a> <a id="12578" href="Algebra.Bundles.html#11712" class="Function">*-semigroup</a>
<a id="12594" class="Symbol">;</a> <a id="12596" href="Algebra.Bundles.html#11323" class="Function">rawNearSemiring</a>
<a id="12616" class="Symbol">)</a>
<a id="SemiringWithoutOne.+-commutativeMonoid"></a><a id="12621" href="Algebra.Bundles.html#12621" class="Function">+-commutativeMonoid</a> <a id="12641" class="Symbol">:</a> <a id="12643" href="Algebra.Bundles.html#4901" class="Record">CommutativeMonoid</a> <a id="12661" class="Symbol">_</a> <a id="12663" class="Symbol">_</a>
<a id="12667" href="Algebra.Bundles.html#12621" class="Function">+-commutativeMonoid</a> <a id="12687" class="Symbol">=</a> <a id="12689" class="Keyword">record</a> <a id="12696" class="Symbol">{</a> <a id="12698" href="Algebra.Bundles.html#5135" class="Field">isCommutativeMonoid</a> <a id="12718" class="Symbol">=</a> <a id="12720" href="Algebra.Structures.html#8237" class="Function">+-isCommutativeMonoid</a> <a id="12742" class="Symbol">}</a>
<a id="12747" class="Keyword">open</a> <a id="12752" href="Algebra.Bundles.html#4901" class="Module">CommutativeMonoid</a> <a id="12770" href="Algebra.Bundles.html#12621" class="Function">+-commutativeMonoid</a> <a id="12790" class="Keyword">public</a>
<a id="12801" class="Keyword">using</a> <a id="12807" class="Symbol">()</a> <a id="12810" class="Keyword">renaming</a>
<a id="12823" class="Symbol">(</a> <a id="12825" href="Algebra.Bundles.html#3352" class="Function">commutativeMagma</a> <a id="12846" class="Symbol">to</a> <a id="12849" class="Function">+-commutativeMagma</a>
<a id="12872" class="Symbol">;</a> <a id="12874" href="Algebra.Bundles.html#5394" class="Function">commutativeSemigroup</a> <a id="12895" class="Symbol">to</a> <a id="12898" class="Function">+-commutativeSemigroup</a>
<a id="12925" class="Symbol">)</a>
<a id="12929" class="Keyword">record</a> <a id="CommutativeSemiringWithoutOne"></a><a id="12936" href="Algebra.Bundles.html#12936" class="Record">CommutativeSemiringWithoutOne</a> <a id="12966" href="Algebra.Bundles.html#12966" class="Bound">c</a> <a id="12968" href="Algebra.Bundles.html#12968" class="Bound"></a> <a id="12970" class="Symbol">:</a> <a id="12972" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="12976" class="Symbol">(</a><a id="12977" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="12981" class="Symbol">(</a><a id="12982" href="Algebra.Bundles.html#12966" class="Bound">c</a> <a id="12984" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="12986" href="Algebra.Bundles.html#12968" class="Bound"></a><a id="12987" class="Symbol">))</a> <a id="12990" class="Keyword">where</a>
<a id="12998" class="Keyword">infixl</a> <a id="13005" class="Number">7</a> <a id="13007" href="Algebra.Bundles.html#13199" class="Field Operator">_*_</a>
<a id="13013" class="Keyword">infixl</a> <a id="13020" class="Number">6</a> <a id="13022" href="Algebra.Bundles.html#13149" class="Field Operator">_+_</a>
<a id="13028" class="Keyword">infix</a> <a id="13035" class="Number">4</a> <a id="13037" href="Algebra.Bundles.html#13097" class="Field Operator">_≈_</a>
<a id="13043" class="Keyword">field</a>
<a id="CommutativeSemiringWithoutOne.Carrier"></a><a id="13053" href="Algebra.Bundles.html#13053" class="Field">Carrier</a> <a id="13085" class="Symbol">:</a> <a id="13087" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="13091" href="Algebra.Bundles.html#12966" class="Bound">c</a>
<a id="CommutativeSemiringWithoutOne._≈_"></a><a id="13097" href="Algebra.Bundles.html#13097" class="Field Operator">_≈_</a> <a id="13129" class="Symbol">:</a> <a id="13131" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="13135" href="Algebra.Bundles.html#13053" class="Field">Carrier</a> <a id="13143" href="Algebra.Bundles.html#12968" class="Bound"></a>
<a id="CommutativeSemiringWithoutOne._+_"></a><a id="13149" href="Algebra.Bundles.html#13149" class="Field Operator">_+_</a> <a id="13181" class="Symbol">:</a> <a id="13183" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="13187" href="Algebra.Bundles.html#13053" class="Field">Carrier</a>
<a id="CommutativeSemiringWithoutOne._*_"></a><a id="13199" href="Algebra.Bundles.html#13199" class="Field Operator">_*_</a> <a id="13231" class="Symbol">:</a> <a id="13233" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="13237" href="Algebra.Bundles.html#13053" class="Field">Carrier</a>
<a id="CommutativeSemiringWithoutOne.0#"></a><a id="13249" href="Algebra.Bundles.html#13249" class="Field">0#</a> <a id="13281" class="Symbol">:</a> <a id="13283" href="Algebra.Bundles.html#13053" class="Field">Carrier</a>
<a id="CommutativeSemiringWithoutOne.isCommutativeSemiringWithoutOne"></a><a id="13295" href="Algebra.Bundles.html#13295" class="Field">isCommutativeSemiringWithoutOne</a> <a id="13327" class="Symbol">:</a>
<a id="13335" href="Algebra.Structures.html#9095" class="Record">IsCommutativeSemiringWithoutOne</a> <a id="13367" href="Algebra.Bundles.html#13097" class="Field Operator">_≈_</a> <a id="13371" href="Algebra.Bundles.html#13149" class="Field Operator">_+_</a> <a id="13375" href="Algebra.Bundles.html#13199" class="Field Operator">_*_</a> <a id="13379" href="Algebra.Bundles.html#13249" class="Field">0#</a>
<a id="13385" class="Keyword">open</a> <a id="13390" href="Algebra.Structures.html#9095" class="Module">IsCommutativeSemiringWithoutOne</a>
<a id="13431" href="Algebra.Bundles.html#13295" class="Field">isCommutativeSemiringWithoutOne</a> <a id="13463" class="Keyword">public</a>
<a id="CommutativeSemiringWithoutOne.semiringWithoutOne"></a><a id="13473" href="Algebra.Bundles.html#13473" class="Function">semiringWithoutOne</a> <a id="13492" class="Symbol">:</a> <a id="13494" href="Algebra.Bundles.html#11924" class="Record">SemiringWithoutOne</a> <a id="13513" class="Symbol">_</a> <a id="13515" class="Symbol">_</a>
<a id="13519" href="Algebra.Bundles.html#13473" class="Function">semiringWithoutOne</a> <a id="13538" class="Symbol">=</a>
<a id="13544" class="Keyword">record</a> <a id="13551" class="Symbol">{</a> <a id="13553" href="Algebra.Bundles.html#12217" class="Field">isSemiringWithoutOne</a> <a id="13574" class="Symbol">=</a> <a id="13576" href="Algebra.Structures.html#9191" class="Function">isSemiringWithoutOne</a> <a id="13597" class="Symbol">}</a>
<a id="13602" class="Keyword">open</a> <a id="13607" href="Algebra.Bundles.html#11924" class="Module">SemiringWithoutOne</a> <a id="13626" href="Algebra.Bundles.html#13473" class="Function">semiringWithoutOne</a> <a id="13645" class="Keyword">public</a>
<a id="13656" class="Keyword">using</a>
<a id="13666" class="Symbol">(</a> <a id="13668" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a><a id="13671" class="Symbol">;</a> <a id="13673" href="Algebra.Bundles.html#11603" class="Function">+-rawMagma</a><a id="13683" class="Symbol">;</a> <a id="13685" href="Algebra.Bundles.html#11633" class="Function">+-magma</a><a id="13692" class="Symbol">;</a> <a id="13694" href="Algebra.Bundles.html#11660" class="Function">+-semigroup</a><a id="13705" class="Symbol">;</a> <a id="13707" href="Algebra.Bundles.html#12898" class="Function">+-commutativeSemigroup</a>
<a id="13734" class="Symbol">;</a> <a id="13736" href="Algebra.Bundles.html#11872" class="Function">*-rawMagma</a><a id="13746" class="Symbol">;</a> <a id="13748" href="Algebra.Bundles.html#11901" class="Function">*-magma</a><a id="13755" class="Symbol">;</a> <a id="13757" href="Algebra.Bundles.html#11712" class="Function">*-semigroup</a>
<a id="13773" class="Symbol">;</a> <a id="13775" href="Algebra.Bundles.html#11691" class="Function">+-rawMonoid</a><a id="13786" class="Symbol">;</a> <a id="13788" href="Algebra.Bundles.html#11460" class="Function">+-monoid</a><a id="13796" class="Symbol">;</a> <a id="13798" href="Algebra.Bundles.html#12621" class="Function">+-commutativeMonoid</a>
<a id="13822" class="Symbol">;</a> <a id="13824" href="Algebra.Bundles.html#12336" class="Function">nearSemiring</a><a id="13836" class="Symbol">;</a> <a id="13838" href="Algebra.Bundles.html#11323" class="Function">rawNearSemiring</a>
<a id="13858" class="Symbol">)</a>
<a id="13861" class="Comment">------------------------------------------------------------------------</a>
<a id="13934" class="Comment">-- Bundles with 2 binary operations &amp; 2 elements</a>
<a id="13983" class="Comment">------------------------------------------------------------------------</a>
<a id="14057" class="Keyword">record</a> <a id="RawSemiring"></a><a id="14064" href="Algebra.Bundles.html#14064" class="Record">RawSemiring</a> <a id="14076" href="Algebra.Bundles.html#14076" class="Bound">c</a> <a id="14078" href="Algebra.Bundles.html#14078" class="Bound"></a> <a id="14080" class="Symbol">:</a> <a id="14082" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="14086" class="Symbol">(</a><a id="14087" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="14091" class="Symbol">(</a><a id="14092" href="Algebra.Bundles.html#14076" class="Bound">c</a> <a id="14094" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="14096" href="Algebra.Bundles.html#14078" class="Bound"></a><a id="14097" class="Symbol">))</a> <a id="14100" class="Keyword">where</a>
<a id="14108" class="Keyword">infixl</a> <a id="14115" class="Number">7</a> <a id="14117" href="Algebra.Bundles.html#14237" class="Field Operator">_*_</a>
<a id="14123" class="Keyword">infixl</a> <a id="14130" class="Number">6</a> <a id="14132" href="Algebra.Bundles.html#14211" class="Field Operator">_+_</a>
<a id="14138" class="Keyword">infix</a> <a id="14145" class="Number">4</a> <a id="14147" href="Algebra.Bundles.html#14183" class="Field Operator">_≈_</a>
<a id="14153" class="Keyword">field</a>
<a id="RawSemiring.Carrier"></a><a id="14163" href="Algebra.Bundles.html#14163" class="Field">Carrier</a> <a id="14171" class="Symbol">:</a> <a id="14173" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="14177" href="Algebra.Bundles.html#14076" class="Bound">c</a>
<a id="RawSemiring._≈_"></a><a id="14183" href="Algebra.Bundles.html#14183" class="Field Operator">_≈_</a> <a id="14191" class="Symbol">:</a> <a id="14193" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="14197" href="Algebra.Bundles.html#14163" class="Field">Carrier</a> <a id="14205" href="Algebra.Bundles.html#14078" class="Bound"></a>
<a id="RawSemiring._+_"></a><a id="14211" href="Algebra.Bundles.html#14211" class="Field Operator">_+_</a> <a id="14219" class="Symbol">:</a> <a id="14221" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="14225" href="Algebra.Bundles.html#14163" class="Field">Carrier</a>
<a id="RawSemiring._*_"></a><a id="14237" href="Algebra.Bundles.html#14237" class="Field Operator">_*_</a> <a id="14245" class="Symbol">:</a> <a id="14247" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="14251" href="Algebra.Bundles.html#14163" class="Field">Carrier</a>
<a id="RawSemiring.0#"></a><a id="14263" href="Algebra.Bundles.html#14263" class="Field">0#</a> <a id="14271" class="Symbol">:</a> <a id="14273" href="Algebra.Bundles.html#14163" class="Field">Carrier</a>
<a id="RawSemiring.1#"></a><a id="14285" href="Algebra.Bundles.html#14285" class="Field">1#</a> <a id="14293" class="Symbol">:</a> <a id="14295" href="Algebra.Bundles.html#14163" class="Field">Carrier</a>
<a id="RawSemiring.rawNearSemiring"></a><a id="14306" href="Algebra.Bundles.html#14306" class="Function">rawNearSemiring</a> <a id="14322" class="Symbol">:</a> <a id="14324" href="Algebra.Bundles.html#10458" class="Record">RawNearSemiring</a> <a id="14340" href="Algebra.Bundles.html#14076" class="Bound">c</a> <a id="14342" href="Algebra.Bundles.html#14078" class="Bound"></a>
<a id="14346" href="Algebra.Bundles.html#14306" class="Function">rawNearSemiring</a> <a id="14362" class="Symbol">=</a> <a id="14364" class="Keyword">record</a>
<a id="14375" class="Symbol">{</a> <a id="14377" href="Algebra.Bundles.html#10581" class="Field Operator">_≈_</a> <a id="14381" class="Symbol">=</a> <a id="14383" href="Algebra.Bundles.html#14183" class="Field Operator">_≈_</a>
<a id="14391" class="Symbol">;</a> <a id="14393" href="Algebra.Bundles.html#10609" class="Field Operator">_+_</a> <a id="14397" class="Symbol">=</a> <a id="14399" href="Algebra.Bundles.html#14211" class="Field Operator">_+_</a>
<a id="14407" class="Symbol">;</a> <a id="14409" href="Algebra.Bundles.html#10635" class="Field Operator">_*_</a> <a id="14413" class="Symbol">=</a> <a id="14415" href="Algebra.Bundles.html#14237" class="Field Operator">_*_</a>
<a id="14423" class="Symbol">;</a> <a id="14425" href="Algebra.Bundles.html#10661" class="Field">0#</a> <a id="14429" class="Symbol">=</a> <a id="14431" href="Algebra.Bundles.html#14263" class="Field">0#</a>
<a id="14438" class="Symbol">}</a>
<a id="14443" class="Keyword">open</a> <a id="14448" href="Algebra.Bundles.html#10458" class="Module">RawNearSemiring</a> <a id="14464" href="Algebra.Bundles.html#14306" class="Function">rawNearSemiring</a> <a id="14480" class="Keyword">public</a>
<a id="14491" class="Keyword">using</a> <a id="14497" class="Symbol">(</a><a id="14498" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a><a id="14501" class="Symbol">;</a> <a id="14503" href="Algebra.Bundles.html#10682" class="Function">+-rawMonoid</a><a id="14514" class="Symbol">;</a> <a id="14516" href="Algebra.Bundles.html#10861" class="Function">+-rawMagma</a><a id="14526" class="Symbol">;</a> <a id="14528" href="Algebra.Bundles.html#10876" class="Function">*-rawMagma</a><a id="14538" class="Symbol">)</a>
<a id="RawSemiring.*-rawMonoid"></a><a id="14543" href="Algebra.Bundles.html#14543" class="Function">*-rawMonoid</a> <a id="14555" class="Symbol">:</a> <a id="14557" href="Algebra.Bundles.html#4104" class="Record">RawMonoid</a> <a id="14567" href="Algebra.Bundles.html#14076" class="Bound">c</a> <a id="14569" href="Algebra.Bundles.html#14078" class="Bound"></a>
<a id="14573" href="Algebra.Bundles.html#14543" class="Function">*-rawMonoid</a> <a id="14585" class="Symbol">=</a> <a id="14587" class="Keyword">record</a>
<a id="14598" class="Symbol">{</a> <a id="14600" href="Algebra.Bundles.html#4206" class="Field Operator">_≈_</a> <a id="14604" class="Symbol">=</a> <a id="14606" href="Algebra.Bundles.html#14183" class="Field Operator">_≈_</a>
<a id="14614" class="Symbol">;</a> <a id="14616" href="Algebra.Bundles.html#4234" class="Field Operator">_∙_</a> <a id="14620" class="Symbol">=</a> <a id="14622" href="Algebra.Bundles.html#14237" class="Field Operator">_*_</a>
<a id="14630" class="Symbol">;</a> <a id="14632" href="Algebra.Bundles.html#4260" class="Field">ε</a> <a id="14636" class="Symbol">=</a> <a id="14638" href="Algebra.Bundles.html#14285" class="Field">1#</a>
<a id="14645" class="Symbol">}</a>
<a id="14649" class="Keyword">record</a> <a id="SemiringWithoutAnnihilatingZero"></a><a id="14656" href="Algebra.Bundles.html#14656" class="Record">SemiringWithoutAnnihilatingZero</a> <a id="14688" href="Algebra.Bundles.html#14688" class="Bound">c</a> <a id="14690" href="Algebra.Bundles.html#14690" class="Bound"></a> <a id="14692" class="Symbol">:</a> <a id="14694" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="14698" class="Symbol">(</a><a id="14699" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="14703" class="Symbol">(</a><a id="14704" href="Algebra.Bundles.html#14688" class="Bound">c</a> <a id="14706" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="14708" href="Algebra.Bundles.html#14690" class="Bound"></a><a id="14709" class="Symbol">))</a> <a id="14712" class="Keyword">where</a>
<a id="14720" class="Keyword">infixl</a> <a id="14727" class="Number">7</a> <a id="14729" href="Algebra.Bundles.html#14927" class="Field Operator">_*_</a>
<a id="14735" class="Keyword">infixl</a> <a id="14742" class="Number">6</a> <a id="14744" href="Algebra.Bundles.html#14875" class="Field Operator">_+_</a>
<a id="14750" class="Keyword">infix</a> <a id="14757" class="Number">4</a> <a id="14759" href="Algebra.Bundles.html#14821" class="Field Operator">_≈_</a>
<a id="14765" class="Keyword">field</a>
<a id="SemiringWithoutAnnihilatingZero.Carrier"></a><a id="14775" href="Algebra.Bundles.html#14775" class="Field">Carrier</a> <a id="14809" class="Symbol">:</a> <a id="14811" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="14815" href="Algebra.Bundles.html#14688" class="Bound">c</a>
<a id="SemiringWithoutAnnihilatingZero._≈_"></a><a id="14821" href="Algebra.Bundles.html#14821" class="Field Operator">_≈_</a> <a id="14855" class="Symbol">:</a> <a id="14857" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="14861" href="Algebra.Bundles.html#14775" class="Field">Carrier</a> <a id="14869" href="Algebra.Bundles.html#14690" class="Bound"></a>
<a id="SemiringWithoutAnnihilatingZero._+_"></a><a id="14875" href="Algebra.Bundles.html#14875" class="Field Operator">_+_</a> <a id="14909" class="Symbol">:</a> <a id="14911" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="14915" href="Algebra.Bundles.html#14775" class="Field">Carrier</a>
<a id="SemiringWithoutAnnihilatingZero._*_"></a><a id="14927" href="Algebra.Bundles.html#14927" class="Field Operator">_*_</a> <a id="14961" class="Symbol">:</a> <a id="14963" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="14967" href="Algebra.Bundles.html#14775" class="Field">Carrier</a>
<a id="SemiringWithoutAnnihilatingZero.0#"></a><a id="14979" href="Algebra.Bundles.html#14979" class="Field">0#</a> <a id="15013" class="Symbol">:</a> <a id="15015" href="Algebra.Bundles.html#14775" class="Field">Carrier</a>
<a id="SemiringWithoutAnnihilatingZero.1#"></a><a id="15027" href="Algebra.Bundles.html#15027" class="Field">1#</a> <a id="15061" class="Symbol">:</a> <a id="15063" href="Algebra.Bundles.html#14775" class="Field">Carrier</a>
<a id="SemiringWithoutAnnihilatingZero.isSemiringWithoutAnnihilatingZero"></a><a id="15075" href="Algebra.Bundles.html#15075" class="Field">isSemiringWithoutAnnihilatingZero</a> <a id="15109" class="Symbol">:</a>
<a id="15117" href="Algebra.Structures.html#9835" class="Record">IsSemiringWithoutAnnihilatingZero</a> <a id="15151" href="Algebra.Bundles.html#14821" class="Field Operator">_≈_</a> <a id="15155" href="Algebra.Bundles.html#14875" class="Field Operator">_+_</a> <a id="15159" href="Algebra.Bundles.html#14927" class="Field Operator">_*_</a> <a id="15163" href="Algebra.Bundles.html#14979" class="Field">0#</a> <a id="15166" href="Algebra.Bundles.html#15027" class="Field">1#</a>
<a id="15172" class="Keyword">open</a> <a id="15177" href="Algebra.Structures.html#9835" class="Module">IsSemiringWithoutAnnihilatingZero</a>
<a id="15220" href="Algebra.Bundles.html#15075" class="Field">isSemiringWithoutAnnihilatingZero</a> <a id="15254" class="Keyword">public</a>
<a id="SemiringWithoutAnnihilatingZero.rawSemiring"></a><a id="15264" href="Algebra.Bundles.html#15264" class="Function">rawSemiring</a> <a id="15276" class="Symbol">:</a> <a id="15278" href="Algebra.Bundles.html#14064" class="Record">RawSemiring</a> <a id="15290" href="Algebra.Bundles.html#14688" class="Bound">c</a> <a id="15292" href="Algebra.Bundles.html#14690" class="Bound"></a>
<a id="15296" href="Algebra.Bundles.html#15264" class="Function">rawSemiring</a> <a id="15308" class="Symbol">=</a> <a id="15310" class="Keyword">record</a>
<a id="15321" class="Symbol">{</a> <a id="15323" href="Algebra.Bundles.html#14183" class="Field Operator">_≈_</a> <a id="15327" class="Symbol">=</a> <a id="15329" href="Algebra.Bundles.html#14821" class="Field Operator">_≈_</a>
<a id="15337" class="Symbol">;</a> <a id="15339" href="Algebra.Bundles.html#14211" class="Field Operator">_+_</a> <a id="15343" class="Symbol">=</a> <a id="15345" href="Algebra.Bundles.html#14875" class="Field Operator">_+_</a>
<a id="15353" class="Symbol">;</a> <a id="15355" href="Algebra.Bundles.html#14237" class="Field Operator">_*_</a> <a id="15359" class="Symbol">=</a> <a id="15361" href="Algebra.Bundles.html#14927" class="Field Operator">_*_</a>
<a id="15369" class="Symbol">;</a> <a id="15371" href="Algebra.Bundles.html#14263" class="Field">0#</a> <a id="15375" class="Symbol">=</a> <a id="15377" href="Algebra.Bundles.html#14979" class="Field">0#</a>
<a id="15384" class="Symbol">;</a> <a id="15386" href="Algebra.Bundles.html#14285" class="Field">1#</a> <a id="15390" class="Symbol">=</a> <a id="15392" href="Algebra.Bundles.html#15027" class="Field">1#</a>
<a id="15399" class="Symbol">}</a>
<a id="15404" class="Keyword">open</a> <a id="15409" href="Algebra.Bundles.html#14064" class="Module">RawSemiring</a> <a id="15421" href="Algebra.Bundles.html#15264" class="Function">rawSemiring</a> <a id="15433" class="Keyword">public</a>
<a id="15444" class="Keyword">using</a> <a id="15450" class="Symbol">(</a><a id="15451" href="Algebra.Bundles.html#14306" class="Function">rawNearSemiring</a><a id="15466" class="Symbol">)</a>
<a id="SemiringWithoutAnnihilatingZero.+-commutativeMonoid"></a><a id="15471" href="Algebra.Bundles.html#15471" class="Function">+-commutativeMonoid</a> <a id="15491" class="Symbol">:</a> <a id="15493" href="Algebra.Bundles.html#4901" class="Record">CommutativeMonoid</a> <a id="15511" class="Symbol">_</a> <a id="15513" class="Symbol">_</a>
<a id="15517" href="Algebra.Bundles.html#15471" class="Function">+-commutativeMonoid</a> <a id="15537" class="Symbol">=</a>
<a id="15543" class="Keyword">record</a> <a id="15550" class="Symbol">{</a> <a id="15552" href="Algebra.Bundles.html#5135" class="Field">isCommutativeMonoid</a> <a id="15572" class="Symbol">=</a> <a id="15574" href="Algebra.Structures.html#10097" class="Function">+-isCommutativeMonoid</a> <a id="15596" class="Symbol">}</a>
<a id="15601" class="Keyword">open</a> <a id="15606" href="Algebra.Bundles.html#4901" class="Module">CommutativeMonoid</a> <a id="15624" href="Algebra.Bundles.html#15471" class="Function">+-commutativeMonoid</a> <a id="15644" class="Keyword">public</a>
<a id="15655" class="Keyword">using</a> <a id="15661" class="Symbol">(</a><a id="15662" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a><a id="15665" class="Symbol">)</a> <a id="15667" class="Keyword">renaming</a>
<a id="15680" class="Symbol">(</a> <a id="15682" href="Algebra.Bundles.html#1212" class="Function">rawMagma</a> <a id="15703" class="Symbol">to</a> <a id="15706" class="Function">+-rawMagma</a>
<a id="15721" class="Symbol">;</a> <a id="15723" href="Algebra.Bundles.html#2387" class="Function">magma</a> <a id="15744" class="Symbol">to</a> <a id="15747" class="Function">+-magma</a>
<a id="15759" class="Symbol">;</a> <a id="15761" href="Algebra.Bundles.html#3352" class="Function">commutativeMagma</a> <a id="15782" class="Symbol">to</a> <a id="15785" class="Function">+-commutativeMagma</a>
<a id="15808" class="Symbol">;</a> <a id="15810" href="Algebra.Bundles.html#4666" class="Function">semigroup</a> <a id="15831" class="Symbol">to</a> <a id="15834" class="Function">+-semigroup</a>
<a id="15850" class="Symbol">;</a> <a id="15852" href="Algebra.Bundles.html#5394" class="Function">commutativeSemigroup</a> <a id="15873" class="Symbol">to</a> <a id="15876" class="Function">+-commutativeSemigroup</a>
<a id="15903" class="Symbol">;</a> <a id="15905" href="Algebra.Bundles.html#4814" class="Function">rawMonoid</a> <a id="15926" class="Symbol">to</a> <a id="15929" class="Function">+-rawMonoid</a>
<a id="15945" class="Symbol">;</a> <a id="15947" href="Algebra.Bundles.html#5245" class="Function">monoid</a> <a id="15968" class="Symbol">to</a> <a id="15971" class="Function">+-monoid</a>
<a id="15984" class="Symbol">)</a>
<a id="SemiringWithoutAnnihilatingZero.*-monoid"></a><a id="15989" href="Algebra.Bundles.html#15989" class="Function">*-monoid</a> <a id="15998" class="Symbol">:</a> <a id="16000" href="Algebra.Bundles.html#4421" class="Record">Monoid</a> <a id="16007" class="Symbol">_</a> <a id="16009" class="Symbol">_</a>
<a id="16013" href="Algebra.Bundles.html#15989" class="Function">*-monoid</a> <a id="16022" class="Symbol">=</a> <a id="16024" class="Keyword">record</a> <a id="16031" class="Symbol">{</a> <a id="16033" href="Algebra.Bundles.html#4600" class="Field">isMonoid</a> <a id="16042" class="Symbol">=</a> <a id="16044" href="Algebra.Structures.html#10150" class="Function">*-isMonoid</a> <a id="16055" class="Symbol">}</a>
<a id="16060" class="Keyword">open</a> <a id="16065" href="Algebra.Bundles.html#4421" class="Module">Monoid</a> <a id="16072" href="Algebra.Bundles.html#15989" class="Function">*-monoid</a> <a id="16081" class="Keyword">public</a>
<a id="16092" class="Keyword">using</a> <a id="16098" class="Symbol">()</a> <a id="16101" class="Keyword">renaming</a>
<a id="16114" class="Symbol">(</a> <a id="16116" href="Algebra.Bundles.html#1212" class="Function">rawMagma</a> <a id="16126" class="Symbol">to</a> <a id="16129" class="Function">*-rawMagma</a>
<a id="16144" class="Symbol">;</a> <a id="16146" href="Algebra.Bundles.html#2387" class="Function">magma</a> <a id="16156" class="Symbol">to</a> <a id="16159" class="Function">*-magma</a>
<a id="16171" class="Symbol">;</a> <a id="16173" href="Algebra.Bundles.html#4666" class="Function">semigroup</a> <a id="16183" class="Symbol">to</a> <a id="16186" class="Function">*-semigroup</a>
<a id="16202" class="Symbol">;</a> <a id="16204" href="Algebra.Bundles.html#4814" class="Function">rawMonoid</a> <a id="16214" class="Symbol">to</a> <a id="16217" class="Function">*-rawMonoid</a>
<a id="16233" class="Symbol">)</a>
<a id="16237" class="Keyword">record</a> <a id="Semiring"></a><a id="16244" href="Algebra.Bundles.html#16244" class="Record">Semiring</a> <a id="16253" href="Algebra.Bundles.html#16253" class="Bound">c</a> <a id="16255" href="Algebra.Bundles.html#16255" class="Bound"></a> <a id="16257" class="Symbol">:</a> <a id="16259" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="16263" class="Symbol">(</a><a id="16264" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="16268" class="Symbol">(</a><a id="16269" href="Algebra.Bundles.html#16253" class="Bound">c</a> <a id="16271" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="16273" href="Algebra.Bundles.html#16255" class="Bound"></a><a id="16274" class="Symbol">))</a> <a id="16277" class="Keyword">where</a>
<a id="16285" class="Keyword">infixl</a> <a id="16292" class="Number">7</a> <a id="16294" href="Algebra.Bundles.html#16423" class="Field Operator">_*_</a>
<a id="16300" class="Keyword">infixl</a> <a id="16307" class="Number">6</a> <a id="16309" href="Algebra.Bundles.html#16394" class="Field Operator">_+_</a>
<a id="16315" class="Keyword">infix</a> <a id="16322" class="Number">4</a> <a id="16324" href="Algebra.Bundles.html#16363" class="Field Operator">_≈_</a>
<a id="16330" class="Keyword">field</a>
<a id="Semiring.Carrier"></a><a id="16340" href="Algebra.Bundles.html#16340" class="Field">Carrier</a> <a id="16351" class="Symbol">:</a> <a id="16353" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="16357" href="Algebra.Bundles.html#16253" class="Bound">c</a>
<a id="Semiring._≈_"></a><a id="16363" href="Algebra.Bundles.html#16363" class="Field Operator">_≈_</a> <a id="16374" class="Symbol">:</a> <a id="16376" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="16380" href="Algebra.Bundles.html#16340" class="Field">Carrier</a> <a id="16388" href="Algebra.Bundles.html#16255" class="Bound"></a>
<a id="Semiring._+_"></a><a id="16394" href="Algebra.Bundles.html#16394" class="Field Operator">_+_</a> <a id="16405" class="Symbol">:</a> <a id="16407" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="16411" href="Algebra.Bundles.html#16340" class="Field">Carrier</a>
<a id="Semiring._*_"></a><a id="16423" href="Algebra.Bundles.html#16423" class="Field Operator">_*_</a> <a id="16434" class="Symbol">:</a> <a id="16436" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="16440" href="Algebra.Bundles.html#16340" class="Field">Carrier</a>
<a id="Semiring.0#"></a><a id="16452" href="Algebra.Bundles.html#16452" class="Field">0#</a> <a id="16463" class="Symbol">:</a> <a id="16465" href="Algebra.Bundles.html#16340" class="Field">Carrier</a>
<a id="Semiring.1#"></a><a id="16477" href="Algebra.Bundles.html#16477" class="Field">1#</a> <a id="16488" class="Symbol">:</a> <a id="16490" href="Algebra.Bundles.html#16340" class="Field">Carrier</a>
<a id="Semiring.isSemiring"></a><a id="16502" href="Algebra.Bundles.html#16502" class="Field">isSemiring</a> <a id="16513" class="Symbol">:</a> <a id="16515" href="Algebra.Structures.html#11361" class="Record">IsSemiring</a> <a id="16526" href="Algebra.Bundles.html#16363" class="Field Operator">_≈_</a> <a id="16530" href="Algebra.Bundles.html#16394" class="Field Operator">_+_</a> <a id="16534" href="Algebra.Bundles.html#16423" class="Field Operator">_*_</a> <a id="16538" href="Algebra.Bundles.html#16452" class="Field">0#</a> <a id="16541" href="Algebra.Bundles.html#16477" class="Field">1#</a>
<a id="16547" class="Keyword">open</a> <a id="16552" href="Algebra.Structures.html#11361" class="Module">IsSemiring</a> <a id="16563" href="Algebra.Bundles.html#16502" class="Field">isSemiring</a> <a id="16574" class="Keyword">public</a>
<a id="Semiring.semiringWithoutAnnihilatingZero"></a><a id="16584" href="Algebra.Bundles.html#16584" class="Function">semiringWithoutAnnihilatingZero</a> <a id="16616" class="Symbol">:</a> <a id="16618" href="Algebra.Bundles.html#14656" class="Record">SemiringWithoutAnnihilatingZero</a> <a id="16650" class="Symbol">_</a> <a id="16652" class="Symbol">_</a>
<a id="16656" href="Algebra.Bundles.html#16584" class="Function">semiringWithoutAnnihilatingZero</a> <a id="16688" class="Symbol">=</a> <a id="16690" class="Keyword">record</a>
<a id="16701" class="Symbol">{</a> <a id="16703" href="Algebra.Bundles.html#15075" class="Field">isSemiringWithoutAnnihilatingZero</a> <a id="16737" class="Symbol">=</a>
<a id="16747" href="Algebra.Structures.html#11430" class="Function">isSemiringWithoutAnnihilatingZero</a>
<a id="16785" class="Symbol">}</a>
<a id="16790" class="Keyword">open</a> <a id="16795" href="Algebra.Bundles.html#14656" class="Module">SemiringWithoutAnnihilatingZero</a>
<a id="16836" href="Algebra.Bundles.html#16584" class="Function">semiringWithoutAnnihilatingZero</a> <a id="16868" class="Keyword">public</a>
<a id="16879" class="Keyword">using</a>
<a id="16889" class="Symbol">(</a> <a id="16891" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a><a id="16894" class="Symbol">;</a> <a id="16896" href="Algebra.Bundles.html#15706" class="Function">+-rawMagma</a><a id="16906" class="Symbol">;</a> <a id="16909" href="Algebra.Bundles.html#15747" class="Function">+-magma</a><a id="16916" class="Symbol">;</a> <a id="16919" href="Algebra.Bundles.html#15785" class="Function">+-commutativeMagma</a><a id="16937" class="Symbol">;</a> <a id="16939" href="Algebra.Bundles.html#15834" class="Function">+-semigroup</a><a id="16950" class="Symbol">;</a> <a id="16952" href="Algebra.Bundles.html#15876" class="Function">+-commutativeSemigroup</a>
<a id="16979" class="Symbol">;</a> <a id="16981" href="Algebra.Bundles.html#16129" class="Function">*-rawMagma</a><a id="16991" class="Symbol">;</a> <a id="16994" href="Algebra.Bundles.html#16159" class="Function">*-magma</a><a id="17001" class="Symbol">;</a> <a id="17004" href="Algebra.Bundles.html#16186" class="Function">*-semigroup</a>
<a id="17020" class="Symbol">;</a> <a id="17022" href="Algebra.Bundles.html#15929" class="Function">+-rawMonoid</a><a id="17033" class="Symbol">;</a> <a id="17035" href="Algebra.Bundles.html#15971" class="Function">+-monoid</a><a id="17043" class="Symbol">;</a> <a id="17045" href="Algebra.Bundles.html#15471" class="Function">+-commutativeMonoid</a>
<a id="17069" class="Symbol">;</a> <a id="17071" href="Algebra.Bundles.html#16217" class="Function">*-rawMonoid</a><a id="17082" class="Symbol">;</a> <a id="17084" href="Algebra.Bundles.html#15989" class="Function">*-monoid</a>
<a id="17097" class="Symbol">;</a> <a id="17099" href="Algebra.Bundles.html#14306" class="Function">rawNearSemiring</a> <a id="17115" class="Symbol">;</a> <a id="17117" href="Algebra.Bundles.html#15264" class="Function">rawSemiring</a>
<a id="17133" class="Symbol">)</a>
<a id="Semiring.semiringWithoutOne"></a><a id="17138" href="Algebra.Bundles.html#17138" class="Function">semiringWithoutOne</a> <a id="17157" class="Symbol">:</a> <a id="17159" href="Algebra.Bundles.html#11924" class="Record">SemiringWithoutOne</a> <a id="17178" class="Symbol">_</a> <a id="17180" class="Symbol">_</a>
<a id="17184" href="Algebra.Bundles.html#17138" class="Function">semiringWithoutOne</a> <a id="17203" class="Symbol">=</a>
<a id="17209" class="Keyword">record</a> <a id="17216" class="Symbol">{</a> <a id="17218" href="Algebra.Bundles.html#12217" class="Field">isSemiringWithoutOne</a> <a id="17239" class="Symbol">=</a> <a id="17241" href="Algebra.Structures.html#11632" class="Function">isSemiringWithoutOne</a> <a id="17262" class="Symbol">}</a>
<a id="17267" class="Keyword">open</a> <a id="17272" href="Algebra.Bundles.html#11924" class="Module">SemiringWithoutOne</a> <a id="17291" href="Algebra.Bundles.html#17138" class="Function">semiringWithoutOne</a> <a id="17310" class="Keyword">public</a>
<a id="17321" class="Keyword">using</a> <a id="17327" class="Symbol">(</a><a id="17328" href="Algebra.Bundles.html#12336" class="Function">nearSemiring</a><a id="17340" class="Symbol">)</a>
<a id="17344" class="Keyword">record</a> <a id="CommutativeSemiring"></a><a id="17351" href="Algebra.Bundles.html#17351" class="Record">CommutativeSemiring</a> <a id="17371" href="Algebra.Bundles.html#17371" class="Bound">c</a> <a id="17373" href="Algebra.Bundles.html#17373" class="Bound"></a> <a id="17375" class="Symbol">:</a> <a id="17377" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="17381" class="Symbol">(</a><a id="17382" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="17386" class="Symbol">(</a><a id="17387" href="Algebra.Bundles.html#17371" class="Bound">c</a> <a id="17389" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="17391" href="Algebra.Bundles.html#17373" class="Bound"></a><a id="17392" class="Symbol">))</a> <a id="17395" class="Keyword">where</a>
<a id="17403" class="Keyword">infixl</a> <a id="17410" class="Number">7</a> <a id="17412" href="Algebra.Bundles.html#17574" class="Field Operator">_*_</a>
<a id="17418" class="Keyword">infixl</a> <a id="17425" class="Number">6</a> <a id="17427" href="Algebra.Bundles.html#17534" class="Field Operator">_+_</a>
<a id="17433" class="Keyword">infix</a> <a id="17440" class="Number">4</a> <a id="17442" href="Algebra.Bundles.html#17492" class="Field Operator">_≈_</a>
<a id="17448" class="Keyword">field</a>
<a id="CommutativeSemiring.Carrier"></a><a id="17458" href="Algebra.Bundles.html#17458" class="Field">Carrier</a> <a id="17480" class="Symbol">:</a> <a id="17482" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="17486" href="Algebra.Bundles.html#17371" class="Bound">c</a>
<a id="CommutativeSemiring._≈_"></a><a id="17492" href="Algebra.Bundles.html#17492" class="Field Operator">_≈_</a> <a id="17514" class="Symbol">:</a> <a id="17516" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="17520" href="Algebra.Bundles.html#17458" class="Field">Carrier</a> <a id="17528" href="Algebra.Bundles.html#17373" class="Bound"></a>
<a id="CommutativeSemiring._+_"></a><a id="17534" href="Algebra.Bundles.html#17534" class="Field Operator">_+_</a> <a id="17556" class="Symbol">:</a> <a id="17558" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="17562" href="Algebra.Bundles.html#17458" class="Field">Carrier</a>
<a id="CommutativeSemiring._*_"></a><a id="17574" href="Algebra.Bundles.html#17574" class="Field Operator">_*_</a> <a id="17596" class="Symbol">:</a> <a id="17598" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="17602" href="Algebra.Bundles.html#17458" class="Field">Carrier</a>
<a id="CommutativeSemiring.0#"></a><a id="17614" href="Algebra.Bundles.html#17614" class="Field">0#</a> <a id="17636" class="Symbol">:</a> <a id="17638" href="Algebra.Bundles.html#17458" class="Field">Carrier</a>
<a id="CommutativeSemiring.1#"></a><a id="17650" href="Algebra.Bundles.html#17650" class="Field">1#</a> <a id="17672" class="Symbol">:</a> <a id="17674" href="Algebra.Bundles.html#17458" class="Field">Carrier</a>
<a id="CommutativeSemiring.isCommutativeSemiring"></a><a id="17686" href="Algebra.Bundles.html#17686" class="Field">isCommutativeSemiring</a> <a id="17708" class="Symbol">:</a> <a id="17710" href="Algebra.Structures.html#12017" class="Record">IsCommutativeSemiring</a> <a id="17732" href="Algebra.Bundles.html#17492" class="Field Operator">_≈_</a> <a id="17736" href="Algebra.Bundles.html#17534" class="Field Operator">_+_</a> <a id="17740" href="Algebra.Bundles.html#17574" class="Field Operator">_*_</a> <a id="17744" href="Algebra.Bundles.html#17614" class="Field">0#</a> <a id="17747" href="Algebra.Bundles.html#17650" class="Field">1#</a>
<a id="17753" class="Keyword">open</a> <a id="17758" href="Algebra.Structures.html#12017" class="Module">IsCommutativeSemiring</a> <a id="17780" href="Algebra.Bundles.html#17686" class="Field">isCommutativeSemiring</a> <a id="17802" class="Keyword">public</a>
<a id="CommutativeSemiring.semiring"></a><a id="17812" href="Algebra.Bundles.html#17812" class="Function">semiring</a> <a id="17821" class="Symbol">:</a> <a id="17823" href="Algebra.Bundles.html#16244" class="Record">Semiring</a> <a id="17832" class="Symbol">_</a> <a id="17834" class="Symbol">_</a>
<a id="17838" href="Algebra.Bundles.html#17812" class="Function">semiring</a> <a id="17847" class="Symbol">=</a> <a id="17849" class="Keyword">record</a> <a id="17856" class="Symbol">{</a> <a id="17858" href="Algebra.Bundles.html#16502" class="Field">isSemiring</a> <a id="17869" class="Symbol">=</a> <a id="17871" href="Algebra.Structures.html#12097" class="Function">isSemiring</a> <a id="17882" class="Symbol">}</a>
<a id="17887" class="Keyword">open</a> <a id="17892" href="Algebra.Bundles.html#16244" class="Module">Semiring</a> <a id="17901" href="Algebra.Bundles.html#17812" class="Function">semiring</a> <a id="17910" class="Keyword">public</a>
<a id="17921" class="Keyword">using</a>
<a id="17931" class="Symbol">(</a> <a id="17933" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a><a id="17936" class="Symbol">;</a> <a id="17938" href="Algebra.Bundles.html#15706" class="Function">+-rawMagma</a><a id="17948" class="Symbol">;</a> <a id="17950" href="Algebra.Bundles.html#15747" class="Function">+-magma</a><a id="17957" class="Symbol">;</a> <a id="17959" href="Algebra.Bundles.html#15785" class="Function">+-commutativeMagma</a><a id="17977" class="Symbol">;</a> <a id="17979" href="Algebra.Bundles.html#15834" class="Function">+-semigroup</a><a id="17990" class="Symbol">;</a> <a id="17992" href="Algebra.Bundles.html#15876" class="Function">+-commutativeSemigroup</a>
<a id="18019" class="Symbol">;</a> <a id="18021" href="Algebra.Bundles.html#16129" class="Function">*-rawMagma</a><a id="18031" class="Symbol">;</a> <a id="18033" href="Algebra.Bundles.html#16159" class="Function">*-magma</a><a id="18040" class="Symbol">;</a> <a id="18042" href="Algebra.Bundles.html#16186" class="Function">*-semigroup</a>
<a id="18058" class="Symbol">;</a> <a id="18060" href="Algebra.Bundles.html#15929" class="Function">+-rawMonoid</a><a id="18071" class="Symbol">;</a> <a id="18073" href="Algebra.Bundles.html#15971" class="Function">+-monoid</a><a id="18081" class="Symbol">;</a> <a id="18083" href="Algebra.Bundles.html#15471" class="Function">+-commutativeMonoid</a>
<a id="18107" class="Symbol">;</a> <a id="18109" href="Algebra.Bundles.html#16217" class="Function">*-rawMonoid</a><a id="18120" class="Symbol">;</a> <a id="18122" href="Algebra.Bundles.html#15989" class="Function">*-monoid</a>
<a id="18135" class="Symbol">;</a> <a id="18137" href="Algebra.Bundles.html#12336" class="Function">nearSemiring</a><a id="18149" class="Symbol">;</a> <a id="18151" href="Algebra.Bundles.html#17138" class="Function">semiringWithoutOne</a>
<a id="18174" class="Symbol">;</a> <a id="18176" href="Algebra.Bundles.html#16584" class="Function">semiringWithoutAnnihilatingZero</a>
<a id="18212" class="Symbol">;</a> <a id="18214" href="Algebra.Bundles.html#15264" class="Function">rawSemiring</a>
<a id="18230" class="Symbol">)</a>
<a id="CommutativeSemiring.*-commutativeMonoid"></a><a id="18235" href="Algebra.Bundles.html#18235" class="Function">*-commutativeMonoid</a> <a id="18255" class="Symbol">:</a> <a id="18257" href="Algebra.Bundles.html#4901" class="Record">CommutativeMonoid</a> <a id="18275" class="Symbol">_</a> <a id="18277" class="Symbol">_</a>
<a id="18281" href="Algebra.Bundles.html#18235" class="Function">*-commutativeMonoid</a> <a id="18301" class="Symbol">=</a> <a id="18303" class="Keyword">record</a>
<a id="18314" class="Symbol">{</a> <a id="18316" href="Algebra.Bundles.html#5135" class="Field">isCommutativeMonoid</a> <a id="18336" class="Symbol">=</a> <a id="18338" href="Algebra.Structures.html#12556" class="Function">*-isCommutativeMonoid</a>
<a id="18364" class="Symbol">}</a>
<a id="18369" class="Keyword">open</a> <a id="18374" href="Algebra.Bundles.html#4901" class="Module">CommutativeMonoid</a> <a id="18392" href="Algebra.Bundles.html#18235" class="Function">*-commutativeMonoid</a> <a id="18412" class="Keyword">public</a>
<a id="18423" class="Keyword">using</a> <a id="18429" class="Symbol">()</a> <a id="18432" class="Keyword">renaming</a>
<a id="18445" class="Symbol">(</a> <a id="18447" href="Algebra.Bundles.html#3352" class="Function">commutativeMagma</a> <a id="18468" class="Symbol">to</a> <a id="18471" class="Function">*-commutativeMagma</a>
<a id="18494" class="Symbol">;</a> <a id="18496" href="Algebra.Bundles.html#5394" class="Function">commutativeSemigroup</a> <a id="18517" class="Symbol">to</a> <a id="18520" class="Function">*-commutativeSemigroup</a>
<a id="18547" class="Symbol">)</a>
<a id="CommutativeSemiring.commutativeSemiringWithoutOne"></a><a id="18552" href="Algebra.Bundles.html#18552" class="Function">commutativeSemiringWithoutOne</a> <a id="18582" class="Symbol">:</a> <a id="18584" href="Algebra.Bundles.html#12936" class="Record">CommutativeSemiringWithoutOne</a> <a id="18614" class="Symbol">_</a> <a id="18616" class="Symbol">_</a>
<a id="18620" href="Algebra.Bundles.html#18552" class="Function">commutativeSemiringWithoutOne</a> <a id="18650" class="Symbol">=</a> <a id="18652" class="Keyword">record</a>
<a id="18663" class="Symbol">{</a> <a id="18665" href="Algebra.Bundles.html#13295" class="Field">isCommutativeSemiringWithoutOne</a> <a id="18697" class="Symbol">=</a> <a id="18699" href="Algebra.Structures.html#12202" class="Function">isCommutativeSemiringWithoutOne</a>
<a id="18735" class="Symbol">}</a>
<a id="18739" class="Keyword">record</a> <a id="CancellativeCommutativeSemiring"></a><a id="18746" href="Algebra.Bundles.html#18746" class="Record">CancellativeCommutativeSemiring</a> <a id="18778" href="Algebra.Bundles.html#18778" class="Bound">c</a> <a id="18780" href="Algebra.Bundles.html#18780" class="Bound"></a> <a id="18782" class="Symbol">:</a> <a id="18784" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="18788" class="Symbol">(</a><a id="18789" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="18793" class="Symbol">(</a><a id="18794" href="Algebra.Bundles.html#18778" class="Bound">c</a> <a id="18796" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="18798" href="Algebra.Bundles.html#18780" class="Bound"></a><a id="18799" class="Symbol">))</a> <a id="18802" class="Keyword">where</a>
<a id="18810" class="Keyword">infixl</a> <a id="18817" class="Number">7</a> <a id="18819" href="Algebra.Bundles.html#19017" class="Field Operator">_*_</a>
<a id="18825" class="Keyword">infixl</a> <a id="18832" class="Number">6</a> <a id="18834" href="Algebra.Bundles.html#18965" class="Field Operator">_+_</a>
<a id="18840" class="Keyword">infix</a> <a id="18847" class="Number">4</a> <a id="18849" href="Algebra.Bundles.html#18911" class="Field Operator">_≈_</a>
<a id="18855" class="Keyword">field</a>
<a id="CancellativeCommutativeSemiring.Carrier"></a><a id="18865" href="Algebra.Bundles.html#18865" class="Field">Carrier</a> <a id="18899" class="Symbol">:</a> <a id="18901" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="18905" href="Algebra.Bundles.html#18778" class="Bound">c</a>
<a id="CancellativeCommutativeSemiring._≈_"></a><a id="18911" href="Algebra.Bundles.html#18911" class="Field Operator">_≈_</a> <a id="18945" class="Symbol">:</a> <a id="18947" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="18951" href="Algebra.Bundles.html#18865" class="Field">Carrier</a> <a id="18959" href="Algebra.Bundles.html#18780" class="Bound"></a>
<a id="CancellativeCommutativeSemiring._+_"></a><a id="18965" href="Algebra.Bundles.html#18965" class="Field Operator">_+_</a> <a id="18999" class="Symbol">:</a> <a id="19001" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="19005" href="Algebra.Bundles.html#18865" class="Field">Carrier</a>
<a id="CancellativeCommutativeSemiring._*_"></a><a id="19017" href="Algebra.Bundles.html#19017" class="Field Operator">_*_</a> <a id="19051" class="Symbol">:</a> <a id="19053" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="19057" href="Algebra.Bundles.html#18865" class="Field">Carrier</a>
<a id="CancellativeCommutativeSemiring.0#"></a><a id="19069" href="Algebra.Bundles.html#19069" class="Field">0#</a> <a id="19103" class="Symbol">:</a> <a id="19105" href="Algebra.Bundles.html#18865" class="Field">Carrier</a>
<a id="CancellativeCommutativeSemiring.1#"></a><a id="19117" href="Algebra.Bundles.html#19117" class="Field">1#</a> <a id="19151" class="Symbol">:</a> <a id="19153" href="Algebra.Bundles.html#18865" class="Field">Carrier</a>
<a id="CancellativeCommutativeSemiring.isCancellativeCommutativeSemiring"></a><a id="19165" href="Algebra.Bundles.html#19165" class="Field">isCancellativeCommutativeSemiring</a> <a id="19199" class="Symbol">:</a> <a id="19201" href="Algebra.Structures.html#12705" class="Record">IsCancellativeCommutativeSemiring</a> <a id="19235" href="Algebra.Bundles.html#18911" class="Field Operator">_≈_</a> <a id="19239" href="Algebra.Bundles.html#18965" class="Field Operator">_+_</a> <a id="19243" href="Algebra.Bundles.html#19017" class="Field Operator">_*_</a> <a id="19247" href="Algebra.Bundles.html#19069" class="Field">0#</a> <a id="19250" href="Algebra.Bundles.html#19117" class="Field">1#</a>
<a id="19256" class="Keyword">open</a> <a id="19261" href="Algebra.Structures.html#12705" class="Module">IsCancellativeCommutativeSemiring</a> <a id="19295" href="Algebra.Bundles.html#19165" class="Field">isCancellativeCommutativeSemiring</a> <a id="19329" class="Keyword">public</a>
<a id="CancellativeCommutativeSemiring.commutativeSemiring"></a><a id="19339" href="Algebra.Bundles.html#19339" class="Function">commutativeSemiring</a> <a id="19359" class="Symbol">:</a> <a id="19361" href="Algebra.Bundles.html#17351" class="Record">CommutativeSemiring</a> <a id="19381" href="Algebra.Bundles.html#18778" class="Bound">c</a> <a id="19383" href="Algebra.Bundles.html#18780" class="Bound"></a>
<a id="19387" href="Algebra.Bundles.html#19339" class="Function">commutativeSemiring</a> <a id="19407" class="Symbol">=</a> <a id="19409" class="Keyword">record</a>
<a id="19420" class="Symbol">{</a> <a id="19422" href="Algebra.Bundles.html#17686" class="Field">isCommutativeSemiring</a> <a id="19444" class="Symbol">=</a> <a id="19446" href="Algebra.Structures.html#12797" class="Function">isCommutativeSemiring</a>
<a id="19472" class="Symbol">}</a>
<a id="19477" class="Keyword">open</a> <a id="19482" href="Algebra.Bundles.html#17351" class="Module">CommutativeSemiring</a> <a id="19502" href="Algebra.Bundles.html#19339" class="Function">commutativeSemiring</a> <a id="19522" class="Keyword">public</a>
<a id="19533" class="Keyword">using</a>
<a id="19543" class="Symbol">(</a> <a id="19545" href="Algebra.Bundles.html#15706" class="Function">+-rawMagma</a><a id="19555" class="Symbol">;</a> <a id="19557" href="Algebra.Bundles.html#15747" class="Function">+-magma</a><a id="19564" class="Symbol">;</a> <a id="19566" href="Algebra.Bundles.html#15785" class="Function">+-commutativeMagma</a><a id="19584" class="Symbol">;</a> <a id="19586" href="Algebra.Bundles.html#15834" class="Function">+-semigroup</a><a id="19597" class="Symbol">;</a> <a id="19599" href="Algebra.Bundles.html#15876" class="Function">+-commutativeSemigroup</a>
<a id="19626" class="Symbol">;</a> <a id="19628" href="Algebra.Bundles.html#16129" class="Function">*-rawMagma</a><a id="19638" class="Symbol">;</a> <a id="19640" href="Algebra.Bundles.html#16159" class="Function">*-magma</a><a id="19647" class="Symbol">;</a> <a id="19649" href="Algebra.Bundles.html#18471" class="Function">*-commutativeMagma</a><a id="19667" class="Symbol">;</a> <a id="19669" href="Algebra.Bundles.html#16186" class="Function">*-semigroup</a><a id="19680" class="Symbol">;</a> <a id="19682" href="Algebra.Bundles.html#18520" class="Function">*-commutativeSemigroup</a>
<a id="19709" class="Symbol">;</a> <a id="19711" href="Algebra.Bundles.html#15929" class="Function">+-rawMonoid</a><a id="19722" class="Symbol">;</a> <a id="19724" href="Algebra.Bundles.html#15971" class="Function">+-monoid</a><a id="19732" class="Symbol">;</a> <a id="19734" href="Algebra.Bundles.html#15471" class="Function">+-commutativeMonoid</a>
<a id="19758" class="Symbol">;</a> <a id="19760" href="Algebra.Bundles.html#16217" class="Function">*-rawMonoid</a><a id="19771" class="Symbol">;</a> <a id="19773" href="Algebra.Bundles.html#15989" class="Function">*-monoid</a><a id="19781" class="Symbol">;</a> <a id="19783" href="Algebra.Bundles.html#18235" class="Function">*-commutativeMonoid</a>
<a id="19807" class="Symbol">;</a> <a id="19809" href="Algebra.Bundles.html#12336" class="Function">nearSemiring</a><a id="19821" class="Symbol">;</a> <a id="19823" href="Algebra.Bundles.html#17138" class="Function">semiringWithoutOne</a>
<a id="19846" class="Symbol">;</a> <a id="19848" href="Algebra.Bundles.html#16584" class="Function">semiringWithoutAnnihilatingZero</a>
<a id="19884" class="Symbol">;</a> <a id="19886" href="Algebra.Bundles.html#15264" class="Function">rawSemiring</a>
<a id="19902" class="Symbol">;</a> <a id="19904" href="Algebra.Bundles.html#17812" class="Function">semiring</a>
<a id="19917" class="Symbol">;</a> <a id="19919" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a>
<a id="19927" class="Symbol">)</a>
<a id="19931" class="Comment">------------------------------------------------------------------------</a>
<a id="20004" class="Comment">-- Bundles with 2 binary operations, 1 unary operation &amp; 2 elements</a>
<a id="20072" class="Comment">------------------------------------------------------------------------</a>
<a id="20146" class="Comment">-- A raw ring is a ring without any laws.</a>
<a id="20189" class="Keyword">record</a> <a id="RawRing"></a><a id="20196" href="Algebra.Bundles.html#20196" class="Record">RawRing</a> <a id="20204" href="Algebra.Bundles.html#20204" class="Bound">c</a> <a id="20206" href="Algebra.Bundles.html#20206" class="Bound"></a> <a id="20208" class="Symbol">:</a> <a id="20210" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="20214" class="Symbol">(</a><a id="20215" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="20219" class="Symbol">(</a><a id="20220" href="Algebra.Bundles.html#20204" class="Bound">c</a> <a id="20222" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="20224" href="Algebra.Bundles.html#20206" class="Bound"></a><a id="20225" class="Symbol">))</a> <a id="20228" class="Keyword">where</a>
<a id="20236" class="Keyword">infix</a> <a id="20243" class="Number">8</a> <a id="20245" href="Algebra.Bundles.html#20405" class="Field Operator">-_</a>
<a id="20250" class="Keyword">infixl</a> <a id="20257" class="Number">7</a> <a id="20259" href="Algebra.Bundles.html#20379" class="Field Operator">_*_</a>
<a id="20265" class="Keyword">infixl</a> <a id="20272" class="Number">6</a> <a id="20274" href="Algebra.Bundles.html#20353" class="Field Operator">_+_</a>
<a id="20280" class="Keyword">infix</a> <a id="20287" class="Number">4</a> <a id="20289" href="Algebra.Bundles.html#20325" class="Field Operator">_≈_</a>
<a id="20295" class="Keyword">field</a>
<a id="RawRing.Carrier"></a><a id="20305" href="Algebra.Bundles.html#20305" class="Field">Carrier</a> <a id="20313" class="Symbol">:</a> <a id="20315" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="20319" href="Algebra.Bundles.html#20204" class="Bound">c</a>
<a id="RawRing._≈_"></a><a id="20325" href="Algebra.Bundles.html#20325" class="Field Operator">_≈_</a> <a id="20333" class="Symbol">:</a> <a id="20335" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="20339" href="Algebra.Bundles.html#20305" class="Field">Carrier</a> <a id="20347" href="Algebra.Bundles.html#20206" class="Bound"></a>
<a id="RawRing._+_"></a><a id="20353" href="Algebra.Bundles.html#20353" class="Field Operator">_+_</a> <a id="20361" class="Symbol">:</a> <a id="20363" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="20367" href="Algebra.Bundles.html#20305" class="Field">Carrier</a>
<a id="RawRing._*_"></a><a id="20379" href="Algebra.Bundles.html#20379" class="Field Operator">_*_</a> <a id="20387" class="Symbol">:</a> <a id="20389" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="20393" href="Algebra.Bundles.html#20305" class="Field">Carrier</a>
<a id="RawRing.-_"></a><a id="20405" href="Algebra.Bundles.html#20405" class="Field Operator">-_</a> <a id="20413" class="Symbol">:</a> <a id="20415" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="20419" href="Algebra.Bundles.html#20305" class="Field">Carrier</a>
<a id="RawRing.0#"></a><a id="20431" href="Algebra.Bundles.html#20431" class="Field">0#</a> <a id="20439" class="Symbol">:</a> <a id="20441" href="Algebra.Bundles.html#20305" class="Field">Carrier</a>
<a id="RawRing.1#"></a><a id="20453" href="Algebra.Bundles.html#20453" class="Field">1#</a> <a id="20461" class="Symbol">:</a> <a id="20463" href="Algebra.Bundles.html#20305" class="Field">Carrier</a>
<a id="RawRing.rawSemiring"></a><a id="20474" href="Algebra.Bundles.html#20474" class="Function">rawSemiring</a> <a id="20486" class="Symbol">:</a> <a id="20488" href="Algebra.Bundles.html#14064" class="Record">RawSemiring</a> <a id="20500" href="Algebra.Bundles.html#20204" class="Bound">c</a> <a id="20502" href="Algebra.Bundles.html#20206" class="Bound"></a>
<a id="20506" href="Algebra.Bundles.html#20474" class="Function">rawSemiring</a> <a id="20518" class="Symbol">=</a> <a id="20520" class="Keyword">record</a>
<a id="20531" class="Symbol">{</a> <a id="20533" href="Algebra.Bundles.html#14183" class="Field Operator">_≈_</a> <a id="20537" class="Symbol">=</a> <a id="20539" href="Algebra.Bundles.html#20325" class="Field Operator">_≈_</a>
<a id="20547" class="Symbol">;</a> <a id="20549" href="Algebra.Bundles.html#14211" class="Field Operator">_+_</a> <a id="20553" class="Symbol">=</a> <a id="20555" href="Algebra.Bundles.html#20353" class="Field Operator">_+_</a>
<a id="20563" class="Symbol">;</a> <a id="20565" href="Algebra.Bundles.html#14237" class="Field Operator">_*_</a> <a id="20569" class="Symbol">=</a> <a id="20571" href="Algebra.Bundles.html#20379" class="Field Operator">_*_</a>
<a id="20579" class="Symbol">;</a> <a id="20581" href="Algebra.Bundles.html#14263" class="Field">0#</a> <a id="20585" class="Symbol">=</a> <a id="20587" href="Algebra.Bundles.html#20431" class="Field">0#</a>
<a id="20594" class="Symbol">;</a> <a id="20596" href="Algebra.Bundles.html#14285" class="Field">1#</a> <a id="20600" class="Symbol">=</a> <a id="20602" href="Algebra.Bundles.html#20453" class="Field">1#</a>
<a id="20609" class="Symbol">}</a>
<a id="20614" class="Keyword">open</a> <a id="20619" href="Algebra.Bundles.html#14064" class="Module">RawSemiring</a> <a id="20631" href="Algebra.Bundles.html#20474" class="Function">rawSemiring</a> <a id="20643" class="Keyword">public</a>
<a id="20654" class="Keyword">using</a>
<a id="20664" class="Symbol">(</a> <a id="20666" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a>
<a id="20674" class="Symbol">;</a> <a id="20676" href="Algebra.Bundles.html#10861" class="Function">+-rawMagma</a><a id="20686" class="Symbol">;</a> <a id="20688" href="Algebra.Bundles.html#10682" class="Function">+-rawMonoid</a>
<a id="20704" class="Symbol">;</a> <a id="20706" href="Algebra.Bundles.html#10876" class="Function">*-rawMagma</a><a id="20716" class="Symbol">;</a> <a id="20718" href="Algebra.Bundles.html#14543" class="Function">*-rawMonoid</a>
<a id="20734" class="Symbol">)</a>
<a id="RawRing.+-rawGroup"></a><a id="20739" href="Algebra.Bundles.html#20739" class="Function">+-rawGroup</a> <a id="20750" class="Symbol">:</a> <a id="20752" href="Algebra.Bundles.html#6923" class="Record">RawGroup</a> <a id="20761" href="Algebra.Bundles.html#20204" class="Bound">c</a> <a id="20763" href="Algebra.Bundles.html#20206" class="Bound"></a>
<a id="20767" href="Algebra.Bundles.html#20739" class="Function">+-rawGroup</a> <a id="20778" class="Symbol">=</a> <a id="20780" class="Keyword">record</a>
<a id="20791" class="Symbol">{</a> <a id="20793" href="Algebra.Bundles.html#7039" class="Field Operator">_≈_</a> <a id="20797" class="Symbol">=</a> <a id="20799" href="Algebra.Bundles.html#20325" class="Field Operator">_≈_</a>
<a id="20807" class="Symbol">;</a> <a id="20809" href="Algebra.Bundles.html#7067" class="Field Operator">_∙_</a> <a id="20813" class="Symbol">=</a> <a id="20815" href="Algebra.Bundles.html#20353" class="Field Operator">_+_</a>
<a id="20823" class="Symbol">;</a> <a id="20825" href="Algebra.Bundles.html#7093" class="Field">ε</a> <a id="20829" class="Symbol">=</a> <a id="20831" href="Algebra.Bundles.html#20431" class="Field">0#</a>
<a id="20838" class="Symbol">;</a> <a id="20840" href="Algebra.Bundles.html#7115" class="Field Operator">_⁻¹</a> <a id="20844" class="Symbol">=</a> <a id="20846" href="Algebra.Bundles.html#20405" class="Field Operator">-_</a>
<a id="20853" class="Symbol">}</a>
<a id="20856" class="Keyword">record</a> <a id="Ring"></a><a id="20863" href="Algebra.Bundles.html#20863" class="Record">Ring</a> <a id="20868" href="Algebra.Bundles.html#20868" class="Bound">c</a> <a id="20870" href="Algebra.Bundles.html#20870" class="Bound"></a> <a id="20872" class="Symbol">:</a> <a id="20874" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="20878" class="Symbol">(</a><a id="20879" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="20883" class="Symbol">(</a><a id="20884" href="Algebra.Bundles.html#20868" class="Bound">c</a> <a id="20886" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="20888" href="Algebra.Bundles.html#20870" class="Bound"></a><a id="20889" class="Symbol">))</a> <a id="20892" class="Keyword">where</a>
<a id="20900" class="Keyword">infix</a> <a id="20907" class="Number">8</a> <a id="20909" href="Algebra.Bundles.html#21069" class="Field Operator">-_</a>
<a id="20914" class="Keyword">infixl</a> <a id="20921" class="Number">7</a> <a id="20923" href="Algebra.Bundles.html#21043" class="Field Operator">_*_</a>
<a id="20929" class="Keyword">infixl</a> <a id="20936" class="Number">6</a> <a id="20938" href="Algebra.Bundles.html#21017" class="Field Operator">_+_</a>
<a id="20944" class="Keyword">infix</a> <a id="20951" class="Number">4</a> <a id="20953" href="Algebra.Bundles.html#20989" class="Field Operator">_≈_</a>
<a id="20959" class="Keyword">field</a>
<a id="Ring.Carrier"></a><a id="20969" href="Algebra.Bundles.html#20969" class="Field">Carrier</a> <a id="20977" class="Symbol">:</a> <a id="20979" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="20983" href="Algebra.Bundles.html#20868" class="Bound">c</a>
<a id="Ring._≈_"></a><a id="20989" href="Algebra.Bundles.html#20989" class="Field Operator">_≈_</a> <a id="20997" class="Symbol">:</a> <a id="20999" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="21003" href="Algebra.Bundles.html#20969" class="Field">Carrier</a> <a id="21011" href="Algebra.Bundles.html#20870" class="Bound"></a>
<a id="Ring._+_"></a><a id="21017" href="Algebra.Bundles.html#21017" class="Field Operator">_+_</a> <a id="21025" class="Symbol">:</a> <a id="21027" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="21031" href="Algebra.Bundles.html#20969" class="Field">Carrier</a>
<a id="Ring._*_"></a><a id="21043" href="Algebra.Bundles.html#21043" class="Field Operator">_*_</a> <a id="21051" class="Symbol">:</a> <a id="21053" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="21057" href="Algebra.Bundles.html#20969" class="Field">Carrier</a>
<a id="Ring.-_"></a><a id="21069" href="Algebra.Bundles.html#21069" class="Field Operator">-_</a> <a id="21077" class="Symbol">:</a> <a id="21079" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="21083" href="Algebra.Bundles.html#20969" class="Field">Carrier</a>
<a id="Ring.0#"></a><a id="21095" href="Algebra.Bundles.html#21095" class="Field">0#</a> <a id="21103" class="Symbol">:</a> <a id="21105" href="Algebra.Bundles.html#20969" class="Field">Carrier</a>
<a id="Ring.1#"></a><a id="21117" href="Algebra.Bundles.html#21117" class="Field">1#</a> <a id="21125" class="Symbol">:</a> <a id="21127" href="Algebra.Bundles.html#20969" class="Field">Carrier</a>
<a id="Ring.isRing"></a><a id="21139" href="Algebra.Bundles.html#21139" class="Field">isRing</a> <a id="21147" class="Symbol">:</a> <a id="21149" href="Algebra.Structures.html#13196" class="Record">IsRing</a> <a id="21156" href="Algebra.Bundles.html#20989" class="Field Operator">_≈_</a> <a id="21160" href="Algebra.Bundles.html#21017" class="Field Operator">_+_</a> <a id="21164" href="Algebra.Bundles.html#21043" class="Field Operator">_*_</a> <a id="21168" href="Algebra.Bundles.html#21069" class="Field Operator">-_</a> <a id="21171" href="Algebra.Bundles.html#21095" class="Field">0#</a> <a id="21174" href="Algebra.Bundles.html#21117" class="Field">1#</a>
<a id="21180" class="Keyword">open</a> <a id="21185" href="Algebra.Structures.html#13196" class="Module">IsRing</a> <a id="21192" href="Algebra.Bundles.html#21139" class="Field">isRing</a> <a id="21199" class="Keyword">public</a>
<a id="Ring.+-abelianGroup"></a><a id="21209" href="Algebra.Bundles.html#21209" class="Function">+-abelianGroup</a> <a id="21224" class="Symbol">:</a> <a id="21226" href="Algebra.Bundles.html#7833" class="Record">AbelianGroup</a> <a id="21239" class="Symbol">_</a> <a id="21241" class="Symbol">_</a>
<a id="21245" href="Algebra.Bundles.html#21209" class="Function">+-abelianGroup</a> <a id="21260" class="Symbol">=</a> <a id="21262" class="Keyword">record</a> <a id="21269" class="Symbol">{</a> <a id="21271" href="Algebra.Bundles.html#8090" class="Field">isAbelianGroup</a> <a id="21286" class="Symbol">=</a> <a id="21288" href="Algebra.Structures.html#13274" class="Function">+-isAbelianGroup</a> <a id="21305" class="Symbol">}</a>
<a id="Ring.semiring"></a><a id="21310" href="Algebra.Bundles.html#21310" class="Function">semiring</a> <a id="21319" class="Symbol">:</a> <a id="21321" href="Algebra.Bundles.html#16244" class="Record">Semiring</a> <a id="21330" class="Symbol">_</a> <a id="21332" class="Symbol">_</a>
<a id="21336" href="Algebra.Bundles.html#21310" class="Function">semiring</a> <a id="21345" class="Symbol">=</a> <a id="21347" class="Keyword">record</a> <a id="21354" class="Symbol">{</a> <a id="21356" href="Algebra.Bundles.html#16502" class="Field">isSemiring</a> <a id="21367" class="Symbol">=</a> <a id="21369" href="Algebra.Structures.html#15039" class="Function">isSemiring</a> <a id="21380" class="Symbol">}</a>
<a id="21385" class="Keyword">open</a> <a id="21390" href="Algebra.Bundles.html#16244" class="Module">Semiring</a> <a id="21399" href="Algebra.Bundles.html#21310" class="Function">semiring</a> <a id="21408" class="Keyword">public</a>
<a id="21419" class="Keyword">using</a>
<a id="21429" class="Symbol">(</a> <a id="21431" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a><a id="21434" class="Symbol">;</a> <a id="21436" href="Algebra.Bundles.html#15706" class="Function">+-rawMagma</a><a id="21446" class="Symbol">;</a> <a id="21448" href="Algebra.Bundles.html#15747" class="Function">+-magma</a><a id="21455" class="Symbol">;</a> <a id="21457" href="Algebra.Bundles.html#15785" class="Function">+-commutativeMagma</a><a id="21475" class="Symbol">;</a> <a id="21477" href="Algebra.Bundles.html#15834" class="Function">+-semigroup</a><a id="21488" class="Symbol">;</a> <a id="21490" href="Algebra.Bundles.html#15876" class="Function">+-commutativeSemigroup</a>
<a id="21517" class="Symbol">;</a> <a id="21519" href="Algebra.Bundles.html#16129" class="Function">*-rawMagma</a><a id="21529" class="Symbol">;</a> <a id="21531" href="Algebra.Bundles.html#16159" class="Function">*-magma</a><a id="21538" class="Symbol">;</a> <a id="21540" href="Algebra.Bundles.html#16186" class="Function">*-semigroup</a>
<a id="21556" class="Symbol">;</a> <a id="21558" href="Algebra.Bundles.html#15929" class="Function">+-rawMonoid</a><a id="21569" class="Symbol">;</a> <a id="21571" href="Algebra.Bundles.html#15971" class="Function">+-monoid</a> <a id="21580" class="Symbol">;</a> <a id="21582" href="Algebra.Bundles.html#15471" class="Function">+-commutativeMonoid</a>
<a id="21606" class="Symbol">;</a> <a id="21608" href="Algebra.Bundles.html#16217" class="Function">*-rawMonoid</a><a id="21619" class="Symbol">;</a> <a id="21621" href="Algebra.Bundles.html#15989" class="Function">*-monoid</a>
<a id="21634" class="Symbol">;</a> <a id="21636" href="Algebra.Bundles.html#12336" class="Function">nearSemiring</a><a id="21648" class="Symbol">;</a> <a id="21650" href="Algebra.Bundles.html#17138" class="Function">semiringWithoutOne</a>
<a id="21673" class="Symbol">;</a> <a id="21675" href="Algebra.Bundles.html#16584" class="Function">semiringWithoutAnnihilatingZero</a>
<a id="21711" class="Symbol">)</a>
<a id="21716" class="Keyword">open</a> <a id="21721" href="Algebra.Bundles.html#7833" class="Module">AbelianGroup</a> <a id="21734" href="Algebra.Bundles.html#21209" class="Function">+-abelianGroup</a> <a id="21749" class="Keyword">public</a>
<a id="21760" class="Keyword">using</a> <a id="21766" class="Symbol">()</a> <a id="21769" class="Keyword">renaming</a> <a id="21778" class="Symbol">(</a><a id="21779" href="Algebra.Bundles.html#8184" class="Function">group</a> <a id="21785" class="Symbol">to</a> <a id="21788" class="Function">+-group</a><a id="21795" class="Symbol">)</a>
<a id="Ring.rawRing"></a><a id="21800" href="Algebra.Bundles.html#21800" class="Function">rawRing</a> <a id="21808" class="Symbol">:</a> <a id="21810" href="Algebra.Bundles.html#20196" class="Record">RawRing</a> <a id="21818" class="Symbol">_</a> <a id="21820" class="Symbol">_</a>
<a id="21824" href="Algebra.Bundles.html#21800" class="Function">rawRing</a> <a id="21832" class="Symbol">=</a> <a id="21834" class="Keyword">record</a>
<a id="21845" class="Symbol">{</a> <a id="21847" href="Algebra.Bundles.html#20325" class="Field Operator">_≈_</a> <a id="21851" class="Symbol">=</a> <a id="21853" href="Algebra.Bundles.html#20989" class="Field Operator">_≈_</a>
<a id="21861" class="Symbol">;</a> <a id="21863" href="Algebra.Bundles.html#20353" class="Field Operator">_+_</a> <a id="21867" class="Symbol">=</a> <a id="21869" href="Algebra.Bundles.html#21017" class="Field Operator">_+_</a>
<a id="21877" class="Symbol">;</a> <a id="21879" href="Algebra.Bundles.html#20379" class="Field Operator">_*_</a> <a id="21883" class="Symbol">=</a> <a id="21885" href="Algebra.Bundles.html#21043" class="Field Operator">_*_</a>
<a id="21893" class="Symbol">;</a> <a id="21895" href="Algebra.Bundles.html#20405" class="Field Operator">-_</a> <a id="21899" class="Symbol">=</a> <a id="21901" href="Algebra.Bundles.html#21069" class="Field Operator">-_</a>
<a id="21908" class="Symbol">;</a> <a id="21910" href="Algebra.Bundles.html#20431" class="Field">0#</a> <a id="21914" class="Symbol">=</a> <a id="21916" href="Algebra.Bundles.html#21095" class="Field">0#</a>
<a id="21923" class="Symbol">;</a> <a id="21925" href="Algebra.Bundles.html#20453" class="Field">1#</a> <a id="21929" class="Symbol">=</a> <a id="21931" href="Algebra.Bundles.html#21117" class="Field">1#</a>
<a id="21938" class="Symbol">}</a>
<a id="21942" class="Keyword">record</a> <a id="CommutativeRing"></a><a id="21949" href="Algebra.Bundles.html#21949" class="Record">CommutativeRing</a> <a id="21965" href="Algebra.Bundles.html#21965" class="Bound">c</a> <a id="21967" href="Algebra.Bundles.html#21967" class="Bound"></a> <a id="21969" class="Symbol">:</a> <a id="21971" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="21975" class="Symbol">(</a><a id="21976" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="21980" class="Symbol">(</a><a id="21981" href="Algebra.Bundles.html#21965" class="Bound">c</a> <a id="21983" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="21985" href="Algebra.Bundles.html#21967" class="Bound"></a><a id="21986" class="Symbol">))</a> <a id="21989" class="Keyword">where</a>
<a id="21997" class="Keyword">infix</a> <a id="22004" class="Number">8</a> <a id="22006" href="Algebra.Bundles.html#22206" class="Field Operator">-_</a>
<a id="22011" class="Keyword">infixl</a> <a id="22018" class="Number">7</a> <a id="22020" href="Algebra.Bundles.html#22170" class="Field Operator">_*_</a>
<a id="22026" class="Keyword">infixl</a> <a id="22033" class="Number">6</a> <a id="22035" href="Algebra.Bundles.html#22134" class="Field Operator">_+_</a>
<a id="22041" class="Keyword">infix</a> <a id="22048" class="Number">4</a> <a id="22050" href="Algebra.Bundles.html#22096" class="Field Operator">_≈_</a>
<a id="22056" class="Keyword">field</a>
<a id="CommutativeRing.Carrier"></a><a id="22066" href="Algebra.Bundles.html#22066" class="Field">Carrier</a> <a id="22084" class="Symbol">:</a> <a id="22086" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="22090" href="Algebra.Bundles.html#21965" class="Bound">c</a>
<a id="CommutativeRing._≈_"></a><a id="22096" href="Algebra.Bundles.html#22096" class="Field Operator">_≈_</a> <a id="22114" class="Symbol">:</a> <a id="22116" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="22120" href="Algebra.Bundles.html#22066" class="Field">Carrier</a> <a id="22128" href="Algebra.Bundles.html#21967" class="Bound"></a>
<a id="CommutativeRing._+_"></a><a id="22134" href="Algebra.Bundles.html#22134" class="Field Operator">_+_</a> <a id="22152" class="Symbol">:</a> <a id="22154" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="22158" href="Algebra.Bundles.html#22066" class="Field">Carrier</a>
<a id="CommutativeRing._*_"></a><a id="22170" href="Algebra.Bundles.html#22170" class="Field Operator">_*_</a> <a id="22188" class="Symbol">:</a> <a id="22190" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="22194" href="Algebra.Bundles.html#22066" class="Field">Carrier</a>
<a id="CommutativeRing.-_"></a><a id="22206" href="Algebra.Bundles.html#22206" class="Field Operator">-_</a> <a id="22224" class="Symbol">:</a> <a id="22226" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="22230" href="Algebra.Bundles.html#22066" class="Field">Carrier</a>
<a id="CommutativeRing.0#"></a><a id="22242" href="Algebra.Bundles.html#22242" class="Field">0#</a> <a id="22260" class="Symbol">:</a> <a id="22262" href="Algebra.Bundles.html#22066" class="Field">Carrier</a>
<a id="CommutativeRing.1#"></a><a id="22274" href="Algebra.Bundles.html#22274" class="Field">1#</a> <a id="22292" class="Symbol">:</a> <a id="22294" href="Algebra.Bundles.html#22066" class="Field">Carrier</a>
<a id="CommutativeRing.isCommutativeRing"></a><a id="22306" href="Algebra.Bundles.html#22306" class="Field">isCommutativeRing</a> <a id="22324" class="Symbol">:</a> <a id="22326" href="Algebra.Structures.html#15318" class="Record">IsCommutativeRing</a> <a id="22344" href="Algebra.Bundles.html#22096" class="Field Operator">_≈_</a> <a id="22348" href="Algebra.Bundles.html#22134" class="Field Operator">_+_</a> <a id="22352" href="Algebra.Bundles.html#22170" class="Field Operator">_*_</a> <a id="22356" href="Algebra.Bundles.html#22206" class="Field Operator">-_</a> <a id="22359" href="Algebra.Bundles.html#22242" class="Field">0#</a> <a id="22362" href="Algebra.Bundles.html#22274" class="Field">1#</a>
<a id="22368" class="Keyword">open</a> <a id="22373" href="Algebra.Structures.html#15318" class="Module">IsCommutativeRing</a> <a id="22391" href="Algebra.Bundles.html#22306" class="Field">isCommutativeRing</a> <a id="22409" class="Keyword">public</a>
<a id="CommutativeRing.ring"></a><a id="22419" href="Algebra.Bundles.html#22419" class="Function">ring</a> <a id="22424" class="Symbol">:</a> <a id="22426" href="Algebra.Bundles.html#20863" class="Record">Ring</a> <a id="22431" class="Symbol">_</a> <a id="22433" class="Symbol">_</a>
<a id="22437" href="Algebra.Bundles.html#22419" class="Function">ring</a> <a id="22442" class="Symbol">=</a> <a id="22444" class="Keyword">record</a> <a id="22451" class="Symbol">{</a> <a id="22453" href="Algebra.Bundles.html#21139" class="Field">isRing</a> <a id="22460" class="Symbol">=</a> <a id="22462" href="Algebra.Structures.html#15415" class="Function">isRing</a> <a id="22469" class="Symbol">}</a>
<a id="22474" class="Keyword">open</a> <a id="22479" href="Algebra.Bundles.html#20863" class="Module">Ring</a> <a id="22484" href="Algebra.Bundles.html#22419" class="Function">ring</a> <a id="22489" class="Keyword">public</a> <a id="22496" class="Keyword">using</a> <a id="22502" class="Symbol">(</a><a id="22503" href="Algebra.Bundles.html#949" class="Function Operator">_≉_</a><a id="22506" class="Symbol">;</a> <a id="22508" href="Algebra.Bundles.html#21800" class="Function">rawRing</a><a id="22515" class="Symbol">;</a> <a id="22517" href="Algebra.Bundles.html#21788" class="Function">+-group</a><a id="22524" class="Symbol">;</a> <a id="22526" href="Algebra.Bundles.html#21209" class="Function">+-abelianGroup</a><a id="22540" class="Symbol">)</a>
<a id="CommutativeRing.commutativeSemiring"></a><a id="22545" href="Algebra.Bundles.html#22545" class="Function">commutativeSemiring</a> <a id="22565" class="Symbol">:</a> <a id="22567" href="Algebra.Bundles.html#17351" class="Record">CommutativeSemiring</a> <a id="22587" class="Symbol">_</a> <a id="22589" class="Symbol">_</a>
<a id="22593" href="Algebra.Bundles.html#22545" class="Function">commutativeSemiring</a> <a id="22613" class="Symbol">=</a>
<a id="22619" class="Keyword">record</a> <a id="22626" class="Symbol">{</a> <a id="22628" href="Algebra.Bundles.html#17686" class="Field">isCommutativeSemiring</a> <a id="22650" class="Symbol">=</a> <a id="22652" href="Algebra.Structures.html#15502" class="Function">isCommutativeSemiring</a> <a id="22674" class="Symbol">}</a>
<a id="22679" class="Keyword">open</a> <a id="22684" href="Algebra.Bundles.html#17351" class="Module">CommutativeSemiring</a> <a id="22704" href="Algebra.Bundles.html#22545" class="Function">commutativeSemiring</a> <a id="22724" class="Keyword">public</a>
<a id="22735" class="Keyword">using</a>
<a id="22745" class="Symbol">(</a> <a id="22747" href="Algebra.Bundles.html#15706" class="Function">+-rawMagma</a><a id="22757" class="Symbol">;</a> <a id="22759" href="Algebra.Bundles.html#15747" class="Function">+-magma</a><a id="22766" class="Symbol">;</a> <a id="22768" href="Algebra.Bundles.html#15785" class="Function">+-commutativeMagma</a><a id="22786" class="Symbol">;</a> <a id="22788" href="Algebra.Bundles.html#15834" class="Function">+-semigroup</a><a id="22799" class="Symbol">;</a> <a id="22801" href="Algebra.Bundles.html#15876" class="Function">+-commutativeSemigroup</a>
<a id="22828" class="Symbol">;</a> <a id="22830" href="Algebra.Bundles.html#16129" class="Function">*-rawMagma</a><a id="22840" class="Symbol">;</a> <a id="22842" href="Algebra.Bundles.html#16159" class="Function">*-magma</a><a id="22849" class="Symbol">;</a> <a id="22851" href="Algebra.Bundles.html#18471" class="Function">*-commutativeMagma</a><a id="22869" class="Symbol">;</a> <a id="22871" href="Algebra.Bundles.html#16186" class="Function">*-semigroup</a><a id="22882" class="Symbol">;</a> <a id="22884" href="Algebra.Bundles.html#18520" class="Function">*-commutativeSemigroup</a>
<a id="22911" class="Symbol">;</a> <a id="22913" href="Algebra.Bundles.html#15929" class="Function">+-rawMonoid</a><a id="22924" class="Symbol">;</a> <a id="22926" href="Algebra.Bundles.html#15971" class="Function">+-monoid</a><a id="22934" class="Symbol">;</a> <a id="22936" href="Algebra.Bundles.html#15471" class="Function">+-commutativeMonoid</a>
<a id="22960" class="Symbol">;</a> <a id="22962" href="Algebra.Bundles.html#16217" class="Function">*-rawMonoid</a><a id="22973" class="Symbol">;</a> <a id="22975" href="Algebra.Bundles.html#15989" class="Function">*-monoid</a><a id="22983" class="Symbol">;</a> <a id="22985" href="Algebra.Bundles.html#18235" class="Function">*-commutativeMonoid</a>
<a id="23009" class="Symbol">;</a> <a id="23011" href="Algebra.Bundles.html#12336" class="Function">nearSemiring</a><a id="23023" class="Symbol">;</a> <a id="23025" href="Algebra.Bundles.html#17138" class="Function">semiringWithoutOne</a>
<a id="23048" class="Symbol">;</a> <a id="23050" href="Algebra.Bundles.html#16584" class="Function">semiringWithoutAnnihilatingZero</a><a id="23081" class="Symbol">;</a> <a id="23083" href="Algebra.Bundles.html#17812" class="Function">semiring</a>
<a id="23096" class="Symbol">;</a> <a id="23098" href="Algebra.Bundles.html#18552" class="Function">commutativeSemiringWithoutOne</a>
<a id="23132" class="Symbol">)</a>
<a id="23136" class="Keyword">record</a> <a id="BooleanAlgebra"></a><a id="23143" href="Algebra.Bundles.html#23143" class="Record">BooleanAlgebra</a> <a id="23158" href="Algebra.Bundles.html#23158" class="Bound">c</a> <a id="23160" href="Algebra.Bundles.html#23160" class="Bound"></a> <a id="23162" class="Symbol">:</a> <a id="23164" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="23168" class="Symbol">(</a><a id="23169" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="23173" class="Symbol">(</a><a id="23174" href="Algebra.Bundles.html#23158" class="Bound">c</a> <a id="23176" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="23178" href="Algebra.Bundles.html#23160" class="Bound"></a><a id="23179" class="Symbol">))</a> <a id="23182" class="Keyword">where</a>
<a id="23190" class="Keyword">infix</a> <a id="23197" class="Number">8</a> <a id="23199" href="Algebra.Bundles.html#23395" class="Field Operator">¬_</a>
<a id="23204" class="Keyword">infixr</a> <a id="23211" class="Number">7</a> <a id="23213" href="Algebra.Bundles.html#23360" class="Field Operator">_∧_</a>
<a id="23219" class="Keyword">infixr</a> <a id="23226" class="Number">6</a> <a id="23228" href="Algebra.Bundles.html#23325" class="Field Operator">__</a>
<a id="23234" class="Keyword">infix</a> <a id="23241" class="Number">4</a> <a id="23243" href="Algebra.Bundles.html#23288" class="Field Operator">_≈_</a>
<a id="23249" class="Keyword">field</a>
<a id="BooleanAlgebra.Carrier"></a><a id="23259" href="Algebra.Bundles.html#23259" class="Field">Carrier</a> <a id="23276" class="Symbol">:</a> <a id="23278" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="23282" href="Algebra.Bundles.html#23158" class="Bound">c</a>
<a id="BooleanAlgebra._≈_"></a><a id="23288" href="Algebra.Bundles.html#23288" class="Field Operator">_≈_</a> <a id="23305" class="Symbol">:</a> <a id="23307" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="23311" href="Algebra.Bundles.html#23259" class="Field">Carrier</a> <a id="23319" href="Algebra.Bundles.html#23160" class="Bound"></a>
<a id="BooleanAlgebra.__"></a><a id="23325" href="Algebra.Bundles.html#23325" class="Field Operator">__</a> <a id="23342" class="Symbol">:</a> <a id="23344" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="23348" href="Algebra.Bundles.html#23259" class="Field">Carrier</a>
<a id="BooleanAlgebra._∧_"></a><a id="23360" href="Algebra.Bundles.html#23360" class="Field Operator">_∧_</a> <a id="23377" class="Symbol">:</a> <a id="23379" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="23383" href="Algebra.Bundles.html#23259" class="Field">Carrier</a>
<a id="BooleanAlgebra.¬_"></a><a id="23395" href="Algebra.Bundles.html#23395" class="Field Operator">¬_</a> <a id="23412" class="Symbol">:</a> <a id="23414" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="23418" href="Algebra.Bundles.html#23259" class="Field">Carrier</a>
<a id="BooleanAlgebra."></a><a id="23430" href="Algebra.Bundles.html#23430" class="Field"></a> <a id="23447" class="Symbol">:</a> <a id="23449" href="Algebra.Bundles.html#23259" class="Field">Carrier</a>
<a id="BooleanAlgebra.⊥"></a><a id="23461" href="Algebra.Bundles.html#23461" class="Field"></a> <a id="23478" class="Symbol">:</a> <a id="23480" href="Algebra.Bundles.html#23259" class="Field">Carrier</a>
<a id="BooleanAlgebra.isBooleanAlgebra"></a><a id="23492" href="Algebra.Bundles.html#23492" class="Field">isBooleanAlgebra</a> <a id="23509" class="Symbol">:</a> <a id="23511" href="Algebra.Structures.html#15857" class="Record">IsBooleanAlgebra</a> <a id="23528" href="Algebra.Bundles.html#23288" class="Field Operator">_≈_</a> <a id="23532" href="Algebra.Bundles.html#23325" class="Field Operator">__</a> <a id="23536" href="Algebra.Bundles.html#23360" class="Field Operator">_∧_</a> <a id="23540" href="Algebra.Bundles.html#23395" class="Field Operator">¬_</a> <a id="23543" href="Algebra.Bundles.html#23430" class="Field"></a> <a id="23545" href="Algebra.Bundles.html#23461" class="Field"></a>
<a id="23550" class="Keyword">open</a> <a id="23555" href="Algebra.Structures.html#15857" class="Module">IsBooleanAlgebra</a> <a id="23572" href="Algebra.Bundles.html#23492" class="Field">isBooleanAlgebra</a> <a id="23589" class="Keyword">public</a>
<a id="BooleanAlgebra.distributiveLattice"></a><a id="23599" href="Algebra.Bundles.html#23599" class="Function">distributiveLattice</a> <a id="23619" class="Symbol">:</a> <a id="23621" href="Algebra.Bundles.html#9737" class="Record">DistributiveLattice</a> <a id="23641" class="Symbol">_</a> <a id="23643" class="Symbol">_</a>
<a id="23647" href="Algebra.Bundles.html#23599" class="Function">distributiveLattice</a> <a id="23667" class="Symbol">=</a> <a id="23669" class="Keyword">record</a> <a id="23676" class="Symbol">{</a> <a id="23678" href="Algebra.Bundles.html#10000" class="Field">isDistributiveLattice</a> <a id="23700" class="Symbol">=</a> <a id="23702" href="Algebra.Structures.html#15951" class="Function">isDistributiveLattice</a> <a id="23724" class="Symbol">}</a>
<a id="23729" class="Keyword">open</a> <a id="23734" href="Algebra.Bundles.html#9737" class="Module">DistributiveLattice</a> <a id="23754" href="Algebra.Bundles.html#23599" class="Function">distributiveLattice</a> <a id="23774" class="Keyword">public</a>
<a id="23785" class="Keyword">using</a> <a id="23791" class="Symbol">(</a><a id="23792" href="Relation.Binary.Bundles.html#960" class="Function Operator">_≉_</a><a id="23795" class="Symbol">;</a> <a id="23797" href="Algebra.Bundles.html#9611" class="Function">setoid</a><a id="23803" class="Symbol">;</a> <a id="23805" href="Algebra.Bundles.html#10120" class="Function">lattice</a><a id="23812" class="Symbol">)</a>
<a id="23816" class="Comment">------------------------------------------------------------------------</a>
<a id="23889" class="Comment">-- DEPRECATED NAMES</a>
<a id="23909" class="Comment">------------------------------------------------------------------------</a>
<a id="23982" class="Comment">-- Please use the new names as continuing support for the old names is</a>
<a id="24053" class="Comment">-- not guaranteed.</a>
<a id="24073" class="Comment">-- Version 1.0</a>
<a id="RawSemigroup"></a><a id="24089" href="Algebra.Bundles.html#24089" class="Function">RawSemigroup</a> <a id="24102" class="Symbol">=</a> <a id="24104" href="Algebra.Bundles.html#781" class="Record">RawMagma</a>
<a id="24113" class="Symbol">{-#</a> <a id="24117" class="Keyword">WARNING_ON_USAGE</a> <a id="24134" class="Pragma">RawSemigroup</a>
<a id="24147" class="String">&quot;Warning: RawSemigroup was deprecated in v1.0.
Please use RawMagma instead.&quot;</a>
<a id="24224" class="Symbol">#-}</a>
</pre></body></html>

View File

@ -0,0 +1,24 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Algebra.Consequences.Base</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Lemmas relating algebraic definitions (such as associativity and</a>
<a id="174" class="Comment">-- commutativity) that don&#39;t the equality relation to be a setoid.</a>
<a id="241" class="Comment">------------------------------------------------------------------------</a>
<a id="315" class="Symbol">{-#</a> <a id="319" class="Keyword">OPTIONS</a> <a id="327" class="Pragma">--without-K</a> <a id="339" class="Pragma">--safe</a> <a id="346" class="Symbol">#-}</a>
<a id="351" class="Keyword">module</a> <a id="358" href="Algebra.Consequences.Base.html" class="Module">Algebra.Consequences.Base</a>
<a id="386" class="Symbol">{</a><a id="387" href="Algebra.Consequences.Base.html#387" class="Bound">a</a><a id="388" class="Symbol">}</a> <a id="390" class="Symbol">{</a><a id="391" href="Algebra.Consequences.Base.html#391" class="Bound">A</a> <a id="393" class="Symbol">:</a> <a id="395" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="399" href="Algebra.Consequences.Base.html#387" class="Bound">a</a><a id="400" class="Symbol">}</a> <a id="402" class="Keyword">where</a>
<a id="409" class="Keyword">open</a> <a id="414" class="Keyword">import</a> <a id="421" href="Algebra.Core.html" class="Module">Algebra.Core</a>
<a id="434" class="Keyword">open</a> <a id="439" class="Keyword">import</a> <a id="446" href="Algebra.Definitions.html" class="Module">Algebra.Definitions</a>
<a id="466" class="Keyword">open</a> <a id="471" class="Keyword">import</a> <a id="478" href="Data.Sum.Base.html" class="Module">Data.Sum.Base</a>
<a id="492" class="Keyword">open</a> <a id="497" class="Keyword">import</a> <a id="504" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a>
<a id="sel⇒idem"></a><a id="526" href="Algebra.Consequences.Base.html#526" class="Function">sel⇒idem</a> <a id="535" class="Symbol">:</a> <a id="537" class="Symbol"></a> <a id="539" class="Symbol">{</a><a id="540" href="Algebra.Consequences.Base.html#540" class="Bound"></a><a id="541" class="Symbol">}</a> <a id="543" class="Symbol">{</a><a id="544" href="Algebra.Consequences.Base.html#544" class="Bound Operator">_•_</a> <a id="548" class="Symbol">:</a> <a id="550" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="554" href="Algebra.Consequences.Base.html#391" class="Bound">A</a><a id="555" class="Symbol">}</a> <a id="557" class="Symbol">(</a><a id="558" href="Algebra.Consequences.Base.html#558" class="Bound Operator">_≈_</a> <a id="562" class="Symbol">:</a> <a id="564" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="568" href="Algebra.Consequences.Base.html#391" class="Bound">A</a> <a id="570" href="Algebra.Consequences.Base.html#540" class="Bound"></a><a id="571" class="Symbol">)</a> <a id="573" class="Symbol"></a>
<a id="586" href="Algebra.Definitions.html#2782" class="Function">Selective</a> <a id="596" href="Algebra.Consequences.Base.html#558" class="Bound Operator">_≈_</a> <a id="600" href="Algebra.Consequences.Base.html#544" class="Bound Operator">_•_</a> <a id="604" class="Symbol"></a> <a id="606" href="Algebra.Definitions.html#2647" class="Function">Idempotent</a> <a id="617" href="Algebra.Consequences.Base.html#558" class="Bound Operator">_≈_</a> <a id="621" href="Algebra.Consequences.Base.html#544" class="Bound Operator">_•_</a>
<a id="625" href="Algebra.Consequences.Base.html#526" class="Function">sel⇒idem</a> <a id="634" class="Symbol">_</a> <a id="636" href="Algebra.Consequences.Base.html#636" class="Bound">sel</a> <a id="640" href="Algebra.Consequences.Base.html#640" class="Bound">x</a> <a id="642" class="Keyword">with</a> <a id="647" href="Algebra.Consequences.Base.html#636" class="Bound">sel</a> <a id="651" href="Algebra.Consequences.Base.html#640" class="Bound">x</a> <a id="653" href="Algebra.Consequences.Base.html#640" class="Bound">x</a>
<a id="655" class="Symbol">...</a> <a id="659" class="Symbol">|</a> <a id="661" href="Data.Sum.Base.html#784" class="InductiveConstructor">inj₁</a> <a id="666" href="Algebra.Consequences.Base.html#666" class="Bound">x•x≈x</a> <a id="672" class="Symbol">=</a> <a id="674" href="Algebra.Consequences.Base.html#666" class="Bound">x•x≈x</a>
<a id="680" class="Symbol">...</a> <a id="684" class="Symbol">|</a> <a id="686" href="Data.Sum.Base.html#809" class="InductiveConstructor">inj₂</a> <a id="691" href="Algebra.Consequences.Base.html#691" class="Bound">x•x≈x</a> <a id="697" class="Symbol">=</a> <a id="699" href="Algebra.Consequences.Base.html#691" class="Bound">x•x≈x</a>
</pre></body></html>

View File

@ -0,0 +1,216 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Algebra.Consequences.Setoid</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Relations between properties of functions, such as associativity and</a>
<a id="178" class="Comment">-- commutativity, when the underlying relation is a setoid</a>
<a id="237" class="Comment">------------------------------------------------------------------------</a>
<a id="311" class="Symbol">{-#</a> <a id="315" class="Keyword">OPTIONS</a> <a id="323" class="Pragma">--without-K</a> <a id="335" class="Pragma">--safe</a> <a id="342" class="Symbol">#-}</a>
<a id="347" class="Keyword">open</a> <a id="352" class="Keyword">import</a> <a id="359" href="Relation.Binary.html" class="Module">Relation.Binary</a> <a id="375" class="Keyword">using</a> <a id="381" class="Symbol">(</a><a id="382" href="Relation.Binary.Core.html#882" class="Function">Rel</a><a id="385" class="Symbol">;</a> <a id="387" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a><a id="393" class="Symbol">;</a> <a id="395" href="Relation.Binary.Definitions.html#4369" class="Function">Substitutive</a><a id="407" class="Symbol">;</a> <a id="409" href="Relation.Binary.Definitions.html#1498" class="Function">Symmetric</a><a id="418" class="Symbol">;</a> <a id="420" href="Relation.Binary.Definitions.html#2584" class="Function">Total</a><a id="425" class="Symbol">)</a>
<a id="428" class="Keyword">module</a> <a id="435" href="Algebra.Consequences.Setoid.html" class="Module">Algebra.Consequences.Setoid</a> <a id="463" class="Symbol">{</a><a id="464" href="Algebra.Consequences.Setoid.html#464" class="Bound">a</a> <a id="466" href="Algebra.Consequences.Setoid.html#466" class="Bound"></a><a id="467" class="Symbol">}</a> <a id="469" class="Symbol">(</a><a id="470" href="Algebra.Consequences.Setoid.html#470" class="Bound">S</a> <a id="472" class="Symbol">:</a> <a id="474" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="481" href="Algebra.Consequences.Setoid.html#464" class="Bound">a</a> <a id="483" href="Algebra.Consequences.Setoid.html#466" class="Bound"></a><a id="484" class="Symbol">)</a> <a id="486" class="Keyword">where</a>
<a id="493" class="Keyword">open</a> <a id="498" href="Relation.Binary.Bundles.html#1009" class="Module">Setoid</a> <a id="505" href="Algebra.Consequences.Setoid.html#470" class="Bound">S</a> <a id="507" class="Keyword">renaming</a> <a id="516" class="Symbol">(</a><a id="517" href="Relation.Binary.Bundles.html#1072" class="Field">Carrier</a> <a id="525" class="Symbol">to</a> <a id="528" class="Field">A</a><a id="529" class="Symbol">)</a>
<a id="531" class="Keyword">open</a> <a id="536" class="Keyword">import</a> <a id="543" href="Algebra.Core.html" class="Module">Algebra.Core</a>
<a id="556" class="Keyword">open</a> <a id="561" class="Keyword">import</a> <a id="568" href="Algebra.Definitions.html" class="Module">Algebra.Definitions</a> <a id="588" href="Relation.Binary.Bundles.html#1098" class="Field Operator">_≈_</a>
<a id="592" class="Keyword">open</a> <a id="597" class="Keyword">import</a> <a id="604" href="Data.Sum.Base.html" class="Module">Data.Sum.Base</a> <a id="618" class="Keyword">using</a> <a id="624" class="Symbol">(</a><a id="625" href="Data.Sum.Base.html#784" class="InductiveConstructor">inj₁</a><a id="629" class="Symbol">;</a> <a id="631" href="Data.Sum.Base.html#809" class="InductiveConstructor">inj₂</a><a id="635" class="Symbol">)</a>
<a id="637" class="Keyword">open</a> <a id="642" class="Keyword">import</a> <a id="649" href="Data.Product.html" class="Module">Data.Product</a> <a id="662" class="Keyword">using</a> <a id="668" class="Symbol">(</a><a id="669" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">_,_</a><a id="672" class="Symbol">)</a>
<a id="674" class="Keyword">open</a> <a id="679" class="Keyword">import</a> <a id="686" href="Function.Base.html" class="Module">Function.Base</a> <a id="700" class="Keyword">using</a> <a id="706" class="Symbol">(</a><a id="707" href="Function.Base.html#1919" class="Function Operator">_$_</a><a id="710" class="Symbol">)</a>
<a id="712" class="Keyword">import</a> <a id="719" href="Relation.Binary.Consequences.html" class="Module">Relation.Binary.Consequences</a> <a id="748" class="Symbol">as</a> <a id="751" class="Module">Bin</a>
<a id="755" class="Keyword">open</a> <a id="760" class="Keyword">import</a> <a id="767" href="Relation.Binary.Reasoning.Setoid.html" class="Module">Relation.Binary.Reasoning.Setoid</a> <a id="800" href="Algebra.Consequences.Setoid.html#470" class="Bound">S</a>
<a id="802" class="Keyword">open</a> <a id="807" class="Keyword">import</a> <a id="814" href="Relation.Unary.html" class="Module">Relation.Unary</a> <a id="829" class="Keyword">using</a> <a id="835" class="Symbol">(</a><a id="836" href="Relation.Unary.html#1101" class="Function">Pred</a><a id="840" class="Symbol">)</a>
<a id="843" class="Comment">------------------------------------------------------------------------</a>
<a id="916" class="Comment">-- Re-exports</a>
<a id="931" class="Comment">-- Export base lemmas that don&#39;t require the setoid</a>
<a id="984" class="Keyword">open</a> <a id="989" class="Keyword">import</a> <a id="996" href="Algebra.Consequences.Base.html" class="Module">Algebra.Consequences.Base</a> <a id="1022" class="Keyword">public</a>
<a id="1030" class="Comment">------------------------------------------------------------------------</a>
<a id="1103" class="Comment">-- Magma-like structures</a>
<a id="1129" class="Keyword">module</a> <a id="1136" href="Algebra.Consequences.Setoid.html#1136" class="Module">_</a> <a id="1138" class="Symbol">{</a><a id="1139" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator">_•_</a> <a id="1143" class="Symbol">:</a> <a id="1145" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="1149" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a><a id="1150" class="Symbol">}</a> <a id="1152" class="Symbol">(</a><a id="1153" href="Algebra.Consequences.Setoid.html#1153" class="Bound">comm</a> <a id="1158" class="Symbol">:</a> <a id="1160" href="Algebra.Definitions.html#1195" class="Function">Commutative</a> <a id="1172" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator">_•_</a><a id="1175" class="Symbol">)</a> <a id="1177" class="Keyword">where</a>
<a id="1186" href="Algebra.Consequences.Setoid.html#1186" class="Function">comm+cancelˡ⇒cancelʳ</a> <a id="1207" class="Symbol">:</a> <a id="1209" href="Algebra.Definitions.html#3082" class="Function">LeftCancellative</a> <a id="1226" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator">_•_</a> <a id="1230" class="Symbol"></a> <a id="1232" href="Algebra.Definitions.html#3177" class="Function">RightCancellative</a> <a id="1250" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator">_•_</a>
<a id="1256" href="Algebra.Consequences.Setoid.html#1186" class="Function">comm+cancelˡ⇒cancelʳ</a> <a id="1277" href="Algebra.Consequences.Setoid.html#1277" class="Bound">cancelˡ</a> <a id="1285" class="Symbol">{</a><a id="1286" href="Algebra.Consequences.Setoid.html#1286" class="Bound">x</a><a id="1287" class="Symbol">}</a> <a id="1289" href="Algebra.Consequences.Setoid.html#1289" class="Bound">y</a> <a id="1291" href="Algebra.Consequences.Setoid.html#1291" class="Bound">z</a> <a id="1293" href="Algebra.Consequences.Setoid.html#1293" class="Bound">eq</a> <a id="1296" class="Symbol">=</a> <a id="1298" href="Algebra.Consequences.Setoid.html#1277" class="Bound">cancelˡ</a> <a id="1306" href="Algebra.Consequences.Setoid.html#1286" class="Bound">x</a> <a id="1308" href="Function.Base.html#1919" class="Function Operator">$</a> <a id="1310" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="1320" href="Algebra.Consequences.Setoid.html#1286" class="Bound">x</a> <a id="1322" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator"></a> <a id="1324" href="Algebra.Consequences.Setoid.html#1289" class="Bound">y</a> <a id="1326" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="1329" href="Algebra.Consequences.Setoid.html#1153" class="Bound">comm</a> <a id="1334" href="Algebra.Consequences.Setoid.html#1286" class="Bound">x</a> <a id="1336" href="Algebra.Consequences.Setoid.html#1289" class="Bound">y</a> <a id="1338" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="1344" href="Algebra.Consequences.Setoid.html#1289" class="Bound">y</a> <a id="1346" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator"></a> <a id="1348" href="Algebra.Consequences.Setoid.html#1286" class="Bound">x</a> <a id="1350" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="1353" href="Algebra.Consequences.Setoid.html#1293" class="Bound">eq</a> <a id="1356" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="1362" href="Algebra.Consequences.Setoid.html#1291" class="Bound">z</a> <a id="1364" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator"></a> <a id="1366" href="Algebra.Consequences.Setoid.html#1286" class="Bound">x</a> <a id="1368" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="1371" href="Algebra.Consequences.Setoid.html#1153" class="Bound">comm</a> <a id="1376" href="Algebra.Consequences.Setoid.html#1291" class="Bound">z</a> <a id="1378" href="Algebra.Consequences.Setoid.html#1286" class="Bound">x</a> <a id="1380" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="1386" href="Algebra.Consequences.Setoid.html#1286" class="Bound">x</a> <a id="1388" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator"></a> <a id="1390" href="Algebra.Consequences.Setoid.html#1291" class="Bound">z</a> <a id="1392" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="1397" href="Algebra.Consequences.Setoid.html#1397" class="Function">comm+cancelʳ⇒cancelˡ</a> <a id="1418" class="Symbol">:</a> <a id="1420" href="Algebra.Definitions.html#3177" class="Function">RightCancellative</a> <a id="1438" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator">_•_</a> <a id="1442" class="Symbol"></a> <a id="1444" href="Algebra.Definitions.html#3082" class="Function">LeftCancellative</a> <a id="1461" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator">_•_</a>
<a id="1467" href="Algebra.Consequences.Setoid.html#1397" class="Function">comm+cancelʳ⇒cancelˡ</a> <a id="1488" href="Algebra.Consequences.Setoid.html#1488" class="Bound">cancelʳ</a> <a id="1496" href="Algebra.Consequences.Setoid.html#1496" class="Bound">x</a> <a id="1498" class="Symbol">{</a><a id="1499" href="Algebra.Consequences.Setoid.html#1499" class="Bound">y</a><a id="1500" class="Symbol">}</a> <a id="1502" class="Symbol">{</a><a id="1503" href="Algebra.Consequences.Setoid.html#1503" class="Bound">z</a><a id="1504" class="Symbol">}</a> <a id="1506" href="Algebra.Consequences.Setoid.html#1506" class="Bound">eq</a> <a id="1509" class="Symbol">=</a> <a id="1511" href="Algebra.Consequences.Setoid.html#1488" class="Bound">cancelʳ</a> <a id="1519" href="Algebra.Consequences.Setoid.html#1499" class="Bound">y</a> <a id="1521" href="Algebra.Consequences.Setoid.html#1503" class="Bound">z</a> <a id="1523" href="Function.Base.html#1919" class="Function Operator">$</a> <a id="1525" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="1535" href="Algebra.Consequences.Setoid.html#1499" class="Bound">y</a> <a id="1537" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator"></a> <a id="1539" href="Algebra.Consequences.Setoid.html#1496" class="Bound">x</a> <a id="1541" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="1544" href="Algebra.Consequences.Setoid.html#1153" class="Bound">comm</a> <a id="1549" href="Algebra.Consequences.Setoid.html#1499" class="Bound">y</a> <a id="1551" href="Algebra.Consequences.Setoid.html#1496" class="Bound">x</a> <a id="1553" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="1559" href="Algebra.Consequences.Setoid.html#1496" class="Bound">x</a> <a id="1561" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator"></a> <a id="1563" href="Algebra.Consequences.Setoid.html#1499" class="Bound">y</a> <a id="1565" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="1568" href="Algebra.Consequences.Setoid.html#1506" class="Bound">eq</a> <a id="1571" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="1577" href="Algebra.Consequences.Setoid.html#1496" class="Bound">x</a> <a id="1579" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator"></a> <a id="1581" href="Algebra.Consequences.Setoid.html#1503" class="Bound">z</a> <a id="1583" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="1586" href="Algebra.Consequences.Setoid.html#1153" class="Bound">comm</a> <a id="1591" href="Algebra.Consequences.Setoid.html#1496" class="Bound">x</a> <a id="1593" href="Algebra.Consequences.Setoid.html#1503" class="Bound">z</a> <a id="1595" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="1601" href="Algebra.Consequences.Setoid.html#1503" class="Bound">z</a> <a id="1603" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator"></a> <a id="1605" href="Algebra.Consequences.Setoid.html#1496" class="Bound">x</a> <a id="1607" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="1610" class="Comment">------------------------------------------------------------------------</a>
<a id="1683" class="Comment">-- Monoid-like structures</a>
<a id="1710" class="Keyword">module</a> <a id="1717" href="Algebra.Consequences.Setoid.html#1717" class="Module">_</a> <a id="1719" class="Symbol">{</a><a id="1720" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a> <a id="1724" class="Symbol">:</a> <a id="1726" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="1730" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a><a id="1731" class="Symbol">}</a> <a id="1733" class="Symbol">(</a><a id="1734" href="Algebra.Consequences.Setoid.html#1734" class="Bound">comm</a> <a id="1739" class="Symbol">:</a> <a id="1741" href="Algebra.Definitions.html#1195" class="Function">Commutative</a> <a id="1753" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a><a id="1756" class="Symbol">)</a> <a id="1758" class="Symbol">{</a><a id="1759" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="1761" class="Symbol">:</a> <a id="1763" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a><a id="1764" class="Symbol">}</a> <a id="1766" class="Keyword">where</a>
<a id="1775" href="Algebra.Consequences.Setoid.html#1775" class="Function">comm+idˡ⇒idʳ</a> <a id="1788" class="Symbol">:</a> <a id="1790" href="Algebra.Definitions.html#1268" class="Function">LeftIdentity</a> <a id="1803" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="1805" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a> <a id="1809" class="Symbol"></a> <a id="1811" href="Algebra.Definitions.html#1341" class="Function">RightIdentity</a> <a id="1825" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="1827" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a>
<a id="1833" href="Algebra.Consequences.Setoid.html#1775" class="Function">comm+idˡ⇒idʳ</a> <a id="1846" href="Algebra.Consequences.Setoid.html#1846" class="Bound">idˡ</a> <a id="1850" href="Algebra.Consequences.Setoid.html#1850" class="Bound">x</a> <a id="1852" class="Symbol">=</a> <a id="1854" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="1864" href="Algebra.Consequences.Setoid.html#1850" class="Bound">x</a> <a id="1866" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="1868" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="1870" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="1873" href="Algebra.Consequences.Setoid.html#1734" class="Bound">comm</a> <a id="1878" href="Algebra.Consequences.Setoid.html#1850" class="Bound">x</a> <a id="1880" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="1882" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="1888" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="1890" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="1892" href="Algebra.Consequences.Setoid.html#1850" class="Bound">x</a> <a id="1894" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="1897" href="Algebra.Consequences.Setoid.html#1846" class="Bound">idˡ</a> <a id="1901" href="Algebra.Consequences.Setoid.html#1850" class="Bound">x</a> <a id="1903" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="1909" href="Algebra.Consequences.Setoid.html#1850" class="Bound">x</a> <a id="1915" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="1920" href="Algebra.Consequences.Setoid.html#1920" class="Function">comm+idʳ⇒idˡ</a> <a id="1933" class="Symbol">:</a> <a id="1935" href="Algebra.Definitions.html#1341" class="Function">RightIdentity</a> <a id="1949" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="1951" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a> <a id="1955" class="Symbol"></a> <a id="1957" href="Algebra.Definitions.html#1268" class="Function">LeftIdentity</a> <a id="1970" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="1972" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a>
<a id="1978" href="Algebra.Consequences.Setoid.html#1920" class="Function">comm+idʳ⇒idˡ</a> <a id="1991" href="Algebra.Consequences.Setoid.html#1991" class="Bound">idʳ</a> <a id="1995" href="Algebra.Consequences.Setoid.html#1995" class="Bound">x</a> <a id="1997" class="Symbol">=</a> <a id="1999" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="2009" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2011" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2013" href="Algebra.Consequences.Setoid.html#1995" class="Bound">x</a> <a id="2015" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="2018" href="Algebra.Consequences.Setoid.html#1734" class="Bound">comm</a> <a id="2023" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2025" href="Algebra.Consequences.Setoid.html#1995" class="Bound">x</a> <a id="2027" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="2033" href="Algebra.Consequences.Setoid.html#1995" class="Bound">x</a> <a id="2035" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2037" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2039" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="2042" href="Algebra.Consequences.Setoid.html#1991" class="Bound">idʳ</a> <a id="2046" href="Algebra.Consequences.Setoid.html#1995" class="Bound">x</a> <a id="2048" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="2054" href="Algebra.Consequences.Setoid.html#1995" class="Bound">x</a> <a id="2060" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="2065" href="Algebra.Consequences.Setoid.html#2065" class="Function">comm+zeˡ⇒zeʳ</a> <a id="2078" class="Symbol">:</a> <a id="2080" href="Algebra.Definitions.html#1502" class="Function">LeftZero</a> <a id="2089" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2091" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a> <a id="2095" class="Symbol"></a> <a id="2097" href="Algebra.Definitions.html#1567" class="Function">RightZero</a> <a id="2107" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2109" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a>
<a id="2115" href="Algebra.Consequences.Setoid.html#2065" class="Function">comm+zeˡ⇒zeʳ</a> <a id="2128" href="Algebra.Consequences.Setoid.html#2128" class="Bound">zeˡ</a> <a id="2132" href="Algebra.Consequences.Setoid.html#2132" class="Bound">x</a> <a id="2134" class="Symbol">=</a> <a id="2136" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="2146" href="Algebra.Consequences.Setoid.html#2132" class="Bound">x</a> <a id="2148" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2150" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2152" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="2155" href="Algebra.Consequences.Setoid.html#1734" class="Bound">comm</a> <a id="2160" href="Algebra.Consequences.Setoid.html#2132" class="Bound">x</a> <a id="2162" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2164" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="2170" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2172" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2174" href="Algebra.Consequences.Setoid.html#2132" class="Bound">x</a> <a id="2176" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="2179" href="Algebra.Consequences.Setoid.html#2128" class="Bound">zeˡ</a> <a id="2183" href="Algebra.Consequences.Setoid.html#2132" class="Bound">x</a> <a id="2185" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="2191" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2197" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="2202" href="Algebra.Consequences.Setoid.html#2202" class="Function">comm+zeʳ⇒zeˡ</a> <a id="2215" class="Symbol">:</a> <a id="2217" href="Algebra.Definitions.html#1567" class="Function">RightZero</a> <a id="2227" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2229" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a> <a id="2233" class="Symbol"></a> <a id="2235" href="Algebra.Definitions.html#1502" class="Function">LeftZero</a> <a id="2244" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2246" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a>
<a id="2252" href="Algebra.Consequences.Setoid.html#2202" class="Function">comm+zeʳ⇒zeˡ</a> <a id="2265" href="Algebra.Consequences.Setoid.html#2265" class="Bound">zeʳ</a> <a id="2269" href="Algebra.Consequences.Setoid.html#2269" class="Bound">x</a> <a id="2271" class="Symbol">=</a> <a id="2273" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="2283" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2285" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2287" href="Algebra.Consequences.Setoid.html#2269" class="Bound">x</a> <a id="2289" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="2292" href="Algebra.Consequences.Setoid.html#1734" class="Bound">comm</a> <a id="2297" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2299" href="Algebra.Consequences.Setoid.html#2269" class="Bound">x</a> <a id="2301" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="2307" href="Algebra.Consequences.Setoid.html#2269" class="Bound">x</a> <a id="2309" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2311" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2313" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="2316" href="Algebra.Consequences.Setoid.html#2265" class="Bound">zeʳ</a> <a id="2320" href="Algebra.Consequences.Setoid.html#2269" class="Bound">x</a> <a id="2322" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="2328" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2334" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="2339" href="Algebra.Consequences.Setoid.html#2339" class="Function">comm+almostCancelˡ⇒almostCancelʳ</a> <a id="2372" class="Symbol">:</a> <a id="2374" href="Algebra.Definitions.html#3372" class="Function">AlmostLeftCancellative</a> <a id="2397" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2399" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a> <a id="2403" class="Symbol"></a>
<a id="2442" href="Algebra.Definitions.html#3495" class="Function">AlmostRightCancellative</a> <a id="2466" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2468" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a>
<a id="2474" href="Algebra.Consequences.Setoid.html#2339" class="Function">comm+almostCancelˡ⇒almostCancelʳ</a> <a id="2507" href="Algebra.Consequences.Setoid.html#2507" class="Bound">cancelˡ-nonZero</a> <a id="2523" class="Symbol">{</a><a id="2524" href="Algebra.Consequences.Setoid.html#2524" class="Bound">x</a><a id="2525" class="Symbol">}</a> <a id="2527" href="Algebra.Consequences.Setoid.html#2527" class="Bound">y</a> <a id="2529" href="Algebra.Consequences.Setoid.html#2529" class="Bound">z</a> <a id="2531" href="Algebra.Consequences.Setoid.html#2531" class="Bound">x≉e</a> <a id="2535" href="Algebra.Consequences.Setoid.html#2535" class="Bound">yx≈zx</a> <a id="2541" class="Symbol">=</a>
<a id="2547" href="Algebra.Consequences.Setoid.html#2507" class="Bound">cancelˡ-nonZero</a> <a id="2563" href="Algebra.Consequences.Setoid.html#2527" class="Bound">y</a> <a id="2565" href="Algebra.Consequences.Setoid.html#2529" class="Bound">z</a> <a id="2567" href="Algebra.Consequences.Setoid.html#2531" class="Bound">x≉e</a> <a id="2571" href="Function.Base.html#1919" class="Function Operator">$</a> <a id="2573" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="2585" href="Algebra.Consequences.Setoid.html#2524" class="Bound">x</a> <a id="2587" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2589" href="Algebra.Consequences.Setoid.html#2527" class="Bound">y</a> <a id="2591" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="2594" href="Algebra.Consequences.Setoid.html#1734" class="Bound">comm</a> <a id="2599" href="Algebra.Consequences.Setoid.html#2524" class="Bound">x</a> <a id="2601" href="Algebra.Consequences.Setoid.html#2527" class="Bound">y</a> <a id="2603" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="2611" href="Algebra.Consequences.Setoid.html#2527" class="Bound">y</a> <a id="2613" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2615" href="Algebra.Consequences.Setoid.html#2524" class="Bound">x</a> <a id="2617" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="2620" href="Algebra.Consequences.Setoid.html#2535" class="Bound">yx≈zx</a> <a id="2626" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="2634" href="Algebra.Consequences.Setoid.html#2529" class="Bound">z</a> <a id="2636" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2638" href="Algebra.Consequences.Setoid.html#2524" class="Bound">x</a> <a id="2640" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="2643" href="Algebra.Consequences.Setoid.html#1734" class="Bound">comm</a> <a id="2648" href="Algebra.Consequences.Setoid.html#2529" class="Bound">z</a> <a id="2650" href="Algebra.Consequences.Setoid.html#2524" class="Bound">x</a> <a id="2652" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="2660" href="Algebra.Consequences.Setoid.html#2524" class="Bound">x</a> <a id="2662" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2664" href="Algebra.Consequences.Setoid.html#2529" class="Bound">z</a> <a id="2666" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="2671" href="Algebra.Consequences.Setoid.html#2671" class="Function">comm+almostCancelʳ⇒almostCancelˡ</a> <a id="2704" class="Symbol">:</a> <a id="2706" href="Algebra.Definitions.html#3495" class="Function">AlmostRightCancellative</a> <a id="2730" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2732" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a> <a id="2736" class="Symbol"></a>
<a id="2775" href="Algebra.Definitions.html#3372" class="Function">AlmostLeftCancellative</a> <a id="2798" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2800" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a>
<a id="2806" href="Algebra.Consequences.Setoid.html#2671" class="Function">comm+almostCancelʳ⇒almostCancelˡ</a> <a id="2839" href="Algebra.Consequences.Setoid.html#2839" class="Bound">cancelʳ-nonZero</a> <a id="2855" class="Symbol">{</a><a id="2856" href="Algebra.Consequences.Setoid.html#2856" class="Bound">x</a><a id="2857" class="Symbol">}</a> <a id="2859" href="Algebra.Consequences.Setoid.html#2859" class="Bound">y</a> <a id="2861" href="Algebra.Consequences.Setoid.html#2861" class="Bound">z</a> <a id="2863" href="Algebra.Consequences.Setoid.html#2863" class="Bound">x≉e</a> <a id="2867" href="Algebra.Consequences.Setoid.html#2867" class="Bound">xy≈xz</a> <a id="2873" class="Symbol">=</a>
<a id="2879" href="Algebra.Consequences.Setoid.html#2839" class="Bound">cancelʳ-nonZero</a> <a id="2895" href="Algebra.Consequences.Setoid.html#2859" class="Bound">y</a> <a id="2897" href="Algebra.Consequences.Setoid.html#2861" class="Bound">z</a> <a id="2899" href="Algebra.Consequences.Setoid.html#2863" class="Bound">x≉e</a> <a id="2903" href="Function.Base.html#1919" class="Function Operator">$</a> <a id="2905" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="2917" href="Algebra.Consequences.Setoid.html#2859" class="Bound">y</a> <a id="2919" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2921" href="Algebra.Consequences.Setoid.html#2856" class="Bound">x</a> <a id="2923" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="2926" href="Algebra.Consequences.Setoid.html#1734" class="Bound">comm</a> <a id="2931" href="Algebra.Consequences.Setoid.html#2859" class="Bound">y</a> <a id="2933" href="Algebra.Consequences.Setoid.html#2856" class="Bound">x</a> <a id="2935" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="2943" href="Algebra.Consequences.Setoid.html#2856" class="Bound">x</a> <a id="2945" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2947" href="Algebra.Consequences.Setoid.html#2859" class="Bound">y</a> <a id="2949" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="2952" href="Algebra.Consequences.Setoid.html#2867" class="Bound">xy≈xz</a> <a id="2958" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="2966" href="Algebra.Consequences.Setoid.html#2856" class="Bound">x</a> <a id="2968" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2970" href="Algebra.Consequences.Setoid.html#2861" class="Bound">z</a> <a id="2972" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="2975" href="Algebra.Consequences.Setoid.html#1734" class="Bound">comm</a> <a id="2980" href="Algebra.Consequences.Setoid.html#2856" class="Bound">x</a> <a id="2982" href="Algebra.Consequences.Setoid.html#2861" class="Bound">z</a> <a id="2984" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="2992" href="Algebra.Consequences.Setoid.html#2861" class="Bound">z</a> <a id="2994" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2996" href="Algebra.Consequences.Setoid.html#2856" class="Bound">x</a> <a id="2998" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="3001" class="Comment">------------------------------------------------------------------------</a>
<a id="3074" class="Comment">-- Group-like structures</a>
<a id="3100" class="Keyword">module</a> <a id="3107" href="Algebra.Consequences.Setoid.html#3107" class="Module">_</a> <a id="3109" class="Symbol">{</a><a id="3110" href="Algebra.Consequences.Setoid.html#3110" class="Bound Operator">_•_</a> <a id="3114" class="Symbol">:</a> <a id="3116" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="3120" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a><a id="3121" class="Symbol">}</a> <a id="3123" class="Symbol">{</a><a id="3124" href="Algebra.Consequences.Setoid.html#3124" class="Bound Operator">_⁻¹</a> <a id="3128" class="Symbol">:</a> <a id="3130" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="3134" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a><a id="3135" class="Symbol">}</a> <a id="3137" class="Symbol">{</a><a id="3138" href="Algebra.Consequences.Setoid.html#3138" class="Bound">e</a><a id="3139" class="Symbol">}</a> <a id="3141" class="Symbol">(</a><a id="3142" href="Algebra.Consequences.Setoid.html#3142" class="Bound">comm</a> <a id="3147" class="Symbol">:</a> <a id="3149" href="Algebra.Definitions.html#1195" class="Function">Commutative</a> <a id="3161" href="Algebra.Consequences.Setoid.html#3110" class="Bound Operator">_•_</a><a id="3164" class="Symbol">)</a> <a id="3166" class="Keyword">where</a>
<a id="3175" href="Algebra.Consequences.Setoid.html#3175" class="Function">comm+invˡ⇒invʳ</a> <a id="3190" class="Symbol">:</a> <a id="3192" href="Algebra.Definitions.html#1704" class="Function">LeftInverse</a> <a id="3204" href="Algebra.Consequences.Setoid.html#3138" class="Bound">e</a> <a id="3206" href="Algebra.Consequences.Setoid.html#3124" class="Bound Operator">_⁻¹</a> <a id="3210" href="Algebra.Consequences.Setoid.html#3110" class="Bound Operator">_•_</a> <a id="3214" class="Symbol"></a> <a id="3216" href="Algebra.Definitions.html#1792" class="Function">RightInverse</a> <a id="3229" href="Algebra.Consequences.Setoid.html#3138" class="Bound">e</a> <a id="3231" href="Algebra.Consequences.Setoid.html#3124" class="Bound Operator">_⁻¹</a> <a id="3235" href="Algebra.Consequences.Setoid.html#3110" class="Bound Operator">_•_</a>
<a id="3241" href="Algebra.Consequences.Setoid.html#3175" class="Function">comm+invˡ⇒invʳ</a> <a id="3256" href="Algebra.Consequences.Setoid.html#3256" class="Bound">invˡ</a> <a id="3261" href="Algebra.Consequences.Setoid.html#3261" class="Bound">x</a> <a id="3263" class="Symbol">=</a> <a id="3265" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="3275" href="Algebra.Consequences.Setoid.html#3261" class="Bound">x</a> <a id="3277" href="Algebra.Consequences.Setoid.html#3110" class="Bound Operator"></a> <a id="3279" class="Symbol">(</a><a id="3280" href="Algebra.Consequences.Setoid.html#3261" class="Bound">x</a> <a id="3282" href="Algebra.Consequences.Setoid.html#3124" class="Bound Operator">⁻¹</a><a id="3284" class="Symbol">)</a> <a id="3286" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="3289" href="Algebra.Consequences.Setoid.html#3142" class="Bound">comm</a> <a id="3294" href="Algebra.Consequences.Setoid.html#3261" class="Bound">x</a> <a id="3296" class="Symbol">(</a><a id="3297" href="Algebra.Consequences.Setoid.html#3261" class="Bound">x</a> <a id="3299" href="Algebra.Consequences.Setoid.html#3124" class="Bound Operator">⁻¹</a><a id="3301" class="Symbol">)</a> <a id="3303" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="3309" class="Symbol">(</a><a id="3310" href="Algebra.Consequences.Setoid.html#3261" class="Bound">x</a> <a id="3312" href="Algebra.Consequences.Setoid.html#3124" class="Bound Operator">⁻¹</a><a id="3314" class="Symbol">)</a> <a id="3316" href="Algebra.Consequences.Setoid.html#3110" class="Bound Operator"></a> <a id="3318" href="Algebra.Consequences.Setoid.html#3261" class="Bound">x</a> <a id="3320" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="3323" href="Algebra.Consequences.Setoid.html#3256" class="Bound">invˡ</a> <a id="3328" href="Algebra.Consequences.Setoid.html#3261" class="Bound">x</a> <a id="3330" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="3336" href="Algebra.Consequences.Setoid.html#3138" class="Bound">e</a> <a id="3347" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="3352" href="Algebra.Consequences.Setoid.html#3352" class="Function">comm+invʳ⇒invˡ</a> <a id="3367" class="Symbol">:</a> <a id="3369" href="Algebra.Definitions.html#1792" class="Function">RightInverse</a> <a id="3382" href="Algebra.Consequences.Setoid.html#3138" class="Bound">e</a> <a id="3384" href="Algebra.Consequences.Setoid.html#3124" class="Bound Operator">_⁻¹</a> <a id="3388" href="Algebra.Consequences.Setoid.html#3110" class="Bound Operator">_•_</a> <a id="3392" class="Symbol"></a> <a id="3394" href="Algebra.Definitions.html#1704" class="Function">LeftInverse</a> <a id="3406" href="Algebra.Consequences.Setoid.html#3138" class="Bound">e</a> <a id="3408" href="Algebra.Consequences.Setoid.html#3124" class="Bound Operator">_⁻¹</a> <a id="3412" href="Algebra.Consequences.Setoid.html#3110" class="Bound Operator">_•_</a>
<a id="3418" href="Algebra.Consequences.Setoid.html#3352" class="Function">comm+invʳ⇒invˡ</a> <a id="3433" href="Algebra.Consequences.Setoid.html#3433" class="Bound">invʳ</a> <a id="3438" href="Algebra.Consequences.Setoid.html#3438" class="Bound">x</a> <a id="3440" class="Symbol">=</a> <a id="3442" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="3452" class="Symbol">(</a><a id="3453" href="Algebra.Consequences.Setoid.html#3438" class="Bound">x</a> <a id="3455" href="Algebra.Consequences.Setoid.html#3124" class="Bound Operator">⁻¹</a><a id="3457" class="Symbol">)</a> <a id="3459" href="Algebra.Consequences.Setoid.html#3110" class="Bound Operator"></a> <a id="3461" href="Algebra.Consequences.Setoid.html#3438" class="Bound">x</a> <a id="3463" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="3466" href="Algebra.Consequences.Setoid.html#3142" class="Bound">comm</a> <a id="3471" class="Symbol">(</a><a id="3472" href="Algebra.Consequences.Setoid.html#3438" class="Bound">x</a> <a id="3474" href="Algebra.Consequences.Setoid.html#3124" class="Bound Operator">⁻¹</a><a id="3476" class="Symbol">)</a> <a id="3478" href="Algebra.Consequences.Setoid.html#3438" class="Bound">x</a> <a id="3480" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="3486" href="Algebra.Consequences.Setoid.html#3438" class="Bound">x</a> <a id="3488" href="Algebra.Consequences.Setoid.html#3110" class="Bound Operator"></a> <a id="3490" class="Symbol">(</a><a id="3491" href="Algebra.Consequences.Setoid.html#3438" class="Bound">x</a> <a id="3493" href="Algebra.Consequences.Setoid.html#3124" class="Bound Operator">⁻¹</a><a id="3495" class="Symbol">)</a> <a id="3497" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="3500" href="Algebra.Consequences.Setoid.html#3433" class="Bound">invʳ</a> <a id="3505" href="Algebra.Consequences.Setoid.html#3438" class="Bound">x</a> <a id="3507" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="3513" href="Algebra.Consequences.Setoid.html#3138" class="Bound">e</a> <a id="3524" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="3527" class="Keyword">module</a> <a id="3534" href="Algebra.Consequences.Setoid.html#3534" class="Module">_</a> <a id="3536" class="Symbol">{</a><a id="3537" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator">_•_</a> <a id="3541" class="Symbol">:</a> <a id="3543" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="3547" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a><a id="3548" class="Symbol">}</a> <a id="3550" class="Symbol">{</a><a id="3551" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">_⁻¹</a> <a id="3555" class="Symbol">:</a> <a id="3557" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="3561" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a><a id="3562" class="Symbol">}</a> <a id="3564" class="Symbol">{</a><a id="3565" href="Algebra.Consequences.Setoid.html#3565" class="Bound">e</a><a id="3566" class="Symbol">}</a> <a id="3568" class="Symbol">(</a><a id="3569" href="Algebra.Consequences.Setoid.html#3569" class="Bound">cong</a> <a id="3574" class="Symbol">:</a> <a id="3576" href="Algebra.Definitions.html#862" class="Function">Congruent₂</a> <a id="3587" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator">_•_</a><a id="3590" class="Symbol">)</a> <a id="3592" class="Keyword">where</a>
<a id="3601" href="Algebra.Consequences.Setoid.html#3601" class="Function">assoc+id+invʳ⇒invˡ-unique</a> <a id="3627" class="Symbol">:</a> <a id="3629" href="Algebra.Definitions.html#1108" class="Function">Associative</a> <a id="3641" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator">_•_</a> <a id="3645" class="Symbol"></a>
<a id="3677" href="Algebra.Definitions.html#1416" class="Function">Identity</a> <a id="3686" href="Algebra.Consequences.Setoid.html#3565" class="Bound">e</a> <a id="3688" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator">_•_</a> <a id="3692" class="Symbol"></a> <a id="3694" href="Algebra.Definitions.html#1792" class="Function">RightInverse</a> <a id="3707" href="Algebra.Consequences.Setoid.html#3565" class="Bound">e</a> <a id="3709" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">_⁻¹</a> <a id="3713" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator">_•_</a> <a id="3717" class="Symbol"></a>
<a id="3749" class="Symbol"></a> <a id="3751" href="Algebra.Consequences.Setoid.html#3751" class="Bound">x</a> <a id="3753" href="Algebra.Consequences.Setoid.html#3753" class="Bound">y</a> <a id="3755" class="Symbol"></a> <a id="3757" class="Symbol">(</a><a id="3758" href="Algebra.Consequences.Setoid.html#3751" class="Bound">x</a> <a id="3760" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="3762" href="Algebra.Consequences.Setoid.html#3753" class="Bound">y</a><a id="3763" class="Symbol">)</a> <a id="3765" href="Relation.Binary.Bundles.html#1098" class="Field Operator"></a> <a id="3767" href="Algebra.Consequences.Setoid.html#3565" class="Bound">e</a> <a id="3769" class="Symbol"></a> <a id="3771" href="Algebra.Consequences.Setoid.html#3751" class="Bound">x</a> <a id="3773" href="Relation.Binary.Bundles.html#1098" class="Field Operator"></a> <a id="3775" class="Symbol">(</a><a id="3776" href="Algebra.Consequences.Setoid.html#3753" class="Bound">y</a> <a id="3778" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a><a id="3780" class="Symbol">)</a>
<a id="3784" href="Algebra.Consequences.Setoid.html#3601" class="Function">assoc+id+invʳ⇒invˡ-unique</a> <a id="3810" href="Algebra.Consequences.Setoid.html#3810" class="Bound">assoc</a> <a id="3816" class="Symbol">(</a><a id="3817" href="Algebra.Consequences.Setoid.html#3817" class="Bound">idˡ</a> <a id="3821" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="3823" href="Algebra.Consequences.Setoid.html#3823" class="Bound">idʳ</a><a id="3826" class="Symbol">)</a> <a id="3828" href="Algebra.Consequences.Setoid.html#3828" class="Bound">invʳ</a> <a id="3833" href="Algebra.Consequences.Setoid.html#3833" class="Bound">x</a> <a id="3835" href="Algebra.Consequences.Setoid.html#3835" class="Bound">y</a> <a id="3837" href="Algebra.Consequences.Setoid.html#3837" class="Bound">eq</a> <a id="3840" class="Symbol">=</a> <a id="3842" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="3852" href="Algebra.Consequences.Setoid.html#3833" class="Bound">x</a> <a id="3869" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="3872" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="3876" class="Symbol">(</a><a id="3877" href="Algebra.Consequences.Setoid.html#3823" class="Bound">idʳ</a> <a id="3881" href="Algebra.Consequences.Setoid.html#3833" class="Bound">x</a><a id="3882" class="Symbol">)</a> <a id="3884" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="3890" href="Algebra.Consequences.Setoid.html#3833" class="Bound">x</a> <a id="3892" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="3894" href="Algebra.Consequences.Setoid.html#3565" class="Bound">e</a> <a id="3907" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="3910" href="Algebra.Consequences.Setoid.html#3569" class="Bound">cong</a> <a id="3915" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="3920" class="Symbol">(</a><a id="3921" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="3925" class="Symbol">(</a><a id="3926" href="Algebra.Consequences.Setoid.html#3828" class="Bound">invʳ</a> <a id="3931" href="Algebra.Consequences.Setoid.html#3835" class="Bound">y</a><a id="3932" class="Symbol">))</a> <a id="3935" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="3941" href="Algebra.Consequences.Setoid.html#3833" class="Bound">x</a> <a id="3943" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="3945" class="Symbol">(</a><a id="3946" href="Algebra.Consequences.Setoid.html#3835" class="Bound">y</a> <a id="3948" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="3950" class="Symbol">(</a><a id="3951" href="Algebra.Consequences.Setoid.html#3835" class="Bound">y</a> <a id="3953" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a><a id="3955" class="Symbol">))</a> <a id="3958" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="3961" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="3965" class="Symbol">(</a><a id="3966" href="Algebra.Consequences.Setoid.html#3810" class="Bound">assoc</a> <a id="3972" href="Algebra.Consequences.Setoid.html#3833" class="Bound">x</a> <a id="3974" href="Algebra.Consequences.Setoid.html#3835" class="Bound">y</a> <a id="3976" class="Symbol">(</a><a id="3977" href="Algebra.Consequences.Setoid.html#3835" class="Bound">y</a> <a id="3979" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a><a id="3981" class="Symbol">))</a> <a id="3984" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="3990" class="Symbol">(</a><a id="3991" href="Algebra.Consequences.Setoid.html#3833" class="Bound">x</a> <a id="3993" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="3995" href="Algebra.Consequences.Setoid.html#3835" class="Bound">y</a><a id="3996" class="Symbol">)</a> <a id="3998" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="4000" class="Symbol">(</a><a id="4001" href="Algebra.Consequences.Setoid.html#3835" class="Bound">y</a> <a id="4003" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a><a id="4005" class="Symbol">)</a> <a id="4007" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="4010" href="Algebra.Consequences.Setoid.html#3569" class="Bound">cong</a> <a id="4015" href="Algebra.Consequences.Setoid.html#3837" class="Bound">eq</a> <a id="4018" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="4023" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="4029" href="Algebra.Consequences.Setoid.html#3565" class="Bound">e</a> <a id="4031" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="4033" class="Symbol">(</a><a id="4034" href="Algebra.Consequences.Setoid.html#3835" class="Bound">y</a> <a id="4036" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a><a id="4038" class="Symbol">)</a> <a id="4046" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="4049" href="Algebra.Consequences.Setoid.html#3817" class="Bound">idˡ</a> <a id="4053" class="Symbol">(</a><a id="4054" href="Algebra.Consequences.Setoid.html#3835" class="Bound">y</a> <a id="4056" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a><a id="4058" class="Symbol">)</a> <a id="4060" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="4066" href="Algebra.Consequences.Setoid.html#3835" class="Bound">y</a> <a id="4068" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a> <a id="4083" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="4088" href="Algebra.Consequences.Setoid.html#4088" class="Function">assoc+id+invˡ⇒invʳ-unique</a> <a id="4114" class="Symbol">:</a> <a id="4116" href="Algebra.Definitions.html#1108" class="Function">Associative</a> <a id="4128" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator">_•_</a> <a id="4132" class="Symbol"></a>
<a id="4164" href="Algebra.Definitions.html#1416" class="Function">Identity</a> <a id="4173" href="Algebra.Consequences.Setoid.html#3565" class="Bound">e</a> <a id="4175" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator">_•_</a> <a id="4179" class="Symbol"></a> <a id="4181" href="Algebra.Definitions.html#1704" class="Function">LeftInverse</a> <a id="4193" href="Algebra.Consequences.Setoid.html#3565" class="Bound">e</a> <a id="4195" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">_⁻¹</a> <a id="4199" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator">_•_</a> <a id="4203" class="Symbol"></a>
<a id="4235" class="Symbol"></a> <a id="4237" href="Algebra.Consequences.Setoid.html#4237" class="Bound">x</a> <a id="4239" href="Algebra.Consequences.Setoid.html#4239" class="Bound">y</a> <a id="4241" class="Symbol"></a> <a id="4243" class="Symbol">(</a><a id="4244" href="Algebra.Consequences.Setoid.html#4237" class="Bound">x</a> <a id="4246" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="4248" href="Algebra.Consequences.Setoid.html#4239" class="Bound">y</a><a id="4249" class="Symbol">)</a> <a id="4251" href="Relation.Binary.Bundles.html#1098" class="Field Operator"></a> <a id="4253" href="Algebra.Consequences.Setoid.html#3565" class="Bound">e</a> <a id="4255" class="Symbol"></a> <a id="4257" href="Algebra.Consequences.Setoid.html#4239" class="Bound">y</a> <a id="4259" href="Relation.Binary.Bundles.html#1098" class="Field Operator"></a> <a id="4261" class="Symbol">(</a><a id="4262" href="Algebra.Consequences.Setoid.html#4237" class="Bound">x</a> <a id="4264" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a><a id="4266" class="Symbol">)</a>
<a id="4270" href="Algebra.Consequences.Setoid.html#4088" class="Function">assoc+id+invˡ⇒invʳ-unique</a> <a id="4296" href="Algebra.Consequences.Setoid.html#4296" class="Bound">assoc</a> <a id="4302" class="Symbol">(</a><a id="4303" href="Algebra.Consequences.Setoid.html#4303" class="Bound">idˡ</a> <a id="4307" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="4309" href="Algebra.Consequences.Setoid.html#4309" class="Bound">idʳ</a><a id="4312" class="Symbol">)</a> <a id="4314" href="Algebra.Consequences.Setoid.html#4314" class="Bound">invˡ</a> <a id="4319" href="Algebra.Consequences.Setoid.html#4319" class="Bound">x</a> <a id="4321" href="Algebra.Consequences.Setoid.html#4321" class="Bound">y</a> <a id="4323" href="Algebra.Consequences.Setoid.html#4323" class="Bound">eq</a> <a id="4326" class="Symbol">=</a> <a id="4328" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="4338" href="Algebra.Consequences.Setoid.html#4321" class="Bound">y</a> <a id="4355" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="4358" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="4362" class="Symbol">(</a><a id="4363" href="Algebra.Consequences.Setoid.html#4303" class="Bound">idˡ</a> <a id="4367" href="Algebra.Consequences.Setoid.html#4321" class="Bound">y</a><a id="4368" class="Symbol">)</a> <a id="4370" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="4376" href="Algebra.Consequences.Setoid.html#3565" class="Bound">e</a> <a id="4378" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="4380" href="Algebra.Consequences.Setoid.html#4321" class="Bound">y</a> <a id="4393" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="4396" href="Algebra.Consequences.Setoid.html#3569" class="Bound">cong</a> <a id="4401" class="Symbol">(</a><a id="4402" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="4406" class="Symbol">(</a><a id="4407" href="Algebra.Consequences.Setoid.html#4314" class="Bound">invˡ</a> <a id="4412" href="Algebra.Consequences.Setoid.html#4319" class="Bound">x</a><a id="4413" class="Symbol">))</a> <a id="4416" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="4421" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="4427" class="Symbol">((</a><a id="4429" href="Algebra.Consequences.Setoid.html#4319" class="Bound">x</a> <a id="4431" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a><a id="4433" class="Symbol">)</a> <a id="4435" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="4437" href="Algebra.Consequences.Setoid.html#4319" class="Bound">x</a><a id="4438" class="Symbol">)</a> <a id="4440" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="4442" href="Algebra.Consequences.Setoid.html#4321" class="Bound">y</a> <a id="4444" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="4447" href="Algebra.Consequences.Setoid.html#4296" class="Bound">assoc</a> <a id="4453" class="Symbol">(</a><a id="4454" href="Algebra.Consequences.Setoid.html#4319" class="Bound">x</a> <a id="4456" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a><a id="4458" class="Symbol">)</a> <a id="4460" href="Algebra.Consequences.Setoid.html#4319" class="Bound">x</a> <a id="4462" href="Algebra.Consequences.Setoid.html#4321" class="Bound">y</a> <a id="4464" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="4470" class="Symbol">(</a><a id="4471" href="Algebra.Consequences.Setoid.html#4319" class="Bound">x</a> <a id="4473" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a><a id="4475" class="Symbol">)</a> <a id="4477" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="4479" class="Symbol">(</a><a id="4480" href="Algebra.Consequences.Setoid.html#4319" class="Bound">x</a> <a id="4482" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="4484" href="Algebra.Consequences.Setoid.html#4321" class="Bound">y</a><a id="4485" class="Symbol">)</a> <a id="4487" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="4490" href="Algebra.Consequences.Setoid.html#3569" class="Bound">cong</a> <a id="4495" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="4500" href="Algebra.Consequences.Setoid.html#4323" class="Bound">eq</a> <a id="4503" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="4509" class="Symbol">(</a><a id="4510" href="Algebra.Consequences.Setoid.html#4319" class="Bound">x</a> <a id="4512" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a><a id="4514" class="Symbol">)</a> <a id="4516" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="4518" href="Algebra.Consequences.Setoid.html#3565" class="Bound">e</a> <a id="4526" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="4529" href="Algebra.Consequences.Setoid.html#4309" class="Bound">idʳ</a> <a id="4533" class="Symbol">(</a><a id="4534" href="Algebra.Consequences.Setoid.html#4319" class="Bound">x</a> <a id="4536" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a><a id="4538" class="Symbol">)</a> <a id="4540" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="4546" href="Algebra.Consequences.Setoid.html#4319" class="Bound">x</a> <a id="4548" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a> <a id="4563" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="4566" class="Comment">----------------------------------------------------------------------</a>
<a id="4637" class="Comment">-- Bisemigroup-like structures</a>
<a id="4669" class="Keyword">module</a> <a id="4676" href="Algebra.Consequences.Setoid.html#4676" class="Module">_</a> <a id="4678" class="Symbol">{</a><a id="4679" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator">_•_</a> <a id="4683" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator">_◦_</a> <a id="4687" class="Symbol">:</a> <a id="4689" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="4693" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a><a id="4694" class="Symbol">}</a>
<a id="4705" class="Symbol">(</a><a id="4706" href="Algebra.Consequences.Setoid.html#4706" class="Bound">◦-cong</a> <a id="4713" class="Symbol">:</a> <a id="4715" href="Algebra.Definitions.html#862" class="Function">Congruent₂</a> <a id="4726" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator">_◦_</a><a id="4729" class="Symbol">)</a>
<a id="4740" class="Symbol">(</a><a id="4741" href="Algebra.Consequences.Setoid.html#4741" class="Bound">•-comm</a> <a id="4748" class="Symbol">:</a> <a id="4750" href="Algebra.Definitions.html#1195" class="Function">Commutative</a> <a id="4762" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator">_•_</a><a id="4765" class="Symbol">)</a>
<a id="4776" class="Keyword">where</a>
<a id="4785" href="Algebra.Consequences.Setoid.html#4785" class="Function">comm+distrˡ⇒distrʳ</a> <a id="4804" class="Symbol">:</a> <a id="4807" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator">_•_</a> <a id="4811" href="Algebra.Definitions.html#2227" class="Function Operator">DistributesOverˡ</a> <a id="4828" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator">_◦_</a> <a id="4832" class="Symbol"></a> <a id="4834" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator">_•_</a> <a id="4838" href="Algebra.Definitions.html#2346" class="Function Operator">DistributesOverʳ</a> <a id="4855" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator">_◦_</a>
<a id="4861" href="Algebra.Consequences.Setoid.html#4785" class="Function">comm+distrˡ⇒distrʳ</a> <a id="4880" href="Algebra.Consequences.Setoid.html#4880" class="Bound">distrˡ</a> <a id="4887" href="Algebra.Consequences.Setoid.html#4887" class="Bound">x</a> <a id="4889" href="Algebra.Consequences.Setoid.html#4889" class="Bound">y</a> <a id="4891" href="Algebra.Consequences.Setoid.html#4891" class="Bound">z</a> <a id="4893" class="Symbol">=</a> <a id="4895" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="4905" class="Symbol">(</a><a id="4906" href="Algebra.Consequences.Setoid.html#4889" class="Bound">y</a> <a id="4908" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="4910" href="Algebra.Consequences.Setoid.html#4891" class="Bound">z</a><a id="4911" class="Symbol">)</a> <a id="4913" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="4915" href="Algebra.Consequences.Setoid.html#4887" class="Bound">x</a> <a id="4923" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="4926" href="Algebra.Consequences.Setoid.html#4741" class="Bound">•-comm</a> <a id="4933" class="Symbol">(</a><a id="4934" href="Algebra.Consequences.Setoid.html#4889" class="Bound">y</a> <a id="4936" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="4938" href="Algebra.Consequences.Setoid.html#4891" class="Bound">z</a><a id="4939" class="Symbol">)</a> <a id="4941" href="Algebra.Consequences.Setoid.html#4887" class="Bound">x</a> <a id="4943" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="4949" href="Algebra.Consequences.Setoid.html#4887" class="Bound">x</a> <a id="4951" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="4953" class="Symbol">(</a><a id="4954" href="Algebra.Consequences.Setoid.html#4889" class="Bound">y</a> <a id="4956" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="4958" href="Algebra.Consequences.Setoid.html#4891" class="Bound">z</a><a id="4959" class="Symbol">)</a> <a id="4967" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="4970" href="Algebra.Consequences.Setoid.html#4880" class="Bound">distrˡ</a> <a id="4977" href="Algebra.Consequences.Setoid.html#4887" class="Bound">x</a> <a id="4979" href="Algebra.Consequences.Setoid.html#4889" class="Bound">y</a> <a id="4981" href="Algebra.Consequences.Setoid.html#4891" class="Bound">z</a> <a id="4983" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="4989" class="Symbol">(</a><a id="4990" href="Algebra.Consequences.Setoid.html#4887" class="Bound">x</a> <a id="4992" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="4994" href="Algebra.Consequences.Setoid.html#4889" class="Bound">y</a><a id="4995" class="Symbol">)</a> <a id="4997" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="4999" class="Symbol">(</a><a id="5000" href="Algebra.Consequences.Setoid.html#4887" class="Bound">x</a> <a id="5002" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5004" href="Algebra.Consequences.Setoid.html#4891" class="Bound">z</a><a id="5005" class="Symbol">)</a> <a id="5007" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="5010" href="Algebra.Consequences.Setoid.html#4706" class="Bound">◦-cong</a> <a id="5017" class="Symbol">(</a><a id="5018" href="Algebra.Consequences.Setoid.html#4741" class="Bound">•-comm</a> <a id="5025" href="Algebra.Consequences.Setoid.html#4887" class="Bound">x</a> <a id="5027" href="Algebra.Consequences.Setoid.html#4889" class="Bound">y</a><a id="5028" class="Symbol">)</a> <a id="5030" class="Symbol">(</a><a id="5031" href="Algebra.Consequences.Setoid.html#4741" class="Bound">•-comm</a> <a id="5038" href="Algebra.Consequences.Setoid.html#4887" class="Bound">x</a> <a id="5040" href="Algebra.Consequences.Setoid.html#4891" class="Bound">z</a><a id="5041" class="Symbol">)</a> <a id="5043" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="5049" class="Symbol">(</a><a id="5050" href="Algebra.Consequences.Setoid.html#4889" class="Bound">y</a> <a id="5052" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5054" href="Algebra.Consequences.Setoid.html#4887" class="Bound">x</a><a id="5055" class="Symbol">)</a> <a id="5057" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5059" class="Symbol">(</a><a id="5060" href="Algebra.Consequences.Setoid.html#4891" class="Bound">z</a> <a id="5062" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5064" href="Algebra.Consequences.Setoid.html#4887" class="Bound">x</a><a id="5065" class="Symbol">)</a> <a id="5067" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="5072" href="Algebra.Consequences.Setoid.html#5072" class="Function">comm+distrʳ⇒distrˡ</a> <a id="5091" class="Symbol">:</a> <a id="5093" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator">_•_</a> <a id="5097" href="Algebra.Definitions.html#2346" class="Function Operator">DistributesOverʳ</a> <a id="5114" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator">_◦_</a> <a id="5118" class="Symbol"></a> <a id="5120" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator">_•_</a> <a id="5124" href="Algebra.Definitions.html#2227" class="Function Operator">DistributesOverˡ</a> <a id="5141" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator">_◦_</a>
<a id="5147" href="Algebra.Consequences.Setoid.html#5072" class="Function">comm+distrʳ⇒distrˡ</a> <a id="5166" href="Algebra.Consequences.Setoid.html#5166" class="Bound">distrˡ</a> <a id="5173" href="Algebra.Consequences.Setoid.html#5173" class="Bound">x</a> <a id="5175" href="Algebra.Consequences.Setoid.html#5175" class="Bound">y</a> <a id="5177" href="Algebra.Consequences.Setoid.html#5177" class="Bound">z</a> <a id="5179" class="Symbol">=</a> <a id="5181" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="5191" href="Algebra.Consequences.Setoid.html#5173" class="Bound">x</a> <a id="5193" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5195" class="Symbol">(</a><a id="5196" href="Algebra.Consequences.Setoid.html#5175" class="Bound">y</a> <a id="5198" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5200" href="Algebra.Consequences.Setoid.html#5177" class="Bound">z</a><a id="5201" class="Symbol">)</a> <a id="5209" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="5212" href="Algebra.Consequences.Setoid.html#4741" class="Bound">•-comm</a> <a id="5219" href="Algebra.Consequences.Setoid.html#5173" class="Bound">x</a> <a id="5221" class="Symbol">(</a><a id="5222" href="Algebra.Consequences.Setoid.html#5175" class="Bound">y</a> <a id="5224" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5226" href="Algebra.Consequences.Setoid.html#5177" class="Bound">z</a><a id="5227" class="Symbol">)</a> <a id="5229" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="5235" class="Symbol">(</a><a id="5236" href="Algebra.Consequences.Setoid.html#5175" class="Bound">y</a> <a id="5238" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5240" href="Algebra.Consequences.Setoid.html#5177" class="Bound">z</a><a id="5241" class="Symbol">)</a> <a id="5243" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5245" href="Algebra.Consequences.Setoid.html#5173" class="Bound">x</a> <a id="5253" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="5256" href="Algebra.Consequences.Setoid.html#5166" class="Bound">distrˡ</a> <a id="5263" href="Algebra.Consequences.Setoid.html#5173" class="Bound">x</a> <a id="5265" href="Algebra.Consequences.Setoid.html#5175" class="Bound">y</a> <a id="5267" href="Algebra.Consequences.Setoid.html#5177" class="Bound">z</a> <a id="5269" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="5275" class="Symbol">(</a><a id="5276" href="Algebra.Consequences.Setoid.html#5175" class="Bound">y</a> <a id="5278" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5280" href="Algebra.Consequences.Setoid.html#5173" class="Bound">x</a><a id="5281" class="Symbol">)</a> <a id="5283" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5285" class="Symbol">(</a><a id="5286" href="Algebra.Consequences.Setoid.html#5177" class="Bound">z</a> <a id="5288" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5290" href="Algebra.Consequences.Setoid.html#5173" class="Bound">x</a><a id="5291" class="Symbol">)</a> <a id="5293" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="5296" href="Algebra.Consequences.Setoid.html#4706" class="Bound">◦-cong</a> <a id="5303" class="Symbol">(</a><a id="5304" href="Algebra.Consequences.Setoid.html#4741" class="Bound">•-comm</a> <a id="5311" href="Algebra.Consequences.Setoid.html#5175" class="Bound">y</a> <a id="5313" href="Algebra.Consequences.Setoid.html#5173" class="Bound">x</a><a id="5314" class="Symbol">)</a> <a id="5316" class="Symbol">(</a><a id="5317" href="Algebra.Consequences.Setoid.html#4741" class="Bound">•-comm</a> <a id="5324" href="Algebra.Consequences.Setoid.html#5177" class="Bound">z</a> <a id="5326" href="Algebra.Consequences.Setoid.html#5173" class="Bound">x</a><a id="5327" class="Symbol">)</a> <a id="5329" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="5335" class="Symbol">(</a><a id="5336" href="Algebra.Consequences.Setoid.html#5173" class="Bound">x</a> <a id="5338" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5340" href="Algebra.Consequences.Setoid.html#5175" class="Bound">y</a><a id="5341" class="Symbol">)</a> <a id="5343" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5345" class="Symbol">(</a><a id="5346" href="Algebra.Consequences.Setoid.html#5173" class="Bound">x</a> <a id="5348" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5350" href="Algebra.Consequences.Setoid.html#5177" class="Bound">z</a><a id="5351" class="Symbol">)</a> <a id="5353" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="5358" href="Algebra.Consequences.Setoid.html#5358" class="Function">comm⇒sym[distribˡ]</a> <a id="5377" class="Symbol">:</a> <a id="5379" class="Symbol"></a> <a id="5381" href="Algebra.Consequences.Setoid.html#5381" class="Bound">x</a> <a id="5383" class="Symbol"></a> <a id="5385" href="Relation.Binary.Definitions.html#1498" class="Function">Symmetric</a> <a id="5395" class="Symbol"></a> <a id="5398" href="Algebra.Consequences.Setoid.html#5398" class="Bound">y</a> <a id="5400" href="Algebra.Consequences.Setoid.html#5400" class="Bound">z</a> <a id="5402" class="Symbol"></a> <a id="5404" class="Symbol">(</a><a id="5405" href="Algebra.Consequences.Setoid.html#5381" class="Bound">x</a> <a id="5407" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5409" class="Symbol">(</a><a id="5410" href="Algebra.Consequences.Setoid.html#5398" class="Bound">y</a> <a id="5412" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5414" href="Algebra.Consequences.Setoid.html#5400" class="Bound">z</a><a id="5415" class="Symbol">))</a> <a id="5418" href="Relation.Binary.Bundles.html#1098" class="Field Operator"></a> <a id="5420" class="Symbol">((</a><a id="5422" href="Algebra.Consequences.Setoid.html#5381" class="Bound">x</a> <a id="5424" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5426" href="Algebra.Consequences.Setoid.html#5398" class="Bound">y</a><a id="5427" class="Symbol">)</a> <a id="5429" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5431" class="Symbol">(</a><a id="5432" href="Algebra.Consequences.Setoid.html#5381" class="Bound">x</a> <a id="5434" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5436" href="Algebra.Consequences.Setoid.html#5400" class="Bound">z</a><a id="5437" class="Symbol">)))</a>
<a id="5443" href="Algebra.Consequences.Setoid.html#5358" class="Function">comm⇒sym[distribˡ]</a> <a id="5462" href="Algebra.Consequences.Setoid.html#5462" class="Bound">x</a> <a id="5464" class="Symbol">{</a><a id="5465" href="Algebra.Consequences.Setoid.html#5465" class="Bound">y</a><a id="5466" class="Symbol">}</a> <a id="5468" class="Symbol">{</a><a id="5469" href="Algebra.Consequences.Setoid.html#5469" class="Bound">z</a><a id="5470" class="Symbol">}</a> <a id="5472" href="Algebra.Consequences.Setoid.html#5472" class="Bound">prf</a> <a id="5476" class="Symbol">=</a> <a id="5478" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="5488" href="Algebra.Consequences.Setoid.html#5462" class="Bound">x</a> <a id="5490" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5492" class="Symbol">(</a><a id="5493" href="Algebra.Consequences.Setoid.html#5469" class="Bound">z</a> <a id="5495" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5497" href="Algebra.Consequences.Setoid.html#5465" class="Bound">y</a><a id="5498" class="Symbol">)</a> <a id="5506" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="5509" href="Algebra.Consequences.Setoid.html#4706" class="Bound">◦-cong</a> <a id="5516" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="5521" class="Symbol">(</a><a id="5522" href="Algebra.Consequences.Setoid.html#4741" class="Bound">•-comm</a> <a id="5529" href="Algebra.Consequences.Setoid.html#5469" class="Bound">z</a> <a id="5531" href="Algebra.Consequences.Setoid.html#5465" class="Bound">y</a><a id="5532" class="Symbol">)</a> <a id="5534" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="5540" href="Algebra.Consequences.Setoid.html#5462" class="Bound">x</a> <a id="5542" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5544" class="Symbol">(</a><a id="5545" href="Algebra.Consequences.Setoid.html#5465" class="Bound">y</a> <a id="5547" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5549" href="Algebra.Consequences.Setoid.html#5469" class="Bound">z</a><a id="5550" class="Symbol">)</a> <a id="5558" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="5561" href="Algebra.Consequences.Setoid.html#5472" class="Bound">prf</a> <a id="5565" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="5571" class="Symbol">(</a><a id="5572" href="Algebra.Consequences.Setoid.html#5462" class="Bound">x</a> <a id="5574" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5576" href="Algebra.Consequences.Setoid.html#5465" class="Bound">y</a><a id="5577" class="Symbol">)</a> <a id="5579" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5581" class="Symbol">(</a><a id="5582" href="Algebra.Consequences.Setoid.html#5462" class="Bound">x</a> <a id="5584" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5586" href="Algebra.Consequences.Setoid.html#5469" class="Bound">z</a><a id="5587" class="Symbol">)</a> <a id="5589" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="5592" href="Algebra.Consequences.Setoid.html#4741" class="Bound">•-comm</a> <a id="5599" class="Symbol">(</a><a id="5600" href="Algebra.Consequences.Setoid.html#5462" class="Bound">x</a> <a id="5602" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5604" href="Algebra.Consequences.Setoid.html#5465" class="Bound">y</a><a id="5605" class="Symbol">)</a> <a id="5607" class="Symbol">(</a><a id="5608" href="Algebra.Consequences.Setoid.html#5462" class="Bound">x</a> <a id="5610" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5612" href="Algebra.Consequences.Setoid.html#5469" class="Bound">z</a><a id="5613" class="Symbol">)</a> <a id="5615" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="5621" class="Symbol">(</a><a id="5622" href="Algebra.Consequences.Setoid.html#5462" class="Bound">x</a> <a id="5624" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5626" href="Algebra.Consequences.Setoid.html#5469" class="Bound">z</a><a id="5627" class="Symbol">)</a> <a id="5629" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5631" class="Symbol">(</a><a id="5632" href="Algebra.Consequences.Setoid.html#5462" class="Bound">x</a> <a id="5634" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5636" href="Algebra.Consequences.Setoid.html#5465" class="Bound">y</a><a id="5637" class="Symbol">)</a> <a id="5639" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="5642" class="Comment">----------------------------------------------------------------------</a>
<a id="5713" class="Comment">-- Ring-like structures</a>
<a id="5738" class="Keyword">module</a> <a id="5745" href="Algebra.Consequences.Setoid.html#5745" class="Module">_</a> <a id="5747" class="Symbol">{</a><a id="5748" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">_+_</a> <a id="5752" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">_*_</a> <a id="5756" class="Symbol">:</a> <a id="5758" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="5762" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a><a id="5763" class="Symbol">}</a>
<a id="5774" class="Symbol">{</a><a id="5775" href="Algebra.Consequences.Setoid.html#5775" class="Bound Operator">_⁻¹</a> <a id="5779" class="Symbol">:</a> <a id="5781" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="5785" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a><a id="5786" class="Symbol">}</a> <a id="5788" class="Symbol">{</a><a id="5789" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="5792" class="Symbol">:</a> <a id="5794" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a><a id="5795" class="Symbol">}</a>
<a id="5806" class="Symbol">(</a><a id="5807" href="Algebra.Consequences.Setoid.html#5807" class="Bound">+-cong</a> <a id="5814" class="Symbol">:</a> <a id="5816" href="Algebra.Definitions.html#862" class="Function">Congruent₂</a> <a id="5827" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">_+_</a><a id="5830" class="Symbol">)</a>
<a id="5841" class="Symbol">(</a><a id="5842" href="Algebra.Consequences.Setoid.html#5842" class="Bound">*-cong</a> <a id="5849" class="Symbol">:</a> <a id="5851" href="Algebra.Definitions.html#862" class="Function">Congruent₂</a> <a id="5862" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">_*_</a><a id="5865" class="Symbol">)</a>
<a id="5876" class="Keyword">where</a>
<a id="5885" href="Algebra.Consequences.Setoid.html#5885" class="Function">assoc+distribʳ+idʳ+invʳ⇒zeˡ</a> <a id="5913" class="Symbol">:</a> <a id="5915" href="Algebra.Definitions.html#1108" class="Function">Associative</a> <a id="5927" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">_+_</a> <a id="5931" class="Symbol"></a> <a id="5933" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">_*_</a> <a id="5937" href="Algebra.Definitions.html#2346" class="Function Operator">DistributesOverʳ</a> <a id="5954" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">_+_</a> <a id="5958" class="Symbol"></a>
<a id="5992" href="Algebra.Definitions.html#1341" class="Function">RightIdentity</a> <a id="6006" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6009" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">_+_</a> <a id="6013" class="Symbol"></a> <a id="6015" href="Algebra.Definitions.html#1792" class="Function">RightInverse</a> <a id="6028" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6031" href="Algebra.Consequences.Setoid.html#5775" class="Bound Operator">_⁻¹</a> <a id="6035" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">_+_</a> <a id="6039" class="Symbol"></a>
<a id="6073" href="Algebra.Definitions.html#1502" class="Function">LeftZero</a> <a id="6082" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6085" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">_*_</a>
<a id="6091" href="Algebra.Consequences.Setoid.html#5885" class="Function">assoc+distribʳ+idʳ+invʳ⇒zeˡ</a> <a id="6119" href="Algebra.Consequences.Setoid.html#6119" class="Bound">+-assoc</a> <a id="6127" href="Algebra.Consequences.Setoid.html#6127" class="Bound">distribʳ</a> <a id="6136" href="Algebra.Consequences.Setoid.html#6136" class="Bound">idʳ</a> <a id="6140" href="Algebra.Consequences.Setoid.html#6140" class="Bound">invʳ</a> <a id="6146" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a> <a id="6148" class="Symbol">=</a> <a id="6150" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="6160" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6163" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6165" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a> <a id="6199" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="6202" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="6206" class="Symbol">(</a><a id="6207" href="Algebra.Consequences.Setoid.html#6136" class="Bound">idʳ</a> <a id="6211" class="Symbol">_)</a> <a id="6214" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="6220" class="Symbol">(</a><a id="6221" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6224" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6226" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a><a id="6227" class="Symbol">)</a> <a id="6229" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="6231" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6259" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="6262" href="Algebra.Consequences.Setoid.html#5807" class="Bound">+-cong</a> <a id="6269" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="6274" class="Symbol">(</a><a id="6275" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="6279" class="Symbol">(</a><a id="6280" href="Algebra.Consequences.Setoid.html#6140" class="Bound">invʳ</a> <a id="6285" class="Symbol">_))</a> <a id="6289" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="6295" class="Symbol">(</a><a id="6296" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6299" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6301" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a><a id="6302" class="Symbol">)</a> <a id="6304" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="6306" class="Symbol">((</a><a id="6308" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6311" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6313" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a><a id="6314" class="Symbol">)</a> <a id="6317" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="6319" class="Symbol">((</a><a id="6321" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6324" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6326" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a><a id="6327" class="Symbol">)</a><a id="6328" href="Algebra.Consequences.Setoid.html#5775" class="Bound Operator">⁻¹</a><a id="6330" class="Symbol">))</a> <a id="6334" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="6337" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="6341" class="Symbol">(</a><a id="6342" href="Algebra.Consequences.Setoid.html#6119" class="Bound">+-assoc</a> <a id="6350" class="Symbol">_</a> <a id="6352" class="Symbol">_</a> <a id="6354" class="Symbol">_)</a> <a id="6357" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="6363" class="Symbol">((</a><a id="6365" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6368" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6370" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a><a id="6371" class="Symbol">)</a> <a id="6373" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="6376" class="Symbol">(</a><a id="6377" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6380" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6382" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a><a id="6383" class="Symbol">))</a> <a id="6386" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="6388" class="Symbol">((</a><a id="6390" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6393" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6395" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a><a id="6396" class="Symbol">)</a><a id="6397" href="Algebra.Consequences.Setoid.html#5775" class="Bound Operator">⁻¹</a><a id="6399" class="Symbol">)</a> <a id="6402" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="6405" href="Algebra.Consequences.Setoid.html#5807" class="Bound">+-cong</a> <a id="6412" class="Symbol">(</a><a id="6413" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="6417" class="Symbol">(</a><a id="6418" href="Algebra.Consequences.Setoid.html#6127" class="Bound">distribʳ</a> <a id="6427" class="Symbol">_</a> <a id="6429" class="Symbol">_</a> <a id="6431" class="Symbol">_))</a> <a id="6435" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="6440" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="6446" class="Symbol">((</a><a id="6448" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6451" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="6453" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a><a id="6455" class="Symbol">)</a> <a id="6457" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6459" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a><a id="6460" class="Symbol">)</a> <a id="6462" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="6464" class="Symbol">((</a><a id="6466" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6469" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6471" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a><a id="6472" class="Symbol">)</a><a id="6473" href="Algebra.Consequences.Setoid.html#5775" class="Bound Operator">⁻¹</a><a id="6475" class="Symbol">)</a> <a id="6485" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="6488" href="Algebra.Consequences.Setoid.html#5807" class="Bound">+-cong</a> <a id="6495" class="Symbol">(</a><a id="6496" href="Algebra.Consequences.Setoid.html#5842" class="Bound">*-cong</a> <a id="6503" class="Symbol">(</a><a id="6504" href="Algebra.Consequences.Setoid.html#6136" class="Bound">idʳ</a> <a id="6508" class="Symbol">_)</a> <a id="6511" href="Relation.Binary.Structures.html#1568" class="Function">refl</a><a id="6515" class="Symbol">)</a> <a id="6517" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="6522" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="6528" class="Symbol">(</a><a id="6529" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6532" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6534" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a><a id="6535" class="Symbol">)</a> <a id="6537" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="6539" class="Symbol">((</a><a id="6541" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6544" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6546" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a><a id="6547" class="Symbol">)</a><a id="6548" href="Algebra.Consequences.Setoid.html#5775" class="Bound Operator">⁻¹</a><a id="6550" class="Symbol">)</a> <a id="6567" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="6570" href="Algebra.Consequences.Setoid.html#6140" class="Bound">invʳ</a> <a id="6575" class="Symbol">_</a> <a id="6577" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="6583" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6622" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="6627" href="Algebra.Consequences.Setoid.html#6627" class="Function">assoc+distribˡ+idʳ+invʳ⇒zeʳ</a> <a id="6655" class="Symbol">:</a> <a id="6657" href="Algebra.Definitions.html#1108" class="Function">Associative</a> <a id="6669" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">_+_</a> <a id="6673" class="Symbol"></a> <a id="6675" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">_*_</a> <a id="6679" href="Algebra.Definitions.html#2227" class="Function Operator">DistributesOverˡ</a> <a id="6696" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">_+_</a> <a id="6700" class="Symbol"></a>
<a id="6734" href="Algebra.Definitions.html#1341" class="Function">RightIdentity</a> <a id="6748" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6751" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">_+_</a> <a id="6755" class="Symbol"></a> <a id="6757" href="Algebra.Definitions.html#1792" class="Function">RightInverse</a> <a id="6770" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6773" href="Algebra.Consequences.Setoid.html#5775" class="Bound Operator">_⁻¹</a> <a id="6777" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">_+_</a> <a id="6781" class="Symbol"></a>
<a id="6815" href="Algebra.Definitions.html#1567" class="Function">RightZero</a> <a id="6825" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6828" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">_*_</a>
<a id="6834" href="Algebra.Consequences.Setoid.html#6627" class="Function">assoc+distribˡ+idʳ+invʳ⇒zeʳ</a> <a id="6862" href="Algebra.Consequences.Setoid.html#6862" class="Bound">+-assoc</a> <a id="6870" href="Algebra.Consequences.Setoid.html#6870" class="Bound">distribˡ</a> <a id="6879" href="Algebra.Consequences.Setoid.html#6879" class="Bound">idʳ</a> <a id="6883" href="Algebra.Consequences.Setoid.html#6883" class="Bound">invʳ</a> <a id="6889" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="6891" class="Symbol">=</a> <a id="6893" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="6904" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="6906" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6908" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6942" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="6945" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="6949" class="Symbol">(</a><a id="6950" href="Algebra.Consequences.Setoid.html#6879" class="Bound">idʳ</a> <a id="6954" class="Symbol">_)</a> <a id="6957" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="6964" class="Symbol">(</a><a id="6965" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="6967" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6969" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a><a id="6971" class="Symbol">)</a> <a id="6973" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="6975" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="7002" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="7005" href="Algebra.Consequences.Setoid.html#5807" class="Bound">+-cong</a> <a id="7012" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="7017" class="Symbol">(</a><a id="7018" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="7022" class="Symbol">(</a><a id="7023" href="Algebra.Consequences.Setoid.html#6883" class="Bound">invʳ</a> <a id="7028" class="Symbol">_))</a> <a id="7032" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="7039" class="Symbol">(</a><a id="7040" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="7042" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="7044" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a><a id="7046" class="Symbol">)</a> <a id="7048" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="7050" class="Symbol">((</a><a id="7052" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="7054" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="7056" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a><a id="7058" class="Symbol">)</a> <a id="7060" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="7062" class="Symbol">((</a><a id="7064" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="7066" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="7068" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a><a id="7070" class="Symbol">)</a><a id="7071" href="Algebra.Consequences.Setoid.html#5775" class="Bound Operator">⁻¹</a><a id="7073" class="Symbol">))</a> <a id="7077" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="7080" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="7084" class="Symbol">(</a><a id="7085" href="Algebra.Consequences.Setoid.html#6862" class="Bound">+-assoc</a> <a id="7093" class="Symbol">_</a> <a id="7095" class="Symbol">_</a> <a id="7097" class="Symbol">_)</a> <a id="7100" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="7107" class="Symbol">((</a><a id="7109" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="7111" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="7113" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a><a id="7115" class="Symbol">)</a> <a id="7117" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="7119" class="Symbol">(</a><a id="7120" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="7122" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="7124" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a><a id="7126" class="Symbol">))</a> <a id="7129" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="7131" class="Symbol">((</a><a id="7133" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="7135" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="7137" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a><a id="7139" class="Symbol">)</a><a id="7140" href="Algebra.Consequences.Setoid.html#5775" class="Bound Operator">⁻¹</a><a id="7142" class="Symbol">)</a> <a id="7145" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="7148" href="Algebra.Consequences.Setoid.html#5807" class="Bound">+-cong</a> <a id="7155" class="Symbol">(</a><a id="7156" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="7160" class="Symbol">(</a><a id="7161" href="Algebra.Consequences.Setoid.html#6870" class="Bound">distribˡ</a> <a id="7170" class="Symbol">_</a> <a id="7172" class="Symbol">_</a> <a id="7174" class="Symbol">_))</a> <a id="7178" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="7183" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="7190" class="Symbol">(</a><a id="7191" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="7193" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="7195" class="Symbol">(</a><a id="7196" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="7199" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="7201" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a><a id="7203" class="Symbol">))</a> <a id="7206" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="7208" class="Symbol">((</a><a id="7210" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="7212" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="7214" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a><a id="7216" class="Symbol">)</a><a id="7217" href="Algebra.Consequences.Setoid.html#5775" class="Bound Operator">⁻¹</a><a id="7219" class="Symbol">)</a> <a id="7228" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="7231" href="Algebra.Consequences.Setoid.html#5807" class="Bound">+-cong</a> <a id="7238" class="Symbol">(</a><a id="7239" href="Algebra.Consequences.Setoid.html#5842" class="Bound">*-cong</a> <a id="7246" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="7251" class="Symbol">(</a><a id="7252" href="Algebra.Consequences.Setoid.html#6879" class="Bound">idʳ</a> <a id="7256" class="Symbol">_))</a> <a id="7260" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="7265" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="7272" class="Symbol">((</a><a id="7274" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="7276" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="7278" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a><a id="7280" class="Symbol">)</a> <a id="7282" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="7284" class="Symbol">((</a><a id="7286" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="7288" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="7290" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a><a id="7292" class="Symbol">)</a><a id="7293" href="Algebra.Consequences.Setoid.html#5775" class="Bound Operator">⁻¹</a><a id="7295" class="Symbol">))</a> <a id="7310" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="7313" href="Algebra.Consequences.Setoid.html#6883" class="Bound">invʳ</a> <a id="7318" class="Symbol">_</a> <a id="7320" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="7327" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="7365" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="7368" class="Comment">------------------------------------------------------------------------</a>
<a id="7441" class="Comment">-- Without Loss of Generality</a>
<a id="7472" class="Keyword">module</a> <a id="7479" href="Algebra.Consequences.Setoid.html#7479" class="Module">_</a> <a id="7481" class="Symbol">{</a><a id="7482" href="Algebra.Consequences.Setoid.html#7482" class="Bound">p</a><a id="7483" class="Symbol">}</a> <a id="7485" class="Symbol">{</a><a id="7486" href="Algebra.Consequences.Setoid.html#7486" class="Bound">f</a> <a id="7488" class="Symbol">:</a> <a id="7490" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="7494" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a><a id="7495" class="Symbol">}</a> <a id="7497" class="Symbol">{</a><a id="7498" href="Algebra.Consequences.Setoid.html#7498" class="Bound">P</a> <a id="7500" class="Symbol">:</a> <a id="7502" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="7507" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a> <a id="7509" href="Algebra.Consequences.Setoid.html#7482" class="Bound">p</a><a id="7510" class="Symbol">}</a>
<a id="7521" class="Symbol">(</a><a id="7522" href="Algebra.Consequences.Setoid.html#7522" class="Bound">≈-subst</a> <a id="7530" class="Symbol">:</a> <a id="7532" href="Relation.Binary.Definitions.html#4369" class="Function">Substitutive</a> <a id="7545" href="Relation.Binary.Bundles.html#1098" class="Field Operator">_≈_</a> <a id="7549" href="Algebra.Consequences.Setoid.html#7482" class="Bound">p</a><a id="7550" class="Symbol">)</a>
<a id="7561" class="Symbol">(</a><a id="7562" href="Algebra.Consequences.Setoid.html#7562" class="Bound">comm</a> <a id="7567" class="Symbol">:</a> <a id="7569" href="Algebra.Definitions.html#1195" class="Function">Commutative</a> <a id="7581" href="Algebra.Consequences.Setoid.html#7486" class="Bound">f</a><a id="7582" class="Symbol">)</a>
<a id="7593" class="Keyword">where</a>
<a id="7602" href="Algebra.Consequences.Setoid.html#7602" class="Function">subst+comm⇒sym</a> <a id="7617" class="Symbol">:</a> <a id="7619" href="Relation.Binary.Definitions.html#1498" class="Function">Symmetric</a> <a id="7629" class="Symbol"></a> <a id="7632" href="Algebra.Consequences.Setoid.html#7632" class="Bound">a</a> <a id="7634" href="Algebra.Consequences.Setoid.html#7634" class="Bound">b</a> <a id="7636" class="Symbol"></a> <a id="7638" href="Algebra.Consequences.Setoid.html#7498" class="Bound">P</a> <a id="7640" class="Symbol">(</a><a id="7641" href="Algebra.Consequences.Setoid.html#7486" class="Bound">f</a> <a id="7643" href="Algebra.Consequences.Setoid.html#7632" class="Bound">a</a> <a id="7645" href="Algebra.Consequences.Setoid.html#7634" class="Bound">b</a><a id="7646" class="Symbol">))</a>
<a id="7651" href="Algebra.Consequences.Setoid.html#7602" class="Function">subst+comm⇒sym</a> <a id="7666" class="Symbol">=</a> <a id="7668" href="Algebra.Consequences.Setoid.html#7522" class="Bound">≈-subst</a> <a id="7676" href="Algebra.Consequences.Setoid.html#7498" class="Bound">P</a> <a id="7678" class="Symbol">(</a><a id="7679" href="Algebra.Consequences.Setoid.html#7562" class="Bound">comm</a> <a id="7684" class="Symbol">_</a> <a id="7686" class="Symbol">_)</a>
<a id="7692" href="Algebra.Consequences.Setoid.html#7692" class="Function">wlog</a> <a id="7697" class="Symbol">:</a> <a id="7699" class="Symbol"></a> <a id="7701" class="Symbol">{</a><a id="7702" href="Algebra.Consequences.Setoid.html#7702" class="Bound">r</a><a id="7703" class="Symbol">}</a> <a id="7705" class="Symbol">{</a><a id="7706" href="Algebra.Consequences.Setoid.html#7706" class="Bound Operator">_R_</a> <a id="7710" class="Symbol">:</a> <a id="7712" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="7716" class="Symbol">_</a> <a id="7718" href="Algebra.Consequences.Setoid.html#7702" class="Bound">r</a><a id="7719" class="Symbol">}</a> <a id="7721" class="Symbol"></a> <a id="7723" href="Relation.Binary.Definitions.html#2584" class="Function">Total</a> <a id="7729" href="Algebra.Consequences.Setoid.html#7706" class="Bound Operator">_R_</a> <a id="7733" class="Symbol"></a>
<a id="7744" class="Symbol">(∀</a> <a id="7747" href="Algebra.Consequences.Setoid.html#7747" class="Bound">a</a> <a id="7749" href="Algebra.Consequences.Setoid.html#7749" class="Bound">b</a> <a id="7751" class="Symbol"></a> <a id="7753" href="Algebra.Consequences.Setoid.html#7747" class="Bound">a</a> <a id="7755" href="Algebra.Consequences.Setoid.html#7706" class="Bound Operator">R</a> <a id="7757" href="Algebra.Consequences.Setoid.html#7749" class="Bound">b</a> <a id="7759" class="Symbol"></a> <a id="7761" href="Algebra.Consequences.Setoid.html#7498" class="Bound">P</a> <a id="7763" class="Symbol">(</a><a id="7764" href="Algebra.Consequences.Setoid.html#7486" class="Bound">f</a> <a id="7766" href="Algebra.Consequences.Setoid.html#7747" class="Bound">a</a> <a id="7768" href="Algebra.Consequences.Setoid.html#7749" class="Bound">b</a><a id="7769" class="Symbol">))</a> <a id="7772" class="Symbol"></a>
<a id="7783" class="Symbol"></a> <a id="7785" href="Algebra.Consequences.Setoid.html#7785" class="Bound">a</a> <a id="7787" href="Algebra.Consequences.Setoid.html#7787" class="Bound">b</a> <a id="7789" class="Symbol"></a> <a id="7791" href="Algebra.Consequences.Setoid.html#7498" class="Bound">P</a> <a id="7793" class="Symbol">(</a><a id="7794" href="Algebra.Consequences.Setoid.html#7486" class="Bound">f</a> <a id="7796" href="Algebra.Consequences.Setoid.html#7785" class="Bound">a</a> <a id="7798" href="Algebra.Consequences.Setoid.html#7787" class="Bound">b</a><a id="7799" class="Symbol">)</a>
<a id="7803" href="Algebra.Consequences.Setoid.html#7692" class="Function">wlog</a> <a id="7808" href="Algebra.Consequences.Setoid.html#7808" class="Bound">r-total</a> <a id="7816" class="Symbol">=</a> <a id="7818" href="Relation.Binary.Consequences.html#5523" class="Function">Bin.wlog</a> <a id="7827" href="Algebra.Consequences.Setoid.html#7808" class="Bound">r-total</a> <a id="7835" href="Algebra.Consequences.Setoid.html#7602" class="Function">subst+comm⇒sym</a>
</pre></body></html>

33
misc/Algebra.Core.html Normal file
View File

@ -0,0 +1,33 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Algebra.Core</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Core algebraic definitions</a>
<a id="136" class="Comment">------------------------------------------------------------------------</a>
<a id="210" class="Comment">-- The contents of this module should be accessed via `Algebra`.</a>
<a id="276" class="Symbol">{-#</a> <a id="280" class="Keyword">OPTIONS</a> <a id="288" class="Pragma">--without-K</a> <a id="300" class="Pragma">--safe</a> <a id="307" class="Symbol">#-}</a>
<a id="312" class="Keyword">module</a> <a id="319" href="Algebra.Core.html" class="Module">Algebra.Core</a> <a id="332" class="Keyword">where</a>
<a id="339" class="Keyword">open</a> <a id="344" class="Keyword">import</a> <a id="351" href="Level.html" class="Module">Level</a> <a id="357" class="Keyword">using</a> <a id="363" class="Symbol">(</a><a id="364" href="Agda.Primitive.html#810" class="Primitive Operator">_⊔_</a><a id="367" class="Symbol">)</a>
<a id="370" class="Comment">------------------------------------------------------------------------</a>
<a id="443" class="Comment">-- Unary and binary operations</a>
<a id="Op₁"></a><a id="475" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="479" class="Symbol">:</a> <a id="481" class="Symbol"></a> <a id="483" class="Symbol">{</a><a id="484" href="Algebra.Core.html#484" class="Bound"></a><a id="485" class="Symbol">}</a> <a id="487" class="Symbol"></a> <a id="489" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="493" href="Algebra.Core.html#484" class="Bound"></a> <a id="495" class="Symbol"></a> <a id="497" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="501" href="Algebra.Core.html#484" class="Bound"></a>
<a id="503" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="507" href="Algebra.Core.html#507" class="Bound">A</a> <a id="509" class="Symbol">=</a> <a id="511" href="Algebra.Core.html#507" class="Bound">A</a> <a id="513" class="Symbol"></a> <a id="515" href="Algebra.Core.html#507" class="Bound">A</a>
<a id="Op₂"></a><a id="518" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="522" class="Symbol">:</a> <a id="524" class="Symbol"></a> <a id="526" class="Symbol">{</a><a id="527" href="Algebra.Core.html#527" class="Bound"></a><a id="528" class="Symbol">}</a> <a id="530" class="Symbol"></a> <a id="532" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="536" href="Algebra.Core.html#527" class="Bound"></a> <a id="538" class="Symbol"></a> <a id="540" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="544" href="Algebra.Core.html#527" class="Bound"></a>
<a id="546" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="550" href="Algebra.Core.html#550" class="Bound">A</a> <a id="552" class="Symbol">=</a> <a id="554" href="Algebra.Core.html#550" class="Bound">A</a> <a id="556" class="Symbol"></a> <a id="558" href="Algebra.Core.html#550" class="Bound">A</a> <a id="560" class="Symbol"></a> <a id="562" href="Algebra.Core.html#550" class="Bound">A</a>
<a id="565" class="Comment">------------------------------------------------------------------------</a>
<a id="638" class="Comment">-- Left and right actions</a>
<a id="Opₗ"></a><a id="665" href="Algebra.Core.html#665" class="Function">Opₗ</a> <a id="669" class="Symbol">:</a> <a id="671" class="Symbol"></a> <a id="673" class="Symbol">{</a><a id="674" href="Algebra.Core.html#674" class="Bound">a</a> <a id="676" href="Algebra.Core.html#676" class="Bound">b</a><a id="677" class="Symbol">}</a> <a id="679" class="Symbol"></a> <a id="681" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="685" href="Algebra.Core.html#674" class="Bound">a</a> <a id="687" class="Symbol"></a> <a id="689" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="693" href="Algebra.Core.html#676" class="Bound">b</a> <a id="695" class="Symbol"></a> <a id="697" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="701" class="Symbol">(</a><a id="702" href="Algebra.Core.html#674" class="Bound">a</a> <a id="704" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="706" href="Algebra.Core.html#676" class="Bound">b</a><a id="707" class="Symbol">)</a>
<a id="709" href="Algebra.Core.html#665" class="Function">Opₗ</a> <a id="713" href="Algebra.Core.html#713" class="Bound">A</a> <a id="715" href="Algebra.Core.html#715" class="Bound">B</a> <a id="717" class="Symbol">=</a> <a id="719" href="Algebra.Core.html#713" class="Bound">A</a> <a id="721" class="Symbol"></a> <a id="723" href="Algebra.Core.html#715" class="Bound">B</a> <a id="725" class="Symbol"></a> <a id="727" href="Algebra.Core.html#715" class="Bound">B</a>
<a id="Opᵣ"></a><a id="730" href="Algebra.Core.html#730" class="Function">Opᵣ</a> <a id="734" class="Symbol">:</a> <a id="736" class="Symbol"></a> <a id="738" class="Symbol">{</a><a id="739" href="Algebra.Core.html#739" class="Bound">a</a> <a id="741" href="Algebra.Core.html#741" class="Bound">b</a><a id="742" class="Symbol">}</a> <a id="744" class="Symbol"></a> <a id="746" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="750" href="Algebra.Core.html#739" class="Bound">a</a> <a id="752" class="Symbol"></a> <a id="754" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="758" href="Algebra.Core.html#741" class="Bound">b</a> <a id="760" class="Symbol"></a> <a id="762" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="766" class="Symbol">(</a><a id="767" href="Algebra.Core.html#739" class="Bound">a</a> <a id="769" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="771" href="Algebra.Core.html#741" class="Bound">b</a><a id="772" class="Symbol">)</a>
<a id="774" href="Algebra.Core.html#730" class="Function">Opᵣ</a> <a id="778" href="Algebra.Core.html#778" class="Bound">A</a> <a id="780" href="Algebra.Core.html#780" class="Bound">B</a> <a id="782" class="Symbol">=</a> <a id="784" href="Algebra.Core.html#780" class="Bound">B</a> <a id="786" class="Symbol"></a> <a id="788" href="Algebra.Core.html#778" class="Bound">A</a> <a id="790" class="Symbol"></a> <a id="792" href="Algebra.Core.html#780" class="Bound">B</a>
</pre></body></html>

View File

@ -0,0 +1,134 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Algebra.Definitions</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Properties of functions, such as associativity and commutativity</a>
<a id="174" class="Comment">------------------------------------------------------------------------</a>
<a id="248" class="Comment">-- The contents of this module should be accessed via `Algebra`, unless</a>
<a id="320" class="Comment">-- you want to parameterise it via the equality relation.</a>
<a id="379" class="Symbol">{-#</a> <a id="383" class="Keyword">OPTIONS</a> <a id="391" class="Pragma">--without-K</a> <a id="403" class="Pragma">--safe</a> <a id="410" class="Symbol">#-}</a>
<a id="415" class="Keyword">open</a> <a id="420" class="Keyword">import</a> <a id="427" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a>
<a id="448" class="Keyword">open</a> <a id="453" class="Keyword">import</a> <a id="460" href="Relation.Nullary.html" class="Module">Relation.Nullary</a> <a id="477" class="Keyword">using</a> <a id="483" class="Symbol">(</a><a id="484" href="Relation.Nullary.html#656" class="Function Operator">¬_</a><a id="486" class="Symbol">)</a>
<a id="489" class="Keyword">module</a> <a id="496" href="Algebra.Definitions.html" class="Module">Algebra.Definitions</a>
<a id="518" class="Symbol">{</a><a id="519" href="Algebra.Definitions.html#519" class="Bound">a</a> <a id="521" href="Algebra.Definitions.html#521" class="Bound"></a><a id="522" class="Symbol">}</a> <a id="524" class="Symbol">{</a><a id="525" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="527" class="Symbol">:</a> <a id="529" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="533" href="Algebra.Definitions.html#519" class="Bound">a</a><a id="534" class="Symbol">}</a> <a id="538" class="Comment">-- The underlying set</a>
<a id="562" class="Symbol">(</a><a id="563" href="Algebra.Definitions.html#563" class="Bound Operator">_≈_</a> <a id="567" class="Symbol">:</a> <a id="569" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="573" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="575" href="Algebra.Definitions.html#521" class="Bound"></a><a id="576" class="Symbol">)</a> <a id="582" class="Comment">-- The underlying equality</a>
<a id="611" class="Keyword">where</a>
<a id="618" class="Keyword">open</a> <a id="623" class="Keyword">import</a> <a id="630" href="Algebra.Core.html" class="Module">Algebra.Core</a>
<a id="643" class="Keyword">open</a> <a id="648" class="Keyword">import</a> <a id="655" href="Data.Product.html" class="Module">Data.Product</a>
<a id="668" class="Keyword">open</a> <a id="673" class="Keyword">import</a> <a id="680" href="Data.Sum.Base.html" class="Module">Data.Sum.Base</a>
<a id="695" class="Comment">------------------------------------------------------------------------</a>
<a id="768" class="Comment">-- Properties of operations</a>
<a id="Congruent₁"></a><a id="797" href="Algebra.Definitions.html#797" class="Function">Congruent₁</a> <a id="808" class="Symbol">:</a> <a id="810" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="814" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="816" class="Symbol"></a> <a id="818" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="822" class="Symbol">_</a>
<a id="824" href="Algebra.Definitions.html#797" class="Function">Congruent₁</a> <a id="835" href="Algebra.Definitions.html#835" class="Bound">f</a> <a id="837" class="Symbol">=</a> <a id="839" href="Algebra.Definitions.html#835" class="Bound">f</a> <a id="841" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="851" href="Algebra.Definitions.html#563" class="Bound Operator">_≈_</a> <a id="855" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="857" href="Algebra.Definitions.html#563" class="Bound Operator">_≈_</a>
<a id="Congruent₂"></a><a id="862" href="Algebra.Definitions.html#862" class="Function">Congruent₂</a> <a id="873" class="Symbol">:</a> <a id="875" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="879" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="881" class="Symbol"></a> <a id="883" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="887" class="Symbol">_</a>
<a id="889" href="Algebra.Definitions.html#862" class="Function">Congruent₂</a> <a id="900" href="Algebra.Definitions.html#900" class="Bound"></a> <a id="902" class="Symbol">=</a> <a id="904" href="Algebra.Definitions.html#900" class="Bound"></a> <a id="906" href="Relation.Binary.Core.html#1689" class="Function Operator">Preserves₂</a> <a id="917" href="Algebra.Definitions.html#563" class="Bound Operator">_≈_</a> <a id="921" href="Relation.Binary.Core.html#1689" class="Function Operator"></a> <a id="923" href="Algebra.Definitions.html#563" class="Bound Operator">_≈_</a> <a id="927" href="Relation.Binary.Core.html#1689" class="Function Operator"></a> <a id="929" href="Algebra.Definitions.html#563" class="Bound Operator">_≈_</a>
<a id="LeftCongruent"></a><a id="934" href="Algebra.Definitions.html#934" class="Function">LeftCongruent</a> <a id="948" class="Symbol">:</a> <a id="950" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="954" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="956" class="Symbol"></a> <a id="958" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="962" class="Symbol">_</a>
<a id="964" href="Algebra.Definitions.html#934" class="Function">LeftCongruent</a> <a id="978" href="Algebra.Definitions.html#978" class="Bound Operator">_∙_</a> <a id="982" class="Symbol">=</a> <a id="984" class="Symbol"></a> <a id="986" class="Symbol">{</a><a id="987" href="Algebra.Definitions.html#987" class="Bound">x</a><a id="988" class="Symbol">}</a> <a id="990" class="Symbol"></a> <a id="992" class="Symbol">(</a><a id="993" href="Algebra.Definitions.html#987" class="Bound">x</a> <a id="995" href="Algebra.Definitions.html#978" class="Bound Operator">∙_</a><a id="997" class="Symbol">)</a> <a id="999" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="1009" href="Algebra.Definitions.html#563" class="Bound Operator">_≈_</a> <a id="1013" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="1015" href="Algebra.Definitions.html#563" class="Bound Operator">_≈_</a>
<a id="RightCongruent"></a><a id="1020" href="Algebra.Definitions.html#1020" class="Function">RightCongruent</a> <a id="1035" class="Symbol">:</a> <a id="1037" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="1041" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="1043" class="Symbol"></a> <a id="1045" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1049" class="Symbol">_</a>
<a id="1051" href="Algebra.Definitions.html#1020" class="Function">RightCongruent</a> <a id="1066" href="Algebra.Definitions.html#1066" class="Bound Operator">_∙_</a> <a id="1070" class="Symbol">=</a> <a id="1072" class="Symbol"></a> <a id="1074" class="Symbol">{</a><a id="1075" href="Algebra.Definitions.html#1075" class="Bound">x</a><a id="1076" class="Symbol">}</a> <a id="1078" class="Symbol"></a> <a id="1080" class="Symbol">(</a><a id="1081" href="Algebra.Definitions.html#1066" class="Bound Operator">_∙</a> <a id="1084" href="Algebra.Definitions.html#1075" class="Bound">x</a><a id="1085" class="Symbol">)</a> <a id="1087" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="1097" href="Algebra.Definitions.html#563" class="Bound Operator">_≈_</a> <a id="1101" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="1103" href="Algebra.Definitions.html#563" class="Bound Operator">_≈_</a>
<a id="Associative"></a><a id="1108" href="Algebra.Definitions.html#1108" class="Function">Associative</a> <a id="1120" class="Symbol">:</a> <a id="1122" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="1126" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="1128" class="Symbol"></a> <a id="1130" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1134" class="Symbol">_</a>
<a id="1136" href="Algebra.Definitions.html#1108" class="Function">Associative</a> <a id="1148" href="Algebra.Definitions.html#1148" class="Bound Operator">_∙_</a> <a id="1152" class="Symbol">=</a> <a id="1154" class="Symbol"></a> <a id="1156" href="Algebra.Definitions.html#1156" class="Bound">x</a> <a id="1158" href="Algebra.Definitions.html#1158" class="Bound">y</a> <a id="1160" href="Algebra.Definitions.html#1160" class="Bound">z</a> <a id="1162" class="Symbol"></a> <a id="1164" class="Symbol">((</a><a id="1166" href="Algebra.Definitions.html#1156" class="Bound">x</a> <a id="1168" href="Algebra.Definitions.html#1148" class="Bound Operator"></a> <a id="1170" href="Algebra.Definitions.html#1158" class="Bound">y</a><a id="1171" class="Symbol">)</a> <a id="1173" href="Algebra.Definitions.html#1148" class="Bound Operator"></a> <a id="1175" href="Algebra.Definitions.html#1160" class="Bound">z</a><a id="1176" class="Symbol">)</a> <a id="1178" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="1180" class="Symbol">(</a><a id="1181" href="Algebra.Definitions.html#1156" class="Bound">x</a> <a id="1183" href="Algebra.Definitions.html#1148" class="Bound Operator"></a> <a id="1185" class="Symbol">(</a><a id="1186" href="Algebra.Definitions.html#1158" class="Bound">y</a> <a id="1188" href="Algebra.Definitions.html#1148" class="Bound Operator"></a> <a id="1190" href="Algebra.Definitions.html#1160" class="Bound">z</a><a id="1191" class="Symbol">))</a>
<a id="Commutative"></a><a id="1195" href="Algebra.Definitions.html#1195" class="Function">Commutative</a> <a id="1207" class="Symbol">:</a> <a id="1209" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="1213" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="1215" class="Symbol"></a> <a id="1217" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1221" class="Symbol">_</a>
<a id="1223" href="Algebra.Definitions.html#1195" class="Function">Commutative</a> <a id="1235" href="Algebra.Definitions.html#1235" class="Bound Operator">_∙_</a> <a id="1239" class="Symbol">=</a> <a id="1241" class="Symbol"></a> <a id="1243" href="Algebra.Definitions.html#1243" class="Bound">x</a> <a id="1245" href="Algebra.Definitions.html#1245" class="Bound">y</a> <a id="1247" class="Symbol"></a> <a id="1249" class="Symbol">(</a><a id="1250" href="Algebra.Definitions.html#1243" class="Bound">x</a> <a id="1252" href="Algebra.Definitions.html#1235" class="Bound Operator"></a> <a id="1254" href="Algebra.Definitions.html#1245" class="Bound">y</a><a id="1255" class="Symbol">)</a> <a id="1257" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="1259" class="Symbol">(</a><a id="1260" href="Algebra.Definitions.html#1245" class="Bound">y</a> <a id="1262" href="Algebra.Definitions.html#1235" class="Bound Operator"></a> <a id="1264" href="Algebra.Definitions.html#1243" class="Bound">x</a><a id="1265" class="Symbol">)</a>
<a id="LeftIdentity"></a><a id="1268" href="Algebra.Definitions.html#1268" class="Function">LeftIdentity</a> <a id="1281" class="Symbol">:</a> <a id="1283" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="1285" class="Symbol"></a> <a id="1287" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="1291" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="1293" class="Symbol"></a> <a id="1295" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1299" class="Symbol">_</a>
<a id="1301" href="Algebra.Definitions.html#1268" class="Function">LeftIdentity</a> <a id="1314" href="Algebra.Definitions.html#1314" class="Bound">e</a> <a id="1316" href="Algebra.Definitions.html#1316" class="Bound Operator">_∙_</a> <a id="1320" class="Symbol">=</a> <a id="1322" class="Symbol"></a> <a id="1324" href="Algebra.Definitions.html#1324" class="Bound">x</a> <a id="1326" class="Symbol"></a> <a id="1328" class="Symbol">(</a><a id="1329" href="Algebra.Definitions.html#1314" class="Bound">e</a> <a id="1331" href="Algebra.Definitions.html#1316" class="Bound Operator"></a> <a id="1333" href="Algebra.Definitions.html#1324" class="Bound">x</a><a id="1334" class="Symbol">)</a> <a id="1336" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="1338" href="Algebra.Definitions.html#1324" class="Bound">x</a>
<a id="RightIdentity"></a><a id="1341" href="Algebra.Definitions.html#1341" class="Function">RightIdentity</a> <a id="1355" class="Symbol">:</a> <a id="1357" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="1359" class="Symbol"></a> <a id="1361" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="1365" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="1367" class="Symbol"></a> <a id="1369" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1373" class="Symbol">_</a>
<a id="1375" href="Algebra.Definitions.html#1341" class="Function">RightIdentity</a> <a id="1389" href="Algebra.Definitions.html#1389" class="Bound">e</a> <a id="1391" href="Algebra.Definitions.html#1391" class="Bound Operator">_∙_</a> <a id="1395" class="Symbol">=</a> <a id="1397" class="Symbol"></a> <a id="1399" href="Algebra.Definitions.html#1399" class="Bound">x</a> <a id="1401" class="Symbol"></a> <a id="1403" class="Symbol">(</a><a id="1404" href="Algebra.Definitions.html#1399" class="Bound">x</a> <a id="1406" href="Algebra.Definitions.html#1391" class="Bound Operator"></a> <a id="1408" href="Algebra.Definitions.html#1389" class="Bound">e</a><a id="1409" class="Symbol">)</a> <a id="1411" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="1413" href="Algebra.Definitions.html#1399" class="Bound">x</a>
<a id="Identity"></a><a id="1416" href="Algebra.Definitions.html#1416" class="Function">Identity</a> <a id="1425" class="Symbol">:</a> <a id="1427" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="1429" class="Symbol"></a> <a id="1431" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="1435" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="1437" class="Symbol"></a> <a id="1439" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1443" class="Symbol">_</a>
<a id="1445" href="Algebra.Definitions.html#1416" class="Function">Identity</a> <a id="1454" href="Algebra.Definitions.html#1454" class="Bound">e</a> <a id="1456" href="Algebra.Definitions.html#1456" class="Bound"></a> <a id="1458" class="Symbol">=</a> <a id="1460" class="Symbol">(</a><a id="1461" href="Algebra.Definitions.html#1268" class="Function">LeftIdentity</a> <a id="1474" href="Algebra.Definitions.html#1454" class="Bound">e</a> <a id="1476" href="Algebra.Definitions.html#1456" class="Bound"></a><a id="1477" class="Symbol">)</a> <a id="1479" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="1481" class="Symbol">(</a><a id="1482" href="Algebra.Definitions.html#1341" class="Function">RightIdentity</a> <a id="1496" href="Algebra.Definitions.html#1454" class="Bound">e</a> <a id="1498" href="Algebra.Definitions.html#1456" class="Bound"></a><a id="1499" class="Symbol">)</a>
<a id="LeftZero"></a><a id="1502" href="Algebra.Definitions.html#1502" class="Function">LeftZero</a> <a id="1511" class="Symbol">:</a> <a id="1513" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="1515" class="Symbol"></a> <a id="1517" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="1521" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="1523" class="Symbol"></a> <a id="1525" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1529" class="Symbol">_</a>
<a id="1531" href="Algebra.Definitions.html#1502" class="Function">LeftZero</a> <a id="1540" href="Algebra.Definitions.html#1540" class="Bound">z</a> <a id="1542" href="Algebra.Definitions.html#1542" class="Bound Operator">_∙_</a> <a id="1546" class="Symbol">=</a> <a id="1548" class="Symbol"></a> <a id="1550" href="Algebra.Definitions.html#1550" class="Bound">x</a> <a id="1552" class="Symbol"></a> <a id="1554" class="Symbol">(</a><a id="1555" href="Algebra.Definitions.html#1540" class="Bound">z</a> <a id="1557" href="Algebra.Definitions.html#1542" class="Bound Operator"></a> <a id="1559" href="Algebra.Definitions.html#1550" class="Bound">x</a><a id="1560" class="Symbol">)</a> <a id="1562" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="1564" href="Algebra.Definitions.html#1540" class="Bound">z</a>
<a id="RightZero"></a><a id="1567" href="Algebra.Definitions.html#1567" class="Function">RightZero</a> <a id="1577" class="Symbol">:</a> <a id="1579" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="1581" class="Symbol"></a> <a id="1583" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="1587" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="1589" class="Symbol"></a> <a id="1591" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1595" class="Symbol">_</a>
<a id="1597" href="Algebra.Definitions.html#1567" class="Function">RightZero</a> <a id="1607" href="Algebra.Definitions.html#1607" class="Bound">z</a> <a id="1609" href="Algebra.Definitions.html#1609" class="Bound Operator">_∙_</a> <a id="1613" class="Symbol">=</a> <a id="1615" class="Symbol"></a> <a id="1617" href="Algebra.Definitions.html#1617" class="Bound">x</a> <a id="1619" class="Symbol"></a> <a id="1621" class="Symbol">(</a><a id="1622" href="Algebra.Definitions.html#1617" class="Bound">x</a> <a id="1624" href="Algebra.Definitions.html#1609" class="Bound Operator"></a> <a id="1626" href="Algebra.Definitions.html#1607" class="Bound">z</a><a id="1627" class="Symbol">)</a> <a id="1629" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="1631" href="Algebra.Definitions.html#1607" class="Bound">z</a>
<a id="Zero"></a><a id="1634" href="Algebra.Definitions.html#1634" class="Function">Zero</a> <a id="1639" class="Symbol">:</a> <a id="1641" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="1643" class="Symbol"></a> <a id="1645" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="1649" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="1651" class="Symbol"></a> <a id="1653" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1657" class="Symbol">_</a>
<a id="1659" href="Algebra.Definitions.html#1634" class="Function">Zero</a> <a id="1664" href="Algebra.Definitions.html#1664" class="Bound">z</a> <a id="1666" href="Algebra.Definitions.html#1666" class="Bound"></a> <a id="1668" class="Symbol">=</a> <a id="1670" class="Symbol">(</a><a id="1671" href="Algebra.Definitions.html#1502" class="Function">LeftZero</a> <a id="1680" href="Algebra.Definitions.html#1664" class="Bound">z</a> <a id="1682" href="Algebra.Definitions.html#1666" class="Bound"></a><a id="1683" class="Symbol">)</a> <a id="1685" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="1687" class="Symbol">(</a><a id="1688" href="Algebra.Definitions.html#1567" class="Function">RightZero</a> <a id="1698" href="Algebra.Definitions.html#1664" class="Bound">z</a> <a id="1700" href="Algebra.Definitions.html#1666" class="Bound"></a><a id="1701" class="Symbol">)</a>
<a id="LeftInverse"></a><a id="1704" href="Algebra.Definitions.html#1704" class="Function">LeftInverse</a> <a id="1716" class="Symbol">:</a> <a id="1718" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="1720" class="Symbol"></a> <a id="1722" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="1726" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="1728" class="Symbol"></a> <a id="1730" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="1734" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="1736" class="Symbol"></a> <a id="1738" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1742" class="Symbol">_</a>
<a id="1744" href="Algebra.Definitions.html#1704" class="Function">LeftInverse</a> <a id="1756" href="Algebra.Definitions.html#1756" class="Bound">e</a> <a id="1758" href="Algebra.Definitions.html#1758" class="Bound Operator">_⁻¹</a> <a id="1762" href="Algebra.Definitions.html#1762" class="Bound Operator">_∙_</a> <a id="1766" class="Symbol">=</a> <a id="1768" class="Symbol"></a> <a id="1770" href="Algebra.Definitions.html#1770" class="Bound">x</a> <a id="1772" class="Symbol"></a> <a id="1774" class="Symbol">((</a><a id="1776" href="Algebra.Definitions.html#1770" class="Bound">x</a> <a id="1778" href="Algebra.Definitions.html#1758" class="Bound Operator">⁻¹</a><a id="1780" class="Symbol">)</a> <a id="1782" href="Algebra.Definitions.html#1762" class="Bound Operator"></a> <a id="1784" href="Algebra.Definitions.html#1770" class="Bound">x</a><a id="1785" class="Symbol">)</a> <a id="1787" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="1789" href="Algebra.Definitions.html#1756" class="Bound">e</a>
<a id="RightInverse"></a><a id="1792" href="Algebra.Definitions.html#1792" class="Function">RightInverse</a> <a id="1805" class="Symbol">:</a> <a id="1807" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="1809" class="Symbol"></a> <a id="1811" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="1815" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="1817" class="Symbol"></a> <a id="1819" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="1823" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="1825" class="Symbol"></a> <a id="1827" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1831" class="Symbol">_</a>
<a id="1833" href="Algebra.Definitions.html#1792" class="Function">RightInverse</a> <a id="1846" href="Algebra.Definitions.html#1846" class="Bound">e</a> <a id="1848" href="Algebra.Definitions.html#1848" class="Bound Operator">_⁻¹</a> <a id="1852" href="Algebra.Definitions.html#1852" class="Bound Operator">_∙_</a> <a id="1856" class="Symbol">=</a> <a id="1858" class="Symbol"></a> <a id="1860" href="Algebra.Definitions.html#1860" class="Bound">x</a> <a id="1862" class="Symbol"></a> <a id="1864" class="Symbol">(</a><a id="1865" href="Algebra.Definitions.html#1860" class="Bound">x</a> <a id="1867" href="Algebra.Definitions.html#1852" class="Bound Operator"></a> <a id="1869" class="Symbol">(</a><a id="1870" href="Algebra.Definitions.html#1860" class="Bound">x</a> <a id="1872" href="Algebra.Definitions.html#1848" class="Bound Operator">⁻¹</a><a id="1874" class="Symbol">))</a> <a id="1877" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="1879" href="Algebra.Definitions.html#1846" class="Bound">e</a>
<a id="Inverse"></a><a id="1882" href="Algebra.Definitions.html#1882" class="Function">Inverse</a> <a id="1890" class="Symbol">:</a> <a id="1892" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="1894" class="Symbol"></a> <a id="1896" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="1900" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="1902" class="Symbol"></a> <a id="1904" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="1908" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="1910" class="Symbol"></a> <a id="1912" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1916" class="Symbol">_</a>
<a id="1918" href="Algebra.Definitions.html#1882" class="Function">Inverse</a> <a id="1926" href="Algebra.Definitions.html#1926" class="Bound">e</a> <a id="1928" href="Algebra.Definitions.html#1928" class="Bound">⁻¹</a> <a id="1931" href="Algebra.Definitions.html#1931" class="Bound"></a> <a id="1933" class="Symbol">=</a> <a id="1935" class="Symbol">(</a><a id="1936" href="Algebra.Definitions.html#1704" class="Function">LeftInverse</a> <a id="1948" href="Algebra.Definitions.html#1926" class="Bound">e</a> <a id="1950" href="Algebra.Definitions.html#1928" class="Bound">⁻¹</a><a id="1952" class="Symbol">)</a> <a id="1954" href="Algebra.Definitions.html#1931" class="Bound"></a> <a id="1956" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="1958" class="Symbol">(</a><a id="1959" href="Algebra.Definitions.html#1792" class="Function">RightInverse</a> <a id="1972" href="Algebra.Definitions.html#1926" class="Bound">e</a> <a id="1974" href="Algebra.Definitions.html#1928" class="Bound">⁻¹</a> <a id="1977" href="Algebra.Definitions.html#1931" class="Bound"></a><a id="1978" class="Symbol">)</a>
<a id="LeftConical"></a><a id="1981" href="Algebra.Definitions.html#1981" class="Function">LeftConical</a> <a id="1993" class="Symbol">:</a> <a id="1995" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="1997" class="Symbol"></a> <a id="1999" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="2003" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="2005" class="Symbol"></a> <a id="2007" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2011" class="Symbol">_</a>
<a id="2013" href="Algebra.Definitions.html#1981" class="Function">LeftConical</a> <a id="2025" href="Algebra.Definitions.html#2025" class="Bound">e</a> <a id="2027" href="Algebra.Definitions.html#2027" class="Bound Operator">_∙_</a> <a id="2031" class="Symbol">=</a> <a id="2033" class="Symbol"></a> <a id="2035" href="Algebra.Definitions.html#2035" class="Bound">x</a> <a id="2037" href="Algebra.Definitions.html#2037" class="Bound">y</a> <a id="2039" class="Symbol"></a> <a id="2041" class="Symbol">(</a><a id="2042" href="Algebra.Definitions.html#2035" class="Bound">x</a> <a id="2044" href="Algebra.Definitions.html#2027" class="Bound Operator"></a> <a id="2046" href="Algebra.Definitions.html#2037" class="Bound">y</a><a id="2047" class="Symbol">)</a> <a id="2049" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="2051" href="Algebra.Definitions.html#2025" class="Bound">e</a> <a id="2053" class="Symbol"></a> <a id="2055" href="Algebra.Definitions.html#2035" class="Bound">x</a> <a id="2057" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="2059" href="Algebra.Definitions.html#2025" class="Bound">e</a>
<a id="RightConical"></a><a id="2062" href="Algebra.Definitions.html#2062" class="Function">RightConical</a> <a id="2075" class="Symbol">:</a> <a id="2077" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="2079" class="Symbol"></a> <a id="2081" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="2085" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="2087" class="Symbol"></a> <a id="2089" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2093" class="Symbol">_</a>
<a id="2095" href="Algebra.Definitions.html#2062" class="Function">RightConical</a> <a id="2108" href="Algebra.Definitions.html#2108" class="Bound">e</a> <a id="2110" href="Algebra.Definitions.html#2110" class="Bound Operator">_∙_</a> <a id="2114" class="Symbol">=</a> <a id="2116" class="Symbol"></a> <a id="2118" href="Algebra.Definitions.html#2118" class="Bound">x</a> <a id="2120" href="Algebra.Definitions.html#2120" class="Bound">y</a> <a id="2122" class="Symbol"></a> <a id="2124" class="Symbol">(</a><a id="2125" href="Algebra.Definitions.html#2118" class="Bound">x</a> <a id="2127" href="Algebra.Definitions.html#2110" class="Bound Operator"></a> <a id="2129" href="Algebra.Definitions.html#2120" class="Bound">y</a><a id="2130" class="Symbol">)</a> <a id="2132" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="2134" href="Algebra.Definitions.html#2108" class="Bound">e</a> <a id="2136" class="Symbol"></a> <a id="2138" href="Algebra.Definitions.html#2120" class="Bound">y</a> <a id="2140" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="2142" href="Algebra.Definitions.html#2108" class="Bound">e</a>
<a id="Conical"></a><a id="2145" href="Algebra.Definitions.html#2145" class="Function">Conical</a> <a id="2153" class="Symbol">:</a> <a id="2155" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="2157" class="Symbol"></a> <a id="2159" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="2163" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="2165" class="Symbol"></a> <a id="2167" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2171" class="Symbol">_</a>
<a id="2173" href="Algebra.Definitions.html#2145" class="Function">Conical</a> <a id="2181" href="Algebra.Definitions.html#2181" class="Bound">e</a> <a id="2183" href="Algebra.Definitions.html#2183" class="Bound"></a> <a id="2185" class="Symbol">=</a> <a id="2187" class="Symbol">(</a><a id="2188" href="Algebra.Definitions.html#1981" class="Function">LeftConical</a> <a id="2200" href="Algebra.Definitions.html#2181" class="Bound">e</a> <a id="2202" href="Algebra.Definitions.html#2183" class="Bound"></a><a id="2203" class="Symbol">)</a> <a id="2205" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="2207" class="Symbol">(</a><a id="2208" href="Algebra.Definitions.html#2062" class="Function">RightConical</a> <a id="2221" href="Algebra.Definitions.html#2181" class="Bound">e</a> <a id="2223" href="Algebra.Definitions.html#2183" class="Bound"></a><a id="2224" class="Symbol">)</a>
<a id="_DistributesOverˡ_"></a><a id="2227" href="Algebra.Definitions.html#2227" class="Function Operator">_DistributesOverˡ_</a> <a id="2246" class="Symbol">:</a> <a id="2248" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="2252" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="2254" class="Symbol"></a> <a id="2256" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="2260" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="2262" class="Symbol"></a> <a id="2264" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2268" class="Symbol">_</a>
<a id="2270" href="Algebra.Definitions.html#2270" class="Bound Operator">_*_</a> <a id="2274" href="Algebra.Definitions.html#2227" class="Function Operator">DistributesOverˡ</a> <a id="2291" href="Algebra.Definitions.html#2291" class="Bound Operator">_+_</a> <a id="2295" class="Symbol">=</a>
<a id="2299" class="Symbol"></a> <a id="2301" href="Algebra.Definitions.html#2301" class="Bound">x</a> <a id="2303" href="Algebra.Definitions.html#2303" class="Bound">y</a> <a id="2305" href="Algebra.Definitions.html#2305" class="Bound">z</a> <a id="2307" class="Symbol"></a> <a id="2309" class="Symbol">(</a><a id="2310" href="Algebra.Definitions.html#2301" class="Bound">x</a> <a id="2312" href="Algebra.Definitions.html#2270" class="Bound Operator">*</a> <a id="2314" class="Symbol">(</a><a id="2315" href="Algebra.Definitions.html#2303" class="Bound">y</a> <a id="2317" href="Algebra.Definitions.html#2291" class="Bound Operator">+</a> <a id="2319" href="Algebra.Definitions.html#2305" class="Bound">z</a><a id="2320" class="Symbol">))</a> <a id="2323" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="2325" class="Symbol">((</a><a id="2327" href="Algebra.Definitions.html#2301" class="Bound">x</a> <a id="2329" href="Algebra.Definitions.html#2270" class="Bound Operator">*</a> <a id="2331" href="Algebra.Definitions.html#2303" class="Bound">y</a><a id="2332" class="Symbol">)</a> <a id="2334" href="Algebra.Definitions.html#2291" class="Bound Operator">+</a> <a id="2336" class="Symbol">(</a><a id="2337" href="Algebra.Definitions.html#2301" class="Bound">x</a> <a id="2339" href="Algebra.Definitions.html#2270" class="Bound Operator">*</a> <a id="2341" href="Algebra.Definitions.html#2305" class="Bound">z</a><a id="2342" class="Symbol">))</a>
<a id="_DistributesOverʳ_"></a><a id="2346" href="Algebra.Definitions.html#2346" class="Function Operator">_DistributesOverʳ_</a> <a id="2365" class="Symbol">:</a> <a id="2367" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="2371" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="2373" class="Symbol"></a> <a id="2375" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="2379" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="2381" class="Symbol"></a> <a id="2383" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2387" class="Symbol">_</a>
<a id="2389" href="Algebra.Definitions.html#2389" class="Bound Operator">_*_</a> <a id="2393" href="Algebra.Definitions.html#2346" class="Function Operator">DistributesOverʳ</a> <a id="2410" href="Algebra.Definitions.html#2410" class="Bound Operator">_+_</a> <a id="2414" class="Symbol">=</a>
<a id="2418" class="Symbol"></a> <a id="2420" href="Algebra.Definitions.html#2420" class="Bound">x</a> <a id="2422" href="Algebra.Definitions.html#2422" class="Bound">y</a> <a id="2424" href="Algebra.Definitions.html#2424" class="Bound">z</a> <a id="2426" class="Symbol"></a> <a id="2428" class="Symbol">((</a><a id="2430" href="Algebra.Definitions.html#2422" class="Bound">y</a> <a id="2432" href="Algebra.Definitions.html#2410" class="Bound Operator">+</a> <a id="2434" href="Algebra.Definitions.html#2424" class="Bound">z</a><a id="2435" class="Symbol">)</a> <a id="2437" href="Algebra.Definitions.html#2389" class="Bound Operator">*</a> <a id="2439" href="Algebra.Definitions.html#2420" class="Bound">x</a><a id="2440" class="Symbol">)</a> <a id="2442" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="2444" class="Symbol">((</a><a id="2446" href="Algebra.Definitions.html#2422" class="Bound">y</a> <a id="2448" href="Algebra.Definitions.html#2389" class="Bound Operator">*</a> <a id="2450" href="Algebra.Definitions.html#2420" class="Bound">x</a><a id="2451" class="Symbol">)</a> <a id="2453" href="Algebra.Definitions.html#2410" class="Bound Operator">+</a> <a id="2455" class="Symbol">(</a><a id="2456" href="Algebra.Definitions.html#2424" class="Bound">z</a> <a id="2458" href="Algebra.Definitions.html#2389" class="Bound Operator">*</a> <a id="2460" href="Algebra.Definitions.html#2420" class="Bound">x</a><a id="2461" class="Symbol">))</a>
<a id="_DistributesOver_"></a><a id="2465" href="Algebra.Definitions.html#2465" class="Function Operator">_DistributesOver_</a> <a id="2483" class="Symbol">:</a> <a id="2485" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="2489" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="2491" class="Symbol"></a> <a id="2493" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="2497" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="2499" class="Symbol"></a> <a id="2501" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2505" class="Symbol">_</a>
<a id="2507" href="Algebra.Definitions.html#2507" class="Bound">*</a> <a id="2509" href="Algebra.Definitions.html#2465" class="Function Operator">DistributesOver</a> <a id="2525" href="Algebra.Definitions.html#2525" class="Bound">+</a> <a id="2527" class="Symbol">=</a> <a id="2529" class="Symbol">(</a><a id="2530" href="Algebra.Definitions.html#2507" class="Bound">*</a> <a id="2532" href="Algebra.Definitions.html#2227" class="Function Operator">DistributesOverˡ</a> <a id="2549" href="Algebra.Definitions.html#2525" class="Bound">+</a><a id="2550" class="Symbol">)</a> <a id="2552" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="2554" class="Symbol">(</a><a id="2555" href="Algebra.Definitions.html#2507" class="Bound">*</a> <a id="2557" href="Algebra.Definitions.html#2346" class="Function Operator">DistributesOverʳ</a> <a id="2574" href="Algebra.Definitions.html#2525" class="Bound">+</a><a id="2575" class="Symbol">)</a>
<a id="_IdempotentOn_"></a><a id="2578" href="Algebra.Definitions.html#2578" class="Function Operator">_IdempotentOn_</a> <a id="2593" class="Symbol">:</a> <a id="2595" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="2599" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="2601" class="Symbol"></a> <a id="2603" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="2605" class="Symbol"></a> <a id="2607" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2611" class="Symbol">_</a>
<a id="2613" href="Algebra.Definitions.html#2613" class="Bound Operator">_∙_</a> <a id="2617" href="Algebra.Definitions.html#2578" class="Function Operator">IdempotentOn</a> <a id="2630" href="Algebra.Definitions.html#2630" class="Bound">x</a> <a id="2632" class="Symbol">=</a> <a id="2634" class="Symbol">(</a><a id="2635" href="Algebra.Definitions.html#2630" class="Bound">x</a> <a id="2637" href="Algebra.Definitions.html#2613" class="Bound Operator"></a> <a id="2639" href="Algebra.Definitions.html#2630" class="Bound">x</a><a id="2640" class="Symbol">)</a> <a id="2642" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="2644" href="Algebra.Definitions.html#2630" class="Bound">x</a>
<a id="Idempotent"></a><a id="2647" href="Algebra.Definitions.html#2647" class="Function">Idempotent</a> <a id="2658" class="Symbol">:</a> <a id="2660" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="2664" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="2666" class="Symbol"></a> <a id="2668" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2672" class="Symbol">_</a>
<a id="2674" href="Algebra.Definitions.html#2647" class="Function">Idempotent</a> <a id="2685" href="Algebra.Definitions.html#2685" class="Bound"></a> <a id="2687" class="Symbol">=</a> <a id="2689" class="Symbol"></a> <a id="2691" href="Algebra.Definitions.html#2691" class="Bound">x</a> <a id="2693" class="Symbol"></a> <a id="2695" href="Algebra.Definitions.html#2685" class="Bound"></a> <a id="2697" href="Algebra.Definitions.html#2578" class="Function Operator">IdempotentOn</a> <a id="2710" href="Algebra.Definitions.html#2691" class="Bound">x</a>
<a id="IdempotentFun"></a><a id="2713" href="Algebra.Definitions.html#2713" class="Function">IdempotentFun</a> <a id="2727" class="Symbol">:</a> <a id="2729" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="2733" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="2735" class="Symbol"></a> <a id="2737" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2741" class="Symbol">_</a>
<a id="2743" href="Algebra.Definitions.html#2713" class="Function">IdempotentFun</a> <a id="2757" href="Algebra.Definitions.html#2757" class="Bound">f</a> <a id="2759" class="Symbol">=</a> <a id="2761" class="Symbol"></a> <a id="2763" href="Algebra.Definitions.html#2763" class="Bound">x</a> <a id="2765" class="Symbol"></a> <a id="2767" href="Algebra.Definitions.html#2757" class="Bound">f</a> <a id="2769" class="Symbol">(</a><a id="2770" href="Algebra.Definitions.html#2757" class="Bound">f</a> <a id="2772" href="Algebra.Definitions.html#2763" class="Bound">x</a><a id="2773" class="Symbol">)</a> <a id="2775" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="2777" href="Algebra.Definitions.html#2757" class="Bound">f</a> <a id="2779" href="Algebra.Definitions.html#2763" class="Bound">x</a>
<a id="Selective"></a><a id="2782" href="Algebra.Definitions.html#2782" class="Function">Selective</a> <a id="2792" class="Symbol">:</a> <a id="2794" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="2798" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="2800" class="Symbol"></a> <a id="2802" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2806" class="Symbol">_</a>
<a id="2808" href="Algebra.Definitions.html#2782" class="Function">Selective</a> <a id="2818" href="Algebra.Definitions.html#2818" class="Bound Operator">_∙_</a> <a id="2822" class="Symbol">=</a> <a id="2824" class="Symbol"></a> <a id="2826" href="Algebra.Definitions.html#2826" class="Bound">x</a> <a id="2828" href="Algebra.Definitions.html#2828" class="Bound">y</a> <a id="2830" class="Symbol"></a> <a id="2832" class="Symbol">(</a><a id="2833" href="Algebra.Definitions.html#2826" class="Bound">x</a> <a id="2835" href="Algebra.Definitions.html#2818" class="Bound Operator"></a> <a id="2837" href="Algebra.Definitions.html#2828" class="Bound">y</a><a id="2838" class="Symbol">)</a> <a id="2840" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="2842" href="Algebra.Definitions.html#2826" class="Bound">x</a> <a id="2844" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="2846" class="Symbol">(</a><a id="2847" href="Algebra.Definitions.html#2826" class="Bound">x</a> <a id="2849" href="Algebra.Definitions.html#2818" class="Bound Operator"></a> <a id="2851" href="Algebra.Definitions.html#2828" class="Bound">y</a><a id="2852" class="Symbol">)</a> <a id="2854" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="2856" href="Algebra.Definitions.html#2828" class="Bound">y</a>
<a id="_Absorbs_"></a><a id="2859" href="Algebra.Definitions.html#2859" class="Function Operator">_Absorbs_</a> <a id="2869" class="Symbol">:</a> <a id="2871" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="2875" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="2877" class="Symbol"></a> <a id="2879" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="2883" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="2885" class="Symbol"></a> <a id="2887" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2891" class="Symbol">_</a>
<a id="2893" href="Algebra.Definitions.html#2893" class="Bound Operator">_∙_</a> <a id="2897" href="Algebra.Definitions.html#2859" class="Function Operator">Absorbs</a> <a id="2905" href="Algebra.Definitions.html#2905" class="Bound Operator">_∘_</a> <a id="2909" class="Symbol">=</a> <a id="2911" class="Symbol"></a> <a id="2913" href="Algebra.Definitions.html#2913" class="Bound">x</a> <a id="2915" href="Algebra.Definitions.html#2915" class="Bound">y</a> <a id="2917" class="Symbol"></a> <a id="2919" class="Symbol">(</a><a id="2920" href="Algebra.Definitions.html#2913" class="Bound">x</a> <a id="2922" href="Algebra.Definitions.html#2893" class="Bound Operator"></a> <a id="2924" class="Symbol">(</a><a id="2925" href="Algebra.Definitions.html#2913" class="Bound">x</a> <a id="2927" href="Algebra.Definitions.html#2905" class="Bound Operator"></a> <a id="2929" href="Algebra.Definitions.html#2915" class="Bound">y</a><a id="2930" class="Symbol">))</a> <a id="2933" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="2935" href="Algebra.Definitions.html#2913" class="Bound">x</a>
<a id="Absorptive"></a><a id="2938" href="Algebra.Definitions.html#2938" class="Function">Absorptive</a> <a id="2949" class="Symbol">:</a> <a id="2951" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="2955" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="2957" class="Symbol"></a> <a id="2959" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="2963" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="2965" class="Symbol"></a> <a id="2967" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2971" class="Symbol">_</a>
<a id="2973" href="Algebra.Definitions.html#2938" class="Function">Absorptive</a> <a id="2984" href="Algebra.Definitions.html#2984" class="Bound"></a> <a id="2986" href="Algebra.Definitions.html#2986" class="Bound"></a> <a id="2988" class="Symbol">=</a> <a id="2990" class="Symbol">(</a><a id="2991" href="Algebra.Definitions.html#2984" class="Bound"></a> <a id="2993" href="Algebra.Definitions.html#2859" class="Function Operator">Absorbs</a> <a id="3001" href="Algebra.Definitions.html#2986" class="Bound"></a><a id="3002" class="Symbol">)</a> <a id="3004" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="3006" class="Symbol">(</a><a id="3007" href="Algebra.Definitions.html#2986" class="Bound"></a> <a id="3009" href="Algebra.Definitions.html#2859" class="Function Operator">Absorbs</a> <a id="3017" href="Algebra.Definitions.html#2984" class="Bound"></a><a id="3018" class="Symbol">)</a>
<a id="Involutive"></a><a id="3021" href="Algebra.Definitions.html#3021" class="Function">Involutive</a> <a id="3032" class="Symbol">:</a> <a id="3034" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="3038" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="3040" class="Symbol"></a> <a id="3042" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3046" class="Symbol">_</a>
<a id="3048" href="Algebra.Definitions.html#3021" class="Function">Involutive</a> <a id="3059" href="Algebra.Definitions.html#3059" class="Bound">f</a> <a id="3061" class="Symbol">=</a> <a id="3063" class="Symbol"></a> <a id="3065" href="Algebra.Definitions.html#3065" class="Bound">x</a> <a id="3067" class="Symbol"></a> <a id="3069" href="Algebra.Definitions.html#3059" class="Bound">f</a> <a id="3071" class="Symbol">(</a><a id="3072" href="Algebra.Definitions.html#3059" class="Bound">f</a> <a id="3074" href="Algebra.Definitions.html#3065" class="Bound">x</a><a id="3075" class="Symbol">)</a> <a id="3077" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="3079" href="Algebra.Definitions.html#3065" class="Bound">x</a>
<a id="LeftCancellative"></a><a id="3082" href="Algebra.Definitions.html#3082" class="Function">LeftCancellative</a> <a id="3099" class="Symbol">:</a> <a id="3101" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="3105" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="3107" class="Symbol"></a> <a id="3109" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3113" class="Symbol">_</a>
<a id="3115" href="Algebra.Definitions.html#3082" class="Function">LeftCancellative</a> <a id="3132" href="Algebra.Definitions.html#3132" class="Bound Operator">_•_</a> <a id="3136" class="Symbol">=</a> <a id="3138" class="Symbol"></a> <a id="3140" href="Algebra.Definitions.html#3140" class="Bound">x</a> <a id="3142" class="Symbol">{</a><a id="3143" href="Algebra.Definitions.html#3143" class="Bound">y</a> <a id="3145" href="Algebra.Definitions.html#3145" class="Bound">z</a><a id="3146" class="Symbol">}</a> <a id="3148" class="Symbol"></a> <a id="3150" class="Symbol">(</a><a id="3151" href="Algebra.Definitions.html#3140" class="Bound">x</a> <a id="3153" href="Algebra.Definitions.html#3132" class="Bound Operator"></a> <a id="3155" href="Algebra.Definitions.html#3143" class="Bound">y</a><a id="3156" class="Symbol">)</a> <a id="3158" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="3160" class="Symbol">(</a><a id="3161" href="Algebra.Definitions.html#3140" class="Bound">x</a> <a id="3163" href="Algebra.Definitions.html#3132" class="Bound Operator"></a> <a id="3165" href="Algebra.Definitions.html#3145" class="Bound">z</a><a id="3166" class="Symbol">)</a> <a id="3168" class="Symbol"></a> <a id="3170" href="Algebra.Definitions.html#3143" class="Bound">y</a> <a id="3172" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="3174" href="Algebra.Definitions.html#3145" class="Bound">z</a>
<a id="RightCancellative"></a><a id="3177" href="Algebra.Definitions.html#3177" class="Function">RightCancellative</a> <a id="3195" class="Symbol">:</a> <a id="3197" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="3201" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="3203" class="Symbol"></a> <a id="3205" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3209" class="Symbol">_</a>
<a id="3211" href="Algebra.Definitions.html#3177" class="Function">RightCancellative</a> <a id="3229" href="Algebra.Definitions.html#3229" class="Bound Operator">_•_</a> <a id="3233" class="Symbol">=</a> <a id="3235" class="Symbol"></a> <a id="3237" class="Symbol">{</a><a id="3238" href="Algebra.Definitions.html#3238" class="Bound">x</a><a id="3239" class="Symbol">}</a> <a id="3241" href="Algebra.Definitions.html#3241" class="Bound">y</a> <a id="3243" href="Algebra.Definitions.html#3243" class="Bound">z</a> <a id="3245" class="Symbol"></a> <a id="3247" class="Symbol">(</a><a id="3248" href="Algebra.Definitions.html#3241" class="Bound">y</a> <a id="3250" href="Algebra.Definitions.html#3229" class="Bound Operator"></a> <a id="3252" href="Algebra.Definitions.html#3238" class="Bound">x</a><a id="3253" class="Symbol">)</a> <a id="3255" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="3257" class="Symbol">(</a><a id="3258" href="Algebra.Definitions.html#3243" class="Bound">z</a> <a id="3260" href="Algebra.Definitions.html#3229" class="Bound Operator"></a> <a id="3262" href="Algebra.Definitions.html#3238" class="Bound">x</a><a id="3263" class="Symbol">)</a> <a id="3265" class="Symbol"></a> <a id="3267" href="Algebra.Definitions.html#3241" class="Bound">y</a> <a id="3269" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="3271" href="Algebra.Definitions.html#3243" class="Bound">z</a>
<a id="Cancellative"></a><a id="3274" href="Algebra.Definitions.html#3274" class="Function">Cancellative</a> <a id="3287" class="Symbol">:</a> <a id="3289" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="3293" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="3295" class="Symbol"></a> <a id="3297" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3301" class="Symbol">_</a>
<a id="3303" href="Algebra.Definitions.html#3274" class="Function">Cancellative</a> <a id="3316" href="Algebra.Definitions.html#3316" class="Bound Operator">_•_</a> <a id="3320" class="Symbol">=</a> <a id="3322" class="Symbol">(</a><a id="3323" href="Algebra.Definitions.html#3082" class="Function">LeftCancellative</a> <a id="3340" href="Algebra.Definitions.html#3316" class="Bound Operator">_•_</a><a id="3343" class="Symbol">)</a> <a id="3345" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="3347" class="Symbol">(</a><a id="3348" href="Algebra.Definitions.html#3177" class="Function">RightCancellative</a> <a id="3366" href="Algebra.Definitions.html#3316" class="Bound Operator">_•_</a><a id="3369" class="Symbol">)</a>
<a id="AlmostLeftCancellative"></a><a id="3372" href="Algebra.Definitions.html#3372" class="Function">AlmostLeftCancellative</a> <a id="3395" class="Symbol">:</a> <a id="3397" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="3399" class="Symbol"></a> <a id="3401" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="3405" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="3407" class="Symbol"></a> <a id="3409" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3413" class="Symbol">_</a>
<a id="3415" href="Algebra.Definitions.html#3372" class="Function">AlmostLeftCancellative</a> <a id="3438" href="Algebra.Definitions.html#3438" class="Bound">e</a> <a id="3440" href="Algebra.Definitions.html#3440" class="Bound Operator">_•_</a> <a id="3444" class="Symbol">=</a> <a id="3446" class="Symbol"></a> <a id="3448" class="Symbol">{</a><a id="3449" href="Algebra.Definitions.html#3449" class="Bound">x</a><a id="3450" class="Symbol">}</a> <a id="3452" href="Algebra.Definitions.html#3452" class="Bound">y</a> <a id="3454" href="Algebra.Definitions.html#3454" class="Bound">z</a> <a id="3456" class="Symbol"></a> <a id="3458" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="3460" href="Algebra.Definitions.html#3449" class="Bound">x</a> <a id="3462" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="3464" href="Algebra.Definitions.html#3438" class="Bound">e</a> <a id="3466" class="Symbol"></a> <a id="3468" class="Symbol">(</a><a id="3469" href="Algebra.Definitions.html#3449" class="Bound">x</a> <a id="3471" href="Algebra.Definitions.html#3440" class="Bound Operator"></a> <a id="3473" href="Algebra.Definitions.html#3452" class="Bound">y</a><a id="3474" class="Symbol">)</a> <a id="3476" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="3478" class="Symbol">(</a><a id="3479" href="Algebra.Definitions.html#3449" class="Bound">x</a> <a id="3481" href="Algebra.Definitions.html#3440" class="Bound Operator"></a> <a id="3483" href="Algebra.Definitions.html#3454" class="Bound">z</a><a id="3484" class="Symbol">)</a> <a id="3486" class="Symbol"></a> <a id="3488" href="Algebra.Definitions.html#3452" class="Bound">y</a> <a id="3490" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="3492" href="Algebra.Definitions.html#3454" class="Bound">z</a>
<a id="AlmostRightCancellative"></a><a id="3495" href="Algebra.Definitions.html#3495" class="Function">AlmostRightCancellative</a> <a id="3519" class="Symbol">:</a> <a id="3521" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="3523" class="Symbol"></a> <a id="3525" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="3529" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="3531" class="Symbol"></a> <a id="3533" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3537" class="Symbol">_</a>
<a id="3539" href="Algebra.Definitions.html#3495" class="Function">AlmostRightCancellative</a> <a id="3563" href="Algebra.Definitions.html#3563" class="Bound">e</a> <a id="3565" href="Algebra.Definitions.html#3565" class="Bound Operator">_•_</a> <a id="3569" class="Symbol">=</a> <a id="3571" class="Symbol"></a> <a id="3573" class="Symbol">{</a><a id="3574" href="Algebra.Definitions.html#3574" class="Bound">x</a><a id="3575" class="Symbol">}</a> <a id="3577" href="Algebra.Definitions.html#3577" class="Bound">y</a> <a id="3579" href="Algebra.Definitions.html#3579" class="Bound">z</a> <a id="3581" class="Symbol"></a> <a id="3583" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="3585" href="Algebra.Definitions.html#3574" class="Bound">x</a> <a id="3587" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="3589" href="Algebra.Definitions.html#3563" class="Bound">e</a> <a id="3591" class="Symbol"></a> <a id="3593" class="Symbol">(</a><a id="3594" href="Algebra.Definitions.html#3577" class="Bound">y</a> <a id="3596" href="Algebra.Definitions.html#3565" class="Bound Operator"></a> <a id="3598" href="Algebra.Definitions.html#3574" class="Bound">x</a><a id="3599" class="Symbol">)</a> <a id="3601" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="3603" class="Symbol">(</a><a id="3604" href="Algebra.Definitions.html#3579" class="Bound">z</a> <a id="3606" href="Algebra.Definitions.html#3565" class="Bound Operator"></a> <a id="3608" href="Algebra.Definitions.html#3574" class="Bound">x</a><a id="3609" class="Symbol">)</a> <a id="3611" class="Symbol"></a> <a id="3613" href="Algebra.Definitions.html#3577" class="Bound">y</a> <a id="3615" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="3617" href="Algebra.Definitions.html#3579" class="Bound">z</a>
<a id="AlmostCancellative"></a><a id="3620" href="Algebra.Definitions.html#3620" class="Function">AlmostCancellative</a> <a id="3639" class="Symbol">:</a> <a id="3641" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="3643" class="Symbol"></a> <a id="3645" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="3649" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="3651" class="Symbol"></a> <a id="3653" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3657" class="Symbol">_</a>
<a id="3659" href="Algebra.Definitions.html#3620" class="Function">AlmostCancellative</a> <a id="3678" href="Algebra.Definitions.html#3678" class="Bound">e</a> <a id="3680" href="Algebra.Definitions.html#3680" class="Bound Operator">_•_</a> <a id="3684" class="Symbol">=</a> <a id="3686" href="Algebra.Definitions.html#3372" class="Function">AlmostLeftCancellative</a> <a id="3709" href="Algebra.Definitions.html#3678" class="Bound">e</a> <a id="3711" href="Algebra.Definitions.html#3680" class="Bound Operator">_•_</a> <a id="3715" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="3717" href="Algebra.Definitions.html#3495" class="Function">AlmostRightCancellative</a> <a id="3741" href="Algebra.Definitions.html#3678" class="Bound">e</a> <a id="3743" href="Algebra.Definitions.html#3680" class="Bound Operator">_•_</a>
<a id="Interchangable"></a><a id="3748" href="Algebra.Definitions.html#3748" class="Function">Interchangable</a> <a id="3763" class="Symbol">:</a> <a id="3765" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="3769" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="3771" class="Symbol"></a> <a id="3773" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="3777" href="Algebra.Definitions.html#525" class="Bound">A</a> <a id="3779" class="Symbol"></a> <a id="3781" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3785" class="Symbol">_</a>
<a id="3787" href="Algebra.Definitions.html#3748" class="Function">Interchangable</a> <a id="3802" href="Algebra.Definitions.html#3802" class="Bound Operator">_∘_</a> <a id="3806" href="Algebra.Definitions.html#3806" class="Bound Operator">_∙_</a> <a id="3810" class="Symbol">=</a> <a id="3812" class="Symbol"></a> <a id="3814" href="Algebra.Definitions.html#3814" class="Bound">w</a> <a id="3816" href="Algebra.Definitions.html#3816" class="Bound">x</a> <a id="3818" href="Algebra.Definitions.html#3818" class="Bound">y</a> <a id="3820" href="Algebra.Definitions.html#3820" class="Bound">z</a> <a id="3822" class="Symbol"></a> <a id="3824" class="Symbol">((</a><a id="3826" href="Algebra.Definitions.html#3814" class="Bound">w</a> <a id="3828" href="Algebra.Definitions.html#3806" class="Bound Operator"></a> <a id="3830" href="Algebra.Definitions.html#3816" class="Bound">x</a><a id="3831" class="Symbol">)</a> <a id="3833" href="Algebra.Definitions.html#3802" class="Bound Operator"></a> <a id="3835" class="Symbol">(</a><a id="3836" href="Algebra.Definitions.html#3818" class="Bound">y</a> <a id="3838" href="Algebra.Definitions.html#3806" class="Bound Operator"></a> <a id="3840" href="Algebra.Definitions.html#3820" class="Bound">z</a><a id="3841" class="Symbol">))</a> <a id="3844" href="Algebra.Definitions.html#563" class="Bound Operator"></a> <a id="3846" class="Symbol">((</a><a id="3848" href="Algebra.Definitions.html#3814" class="Bound">w</a> <a id="3850" href="Algebra.Definitions.html#3802" class="Bound Operator"></a> <a id="3852" href="Algebra.Definitions.html#3818" class="Bound">y</a><a id="3853" class="Symbol">)</a> <a id="3855" href="Algebra.Definitions.html#3806" class="Bound Operator"></a> <a id="3857" class="Symbol">(</a><a id="3858" href="Algebra.Definitions.html#3816" class="Bound">x</a> <a id="3860" href="Algebra.Definitions.html#3802" class="Bound Operator"></a> <a id="3862" href="Algebra.Definitions.html#3820" class="Bound">z</a><a id="3863" class="Symbol">))</a>
</pre></body></html>

View File

@ -0,0 +1,571 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Algebra.Structures</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Some algebraic structures (not packed up with sets, operations,</a>
<a id="173" class="Comment">-- etc.)</a>
<a id="182" class="Comment">------------------------------------------------------------------------</a>
<a id="256" class="Comment">-- The contents of this module should be accessed via `Algebra`, unless</a>
<a id="328" class="Comment">-- you want to parameterise it via the equality relation.</a>
<a id="387" class="Symbol">{-#</a> <a id="391" class="Keyword">OPTIONS</a> <a id="399" class="Pragma">--without-K</a> <a id="411" class="Pragma">--safe</a> <a id="418" class="Symbol">#-}</a>
<a id="423" class="Keyword">open</a> <a id="428" class="Keyword">import</a> <a id="435" href="Relation.Binary.html" class="Module">Relation.Binary</a> <a id="451" class="Keyword">using</a> <a id="457" class="Symbol">(</a><a id="458" href="Relation.Binary.Core.html#882" class="Function">Rel</a><a id="461" class="Symbol">;</a> <a id="463" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a><a id="469" class="Symbol">;</a> <a id="471" href="Relation.Binary.Structures.html#1522" class="Record">IsEquivalence</a><a id="484" class="Symbol">)</a>
<a id="487" class="Keyword">module</a> <a id="494" href="Algebra.Structures.html" class="Module">Algebra.Structures</a>
<a id="515" class="Symbol">{</a><a id="516" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="518" href="Algebra.Structures.html#518" class="Bound"></a><a id="519" class="Symbol">}</a> <a id="521" class="Symbol">{</a><a id="522" href="Algebra.Structures.html#522" class="Bound">A</a> <a id="524" class="Symbol">:</a> <a id="526" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="530" href="Algebra.Structures.html#516" class="Bound">a</a><a id="531" class="Symbol">}</a> <a id="534" class="Comment">-- The underlying set</a>
<a id="558" class="Symbol">(</a><a id="559" href="Algebra.Structures.html#559" class="Bound Operator">_≈_</a> <a id="563" class="Symbol">:</a> <a id="565" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="569" href="Algebra.Structures.html#522" class="Bound">A</a> <a id="571" href="Algebra.Structures.html#518" class="Bound"></a><a id="572" class="Symbol">)</a> <a id="577" class="Comment">-- The underlying equality relation</a>
<a id="615" class="Keyword">where</a>
<a id="622" class="Comment">-- The file is divided into sections depending on the arities of the</a>
<a id="691" class="Comment">-- components of the algebraic structure.</a>
<a id="734" class="Keyword">open</a> <a id="739" class="Keyword">import</a> <a id="746" href="Algebra.Core.html" class="Module">Algebra.Core</a>
<a id="759" class="Keyword">open</a> <a id="764" class="Keyword">import</a> <a id="771" href="Algebra.Definitions.html" class="Module">Algebra.Definitions</a> <a id="791" href="Algebra.Structures.html#559" class="Bound Operator">_≈_</a>
<a id="795" class="Keyword">import</a> <a id="802" href="Algebra.Consequences.Setoid.html" class="Module">Algebra.Consequences.Setoid</a> <a id="830" class="Symbol">as</a> <a id="833" class="Module">Consequences</a>
<a id="846" class="Keyword">open</a> <a id="851" class="Keyword">import</a> <a id="858" href="Data.Product.html" class="Module">Data.Product</a> <a id="871" class="Keyword">using</a> <a id="877" class="Symbol">(</a><a id="878" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">_,_</a><a id="881" class="Symbol">;</a> <a id="883" href="Agda.Builtin.Sigma.html#252" class="Field">proj₁</a><a id="888" class="Symbol">;</a> <a id="890" href="Agda.Builtin.Sigma.html#264" class="Field">proj₂</a><a id="895" class="Symbol">)</a>
<a id="897" class="Keyword">open</a> <a id="902" class="Keyword">import</a> <a id="909" href="Level.html" class="Module">Level</a> <a id="915" class="Keyword">using</a> <a id="921" class="Symbol">(</a><a id="922" href="Agda.Primitive.html#810" class="Primitive Operator">_⊔_</a><a id="925" class="Symbol">)</a>
<a id="928" class="Comment">------------------------------------------------------------------------</a>
<a id="1001" class="Comment">-- Structures with 1 binary operation</a>
<a id="1039" class="Comment">------------------------------------------------------------------------</a>
<a id="1113" class="Keyword">record</a> <a id="IsMagma"></a><a id="1120" href="Algebra.Structures.html#1120" class="Record">IsMagma</a> <a id="1128" class="Symbol">(</a><a id="1129" href="Algebra.Structures.html#1129" class="Bound"></a> <a id="1131" class="Symbol">:</a> <a id="1133" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="1137" href="Algebra.Structures.html#522" class="Bound">A</a><a id="1138" class="Symbol">)</a> <a id="1140" class="Symbol">:</a> <a id="1142" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1146" class="Symbol">(</a><a id="1147" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="1149" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1151" href="Algebra.Structures.html#518" class="Bound"></a><a id="1152" class="Symbol">)</a> <a id="1154" class="Keyword">where</a>
<a id="1162" class="Keyword">field</a>
<a id="IsMagma.isEquivalence"></a><a id="1172" href="Algebra.Structures.html#1172" class="Field">isEquivalence</a> <a id="1186" class="Symbol">:</a> <a id="1188" href="Relation.Binary.Structures.html#1522" class="Record">IsEquivalence</a> <a id="1202" href="Algebra.Structures.html#559" class="Bound Operator">_≈_</a>
<a id="IsMagma.∙-cong"></a><a id="1210" href="Algebra.Structures.html#1210" class="Field">∙-cong</a> <a id="1224" class="Symbol">:</a> <a id="1226" href="Algebra.Definitions.html#862" class="Function">Congruent₂</a> <a id="1237" href="Algebra.Structures.html#1129" class="Bound"></a>
<a id="1242" class="Keyword">open</a> <a id="1247" href="Relation.Binary.Structures.html#1522" class="Module">IsEquivalence</a> <a id="1261" href="Algebra.Structures.html#1172" class="Field">isEquivalence</a> <a id="1275" class="Keyword">public</a>
<a id="IsMagma.setoid"></a><a id="1285" href="Algebra.Structures.html#1285" class="Function">setoid</a> <a id="1292" class="Symbol">:</a> <a id="1294" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="1301" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="1303" href="Algebra.Structures.html#518" class="Bound"></a>
<a id="1307" href="Algebra.Structures.html#1285" class="Function">setoid</a> <a id="1314" class="Symbol">=</a> <a id="1316" class="Keyword">record</a> <a id="1323" class="Symbol">{</a> <a id="1325" href="Relation.Binary.Bundles.html#1132" class="Field">isEquivalence</a> <a id="1339" class="Symbol">=</a> <a id="1341" href="Algebra.Structures.html#1172" class="Field">isEquivalence</a> <a id="1355" class="Symbol">}</a>
<a id="IsMagma.∙-congˡ"></a><a id="1360" href="Algebra.Structures.html#1360" class="Function">∙-congˡ</a> <a id="1368" class="Symbol">:</a> <a id="1370" href="Algebra.Definitions.html#934" class="Function">LeftCongruent</a> <a id="1384" href="Algebra.Structures.html#1129" class="Bound"></a>
<a id="1388" href="Algebra.Structures.html#1360" class="Function">∙-congˡ</a> <a id="1396" href="Algebra.Structures.html#1396" class="Bound">y≈z</a> <a id="1400" class="Symbol">=</a> <a id="1402" href="Algebra.Structures.html#1210" class="Field">∙-cong</a> <a id="1409" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="1414" href="Algebra.Structures.html#1396" class="Bound">y≈z</a>
<a id="IsMagma.∙-congʳ"></a><a id="1421" href="Algebra.Structures.html#1421" class="Function">∙-congʳ</a> <a id="1429" class="Symbol">:</a> <a id="1431" href="Algebra.Definitions.html#1020" class="Function">RightCongruent</a> <a id="1446" href="Algebra.Structures.html#1129" class="Bound"></a>
<a id="1450" href="Algebra.Structures.html#1421" class="Function">∙-congʳ</a> <a id="1458" href="Algebra.Structures.html#1458" class="Bound">y≈z</a> <a id="1462" class="Symbol">=</a> <a id="1464" href="Algebra.Structures.html#1210" class="Field">∙-cong</a> <a id="1471" href="Algebra.Structures.html#1458" class="Bound">y≈z</a> <a id="1475" href="Relation.Binary.Structures.html#1568" class="Function">refl</a>
<a id="1482" class="Keyword">record</a> <a id="IsCommutativeMagma"></a><a id="1489" href="Algebra.Structures.html#1489" class="Record">IsCommutativeMagma</a> <a id="1508" class="Symbol">(</a><a id="1509" href="Algebra.Structures.html#1509" class="Bound"></a> <a id="1511" class="Symbol">:</a> <a id="1513" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="1517" href="Algebra.Structures.html#522" class="Bound">A</a><a id="1518" class="Symbol">)</a> <a id="1520" class="Symbol">:</a> <a id="1522" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1526" class="Symbol">(</a><a id="1527" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="1529" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1531" href="Algebra.Structures.html#518" class="Bound"></a><a id="1532" class="Symbol">)</a> <a id="1534" class="Keyword">where</a>
<a id="1542" class="Keyword">field</a>
<a id="IsCommutativeMagma.isMagma"></a><a id="1552" href="Algebra.Structures.html#1552" class="Field">isMagma</a> <a id="1560" class="Symbol">:</a> <a id="1562" href="Algebra.Structures.html#1120" class="Record">IsMagma</a> <a id="1570" href="Algebra.Structures.html#1509" class="Bound"></a>
<a id="IsCommutativeMagma.comm"></a><a id="1576" href="Algebra.Structures.html#1576" class="Field">comm</a> <a id="1584" class="Symbol">:</a> <a id="1586" href="Algebra.Definitions.html#1195" class="Function">Commutative</a> <a id="1598" href="Algebra.Structures.html#1509" class="Bound"></a>
<a id="1603" class="Keyword">open</a> <a id="1608" href="Algebra.Structures.html#1120" class="Module">IsMagma</a> <a id="1616" href="Algebra.Structures.html#1552" class="Field">isMagma</a> <a id="1624" class="Keyword">public</a>
<a id="1633" class="Keyword">record</a> <a id="IsSelectiveMagma"></a><a id="1640" href="Algebra.Structures.html#1640" class="Record">IsSelectiveMagma</a> <a id="1657" class="Symbol">(</a><a id="1658" href="Algebra.Structures.html#1658" class="Bound"></a> <a id="1660" class="Symbol">:</a> <a id="1662" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="1666" href="Algebra.Structures.html#522" class="Bound">A</a><a id="1667" class="Symbol">)</a> <a id="1669" class="Symbol">:</a> <a id="1671" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1675" class="Symbol">(</a><a id="1676" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="1678" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1680" href="Algebra.Structures.html#518" class="Bound"></a><a id="1681" class="Symbol">)</a> <a id="1683" class="Keyword">where</a>
<a id="1691" class="Keyword">field</a>
<a id="IsSelectiveMagma.isMagma"></a><a id="1701" href="Algebra.Structures.html#1701" class="Field">isMagma</a> <a id="1709" class="Symbol">:</a> <a id="1711" href="Algebra.Structures.html#1120" class="Record">IsMagma</a> <a id="1719" href="Algebra.Structures.html#1658" class="Bound"></a>
<a id="IsSelectiveMagma.sel"></a><a id="1725" href="Algebra.Structures.html#1725" class="Field">sel</a> <a id="1733" class="Symbol">:</a> <a id="1735" href="Algebra.Definitions.html#2782" class="Function">Selective</a> <a id="1745" href="Algebra.Structures.html#1658" class="Bound"></a>
<a id="1750" class="Keyword">open</a> <a id="1755" href="Algebra.Structures.html#1120" class="Module">IsMagma</a> <a id="1763" href="Algebra.Structures.html#1701" class="Field">isMagma</a> <a id="1771" class="Keyword">public</a>
<a id="1780" class="Keyword">record</a> <a id="IsSemigroup"></a><a id="1787" href="Algebra.Structures.html#1787" class="Record">IsSemigroup</a> <a id="1799" class="Symbol">(</a><a id="1800" href="Algebra.Structures.html#1800" class="Bound"></a> <a id="1802" class="Symbol">:</a> <a id="1804" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="1808" href="Algebra.Structures.html#522" class="Bound">A</a><a id="1809" class="Symbol">)</a> <a id="1811" class="Symbol">:</a> <a id="1813" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1817" class="Symbol">(</a><a id="1818" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="1820" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1822" href="Algebra.Structures.html#518" class="Bound"></a><a id="1823" class="Symbol">)</a> <a id="1825" class="Keyword">where</a>
<a id="1833" class="Keyword">field</a>
<a id="IsSemigroup.isMagma"></a><a id="1843" href="Algebra.Structures.html#1843" class="Field">isMagma</a> <a id="1851" class="Symbol">:</a> <a id="1853" href="Algebra.Structures.html#1120" class="Record">IsMagma</a> <a id="1861" href="Algebra.Structures.html#1800" class="Bound"></a>
<a id="IsSemigroup.assoc"></a><a id="1867" href="Algebra.Structures.html#1867" class="Field">assoc</a> <a id="1875" class="Symbol">:</a> <a id="1877" href="Algebra.Definitions.html#1108" class="Function">Associative</a> <a id="1889" href="Algebra.Structures.html#1800" class="Bound"></a>
<a id="1894" class="Keyword">open</a> <a id="1899" href="Algebra.Structures.html#1120" class="Module">IsMagma</a> <a id="1907" href="Algebra.Structures.html#1843" class="Field">isMagma</a> <a id="1915" class="Keyword">public</a>
<a id="1924" class="Keyword">record</a> <a id="IsBand"></a><a id="1931" href="Algebra.Structures.html#1931" class="Record">IsBand</a> <a id="1938" class="Symbol">(</a><a id="1939" href="Algebra.Structures.html#1939" class="Bound"></a> <a id="1941" class="Symbol">:</a> <a id="1943" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="1947" href="Algebra.Structures.html#522" class="Bound">A</a><a id="1948" class="Symbol">)</a> <a id="1950" class="Symbol">:</a> <a id="1952" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1956" class="Symbol">(</a><a id="1957" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="1959" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1961" href="Algebra.Structures.html#518" class="Bound"></a><a id="1962" class="Symbol">)</a> <a id="1964" class="Keyword">where</a>
<a id="1972" class="Keyword">field</a>
<a id="IsBand.isSemigroup"></a><a id="1982" href="Algebra.Structures.html#1982" class="Field">isSemigroup</a> <a id="1994" class="Symbol">:</a> <a id="1996" href="Algebra.Structures.html#1787" class="Record">IsSemigroup</a> <a id="2008" href="Algebra.Structures.html#1939" class="Bound"></a>
<a id="IsBand.idem"></a><a id="2014" href="Algebra.Structures.html#2014" class="Field">idem</a> <a id="2026" class="Symbol">:</a> <a id="2028" href="Algebra.Definitions.html#2647" class="Function">Idempotent</a> <a id="2039" href="Algebra.Structures.html#1939" class="Bound"></a>
<a id="2044" class="Keyword">open</a> <a id="2049" href="Algebra.Structures.html#1787" class="Module">IsSemigroup</a> <a id="2061" href="Algebra.Structures.html#1982" class="Field">isSemigroup</a> <a id="2073" class="Keyword">public</a>
<a id="2082" class="Keyword">record</a> <a id="IsCommutativeSemigroup"></a><a id="2089" href="Algebra.Structures.html#2089" class="Record">IsCommutativeSemigroup</a> <a id="2112" class="Symbol">(</a><a id="2113" href="Algebra.Structures.html#2113" class="Bound"></a> <a id="2115" class="Symbol">:</a> <a id="2117" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="2121" href="Algebra.Structures.html#522" class="Bound">A</a><a id="2122" class="Symbol">)</a> <a id="2124" class="Symbol">:</a> <a id="2126" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2130" class="Symbol">(</a><a id="2131" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="2133" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2135" href="Algebra.Structures.html#518" class="Bound"></a><a id="2136" class="Symbol">)</a> <a id="2138" class="Keyword">where</a>
<a id="2146" class="Keyword">field</a>
<a id="IsCommutativeSemigroup.isSemigroup"></a><a id="2156" href="Algebra.Structures.html#2156" class="Field">isSemigroup</a> <a id="2168" class="Symbol">:</a> <a id="2170" href="Algebra.Structures.html#1787" class="Record">IsSemigroup</a> <a id="2182" href="Algebra.Structures.html#2113" class="Bound"></a>
<a id="IsCommutativeSemigroup.comm"></a><a id="2188" href="Algebra.Structures.html#2188" class="Field">comm</a> <a id="2200" class="Symbol">:</a> <a id="2202" href="Algebra.Definitions.html#1195" class="Function">Commutative</a> <a id="2214" href="Algebra.Structures.html#2113" class="Bound"></a>
<a id="2219" class="Keyword">open</a> <a id="2224" href="Algebra.Structures.html#1787" class="Module">IsSemigroup</a> <a id="2236" href="Algebra.Structures.html#2156" class="Field">isSemigroup</a> <a id="2248" class="Keyword">public</a>
<a id="IsCommutativeSemigroup.isCommutativeMagma"></a><a id="2258" href="Algebra.Structures.html#2258" class="Function">isCommutativeMagma</a> <a id="2277" class="Symbol">:</a> <a id="2279" href="Algebra.Structures.html#1489" class="Record">IsCommutativeMagma</a> <a id="2298" href="Algebra.Structures.html#2113" class="Bound"></a>
<a id="2302" href="Algebra.Structures.html#2258" class="Function">isCommutativeMagma</a> <a id="2321" class="Symbol">=</a> <a id="2323" class="Keyword">record</a>
<a id="2334" class="Symbol">{</a> <a id="2336" href="Algebra.Structures.html#1552" class="Field">isMagma</a> <a id="2344" class="Symbol">=</a> <a id="2346" href="Algebra.Structures.html#1843" class="Function">isMagma</a>
<a id="2358" class="Symbol">;</a> <a id="2360" href="Algebra.Structures.html#1576" class="Field">comm</a> <a id="2368" class="Symbol">=</a> <a id="2370" href="Algebra.Structures.html#2188" class="Field">comm</a>
<a id="2379" class="Symbol">}</a>
<a id="2383" class="Keyword">record</a> <a id="IsSemilattice"></a><a id="2390" href="Algebra.Structures.html#2390" class="Record">IsSemilattice</a> <a id="2404" class="Symbol">(</a><a id="2405" href="Algebra.Structures.html#2405" class="Bound"></a> <a id="2407" class="Symbol">:</a> <a id="2409" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="2413" href="Algebra.Structures.html#522" class="Bound">A</a><a id="2414" class="Symbol">)</a> <a id="2416" class="Symbol">:</a> <a id="2418" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2422" class="Symbol">(</a><a id="2423" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="2425" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2427" href="Algebra.Structures.html#518" class="Bound"></a><a id="2428" class="Symbol">)</a> <a id="2430" class="Keyword">where</a>
<a id="2438" class="Keyword">field</a>
<a id="IsSemilattice.isBand"></a><a id="2448" href="Algebra.Structures.html#2448" class="Field">isBand</a> <a id="2455" class="Symbol">:</a> <a id="2457" href="Algebra.Structures.html#1931" class="Record">IsBand</a> <a id="2464" href="Algebra.Structures.html#2405" class="Bound"></a>
<a id="IsSemilattice.comm"></a><a id="2470" href="Algebra.Structures.html#2470" class="Field">comm</a> <a id="2477" class="Symbol">:</a> <a id="2479" href="Algebra.Definitions.html#1195" class="Function">Commutative</a> <a id="2491" href="Algebra.Structures.html#2405" class="Bound"></a>
<a id="2496" class="Keyword">open</a> <a id="2501" href="Algebra.Structures.html#1931" class="Module">IsBand</a> <a id="2508" href="Algebra.Structures.html#2448" class="Field">isBand</a> <a id="2515" class="Keyword">public</a>
<a id="2526" class="Keyword">renaming</a> <a id="2535" class="Symbol">(</a><a id="2536" href="Algebra.Structures.html#1210" class="Function">∙-cong</a> <a id="2543" class="Symbol">to</a> <a id="2546" class="Function">∧-cong</a><a id="2552" class="Symbol">;</a> <a id="2554" href="Algebra.Structures.html#1360" class="Function">∙-congˡ</a> <a id="2562" class="Symbol">to</a> <a id="2565" class="Function">∧-congˡ</a><a id="2572" class="Symbol">;</a> <a id="2574" href="Algebra.Structures.html#1421" class="Function">∙-congʳ</a> <a id="2582" class="Symbol">to</a> <a id="2585" class="Function">∧-congʳ</a><a id="2592" class="Symbol">)</a>
<a id="2597" class="Comment">------------------------------------------------------------------------</a>
<a id="2670" class="Comment">-- Structures with 1 binary operation &amp; 1 element</a>
<a id="2720" class="Comment">------------------------------------------------------------------------</a>
<a id="2794" class="Keyword">record</a> <a id="IsMonoid"></a><a id="2801" href="Algebra.Structures.html#2801" class="Record">IsMonoid</a> <a id="2810" class="Symbol">(</a><a id="2811" href="Algebra.Structures.html#2811" class="Bound"></a> <a id="2813" class="Symbol">:</a> <a id="2815" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="2819" href="Algebra.Structures.html#522" class="Bound">A</a><a id="2820" class="Symbol">)</a> <a id="2822" class="Symbol">(</a><a id="2823" href="Algebra.Structures.html#2823" class="Bound">ε</a> <a id="2825" class="Symbol">:</a> <a id="2827" href="Algebra.Structures.html#522" class="Bound">A</a><a id="2828" class="Symbol">)</a> <a id="2830" class="Symbol">:</a> <a id="2832" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2836" class="Symbol">(</a><a id="2837" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="2839" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2841" href="Algebra.Structures.html#518" class="Bound"></a><a id="2842" class="Symbol">)</a> <a id="2844" class="Keyword">where</a>
<a id="2852" class="Keyword">field</a>
<a id="IsMonoid.isSemigroup"></a><a id="2862" href="Algebra.Structures.html#2862" class="Field">isSemigroup</a> <a id="2874" class="Symbol">:</a> <a id="2876" href="Algebra.Structures.html#1787" class="Record">IsSemigroup</a> <a id="2888" href="Algebra.Structures.html#2811" class="Bound"></a>
<a id="IsMonoid.identity"></a><a id="2894" href="Algebra.Structures.html#2894" class="Field">identity</a> <a id="2906" class="Symbol">:</a> <a id="2908" href="Algebra.Definitions.html#1416" class="Function">Identity</a> <a id="2917" href="Algebra.Structures.html#2823" class="Bound">ε</a> <a id="2919" href="Algebra.Structures.html#2811" class="Bound"></a>
<a id="2924" class="Keyword">open</a> <a id="2929" href="Algebra.Structures.html#1787" class="Module">IsSemigroup</a> <a id="2941" href="Algebra.Structures.html#2862" class="Field">isSemigroup</a> <a id="2953" class="Keyword">public</a>
<a id="IsMonoid.identityˡ"></a><a id="2963" href="Algebra.Structures.html#2963" class="Function">identityˡ</a> <a id="2973" class="Symbol">:</a> <a id="2975" href="Algebra.Definitions.html#1268" class="Function">LeftIdentity</a> <a id="2988" href="Algebra.Structures.html#2823" class="Bound">ε</a> <a id="2990" href="Algebra.Structures.html#2811" class="Bound"></a>
<a id="2994" href="Algebra.Structures.html#2963" class="Function">identityˡ</a> <a id="3004" class="Symbol">=</a> <a id="3006" href="Agda.Builtin.Sigma.html#252" class="Field">proj₁</a> <a id="3012" href="Algebra.Structures.html#2894" class="Field">identity</a>
<a id="IsMonoid.identityʳ"></a><a id="3024" href="Algebra.Structures.html#3024" class="Function">identityʳ</a> <a id="3034" class="Symbol">:</a> <a id="3036" href="Algebra.Definitions.html#1341" class="Function">RightIdentity</a> <a id="3050" href="Algebra.Structures.html#2823" class="Bound">ε</a> <a id="3052" href="Algebra.Structures.html#2811" class="Bound"></a>
<a id="3056" href="Algebra.Structures.html#3024" class="Function">identityʳ</a> <a id="3066" class="Symbol">=</a> <a id="3068" href="Agda.Builtin.Sigma.html#264" class="Field">proj₂</a> <a id="3074" href="Algebra.Structures.html#2894" class="Field">identity</a>
<a id="3085" class="Keyword">record</a> <a id="IsCommutativeMonoid"></a><a id="3092" href="Algebra.Structures.html#3092" class="Record">IsCommutativeMonoid</a> <a id="3112" class="Symbol">(</a><a id="3113" href="Algebra.Structures.html#3113" class="Bound"></a> <a id="3115" class="Symbol">:</a> <a id="3117" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="3121" href="Algebra.Structures.html#522" class="Bound">A</a><a id="3122" class="Symbol">)</a> <a id="3124" class="Symbol">(</a><a id="3125" href="Algebra.Structures.html#3125" class="Bound">ε</a> <a id="3127" class="Symbol">:</a> <a id="3129" href="Algebra.Structures.html#522" class="Bound">A</a><a id="3130" class="Symbol">)</a> <a id="3132" class="Symbol">:</a> <a id="3134" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3138" class="Symbol">(</a><a id="3139" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="3141" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="3143" href="Algebra.Structures.html#518" class="Bound"></a><a id="3144" class="Symbol">)</a> <a id="3146" class="Keyword">where</a>
<a id="3154" class="Keyword">field</a>
<a id="IsCommutativeMonoid.isMonoid"></a><a id="3164" href="Algebra.Structures.html#3164" class="Field">isMonoid</a> <a id="3173" class="Symbol">:</a> <a id="3175" href="Algebra.Structures.html#2801" class="Record">IsMonoid</a> <a id="3184" href="Algebra.Structures.html#3113" class="Bound"></a> <a id="3186" href="Algebra.Structures.html#3125" class="Bound">ε</a>
<a id="IsCommutativeMonoid.comm"></a><a id="3192" href="Algebra.Structures.html#3192" class="Field">comm</a> <a id="3201" class="Symbol">:</a> <a id="3203" href="Algebra.Definitions.html#1195" class="Function">Commutative</a> <a id="3215" href="Algebra.Structures.html#3113" class="Bound"></a>
<a id="3220" class="Keyword">open</a> <a id="3225" href="Algebra.Structures.html#2801" class="Module">IsMonoid</a> <a id="3234" href="Algebra.Structures.html#3164" class="Field">isMonoid</a> <a id="3243" class="Keyword">public</a>
<a id="IsCommutativeMonoid.isCommutativeSemigroup"></a><a id="3253" href="Algebra.Structures.html#3253" class="Function">isCommutativeSemigroup</a> <a id="3276" class="Symbol">:</a> <a id="3278" href="Algebra.Structures.html#2089" class="Record">IsCommutativeSemigroup</a> <a id="3301" href="Algebra.Structures.html#3113" class="Bound"></a>
<a id="3305" href="Algebra.Structures.html#3253" class="Function">isCommutativeSemigroup</a> <a id="3328" class="Symbol">=</a> <a id="3330" class="Keyword">record</a>
<a id="3341" class="Symbol">{</a> <a id="3343" href="Algebra.Structures.html#2156" class="Field">isSemigroup</a> <a id="3355" class="Symbol">=</a> <a id="3357" href="Algebra.Structures.html#2862" class="Function">isSemigroup</a>
<a id="3373" class="Symbol">;</a> <a id="3375" href="Algebra.Structures.html#2188" class="Field">comm</a> <a id="3387" class="Symbol">=</a> <a id="3389" href="Algebra.Structures.html#3192" class="Field">comm</a>
<a id="3398" class="Symbol">}</a>
<a id="3403" class="Keyword">open</a> <a id="3408" href="Algebra.Structures.html#2089" class="Module">IsCommutativeSemigroup</a> <a id="3431" href="Algebra.Structures.html#3253" class="Function">isCommutativeSemigroup</a> <a id="3454" class="Keyword">public</a>
<a id="3465" class="Keyword">using</a> <a id="3471" class="Symbol">(</a><a id="3472" href="Algebra.Structures.html#2258" class="Function">isCommutativeMagma</a><a id="3490" class="Symbol">)</a>
<a id="3494" class="Keyword">record</a> <a id="IsIdempotentCommutativeMonoid"></a><a id="3501" href="Algebra.Structures.html#3501" class="Record">IsIdempotentCommutativeMonoid</a> <a id="3531" class="Symbol">(</a><a id="3532" href="Algebra.Structures.html#3532" class="Bound"></a> <a id="3534" class="Symbol">:</a> <a id="3536" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="3540" href="Algebra.Structures.html#522" class="Bound">A</a><a id="3541" class="Symbol">)</a>
<a id="3580" class="Symbol">(</a><a id="3581" href="Algebra.Structures.html#3581" class="Bound">ε</a> <a id="3583" class="Symbol">:</a> <a id="3585" href="Algebra.Structures.html#522" class="Bound">A</a><a id="3586" class="Symbol">)</a> <a id="3588" class="Symbol">:</a> <a id="3590" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3594" class="Symbol">(</a><a id="3595" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="3597" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="3599" href="Algebra.Structures.html#518" class="Bound"></a><a id="3600" class="Symbol">)</a> <a id="3602" class="Keyword">where</a>
<a id="3610" class="Keyword">field</a>
<a id="IsIdempotentCommutativeMonoid.isCommutativeMonoid"></a><a id="3620" href="Algebra.Structures.html#3620" class="Field">isCommutativeMonoid</a> <a id="3640" class="Symbol">:</a> <a id="3642" href="Algebra.Structures.html#3092" class="Record">IsCommutativeMonoid</a> <a id="3662" href="Algebra.Structures.html#3532" class="Bound"></a> <a id="3664" href="Algebra.Structures.html#3581" class="Bound">ε</a>
<a id="IsIdempotentCommutativeMonoid.idem"></a><a id="3670" href="Algebra.Structures.html#3670" class="Field">idem</a> <a id="3690" class="Symbol">:</a> <a id="3692" href="Algebra.Definitions.html#2647" class="Function">Idempotent</a> <a id="3703" href="Algebra.Structures.html#3532" class="Bound"></a>
<a id="3708" class="Keyword">open</a> <a id="3713" href="Algebra.Structures.html#3092" class="Module">IsCommutativeMonoid</a> <a id="3733" href="Algebra.Structures.html#3620" class="Field">isCommutativeMonoid</a> <a id="3753" class="Keyword">public</a>
<a id="3762" class="Comment">-- Idempotent commutative monoids are also known as bounded lattices.</a>
<a id="3832" class="Comment">-- Note that the BoundedLattice necessarily uses the notation inherited</a>
<a id="3904" class="Comment">-- from monoids rather than lattices.</a>
<a id="IsBoundedLattice"></a><a id="3943" href="Algebra.Structures.html#3943" class="Function">IsBoundedLattice</a> <a id="3960" class="Symbol">=</a> <a id="3962" href="Algebra.Structures.html#3501" class="Record">IsIdempotentCommutativeMonoid</a>
<a id="3993" class="Keyword">module</a> <a id="IsBoundedLattice"></a><a id="4000" href="Algebra.Structures.html#4000" class="Module">IsBoundedLattice</a> <a id="4017" class="Symbol">{</a><a id="4018" href="Algebra.Structures.html#4018" class="Bound"></a> <a id="4020" class="Symbol">:</a> <a id="4022" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="4026" href="Algebra.Structures.html#522" class="Bound">A</a><a id="4027" class="Symbol">}</a>
<a id="4053" class="Symbol">{</a><a id="4054" href="Algebra.Structures.html#4054" class="Bound">ε</a> <a id="4056" class="Symbol">:</a> <a id="4058" href="Algebra.Structures.html#522" class="Bound">A</a><a id="4059" class="Symbol">}</a>
<a id="4085" class="Symbol">(</a><a id="4086" href="Algebra.Structures.html#4086" class="Bound">isIdemCommMonoid</a> <a id="4103" class="Symbol">:</a> <a id="4105" href="Algebra.Structures.html#3501" class="Record">IsIdempotentCommutativeMonoid</a> <a id="4135" href="Algebra.Structures.html#4018" class="Bound"></a> <a id="4137" href="Algebra.Structures.html#4054" class="Bound">ε</a><a id="4138" class="Symbol">)</a> <a id="4140" class="Symbol">=</a>
<a id="4149" href="Algebra.Structures.html#3501" class="Module">IsIdempotentCommutativeMonoid</a> <a id="4179" href="Algebra.Structures.html#4086" class="Bound">isIdemCommMonoid</a>
<a id="4198" class="Comment">------------------------------------------------------------------------</a>
<a id="4271" class="Comment">-- Structures with 1 binary operation, 1 unary operation &amp; 1 element</a>
<a id="4340" class="Comment">------------------------------------------------------------------------</a>
<a id="4414" class="Keyword">record</a> <a id="IsGroup"></a><a id="4421" href="Algebra.Structures.html#4421" class="Record">IsGroup</a> <a id="4429" class="Symbol">(</a><a id="4430" href="Algebra.Structures.html#4430" class="Bound Operator">_∙_</a> <a id="4434" class="Symbol">:</a> <a id="4436" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="4440" href="Algebra.Structures.html#522" class="Bound">A</a><a id="4441" class="Symbol">)</a> <a id="4443" class="Symbol">(</a><a id="4444" href="Algebra.Structures.html#4444" class="Bound">ε</a> <a id="4446" class="Symbol">:</a> <a id="4448" href="Algebra.Structures.html#522" class="Bound">A</a><a id="4449" class="Symbol">)</a> <a id="4451" class="Symbol">(</a><a id="4452" href="Algebra.Structures.html#4452" class="Bound Operator">_⁻¹</a> <a id="4456" class="Symbol">:</a> <a id="4458" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="4462" href="Algebra.Structures.html#522" class="Bound">A</a><a id="4463" class="Symbol">)</a> <a id="4465" class="Symbol">:</a> <a id="4467" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4471" class="Symbol">(</a><a id="4472" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="4474" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="4476" href="Algebra.Structures.html#518" class="Bound"></a><a id="4477" class="Symbol">)</a> <a id="4479" class="Keyword">where</a>
<a id="4487" class="Keyword">field</a>
<a id="IsGroup.isMonoid"></a><a id="4497" href="Algebra.Structures.html#4497" class="Field">isMonoid</a> <a id="4507" class="Symbol">:</a> <a id="4509" href="Algebra.Structures.html#2801" class="Record">IsMonoid</a> <a id="4518" href="Algebra.Structures.html#4430" class="Bound Operator">_∙_</a> <a id="4522" href="Algebra.Structures.html#4444" class="Bound">ε</a>
<a id="IsGroup.inverse"></a><a id="4528" href="Algebra.Structures.html#4528" class="Field">inverse</a> <a id="4538" class="Symbol">:</a> <a id="4540" href="Algebra.Definitions.html#1882" class="Function">Inverse</a> <a id="4548" href="Algebra.Structures.html#4444" class="Bound">ε</a> <a id="4550" href="Algebra.Structures.html#4452" class="Bound Operator">_⁻¹</a> <a id="4554" href="Algebra.Structures.html#4430" class="Bound Operator">_∙_</a>
<a id="IsGroup.⁻¹-cong"></a><a id="4562" href="Algebra.Structures.html#4562" class="Field">⁻¹-cong</a> <a id="4572" class="Symbol">:</a> <a id="4574" href="Algebra.Definitions.html#797" class="Function">Congruent₁</a> <a id="4585" href="Algebra.Structures.html#4452" class="Bound Operator">_⁻¹</a>
<a id="4592" class="Keyword">open</a> <a id="4597" href="Algebra.Structures.html#2801" class="Module">IsMonoid</a> <a id="4606" href="Algebra.Structures.html#4497" class="Field">isMonoid</a> <a id="4615" class="Keyword">public</a>
<a id="4625" class="Keyword">infixl</a> <a id="4632" class="Number">6</a> <a id="4634" href="Algebra.Structures.html#4640" class="Function Operator">_-_</a>
<a id="IsGroup._-_"></a><a id="4640" href="Algebra.Structures.html#4640" class="Function Operator">_-_</a> <a id="4644" class="Symbol">:</a> <a id="4646" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="4650" href="Algebra.Structures.html#522" class="Bound">A</a>
<a id="4654" href="Algebra.Structures.html#4654" class="Bound">x</a> <a id="4656" href="Algebra.Structures.html#4640" class="Function Operator">-</a> <a id="4658" href="Algebra.Structures.html#4658" class="Bound">y</a> <a id="4660" class="Symbol">=</a> <a id="4662" href="Algebra.Structures.html#4654" class="Bound">x</a> <a id="4664" href="Algebra.Structures.html#4430" class="Bound Operator"></a> <a id="4666" class="Symbol">(</a><a id="4667" href="Algebra.Structures.html#4658" class="Bound">y</a> <a id="4669" href="Algebra.Structures.html#4452" class="Bound Operator">⁻¹</a><a id="4671" class="Symbol">)</a>
<a id="IsGroup.inverseˡ"></a><a id="4676" href="Algebra.Structures.html#4676" class="Function">inverseˡ</a> <a id="4685" class="Symbol">:</a> <a id="4687" href="Algebra.Definitions.html#1704" class="Function">LeftInverse</a> <a id="4699" href="Algebra.Structures.html#4444" class="Bound">ε</a> <a id="4701" href="Algebra.Structures.html#4452" class="Bound Operator">_⁻¹</a> <a id="4705" href="Algebra.Structures.html#4430" class="Bound Operator">_∙_</a>
<a id="4711" href="Algebra.Structures.html#4676" class="Function">inverseˡ</a> <a id="4720" class="Symbol">=</a> <a id="4722" href="Agda.Builtin.Sigma.html#252" class="Field">proj₁</a> <a id="4728" href="Algebra.Structures.html#4528" class="Field">inverse</a>
<a id="IsGroup.inverseʳ"></a><a id="4739" href="Algebra.Structures.html#4739" class="Function">inverseʳ</a> <a id="4748" class="Symbol">:</a> <a id="4750" href="Algebra.Definitions.html#1792" class="Function">RightInverse</a> <a id="4763" href="Algebra.Structures.html#4444" class="Bound">ε</a> <a id="4765" href="Algebra.Structures.html#4452" class="Bound Operator">_⁻¹</a> <a id="4769" href="Algebra.Structures.html#4430" class="Bound Operator">_∙_</a>
<a id="4775" href="Algebra.Structures.html#4739" class="Function">inverseʳ</a> <a id="4784" class="Symbol">=</a> <a id="4786" href="Agda.Builtin.Sigma.html#264" class="Field">proj₂</a> <a id="4792" href="Algebra.Structures.html#4528" class="Field">inverse</a>
<a id="IsGroup.uniqueˡ-⁻¹"></a><a id="4803" href="Algebra.Structures.html#4803" class="Function">uniqueˡ-⁻¹</a> <a id="4814" class="Symbol">:</a> <a id="4816" class="Symbol"></a> <a id="4818" href="Algebra.Structures.html#4818" class="Bound">x</a> <a id="4820" href="Algebra.Structures.html#4820" class="Bound">y</a> <a id="4822" class="Symbol"></a> <a id="4824" class="Symbol">(</a><a id="4825" href="Algebra.Structures.html#4818" class="Bound">x</a> <a id="4827" href="Algebra.Structures.html#4430" class="Bound Operator"></a> <a id="4829" href="Algebra.Structures.html#4820" class="Bound">y</a><a id="4830" class="Symbol">)</a> <a id="4832" href="Algebra.Structures.html#559" class="Bound Operator"></a> <a id="4834" href="Algebra.Structures.html#4444" class="Bound">ε</a> <a id="4836" class="Symbol"></a> <a id="4838" href="Algebra.Structures.html#4818" class="Bound">x</a> <a id="4840" href="Algebra.Structures.html#559" class="Bound Operator"></a> <a id="4842" class="Symbol">(</a><a id="4843" href="Algebra.Structures.html#4820" class="Bound">y</a> <a id="4845" href="Algebra.Structures.html#4452" class="Bound Operator">⁻¹</a><a id="4847" class="Symbol">)</a>
<a id="4851" href="Algebra.Structures.html#4803" class="Function">uniqueˡ-⁻¹</a> <a id="4862" class="Symbol">=</a> <a id="4864" href="Algebra.Consequences.Setoid.html#3601" class="Function">Consequences.assoc+id+invʳ⇒invˡ-unique</a>
<a id="4919" href="Algebra.Structures.html#1285" class="Function">setoid</a> <a id="4926" href="Algebra.Structures.html#1210" class="Function">∙-cong</a> <a id="4933" href="Algebra.Structures.html#1867" class="Function">assoc</a> <a id="4939" href="Algebra.Structures.html#2894" class="Function">identity</a> <a id="4948" href="Algebra.Structures.html#4739" class="Function">inverseʳ</a>
<a id="IsGroup.uniqueʳ-⁻¹"></a><a id="4960" href="Algebra.Structures.html#4960" class="Function">uniqueʳ-⁻¹</a> <a id="4971" class="Symbol">:</a> <a id="4973" class="Symbol"></a> <a id="4975" href="Algebra.Structures.html#4975" class="Bound">x</a> <a id="4977" href="Algebra.Structures.html#4977" class="Bound">y</a> <a id="4979" class="Symbol"></a> <a id="4981" class="Symbol">(</a><a id="4982" href="Algebra.Structures.html#4975" class="Bound">x</a> <a id="4984" href="Algebra.Structures.html#4430" class="Bound Operator"></a> <a id="4986" href="Algebra.Structures.html#4977" class="Bound">y</a><a id="4987" class="Symbol">)</a> <a id="4989" href="Algebra.Structures.html#559" class="Bound Operator"></a> <a id="4991" href="Algebra.Structures.html#4444" class="Bound">ε</a> <a id="4993" class="Symbol"></a> <a id="4995" href="Algebra.Structures.html#4977" class="Bound">y</a> <a id="4997" href="Algebra.Structures.html#559" class="Bound Operator"></a> <a id="4999" class="Symbol">(</a><a id="5000" href="Algebra.Structures.html#4975" class="Bound">x</a> <a id="5002" href="Algebra.Structures.html#4452" class="Bound Operator">⁻¹</a><a id="5004" class="Symbol">)</a>
<a id="5008" href="Algebra.Structures.html#4960" class="Function">uniqueʳ-⁻¹</a> <a id="5019" class="Symbol">=</a> <a id="5021" href="Algebra.Consequences.Setoid.html#4088" class="Function">Consequences.assoc+id+invˡ⇒invʳ-unique</a>
<a id="5076" href="Algebra.Structures.html#1285" class="Function">setoid</a> <a id="5083" href="Algebra.Structures.html#1210" class="Function">∙-cong</a> <a id="5090" href="Algebra.Structures.html#1867" class="Function">assoc</a> <a id="5096" href="Algebra.Structures.html#2894" class="Function">identity</a> <a id="5105" href="Algebra.Structures.html#4676" class="Function">inverseˡ</a>
<a id="5116" class="Keyword">record</a> <a id="IsAbelianGroup"></a><a id="5123" href="Algebra.Structures.html#5123" class="Record">IsAbelianGroup</a> <a id="5138" class="Symbol">(</a><a id="5139" href="Algebra.Structures.html#5139" class="Bound"></a> <a id="5141" class="Symbol">:</a> <a id="5143" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="5147" href="Algebra.Structures.html#522" class="Bound">A</a><a id="5148" class="Symbol">)</a>
<a id="5172" class="Symbol">(</a><a id="5173" href="Algebra.Structures.html#5173" class="Bound">ε</a> <a id="5175" class="Symbol">:</a> <a id="5177" href="Algebra.Structures.html#522" class="Bound">A</a><a id="5178" class="Symbol">)</a> <a id="5180" class="Symbol">(</a><a id="5181" href="Algebra.Structures.html#5181" class="Bound">⁻¹</a> <a id="5184" class="Symbol">:</a> <a id="5186" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="5190" href="Algebra.Structures.html#522" class="Bound">A</a><a id="5191" class="Symbol">)</a> <a id="5193" class="Symbol">:</a> <a id="5195" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="5199" class="Symbol">(</a><a id="5200" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="5202" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="5204" href="Algebra.Structures.html#518" class="Bound"></a><a id="5205" class="Symbol">)</a> <a id="5207" class="Keyword">where</a>
<a id="5215" class="Keyword">field</a>
<a id="IsAbelianGroup.isGroup"></a><a id="5225" href="Algebra.Structures.html#5225" class="Field">isGroup</a> <a id="5233" class="Symbol">:</a> <a id="5235" href="Algebra.Structures.html#4421" class="Record">IsGroup</a> <a id="5243" href="Algebra.Structures.html#5139" class="Bound"></a> <a id="5245" href="Algebra.Structures.html#5173" class="Bound">ε</a> <a id="5247" href="Algebra.Structures.html#5181" class="Bound">⁻¹</a>
<a id="IsAbelianGroup.comm"></a><a id="5254" href="Algebra.Structures.html#5254" class="Field">comm</a> <a id="5262" class="Symbol">:</a> <a id="5264" href="Algebra.Definitions.html#1195" class="Function">Commutative</a> <a id="5276" href="Algebra.Structures.html#5139" class="Bound"></a>
<a id="5281" class="Keyword">open</a> <a id="5286" href="Algebra.Structures.html#4421" class="Module">IsGroup</a> <a id="5294" href="Algebra.Structures.html#5225" class="Field">isGroup</a> <a id="5302" class="Keyword">public</a>
<a id="IsAbelianGroup.isCommutativeMonoid"></a><a id="5312" href="Algebra.Structures.html#5312" class="Function">isCommutativeMonoid</a> <a id="5332" class="Symbol">:</a> <a id="5334" href="Algebra.Structures.html#3092" class="Record">IsCommutativeMonoid</a> <a id="5354" href="Algebra.Structures.html#5139" class="Bound"></a> <a id="5356" href="Algebra.Structures.html#5173" class="Bound">ε</a>
<a id="5360" href="Algebra.Structures.html#5312" class="Function">isCommutativeMonoid</a> <a id="5380" class="Symbol">=</a> <a id="5382" class="Keyword">record</a>
<a id="5393" class="Symbol">{</a> <a id="5395" href="Algebra.Structures.html#3164" class="Field">isMonoid</a> <a id="5404" class="Symbol">=</a> <a id="5406" href="Algebra.Structures.html#4497" class="Function">isMonoid</a>
<a id="5419" class="Symbol">;</a> <a id="5421" href="Algebra.Structures.html#3192" class="Field">comm</a> <a id="5430" class="Symbol">=</a> <a id="5432" href="Algebra.Structures.html#5254" class="Field">comm</a>
<a id="5441" class="Symbol">}</a>
<a id="5446" class="Keyword">open</a> <a id="5451" href="Algebra.Structures.html#3092" class="Module">IsCommutativeMonoid</a> <a id="5471" href="Algebra.Structures.html#5312" class="Function">isCommutativeMonoid</a> <a id="5491" class="Keyword">public</a>
<a id="5502" class="Keyword">using</a> <a id="5508" class="Symbol">(</a><a id="5509" href="Algebra.Structures.html#2258" class="Function">isCommutativeMagma</a><a id="5527" class="Symbol">;</a> <a id="5529" href="Algebra.Structures.html#3253" class="Function">isCommutativeSemigroup</a><a id="5551" class="Symbol">)</a>
<a id="5555" class="Comment">------------------------------------------------------------------------</a>
<a id="5628" class="Comment">-- Structures with 2 binary operations</a>
<a id="5667" class="Comment">------------------------------------------------------------------------</a>
<a id="5741" class="Comment">-- Note that `IsLattice` is not defined in terms of `IsSemilattice`</a>
<a id="5809" class="Comment">-- because the idempotence laws of and ∧ can be derived from the</a>
<a id="5876" class="Comment">-- absorption laws, which makes the corresponding &quot;idem&quot; fields</a>
<a id="5940" class="Comment">-- redundant. The derived idempotence laws are stated and proved in</a>
<a id="6009" class="Comment">-- `Algebra.Properties.Lattice` along with the fact that every lattice</a>
<a id="6080" class="Comment">-- consists of two semilattices.</a>
<a id="6114" class="Keyword">record</a> <a id="IsLattice"></a><a id="6121" href="Algebra.Structures.html#6121" class="Record">IsLattice</a> <a id="6131" class="Symbol">(</a><a id="6132" href="Algebra.Structures.html#6132" class="Bound"></a> <a id="6134" href="Algebra.Structures.html#6134" class="Bound"></a> <a id="6136" class="Symbol">:</a> <a id="6138" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="6142" href="Algebra.Structures.html#522" class="Bound">A</a><a id="6143" class="Symbol">)</a> <a id="6145" class="Symbol">:</a> <a id="6147" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="6151" class="Symbol">(</a><a id="6152" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="6154" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="6156" href="Algebra.Structures.html#518" class="Bound"></a><a id="6157" class="Symbol">)</a> <a id="6159" class="Keyword">where</a>
<a id="6167" class="Keyword">field</a>
<a id="IsLattice.isEquivalence"></a><a id="6177" href="Algebra.Structures.html#6177" class="Field">isEquivalence</a> <a id="6191" class="Symbol">:</a> <a id="6193" href="Relation.Binary.Structures.html#1522" class="Record">IsEquivalence</a> <a id="6207" href="Algebra.Structures.html#559" class="Bound Operator">_≈_</a>
<a id="IsLattice.-comm"></a><a id="6215" href="Algebra.Structures.html#6215" class="Field">-comm</a> <a id="6229" class="Symbol">:</a> <a id="6231" href="Algebra.Definitions.html#1195" class="Function">Commutative</a> <a id="6243" href="Algebra.Structures.html#6132" class="Bound"></a>
<a id="IsLattice.-assoc"></a><a id="6249" href="Algebra.Structures.html#6249" class="Field">-assoc</a> <a id="6263" class="Symbol">:</a> <a id="6265" href="Algebra.Definitions.html#1108" class="Function">Associative</a> <a id="6277" href="Algebra.Structures.html#6132" class="Bound"></a>
<a id="IsLattice.-cong"></a><a id="6283" href="Algebra.Structures.html#6283" class="Field">-cong</a> <a id="6297" class="Symbol">:</a> <a id="6299" href="Algebra.Definitions.html#862" class="Function">Congruent₂</a> <a id="6310" href="Algebra.Structures.html#6132" class="Bound"></a>
<a id="IsLattice.∧-comm"></a><a id="6316" href="Algebra.Structures.html#6316" class="Field">∧-comm</a> <a id="6330" class="Symbol">:</a> <a id="6332" href="Algebra.Definitions.html#1195" class="Function">Commutative</a> <a id="6344" href="Algebra.Structures.html#6134" class="Bound"></a>
<a id="IsLattice.∧-assoc"></a><a id="6350" href="Algebra.Structures.html#6350" class="Field">∧-assoc</a> <a id="6364" class="Symbol">:</a> <a id="6366" href="Algebra.Definitions.html#1108" class="Function">Associative</a> <a id="6378" href="Algebra.Structures.html#6134" class="Bound"></a>
<a id="IsLattice.∧-cong"></a><a id="6384" href="Algebra.Structures.html#6384" class="Field">∧-cong</a> <a id="6398" class="Symbol">:</a> <a id="6400" href="Algebra.Definitions.html#862" class="Function">Congruent₂</a> <a id="6411" href="Algebra.Structures.html#6134" class="Bound"></a>
<a id="IsLattice.absorptive"></a><a id="6417" href="Algebra.Structures.html#6417" class="Field">absorptive</a> <a id="6431" class="Symbol">:</a> <a id="6433" href="Algebra.Definitions.html#2938" class="Function">Absorptive</a> <a id="6444" href="Algebra.Structures.html#6132" class="Bound"></a> <a id="6446" href="Algebra.Structures.html#6134" class="Bound"></a>
<a id="6451" class="Keyword">open</a> <a id="6456" href="Relation.Binary.Structures.html#1522" class="Module">IsEquivalence</a> <a id="6470" href="Algebra.Structures.html#6177" class="Field">isEquivalence</a> <a id="6484" class="Keyword">public</a>
<a id="IsLattice.-absorbs-∧"></a><a id="6494" href="Algebra.Structures.html#6494" class="Function">-absorbs-∧</a> <a id="6506" class="Symbol">:</a> <a id="6508" href="Algebra.Structures.html#6132" class="Bound"></a> <a id="6510" href="Algebra.Definitions.html#2859" class="Function Operator">Absorbs</a> <a id="6518" href="Algebra.Structures.html#6134" class="Bound"></a>
<a id="6522" href="Algebra.Structures.html#6494" class="Function">-absorbs-∧</a> <a id="6534" class="Symbol">=</a> <a id="6536" href="Agda.Builtin.Sigma.html#252" class="Field">proj₁</a> <a id="6542" href="Algebra.Structures.html#6417" class="Field">absorptive</a>
<a id="IsLattice.∧-absorbs-"></a><a id="6556" href="Algebra.Structures.html#6556" class="Function">∧-absorbs-</a> <a id="6568" class="Symbol">:</a> <a id="6570" href="Algebra.Structures.html#6134" class="Bound"></a> <a id="6572" href="Algebra.Definitions.html#2859" class="Function Operator">Absorbs</a> <a id="6580" href="Algebra.Structures.html#6132" class="Bound"></a>
<a id="6584" href="Algebra.Structures.html#6556" class="Function">∧-absorbs-</a> <a id="6596" class="Symbol">=</a> <a id="6598" href="Agda.Builtin.Sigma.html#264" class="Field">proj₂</a> <a id="6604" href="Algebra.Structures.html#6417" class="Field">absorptive</a>
<a id="IsLattice.∧-congˡ"></a><a id="6618" href="Algebra.Structures.html#6618" class="Function">∧-congˡ</a> <a id="6626" class="Symbol">:</a> <a id="6628" href="Algebra.Definitions.html#934" class="Function">LeftCongruent</a> <a id="6642" href="Algebra.Structures.html#6134" class="Bound"></a>
<a id="6646" href="Algebra.Structures.html#6618" class="Function">∧-congˡ</a> <a id="6654" href="Algebra.Structures.html#6654" class="Bound">y≈z</a> <a id="6658" class="Symbol">=</a> <a id="6660" href="Algebra.Structures.html#6384" class="Field">∧-cong</a> <a id="6667" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="6672" href="Algebra.Structures.html#6654" class="Bound">y≈z</a>
<a id="IsLattice.∧-congʳ"></a><a id="6679" href="Algebra.Structures.html#6679" class="Function">∧-congʳ</a> <a id="6687" class="Symbol">:</a> <a id="6689" href="Algebra.Definitions.html#1020" class="Function">RightCongruent</a> <a id="6704" href="Algebra.Structures.html#6134" class="Bound"></a>
<a id="6708" href="Algebra.Structures.html#6679" class="Function">∧-congʳ</a> <a id="6716" href="Algebra.Structures.html#6716" class="Bound">y≈z</a> <a id="6720" class="Symbol">=</a> <a id="6722" href="Algebra.Structures.html#6384" class="Field">∧-cong</a> <a id="6729" href="Algebra.Structures.html#6716" class="Bound">y≈z</a> <a id="6733" href="Relation.Binary.Structures.html#1568" class="Function">refl</a>
<a id="IsLattice.-congˡ"></a><a id="6741" href="Algebra.Structures.html#6741" class="Function">-congˡ</a> <a id="6749" class="Symbol">:</a> <a id="6751" href="Algebra.Definitions.html#934" class="Function">LeftCongruent</a> <a id="6765" href="Algebra.Structures.html#6132" class="Bound"></a>
<a id="6769" href="Algebra.Structures.html#6741" class="Function">-congˡ</a> <a id="6777" href="Algebra.Structures.html#6777" class="Bound">y≈z</a> <a id="6781" class="Symbol">=</a> <a id="6783" href="Algebra.Structures.html#6283" class="Field">-cong</a> <a id="6790" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="6795" href="Algebra.Structures.html#6777" class="Bound">y≈z</a>
<a id="IsLattice.-congʳ"></a><a id="6802" href="Algebra.Structures.html#6802" class="Function">-congʳ</a> <a id="6810" class="Symbol">:</a> <a id="6812" href="Algebra.Definitions.html#1020" class="Function">RightCongruent</a> <a id="6827" href="Algebra.Structures.html#6132" class="Bound"></a>
<a id="6831" href="Algebra.Structures.html#6802" class="Function">-congʳ</a> <a id="6839" href="Algebra.Structures.html#6839" class="Bound">y≈z</a> <a id="6843" class="Symbol">=</a> <a id="6845" href="Algebra.Structures.html#6283" class="Field">-cong</a> <a id="6852" href="Algebra.Structures.html#6839" class="Bound">y≈z</a> <a id="6856" href="Relation.Binary.Structures.html#1568" class="Function">refl</a>
<a id="6863" class="Keyword">record</a> <a id="IsDistributiveLattice"></a><a id="6870" href="Algebra.Structures.html#6870" class="Record">IsDistributiveLattice</a> <a id="6892" class="Symbol">(</a><a id="6893" href="Algebra.Structures.html#6893" class="Bound"></a> <a id="6895" href="Algebra.Structures.html#6895" class="Bound"></a> <a id="6897" class="Symbol">:</a> <a id="6899" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="6903" href="Algebra.Structures.html#522" class="Bound">A</a><a id="6904" class="Symbol">)</a> <a id="6906" class="Symbol">:</a> <a id="6908" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="6912" class="Symbol">(</a><a id="6913" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="6915" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="6917" href="Algebra.Structures.html#518" class="Bound"></a><a id="6918" class="Symbol">)</a> <a id="6920" class="Keyword">where</a>
<a id="6928" class="Keyword">field</a>
<a id="IsDistributiveLattice.isLattice"></a><a id="6938" href="Algebra.Structures.html#6938" class="Field">isLattice</a> <a id="6951" class="Symbol">:</a> <a id="6953" href="Algebra.Structures.html#6121" class="Record">IsLattice</a> <a id="6963" href="Algebra.Structures.html#6893" class="Bound"></a> <a id="6965" href="Algebra.Structures.html#6895" class="Bound"></a>
<a id="IsDistributiveLattice.-distribʳ-∧"></a><a id="6971" href="Algebra.Structures.html#6971" class="Field">-distribʳ-∧</a> <a id="6984" class="Symbol">:</a> <a id="6986" href="Algebra.Structures.html#6893" class="Bound"></a> <a id="6988" href="Algebra.Definitions.html#2346" class="Function Operator">DistributesOverʳ</a> <a id="7005" href="Algebra.Structures.html#6895" class="Bound"></a>
<a id="7010" class="Keyword">open</a> <a id="7015" href="Algebra.Structures.html#6121" class="Module">IsLattice</a> <a id="7025" href="Algebra.Structures.html#6938" class="Field">isLattice</a> <a id="7035" class="Keyword">public</a>
<a id="IsDistributiveLattice.-∧-distribʳ"></a><a id="7045" href="Algebra.Structures.html#7045" class="Function">-∧-distribʳ</a> <a id="7058" class="Symbol">=</a> <a id="7060" href="Algebra.Structures.html#6971" class="Field">-distribʳ-∧</a>
<a id="7075" class="Symbol">{-#</a> <a id="7079" class="Keyword">WARNING_ON_USAGE</a> <a id="7096" class="Pragma">-∧-distribʳ</a>
<a id="7111" class="String">&quot;Warning: -∧-distribʳ was deprecated in v1.1.
Please use -distribʳ-∧ instead.&quot;</a>
<a id="7196" class="Symbol">#-}</a>
<a id="7201" class="Comment">------------------------------------------------------------------------</a>
<a id="7274" class="Comment">-- Structures with 2 binary operations &amp; 1 element</a>
<a id="7325" class="Comment">------------------------------------------------------------------------</a>
<a id="7399" class="Keyword">record</a> <a id="IsNearSemiring"></a><a id="7406" href="Algebra.Structures.html#7406" class="Record">IsNearSemiring</a> <a id="7421" class="Symbol">(</a><a id="7422" href="Algebra.Structures.html#7422" class="Bound">+</a> <a id="7424" href="Algebra.Structures.html#7424" class="Bound">*</a> <a id="7426" class="Symbol">:</a> <a id="7428" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="7432" href="Algebra.Structures.html#522" class="Bound">A</a><a id="7433" class="Symbol">)</a> <a id="7435" class="Symbol">(</a><a id="7436" href="Algebra.Structures.html#7436" class="Bound">0#</a> <a id="7439" class="Symbol">:</a> <a id="7441" href="Algebra.Structures.html#522" class="Bound">A</a><a id="7442" class="Symbol">)</a> <a id="7444" class="Symbol">:</a> <a id="7446" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="7450" class="Symbol">(</a><a id="7451" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="7453" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="7455" href="Algebra.Structures.html#518" class="Bound"></a><a id="7456" class="Symbol">)</a> <a id="7458" class="Keyword">where</a>
<a id="7466" class="Keyword">field</a>
<a id="IsNearSemiring.+-isMonoid"></a><a id="7476" href="Algebra.Structures.html#7476" class="Field">+-isMonoid</a> <a id="7490" class="Symbol">:</a> <a id="7492" href="Algebra.Structures.html#2801" class="Record">IsMonoid</a> <a id="7501" href="Algebra.Structures.html#7422" class="Bound">+</a> <a id="7503" href="Algebra.Structures.html#7436" class="Bound">0#</a>
<a id="IsNearSemiring.*-isSemigroup"></a><a id="7510" href="Algebra.Structures.html#7510" class="Field">*-isSemigroup</a> <a id="7524" class="Symbol">:</a> <a id="7526" href="Algebra.Structures.html#1787" class="Record">IsSemigroup</a> <a id="7538" href="Algebra.Structures.html#7424" class="Bound">*</a>
<a id="IsNearSemiring.distribʳ"></a><a id="7544" href="Algebra.Structures.html#7544" class="Field">distribʳ</a> <a id="7558" class="Symbol">:</a> <a id="7560" href="Algebra.Structures.html#7424" class="Bound">*</a> <a id="7562" href="Algebra.Definitions.html#2346" class="Function Operator">DistributesOverʳ</a> <a id="7579" href="Algebra.Structures.html#7422" class="Bound">+</a>
<a id="IsNearSemiring.zeroˡ"></a><a id="7585" href="Algebra.Structures.html#7585" class="Field">zeroˡ</a> <a id="7599" class="Symbol">:</a> <a id="7601" href="Algebra.Definitions.html#1502" class="Function">LeftZero</a> <a id="7610" href="Algebra.Structures.html#7436" class="Bound">0#</a> <a id="7613" href="Algebra.Structures.html#7424" class="Bound">*</a>
<a id="7618" class="Keyword">open</a> <a id="7623" href="Algebra.Structures.html#2801" class="Module">IsMonoid</a> <a id="7632" href="Algebra.Structures.html#7476" class="Field">+-isMonoid</a> <a id="7643" class="Keyword">public</a>
<a id="7654" class="Keyword">renaming</a>
<a id="7667" class="Symbol">(</a> <a id="7669" href="Algebra.Structures.html#1867" class="Function">assoc</a> <a id="7681" class="Symbol">to</a> <a id="7684" class="Function">+-assoc</a>
<a id="7696" class="Symbol">;</a> <a id="7698" href="Algebra.Structures.html#1210" class="Function">∙-cong</a> <a id="7710" class="Symbol">to</a> <a id="7713" class="Function">+-cong</a>
<a id="7724" class="Symbol">;</a> <a id="7726" href="Algebra.Structures.html#1360" class="Function">∙-congˡ</a> <a id="7738" class="Symbol">to</a> <a id="7741" class="Function">+-congˡ</a>
<a id="7753" class="Symbol">;</a> <a id="7755" href="Algebra.Structures.html#1421" class="Function">∙-congʳ</a> <a id="7767" class="Symbol">to</a> <a id="7770" class="Function">+-congʳ</a>
<a id="7782" class="Symbol">;</a> <a id="7784" href="Algebra.Structures.html#2894" class="Field">identity</a> <a id="7796" class="Symbol">to</a> <a id="7799" class="Field">+-identity</a>
<a id="7814" class="Symbol">;</a> <a id="7816" href="Algebra.Structures.html#2963" class="Function">identityˡ</a> <a id="7828" class="Symbol">to</a> <a id="7831" class="Function">+-identityˡ</a>
<a id="7847" class="Symbol">;</a> <a id="7849" href="Algebra.Structures.html#3024" class="Function">identityʳ</a> <a id="7861" class="Symbol">to</a> <a id="7864" class="Function">+-identityʳ</a>
<a id="7880" class="Symbol">;</a> <a id="7882" href="Algebra.Structures.html#1843" class="Function">isMagma</a> <a id="7894" class="Symbol">to</a> <a id="7897" class="Function">+-isMagma</a>
<a id="7911" class="Symbol">;</a> <a id="7913" href="Algebra.Structures.html#2862" class="Field">isSemigroup</a> <a id="7925" class="Symbol">to</a> <a id="7928" class="Field">+-isSemigroup</a>
<a id="7946" class="Symbol">)</a>
<a id="7951" class="Keyword">open</a> <a id="7956" href="Algebra.Structures.html#1787" class="Module">IsSemigroup</a> <a id="7968" href="Algebra.Structures.html#7510" class="Field">*-isSemigroup</a> <a id="7982" class="Keyword">public</a>
<a id="7993" class="Keyword">using</a> <a id="7999" class="Symbol">()</a>
<a id="8006" class="Keyword">renaming</a>
<a id="8019" class="Symbol">(</a> <a id="8021" href="Algebra.Structures.html#1867" class="Field">assoc</a> <a id="8030" class="Symbol">to</a> <a id="8033" class="Field">*-assoc</a>
<a id="8045" class="Symbol">;</a> <a id="8047" href="Algebra.Structures.html#1210" class="Function">∙-cong</a> <a id="8056" class="Symbol">to</a> <a id="8059" class="Function">*-cong</a>
<a id="8070" class="Symbol">;</a> <a id="8072" href="Algebra.Structures.html#1360" class="Function">∙-congˡ</a> <a id="8081" class="Symbol">to</a> <a id="8084" class="Function">*-congˡ</a>
<a id="8096" class="Symbol">;</a> <a id="8098" href="Algebra.Structures.html#1421" class="Function">∙-congʳ</a> <a id="8107" class="Symbol">to</a> <a id="8110" class="Function">*-congʳ</a>
<a id="8122" class="Symbol">;</a> <a id="8124" href="Algebra.Structures.html#1843" class="Field">isMagma</a> <a id="8133" class="Symbol">to</a> <a id="8136" class="Field">*-isMagma</a>
<a id="8150" class="Symbol">)</a>
<a id="8154" class="Keyword">record</a> <a id="IsSemiringWithoutOne"></a><a id="8161" href="Algebra.Structures.html#8161" class="Record">IsSemiringWithoutOne</a> <a id="8182" class="Symbol">(</a><a id="8183" href="Algebra.Structures.html#8183" class="Bound">+</a> <a id="8185" href="Algebra.Structures.html#8185" class="Bound">*</a> <a id="8187" class="Symbol">:</a> <a id="8189" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="8193" href="Algebra.Structures.html#522" class="Bound">A</a><a id="8194" class="Symbol">)</a> <a id="8196" class="Symbol">(</a><a id="8197" href="Algebra.Structures.html#8197" class="Bound">0#</a> <a id="8200" class="Symbol">:</a> <a id="8202" href="Algebra.Structures.html#522" class="Bound">A</a><a id="8203" class="Symbol">)</a> <a id="8205" class="Symbol">:</a> <a id="8207" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8211" class="Symbol">(</a><a id="8212" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="8214" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="8216" href="Algebra.Structures.html#518" class="Bound"></a><a id="8217" class="Symbol">)</a> <a id="8219" class="Keyword">where</a>
<a id="8227" class="Keyword">field</a>
<a id="IsSemiringWithoutOne.+-isCommutativeMonoid"></a><a id="8237" href="Algebra.Structures.html#8237" class="Field">+-isCommutativeMonoid</a> <a id="8259" class="Symbol">:</a> <a id="8261" href="Algebra.Structures.html#3092" class="Record">IsCommutativeMonoid</a> <a id="8281" href="Algebra.Structures.html#8183" class="Bound">+</a> <a id="8283" href="Algebra.Structures.html#8197" class="Bound">0#</a>
<a id="IsSemiringWithoutOne.*-isSemigroup"></a><a id="8290" href="Algebra.Structures.html#8290" class="Field">*-isSemigroup</a> <a id="8312" class="Symbol">:</a> <a id="8314" href="Algebra.Structures.html#1787" class="Record">IsSemigroup</a> <a id="8326" href="Algebra.Structures.html#8185" class="Bound">*</a>
<a id="IsSemiringWithoutOne.distrib"></a><a id="8332" href="Algebra.Structures.html#8332" class="Field">distrib</a> <a id="8354" class="Symbol">:</a> <a id="8356" href="Algebra.Structures.html#8185" class="Bound">*</a> <a id="8358" href="Algebra.Definitions.html#2465" class="Function Operator">DistributesOver</a> <a id="8374" href="Algebra.Structures.html#8183" class="Bound">+</a>
<a id="IsSemiringWithoutOne.zero"></a><a id="8380" href="Algebra.Structures.html#8380" class="Field">zero</a> <a id="8402" class="Symbol">:</a> <a id="8404" href="Algebra.Definitions.html#1634" class="Function">Zero</a> <a id="8409" href="Algebra.Structures.html#8197" class="Bound">0#</a> <a id="8412" href="Algebra.Structures.html#8185" class="Bound">*</a>
<a id="8417" class="Keyword">open</a> <a id="8422" href="Algebra.Structures.html#3092" class="Module">IsCommutativeMonoid</a> <a id="8442" href="Algebra.Structures.html#8237" class="Field">+-isCommutativeMonoid</a> <a id="8464" class="Keyword">public</a>
<a id="8475" class="Keyword">using</a> <a id="8481" class="Symbol">()</a>
<a id="8488" class="Keyword">renaming</a>
<a id="8501" class="Symbol">(</a> <a id="8503" href="Algebra.Structures.html#3192" class="Field">comm</a> <a id="8526" class="Symbol">to</a> <a id="8529" class="Field">+-comm</a>
<a id="8540" class="Symbol">;</a> <a id="8542" href="Algebra.Structures.html#3164" class="Field">isMonoid</a> <a id="8565" class="Symbol">to</a> <a id="8568" class="Field">+-isMonoid</a>
<a id="8583" class="Symbol">;</a> <a id="8585" href="Algebra.Structures.html#2258" class="Function">isCommutativeMagma</a> <a id="8608" class="Symbol">to</a> <a id="8611" class="Function">+-isCommutativeMagma</a>
<a id="8636" class="Symbol">;</a> <a id="8638" href="Algebra.Structures.html#3253" class="Function">isCommutativeSemigroup</a> <a id="8661" class="Symbol">to</a> <a id="8664" class="Function">+-isCommutativeSemigroup</a>
<a id="8693" class="Symbol">)</a>
<a id="IsSemiringWithoutOne.zeroˡ"></a><a id="8698" href="Algebra.Structures.html#8698" class="Function">zeroˡ</a> <a id="8704" class="Symbol">:</a> <a id="8706" href="Algebra.Definitions.html#1502" class="Function">LeftZero</a> <a id="8715" href="Algebra.Structures.html#8197" class="Bound">0#</a> <a id="8718" href="Algebra.Structures.html#8185" class="Bound">*</a>
<a id="8722" href="Algebra.Structures.html#8698" class="Function">zeroˡ</a> <a id="8728" class="Symbol">=</a> <a id="8730" href="Agda.Builtin.Sigma.html#252" class="Field">proj₁</a> <a id="8736" href="Algebra.Structures.html#8380" class="Field">zero</a>
<a id="IsSemiringWithoutOne.zeroʳ"></a><a id="8744" href="Algebra.Structures.html#8744" class="Function">zeroʳ</a> <a id="8750" class="Symbol">:</a> <a id="8752" href="Algebra.Definitions.html#1567" class="Function">RightZero</a> <a id="8762" href="Algebra.Structures.html#8197" class="Bound">0#</a> <a id="8765" href="Algebra.Structures.html#8185" class="Bound">*</a>
<a id="8769" href="Algebra.Structures.html#8744" class="Function">zeroʳ</a> <a id="8775" class="Symbol">=</a> <a id="8777" href="Agda.Builtin.Sigma.html#264" class="Field">proj₂</a> <a id="8783" href="Algebra.Structures.html#8380" class="Field">zero</a>
<a id="IsSemiringWithoutOne.isNearSemiring"></a><a id="8791" href="Algebra.Structures.html#8791" class="Function">isNearSemiring</a> <a id="8806" class="Symbol">:</a> <a id="8808" href="Algebra.Structures.html#7406" class="Record">IsNearSemiring</a> <a id="8823" href="Algebra.Structures.html#8183" class="Bound">+</a> <a id="8825" href="Algebra.Structures.html#8185" class="Bound">*</a> <a id="8827" href="Algebra.Structures.html#8197" class="Bound">0#</a>
<a id="8832" href="Algebra.Structures.html#8791" class="Function">isNearSemiring</a> <a id="8847" class="Symbol">=</a> <a id="8849" class="Keyword">record</a>
<a id="8860" class="Symbol">{</a> <a id="8862" href="Algebra.Structures.html#7476" class="Field">+-isMonoid</a> <a id="8876" class="Symbol">=</a> <a id="8878" href="Algebra.Structures.html#8568" class="Function">+-isMonoid</a>
<a id="8893" class="Symbol">;</a> <a id="8895" href="Algebra.Structures.html#7510" class="Field">*-isSemigroup</a> <a id="8909" class="Symbol">=</a> <a id="8911" href="Algebra.Structures.html#8290" class="Field">*-isSemigroup</a>
<a id="8929" class="Symbol">;</a> <a id="8931" href="Algebra.Structures.html#7544" class="Field">distribʳ</a> <a id="8945" class="Symbol">=</a> <a id="8947" href="Agda.Builtin.Sigma.html#264" class="Field">proj₂</a> <a id="8953" href="Algebra.Structures.html#8332" class="Field">distrib</a>
<a id="8965" class="Symbol">;</a> <a id="8967" href="Algebra.Structures.html#7585" class="Field">zeroˡ</a> <a id="8981" class="Symbol">=</a> <a id="8983" href="Algebra.Structures.html#8698" class="Function">zeroˡ</a>
<a id="8993" class="Symbol">}</a>
<a id="8998" class="Keyword">open</a> <a id="9003" href="Algebra.Structures.html#7406" class="Module">IsNearSemiring</a> <a id="9018" href="Algebra.Structures.html#8791" class="Function">isNearSemiring</a> <a id="9033" class="Keyword">public</a>
<a id="9044" class="Keyword">hiding</a> <a id="9051" class="Symbol">(</a><a id="9052" href="Algebra.Structures.html#7476" class="Field">+-isMonoid</a><a id="9062" class="Symbol">;</a> <a id="9064" href="Algebra.Structures.html#7585" class="Field">zeroˡ</a><a id="9069" class="Symbol">;</a> <a id="9071" href="Algebra.Structures.html#7510" class="Field">*-isSemigroup</a><a id="9084" class="Symbol">)</a>
<a id="9088" class="Keyword">record</a> <a id="IsCommutativeSemiringWithoutOne"></a><a id="9095" href="Algebra.Structures.html#9095" class="Record">IsCommutativeSemiringWithoutOne</a>
<a id="9136" class="Symbol">(</a><a id="9137" href="Algebra.Structures.html#9137" class="Bound">+</a> <a id="9139" href="Algebra.Structures.html#9139" class="Bound">*</a> <a id="9141" class="Symbol">:</a> <a id="9143" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="9147" href="Algebra.Structures.html#522" class="Bound">A</a><a id="9148" class="Symbol">)</a> <a id="9150" class="Symbol">(</a><a id="9151" href="Algebra.Structures.html#9151" class="Bound">0#</a> <a id="9154" class="Symbol">:</a> <a id="9156" href="Algebra.Structures.html#522" class="Bound">A</a><a id="9157" class="Symbol">)</a> <a id="9159" class="Symbol">:</a> <a id="9161" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="9165" class="Symbol">(</a><a id="9166" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="9168" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="9170" href="Algebra.Structures.html#518" class="Bound"></a><a id="9171" class="Symbol">)</a> <a id="9173" class="Keyword">where</a>
<a id="9181" class="Keyword">field</a>
<a id="IsCommutativeSemiringWithoutOne.isSemiringWithoutOne"></a><a id="9191" href="Algebra.Structures.html#9191" class="Field">isSemiringWithoutOne</a> <a id="9212" class="Symbol">:</a> <a id="9214" href="Algebra.Structures.html#8161" class="Record">IsSemiringWithoutOne</a> <a id="9235" href="Algebra.Structures.html#9137" class="Bound">+</a> <a id="9237" href="Algebra.Structures.html#9139" class="Bound">*</a> <a id="9239" href="Algebra.Structures.html#9151" class="Bound">0#</a>
<a id="IsCommutativeSemiringWithoutOne.*-comm"></a><a id="9246" href="Algebra.Structures.html#9246" class="Field">*-comm</a> <a id="9267" class="Symbol">:</a> <a id="9269" href="Algebra.Definitions.html#1195" class="Function">Commutative</a> <a id="9281" href="Algebra.Structures.html#9139" class="Bound">*</a>
<a id="9286" class="Keyword">open</a> <a id="9291" href="Algebra.Structures.html#8161" class="Module">IsSemiringWithoutOne</a> <a id="9312" href="Algebra.Structures.html#9191" class="Field">isSemiringWithoutOne</a> <a id="9333" class="Keyword">public</a>
<a id="IsCommutativeSemiringWithoutOne.*-isCommutativeSemigroup"></a><a id="9343" href="Algebra.Structures.html#9343" class="Function">*-isCommutativeSemigroup</a> <a id="9368" class="Symbol">:</a> <a id="9370" href="Algebra.Structures.html#2089" class="Record">IsCommutativeSemigroup</a> <a id="9393" href="Algebra.Structures.html#9139" class="Bound">*</a>
<a id="9397" href="Algebra.Structures.html#9343" class="Function">*-isCommutativeSemigroup</a> <a id="9422" class="Symbol">=</a> <a id="9424" class="Keyword">record</a>
<a id="9435" class="Symbol">{</a> <a id="9437" href="Algebra.Structures.html#2156" class="Field">isSemigroup</a> <a id="9449" class="Symbol">=</a> <a id="9451" href="Algebra.Structures.html#8290" class="Function">*-isSemigroup</a>
<a id="9469" class="Symbol">;</a> <a id="9471" href="Algebra.Structures.html#2188" class="Field">comm</a> <a id="9483" class="Symbol">=</a> <a id="9485" href="Algebra.Structures.html#9246" class="Field">*-comm</a>
<a id="9496" class="Symbol">}</a>
<a id="9501" class="Keyword">open</a> <a id="9506" href="Algebra.Structures.html#2089" class="Module">IsCommutativeSemigroup</a> <a id="9529" href="Algebra.Structures.html#9343" class="Function">*-isCommutativeSemigroup</a> <a id="9554" class="Keyword">public</a>
<a id="9565" class="Keyword">using</a> <a id="9571" class="Symbol">()</a> <a id="9574" class="Keyword">renaming</a> <a id="9583" class="Symbol">(</a><a id="9584" href="Algebra.Structures.html#2258" class="Function">isCommutativeMagma</a> <a id="9603" class="Symbol">to</a> <a id="9606" class="Function">*-isCommutativeMagma</a><a id="9626" class="Symbol">)</a>
<a id="9629" class="Comment">------------------------------------------------------------------------</a>
<a id="9702" class="Comment">-- Structures with 2 binary operations &amp; 2 elements</a>
<a id="9754" class="Comment">------------------------------------------------------------------------</a>
<a id="9828" class="Keyword">record</a> <a id="IsSemiringWithoutAnnihilatingZero"></a><a id="9835" href="Algebra.Structures.html#9835" class="Record">IsSemiringWithoutAnnihilatingZero</a> <a id="9869" class="Symbol">(</a><a id="9870" href="Algebra.Structures.html#9870" class="Bound">+</a> <a id="9872" href="Algebra.Structures.html#9872" class="Bound">*</a> <a id="9874" class="Symbol">:</a> <a id="9876" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="9880" href="Algebra.Structures.html#522" class="Bound">A</a><a id="9881" class="Symbol">)</a>
<a id="9924" class="Symbol">(</a><a id="9925" href="Algebra.Structures.html#9925" class="Bound">0#</a> <a id="9928" href="Algebra.Structures.html#9928" class="Bound">1#</a> <a id="9931" class="Symbol">:</a> <a id="9933" href="Algebra.Structures.html#522" class="Bound">A</a><a id="9934" class="Symbol">)</a> <a id="9936" class="Symbol">:</a> <a id="9938" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="9942" class="Symbol">(</a><a id="9943" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="9945" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="9947" href="Algebra.Structures.html#518" class="Bound"></a><a id="9948" class="Symbol">)</a> <a id="9950" class="Keyword">where</a>
<a id="9958" class="Keyword">field</a>
<a id="9968" class="Comment">-- Note that these structures do have an additive unit, but this</a>
<a id="10037" class="Comment">-- unit does not necessarily annihilate multiplication.</a>
<a id="IsSemiringWithoutAnnihilatingZero.+-isCommutativeMonoid"></a><a id="10097" href="Algebra.Structures.html#10097" class="Field">+-isCommutativeMonoid</a> <a id="10119" class="Symbol">:</a> <a id="10121" href="Algebra.Structures.html#3092" class="Record">IsCommutativeMonoid</a> <a id="10141" href="Algebra.Structures.html#9870" class="Bound">+</a> <a id="10143" href="Algebra.Structures.html#9925" class="Bound">0#</a>
<a id="IsSemiringWithoutAnnihilatingZero.*-isMonoid"></a><a id="10150" href="Algebra.Structures.html#10150" class="Field">*-isMonoid</a> <a id="10172" class="Symbol">:</a> <a id="10174" href="Algebra.Structures.html#2801" class="Record">IsMonoid</a> <a id="10183" href="Algebra.Structures.html#9872" class="Bound">*</a> <a id="10185" href="Algebra.Structures.html#9928" class="Bound">1#</a>
<a id="IsSemiringWithoutAnnihilatingZero.distrib"></a><a id="10192" href="Algebra.Structures.html#10192" class="Field">distrib</a> <a id="10214" class="Symbol">:</a> <a id="10216" href="Algebra.Structures.html#9872" class="Bound">*</a> <a id="10218" href="Algebra.Definitions.html#2465" class="Function Operator">DistributesOver</a> <a id="10234" href="Algebra.Structures.html#9870" class="Bound">+</a>
<a id="IsSemiringWithoutAnnihilatingZero.distribˡ"></a><a id="10239" href="Algebra.Structures.html#10239" class="Function">distribˡ</a> <a id="10248" class="Symbol">:</a> <a id="10250" href="Algebra.Structures.html#9872" class="Bound">*</a> <a id="10252" href="Algebra.Definitions.html#2227" class="Function Operator">DistributesOverˡ</a> <a id="10269" href="Algebra.Structures.html#9870" class="Bound">+</a>
<a id="10273" href="Algebra.Structures.html#10239" class="Function">distribˡ</a> <a id="10282" class="Symbol">=</a> <a id="10284" href="Agda.Builtin.Sigma.html#252" class="Field">proj₁</a> <a id="10290" href="Algebra.Structures.html#10192" class="Field">distrib</a>
<a id="IsSemiringWithoutAnnihilatingZero.distribʳ"></a><a id="10301" href="Algebra.Structures.html#10301" class="Function">distribʳ</a> <a id="10310" class="Symbol">:</a> <a id="10312" href="Algebra.Structures.html#9872" class="Bound">*</a> <a id="10314" href="Algebra.Definitions.html#2346" class="Function Operator">DistributesOverʳ</a> <a id="10331" href="Algebra.Structures.html#9870" class="Bound">+</a>
<a id="10335" href="Algebra.Structures.html#10301" class="Function">distribʳ</a> <a id="10344" class="Symbol">=</a> <a id="10346" href="Agda.Builtin.Sigma.html#264" class="Field">proj₂</a> <a id="10352" href="Algebra.Structures.html#10192" class="Field">distrib</a>
<a id="10363" class="Keyword">open</a> <a id="10368" href="Algebra.Structures.html#3092" class="Module">IsCommutativeMonoid</a> <a id="10388" href="Algebra.Structures.html#10097" class="Field">+-isCommutativeMonoid</a> <a id="10410" class="Keyword">public</a>
<a id="10421" class="Keyword">renaming</a>
<a id="10434" class="Symbol">(</a> <a id="10436" href="Algebra.Structures.html#1867" class="Function">assoc</a> <a id="10459" class="Symbol">to</a> <a id="10462" class="Function">+-assoc</a>
<a id="10474" class="Symbol">;</a> <a id="10476" href="Algebra.Structures.html#1210" class="Function">∙-cong</a> <a id="10499" class="Symbol">to</a> <a id="10502" class="Function">+-cong</a>
<a id="10513" class="Symbol">;</a> <a id="10515" href="Algebra.Structures.html#1360" class="Function">∙-congˡ</a> <a id="10538" class="Symbol">to</a> <a id="10541" class="Function">+-congˡ</a>
<a id="10553" class="Symbol">;</a> <a id="10555" href="Algebra.Structures.html#1421" class="Function">∙-congʳ</a> <a id="10578" class="Symbol">to</a> <a id="10581" class="Function">+-congʳ</a>
<a id="10593" class="Symbol">;</a> <a id="10595" href="Algebra.Structures.html#2894" class="Function">identity</a> <a id="10618" class="Symbol">to</a> <a id="10621" class="Function">+-identity</a>
<a id="10636" class="Symbol">;</a> <a id="10638" href="Algebra.Structures.html#2963" class="Function">identityˡ</a> <a id="10661" class="Symbol">to</a> <a id="10664" class="Function">+-identityˡ</a>
<a id="10680" class="Symbol">;</a> <a id="10682" href="Algebra.Structures.html#3024" class="Function">identityʳ</a> <a id="10705" class="Symbol">to</a> <a id="10708" class="Function">+-identityʳ</a>
<a id="10724" class="Symbol">;</a> <a id="10726" href="Algebra.Structures.html#3192" class="Field">comm</a> <a id="10749" class="Symbol">to</a> <a id="10752" class="Field">+-comm</a>
<a id="10763" class="Symbol">;</a> <a id="10765" href="Algebra.Structures.html#1843" class="Function">isMagma</a> <a id="10788" class="Symbol">to</a> <a id="10791" class="Function">+-isMagma</a>
<a id="10805" class="Symbol">;</a> <a id="10807" href="Algebra.Structures.html#2862" class="Function">isSemigroup</a> <a id="10830" class="Symbol">to</a> <a id="10833" class="Function">+-isSemigroup</a>
<a id="10851" class="Symbol">;</a> <a id="10853" href="Algebra.Structures.html#3164" class="Field">isMonoid</a> <a id="10876" class="Symbol">to</a> <a id="10879" class="Field">+-isMonoid</a>
<a id="10894" class="Symbol">;</a> <a id="10896" href="Algebra.Structures.html#2258" class="Function">isCommutativeMagma</a> <a id="10919" class="Symbol">to</a> <a id="10922" class="Function">+-isCommutativeMagma</a>
<a id="10947" class="Symbol">;</a> <a id="10949" href="Algebra.Structures.html#3253" class="Function">isCommutativeSemigroup</a> <a id="10972" class="Symbol">to</a> <a id="10975" class="Function">+-isCommutativeSemigroup</a>
<a id="11004" class="Symbol">)</a>
<a id="11009" class="Keyword">open</a> <a id="11014" href="Algebra.Structures.html#2801" class="Module">IsMonoid</a> <a id="11023" href="Algebra.Structures.html#10150" class="Field">*-isMonoid</a> <a id="11034" class="Keyword">public</a>
<a id="11045" class="Keyword">using</a> <a id="11051" class="Symbol">()</a>
<a id="11058" class="Keyword">renaming</a>
<a id="11071" class="Symbol">(</a> <a id="11073" href="Algebra.Structures.html#1867" class="Function">assoc</a> <a id="11085" class="Symbol">to</a> <a id="11088" class="Function">*-assoc</a>
<a id="11100" class="Symbol">;</a> <a id="11102" href="Algebra.Structures.html#1210" class="Function">∙-cong</a> <a id="11114" class="Symbol">to</a> <a id="11117" class="Function">*-cong</a>
<a id="11128" class="Symbol">;</a> <a id="11130" href="Algebra.Structures.html#1360" class="Function">∙-congˡ</a> <a id="11142" class="Symbol">to</a> <a id="11145" class="Function">*-congˡ</a>
<a id="11157" class="Symbol">;</a> <a id="11159" href="Algebra.Structures.html#1421" class="Function">∙-congʳ</a> <a id="11171" class="Symbol">to</a> <a id="11174" class="Function">*-congʳ</a>
<a id="11186" class="Symbol">;</a> <a id="11188" href="Algebra.Structures.html#2894" class="Field">identity</a> <a id="11200" class="Symbol">to</a> <a id="11203" class="Field">*-identity</a>
<a id="11218" class="Symbol">;</a> <a id="11220" href="Algebra.Structures.html#2963" class="Function">identityˡ</a> <a id="11232" class="Symbol">to</a> <a id="11235" class="Function">*-identityˡ</a>
<a id="11251" class="Symbol">;</a> <a id="11253" href="Algebra.Structures.html#3024" class="Function">identityʳ</a> <a id="11265" class="Symbol">to</a> <a id="11268" class="Function">*-identityʳ</a>
<a id="11284" class="Symbol">;</a> <a id="11286" href="Algebra.Structures.html#1843" class="Function">isMagma</a> <a id="11298" class="Symbol">to</a> <a id="11301" class="Function">*-isMagma</a>
<a id="11315" class="Symbol">;</a> <a id="11317" href="Algebra.Structures.html#2862" class="Field">isSemigroup</a> <a id="11329" class="Symbol">to</a> <a id="11332" class="Field">*-isSemigroup</a>
<a id="11350" class="Symbol">)</a>
<a id="11354" class="Keyword">record</a> <a id="IsSemiring"></a><a id="11361" href="Algebra.Structures.html#11361" class="Record">IsSemiring</a> <a id="11372" class="Symbol">(</a><a id="11373" href="Algebra.Structures.html#11373" class="Bound">+</a> <a id="11375" href="Algebra.Structures.html#11375" class="Bound">*</a> <a id="11377" class="Symbol">:</a> <a id="11379" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="11383" href="Algebra.Structures.html#522" class="Bound">A</a><a id="11384" class="Symbol">)</a> <a id="11386" class="Symbol">(</a><a id="11387" href="Algebra.Structures.html#11387" class="Bound">0#</a> <a id="11390" href="Algebra.Structures.html#11390" class="Bound">1#</a> <a id="11393" class="Symbol">:</a> <a id="11395" href="Algebra.Structures.html#522" class="Bound">A</a><a id="11396" class="Symbol">)</a> <a id="11398" class="Symbol">:</a> <a id="11400" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="11404" class="Symbol">(</a><a id="11405" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="11407" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="11409" href="Algebra.Structures.html#518" class="Bound"></a><a id="11410" class="Symbol">)</a> <a id="11412" class="Keyword">where</a>
<a id="11420" class="Keyword">field</a>
<a id="IsSemiring.isSemiringWithoutAnnihilatingZero"></a><a id="11430" href="Algebra.Structures.html#11430" class="Field">isSemiringWithoutAnnihilatingZero</a> <a id="11464" class="Symbol">:</a>
<a id="11472" href="Algebra.Structures.html#9835" class="Record">IsSemiringWithoutAnnihilatingZero</a> <a id="11506" href="Algebra.Structures.html#11373" class="Bound">+</a> <a id="11508" href="Algebra.Structures.html#11375" class="Bound">*</a> <a id="11510" href="Algebra.Structures.html#11387" class="Bound">0#</a> <a id="11513" href="Algebra.Structures.html#11390" class="Bound">1#</a>
<a id="IsSemiring.zero"></a><a id="11520" href="Algebra.Structures.html#11520" class="Field">zero</a> <a id="11525" class="Symbol">:</a> <a id="11527" href="Algebra.Definitions.html#1634" class="Function">Zero</a> <a id="11532" href="Algebra.Structures.html#11387" class="Bound">0#</a> <a id="11535" href="Algebra.Structures.html#11375" class="Bound">*</a>
<a id="11540" class="Keyword">open</a> <a id="11545" href="Algebra.Structures.html#9835" class="Module">IsSemiringWithoutAnnihilatingZero</a>
<a id="11588" href="Algebra.Structures.html#11430" class="Field">isSemiringWithoutAnnihilatingZero</a> <a id="11622" class="Keyword">public</a>
<a id="IsSemiring.isSemiringWithoutOne"></a><a id="11632" href="Algebra.Structures.html#11632" class="Function">isSemiringWithoutOne</a> <a id="11653" class="Symbol">:</a> <a id="11655" href="Algebra.Structures.html#8161" class="Record">IsSemiringWithoutOne</a> <a id="11676" href="Algebra.Structures.html#11373" class="Bound">+</a> <a id="11678" href="Algebra.Structures.html#11375" class="Bound">*</a> <a id="11680" href="Algebra.Structures.html#11387" class="Bound">0#</a>
<a id="11685" href="Algebra.Structures.html#11632" class="Function">isSemiringWithoutOne</a> <a id="11706" class="Symbol">=</a> <a id="11708" class="Keyword">record</a>
<a id="11719" class="Symbol">{</a> <a id="11721" href="Algebra.Structures.html#8237" class="Field">+-isCommutativeMonoid</a> <a id="11743" class="Symbol">=</a> <a id="11745" href="Algebra.Structures.html#10097" class="Function">+-isCommutativeMonoid</a>
<a id="11771" class="Symbol">;</a> <a id="11773" href="Algebra.Structures.html#8290" class="Field">*-isSemigroup</a> <a id="11795" class="Symbol">=</a> <a id="11797" href="Algebra.Structures.html#11332" class="Function">*-isSemigroup</a>
<a id="11815" class="Symbol">;</a> <a id="11817" href="Algebra.Structures.html#8332" class="Field">distrib</a> <a id="11839" class="Symbol">=</a> <a id="11841" href="Algebra.Structures.html#10192" class="Function">distrib</a>
<a id="11853" class="Symbol">;</a> <a id="11855" href="Algebra.Structures.html#8380" class="Field">zero</a> <a id="11877" class="Symbol">=</a> <a id="11879" href="Algebra.Structures.html#11520" class="Field">zero</a>
<a id="11888" class="Symbol">}</a>
<a id="11893" class="Keyword">open</a> <a id="11898" href="Algebra.Structures.html#8161" class="Module">IsSemiringWithoutOne</a> <a id="11919" href="Algebra.Structures.html#11632" class="Function">isSemiringWithoutOne</a> <a id="11940" class="Keyword">public</a>
<a id="11951" class="Keyword">using</a>
<a id="11961" class="Symbol">(</a> <a id="11963" href="Algebra.Structures.html#8791" class="Function">isNearSemiring</a>
<a id="11982" class="Symbol">;</a> <a id="11984" href="Algebra.Structures.html#8698" class="Function">zeroˡ</a>
<a id="11994" class="Symbol">;</a> <a id="11996" href="Algebra.Structures.html#8744" class="Function">zeroʳ</a>
<a id="12006" class="Symbol">)</a>
<a id="12010" class="Keyword">record</a> <a id="IsCommutativeSemiring"></a><a id="12017" href="Algebra.Structures.html#12017" class="Record">IsCommutativeSemiring</a> <a id="12039" class="Symbol">(</a><a id="12040" href="Algebra.Structures.html#12040" class="Bound">+</a> <a id="12042" href="Algebra.Structures.html#12042" class="Bound">*</a> <a id="12044" class="Symbol">:</a> <a id="12046" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="12050" href="Algebra.Structures.html#522" class="Bound">A</a><a id="12051" class="Symbol">)</a> <a id="12053" class="Symbol">(</a><a id="12054" href="Algebra.Structures.html#12054" class="Bound">0#</a> <a id="12057" href="Algebra.Structures.html#12057" class="Bound">1#</a> <a id="12060" class="Symbol">:</a> <a id="12062" href="Algebra.Structures.html#522" class="Bound">A</a><a id="12063" class="Symbol">)</a> <a id="12065" class="Symbol">:</a> <a id="12067" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="12071" class="Symbol">(</a><a id="12072" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="12074" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="12076" href="Algebra.Structures.html#518" class="Bound"></a><a id="12077" class="Symbol">)</a> <a id="12079" class="Keyword">where</a>
<a id="12087" class="Keyword">field</a>
<a id="IsCommutativeSemiring.isSemiring"></a><a id="12097" href="Algebra.Structures.html#12097" class="Field">isSemiring</a> <a id="12108" class="Symbol">:</a> <a id="12110" href="Algebra.Structures.html#11361" class="Record">IsSemiring</a> <a id="12121" href="Algebra.Structures.html#12040" class="Bound">+</a> <a id="12123" href="Algebra.Structures.html#12042" class="Bound">*</a> <a id="12125" href="Algebra.Structures.html#12054" class="Bound">0#</a> <a id="12128" href="Algebra.Structures.html#12057" class="Bound">1#</a>
<a id="IsCommutativeSemiring.*-comm"></a><a id="12135" href="Algebra.Structures.html#12135" class="Field">*-comm</a> <a id="12146" class="Symbol">:</a> <a id="12148" href="Algebra.Definitions.html#1195" class="Function">Commutative</a> <a id="12160" href="Algebra.Structures.html#12042" class="Bound">*</a>
<a id="12165" class="Keyword">open</a> <a id="12170" href="Algebra.Structures.html#11361" class="Module">IsSemiring</a> <a id="12181" href="Algebra.Structures.html#12097" class="Field">isSemiring</a> <a id="12192" class="Keyword">public</a>
<a id="IsCommutativeSemiring.isCommutativeSemiringWithoutOne"></a><a id="12202" href="Algebra.Structures.html#12202" class="Function">isCommutativeSemiringWithoutOne</a> <a id="12234" class="Symbol">:</a>
<a id="12240" href="Algebra.Structures.html#9095" class="Record">IsCommutativeSemiringWithoutOne</a> <a id="12272" href="Algebra.Structures.html#12040" class="Bound">+</a> <a id="12274" href="Algebra.Structures.html#12042" class="Bound">*</a> <a id="12276" href="Algebra.Structures.html#12054" class="Bound">0#</a>
<a id="12281" href="Algebra.Structures.html#12202" class="Function">isCommutativeSemiringWithoutOne</a> <a id="12313" class="Symbol">=</a> <a id="12315" class="Keyword">record</a>
<a id="12326" class="Symbol">{</a> <a id="12328" href="Algebra.Structures.html#9191" class="Field">isSemiringWithoutOne</a> <a id="12349" class="Symbol">=</a> <a id="12351" href="Algebra.Structures.html#11632" class="Function">isSemiringWithoutOne</a>
<a id="12376" class="Symbol">;</a> <a id="12378" href="Algebra.Structures.html#9246" class="Field">*-comm</a> <a id="12385" class="Symbol">=</a> <a id="12387" href="Algebra.Structures.html#12135" class="Field">*-comm</a>
<a id="12398" class="Symbol">}</a>
<a id="12403" class="Keyword">open</a> <a id="12408" href="Algebra.Structures.html#9095" class="Module">IsCommutativeSemiringWithoutOne</a> <a id="12440" href="Algebra.Structures.html#12202" class="Function">isCommutativeSemiringWithoutOne</a> <a id="12472" class="Keyword">public</a>
<a id="12483" class="Keyword">using</a>
<a id="12493" class="Symbol">(</a> <a id="12495" href="Algebra.Structures.html#9606" class="Function">*-isCommutativeMagma</a>
<a id="12520" class="Symbol">;</a> <a id="12522" href="Algebra.Structures.html#9343" class="Function">*-isCommutativeSemigroup</a>
<a id="12551" class="Symbol">)</a>
<a id="IsCommutativeSemiring.*-isCommutativeMonoid"></a><a id="12556" href="Algebra.Structures.html#12556" class="Function">*-isCommutativeMonoid</a> <a id="12578" class="Symbol">:</a> <a id="12580" href="Algebra.Structures.html#3092" class="Record">IsCommutativeMonoid</a> <a id="12600" href="Algebra.Structures.html#12042" class="Bound">*</a> <a id="12602" href="Algebra.Structures.html#12057" class="Bound">1#</a>
<a id="12607" href="Algebra.Structures.html#12556" class="Function">*-isCommutativeMonoid</a> <a id="12629" class="Symbol">=</a> <a id="12631" class="Keyword">record</a>
<a id="12642" class="Symbol">{</a> <a id="12644" href="Algebra.Structures.html#3164" class="Field">isMonoid</a> <a id="12653" class="Symbol">=</a> <a id="12655" href="Algebra.Structures.html#10150" class="Function">*-isMonoid</a>
<a id="12670" class="Symbol">;</a> <a id="12672" href="Algebra.Structures.html#3192" class="Field">comm</a> <a id="12681" class="Symbol">=</a> <a id="12683" href="Algebra.Structures.html#12135" class="Field">*-comm</a>
<a id="12694" class="Symbol">}</a>
<a id="12698" class="Keyword">record</a> <a id="IsCancellativeCommutativeSemiring"></a><a id="12705" href="Algebra.Structures.html#12705" class="Record">IsCancellativeCommutativeSemiring</a> <a id="12739" class="Symbol">(</a><a id="12740" href="Algebra.Structures.html#12740" class="Bound">+</a> <a id="12742" href="Algebra.Structures.html#12742" class="Bound">*</a> <a id="12744" class="Symbol">:</a> <a id="12746" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="12750" href="Algebra.Structures.html#522" class="Bound">A</a><a id="12751" class="Symbol">)</a> <a id="12753" class="Symbol">(</a><a id="12754" href="Algebra.Structures.html#12754" class="Bound">0#</a> <a id="12757" href="Algebra.Structures.html#12757" class="Bound">1#</a> <a id="12760" class="Symbol">:</a> <a id="12762" href="Algebra.Structures.html#522" class="Bound">A</a><a id="12763" class="Symbol">)</a> <a id="12765" class="Symbol">:</a> <a id="12767" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="12771" class="Symbol">(</a><a id="12772" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="12774" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="12776" href="Algebra.Structures.html#518" class="Bound"></a><a id="12777" class="Symbol">)</a> <a id="12779" class="Keyword">where</a>
<a id="12787" class="Keyword">field</a>
<a id="IsCancellativeCommutativeSemiring.isCommutativeSemiring"></a><a id="12797" href="Algebra.Structures.html#12797" class="Field">isCommutativeSemiring</a> <a id="12819" class="Symbol">:</a> <a id="12821" href="Algebra.Structures.html#12017" class="Record">IsCommutativeSemiring</a> <a id="12843" href="Algebra.Structures.html#12740" class="Bound">+</a> <a id="12845" href="Algebra.Structures.html#12742" class="Bound">*</a> <a id="12847" href="Algebra.Structures.html#12754" class="Bound">0#</a> <a id="12850" href="Algebra.Structures.html#12757" class="Bound">1#</a>
<a id="IsCancellativeCommutativeSemiring.*-cancelˡ-nonZero"></a><a id="12857" href="Algebra.Structures.html#12857" class="Field">*-cancelˡ-nonZero</a> <a id="12879" class="Symbol">:</a> <a id="12881" href="Algebra.Definitions.html#3372" class="Function">AlmostLeftCancellative</a> <a id="12904" href="Algebra.Structures.html#12754" class="Bound">0#</a> <a id="12907" href="Algebra.Structures.html#12742" class="Bound">*</a>
<a id="12912" class="Keyword">open</a> <a id="12917" href="Algebra.Structures.html#12017" class="Module">IsCommutativeSemiring</a> <a id="12939" href="Algebra.Structures.html#12797" class="Field">isCommutativeSemiring</a> <a id="12961" class="Keyword">public</a>
<a id="12971" class="Comment">------------------------------------------------------------------------</a>
<a id="13044" class="Comment">-- Structures with 2 binary operations, 1 unary operation &amp; 2 elements</a>
<a id="13115" class="Comment">------------------------------------------------------------------------</a>
<a id="13189" class="Keyword">record</a> <a id="IsRing"></a><a id="13196" href="Algebra.Structures.html#13196" class="Record">IsRing</a> <a id="13203" class="Symbol">(</a><a id="13204" href="Algebra.Structures.html#13204" class="Bound">+</a> <a id="13206" href="Algebra.Structures.html#13206" class="Bound">*</a> <a id="13208" class="Symbol">:</a> <a id="13210" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="13214" href="Algebra.Structures.html#522" class="Bound">A</a><a id="13215" class="Symbol">)</a> <a id="13217" class="Symbol">(</a><a id="13218" href="Algebra.Structures.html#13218" class="Bound Operator">-_</a> <a id="13221" class="Symbol">:</a> <a id="13223" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="13227" href="Algebra.Structures.html#522" class="Bound">A</a><a id="13228" class="Symbol">)</a> <a id="13230" class="Symbol">(</a><a id="13231" href="Algebra.Structures.html#13231" class="Bound">0#</a> <a id="13234" href="Algebra.Structures.html#13234" class="Bound">1#</a> <a id="13237" class="Symbol">:</a> <a id="13239" href="Algebra.Structures.html#522" class="Bound">A</a><a id="13240" class="Symbol">)</a> <a id="13242" class="Symbol">:</a> <a id="13244" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="13248" class="Symbol">(</a><a id="13249" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="13251" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="13253" href="Algebra.Structures.html#518" class="Bound"></a><a id="13254" class="Symbol">)</a> <a id="13256" class="Keyword">where</a>
<a id="13264" class="Keyword">field</a>
<a id="IsRing.+-isAbelianGroup"></a><a id="13274" href="Algebra.Structures.html#13274" class="Field">+-isAbelianGroup</a> <a id="13291" class="Symbol">:</a> <a id="13293" href="Algebra.Structures.html#5123" class="Record">IsAbelianGroup</a> <a id="13308" href="Algebra.Structures.html#13204" class="Bound">+</a> <a id="13310" href="Algebra.Structures.html#13231" class="Bound">0#</a> <a id="13313" href="Algebra.Structures.html#13218" class="Bound Operator">-_</a>
<a id="IsRing.*-isMonoid"></a><a id="13320" href="Algebra.Structures.html#13320" class="Field">*-isMonoid</a> <a id="13337" class="Symbol">:</a> <a id="13339" href="Algebra.Structures.html#2801" class="Record">IsMonoid</a> <a id="13348" href="Algebra.Structures.html#13206" class="Bound">*</a> <a id="13350" href="Algebra.Structures.html#13234" class="Bound">1#</a>
<a id="IsRing.distrib"></a><a id="13357" href="Algebra.Structures.html#13357" class="Field">distrib</a> <a id="13374" class="Symbol">:</a> <a id="13376" href="Algebra.Structures.html#13206" class="Bound">*</a> <a id="13378" href="Algebra.Definitions.html#2465" class="Function Operator">DistributesOver</a> <a id="13394" href="Algebra.Structures.html#13204" class="Bound">+</a>
<a id="IsRing.zero"></a><a id="13400" href="Algebra.Structures.html#13400" class="Field">zero</a> <a id="13417" class="Symbol">:</a> <a id="13419" href="Algebra.Definitions.html#1634" class="Function">Zero</a> <a id="13424" href="Algebra.Structures.html#13231" class="Bound">0#</a> <a id="13427" href="Algebra.Structures.html#13206" class="Bound">*</a>
<a id="13432" class="Keyword">open</a> <a id="13437" href="Algebra.Structures.html#5123" class="Module">IsAbelianGroup</a> <a id="13452" href="Algebra.Structures.html#13274" class="Field">+-isAbelianGroup</a> <a id="13469" class="Keyword">public</a>
<a id="13480" class="Keyword">renaming</a>
<a id="13493" class="Symbol">(</a> <a id="13495" href="Algebra.Structures.html#1867" class="Function">assoc</a> <a id="13518" class="Symbol">to</a> <a id="13521" class="Function">+-assoc</a>
<a id="13533" class="Symbol">;</a> <a id="13535" href="Algebra.Structures.html#1210" class="Function">∙-cong</a> <a id="13558" class="Symbol">to</a> <a id="13561" class="Function">+-cong</a>
<a id="13572" class="Symbol">;</a> <a id="13574" href="Algebra.Structures.html#1360" class="Function">∙-congˡ</a> <a id="13597" class="Symbol">to</a> <a id="13600" class="Function">+-congˡ</a>
<a id="13612" class="Symbol">;</a> <a id="13614" href="Algebra.Structures.html#1421" class="Function">∙-congʳ</a> <a id="13637" class="Symbol">to</a> <a id="13640" class="Function">+-congʳ</a>
<a id="13652" class="Symbol">;</a> <a id="13654" href="Algebra.Structures.html#2894" class="Function">identity</a> <a id="13677" class="Symbol">to</a> <a id="13680" class="Function">+-identity</a>
<a id="13695" class="Symbol">;</a> <a id="13697" href="Algebra.Structures.html#2963" class="Function">identityˡ</a> <a id="13720" class="Symbol">to</a> <a id="13723" class="Function">+-identityˡ</a>
<a id="13739" class="Symbol">;</a> <a id="13741" href="Algebra.Structures.html#3024" class="Function">identityʳ</a> <a id="13764" class="Symbol">to</a> <a id="13767" class="Function">+-identityʳ</a>
<a id="13783" class="Symbol">;</a> <a id="13785" href="Algebra.Structures.html#4528" class="Function">inverse</a> <a id="13808" class="Symbol">to</a> <a id="13811" class="Function">-‿inverse</a>
<a id="13825" class="Symbol">;</a> <a id="13827" href="Algebra.Structures.html#4676" class="Function">inverseˡ</a> <a id="13850" class="Symbol">to</a> <a id="13853" class="Function">-‿inverseˡ</a>
<a id="13868" class="Symbol">;</a> <a id="13870" href="Algebra.Structures.html#4739" class="Function">inverseʳ</a> <a id="13893" class="Symbol">to</a> <a id="13896" class="Function">-‿inverseʳ</a>
<a id="13911" class="Symbol">;</a> <a id="13913" href="Algebra.Structures.html#4562" class="Function">⁻¹-cong</a> <a id="13936" class="Symbol">to</a> <a id="13939" class="Function">-‿cong</a>
<a id="13950" class="Symbol">;</a> <a id="13952" href="Algebra.Structures.html#5254" class="Field">comm</a> <a id="13975" class="Symbol">to</a> <a id="13978" class="Field">+-comm</a>
<a id="13989" class="Symbol">;</a> <a id="13991" href="Algebra.Structures.html#1843" class="Function">isMagma</a> <a id="14014" class="Symbol">to</a> <a id="14017" class="Function">+-isMagma</a>
<a id="14031" class="Symbol">;</a> <a id="14033" href="Algebra.Structures.html#2862" class="Function">isSemigroup</a> <a id="14056" class="Symbol">to</a> <a id="14059" class="Function">+-isSemigroup</a>
<a id="14077" class="Symbol">;</a> <a id="14079" href="Algebra.Structures.html#4497" class="Function">isMonoid</a> <a id="14102" class="Symbol">to</a> <a id="14105" class="Function">+-isMonoid</a>
<a id="14120" class="Symbol">;</a> <a id="14122" href="Algebra.Structures.html#2258" class="Function">isCommutativeMagma</a> <a id="14145" class="Symbol">to</a> <a id="14148" class="Function">+-isCommutativeMagma</a>
<a id="14173" class="Symbol">;</a> <a id="14175" href="Algebra.Structures.html#5312" class="Function">isCommutativeMonoid</a> <a id="14198" class="Symbol">to</a> <a id="14201" class="Function">+-isCommutativeMonoid</a>
<a id="14227" class="Symbol">;</a> <a id="14229" href="Algebra.Structures.html#3253" class="Function">isCommutativeSemigroup</a> <a id="14252" class="Symbol">to</a> <a id="14255" class="Function">+-isCommutativeSemigroup</a>
<a id="14284" class="Symbol">;</a> <a id="14286" href="Algebra.Structures.html#5225" class="Field">isGroup</a> <a id="14309" class="Symbol">to</a> <a id="14312" class="Field">+-isGroup</a>
<a id="14326" class="Symbol">)</a>
<a id="14331" class="Keyword">open</a> <a id="14336" href="Algebra.Structures.html#2801" class="Module">IsMonoid</a> <a id="14345" href="Algebra.Structures.html#13320" class="Field">*-isMonoid</a> <a id="14356" class="Keyword">public</a>
<a id="14367" class="Keyword">using</a> <a id="14373" class="Symbol">()</a>
<a id="14380" class="Keyword">renaming</a>
<a id="14393" class="Symbol">(</a> <a id="14395" href="Algebra.Structures.html#1867" class="Function">assoc</a> <a id="14407" class="Symbol">to</a> <a id="14410" class="Function">*-assoc</a>
<a id="14422" class="Symbol">;</a> <a id="14424" href="Algebra.Structures.html#1210" class="Function">∙-cong</a> <a id="14436" class="Symbol">to</a> <a id="14439" class="Function">*-cong</a>
<a id="14450" class="Symbol">;</a> <a id="14452" href="Algebra.Structures.html#1360" class="Function">∙-congˡ</a> <a id="14464" class="Symbol">to</a> <a id="14467" class="Function">*-congˡ</a>
<a id="14479" class="Symbol">;</a> <a id="14481" href="Algebra.Structures.html#1421" class="Function">∙-congʳ</a> <a id="14493" class="Symbol">to</a> <a id="14496" class="Function">*-congʳ</a>
<a id="14508" class="Symbol">;</a> <a id="14510" href="Algebra.Structures.html#2894" class="Field">identity</a> <a id="14522" class="Symbol">to</a> <a id="14525" class="Field">*-identity</a>
<a id="14540" class="Symbol">;</a> <a id="14542" href="Algebra.Structures.html#2963" class="Function">identityˡ</a> <a id="14554" class="Symbol">to</a> <a id="14557" class="Function">*-identityˡ</a>
<a id="14573" class="Symbol">;</a> <a id="14575" href="Algebra.Structures.html#3024" class="Function">identityʳ</a> <a id="14587" class="Symbol">to</a> <a id="14590" class="Function">*-identityʳ</a>
<a id="14606" class="Symbol">;</a> <a id="14608" href="Algebra.Structures.html#1843" class="Function">isMagma</a> <a id="14620" class="Symbol">to</a> <a id="14623" class="Function">*-isMagma</a>
<a id="14637" class="Symbol">;</a> <a id="14639" href="Algebra.Structures.html#2862" class="Field">isSemigroup</a> <a id="14651" class="Symbol">to</a> <a id="14654" class="Field">*-isSemigroup</a>
<a id="14672" class="Symbol">)</a>
<a id="IsRing.zeroˡ"></a><a id="14677" href="Algebra.Structures.html#14677" class="Function">zeroˡ</a> <a id="14683" class="Symbol">:</a> <a id="14685" href="Algebra.Definitions.html#1502" class="Function">LeftZero</a> <a id="14694" href="Algebra.Structures.html#13231" class="Bound">0#</a> <a id="14697" href="Algebra.Structures.html#13206" class="Bound">*</a>
<a id="14701" href="Algebra.Structures.html#14677" class="Function">zeroˡ</a> <a id="14707" class="Symbol">=</a> <a id="14709" href="Agda.Builtin.Sigma.html#252" class="Field">proj₁</a> <a id="14715" href="Algebra.Structures.html#13400" class="Field">zero</a>
<a id="IsRing.zeroʳ"></a><a id="14723" href="Algebra.Structures.html#14723" class="Function">zeroʳ</a> <a id="14729" class="Symbol">:</a> <a id="14731" href="Algebra.Definitions.html#1567" class="Function">RightZero</a> <a id="14741" href="Algebra.Structures.html#13231" class="Bound">0#</a> <a id="14744" href="Algebra.Structures.html#13206" class="Bound">*</a>
<a id="14748" href="Algebra.Structures.html#14723" class="Function">zeroʳ</a> <a id="14754" class="Symbol">=</a> <a id="14756" href="Agda.Builtin.Sigma.html#264" class="Field">proj₂</a> <a id="14762" href="Algebra.Structures.html#13400" class="Field">zero</a>
<a id="IsRing.isSemiringWithoutAnnihilatingZero"></a><a id="14770" href="Algebra.Structures.html#14770" class="Function">isSemiringWithoutAnnihilatingZero</a>
<a id="14808" class="Symbol">:</a> <a id="14810" href="Algebra.Structures.html#9835" class="Record">IsSemiringWithoutAnnihilatingZero</a> <a id="14844" href="Algebra.Structures.html#13204" class="Bound">+</a> <a id="14846" href="Algebra.Structures.html#13206" class="Bound">*</a> <a id="14848" href="Algebra.Structures.html#13231" class="Bound">0#</a> <a id="14851" href="Algebra.Structures.html#13234" class="Bound">1#</a>
<a id="14856" href="Algebra.Structures.html#14770" class="Function">isSemiringWithoutAnnihilatingZero</a> <a id="14890" class="Symbol">=</a> <a id="14892" class="Keyword">record</a>
<a id="14903" class="Symbol">{</a> <a id="14905" href="Algebra.Structures.html#10097" class="Field">+-isCommutativeMonoid</a> <a id="14927" class="Symbol">=</a> <a id="14929" href="Algebra.Structures.html#14201" class="Function">+-isCommutativeMonoid</a>
<a id="14955" class="Symbol">;</a> <a id="14957" href="Algebra.Structures.html#10150" class="Field">*-isMonoid</a> <a id="14979" class="Symbol">=</a> <a id="14981" href="Algebra.Structures.html#13320" class="Field">*-isMonoid</a>
<a id="14996" class="Symbol">;</a> <a id="14998" href="Algebra.Structures.html#10192" class="Field">distrib</a> <a id="15020" class="Symbol">=</a> <a id="15022" href="Algebra.Structures.html#13357" class="Field">distrib</a>
<a id="15034" class="Symbol">}</a>
<a id="IsRing.isSemiring"></a><a id="15039" href="Algebra.Structures.html#15039" class="Function">isSemiring</a> <a id="15050" class="Symbol">:</a> <a id="15052" href="Algebra.Structures.html#11361" class="Record">IsSemiring</a> <a id="15063" href="Algebra.Structures.html#13204" class="Bound">+</a> <a id="15065" href="Algebra.Structures.html#13206" class="Bound">*</a> <a id="15067" href="Algebra.Structures.html#13231" class="Bound">0#</a> <a id="15070" href="Algebra.Structures.html#13234" class="Bound">1#</a>
<a id="15075" href="Algebra.Structures.html#15039" class="Function">isSemiring</a> <a id="15086" class="Symbol">=</a> <a id="15088" class="Keyword">record</a>
<a id="15099" class="Symbol">{</a> <a id="15101" href="Algebra.Structures.html#11430" class="Field">isSemiringWithoutAnnihilatingZero</a> <a id="15135" class="Symbol">=</a>
<a id="15145" href="Algebra.Structures.html#14770" class="Function">isSemiringWithoutAnnihilatingZero</a>
<a id="15183" class="Symbol">;</a> <a id="15185" href="Algebra.Structures.html#11520" class="Field">zero</a> <a id="15190" class="Symbol">=</a> <a id="15192" href="Algebra.Structures.html#13400" class="Field">zero</a>
<a id="15201" class="Symbol">}</a>
<a id="15206" class="Keyword">open</a> <a id="15211" href="Algebra.Structures.html#11361" class="Module">IsSemiring</a> <a id="15222" href="Algebra.Structures.html#15039" class="Function">isSemiring</a> <a id="15233" class="Keyword">public</a>
<a id="15244" class="Keyword">using</a> <a id="15250" class="Symbol">(</a><a id="15251" href="Algebra.Structures.html#10239" class="Function">distribˡ</a><a id="15259" class="Symbol">;</a> <a id="15261" href="Algebra.Structures.html#10301" class="Function">distribʳ</a><a id="15269" class="Symbol">;</a> <a id="15271" href="Algebra.Structures.html#8791" class="Function">isNearSemiring</a><a id="15285" class="Symbol">;</a> <a id="15287" href="Algebra.Structures.html#11632" class="Function">isSemiringWithoutOne</a><a id="15307" class="Symbol">)</a>
<a id="15311" class="Keyword">record</a> <a id="IsCommutativeRing"></a><a id="15318" href="Algebra.Structures.html#15318" class="Record">IsCommutativeRing</a>
<a id="15345" class="Symbol">(</a><a id="15346" href="Algebra.Structures.html#15346" class="Bound">+</a> <a id="15348" href="Algebra.Structures.html#15348" class="Bound">*</a> <a id="15350" class="Symbol">:</a> <a id="15352" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="15356" href="Algebra.Structures.html#522" class="Bound">A</a><a id="15357" class="Symbol">)</a> <a id="15359" class="Symbol">(</a><a id="15360" href="Algebra.Structures.html#15360" class="Bound">-</a> <a id="15362" class="Symbol">:</a> <a id="15364" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="15368" href="Algebra.Structures.html#522" class="Bound">A</a><a id="15369" class="Symbol">)</a> <a id="15371" class="Symbol">(</a><a id="15372" href="Algebra.Structures.html#15372" class="Bound">0#</a> <a id="15375" href="Algebra.Structures.html#15375" class="Bound">1#</a> <a id="15378" class="Symbol">:</a> <a id="15380" href="Algebra.Structures.html#522" class="Bound">A</a><a id="15381" class="Symbol">)</a> <a id="15383" class="Symbol">:</a> <a id="15385" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="15389" class="Symbol">(</a><a id="15390" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="15392" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="15394" href="Algebra.Structures.html#518" class="Bound"></a><a id="15395" class="Symbol">)</a> <a id="15397" class="Keyword">where</a>
<a id="15405" class="Keyword">field</a>
<a id="IsCommutativeRing.isRing"></a><a id="15415" href="Algebra.Structures.html#15415" class="Field">isRing</a> <a id="15422" class="Symbol">:</a> <a id="15424" href="Algebra.Structures.html#13196" class="Record">IsRing</a> <a id="15431" href="Algebra.Structures.html#15346" class="Bound">+</a> <a id="15433" href="Algebra.Structures.html#15348" class="Bound">*</a> <a id="15435" href="Algebra.Structures.html#15360" class="Bound">-</a> <a id="15437" href="Algebra.Structures.html#15372" class="Bound">0#</a> <a id="15440" href="Algebra.Structures.html#15375" class="Bound">1#</a>
<a id="IsCommutativeRing.*-comm"></a><a id="15447" href="Algebra.Structures.html#15447" class="Field">*-comm</a> <a id="15454" class="Symbol">:</a> <a id="15456" href="Algebra.Definitions.html#1195" class="Function">Commutative</a> <a id="15468" href="Algebra.Structures.html#15348" class="Bound">*</a>
<a id="15473" class="Keyword">open</a> <a id="15478" href="Algebra.Structures.html#13196" class="Module">IsRing</a> <a id="15485" href="Algebra.Structures.html#15415" class="Field">isRing</a> <a id="15492" class="Keyword">public</a>
<a id="IsCommutativeRing.isCommutativeSemiring"></a><a id="15502" href="Algebra.Structures.html#15502" class="Function">isCommutativeSemiring</a> <a id="15524" class="Symbol">:</a> <a id="15526" href="Algebra.Structures.html#12017" class="Record">IsCommutativeSemiring</a> <a id="15548" href="Algebra.Structures.html#15346" class="Bound">+</a> <a id="15550" href="Algebra.Structures.html#15348" class="Bound">*</a> <a id="15552" href="Algebra.Structures.html#15372" class="Bound">0#</a> <a id="15555" href="Algebra.Structures.html#15375" class="Bound">1#</a>
<a id="15560" href="Algebra.Structures.html#15502" class="Function">isCommutativeSemiring</a> <a id="15582" class="Symbol">=</a> <a id="15584" class="Keyword">record</a>
<a id="15595" class="Symbol">{</a> <a id="15597" href="Algebra.Structures.html#12097" class="Field">isSemiring</a> <a id="15608" class="Symbol">=</a> <a id="15610" href="Algebra.Structures.html#15039" class="Function">isSemiring</a>
<a id="15625" class="Symbol">;</a> <a id="15627" href="Algebra.Structures.html#12135" class="Field">*-comm</a> <a id="15634" class="Symbol">=</a> <a id="15636" href="Algebra.Structures.html#15447" class="Field">*-comm</a>
<a id="15647" class="Symbol">}</a>
<a id="15652" class="Keyword">open</a> <a id="15657" href="Algebra.Structures.html#12017" class="Module">IsCommutativeSemiring</a> <a id="15679" href="Algebra.Structures.html#15502" class="Function">isCommutativeSemiring</a> <a id="15701" class="Keyword">public</a>
<a id="15712" class="Keyword">using</a>
<a id="15722" class="Symbol">(</a> <a id="15724" href="Algebra.Structures.html#12202" class="Function">isCommutativeSemiringWithoutOne</a>
<a id="15760" class="Symbol">;</a> <a id="15762" href="Algebra.Structures.html#9606" class="Function">*-isCommutativeMagma</a>
<a id="15787" class="Symbol">;</a> <a id="15789" href="Algebra.Structures.html#9343" class="Function">*-isCommutativeSemigroup</a>
<a id="15818" class="Symbol">;</a> <a id="15820" href="Algebra.Structures.html#12556" class="Function">*-isCommutativeMonoid</a>
<a id="15846" class="Symbol">)</a>
<a id="15850" class="Keyword">record</a> <a id="IsBooleanAlgebra"></a><a id="15857" href="Algebra.Structures.html#15857" class="Record">IsBooleanAlgebra</a>
<a id="15883" class="Symbol">(</a><a id="15884" href="Algebra.Structures.html#15884" class="Bound"></a> <a id="15886" href="Algebra.Structures.html#15886" class="Bound"></a> <a id="15888" class="Symbol">:</a> <a id="15890" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="15894" href="Algebra.Structures.html#522" class="Bound">A</a><a id="15895" class="Symbol">)</a> <a id="15897" class="Symbol">(</a><a id="15898" href="Algebra.Structures.html#15898" class="Bound">¬</a> <a id="15900" class="Symbol">:</a> <a id="15902" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="15906" href="Algebra.Structures.html#522" class="Bound">A</a><a id="15907" class="Symbol">)</a> <a id="15909" class="Symbol">(</a><a id="15910" href="Algebra.Structures.html#15910" class="Bound"></a> <a id="15912" href="Algebra.Structures.html#15912" class="Bound"></a> <a id="15914" class="Symbol">:</a> <a id="15916" href="Algebra.Structures.html#522" class="Bound">A</a><a id="15917" class="Symbol">)</a> <a id="15919" class="Symbol">:</a> <a id="15921" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="15925" class="Symbol">(</a><a id="15926" href="Algebra.Structures.html#516" class="Bound">a</a> <a id="15928" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="15930" href="Algebra.Structures.html#518" class="Bound"></a><a id="15931" class="Symbol">)</a> <a id="15933" class="Keyword">where</a>
<a id="15941" class="Keyword">field</a>
<a id="IsBooleanAlgebra.isDistributiveLattice"></a><a id="15951" href="Algebra.Structures.html#15951" class="Field">isDistributiveLattice</a> <a id="15973" class="Symbol">:</a> <a id="15975" href="Algebra.Structures.html#6870" class="Record">IsDistributiveLattice</a> <a id="15997" href="Algebra.Structures.html#15884" class="Bound"></a> <a id="15999" href="Algebra.Structures.html#15886" class="Bound"></a>
<a id="IsBooleanAlgebra.-complementʳ"></a><a id="16005" href="Algebra.Structures.html#16005" class="Field">-complementʳ</a> <a id="16027" class="Symbol">:</a> <a id="16029" href="Algebra.Definitions.html#1792" class="Function">RightInverse</a> <a id="16042" href="Algebra.Structures.html#15910" class="Bound"></a> <a id="16044" href="Algebra.Structures.html#15898" class="Bound">¬</a> <a id="16046" href="Algebra.Structures.html#15884" class="Bound"></a>
<a id="IsBooleanAlgebra.∧-complementʳ"></a><a id="16052" href="Algebra.Structures.html#16052" class="Field">∧-complementʳ</a> <a id="16074" class="Symbol">:</a> <a id="16076" href="Algebra.Definitions.html#1792" class="Function">RightInverse</a> <a id="16089" href="Algebra.Structures.html#15912" class="Bound"></a> <a id="16091" href="Algebra.Structures.html#15898" class="Bound">¬</a> <a id="16093" href="Algebra.Structures.html#15886" class="Bound"></a>
<a id="IsBooleanAlgebra.¬-cong"></a><a id="16099" href="Algebra.Structures.html#16099" class="Field">¬-cong</a> <a id="16121" class="Symbol">:</a> <a id="16123" href="Algebra.Definitions.html#797" class="Function">Congruent₁</a> <a id="16134" href="Algebra.Structures.html#15898" class="Bound">¬</a>
<a id="16139" class="Keyword">open</a> <a id="16144" href="Algebra.Structures.html#6870" class="Module">IsDistributiveLattice</a> <a id="16166" href="Algebra.Structures.html#15951" class="Field">isDistributiveLattice</a> <a id="16188" class="Keyword">public</a>
</pre></body></html>

17
misc/Algebra.html Normal file
View File

@ -0,0 +1,17 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Algebra</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Definitions of algebraic structures like monoids and rings</a>
<a id="168" class="Comment">-- (packed in records together with sets, operations, etc.)</a>
<a id="228" class="Comment">------------------------------------------------------------------------</a>
<a id="302" class="Symbol">{-#</a> <a id="306" class="Keyword">OPTIONS</a> <a id="314" class="Pragma">--without-K</a> <a id="326" class="Pragma">--safe</a> <a id="333" class="Symbol">#-}</a>
<a id="338" class="Keyword">module</a> <a id="345" href="Algebra.html" class="Module">Algebra</a> <a id="353" class="Keyword">where</a>
<a id="360" class="Keyword">open</a> <a id="365" class="Keyword">import</a> <a id="372" href="Algebra.Core.html" class="Module">Algebra.Core</a> <a id="385" class="Keyword">public</a>
<a id="392" class="Keyword">open</a> <a id="397" class="Keyword">import</a> <a id="404" href="Algebra.Definitions.html" class="Module">Algebra.Definitions</a> <a id="424" class="Keyword">public</a>
<a id="431" class="Keyword">open</a> <a id="436" class="Keyword">import</a> <a id="443" href="Algebra.Structures.html" class="Module">Algebra.Structures</a> <a id="462" class="Keyword">public</a>
<a id="469" class="Keyword">open</a> <a id="474" class="Keyword">import</a> <a id="481" href="Algebra.Bundles.html" class="Module">Algebra.Bundles</a> <a id="497" class="Keyword">public</a>
</pre></body></html>

View File

@ -0,0 +1,64 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Axiom.Extensionality.Propositional</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Results concerning function extensionality for propositional equality</a>
<a id="179" class="Comment">------------------------------------------------------------------------</a>
<a id="253" class="Symbol">{-#</a> <a id="257" class="Keyword">OPTIONS</a> <a id="265" class="Pragma">--without-K</a> <a id="277" class="Pragma">--safe</a> <a id="284" class="Symbol">#-}</a>
<a id="289" class="Keyword">module</a> <a id="296" href="Axiom.Extensionality.Propositional.html" class="Module">Axiom.Extensionality.Propositional</a> <a id="331" class="Keyword">where</a>
<a id="338" class="Keyword">open</a> <a id="343" class="Keyword">import</a> <a id="350" href="Function.Base.html" class="Module">Function.Base</a>
<a id="364" class="Keyword">open</a> <a id="369" class="Keyword">import</a> <a id="376" href="Level.html" class="Module">Level</a> <a id="382" class="Keyword">using</a> <a id="388" class="Symbol">(</a><a id="389" href="Agda.Primitive.html#597" class="Postulate">Level</a><a id="394" class="Symbol">;</a> <a id="396" href="Agda.Primitive.html#810" class="Primitive Operator">_⊔_</a><a id="399" class="Symbol">;</a> <a id="401" href="Agda.Primitive.html#780" class="Primitive">suc</a><a id="404" class="Symbol">;</a> <a id="406" href="Level.html#457" class="InductiveConstructor">lift</a><a id="410" class="Symbol">)</a>
<a id="412" class="Keyword">open</a> <a id="417" class="Keyword">import</a> <a id="424" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a>
<a id="445" class="Keyword">open</a> <a id="450" class="Keyword">import</a> <a id="457" href="Relation.Binary.PropositionalEquality.Core.html" class="Module">Relation.Binary.PropositionalEquality.Core</a>
<a id="501" class="Comment">------------------------------------------------------------------------</a>
<a id="574" class="Comment">-- Function extensionality states that if two functions are</a>
<a id="634" class="Comment">-- propositionally equal for every input, then the functions themselves</a>
<a id="706" class="Comment">-- must be propositionally equal.</a>
<a id="Extensionality"></a><a id="741" href="Axiom.Extensionality.Propositional.html#741" class="Function">Extensionality</a> <a id="756" class="Symbol">:</a> <a id="758" class="Symbol">(</a><a id="759" href="Axiom.Extensionality.Propositional.html#759" class="Bound">a</a> <a id="761" href="Axiom.Extensionality.Propositional.html#761" class="Bound">b</a> <a id="763" class="Symbol">:</a> <a id="765" href="Agda.Primitive.html#597" class="Postulate">Level</a><a id="770" class="Symbol">)</a> <a id="772" class="Symbol"></a> <a id="774" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="778" class="Symbol">_</a>
<a id="780" href="Axiom.Extensionality.Propositional.html#741" class="Function">Extensionality</a> <a id="795" href="Axiom.Extensionality.Propositional.html#795" class="Bound">a</a> <a id="797" href="Axiom.Extensionality.Propositional.html#797" class="Bound">b</a> <a id="799" class="Symbol">=</a>
<a id="803" class="Symbol">{</a><a id="804" href="Axiom.Extensionality.Propositional.html#804" class="Bound">A</a> <a id="806" class="Symbol">:</a> <a id="808" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="812" href="Axiom.Extensionality.Propositional.html#795" class="Bound">a</a><a id="813" class="Symbol">}</a> <a id="815" class="Symbol">{</a><a id="816" href="Axiom.Extensionality.Propositional.html#816" class="Bound">B</a> <a id="818" class="Symbol">:</a> <a id="820" href="Axiom.Extensionality.Propositional.html#804" class="Bound">A</a> <a id="822" class="Symbol"></a> <a id="824" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="828" href="Axiom.Extensionality.Propositional.html#797" class="Bound">b</a><a id="829" class="Symbol">}</a> <a id="831" class="Symbol">{</a><a id="832" href="Axiom.Extensionality.Propositional.html#832" class="Bound">f</a> <a id="834" href="Axiom.Extensionality.Propositional.html#834" class="Bound">g</a> <a id="836" class="Symbol">:</a> <a id="838" class="Symbol">(</a><a id="839" href="Axiom.Extensionality.Propositional.html#839" class="Bound">x</a> <a id="841" class="Symbol">:</a> <a id="843" href="Axiom.Extensionality.Propositional.html#804" class="Bound">A</a><a id="844" class="Symbol">)</a> <a id="846" class="Symbol"></a> <a id="848" href="Axiom.Extensionality.Propositional.html#816" class="Bound">B</a> <a id="850" href="Axiom.Extensionality.Propositional.html#839" class="Bound">x</a><a id="851" class="Symbol">}</a> <a id="853" class="Symbol"></a>
<a id="857" class="Symbol">(∀</a> <a id="860" href="Axiom.Extensionality.Propositional.html#860" class="Bound">x</a> <a id="862" class="Symbol"></a> <a id="864" href="Axiom.Extensionality.Propositional.html#832" class="Bound">f</a> <a id="866" href="Axiom.Extensionality.Propositional.html#860" class="Bound">x</a> <a id="868" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="870" href="Axiom.Extensionality.Propositional.html#834" class="Bound">g</a> <a id="872" href="Axiom.Extensionality.Propositional.html#860" class="Bound">x</a><a id="873" class="Symbol">)</a> <a id="875" class="Symbol"></a> <a id="877" href="Axiom.Extensionality.Propositional.html#832" class="Bound">f</a> <a id="879" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="881" href="Axiom.Extensionality.Propositional.html#834" class="Bound">g</a>
<a id="884" class="Comment">-- A variant for implicit function spaces.</a>
<a id="ExtensionalityImplicit"></a><a id="928" href="Axiom.Extensionality.Propositional.html#928" class="Function">ExtensionalityImplicit</a> <a id="951" class="Symbol">:</a> <a id="953" class="Symbol">(</a><a id="954" href="Axiom.Extensionality.Propositional.html#954" class="Bound">a</a> <a id="956" href="Axiom.Extensionality.Propositional.html#956" class="Bound">b</a> <a id="958" class="Symbol">:</a> <a id="960" href="Agda.Primitive.html#597" class="Postulate">Level</a><a id="965" class="Symbol">)</a> <a id="967" class="Symbol"></a> <a id="969" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="973" class="Symbol">_</a>
<a id="975" href="Axiom.Extensionality.Propositional.html#928" class="Function">ExtensionalityImplicit</a> <a id="998" href="Axiom.Extensionality.Propositional.html#998" class="Bound">a</a> <a id="1000" href="Axiom.Extensionality.Propositional.html#1000" class="Bound">b</a> <a id="1002" class="Symbol">=</a>
<a id="1006" class="Symbol">{</a><a id="1007" href="Axiom.Extensionality.Propositional.html#1007" class="Bound">A</a> <a id="1009" class="Symbol">:</a> <a id="1011" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1015" href="Axiom.Extensionality.Propositional.html#998" class="Bound">a</a><a id="1016" class="Symbol">}</a> <a id="1018" class="Symbol">{</a><a id="1019" href="Axiom.Extensionality.Propositional.html#1019" class="Bound">B</a> <a id="1021" class="Symbol">:</a> <a id="1023" href="Axiom.Extensionality.Propositional.html#1007" class="Bound">A</a> <a id="1025" class="Symbol"></a> <a id="1027" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1031" href="Axiom.Extensionality.Propositional.html#1000" class="Bound">b</a><a id="1032" class="Symbol">}</a> <a id="1034" class="Symbol">{</a><a id="1035" href="Axiom.Extensionality.Propositional.html#1035" class="Bound">f</a> <a id="1037" href="Axiom.Extensionality.Propositional.html#1037" class="Bound">g</a> <a id="1039" class="Symbol">:</a> <a id="1041" class="Symbol">{</a><a id="1042" href="Axiom.Extensionality.Propositional.html#1042" class="Bound">x</a> <a id="1044" class="Symbol">:</a> <a id="1046" href="Axiom.Extensionality.Propositional.html#1007" class="Bound">A</a><a id="1047" class="Symbol">}</a> <a id="1049" class="Symbol"></a> <a id="1051" href="Axiom.Extensionality.Propositional.html#1019" class="Bound">B</a> <a id="1053" href="Axiom.Extensionality.Propositional.html#1042" class="Bound">x</a><a id="1054" class="Symbol">}</a> <a id="1056" class="Symbol"></a>
<a id="1060" class="Symbol">(∀</a> <a id="1063" class="Symbol">{</a><a id="1064" href="Axiom.Extensionality.Propositional.html#1064" class="Bound">x</a><a id="1065" class="Symbol">}</a> <a id="1067" class="Symbol"></a> <a id="1069" href="Axiom.Extensionality.Propositional.html#1035" class="Bound">f</a> <a id="1071" class="Symbol">{</a><a id="1072" href="Axiom.Extensionality.Propositional.html#1064" class="Bound">x</a><a id="1073" class="Symbol">}</a> <a id="1075" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1077" href="Axiom.Extensionality.Propositional.html#1037" class="Bound">g</a> <a id="1079" class="Symbol">{</a><a id="1080" href="Axiom.Extensionality.Propositional.html#1064" class="Bound">x</a><a id="1081" class="Symbol">})</a> <a id="1084" class="Symbol"></a> <a id="1086" class="Symbol"></a> <a id="1089" class="Symbol">{</a><a id="1090" href="Axiom.Extensionality.Propositional.html#1090" class="Bound">x</a><a id="1091" class="Symbol">}</a> <a id="1093" class="Symbol"></a> <a id="1095" href="Axiom.Extensionality.Propositional.html#1035" class="Bound">f</a> <a id="1097" class="Symbol">{</a><a id="1098" href="Axiom.Extensionality.Propositional.html#1090" class="Bound">x</a><a id="1099" class="Symbol">})</a> <a id="1102" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1104" class="Symbol"></a> <a id="1107" class="Symbol">{</a><a id="1108" href="Axiom.Extensionality.Propositional.html#1108" class="Bound">x</a><a id="1109" class="Symbol">}</a> <a id="1111" class="Symbol"></a> <a id="1113" href="Axiom.Extensionality.Propositional.html#1037" class="Bound">g</a> <a id="1115" class="Symbol">{</a><a id="1116" href="Axiom.Extensionality.Propositional.html#1108" class="Bound">x</a><a id="1117" class="Symbol">})</a>
<a id="1122" class="Comment">------------------------------------------------------------------------</a>
<a id="1195" class="Comment">-- Properties</a>
<a id="1210" class="Comment">-- If extensionality holds for a given universe level, then it also</a>
<a id="1278" class="Comment">-- holds for lower ones.</a>
<a id="lower-extensionality"></a><a id="1304" href="Axiom.Extensionality.Propositional.html#1304" class="Function">lower-extensionality</a> <a id="1325" class="Symbol">:</a> <a id="1327" class="Symbol"></a> <a id="1329" class="Symbol">{</a><a id="1330" href="Axiom.Extensionality.Propositional.html#1330" class="Bound">a₁</a> <a id="1333" href="Axiom.Extensionality.Propositional.html#1333" class="Bound">b₁</a><a id="1335" class="Symbol">}</a> <a id="1337" href="Axiom.Extensionality.Propositional.html#1337" class="Bound">a₂</a> <a id="1340" href="Axiom.Extensionality.Propositional.html#1340" class="Bound">b₂</a> <a id="1343" class="Symbol"></a>
<a id="1368" href="Axiom.Extensionality.Propositional.html#741" class="Function">Extensionality</a> <a id="1383" class="Symbol">(</a><a id="1384" href="Axiom.Extensionality.Propositional.html#1330" class="Bound">a₁</a> <a id="1387" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1389" href="Axiom.Extensionality.Propositional.html#1337" class="Bound">a₂</a><a id="1391" class="Symbol">)</a> <a id="1393" class="Symbol">(</a><a id="1394" href="Axiom.Extensionality.Propositional.html#1333" class="Bound">b₁</a> <a id="1397" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1399" href="Axiom.Extensionality.Propositional.html#1340" class="Bound">b₂</a><a id="1401" class="Symbol">)</a> <a id="1403" class="Symbol"></a>
<a id="1428" href="Axiom.Extensionality.Propositional.html#741" class="Function">Extensionality</a> <a id="1443" href="Axiom.Extensionality.Propositional.html#1330" class="Bound">a₁</a> <a id="1446" href="Axiom.Extensionality.Propositional.html#1333" class="Bound">b₁</a>
<a id="1449" href="Axiom.Extensionality.Propositional.html#1304" class="Function">lower-extensionality</a> <a id="1470" href="Axiom.Extensionality.Propositional.html#1470" class="Bound">a₂</a> <a id="1473" href="Axiom.Extensionality.Propositional.html#1473" class="Bound">b₂</a> <a id="1476" href="Axiom.Extensionality.Propositional.html#1476" class="Bound">ext</a> <a id="1480" href="Axiom.Extensionality.Propositional.html#1480" class="Bound">f≡g</a> <a id="1484" class="Symbol">=</a> <a id="1486" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="1491" class="Symbol"></a> <a id="1494" href="Axiom.Extensionality.Propositional.html#1494" class="Bound">h</a> <a id="1496" class="Symbol"></a> <a id="1498" href="Level.html#470" class="Field">Level.lower</a> <a id="1510" href="Function.Base.html#1031" class="Function Operator"></a> <a id="1512" href="Axiom.Extensionality.Propositional.html#1494" class="Bound">h</a> <a id="1514" href="Function.Base.html#1031" class="Function Operator"></a> <a id="1516" href="Level.html#457" class="InductiveConstructor">lift</a><a id="1520" class="Symbol">)</a> <a id="1522" href="Function.Base.html#1919" class="Function Operator">$</a>
<a id="1528" href="Axiom.Extensionality.Propositional.html#1476" class="Bound">ext</a> <a id="1532" class="Symbol">(</a><a id="1533" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="1538" class="Symbol">(</a><a id="1539" href="Level.html#457" class="InductiveConstructor">lift</a> <a id="1544" class="Symbol">{</a><a id="1545" class="Argument"></a> <a id="1547" class="Symbol">=</a> <a id="1549" href="Axiom.Extensionality.Propositional.html#1473" class="Bound">b₂</a><a id="1551" class="Symbol">})</a> <a id="1554" href="Function.Base.html#1031" class="Function Operator"></a> <a id="1556" href="Axiom.Extensionality.Propositional.html#1480" class="Bound">f≡g</a> <a id="1560" href="Function.Base.html#1031" class="Function Operator"></a> <a id="1562" href="Level.html#470" class="Field">Level.lower</a> <a id="1574" class="Symbol">{</a><a id="1575" class="Argument"></a> <a id="1577" class="Symbol">=</a> <a id="1579" href="Axiom.Extensionality.Propositional.html#1470" class="Bound">a₂</a><a id="1581" class="Symbol">})</a>
<a id="1585" class="Comment">-- Functional extensionality implies a form of extensionality for</a>
<a id="1651" class="Comment">-- Π-types.</a>
<a id="∀-extensionality"></a><a id="1664" href="Axiom.Extensionality.Propositional.html#1664" class="Function">∀-extensionality</a> <a id="1681" class="Symbol">:</a> <a id="1683" class="Symbol"></a> <a id="1685" class="Symbol">{</a><a id="1686" href="Axiom.Extensionality.Propositional.html#1686" class="Bound">a</a> <a id="1688" href="Axiom.Extensionality.Propositional.html#1688" class="Bound">b</a><a id="1689" class="Symbol">}</a> <a id="1691" class="Symbol"></a> <a id="1693" href="Axiom.Extensionality.Propositional.html#741" class="Function">Extensionality</a> <a id="1708" href="Axiom.Extensionality.Propositional.html#1686" class="Bound">a</a> <a id="1710" class="Symbol">(</a><a id="1711" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="1715" href="Axiom.Extensionality.Propositional.html#1688" class="Bound">b</a><a id="1716" class="Symbol">)</a> <a id="1718" class="Symbol"></a>
<a id="1739" class="Symbol">{</a><a id="1740" href="Axiom.Extensionality.Propositional.html#1740" class="Bound">A</a> <a id="1742" class="Symbol">:</a> <a id="1744" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1748" href="Axiom.Extensionality.Propositional.html#1686" class="Bound">a</a><a id="1749" class="Symbol">}</a> <a id="1751" class="Symbol">(</a><a id="1752" href="Axiom.Extensionality.Propositional.html#1752" class="Bound">B₁</a> <a id="1755" href="Axiom.Extensionality.Propositional.html#1755" class="Bound">B₂</a> <a id="1758" class="Symbol">:</a> <a id="1760" href="Axiom.Extensionality.Propositional.html#1740" class="Bound">A</a> <a id="1762" class="Symbol"></a> <a id="1764" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1768" href="Axiom.Extensionality.Propositional.html#1688" class="Bound">b</a><a id="1769" class="Symbol">)</a> <a id="1771" class="Symbol"></a>
<a id="1792" class="Symbol">(∀</a> <a id="1795" href="Axiom.Extensionality.Propositional.html#1795" class="Bound">x</a> <a id="1797" class="Symbol"></a> <a id="1799" href="Axiom.Extensionality.Propositional.html#1752" class="Bound">B₁</a> <a id="1802" href="Axiom.Extensionality.Propositional.html#1795" class="Bound">x</a> <a id="1804" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1806" href="Axiom.Extensionality.Propositional.html#1755" class="Bound">B₂</a> <a id="1809" href="Axiom.Extensionality.Propositional.html#1795" class="Bound">x</a><a id="1810" class="Symbol">)</a> <a id="1812" class="Symbol"></a>
<a id="1833" class="Symbol">(∀</a> <a id="1836" href="Axiom.Extensionality.Propositional.html#1836" class="Bound">x</a> <a id="1838" class="Symbol"></a> <a id="1840" href="Axiom.Extensionality.Propositional.html#1752" class="Bound">B₁</a> <a id="1843" href="Axiom.Extensionality.Propositional.html#1836" class="Bound">x</a><a id="1844" class="Symbol">)</a> <a id="1846" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1848" class="Symbol">(∀</a> <a id="1851" href="Axiom.Extensionality.Propositional.html#1851" class="Bound">x</a> <a id="1853" class="Symbol"></a> <a id="1855" href="Axiom.Extensionality.Propositional.html#1755" class="Bound">B₂</a> <a id="1858" href="Axiom.Extensionality.Propositional.html#1851" class="Bound">x</a><a id="1859" class="Symbol">)</a>
<a id="1861" href="Axiom.Extensionality.Propositional.html#1664" class="Function">∀-extensionality</a> <a id="1878" href="Axiom.Extensionality.Propositional.html#1878" class="Bound">ext</a> <a id="1882" href="Axiom.Extensionality.Propositional.html#1882" class="Bound">B₁</a> <a id="1885" href="Axiom.Extensionality.Propositional.html#1885" class="Bound">B₂</a> <a id="1888" href="Axiom.Extensionality.Propositional.html#1888" class="Bound">B₁≡B₂</a> <a id="1894" class="Keyword">with</a> <a id="1899" href="Axiom.Extensionality.Propositional.html#1878" class="Bound">ext</a> <a id="1903" href="Axiom.Extensionality.Propositional.html#1888" class="Bound">B₁≡B₂</a>
<a id="1909" class="Symbol">...</a> <a id="1913" class="Symbol">|</a> <a id="1915" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1920" class="Symbol">=</a> <a id="1922" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="1928" class="Comment">-- Extensionality for explicit function spaces implies extensionality</a>
<a id="1998" class="Comment">-- for implicit function spaces.</a>
<a id="implicit-extensionality"></a><a id="2032" href="Axiom.Extensionality.Propositional.html#2032" class="Function">implicit-extensionality</a> <a id="2056" class="Symbol">:</a> <a id="2058" class="Symbol"></a> <a id="2060" class="Symbol">{</a><a id="2061" href="Axiom.Extensionality.Propositional.html#2061" class="Bound">a</a> <a id="2063" href="Axiom.Extensionality.Propositional.html#2063" class="Bound">b</a><a id="2064" class="Symbol">}</a> <a id="2066" class="Symbol"></a>
<a id="2094" href="Axiom.Extensionality.Propositional.html#741" class="Function">Extensionality</a> <a id="2109" href="Axiom.Extensionality.Propositional.html#2061" class="Bound">a</a> <a id="2111" href="Axiom.Extensionality.Propositional.html#2063" class="Bound">b</a> <a id="2113" class="Symbol"></a>
<a id="2141" href="Axiom.Extensionality.Propositional.html#928" class="Function">ExtensionalityImplicit</a> <a id="2164" href="Axiom.Extensionality.Propositional.html#2061" class="Bound">a</a> <a id="2166" href="Axiom.Extensionality.Propositional.html#2063" class="Bound">b</a>
<a id="2168" href="Axiom.Extensionality.Propositional.html#2032" class="Function">implicit-extensionality</a> <a id="2192" href="Axiom.Extensionality.Propositional.html#2192" class="Bound">ext</a> <a id="2196" href="Axiom.Extensionality.Propositional.html#2196" class="Bound">f≡g</a> <a id="2200" class="Symbol">=</a> <a id="2202" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="2207" href="Function.Base.html#2741" class="Function Operator">_$-</a> <a id="2211" class="Symbol">(</a><a id="2212" href="Axiom.Extensionality.Propositional.html#2192" class="Bound">ext</a> <a id="2216" class="Symbol"></a> <a id="2219" href="Axiom.Extensionality.Propositional.html#2219" class="Bound">x</a> <a id="2221" class="Symbol"></a> <a id="2223" href="Axiom.Extensionality.Propositional.html#2196" class="Bound">f≡g</a><a id="2226" class="Symbol">))</a>
</pre></body></html>

View File

@ -0,0 +1,79 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Axiom.UniquenessOfIdentityProofs</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Results concerning uniqueness of identity proofs</a>
<a id="158" class="Comment">------------------------------------------------------------------------</a>
<a id="232" class="Symbol">{-#</a> <a id="236" class="Keyword">OPTIONS</a> <a id="244" class="Pragma">--without-K</a> <a id="256" class="Pragma">--safe</a> <a id="263" class="Symbol">#-}</a>
<a id="268" class="Keyword">module</a> <a id="275" href="Axiom.UniquenessOfIdentityProofs.html" class="Module">Axiom.UniquenessOfIdentityProofs</a> <a id="308" class="Keyword">where</a>
<a id="315" class="Keyword">open</a> <a id="320" class="Keyword">import</a> <a id="327" href="Data.Bool.Base.html" class="Module">Data.Bool.Base</a> <a id="342" class="Keyword">using</a> <a id="348" class="Symbol">(</a><a id="349" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a><a id="353" class="Symbol">;</a> <a id="355" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a><a id="360" class="Symbol">)</a>
<a id="362" class="Keyword">open</a> <a id="367" class="Keyword">import</a> <a id="374" href="Data.Empty.html" class="Module">Data.Empty</a>
<a id="385" class="Keyword">open</a> <a id="390" class="Keyword">import</a> <a id="397" href="Relation.Nullary.Reflects.html" class="Module">Relation.Nullary.Reflects</a> <a id="423" class="Keyword">using</a> <a id="429" class="Symbol">(</a><a id="430" href="Relation.Nullary.Reflects.html#1031" class="Function">invert</a><a id="436" class="Symbol">)</a>
<a id="438" class="Keyword">open</a> <a id="443" class="Keyword">import</a> <a id="450" href="Relation.Nullary.html" class="Module">Relation.Nullary</a> <a id="467" class="Keyword">hiding</a> <a id="474" class="Symbol">(</a><a id="475" href="Relation.Nullary.html#2040" class="Function">Irrelevant</a><a id="485" class="Symbol">)</a>
<a id="487" class="Keyword">open</a> <a id="492" class="Keyword">import</a> <a id="499" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a>
<a id="520" class="Keyword">open</a> <a id="525" class="Keyword">import</a> <a id="532" href="Relation.Binary.Definitions.html" class="Module">Relation.Binary.Definitions</a>
<a id="560" class="Keyword">open</a> <a id="565" class="Keyword">import</a> <a id="572" href="Relation.Binary.PropositionalEquality.Core.html" class="Module">Relation.Binary.PropositionalEquality.Core</a>
<a id="615" class="Keyword">open</a> <a id="620" class="Keyword">import</a> <a id="627" href="Relation.Binary.PropositionalEquality.Properties.html" class="Module">Relation.Binary.PropositionalEquality.Properties</a>
<a id="677" class="Comment">------------------------------------------------------------------------</a>
<a id="750" class="Comment">-- Definition</a>
<a id="764" class="Comment">--</a>
<a id="767" class="Comment">-- Uniqueness of Identity Proofs (UIP) states that all proofs of</a>
<a id="832" class="Comment">-- equality are themselves equal. In other words, the equality relation</a>
<a id="904" class="Comment">-- is irrelevant. Here we define UIP relative to a given type.</a>
<a id="UIP"></a><a id="968" href="Axiom.UniquenessOfIdentityProofs.html#968" class="Function">UIP</a> <a id="972" class="Symbol">:</a> <a id="974" class="Symbol"></a> <a id="976" class="Symbol">{</a><a id="977" href="Axiom.UniquenessOfIdentityProofs.html#977" class="Bound">a</a><a id="978" class="Symbol">}</a> <a id="980" class="Symbol">(</a><a id="981" href="Axiom.UniquenessOfIdentityProofs.html#981" class="Bound">A</a> <a id="983" class="Symbol">:</a> <a id="985" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="989" href="Axiom.UniquenessOfIdentityProofs.html#977" class="Bound">a</a><a id="990" class="Symbol">)</a> <a id="992" class="Symbol"></a> <a id="994" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="998" href="Axiom.UniquenessOfIdentityProofs.html#977" class="Bound">a</a>
<a id="1000" href="Axiom.UniquenessOfIdentityProofs.html#968" class="Function">UIP</a> <a id="1004" href="Axiom.UniquenessOfIdentityProofs.html#1004" class="Bound">A</a> <a id="1006" class="Symbol">=</a> <a id="1008" href="Relation.Binary.Definitions.html#5065" class="Function">Irrelevant</a> <a id="1019" class="Symbol">{</a><a id="1020" class="Argument">A</a> <a id="1022" class="Symbol">=</a> <a id="1024" href="Axiom.UniquenessOfIdentityProofs.html#1004" class="Bound">A</a><a id="1025" class="Symbol">}</a> <a id="1027" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a>
<a id="1032" class="Comment">------------------------------------------------------------------------</a>
<a id="1105" class="Comment">-- Properties</a>
<a id="1120" class="Comment">-- UIP always holds when using axiom K</a>
<a id="1159" class="Comment">-- (see `Axiom.UniquenessOfIdentityProofs.WithK`).</a>
<a id="1211" class="Comment">-- The existence of a constant function over proofs of equality for</a>
<a id="1279" class="Comment">-- elements in A is enough to prove UIP for A. Indeed, we can relate any</a>
<a id="1352" class="Comment">-- proof to its image via this function which we then know is equal to</a>
<a id="1423" class="Comment">-- the image of any other proof.</a>
<a id="1457" class="Keyword">module</a> <a id="Constant⇒UIP"></a><a id="1464" href="Axiom.UniquenessOfIdentityProofs.html#1464" class="Module">Constant⇒UIP</a>
<a id="1479" class="Symbol">{</a><a id="1480" href="Axiom.UniquenessOfIdentityProofs.html#1480" class="Bound">a</a><a id="1481" class="Symbol">}</a> <a id="1483" class="Symbol">{</a><a id="1484" href="Axiom.UniquenessOfIdentityProofs.html#1484" class="Bound">A</a> <a id="1486" class="Symbol">:</a> <a id="1488" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1492" href="Axiom.UniquenessOfIdentityProofs.html#1480" class="Bound">a</a><a id="1493" class="Symbol">}</a> <a id="1495" class="Symbol">(</a><a id="1496" href="Axiom.UniquenessOfIdentityProofs.html#1496" class="Bound">f</a> <a id="1498" class="Symbol">:</a> <a id="1500" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a> <a id="1504" class="Symbol">{</a><a id="1505" class="Argument">A</a> <a id="1507" class="Symbol">=</a> <a id="1509" href="Axiom.UniquenessOfIdentityProofs.html#1484" class="Bound">A</a><a id="1510" class="Symbol">}</a> <a id="1512" href="Relation.Binary.Core.html#1254" class="Function Operator"></a> <a id="1514" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a><a id="1517" class="Symbol">)</a>
<a id="1521" class="Symbol">(</a><a id="1522" href="Axiom.UniquenessOfIdentityProofs.html#1522" class="Bound">f-constant</a> <a id="1533" class="Symbol">:</a> <a id="1535" class="Symbol"></a> <a id="1537" class="Symbol">{</a><a id="1538" href="Axiom.UniquenessOfIdentityProofs.html#1538" class="Bound">a</a> <a id="1540" href="Axiom.UniquenessOfIdentityProofs.html#1540" class="Bound">b</a><a id="1541" class="Symbol">}</a> <a id="1543" class="Symbol">(</a><a id="1544" href="Axiom.UniquenessOfIdentityProofs.html#1544" class="Bound">p</a> <a id="1546" href="Axiom.UniquenessOfIdentityProofs.html#1546" class="Bound">q</a> <a id="1548" class="Symbol">:</a> <a id="1550" href="Axiom.UniquenessOfIdentityProofs.html#1538" class="Bound">a</a> <a id="1552" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1554" href="Axiom.UniquenessOfIdentityProofs.html#1540" class="Bound">b</a><a id="1555" class="Symbol">)</a> <a id="1557" class="Symbol"></a> <a id="1559" href="Axiom.UniquenessOfIdentityProofs.html#1496" class="Bound">f</a> <a id="1561" href="Axiom.UniquenessOfIdentityProofs.html#1544" class="Bound">p</a> <a id="1563" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1565" href="Axiom.UniquenessOfIdentityProofs.html#1496" class="Bound">f</a> <a id="1567" href="Axiom.UniquenessOfIdentityProofs.html#1546" class="Bound">q</a><a id="1568" class="Symbol">)</a>
<a id="1572" class="Keyword">where</a>
<a id="Constant⇒UIP.≡-canonical"></a><a id="1581" href="Axiom.UniquenessOfIdentityProofs.html#1581" class="Function">≡-canonical</a> <a id="1593" class="Symbol">:</a> <a id="1595" class="Symbol"></a> <a id="1597" class="Symbol">{</a><a id="1598" href="Axiom.UniquenessOfIdentityProofs.html#1598" class="Bound">a</a> <a id="1600" href="Axiom.UniquenessOfIdentityProofs.html#1600" class="Bound">b</a><a id="1601" class="Symbol">}</a> <a id="1603" class="Symbol">(</a><a id="1604" href="Axiom.UniquenessOfIdentityProofs.html#1604" class="Bound">p</a> <a id="1606" class="Symbol">:</a> <a id="1608" href="Axiom.UniquenessOfIdentityProofs.html#1598" class="Bound">a</a> <a id="1610" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1612" href="Axiom.UniquenessOfIdentityProofs.html#1600" class="Bound">b</a><a id="1613" class="Symbol">)</a> <a id="1615" class="Symbol"></a> <a id="1617" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="1623" class="Symbol">(</a><a id="1624" href="Relation.Binary.PropositionalEquality.Core.html#1684" class="Function">sym</a> <a id="1628" class="Symbol">(</a><a id="1629" href="Axiom.UniquenessOfIdentityProofs.html#1496" class="Bound">f</a> <a id="1631" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a><a id="1635" class="Symbol">))</a> <a id="1638" class="Symbol">(</a><a id="1639" href="Axiom.UniquenessOfIdentityProofs.html#1496" class="Bound">f</a> <a id="1641" href="Axiom.UniquenessOfIdentityProofs.html#1604" class="Bound">p</a><a id="1642" class="Symbol">)</a> <a id="1644" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1646" href="Axiom.UniquenessOfIdentityProofs.html#1604" class="Bound">p</a>
<a id="1650" href="Axiom.UniquenessOfIdentityProofs.html#1581" class="Function">≡-canonical</a> <a id="1662" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1667" class="Symbol">=</a> <a id="1669" href="Relation.Binary.PropositionalEquality.Properties.html#1062" class="Function">trans-symˡ</a> <a id="1680" class="Symbol">(</a><a id="1681" href="Axiom.UniquenessOfIdentityProofs.html#1496" class="Bound">f</a> <a id="1683" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a><a id="1687" class="Symbol">)</a>
<a id="Constant⇒UIP.≡-irrelevant"></a><a id="1692" href="Axiom.UniquenessOfIdentityProofs.html#1692" class="Function">≡-irrelevant</a> <a id="1705" class="Symbol">:</a> <a id="1707" href="Axiom.UniquenessOfIdentityProofs.html#968" class="Function">UIP</a> <a id="1711" href="Axiom.UniquenessOfIdentityProofs.html#1484" class="Bound">A</a>
<a id="1715" href="Axiom.UniquenessOfIdentityProofs.html#1692" class="Function">≡-irrelevant</a> <a id="1728" href="Axiom.UniquenessOfIdentityProofs.html#1728" class="Bound">p</a> <a id="1730" href="Axiom.UniquenessOfIdentityProofs.html#1730" class="Bound">q</a> <a id="1732" class="Symbol">=</a> <a id="1734" href="Relation.Binary.PropositionalEquality.Core.html#2806" class="Function Operator">begin</a>
<a id="1744" href="Axiom.UniquenessOfIdentityProofs.html#1728" class="Bound">p</a> <a id="1771" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function">≡⟨</a> <a id="1774" href="Relation.Binary.PropositionalEquality.Core.html#1684" class="Function">sym</a> <a id="1778" class="Symbol">(</a><a id="1779" href="Axiom.UniquenessOfIdentityProofs.html#1581" class="Function">≡-canonical</a> <a id="1791" href="Axiom.UniquenessOfIdentityProofs.html#1728" class="Bound">p</a><a id="1792" class="Symbol">)</a> <a id="1794" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function"></a>
<a id="1800" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="1806" class="Symbol">(</a><a id="1807" href="Relation.Binary.PropositionalEquality.Core.html#1684" class="Function">sym</a> <a id="1811" class="Symbol">(</a><a id="1812" href="Axiom.UniquenessOfIdentityProofs.html#1496" class="Bound">f</a> <a id="1814" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a><a id="1818" class="Symbol">))</a> <a id="1821" class="Symbol">(</a><a id="1822" href="Axiom.UniquenessOfIdentityProofs.html#1496" class="Bound">f</a> <a id="1824" href="Axiom.UniquenessOfIdentityProofs.html#1728" class="Bound">p</a><a id="1825" class="Symbol">)</a> <a id="1827" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function">≡⟨</a> <a id="1830" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="1835" class="Symbol">(</a><a id="1836" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="1842" class="Symbol">_)</a> <a id="1845" class="Symbol">(</a><a id="1846" href="Axiom.UniquenessOfIdentityProofs.html#1522" class="Bound">f-constant</a> <a id="1857" href="Axiom.UniquenessOfIdentityProofs.html#1728" class="Bound">p</a> <a id="1859" href="Axiom.UniquenessOfIdentityProofs.html#1730" class="Bound">q</a><a id="1860" class="Symbol">)</a> <a id="1862" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function"></a>
<a id="1868" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="1874" class="Symbol">(</a><a id="1875" href="Relation.Binary.PropositionalEquality.Core.html#1684" class="Function">sym</a> <a id="1879" class="Symbol">(</a><a id="1880" href="Axiom.UniquenessOfIdentityProofs.html#1496" class="Bound">f</a> <a id="1882" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a><a id="1886" class="Symbol">))</a> <a id="1889" class="Symbol">(</a><a id="1890" href="Axiom.UniquenessOfIdentityProofs.html#1496" class="Bound">f</a> <a id="1892" href="Axiom.UniquenessOfIdentityProofs.html#1730" class="Bound">q</a><a id="1893" class="Symbol">)</a> <a id="1895" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function">≡⟨</a> <a id="1898" href="Axiom.UniquenessOfIdentityProofs.html#1581" class="Function">≡-canonical</a> <a id="1910" href="Axiom.UniquenessOfIdentityProofs.html#1730" class="Bound">q</a> <a id="1912" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function"></a>
<a id="1918" href="Axiom.UniquenessOfIdentityProofs.html#1730" class="Bound">q</a> <a id="1945" href="Relation.Binary.PropositionalEquality.Core.html#3105" class="Function Operator"></a>
<a id="1951" class="Keyword">where</a> <a id="1957" class="Keyword">open</a> <a id="1962" href="Relation.Binary.PropositionalEquality.Core.html#2708" class="Module">≡-Reasoning</a>
<a id="1975" class="Comment">-- If equality is decidable for a given type, then we can prove UIP for</a>
<a id="2047" class="Comment">-- that type. Indeed, the decision procedure allows us to define a</a>
<a id="2114" class="Comment">-- function over proofs of equality which is constant: it returns the</a>
<a id="2184" class="Comment">-- proof produced by the decision procedure.</a>
<a id="2230" class="Keyword">module</a> <a id="Decidable⇒UIP"></a><a id="2237" href="Axiom.UniquenessOfIdentityProofs.html#2237" class="Module">Decidable⇒UIP</a>
<a id="2253" class="Symbol">{</a><a id="2254" href="Axiom.UniquenessOfIdentityProofs.html#2254" class="Bound">a</a><a id="2255" class="Symbol">}</a> <a id="2257" class="Symbol">{</a><a id="2258" href="Axiom.UniquenessOfIdentityProofs.html#2258" class="Bound">A</a> <a id="2260" class="Symbol">:</a> <a id="2262" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2266" href="Axiom.UniquenessOfIdentityProofs.html#2254" class="Bound">a</a><a id="2267" class="Symbol">}</a> <a id="2269" class="Symbol">(</a><a id="2270" href="Axiom.UniquenessOfIdentityProofs.html#2270" class="Bound Operator">_≟_</a> <a id="2274" class="Symbol">:</a> <a id="2276" href="Relation.Binary.Definitions.html#4575" class="Function">Decidable</a> <a id="2286" class="Symbol">{</a><a id="2287" class="Argument">A</a> <a id="2289" class="Symbol">=</a> <a id="2291" href="Axiom.UniquenessOfIdentityProofs.html#2258" class="Bound">A</a><a id="2292" class="Symbol">}</a> <a id="2294" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a><a id="2297" class="Symbol">)</a>
<a id="2301" class="Keyword">where</a>
<a id="Decidable⇒UIP.≡-normalise"></a><a id="2310" href="Axiom.UniquenessOfIdentityProofs.html#2310" class="Function">≡-normalise</a> <a id="2322" class="Symbol">:</a> <a id="2324" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a> <a id="2328" class="Symbol">{</a><a id="2329" class="Argument">A</a> <a id="2331" class="Symbol">=</a> <a id="2333" href="Axiom.UniquenessOfIdentityProofs.html#2258" class="Bound">A</a><a id="2334" class="Symbol">}</a> <a id="2336" href="Relation.Binary.Core.html#1254" class="Function Operator"></a> <a id="2338" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a>
<a id="2344" href="Axiom.UniquenessOfIdentityProofs.html#2310" class="Function">≡-normalise</a> <a id="2356" class="Symbol">{</a><a id="2357" href="Axiom.UniquenessOfIdentityProofs.html#2357" class="Bound">a</a><a id="2358" class="Symbol">}</a> <a id="2360" class="Symbol">{</a><a id="2361" href="Axiom.UniquenessOfIdentityProofs.html#2361" class="Bound">b</a><a id="2362" class="Symbol">}</a> <a id="2364" href="Axiom.UniquenessOfIdentityProofs.html#2364" class="Bound">a≡b</a> <a id="2368" class="Keyword">with</a> <a id="2373" href="Axiom.UniquenessOfIdentityProofs.html#2357" class="Bound">a</a> <a id="2375" href="Axiom.UniquenessOfIdentityProofs.html#2270" class="Bound Operator"></a> <a id="2377" href="Axiom.UniquenessOfIdentityProofs.html#2361" class="Bound">b</a>
<a id="2381" class="Symbol">...</a> <a id="2385" class="Symbol">|</a> <a id="2387" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="2393" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="2402" href="Axiom.UniquenessOfIdentityProofs.html#2402" class="Bound">[p]</a> <a id="2406" class="Symbol">=</a> <a id="2408" href="Relation.Nullary.Reflects.html#1031" class="Function">invert</a> <a id="2415" href="Axiom.UniquenessOfIdentityProofs.html#2402" class="Bound">[p]</a>
<a id="2421" class="Symbol">...</a> <a id="2425" class="Symbol">|</a> <a id="2427" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="2433" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="2441" href="Axiom.UniquenessOfIdentityProofs.html#2441" class="Bound">[¬p]</a> <a id="2446" class="Symbol">=</a> <a id="2448" href="Data.Empty.html#628" class="Function">⊥-elim</a> <a id="2455" class="Symbol">(</a><a id="2456" href="Relation.Nullary.Reflects.html#1031" class="Function">invert</a> <a id="2463" href="Axiom.UniquenessOfIdentityProofs.html#2441" class="Bound">[¬p]</a> <a id="2468" class="Bound">a≡b</a><a id="2471" class="Symbol">)</a>
<a id="Decidable⇒UIP.≡-normalise-constant"></a><a id="2476" href="Axiom.UniquenessOfIdentityProofs.html#2476" class="Function">≡-normalise-constant</a> <a id="2497" class="Symbol">:</a> <a id="2499" class="Symbol"></a> <a id="2501" class="Symbol">{</a><a id="2502" href="Axiom.UniquenessOfIdentityProofs.html#2502" class="Bound">a</a> <a id="2504" href="Axiom.UniquenessOfIdentityProofs.html#2504" class="Bound">b</a><a id="2505" class="Symbol">}</a> <a id="2507" class="Symbol">(</a><a id="2508" href="Axiom.UniquenessOfIdentityProofs.html#2508" class="Bound">p</a> <a id="2510" href="Axiom.UniquenessOfIdentityProofs.html#2510" class="Bound">q</a> <a id="2512" class="Symbol">:</a> <a id="2514" href="Axiom.UniquenessOfIdentityProofs.html#2502" class="Bound">a</a> <a id="2516" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2518" href="Axiom.UniquenessOfIdentityProofs.html#2504" class="Bound">b</a><a id="2519" class="Symbol">)</a> <a id="2521" class="Symbol"></a> <a id="2523" href="Axiom.UniquenessOfIdentityProofs.html#2310" class="Function">≡-normalise</a> <a id="2535" href="Axiom.UniquenessOfIdentityProofs.html#2508" class="Bound">p</a> <a id="2537" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2539" href="Axiom.UniquenessOfIdentityProofs.html#2310" class="Function">≡-normalise</a> <a id="2551" href="Axiom.UniquenessOfIdentityProofs.html#2510" class="Bound">q</a>
<a id="2555" href="Axiom.UniquenessOfIdentityProofs.html#2476" class="Function">≡-normalise-constant</a> <a id="2576" class="Symbol">{</a><a id="2577" href="Axiom.UniquenessOfIdentityProofs.html#2577" class="Bound">a</a><a id="2578" class="Symbol">}</a> <a id="2580" class="Symbol">{</a><a id="2581" href="Axiom.UniquenessOfIdentityProofs.html#2581" class="Bound">b</a><a id="2582" class="Symbol">}</a> <a id="2584" href="Axiom.UniquenessOfIdentityProofs.html#2584" class="Bound">p</a> <a id="2586" href="Axiom.UniquenessOfIdentityProofs.html#2586" class="Bound">q</a> <a id="2588" class="Keyword">with</a> <a id="2593" href="Axiom.UniquenessOfIdentityProofs.html#2577" class="Bound">a</a> <a id="2595" href="Axiom.UniquenessOfIdentityProofs.html#2270" class="Bound Operator"></a> <a id="2597" href="Axiom.UniquenessOfIdentityProofs.html#2581" class="Bound">b</a>
<a id="2601" class="Symbol">...</a> <a id="2605" class="Symbol">|</a> <a id="2607" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="2613" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="2623" class="Symbol">_</a> <a id="2626" class="Symbol">=</a> <a id="2628" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="2635" class="Symbol">...</a> <a id="2639" class="Symbol">|</a> <a id="2641" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="2647" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="2655" href="Axiom.UniquenessOfIdentityProofs.html#2655" class="Bound">[¬p]</a> <a id="2660" class="Symbol">=</a> <a id="2662" href="Data.Empty.html#628" class="Function">⊥-elim</a> <a id="2669" class="Symbol">(</a><a id="2670" href="Relation.Nullary.Reflects.html#1031" class="Function">invert</a> <a id="2677" href="Axiom.UniquenessOfIdentityProofs.html#2655" class="Bound">[¬p]</a> <a id="2682" class="Bound">p</a><a id="2683" class="Symbol">)</a>
<a id="Decidable⇒UIP.≡-irrelevant"></a><a id="2688" href="Axiom.UniquenessOfIdentityProofs.html#2688" class="Function">≡-irrelevant</a> <a id="2701" class="Symbol">:</a> <a id="2703" href="Axiom.UniquenessOfIdentityProofs.html#968" class="Function">UIP</a> <a id="2707" href="Axiom.UniquenessOfIdentityProofs.html#2258" class="Bound">A</a>
<a id="2711" href="Axiom.UniquenessOfIdentityProofs.html#2688" class="Function">≡-irrelevant</a> <a id="2724" class="Symbol">=</a> <a id="2726" href="Axiom.UniquenessOfIdentityProofs.html#1692" class="Function">Constant⇒UIP.≡-irrelevant</a> <a id="2752" href="Axiom.UniquenessOfIdentityProofs.html#2310" class="Function">≡-normalise</a> <a id="2764" href="Axiom.UniquenessOfIdentityProofs.html#2476" class="Function">≡-normalise-constant</a>
</pre></body></html>

75
misc/Data.Bool.Base.html Normal file
View File

@ -0,0 +1,75 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Data.Bool.Base</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- The type for booleans and some operations</a>
<a id="151" class="Comment">------------------------------------------------------------------------</a>
<a id="225" class="Symbol">{-#</a> <a id="229" class="Keyword">OPTIONS</a> <a id="237" class="Pragma">--without-K</a> <a id="249" class="Pragma">--safe</a> <a id="256" class="Symbol">#-}</a>
<a id="261" class="Keyword">module</a> <a id="268" href="Data.Bool.Base.html" class="Module">Data.Bool.Base</a> <a id="283" class="Keyword">where</a>
<a id="290" class="Keyword">open</a> <a id="295" class="Keyword">import</a> <a id="302" href="Data.Unit.Base.html" class="Module">Data.Unit.Base</a> <a id="317" class="Keyword">using</a> <a id="323" class="Symbol">(</a><a id="324" href="Agda.Builtin.Unit.html#164" class="Record"></a><a id="325" class="Symbol">)</a>
<a id="327" class="Keyword">open</a> <a id="332" class="Keyword">import</a> <a id="339" href="Data.Empty.html" class="Module">Data.Empty</a>
<a id="350" class="Keyword">open</a> <a id="355" class="Keyword">import</a> <a id="362" href="Level.html" class="Module">Level</a> <a id="368" class="Keyword">using</a> <a id="374" class="Symbol">(</a><a id="375" href="Agda.Primitive.html#597" class="Postulate">Level</a><a id="380" class="Symbol">)</a>
<a id="383" class="Keyword">private</a>
<a id="393" class="Keyword">variable</a>
<a id="406" href="Data.Bool.Base.html#406" class="Generalizable">a</a> <a id="408" class="Symbol">:</a> <a id="410" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="420" href="Data.Bool.Base.html#420" class="Generalizable">A</a> <a id="422" class="Symbol">:</a> <a id="424" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="428" href="Data.Bool.Base.html#406" class="Generalizable">a</a>
<a id="431" class="Comment">------------------------------------------------------------------------</a>
<a id="504" class="Comment">-- The boolean type</a>
<a id="525" class="Keyword">open</a> <a id="530" class="Keyword">import</a> <a id="537" href="Agda.Builtin.Bool.html" class="Module">Agda.Builtin.Bool</a> <a id="555" class="Keyword">public</a>
<a id="563" class="Comment">------------------------------------------------------------------------</a>
<a id="636" class="Comment">-- Relations</a>
<a id="650" class="Keyword">infix</a> <a id="656" class="Number">4</a> <a id="658" href="Data.Bool.Base.html#672" class="Datatype Operator">_≤_</a> <a id="662" href="Data.Bool.Base.html#751" class="Datatype Operator">_&lt;_</a>
<a id="667" class="Keyword">data</a> <a id="_≤_"></a><a id="672" href="Data.Bool.Base.html#672" class="Datatype Operator">_≤_</a> <a id="676" class="Symbol">:</a> <a id="678" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a> <a id="683" class="Symbol"></a> <a id="685" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a> <a id="690" class="Symbol"></a> <a id="692" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="696" class="Keyword">where</a>
<a id="_≤_.f≤t"></a><a id="704" href="Data.Bool.Base.html#704" class="InductiveConstructor">f≤t</a> <a id="708" class="Symbol">:</a> <a id="710" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="716" href="Data.Bool.Base.html#672" class="Datatype Operator"></a> <a id="718" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a>
<a id="_≤_.b≤b"></a><a id="725" href="Data.Bool.Base.html#725" class="InductiveConstructor">b≤b</a> <a id="729" class="Symbol">:</a> <a id="731" class="Symbol"></a> <a id="733" class="Symbol">{</a><a id="734" href="Data.Bool.Base.html#734" class="Bound">b</a><a id="735" class="Symbol">}</a> <a id="737" class="Symbol"></a> <a id="739" href="Data.Bool.Base.html#734" class="Bound">b</a> <a id="741" href="Data.Bool.Base.html#672" class="Datatype Operator"></a> <a id="743" href="Data.Bool.Base.html#734" class="Bound">b</a>
<a id="746" class="Keyword">data</a> <a id="_&lt;_"></a><a id="751" href="Data.Bool.Base.html#751" class="Datatype Operator">_&lt;_</a> <a id="755" class="Symbol">:</a> <a id="757" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a> <a id="762" class="Symbol"></a> <a id="764" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a> <a id="769" class="Symbol"></a> <a id="771" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="775" class="Keyword">where</a>
<a id="_&lt;_.f&lt;t"></a><a id="783" href="Data.Bool.Base.html#783" class="InductiveConstructor">f&lt;t</a> <a id="787" class="Symbol">:</a> <a id="789" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="795" href="Data.Bool.Base.html#751" class="Datatype Operator">&lt;</a> <a id="797" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a>
<a id="803" class="Comment">------------------------------------------------------------------------</a>
<a id="876" class="Comment">-- Boolean operations</a>
<a id="899" class="Keyword">infixr</a> <a id="906" class="Number">6</a> <a id="908" href="Data.Bool.Base.html#986" class="Function Operator">_∧_</a>
<a id="912" class="Keyword">infixr</a> <a id="919" class="Number">5</a> <a id="921" href="Data.Bool.Base.html#1044" class="Function Operator">__</a> <a id="925" href="Data.Bool.Base.html#1101" class="Function Operator">_xor_</a>
<a id="not"></a><a id="932" href="Data.Bool.Base.html#932" class="Function">not</a> <a id="936" class="Symbol">:</a> <a id="938" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a> <a id="943" class="Symbol"></a> <a id="945" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a>
<a id="950" href="Data.Bool.Base.html#932" class="Function">not</a> <a id="954" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="960" class="Symbol">=</a> <a id="962" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a>
<a id="968" href="Data.Bool.Base.html#932" class="Function">not</a> <a id="972" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="978" class="Symbol">=</a> <a id="980" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a>
<a id="_∧_"></a><a id="986" href="Data.Bool.Base.html#986" class="Function Operator">_∧_</a> <a id="990" class="Symbol">:</a> <a id="992" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a> <a id="997" class="Symbol"></a> <a id="999" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a> <a id="1004" class="Symbol"></a> <a id="1006" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a>
<a id="1011" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="1017" href="Data.Bool.Base.html#986" class="Function Operator"></a> <a id="1019" href="Data.Bool.Base.html#1019" class="Bound">b</a> <a id="1021" class="Symbol">=</a> <a id="1023" href="Data.Bool.Base.html#1019" class="Bound">b</a>
<a id="1025" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="1031" href="Data.Bool.Base.html#986" class="Function Operator"></a> <a id="1033" href="Data.Bool.Base.html#1033" class="Bound">b</a> <a id="1035" class="Symbol">=</a> <a id="1037" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a>
<a id="__"></a><a id="1044" href="Data.Bool.Base.html#1044" class="Function Operator">__</a> <a id="1048" class="Symbol">:</a> <a id="1050" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a> <a id="1055" class="Symbol"></a> <a id="1057" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a> <a id="1062" class="Symbol"></a> <a id="1064" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a>
<a id="1069" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="1075" href="Data.Bool.Base.html#1044" class="Function Operator"></a> <a id="1077" href="Data.Bool.Base.html#1077" class="Bound">b</a> <a id="1079" class="Symbol">=</a> <a id="1081" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a>
<a id="1086" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="1092" href="Data.Bool.Base.html#1044" class="Function Operator"></a> <a id="1094" href="Data.Bool.Base.html#1094" class="Bound">b</a> <a id="1096" class="Symbol">=</a> <a id="1098" href="Data.Bool.Base.html#1094" class="Bound">b</a>
<a id="_xor_"></a><a id="1101" href="Data.Bool.Base.html#1101" class="Function Operator">_xor_</a> <a id="1107" class="Symbol">:</a> <a id="1109" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a> <a id="1114" class="Symbol"></a> <a id="1116" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a> <a id="1121" class="Symbol"></a> <a id="1123" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a>
<a id="1128" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="1134" href="Data.Bool.Base.html#1101" class="Function Operator">xor</a> <a id="1138" href="Data.Bool.Base.html#1138" class="Bound">b</a> <a id="1140" class="Symbol">=</a> <a id="1142" href="Data.Bool.Base.html#932" class="Function">not</a> <a id="1146" href="Data.Bool.Base.html#1138" class="Bound">b</a>
<a id="1148" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="1154" href="Data.Bool.Base.html#1101" class="Function Operator">xor</a> <a id="1158" href="Data.Bool.Base.html#1158" class="Bound">b</a> <a id="1160" class="Symbol">=</a> <a id="1162" href="Data.Bool.Base.html#1158" class="Bound">b</a>
<a id="1165" class="Comment">------------------------------------------------------------------------</a>
<a id="1238" class="Comment">-- Other operations</a>
<a id="1259" class="Keyword">infix</a> <a id="1266" class="Number">0</a> <a id="1268" href="Data.Bool.Base.html#1283" class="Function Operator">if_then_else_</a>
<a id="if_then_else_"></a><a id="1283" href="Data.Bool.Base.html#1283" class="Function Operator">if_then_else_</a> <a id="1297" class="Symbol">:</a> <a id="1299" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a> <a id="1304" class="Symbol"></a> <a id="1306" href="Data.Bool.Base.html#420" class="Generalizable">A</a> <a id="1308" class="Symbol"></a> <a id="1310" href="Data.Bool.Base.html#420" class="Generalizable">A</a> <a id="1312" class="Symbol"></a> <a id="1314" href="Data.Bool.Base.html#420" class="Generalizable">A</a>
<a id="1316" href="Data.Bool.Base.html#1283" class="Function Operator">if</a> <a id="1319" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="1325" href="Data.Bool.Base.html#1283" class="Function Operator">then</a> <a id="1330" href="Data.Bool.Base.html#1330" class="Bound">t</a> <a id="1332" href="Data.Bool.Base.html#1283" class="Function Operator">else</a> <a id="1337" href="Data.Bool.Base.html#1337" class="Bound">f</a> <a id="1339" class="Symbol">=</a> <a id="1341" href="Data.Bool.Base.html#1330" class="Bound">t</a>
<a id="1343" href="Data.Bool.Base.html#1283" class="Function Operator">if</a> <a id="1346" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="1352" href="Data.Bool.Base.html#1283" class="Function Operator">then</a> <a id="1357" href="Data.Bool.Base.html#1357" class="Bound">t</a> <a id="1359" href="Data.Bool.Base.html#1283" class="Function Operator">else</a> <a id="1364" href="Data.Bool.Base.html#1364" class="Bound">f</a> <a id="1366" class="Symbol">=</a> <a id="1368" href="Data.Bool.Base.html#1364" class="Bound">f</a>
<a id="1371" class="Comment">-- A function mapping true to an inhabited type and false to an empty</a>
<a id="1441" class="Comment">-- type.</a>
<a id="T"></a><a id="1451" href="Data.Bool.Base.html#1451" class="Function">T</a> <a id="1453" class="Symbol">:</a> <a id="1455" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a> <a id="1460" class="Symbol"></a> <a id="1462" href="Agda.Primitive.html#326" class="Primitive">Set</a>
<a id="1466" href="Data.Bool.Base.html#1451" class="Function">T</a> <a id="1468" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="1474" class="Symbol">=</a> <a id="1476" href="Agda.Builtin.Unit.html#164" class="Record"></a>
<a id="1478" href="Data.Bool.Base.html#1451" class="Function">T</a> <a id="1480" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="1486" class="Symbol">=</a> <a id="1488" href="Data.Empty.html#526" class="Datatype"></a>
</pre></body></html>

View File

@ -0,0 +1,16 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Data.Empty.Irrelevant</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- An irrelevant version of ⊥-elim</a>
<a id="141" class="Comment">------------------------------------------------------------------------</a>
<a id="215" class="Symbol">{-#</a> <a id="219" class="Keyword">OPTIONS</a> <a id="227" class="Pragma">--without-K</a> <a id="239" class="Pragma">--safe</a> <a id="246" class="Symbol">#-}</a>
<a id="251" class="Keyword">module</a> <a id="258" href="Data.Empty.Irrelevant.html" class="Module">Data.Empty.Irrelevant</a> <a id="280" class="Keyword">where</a>
<a id="287" class="Keyword">open</a> <a id="292" class="Keyword">import</a> <a id="299" href="Data.Empty.html" class="Module">Data.Empty</a> <a id="310" class="Keyword">hiding</a> <a id="317" class="Symbol">(</a><a id="318" href="Data.Empty.html#628" class="Function">⊥-elim</a><a id="324" class="Symbol">)</a>
<a id="⊥-elim"></a><a id="327" href="Data.Empty.Irrelevant.html#327" class="Function">⊥-elim</a> <a id="334" class="Symbol">:</a> <a id="336" class="Symbol"></a> <a id="338" class="Symbol">{</a><a id="339" href="Data.Empty.Irrelevant.html#339" class="Bound">w</a><a id="340" class="Symbol">}</a> <a id="342" class="Symbol">{</a><a id="343" href="Data.Empty.Irrelevant.html#343" class="Bound">Whatever</a> <a id="352" class="Symbol">:</a> <a id="354" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="358" href="Data.Empty.Irrelevant.html#339" class="Bound">w</a><a id="359" class="Symbol">}</a> <a id="361" class="Symbol"></a> <a id="363" class="Symbol">.</a><a id="364" href="Data.Empty.html#526" class="Datatype"></a> <a id="366" class="Symbol"></a> <a id="368" href="Data.Empty.Irrelevant.html#343" class="Bound">Whatever</a>
<a id="377" href="Data.Empty.Irrelevant.html#327" class="Function">⊥-elim</a> <a id="384" class="Symbol">()</a>
</pre></body></html>

26
misc/Data.Empty.html Normal file
View File

@ -0,0 +1,26 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Data.Empty</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Empty type</a>
<a id="120" class="Comment">------------------------------------------------------------------------</a>
<a id="194" class="Symbol">{-#</a> <a id="198" class="Keyword">OPTIONS</a> <a id="206" class="Pragma">--without-K</a> <a id="218" class="Pragma">--safe</a> <a id="225" class="Symbol">#-}</a>
<a id="230" class="Keyword">module</a> <a id="237" href="Data.Empty.html" class="Module">Data.Empty</a> <a id="248" class="Keyword">where</a>
<a id="255" class="Comment">------------------------------------------------------------------------</a>
<a id="328" class="Comment">-- Definition</a>
<a id="343" class="Comment">-- Note that by default the empty type is not universe polymorphic as it</a>
<a id="416" class="Comment">-- often results in unsolved metas. See `Data.Empty.Polymorphic` for a</a>
<a id="487" class="Comment">-- universe polymorphic variant.</a>
<a id="521" class="Keyword">data</a> <a id="⊥"></a><a id="526" href="Data.Empty.html#526" class="Datatype"></a> <a id="528" class="Symbol">:</a> <a id="530" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="534" class="Keyword">where</a>
<a id="541" class="Comment">------------------------------------------------------------------------</a>
<a id="614" class="Comment">-- Functions</a>
<a id="⊥-elim"></a><a id="628" href="Data.Empty.html#628" class="Function">⊥-elim</a> <a id="635" class="Symbol">:</a> <a id="637" class="Symbol"></a> <a id="639" class="Symbol">{</a><a id="640" href="Data.Empty.html#640" class="Bound">w</a><a id="641" class="Symbol">}</a> <a id="643" class="Symbol">{</a><a id="644" href="Data.Empty.html#644" class="Bound">Whatever</a> <a id="653" class="Symbol">:</a> <a id="655" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="659" href="Data.Empty.html#640" class="Bound">w</a><a id="660" class="Symbol">}</a> <a id="662" class="Symbol"></a> <a id="664" href="Data.Empty.html#526" class="Datatype"></a> <a id="666" class="Symbol"></a> <a id="668" href="Data.Empty.html#644" class="Bound">Whatever</a>
<a id="677" href="Data.Empty.html#628" class="Function">⊥-elim</a> <a id="684" class="Symbol">()</a>
</pre></body></html>

140
misc/Data.Maybe.Base.html Normal file
View File

@ -0,0 +1,140 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Data.Maybe.Base</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- The Maybe type and some operations</a>
<a id="144" class="Comment">------------------------------------------------------------------------</a>
<a id="218" class="Comment">-- The definitions in this file are reexported by Data.Maybe.</a>
<a id="281" class="Symbol">{-#</a> <a id="285" class="Keyword">OPTIONS</a> <a id="293" class="Pragma">--without-K</a> <a id="305" class="Pragma">--safe</a> <a id="312" class="Symbol">#-}</a>
<a id="317" class="Keyword">module</a> <a id="324" href="Data.Maybe.Base.html" class="Module">Data.Maybe.Base</a> <a id="340" class="Keyword">where</a>
<a id="347" class="Keyword">open</a> <a id="352" class="Keyword">import</a> <a id="359" href="Level.html" class="Module">Level</a>
<a id="365" class="Keyword">open</a> <a id="370" class="Keyword">import</a> <a id="377" href="Data.Bool.Base.html" class="Module">Data.Bool.Base</a> <a id="392" class="Keyword">using</a> <a id="398" class="Symbol">(</a><a id="399" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a><a id="403" class="Symbol">;</a> <a id="405" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a><a id="409" class="Symbol">;</a> <a id="411" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a><a id="416" class="Symbol">;</a> <a id="418" href="Data.Bool.Base.html#932" class="Function">not</a><a id="421" class="Symbol">)</a>
<a id="423" class="Keyword">open</a> <a id="428" class="Keyword">import</a> <a id="435" href="Data.Unit.Base.html" class="Module">Data.Unit.Base</a> <a id="450" class="Keyword">using</a> <a id="456" class="Symbol">(</a><a id="457" href="Agda.Builtin.Unit.html#164" class="Record"></a><a id="458" class="Symbol">)</a>
<a id="460" class="Keyword">open</a> <a id="465" class="Keyword">import</a> <a id="472" href="Data.These.Base.html" class="Module">Data.These.Base</a> <a id="488" class="Keyword">using</a> <a id="494" class="Symbol">(</a><a id="495" href="Data.These.Base.html#528" class="Datatype">These</a><a id="500" class="Symbol">;</a> <a id="502" href="Data.These.Base.html#586" class="InductiveConstructor">this</a><a id="506" class="Symbol">;</a> <a id="508" href="Data.These.Base.html#614" class="InductiveConstructor">that</a><a id="512" class="Symbol">;</a> <a id="514" href="Data.These.Base.html#642" class="InductiveConstructor">these</a><a id="519" class="Symbol">)</a>
<a id="521" class="Keyword">open</a> <a id="526" class="Keyword">import</a> <a id="533" href="Data.Product.html" class="Module">Data.Product</a> <a id="546" class="Symbol">as</a> <a id="549" class="Module">Prod</a> <a id="554" class="Keyword">using</a> <a id="560" class="Symbol">(</a><a id="561" href="Data.Product.html#1167" class="Function Operator">_×_</a><a id="564" class="Symbol">;</a> <a id="566" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">_,_</a><a id="569" class="Symbol">)</a>
<a id="571" class="Keyword">open</a> <a id="576" class="Keyword">import</a> <a id="583" href="Function.Base.html" class="Module">Function.Base</a>
<a id="597" class="Keyword">open</a> <a id="602" class="Keyword">import</a> <a id="609" href="Relation.Nullary.Reflects.html" class="Module">Relation.Nullary.Reflects</a>
<a id="635" class="Keyword">open</a> <a id="640" class="Keyword">import</a> <a id="647" href="Relation.Nullary.html" class="Module">Relation.Nullary</a>
<a id="665" class="Keyword">private</a>
<a id="675" class="Keyword">variable</a>
<a id="688" href="Data.Maybe.Base.html#688" class="Generalizable">a</a> <a id="690" href="Data.Maybe.Base.html#690" class="Generalizable">b</a> <a id="692" href="Data.Maybe.Base.html#692" class="Generalizable">c</a> <a id="694" class="Symbol">:</a> <a id="696" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="706" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="708" class="Symbol">:</a> <a id="710" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="714" href="Data.Maybe.Base.html#688" class="Generalizable">a</a>
<a id="720" href="Data.Maybe.Base.html#720" class="Generalizable">B</a> <a id="722" class="Symbol">:</a> <a id="724" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="728" href="Data.Maybe.Base.html#690" class="Generalizable">b</a>
<a id="734" href="Data.Maybe.Base.html#734" class="Generalizable">C</a> <a id="736" class="Symbol">:</a> <a id="738" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="742" href="Data.Maybe.Base.html#692" class="Generalizable">c</a>
<a id="745" class="Comment">------------------------------------------------------------------------</a>
<a id="818" class="Comment">-- Definition</a>
<a id="833" class="Keyword">open</a> <a id="838" class="Keyword">import</a> <a id="845" href="Agda.Builtin.Maybe.html" class="Module">Agda.Builtin.Maybe</a> <a id="864" class="Keyword">public</a>
<a id="873" class="Keyword">using</a> <a id="879" class="Symbol">(</a><a id="880" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a><a id="885" class="Symbol">;</a> <a id="887" href="Agda.Builtin.Maybe.html#174" class="InductiveConstructor">just</a><a id="891" class="Symbol">;</a> <a id="893" href="Agda.Builtin.Maybe.html#195" class="InductiveConstructor">nothing</a><a id="900" class="Symbol">)</a>
<a id="903" class="Comment">------------------------------------------------------------------------</a>
<a id="976" class="Comment">-- Some operations</a>
<a id="boolToMaybe"></a><a id="996" href="Data.Maybe.Base.html#996" class="Function">boolToMaybe</a> <a id="1008" class="Symbol">:</a> <a id="1010" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a> <a id="1015" class="Symbol"></a> <a id="1017" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="1023" href="Agda.Builtin.Unit.html#164" class="Record"></a>
<a id="1025" href="Data.Maybe.Base.html#996" class="Function">boolToMaybe</a> <a id="1037" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="1043" class="Symbol">=</a> <a id="1045" href="Agda.Builtin.Maybe.html#174" class="InductiveConstructor">just</a> <a id="1050" class="Symbol">_</a>
<a id="1052" href="Data.Maybe.Base.html#996" class="Function">boolToMaybe</a> <a id="1064" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="1070" class="Symbol">=</a> <a id="1072" href="Agda.Builtin.Maybe.html#195" class="InductiveConstructor">nothing</a>
<a id="is-just"></a><a id="1081" href="Data.Maybe.Base.html#1081" class="Function">is-just</a> <a id="1089" class="Symbol">:</a> <a id="1091" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="1097" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="1099" class="Symbol"></a> <a id="1101" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a>
<a id="1106" href="Data.Maybe.Base.html#1081" class="Function">is-just</a> <a id="1114" class="Symbol">(</a><a id="1115" href="Agda.Builtin.Maybe.html#174" class="InductiveConstructor">just</a> <a id="1120" class="Symbol">_)</a> <a id="1123" class="Symbol">=</a> <a id="1125" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a>
<a id="1130" href="Data.Maybe.Base.html#1081" class="Function">is-just</a> <a id="1138" href="Agda.Builtin.Maybe.html#195" class="InductiveConstructor">nothing</a> <a id="1147" class="Symbol">=</a> <a id="1149" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a>
<a id="is-nothing"></a><a id="1156" href="Data.Maybe.Base.html#1156" class="Function">is-nothing</a> <a id="1167" class="Symbol">:</a> <a id="1169" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="1175" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="1177" class="Symbol"></a> <a id="1179" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a>
<a id="1184" href="Data.Maybe.Base.html#1156" class="Function">is-nothing</a> <a id="1195" class="Symbol">=</a> <a id="1197" href="Data.Bool.Base.html#932" class="Function">not</a> <a id="1201" href="Function.Base.html#1031" class="Function Operator"></a> <a id="1203" href="Data.Maybe.Base.html#1081" class="Function">is-just</a>
<a id="decToMaybe"></a><a id="1212" href="Data.Maybe.Base.html#1212" class="Function">decToMaybe</a> <a id="1223" class="Symbol">:</a> <a id="1225" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="1229" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="1231" class="Symbol"></a> <a id="1233" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="1239" href="Data.Maybe.Base.html#706" class="Generalizable">A</a>
<a id="1241" href="Data.Maybe.Base.html#1212" class="Function">decToMaybe</a> <a id="1252" class="Symbol">(</a> <a id="1254" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="1259" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="1267" href="Data.Maybe.Base.html#1267" class="Bound">[a]</a><a id="1270" class="Symbol">)</a> <a id="1272" class="Symbol">=</a> <a id="1274" href="Agda.Builtin.Maybe.html#174" class="InductiveConstructor">just</a> <a id="1279" class="Symbol">(</a><a id="1280" href="Relation.Nullary.Reflects.html#1031" class="Function">invert</a> <a id="1287" href="Data.Maybe.Base.html#1267" class="Bound">[a]</a><a id="1290" class="Symbol">)</a>
<a id="1292" href="Data.Maybe.Base.html#1212" class="Function">decToMaybe</a> <a id="1303" class="Symbol">(</a><a id="1304" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="1310" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="1319" class="Symbol">_</a> <a id="1321" class="Symbol">)</a> <a id="1323" class="Symbol">=</a> <a id="1325" href="Agda.Builtin.Maybe.html#195" class="InductiveConstructor">nothing</a>
<a id="1334" class="Comment">-- A dependent eliminator.</a>
<a id="maybe"></a><a id="1362" href="Data.Maybe.Base.html#1362" class="Function">maybe</a> <a id="1368" class="Symbol">:</a> <a id="1370" class="Symbol"></a> <a id="1372" class="Symbol">{</a><a id="1373" href="Data.Maybe.Base.html#1373" class="Bound">A</a> <a id="1375" class="Symbol">:</a> <a id="1377" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1381" href="Data.Maybe.Base.html#688" class="Generalizable">a</a><a id="1382" class="Symbol">}</a> <a id="1384" class="Symbol">{</a><a id="1385" href="Data.Maybe.Base.html#1385" class="Bound">B</a> <a id="1387" class="Symbol">:</a> <a id="1389" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="1395" href="Data.Maybe.Base.html#1373" class="Bound">A</a> <a id="1397" class="Symbol"></a> <a id="1399" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1403" href="Data.Maybe.Base.html#690" class="Generalizable">b</a><a id="1404" class="Symbol">}</a> <a id="1406" class="Symbol"></a>
<a id="1416" class="Symbol">((</a><a id="1418" href="Data.Maybe.Base.html#1418" class="Bound">x</a> <a id="1420" class="Symbol">:</a> <a id="1422" href="Data.Maybe.Base.html#1373" class="Bound">A</a><a id="1423" class="Symbol">)</a> <a id="1425" class="Symbol"></a> <a id="1427" href="Data.Maybe.Base.html#1385" class="Bound">B</a> <a id="1429" class="Symbol">(</a><a id="1430" href="Agda.Builtin.Maybe.html#174" class="InductiveConstructor">just</a> <a id="1435" href="Data.Maybe.Base.html#1418" class="Bound">x</a><a id="1436" class="Symbol">))</a> <a id="1439" class="Symbol"></a> <a id="1441" href="Data.Maybe.Base.html#1385" class="Bound">B</a> <a id="1443" href="Agda.Builtin.Maybe.html#195" class="InductiveConstructor">nothing</a> <a id="1451" class="Symbol"></a> <a id="1453" class="Symbol">(</a><a id="1454" href="Data.Maybe.Base.html#1454" class="Bound">x</a> <a id="1456" class="Symbol">:</a> <a id="1458" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="1464" href="Data.Maybe.Base.html#1373" class="Bound">A</a><a id="1465" class="Symbol">)</a> <a id="1467" class="Symbol"></a> <a id="1469" href="Data.Maybe.Base.html#1385" class="Bound">B</a> <a id="1471" href="Data.Maybe.Base.html#1454" class="Bound">x</a>
<a id="1473" href="Data.Maybe.Base.html#1362" class="Function">maybe</a> <a id="1479" href="Data.Maybe.Base.html#1479" class="Bound">j</a> <a id="1481" href="Data.Maybe.Base.html#1481" class="Bound">n</a> <a id="1483" class="Symbol">(</a><a id="1484" href="Agda.Builtin.Maybe.html#174" class="InductiveConstructor">just</a> <a id="1489" href="Data.Maybe.Base.html#1489" class="Bound">x</a><a id="1490" class="Symbol">)</a> <a id="1492" class="Symbol">=</a> <a id="1494" href="Data.Maybe.Base.html#1479" class="Bound">j</a> <a id="1496" href="Data.Maybe.Base.html#1489" class="Bound">x</a>
<a id="1498" href="Data.Maybe.Base.html#1362" class="Function">maybe</a> <a id="1504" href="Data.Maybe.Base.html#1504" class="Bound">j</a> <a id="1506" href="Data.Maybe.Base.html#1506" class="Bound">n</a> <a id="1508" href="Agda.Builtin.Maybe.html#195" class="InductiveConstructor">nothing</a> <a id="1517" class="Symbol">=</a> <a id="1519" href="Data.Maybe.Base.html#1506" class="Bound">n</a>
<a id="1522" class="Comment">-- A non-dependent eliminator.</a>
<a id="maybe"></a><a id="1554" href="Data.Maybe.Base.html#1554" class="Function">maybe</a> <a id="1561" class="Symbol">:</a> <a id="1563" class="Symbol">(</a><a id="1564" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="1566" class="Symbol"></a> <a id="1568" href="Data.Maybe.Base.html#720" class="Generalizable">B</a><a id="1569" class="Symbol">)</a> <a id="1571" class="Symbol"></a> <a id="1573" href="Data.Maybe.Base.html#720" class="Generalizable">B</a> <a id="1575" class="Symbol"></a> <a id="1577" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="1583" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="1585" class="Symbol"></a> <a id="1587" href="Data.Maybe.Base.html#720" class="Generalizable">B</a>
<a id="1589" href="Data.Maybe.Base.html#1554" class="Function">maybe</a> <a id="1596" class="Symbol">=</a> <a id="1598" href="Data.Maybe.Base.html#1362" class="Function">maybe</a>
<a id="1605" class="Comment">-- A defaulting mechanism</a>
<a id="fromMaybe"></a><a id="1632" href="Data.Maybe.Base.html#1632" class="Function">fromMaybe</a> <a id="1642" class="Symbol">:</a> <a id="1644" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="1646" class="Symbol"></a> <a id="1648" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="1654" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="1656" class="Symbol"></a> <a id="1658" href="Data.Maybe.Base.html#706" class="Generalizable">A</a>
<a id="1660" href="Data.Maybe.Base.html#1632" class="Function">fromMaybe</a> <a id="1670" class="Symbol">=</a> <a id="1672" href="Data.Maybe.Base.html#1554" class="Function">maybe</a> <a id="1679" href="Function.Base.html#615" class="Function">id</a>
<a id="1683" class="Comment">-- A safe variant of &quot;fromJust&quot;. If the value is nothing, then the</a>
<a id="1750" class="Comment">-- return type is the unit type.</a>
<a id="1784" class="Keyword">module</a> <a id="1791" href="Data.Maybe.Base.html#1791" class="Module">_</a> <a id="1793" class="Symbol">{</a><a id="1794" href="Data.Maybe.Base.html#1794" class="Bound">a</a><a id="1795" class="Symbol">}</a> <a id="1797" class="Symbol">{</a><a id="1798" href="Data.Maybe.Base.html#1798" class="Bound">A</a> <a id="1800" class="Symbol">:</a> <a id="1802" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1806" href="Data.Maybe.Base.html#1794" class="Bound">a</a><a id="1807" class="Symbol">}</a> <a id="1809" class="Keyword">where</a>
<a id="1818" href="Data.Maybe.Base.html#1818" class="Function">From-just</a> <a id="1828" class="Symbol">:</a> <a id="1830" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="1836" href="Data.Maybe.Base.html#1798" class="Bound">A</a> <a id="1838" class="Symbol"></a> <a id="1840" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1844" href="Data.Maybe.Base.html#1794" class="Bound">a</a>
<a id="1848" href="Data.Maybe.Base.html#1818" class="Function">From-just</a> <a id="1858" class="Symbol">(</a><a id="1859" href="Agda.Builtin.Maybe.html#174" class="InductiveConstructor">just</a> <a id="1864" class="Symbol">_)</a> <a id="1867" class="Symbol">=</a> <a id="1869" href="Data.Maybe.Base.html#1798" class="Bound">A</a>
<a id="1873" href="Data.Maybe.Base.html#1818" class="Function">From-just</a> <a id="1883" href="Agda.Builtin.Maybe.html#195" class="InductiveConstructor">nothing</a> <a id="1892" class="Symbol">=</a> <a id="1894" href="Level.html#400" class="Record">Lift</a> <a id="1899" href="Data.Maybe.Base.html#1794" class="Bound">a</a> <a id="1901" href="Agda.Builtin.Unit.html#164" class="Record"></a>
<a id="1906" href="Data.Maybe.Base.html#1906" class="Function">from-just</a> <a id="1916" class="Symbol">:</a> <a id="1918" class="Symbol">(</a><a id="1919" href="Data.Maybe.Base.html#1919" class="Bound">x</a> <a id="1921" class="Symbol">:</a> <a id="1923" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="1929" href="Data.Maybe.Base.html#1798" class="Bound">A</a><a id="1930" class="Symbol">)</a> <a id="1932" class="Symbol"></a> <a id="1934" href="Data.Maybe.Base.html#1818" class="Function">From-just</a> <a id="1944" href="Data.Maybe.Base.html#1919" class="Bound">x</a>
<a id="1948" href="Data.Maybe.Base.html#1906" class="Function">from-just</a> <a id="1958" class="Symbol">(</a><a id="1959" href="Agda.Builtin.Maybe.html#174" class="InductiveConstructor">just</a> <a id="1964" href="Data.Maybe.Base.html#1964" class="Bound">x</a><a id="1965" class="Symbol">)</a> <a id="1967" class="Symbol">=</a> <a id="1969" href="Data.Maybe.Base.html#1964" class="Bound">x</a>
<a id="1973" href="Data.Maybe.Base.html#1906" class="Function">from-just</a> <a id="1983" href="Agda.Builtin.Maybe.html#195" class="InductiveConstructor">nothing</a> <a id="1992" class="Symbol">=</a> <a id="1994" class="Symbol">_</a>
<a id="1997" class="Comment">-- Functoriality: map</a>
<a id="map"></a><a id="2020" href="Data.Maybe.Base.html#2020" class="Function">map</a> <a id="2024" class="Symbol">:</a> <a id="2026" class="Symbol">(</a><a id="2027" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="2029" class="Symbol"></a> <a id="2031" href="Data.Maybe.Base.html#720" class="Generalizable">B</a><a id="2032" class="Symbol">)</a> <a id="2034" class="Symbol"></a> <a id="2036" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="2042" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="2044" class="Symbol"></a> <a id="2046" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="2052" href="Data.Maybe.Base.html#720" class="Generalizable">B</a>
<a id="2054" href="Data.Maybe.Base.html#2020" class="Function">map</a> <a id="2058" href="Data.Maybe.Base.html#2058" class="Bound">f</a> <a id="2060" class="Symbol">=</a> <a id="2062" href="Data.Maybe.Base.html#1362" class="Function">maybe</a> <a id="2068" class="Symbol">(</a><a id="2069" href="Agda.Builtin.Maybe.html#174" class="InductiveConstructor">just</a> <a id="2074" href="Function.Base.html#1031" class="Function Operator"></a> <a id="2076" href="Data.Maybe.Base.html#2058" class="Bound">f</a><a id="2077" class="Symbol">)</a> <a id="2079" href="Agda.Builtin.Maybe.html#195" class="InductiveConstructor">nothing</a>
<a id="2088" class="Comment">-- Applicative: ap</a>
<a id="ap"></a><a id="2108" href="Data.Maybe.Base.html#2108" class="Function">ap</a> <a id="2111" class="Symbol">:</a> <a id="2113" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="2119" class="Symbol">(</a><a id="2120" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="2122" class="Symbol"></a> <a id="2124" href="Data.Maybe.Base.html#720" class="Generalizable">B</a><a id="2125" class="Symbol">)</a> <a id="2127" class="Symbol"></a> <a id="2129" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="2135" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="2137" class="Symbol"></a> <a id="2139" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="2145" href="Data.Maybe.Base.html#720" class="Generalizable">B</a>
<a id="2147" href="Data.Maybe.Base.html#2108" class="Function">ap</a> <a id="2150" href="Agda.Builtin.Maybe.html#195" class="InductiveConstructor">nothing</a> <a id="2159" class="Symbol">=</a> <a id="2161" href="Function.Base.html#636" class="Function">const</a> <a id="2167" href="Agda.Builtin.Maybe.html#195" class="InductiveConstructor">nothing</a>
<a id="2175" href="Data.Maybe.Base.html#2108" class="Function">ap</a> <a id="2178" class="Symbol">(</a><a id="2179" href="Agda.Builtin.Maybe.html#174" class="InductiveConstructor">just</a> <a id="2184" href="Data.Maybe.Base.html#2184" class="Bound">f</a><a id="2185" class="Symbol">)</a> <a id="2187" class="Symbol">=</a> <a id="2189" href="Data.Maybe.Base.html#2020" class="Function">map</a> <a id="2193" href="Data.Maybe.Base.html#2184" class="Bound">f</a>
<a id="2196" class="Comment">-- Monad: bind</a>
<a id="2212" class="Keyword">infixl</a> <a id="2219" class="Number">1</a> <a id="2221" href="Data.Maybe.Base.html#2227" class="Function Operator">_&gt;&gt;=_</a>
<a id="_&gt;&gt;=_"></a><a id="2227" href="Data.Maybe.Base.html#2227" class="Function Operator">_&gt;&gt;=_</a> <a id="2233" class="Symbol">:</a> <a id="2235" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="2241" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="2243" class="Symbol"></a> <a id="2245" class="Symbol">(</a><a id="2246" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="2248" class="Symbol"></a> <a id="2250" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="2256" href="Data.Maybe.Base.html#720" class="Generalizable">B</a><a id="2257" class="Symbol">)</a> <a id="2259" class="Symbol"></a> <a id="2261" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="2267" href="Data.Maybe.Base.html#720" class="Generalizable">B</a>
<a id="2269" href="Agda.Builtin.Maybe.html#195" class="InductiveConstructor">nothing</a> <a id="2277" href="Data.Maybe.Base.html#2227" class="Function Operator">&gt;&gt;=</a> <a id="2281" href="Data.Maybe.Base.html#2281" class="Bound">f</a> <a id="2283" class="Symbol">=</a> <a id="2285" href="Agda.Builtin.Maybe.html#195" class="InductiveConstructor">nothing</a>
<a id="2293" href="Agda.Builtin.Maybe.html#174" class="InductiveConstructor">just</a> <a id="2298" href="Data.Maybe.Base.html#2298" class="Bound">a</a> <a id="2301" href="Data.Maybe.Base.html#2227" class="Function Operator">&gt;&gt;=</a> <a id="2305" href="Data.Maybe.Base.html#2305" class="Bound">f</a> <a id="2307" class="Symbol">=</a> <a id="2309" href="Data.Maybe.Base.html#2305" class="Bound">f</a> <a id="2311" href="Data.Maybe.Base.html#2298" class="Bound">a</a>
<a id="2314" class="Comment">-- Alternative: &lt;&gt;</a>
<a id="_&lt;&gt;_"></a><a id="2335" href="Data.Maybe.Base.html#2335" class="Function Operator">_&lt;&gt;_</a> <a id="2341" class="Symbol">:</a> <a id="2343" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="2349" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="2351" class="Symbol"></a> <a id="2353" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="2359" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="2361" class="Symbol"></a> <a id="2363" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="2369" href="Data.Maybe.Base.html#706" class="Generalizable">A</a>
<a id="2371" href="Agda.Builtin.Maybe.html#174" class="InductiveConstructor">just</a> <a id="2376" href="Data.Maybe.Base.html#2376" class="Bound">x</a> <a id="2379" href="Data.Maybe.Base.html#2335" class="Function Operator">&lt;&gt;</a> <a id="2383" href="Data.Maybe.Base.html#2383" class="Bound">my</a> <a id="2386" class="Symbol">=</a> <a id="2388" href="Agda.Builtin.Maybe.html#174" class="InductiveConstructor">just</a> <a id="2393" href="Data.Maybe.Base.html#2376" class="Bound">x</a>
<a id="2395" href="Agda.Builtin.Maybe.html#195" class="InductiveConstructor">nothing</a> <a id="2403" href="Data.Maybe.Base.html#2335" class="Function Operator">&lt;&gt;</a> <a id="2407" href="Data.Maybe.Base.html#2407" class="Bound">my</a> <a id="2410" class="Symbol">=</a> <a id="2412" href="Data.Maybe.Base.html#2407" class="Bound">my</a>
<a id="2416" class="Comment">-- Just when the boolean is true</a>
<a id="when"></a><a id="2450" href="Data.Maybe.Base.html#2450" class="Function">when</a> <a id="2455" class="Symbol">:</a> <a id="2457" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a> <a id="2462" class="Symbol"></a> <a id="2464" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="2466" class="Symbol"></a> <a id="2468" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="2474" href="Data.Maybe.Base.html#706" class="Generalizable">A</a>
<a id="2476" href="Data.Maybe.Base.html#2450" class="Function">when</a> <a id="2481" href="Data.Maybe.Base.html#2481" class="Bound">b</a> <a id="2483" href="Data.Maybe.Base.html#2483" class="Bound">c</a> <a id="2485" class="Symbol">=</a> <a id="2487" href="Data.Maybe.Base.html#2020" class="Function">map</a> <a id="2491" class="Symbol">(</a><a id="2492" href="Function.Base.html#636" class="Function">const</a> <a id="2498" href="Data.Maybe.Base.html#2483" class="Bound">c</a><a id="2499" class="Symbol">)</a> <a id="2501" class="Symbol">(</a><a id="2502" href="Data.Maybe.Base.html#996" class="Function">boolToMaybe</a> <a id="2514" href="Data.Maybe.Base.html#2481" class="Bound">b</a><a id="2515" class="Symbol">)</a>
<a id="2518" class="Comment">------------------------------------------------------------------------</a>
<a id="2591" class="Comment">-- Aligning and zipping</a>
<a id="alignWith"></a><a id="2616" href="Data.Maybe.Base.html#2616" class="Function">alignWith</a> <a id="2626" class="Symbol">:</a> <a id="2628" class="Symbol">(</a><a id="2629" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="2635" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="2637" href="Data.Maybe.Base.html#720" class="Generalizable">B</a> <a id="2639" class="Symbol"></a> <a id="2641" href="Data.Maybe.Base.html#734" class="Generalizable">C</a><a id="2642" class="Symbol">)</a> <a id="2644" class="Symbol"></a> <a id="2646" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="2652" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="2654" class="Symbol"></a> <a id="2656" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="2662" href="Data.Maybe.Base.html#720" class="Generalizable">B</a> <a id="2664" class="Symbol"></a> <a id="2666" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="2672" href="Data.Maybe.Base.html#734" class="Generalizable">C</a>
<a id="2674" href="Data.Maybe.Base.html#2616" class="Function">alignWith</a> <a id="2684" href="Data.Maybe.Base.html#2684" class="Bound">f</a> <a id="2686" class="Symbol">(</a><a id="2687" href="Agda.Builtin.Maybe.html#174" class="InductiveConstructor">just</a> <a id="2692" href="Data.Maybe.Base.html#2692" class="Bound">a</a><a id="2693" class="Symbol">)</a> <a id="2695" class="Symbol">(</a><a id="2696" href="Agda.Builtin.Maybe.html#174" class="InductiveConstructor">just</a> <a id="2701" href="Data.Maybe.Base.html#2701" class="Bound">b</a><a id="2702" class="Symbol">)</a> <a id="2704" class="Symbol">=</a> <a id="2706" href="Agda.Builtin.Maybe.html#174" class="InductiveConstructor">just</a> <a id="2711" class="Symbol">(</a><a id="2712" href="Data.Maybe.Base.html#2684" class="Bound">f</a> <a id="2714" class="Symbol">(</a><a id="2715" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="2721" href="Data.Maybe.Base.html#2692" class="Bound">a</a> <a id="2723" href="Data.Maybe.Base.html#2701" class="Bound">b</a><a id="2724" class="Symbol">))</a>
<a id="2727" href="Data.Maybe.Base.html#2616" class="Function">alignWith</a> <a id="2737" href="Data.Maybe.Base.html#2737" class="Bound">f</a> <a id="2739" class="Symbol">(</a><a id="2740" href="Agda.Builtin.Maybe.html#174" class="InductiveConstructor">just</a> <a id="2745" href="Data.Maybe.Base.html#2745" class="Bound">a</a><a id="2746" class="Symbol">)</a> <a id="2748" href="Agda.Builtin.Maybe.html#195" class="InductiveConstructor">nothing</a> <a id="2757" class="Symbol">=</a> <a id="2759" href="Agda.Builtin.Maybe.html#174" class="InductiveConstructor">just</a> <a id="2764" class="Symbol">(</a><a id="2765" href="Data.Maybe.Base.html#2737" class="Bound">f</a> <a id="2767" class="Symbol">(</a><a id="2768" href="Data.These.Base.html#586" class="InductiveConstructor">this</a> <a id="2773" href="Data.Maybe.Base.html#2745" class="Bound">a</a><a id="2774" class="Symbol">))</a>
<a id="2777" href="Data.Maybe.Base.html#2616" class="Function">alignWith</a> <a id="2787" href="Data.Maybe.Base.html#2787" class="Bound">f</a> <a id="2789" href="Agda.Builtin.Maybe.html#195" class="InductiveConstructor">nothing</a> <a id="2798" class="Symbol">(</a><a id="2799" href="Agda.Builtin.Maybe.html#174" class="InductiveConstructor">just</a> <a id="2804" href="Data.Maybe.Base.html#2804" class="Bound">b</a><a id="2805" class="Symbol">)</a> <a id="2807" class="Symbol">=</a> <a id="2809" href="Agda.Builtin.Maybe.html#174" class="InductiveConstructor">just</a> <a id="2814" class="Symbol">(</a><a id="2815" href="Data.Maybe.Base.html#2787" class="Bound">f</a> <a id="2817" class="Symbol">(</a><a id="2818" href="Data.These.Base.html#614" class="InductiveConstructor">that</a> <a id="2823" href="Data.Maybe.Base.html#2804" class="Bound">b</a><a id="2824" class="Symbol">))</a>
<a id="2827" href="Data.Maybe.Base.html#2616" class="Function">alignWith</a> <a id="2837" href="Data.Maybe.Base.html#2837" class="Bound">f</a> <a id="2839" href="Agda.Builtin.Maybe.html#195" class="InductiveConstructor">nothing</a> <a id="2848" href="Agda.Builtin.Maybe.html#195" class="InductiveConstructor">nothing</a> <a id="2857" class="Symbol">=</a> <a id="2859" href="Agda.Builtin.Maybe.html#195" class="InductiveConstructor">nothing</a>
<a id="zipWith"></a><a id="2868" href="Data.Maybe.Base.html#2868" class="Function">zipWith</a> <a id="2876" class="Symbol">:</a> <a id="2878" class="Symbol">(</a><a id="2879" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="2881" class="Symbol"></a> <a id="2883" href="Data.Maybe.Base.html#720" class="Generalizable">B</a> <a id="2885" class="Symbol"></a> <a id="2887" href="Data.Maybe.Base.html#734" class="Generalizable">C</a><a id="2888" class="Symbol">)</a> <a id="2890" class="Symbol"></a> <a id="2892" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="2898" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="2900" class="Symbol"></a> <a id="2902" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="2908" href="Data.Maybe.Base.html#720" class="Generalizable">B</a> <a id="2910" class="Symbol"></a> <a id="2912" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="2918" href="Data.Maybe.Base.html#734" class="Generalizable">C</a>
<a id="2920" href="Data.Maybe.Base.html#2868" class="Function">zipWith</a> <a id="2928" href="Data.Maybe.Base.html#2928" class="Bound">f</a> <a id="2930" class="Symbol">(</a><a id="2931" href="Agda.Builtin.Maybe.html#174" class="InductiveConstructor">just</a> <a id="2936" href="Data.Maybe.Base.html#2936" class="Bound">a</a><a id="2937" class="Symbol">)</a> <a id="2939" class="Symbol">(</a><a id="2940" href="Agda.Builtin.Maybe.html#174" class="InductiveConstructor">just</a> <a id="2945" href="Data.Maybe.Base.html#2945" class="Bound">b</a><a id="2946" class="Symbol">)</a> <a id="2948" class="Symbol">=</a> <a id="2950" href="Agda.Builtin.Maybe.html#174" class="InductiveConstructor">just</a> <a id="2955" class="Symbol">(</a><a id="2956" href="Data.Maybe.Base.html#2928" class="Bound">f</a> <a id="2958" href="Data.Maybe.Base.html#2936" class="Bound">a</a> <a id="2960" href="Data.Maybe.Base.html#2945" class="Bound">b</a><a id="2961" class="Symbol">)</a>
<a id="2963" href="Data.Maybe.Base.html#2868" class="CatchallClause Function">zipWith</a><a id="2970" class="CatchallClause"> </a><a id="2971" class="CatchallClause Symbol">_</a><a id="2972" class="CatchallClause"> </a><a id="2973" class="CatchallClause Symbol">_</a><a id="2974" class="CatchallClause"> </a><a id="2982" class="CatchallClause Symbol">_</a> <a id="2991" class="Symbol">=</a> <a id="2993" href="Agda.Builtin.Maybe.html#195" class="InductiveConstructor">nothing</a>
<a id="align"></a><a id="3002" href="Data.Maybe.Base.html#3002" class="Function">align</a> <a id="3008" class="Symbol">:</a> <a id="3010" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="3016" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="3018" class="Symbol"></a> <a id="3020" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="3026" href="Data.Maybe.Base.html#720" class="Generalizable">B</a> <a id="3028" class="Symbol"></a> <a id="3030" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="3036" class="Symbol">(</a><a id="3037" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="3043" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="3045" href="Data.Maybe.Base.html#720" class="Generalizable">B</a><a id="3046" class="Symbol">)</a>
<a id="3048" href="Data.Maybe.Base.html#3002" class="Function">align</a> <a id="3054" class="Symbol">=</a> <a id="3056" href="Data.Maybe.Base.html#2616" class="Function">alignWith</a> <a id="3066" href="Function.Base.html#615" class="Function">id</a>
<a id="zip"></a><a id="3070" href="Data.Maybe.Base.html#3070" class="Function">zip</a> <a id="3074" class="Symbol">:</a> <a id="3076" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="3082" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="3084" class="Symbol"></a> <a id="3086" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="3092" href="Data.Maybe.Base.html#720" class="Generalizable">B</a> <a id="3094" class="Symbol"></a> <a id="3096" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="3102" class="Symbol">(</a><a id="3103" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="3105" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="3107" href="Data.Maybe.Base.html#720" class="Generalizable">B</a><a id="3108" class="Symbol">)</a>
<a id="3110" href="Data.Maybe.Base.html#3070" class="Function">zip</a> <a id="3114" class="Symbol">=</a> <a id="3116" href="Data.Maybe.Base.html#2868" class="Function">zipWith</a> <a id="3124" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">_,_</a>
<a id="3129" class="Comment">------------------------------------------------------------------------</a>
<a id="3202" class="Comment">-- Injections.</a>
<a id="thisM"></a><a id="3218" href="Data.Maybe.Base.html#3218" class="Function">thisM</a> <a id="3224" class="Symbol">:</a> <a id="3226" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="3228" class="Symbol"></a> <a id="3230" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="3236" href="Data.Maybe.Base.html#720" class="Generalizable">B</a> <a id="3238" class="Symbol"></a> <a id="3240" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="3246" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="3248" href="Data.Maybe.Base.html#720" class="Generalizable">B</a>
<a id="3250" href="Data.Maybe.Base.html#3218" class="Function">thisM</a> <a id="3256" href="Data.Maybe.Base.html#3256" class="Bound">a</a> <a id="3258" class="Symbol">=</a> <a id="3260" href="Data.Maybe.Base.html#1554" class="Function">maybe</a> <a id="3267" class="Symbol">(</a><a id="3268" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="3274" href="Data.Maybe.Base.html#3256" class="Bound">a</a><a id="3275" class="Symbol">)</a> <a id="3277" class="Symbol">(</a><a id="3278" href="Data.These.Base.html#586" class="InductiveConstructor">this</a> <a id="3283" href="Data.Maybe.Base.html#3256" class="Bound">a</a><a id="3284" class="Symbol">)</a>
<a id="thatM"></a><a id="3287" href="Data.Maybe.Base.html#3287" class="Function">thatM</a> <a id="3293" class="Symbol">:</a> <a id="3295" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="3301" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="3303" class="Symbol"></a> <a id="3305" href="Data.Maybe.Base.html#720" class="Generalizable">B</a> <a id="3307" class="Symbol"></a> <a id="3309" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="3315" href="Data.Maybe.Base.html#706" class="Generalizable">A</a> <a id="3317" href="Data.Maybe.Base.html#720" class="Generalizable">B</a>
<a id="3319" href="Data.Maybe.Base.html#3287" class="Function">thatM</a> <a id="3325" class="Symbol">=</a> <a id="3327" href="Data.Maybe.Base.html#1554" class="Function">maybe</a> <a id="3334" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="3340" href="Data.These.Base.html#614" class="InductiveConstructor">that</a>
</pre></body></html>

208
misc/Data.Product.html Normal file
View File

@ -0,0 +1,208 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Data.Product</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Products</a>
<a id="118" class="Comment">------------------------------------------------------------------------</a>
<a id="192" class="Symbol">{-#</a> <a id="196" class="Keyword">OPTIONS</a> <a id="204" class="Pragma">--without-K</a> <a id="216" class="Pragma">--safe</a> <a id="223" class="Symbol">#-}</a>
<a id="228" class="Keyword">module</a> <a id="235" href="Data.Product.html" class="Module">Data.Product</a> <a id="248" class="Keyword">where</a>
<a id="255" class="Keyword">open</a> <a id="260" class="Keyword">import</a> <a id="267" href="Function.Base.html" class="Module">Function.Base</a>
<a id="281" class="Keyword">open</a> <a id="286" class="Keyword">import</a> <a id="293" href="Level.html" class="Module">Level</a>
<a id="299" class="Keyword">open</a> <a id="304" class="Keyword">import</a> <a id="311" href="Relation.Nullary.html" class="Module">Relation.Nullary</a>
<a id="328" class="Keyword">open</a> <a id="333" class="Keyword">import</a> <a id="340" href="Agda.Builtin.Equality.html" class="Module">Agda.Builtin.Equality</a>
<a id="363" class="Keyword">private</a>
<a id="373" class="Keyword">variable</a>
<a id="386" href="Data.Product.html#386" class="Generalizable">a</a> <a id="388" href="Data.Product.html#388" class="Generalizable">b</a> <a id="390" href="Data.Product.html#390" class="Generalizable">c</a> <a id="392" href="Data.Product.html#392" class="Generalizable">d</a> <a id="394" href="Data.Product.html#394" class="Generalizable">e</a> <a id="396" href="Data.Product.html#396" class="Generalizable">f</a> <a id="398" href="Data.Product.html#398" class="Generalizable"></a> <a id="400" href="Data.Product.html#400" class="Generalizable">p</a> <a id="402" href="Data.Product.html#402" class="Generalizable">q</a> <a id="404" href="Data.Product.html#404" class="Generalizable">r</a> <a id="406" class="Symbol">:</a> <a id="408" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="418" href="Data.Product.html#418" class="Generalizable">A</a> <a id="420" class="Symbol">:</a> <a id="422" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="426" href="Data.Product.html#386" class="Generalizable">a</a>
<a id="432" href="Data.Product.html#432" class="Generalizable">B</a> <a id="434" class="Symbol">:</a> <a id="436" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="440" href="Data.Product.html#388" class="Generalizable">b</a>
<a id="446" href="Data.Product.html#446" class="Generalizable">C</a> <a id="448" class="Symbol">:</a> <a id="450" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="454" href="Data.Product.html#390" class="Generalizable">c</a>
<a id="460" href="Data.Product.html#460" class="Generalizable">D</a> <a id="462" class="Symbol">:</a> <a id="464" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="468" href="Data.Product.html#392" class="Generalizable">d</a>
<a id="474" href="Data.Product.html#474" class="Generalizable">E</a> <a id="476" class="Symbol">:</a> <a id="478" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="482" href="Data.Product.html#394" class="Generalizable">e</a>
<a id="488" href="Data.Product.html#488" class="Generalizable">F</a> <a id="490" class="Symbol">:</a> <a id="492" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="496" href="Data.Product.html#396" class="Generalizable">f</a>
<a id="499" class="Comment">------------------------------------------------------------------------</a>
<a id="572" class="Comment">-- Definition of dependent products</a>
<a id="609" class="Keyword">open</a> <a id="614" class="Keyword">import</a> <a id="621" href="Agda.Builtin.Sigma.html" class="Module">Agda.Builtin.Sigma</a> <a id="640" class="Keyword">public</a>
<a id="649" class="Keyword">renaming</a> <a id="658" class="Symbol">(</a><a id="659" href="Agda.Builtin.Sigma.html#252" class="Field">fst</a> <a id="663" class="Symbol">to</a> <a id="666" class="Field">proj₁</a><a id="671" class="Symbol">;</a> <a id="673" href="Agda.Builtin.Sigma.html#264" class="Field">snd</a> <a id="677" class="Symbol">to</a> <a id="680" class="Field">proj₂</a><a id="685" class="Symbol">)</a>
<a id="689" class="Keyword">hiding</a> <a id="696" class="Symbol">(</a><a id="697" class="Keyword">module</a> <a id="704" href="Agda.Builtin.Sigma.html#166" class="Module">Σ</a><a id="705" class="Symbol">)</a>
<a id="708" class="Keyword">module</a> <a id="Σ"></a><a id="715" href="Data.Product.html#715" class="Module">Σ</a> <a id="717" class="Symbol">=</a> <a id="719" href="Agda.Builtin.Sigma.html#166" class="Module">Agda.Builtin.Sigma.Σ</a>
<a id="742" class="Keyword">renaming</a> <a id="751" class="Symbol">(</a><a id="752" href="Agda.Builtin.Sigma.html#252" class="Field">fst</a> <a id="756" class="Symbol">to</a> <a id="759" class="Field">proj₁</a><a id="764" class="Symbol">;</a> <a id="766" href="Agda.Builtin.Sigma.html#264" class="Field">snd</a> <a id="770" class="Symbol">to</a> <a id="773" class="Field">proj₂</a><a id="778" class="Symbol">)</a>
<a id="781" class="Comment">-- The syntax declaration below is attached to Σ-syntax, to make it</a>
<a id="849" class="Comment">-- easy to import Σ without the special syntax.</a>
<a id="898" class="Keyword">infix</a> <a id="904" class="Number">2</a> <a id="906" href="Data.Product.html#916" class="Function">Σ-syntax</a>
<a id="Σ-syntax"></a><a id="916" href="Data.Product.html#916" class="Function">Σ-syntax</a> <a id="925" class="Symbol">:</a> <a id="927" class="Symbol">(</a><a id="928" href="Data.Product.html#928" class="Bound">A</a> <a id="930" class="Symbol">:</a> <a id="932" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="936" href="Data.Product.html#386" class="Generalizable">a</a><a id="937" class="Symbol">)</a> <a id="939" class="Symbol"></a> <a id="941" class="Symbol">(</a><a id="942" href="Data.Product.html#928" class="Bound">A</a> <a id="944" class="Symbol"></a> <a id="946" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="950" href="Data.Product.html#388" class="Generalizable">b</a><a id="951" class="Symbol">)</a> <a id="953" class="Symbol"></a> <a id="955" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="959" class="Symbol">(</a><a id="960" href="Data.Product.html#386" class="Generalizable">a</a> <a id="962" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="964" href="Data.Product.html#388" class="Generalizable">b</a><a id="965" class="Symbol">)</a>
<a id="967" href="Data.Product.html#916" class="Function">Σ-syntax</a> <a id="976" class="Symbol">=</a> <a id="978" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a>
<a id="981" class="Keyword">syntax</a> <a id="988" href="Data.Product.html#916" class="Function">Σ-syntax</a> <a id="997" class="Bound">A</a> <a id="999" class="Symbol"></a> <a id="1002" class="Bound">x</a> <a id="1004" class="Symbol"></a> <a id="1006" class="Bound">B</a><a id="1007" class="Symbol">)</a> <a id="1009" class="Symbol">=</a> <a id="1011" class="Function">Σ[</a> <a id="1014" class="Bound">x</a> <a id="1016" class="Function"></a> <a id="1018" class="Bound">A</a> <a id="1020" class="Function">]</a> <a id="1022" class="Bound">B</a>
<a id="1025" class="Comment">------------------------------------------------------------------------</a>
<a id="1098" class="Comment">-- Definition of non-dependent products</a>
<a id="1139" class="Keyword">infixr</a> <a id="1146" class="Number">4</a> <a id="1148" href="Data.Product.html#1235" class="Function Operator">_,_</a>
<a id="1153" class="Keyword">infixr</a> <a id="1160" class="Number">2</a> <a id="1162" href="Data.Product.html#1167" class="Function Operator">_×_</a>
<a id="_×_"></a><a id="1167" href="Data.Product.html#1167" class="Function Operator">_×_</a> <a id="1171" class="Symbol">:</a> <a id="1173" class="Symbol"></a> <a id="1175" class="Symbol">(</a><a id="1176" href="Data.Product.html#1176" class="Bound">A</a> <a id="1178" class="Symbol">:</a> <a id="1180" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1184" href="Data.Product.html#386" class="Generalizable">a</a><a id="1185" class="Symbol">)</a> <a id="1187" class="Symbol">(</a><a id="1188" href="Data.Product.html#1188" class="Bound">B</a> <a id="1190" class="Symbol">:</a> <a id="1192" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1196" href="Data.Product.html#388" class="Generalizable">b</a><a id="1197" class="Symbol">)</a> <a id="1199" class="Symbol"></a> <a id="1201" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1205" class="Symbol">(</a><a id="1206" href="Data.Product.html#386" class="Generalizable">a</a> <a id="1208" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1210" href="Data.Product.html#388" class="Generalizable">b</a><a id="1211" class="Symbol">)</a>
<a id="1213" href="Data.Product.html#1213" class="Bound">A</a> <a id="1215" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="1217" href="Data.Product.html#1217" class="Bound">B</a> <a id="1219" class="Symbol">=</a> <a id="1221" href="Data.Product.html#916" class="Function">Σ[</a> <a id="1224" href="Data.Product.html#1224" class="Bound">x</a> <a id="1226" href="Data.Product.html#916" class="Function"></a> <a id="1228" href="Data.Product.html#1213" class="Bound">A</a> <a id="1230" href="Data.Product.html#916" class="Function">]</a> <a id="1232" href="Data.Product.html#1217" class="Bound">B</a>
<a id="_,_"></a><a id="1235" href="Data.Product.html#1235" class="Function Operator">_,_</a> <a id="1240" class="Symbol">:</a> <a id="1242" href="Data.Product.html#418" class="Generalizable">A</a> <a id="1244" class="Symbol"></a> <a id="1246" href="Data.Product.html#432" class="Generalizable">B</a> <a id="1248" class="Symbol"></a> <a id="1250" href="Data.Product.html#418" class="Generalizable">A</a> <a id="1252" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="1254" href="Data.Product.html#432" class="Generalizable">B</a>
<a id="1256" href="Data.Product.html#1235" class="Function Operator">_,_</a> <a id="1261" class="Symbol">=</a> <a id="1263" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">_,_</a>
<a id="1268" class="Comment">------------------------------------------------------------------------</a>
<a id="1341" class="Comment">-- Existential quantifiers</a>
<a id="∃"></a><a id="1369" href="Data.Product.html#1369" class="Function"></a> <a id="1371" class="Symbol">:</a> <a id="1373" class="Symbol"></a> <a id="1375" class="Symbol">{</a><a id="1376" href="Data.Product.html#1376" class="Bound">A</a> <a id="1378" class="Symbol">:</a> <a id="1380" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1384" href="Data.Product.html#386" class="Generalizable">a</a><a id="1385" class="Symbol">}</a> <a id="1387" class="Symbol"></a> <a id="1389" class="Symbol">(</a><a id="1390" href="Data.Product.html#1376" class="Bound">A</a> <a id="1392" class="Symbol"></a> <a id="1394" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1398" href="Data.Product.html#388" class="Generalizable">b</a><a id="1399" class="Symbol">)</a> <a id="1401" class="Symbol"></a> <a id="1403" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1407" class="Symbol">(</a><a id="1408" href="Data.Product.html#386" class="Generalizable">a</a> <a id="1410" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1412" href="Data.Product.html#388" class="Generalizable">b</a><a id="1413" class="Symbol">)</a>
<a id="1415" href="Data.Product.html#1369" class="Function"></a> <a id="1417" class="Symbol">=</a> <a id="1419" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="1421" class="Symbol">_</a>
<a id="∄"></a><a id="1424" href="Data.Product.html#1424" class="Function"></a> <a id="1426" class="Symbol">:</a> <a id="1428" class="Symbol"></a> <a id="1430" class="Symbol">{</a><a id="1431" href="Data.Product.html#1431" class="Bound">A</a> <a id="1433" class="Symbol">:</a> <a id="1435" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1439" href="Data.Product.html#386" class="Generalizable">a</a><a id="1440" class="Symbol">}</a> <a id="1442" class="Symbol"></a> <a id="1444" class="Symbol">(</a><a id="1445" href="Data.Product.html#1431" class="Bound">A</a> <a id="1447" class="Symbol"></a> <a id="1449" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1453" href="Data.Product.html#388" class="Generalizable">b</a><a id="1454" class="Symbol">)</a> <a id="1456" class="Symbol"></a> <a id="1458" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1462" class="Symbol">(</a><a id="1463" href="Data.Product.html#386" class="Generalizable">a</a> <a id="1465" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1467" href="Data.Product.html#388" class="Generalizable">b</a><a id="1468" class="Symbol">)</a>
<a id="1470" href="Data.Product.html#1424" class="Function"></a> <a id="1472" href="Data.Product.html#1472" class="Bound">P</a> <a id="1474" class="Symbol">=</a> <a id="1476" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="1478" href="Data.Product.html#1369" class="Function"></a> <a id="1480" href="Data.Product.html#1472" class="Bound">P</a>
<a id="∃₂"></a><a id="1483" href="Data.Product.html#1483" class="Function">∃₂</a> <a id="1486" class="Symbol">:</a> <a id="1488" class="Symbol"></a> <a id="1490" class="Symbol">{</a><a id="1491" href="Data.Product.html#1491" class="Bound">A</a> <a id="1493" class="Symbol">:</a> <a id="1495" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1499" href="Data.Product.html#386" class="Generalizable">a</a><a id="1500" class="Symbol">}</a> <a id="1502" class="Symbol">{</a><a id="1503" href="Data.Product.html#1503" class="Bound">B</a> <a id="1505" class="Symbol">:</a> <a id="1507" href="Data.Product.html#1491" class="Bound">A</a> <a id="1509" class="Symbol"></a> <a id="1511" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1515" href="Data.Product.html#388" class="Generalizable">b</a><a id="1516" class="Symbol">}</a>
<a id="1523" class="Symbol">(</a><a id="1524" href="Data.Product.html#1524" class="Bound">C</a> <a id="1526" class="Symbol">:</a> <a id="1528" class="Symbol">(</a><a id="1529" href="Data.Product.html#1529" class="Bound">x</a> <a id="1531" class="Symbol">:</a> <a id="1533" href="Data.Product.html#1491" class="Bound">A</a><a id="1534" class="Symbol">)</a> <a id="1536" class="Symbol"></a> <a id="1538" href="Data.Product.html#1503" class="Bound">B</a> <a id="1540" href="Data.Product.html#1529" class="Bound">x</a> <a id="1542" class="Symbol"></a> <a id="1544" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1548" href="Data.Product.html#390" class="Generalizable">c</a><a id="1549" class="Symbol">)</a> <a id="1551" class="Symbol"></a> <a id="1553" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1557" class="Symbol">(</a><a id="1558" href="Data.Product.html#386" class="Generalizable">a</a> <a id="1560" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1562" href="Data.Product.html#388" class="Generalizable">b</a> <a id="1564" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1566" href="Data.Product.html#390" class="Generalizable">c</a><a id="1567" class="Symbol">)</a>
<a id="1569" href="Data.Product.html#1483" class="Function">∃₂</a> <a id="1572" href="Data.Product.html#1572" class="Bound">C</a> <a id="1574" class="Symbol">=</a> <a id="1576" href="Data.Product.html#1369" class="Function"></a> <a id="1578" class="Symbol">λ</a> <a id="1580" href="Data.Product.html#1580" class="Bound">a</a> <a id="1582" class="Symbol"></a> <a id="1584" href="Data.Product.html#1369" class="Function"></a> <a id="1586" class="Symbol">λ</a> <a id="1588" href="Data.Product.html#1588" class="Bound">b</a> <a id="1590" class="Symbol"></a> <a id="1592" href="Data.Product.html#1572" class="Bound">C</a> <a id="1594" href="Data.Product.html#1580" class="Bound">a</a> <a id="1596" href="Data.Product.html#1588" class="Bound">b</a>
<a id="1599" class="Comment">-- Unique existence (parametrised by an underlying equality).</a>
<a id="∃!"></a><a id="1662" href="Data.Product.html#1662" class="Function">∃!</a> <a id="1665" class="Symbol">:</a> <a id="1667" class="Symbol">{</a><a id="1668" href="Data.Product.html#1668" class="Bound">A</a> <a id="1670" class="Symbol">:</a> <a id="1672" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1676" href="Data.Product.html#386" class="Generalizable">a</a><a id="1677" class="Symbol">}</a> <a id="1679" class="Symbol"></a> <a id="1681" class="Symbol">(</a><a id="1682" href="Data.Product.html#1668" class="Bound">A</a> <a id="1684" class="Symbol"></a> <a id="1686" href="Data.Product.html#1668" class="Bound">A</a> <a id="1688" class="Symbol"></a> <a id="1690" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1694" href="Data.Product.html#398" class="Generalizable"></a><a id="1695" class="Symbol">)</a> <a id="1697" class="Symbol"></a> <a id="1699" class="Symbol">(</a><a id="1700" href="Data.Product.html#1668" class="Bound">A</a> <a id="1702" class="Symbol"></a> <a id="1704" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1708" href="Data.Product.html#388" class="Generalizable">b</a><a id="1709" class="Symbol">)</a> <a id="1711" class="Symbol"></a> <a id="1713" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1717" class="Symbol">(</a><a id="1718" href="Data.Product.html#386" class="Generalizable">a</a> <a id="1720" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1722" href="Data.Product.html#388" class="Generalizable">b</a> <a id="1724" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1726" href="Data.Product.html#398" class="Generalizable"></a><a id="1727" class="Symbol">)</a>
<a id="1729" href="Data.Product.html#1662" class="Function">∃!</a> <a id="1732" href="Data.Product.html#1732" class="Bound Operator">_≈_</a> <a id="1736" href="Data.Product.html#1736" class="Bound">B</a> <a id="1738" class="Symbol">=</a> <a id="1740" href="Data.Product.html#1369" class="Function"></a> <a id="1742" class="Symbol">λ</a> <a id="1744" href="Data.Product.html#1744" class="Bound">x</a> <a id="1746" class="Symbol"></a> <a id="1748" href="Data.Product.html#1736" class="Bound">B</a> <a id="1750" href="Data.Product.html#1744" class="Bound">x</a> <a id="1752" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="1754" class="Symbol">(∀</a> <a id="1757" class="Symbol">{</a><a id="1758" href="Data.Product.html#1758" class="Bound">y</a><a id="1759" class="Symbol">}</a> <a id="1761" class="Symbol"></a> <a id="1763" href="Data.Product.html#1736" class="Bound">B</a> <a id="1765" href="Data.Product.html#1758" class="Bound">y</a> <a id="1767" class="Symbol"></a> <a id="1769" href="Data.Product.html#1744" class="Bound">x</a> <a id="1771" href="Data.Product.html#1732" class="Bound Operator"></a> <a id="1773" href="Data.Product.html#1758" class="Bound">y</a><a id="1774" class="Symbol">)</a>
<a id="1777" class="Comment">-- Syntax</a>
<a id="1788" class="Keyword">infix</a> <a id="1794" class="Number">2</a> <a id="1796" href="Data.Product.html#1806" class="Function">∃-syntax</a>
<a id="∃-syntax"></a><a id="1806" href="Data.Product.html#1806" class="Function">∃-syntax</a> <a id="1815" class="Symbol">:</a> <a id="1817" class="Symbol"></a> <a id="1819" class="Symbol">{</a><a id="1820" href="Data.Product.html#1820" class="Bound">A</a> <a id="1822" class="Symbol">:</a> <a id="1824" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1828" href="Data.Product.html#386" class="Generalizable">a</a><a id="1829" class="Symbol">}</a> <a id="1831" class="Symbol"></a> <a id="1833" class="Symbol">(</a><a id="1834" href="Data.Product.html#1820" class="Bound">A</a> <a id="1836" class="Symbol"></a> <a id="1838" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1842" href="Data.Product.html#388" class="Generalizable">b</a><a id="1843" class="Symbol">)</a> <a id="1845" class="Symbol"></a> <a id="1847" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1851" class="Symbol">(</a><a id="1852" href="Data.Product.html#386" class="Generalizable">a</a> <a id="1854" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1856" href="Data.Product.html#388" class="Generalizable">b</a><a id="1857" class="Symbol">)</a>
<a id="1859" href="Data.Product.html#1806" class="Function">∃-syntax</a> <a id="1868" class="Symbol">=</a> <a id="1870" href="Data.Product.html#1369" class="Function"></a>
<a id="1873" class="Keyword">syntax</a> <a id="1880" href="Data.Product.html#1806" class="Function">∃-syntax</a> <a id="1889" class="Symbol"></a> <a id="1892" class="Bound">x</a> <a id="1894" class="Symbol"></a> <a id="1896" class="Bound">B</a><a id="1897" class="Symbol">)</a> <a id="1899" class="Symbol">=</a> <a id="1901" class="Function">∃[</a> <a id="1904" class="Bound">x</a> <a id="1906" class="Function">]</a> <a id="1908" class="Bound">B</a>
<a id="1911" class="Keyword">infix</a> <a id="1917" class="Number">2</a> <a id="1919" href="Data.Product.html#1929" class="Function">∄-syntax</a>
<a id="∄-syntax"></a><a id="1929" href="Data.Product.html#1929" class="Function">∄-syntax</a> <a id="1938" class="Symbol">:</a> <a id="1940" class="Symbol"></a> <a id="1942" class="Symbol">{</a><a id="1943" href="Data.Product.html#1943" class="Bound">A</a> <a id="1945" class="Symbol">:</a> <a id="1947" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1951" href="Data.Product.html#386" class="Generalizable">a</a><a id="1952" class="Symbol">}</a> <a id="1954" class="Symbol"></a> <a id="1956" class="Symbol">(</a><a id="1957" href="Data.Product.html#1943" class="Bound">A</a> <a id="1959" class="Symbol"></a> <a id="1961" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1965" href="Data.Product.html#388" class="Generalizable">b</a><a id="1966" class="Symbol">)</a> <a id="1968" class="Symbol"></a> <a id="1970" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1974" class="Symbol">(</a><a id="1975" href="Data.Product.html#386" class="Generalizable">a</a> <a id="1977" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1979" href="Data.Product.html#388" class="Generalizable">b</a><a id="1980" class="Symbol">)</a>
<a id="1982" href="Data.Product.html#1929" class="Function">∄-syntax</a> <a id="1991" class="Symbol">=</a> <a id="1993" href="Data.Product.html#1424" class="Function"></a>
<a id="1996" class="Keyword">syntax</a> <a id="2003" href="Data.Product.html#1929" class="Function">∄-syntax</a> <a id="2012" class="Symbol"></a> <a id="2015" class="Bound">x</a> <a id="2017" class="Symbol"></a> <a id="2019" class="Bound">B</a><a id="2020" class="Symbol">)</a> <a id="2022" class="Symbol">=</a> <a id="2024" class="Function">∄[</a> <a id="2027" class="Bound">x</a> <a id="2029" class="Function">]</a> <a id="2031" class="Bound">B</a>
<a id="2034" class="Comment">------------------------------------------------------------------------</a>
<a id="2107" class="Comment">-- Operations over dependent products</a>
<a id="2146" class="Keyword">infix</a> <a id="2153" class="Number">4</a> <a id="2155" href="Data.Product.html#2247" class="Function Operator">-,_</a>
<a id="2159" class="Keyword">infixr</a> <a id="2166" class="Number">2</a> <a id="2168" href="Data.Product.html#5362" class="Function Operator">_-×-_</a> <a id="2174" href="Data.Product.html#5447" class="Function Operator">_-,-_</a>
<a id="2180" class="Keyword">infixl</a> <a id="2187" class="Number">2</a> <a id="2189" href="Data.Product.html#5095" class="Function Operator">_&lt;*&gt;_</a>
<a id="2196" class="Comment">-- Sometimes the first component can be inferred.</a>
<a id="-,_"></a><a id="2247" href="Data.Product.html#2247" class="Function Operator">-,_</a> <a id="2251" class="Symbol">:</a> <a id="2253" class="Symbol"></a> <a id="2255" class="Symbol">{</a><a id="2256" href="Data.Product.html#2256" class="Bound">A</a> <a id="2258" class="Symbol">:</a> <a id="2260" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2264" href="Data.Product.html#386" class="Generalizable">a</a><a id="2265" class="Symbol">}</a> <a id="2267" class="Symbol">{</a><a id="2268" href="Data.Product.html#2268" class="Bound">B</a> <a id="2270" class="Symbol">:</a> <a id="2272" href="Data.Product.html#2256" class="Bound">A</a> <a id="2274" class="Symbol"></a> <a id="2276" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2280" href="Data.Product.html#388" class="Generalizable">b</a><a id="2281" class="Symbol">}</a> <a id="2283" class="Symbol">{</a><a id="2284" href="Data.Product.html#2284" class="Bound">x</a><a id="2285" class="Symbol">}</a> <a id="2287" class="Symbol"></a> <a id="2289" href="Data.Product.html#2268" class="Bound">B</a> <a id="2291" href="Data.Product.html#2284" class="Bound">x</a> <a id="2293" class="Symbol"></a> <a id="2295" href="Data.Product.html#1369" class="Function"></a> <a id="2297" href="Data.Product.html#2268" class="Bound">B</a>
<a id="2299" href="Data.Product.html#2247" class="Function Operator">-,</a> <a id="2302" href="Data.Product.html#2302" class="Bound">y</a> <a id="2304" class="Symbol">=</a> <a id="2306" class="Symbol">_</a> <a id="2308" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="2310" href="Data.Product.html#2302" class="Bound">y</a>
<a id="&lt;_,_&gt;"></a><a id="2313" href="Data.Product.html#2313" class="Function Operator">&lt;_,_&gt;</a> <a id="2319" class="Symbol">:</a> <a id="2321" class="Symbol"></a> <a id="2323" class="Symbol">{</a><a id="2324" href="Data.Product.html#2324" class="Bound">A</a> <a id="2326" class="Symbol">:</a> <a id="2328" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2332" href="Data.Product.html#386" class="Generalizable">a</a><a id="2333" class="Symbol">}</a> <a id="2335" class="Symbol">{</a><a id="2336" href="Data.Product.html#2336" class="Bound">B</a> <a id="2338" class="Symbol">:</a> <a id="2340" href="Data.Product.html#2324" class="Bound">A</a> <a id="2342" class="Symbol"></a> <a id="2344" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2348" href="Data.Product.html#388" class="Generalizable">b</a><a id="2349" class="Symbol">}</a> <a id="2351" class="Symbol">{</a><a id="2352" href="Data.Product.html#2352" class="Bound">C</a> <a id="2354" class="Symbol">:</a> <a id="2356" class="Symbol"></a> <a id="2358" class="Symbol">{</a><a id="2359" href="Data.Product.html#2359" class="Bound">x</a><a id="2360" class="Symbol">}</a> <a id="2362" class="Symbol"></a> <a id="2364" href="Data.Product.html#2336" class="Bound">B</a> <a id="2366" href="Data.Product.html#2359" class="Bound">x</a> <a id="2368" class="Symbol"></a> <a id="2370" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2374" href="Data.Product.html#390" class="Generalizable">c</a><a id="2375" class="Symbol">}</a>
<a id="2385" class="Symbol">(</a><a id="2386" href="Data.Product.html#2386" class="Bound">f</a> <a id="2388" class="Symbol">:</a> <a id="2390" class="Symbol">(</a><a id="2391" href="Data.Product.html#2391" class="Bound">x</a> <a id="2393" class="Symbol">:</a> <a id="2395" href="Data.Product.html#2324" class="Bound">A</a><a id="2396" class="Symbol">)</a> <a id="2398" class="Symbol"></a> <a id="2400" href="Data.Product.html#2336" class="Bound">B</a> <a id="2402" href="Data.Product.html#2391" class="Bound">x</a><a id="2403" class="Symbol">)</a> <a id="2405" class="Symbol"></a> <a id="2407" class="Symbol">((</a><a id="2409" href="Data.Product.html#2409" class="Bound">x</a> <a id="2411" class="Symbol">:</a> <a id="2413" href="Data.Product.html#2324" class="Bound">A</a><a id="2414" class="Symbol">)</a> <a id="2416" class="Symbol"></a> <a id="2418" href="Data.Product.html#2352" class="Bound">C</a> <a id="2420" class="Symbol">(</a><a id="2421" href="Data.Product.html#2386" class="Bound">f</a> <a id="2423" href="Data.Product.html#2409" class="Bound">x</a><a id="2424" class="Symbol">))</a> <a id="2427" class="Symbol"></a>
<a id="2437" class="Symbol">((</a><a id="2439" href="Data.Product.html#2439" class="Bound">x</a> <a id="2441" class="Symbol">:</a> <a id="2443" href="Data.Product.html#2324" class="Bound">A</a><a id="2444" class="Symbol">)</a> <a id="2446" class="Symbol"></a> <a id="2448" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="2450" class="Symbol">(</a><a id="2451" href="Data.Product.html#2336" class="Bound">B</a> <a id="2453" href="Data.Product.html#2439" class="Bound">x</a><a id="2454" class="Symbol">)</a> <a id="2456" href="Data.Product.html#2352" class="Bound">C</a><a id="2457" class="Symbol">)</a>
<a id="2459" href="Data.Product.html#2313" class="Function Operator">&lt;</a> <a id="2461" href="Data.Product.html#2461" class="Bound">f</a> <a id="2463" href="Data.Product.html#2313" class="Function Operator">,</a> <a id="2465" href="Data.Product.html#2465" class="Bound">g</a> <a id="2467" href="Data.Product.html#2313" class="Function Operator">&gt;</a> <a id="2469" href="Data.Product.html#2469" class="Bound">x</a> <a id="2471" class="Symbol">=</a> <a id="2473" class="Symbol">(</a><a id="2474" href="Data.Product.html#2461" class="Bound">f</a> <a id="2476" href="Data.Product.html#2469" class="Bound">x</a> <a id="2478" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="2480" href="Data.Product.html#2465" class="Bound">g</a> <a id="2482" href="Data.Product.html#2469" class="Bound">x</a><a id="2483" class="Symbol">)</a>
<a id="map"></a><a id="2486" href="Data.Product.html#2486" class="Function">map</a> <a id="2490" class="Symbol">:</a> <a id="2492" class="Symbol"></a> <a id="2494" class="Symbol">{</a><a id="2495" href="Data.Product.html#2495" class="Bound">P</a> <a id="2497" class="Symbol">:</a> <a id="2499" href="Data.Product.html#418" class="Generalizable">A</a> <a id="2501" class="Symbol"></a> <a id="2503" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2507" href="Data.Product.html#400" class="Generalizable">p</a><a id="2508" class="Symbol">}</a> <a id="2510" class="Symbol">{</a><a id="2511" href="Data.Product.html#2511" class="Bound">Q</a> <a id="2513" class="Symbol">:</a> <a id="2515" href="Data.Product.html#432" class="Generalizable">B</a> <a id="2517" class="Symbol"></a> <a id="2519" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2523" href="Data.Product.html#402" class="Generalizable">q</a><a id="2524" class="Symbol">}</a> <a id="2526" class="Symbol"></a>
<a id="2534" class="Symbol">(</a><a id="2535" href="Data.Product.html#2535" class="Bound">f</a> <a id="2537" class="Symbol">:</a> <a id="2539" href="Data.Product.html#418" class="Generalizable">A</a> <a id="2541" class="Symbol"></a> <a id="2543" href="Data.Product.html#432" class="Generalizable">B</a><a id="2544" class="Symbol">)</a> <a id="2546" class="Symbol"></a> <a id="2548" class="Symbol">(∀</a> <a id="2551" class="Symbol">{</a><a id="2552" href="Data.Product.html#2552" class="Bound">x</a><a id="2553" class="Symbol">}</a> <a id="2555" class="Symbol"></a> <a id="2557" href="Data.Product.html#2495" class="Bound">P</a> <a id="2559" href="Data.Product.html#2552" class="Bound">x</a> <a id="2561" class="Symbol"></a> <a id="2563" href="Data.Product.html#2511" class="Bound">Q</a> <a id="2565" class="Symbol">(</a><a id="2566" href="Data.Product.html#2535" class="Bound">f</a> <a id="2568" href="Data.Product.html#2552" class="Bound">x</a><a id="2569" class="Symbol">))</a> <a id="2572" class="Symbol"></a>
<a id="2580" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="2582" href="Data.Product.html#418" class="Generalizable">A</a> <a id="2584" href="Data.Product.html#2495" class="Bound">P</a> <a id="2586" class="Symbol"></a> <a id="2588" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="2590" href="Data.Product.html#432" class="Generalizable">B</a> <a id="2592" href="Data.Product.html#2511" class="Bound">Q</a>
<a id="2594" href="Data.Product.html#2486" class="Function">map</a> <a id="2598" href="Data.Product.html#2598" class="Bound">f</a> <a id="2600" href="Data.Product.html#2600" class="Bound">g</a> <a id="2602" class="Symbol">(</a><a id="2603" href="Data.Product.html#2603" class="Bound">x</a> <a id="2605" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="2607" href="Data.Product.html#2607" class="Bound">y</a><a id="2608" class="Symbol">)</a> <a id="2610" class="Symbol">=</a> <a id="2612" class="Symbol">(</a><a id="2613" href="Data.Product.html#2598" class="Bound">f</a> <a id="2615" href="Data.Product.html#2603" class="Bound">x</a> <a id="2617" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="2619" href="Data.Product.html#2600" class="Bound">g</a> <a id="2621" href="Data.Product.html#2607" class="Bound">y</a><a id="2622" class="Symbol">)</a>
<a id="map₁"></a><a id="2625" href="Data.Product.html#2625" class="Function">map₁</a> <a id="2630" class="Symbol">:</a> <a id="2632" class="Symbol">(</a><a id="2633" href="Data.Product.html#418" class="Generalizable">A</a> <a id="2635" class="Symbol"></a> <a id="2637" href="Data.Product.html#432" class="Generalizable">B</a><a id="2638" class="Symbol">)</a> <a id="2640" class="Symbol"></a> <a id="2642" href="Data.Product.html#418" class="Generalizable">A</a> <a id="2644" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="2646" href="Data.Product.html#446" class="Generalizable">C</a> <a id="2648" class="Symbol"></a> <a id="2650" href="Data.Product.html#432" class="Generalizable">B</a> <a id="2652" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="2654" href="Data.Product.html#446" class="Generalizable">C</a>
<a id="2656" href="Data.Product.html#2625" class="Function">map₁</a> <a id="2661" href="Data.Product.html#2661" class="Bound">f</a> <a id="2663" class="Symbol">=</a> <a id="2665" href="Data.Product.html#2486" class="Function">map</a> <a id="2669" href="Data.Product.html#2661" class="Bound">f</a> <a id="2671" href="Function.Base.html#615" class="Function">id</a>
<a id="map₂"></a><a id="2675" href="Data.Product.html#2675" class="Function">map₂</a> <a id="2680" class="Symbol">:</a> <a id="2682" class="Symbol"></a> <a id="2684" class="Symbol">{</a><a id="2685" href="Data.Product.html#2685" class="Bound">A</a> <a id="2687" class="Symbol">:</a> <a id="2689" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2693" href="Data.Product.html#386" class="Generalizable">a</a><a id="2694" class="Symbol">}</a> <a id="2696" class="Symbol">{</a><a id="2697" href="Data.Product.html#2697" class="Bound">B</a> <a id="2699" class="Symbol">:</a> <a id="2701" href="Data.Product.html#2685" class="Bound">A</a> <a id="2703" class="Symbol"></a> <a id="2705" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2709" href="Data.Product.html#388" class="Generalizable">b</a><a id="2710" class="Symbol">}</a> <a id="2712" class="Symbol">{</a><a id="2713" href="Data.Product.html#2713" class="Bound">C</a> <a id="2715" class="Symbol">:</a> <a id="2717" href="Data.Product.html#2685" class="Bound">A</a> <a id="2719" class="Symbol"></a> <a id="2721" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2725" href="Data.Product.html#390" class="Generalizable">c</a><a id="2726" class="Symbol">}</a> <a id="2728" class="Symbol"></a>
<a id="2737" class="Symbol">(∀</a> <a id="2740" class="Symbol">{</a><a id="2741" href="Data.Product.html#2741" class="Bound">x</a><a id="2742" class="Symbol">}</a> <a id="2744" class="Symbol"></a> <a id="2746" href="Data.Product.html#2697" class="Bound">B</a> <a id="2748" href="Data.Product.html#2741" class="Bound">x</a> <a id="2750" class="Symbol"></a> <a id="2752" href="Data.Product.html#2713" class="Bound">C</a> <a id="2754" href="Data.Product.html#2741" class="Bound">x</a><a id="2755" class="Symbol">)</a> <a id="2757" class="Symbol"></a> <a id="2759" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="2761" href="Data.Product.html#2685" class="Bound">A</a> <a id="2763" href="Data.Product.html#2697" class="Bound">B</a> <a id="2765" class="Symbol"></a> <a id="2767" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="2769" href="Data.Product.html#2685" class="Bound">A</a> <a id="2771" href="Data.Product.html#2713" class="Bound">C</a>
<a id="2773" href="Data.Product.html#2675" class="Function">map₂</a> <a id="2778" href="Data.Product.html#2778" class="Bound">f</a> <a id="2780" class="Symbol">=</a> <a id="2782" href="Data.Product.html#2486" class="Function">map</a> <a id="2786" href="Function.Base.html#615" class="Function">id</a> <a id="2789" href="Data.Product.html#2778" class="Bound">f</a>
<a id="2792" class="Comment">-- A version of map where the output can depend on the input</a>
<a id="dmap"></a><a id="2853" href="Data.Product.html#2853" class="Function">dmap</a> <a id="2858" class="Symbol">:</a> <a id="2860" class="Symbol"></a> <a id="2862" class="Symbol">{</a><a id="2863" href="Data.Product.html#2863" class="Bound">B</a> <a id="2865" class="Symbol">:</a> <a id="2867" href="Data.Product.html#418" class="Generalizable">A</a> <a id="2869" class="Symbol"></a> <a id="2871" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2875" href="Data.Product.html#388" class="Generalizable">b</a><a id="2876" class="Symbol">}</a> <a id="2878" class="Symbol">{</a><a id="2879" href="Data.Product.html#2879" class="Bound">P</a> <a id="2881" class="Symbol">:</a> <a id="2883" href="Data.Product.html#418" class="Generalizable">A</a> <a id="2885" class="Symbol"></a> <a id="2887" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2891" href="Data.Product.html#400" class="Generalizable">p</a><a id="2892" class="Symbol">}</a> <a id="2894" class="Symbol">{</a><a id="2895" href="Data.Product.html#2895" class="Bound">Q</a> <a id="2897" class="Symbol">:</a> <a id="2899" class="Symbol"></a> <a id="2901" class="Symbol">{</a><a id="2902" href="Data.Product.html#2902" class="Bound">a</a><a id="2903" class="Symbol">}</a> <a id="2905" class="Symbol"></a> <a id="2907" href="Data.Product.html#2879" class="Bound">P</a> <a id="2909" href="Data.Product.html#2902" class="Bound">a</a> <a id="2911" class="Symbol"></a> <a id="2913" href="Data.Product.html#2863" class="Bound">B</a> <a id="2915" href="Data.Product.html#2902" class="Bound">a</a> <a id="2917" class="Symbol"></a> <a id="2919" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2923" href="Data.Product.html#402" class="Generalizable">q</a><a id="2924" class="Symbol">}</a> <a id="2926" class="Symbol"></a>
<a id="2935" class="Symbol">(</a><a id="2936" href="Data.Product.html#2936" class="Bound">f</a> <a id="2938" class="Symbol">:</a> <a id="2940" class="Symbol">(</a><a id="2941" href="Data.Product.html#2941" class="Bound">a</a> <a id="2943" class="Symbol">:</a> <a id="2945" href="Data.Product.html#418" class="Generalizable">A</a><a id="2946" class="Symbol">)</a> <a id="2948" class="Symbol"></a> <a id="2950" href="Data.Product.html#2863" class="Bound">B</a> <a id="2952" href="Data.Product.html#2941" class="Bound">a</a><a id="2953" class="Symbol">)</a> <a id="2955" class="Symbol"></a> <a id="2957" class="Symbol">(∀</a> <a id="2960" class="Symbol">{</a><a id="2961" href="Data.Product.html#2961" class="Bound">a</a><a id="2962" class="Symbol">}</a> <a id="2964" class="Symbol">(</a><a id="2965" href="Data.Product.html#2965" class="Bound">b</a> <a id="2967" class="Symbol">:</a> <a id="2969" href="Data.Product.html#2879" class="Bound">P</a> <a id="2971" href="Data.Product.html#2961" class="Bound">a</a><a id="2972" class="Symbol">)</a> <a id="2974" class="Symbol"></a> <a id="2976" href="Data.Product.html#2895" class="Bound">Q</a> <a id="2978" href="Data.Product.html#2965" class="Bound">b</a> <a id="2980" class="Symbol">(</a><a id="2981" href="Data.Product.html#2936" class="Bound">f</a> <a id="2983" href="Data.Product.html#2961" class="Bound">a</a><a id="2984" class="Symbol">))</a> <a id="2987" class="Symbol"></a>
<a id="2996" class="Symbol">(</a><a id="2997" href="Data.Product.html#2997" class="Bound">(</a><a id="2998" href="Data.Product.html#2998" class="Bound">a</a> <a id="3000" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="3002" href="Data.Product.html#3002" class="Bound">b</a><a id="3003" href="Data.Product.html#2997" class="Bound">)</a> <a id="3005" class="Symbol">:</a> <a id="3007" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="3009" href="Data.Product.html#418" class="Generalizable">A</a> <a id="3011" href="Data.Product.html#2879" class="Bound">P</a><a id="3012" class="Symbol">)</a> <a id="3014" class="Symbol"></a> <a id="3016" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="3018" class="Symbol">(</a><a id="3019" href="Data.Product.html#2863" class="Bound">B</a> <a id="3021" href="Data.Product.html#2998" class="Bound">a</a><a id="3022" class="Symbol">)</a> <a id="3024" class="Symbol">(</a><a id="3025" href="Data.Product.html#2895" class="Bound">Q</a> <a id="3027" href="Data.Product.html#3002" class="Bound">b</a><a id="3028" class="Symbol">)</a>
<a id="3030" href="Data.Product.html#2853" class="Function">dmap</a> <a id="3035" href="Data.Product.html#3035" class="Bound">f</a> <a id="3037" href="Data.Product.html#3037" class="Bound">g</a> <a id="3039" class="Symbol">(</a><a id="3040" href="Data.Product.html#3040" class="Bound">x</a> <a id="3042" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="3044" href="Data.Product.html#3044" class="Bound">y</a><a id="3045" class="Symbol">)</a> <a id="3047" class="Symbol">=</a> <a id="3049" href="Data.Product.html#3035" class="Bound">f</a> <a id="3051" href="Data.Product.html#3040" class="Bound">x</a> <a id="3053" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="3055" href="Data.Product.html#3037" class="Bound">g</a> <a id="3057" href="Data.Product.html#3044" class="Bound">y</a>
<a id="zip"></a><a id="3060" href="Data.Product.html#3060" class="Function">zip</a> <a id="3064" class="Symbol">:</a> <a id="3066" class="Symbol"></a> <a id="3068" class="Symbol">{</a><a id="3069" href="Data.Product.html#3069" class="Bound">P</a> <a id="3071" class="Symbol">:</a> <a id="3073" href="Data.Product.html#418" class="Generalizable">A</a> <a id="3075" class="Symbol"></a> <a id="3077" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3081" href="Data.Product.html#400" class="Generalizable">p</a><a id="3082" class="Symbol">}</a> <a id="3084" class="Symbol">{</a><a id="3085" href="Data.Product.html#3085" class="Bound">Q</a> <a id="3087" class="Symbol">:</a> <a id="3089" href="Data.Product.html#432" class="Generalizable">B</a> <a id="3091" class="Symbol"></a> <a id="3093" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3097" href="Data.Product.html#402" class="Generalizable">q</a><a id="3098" class="Symbol">}</a> <a id="3100" class="Symbol">{</a><a id="3101" href="Data.Product.html#3101" class="Bound">R</a> <a id="3103" class="Symbol">:</a> <a id="3105" href="Data.Product.html#446" class="Generalizable">C</a> <a id="3107" class="Symbol"></a> <a id="3109" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3113" href="Data.Product.html#404" class="Generalizable">r</a><a id="3114" class="Symbol">}</a> <a id="3116" class="Symbol"></a>
<a id="3124" class="Symbol">(</a><a id="3125" href="Data.Product.html#3125" class="Bound Operator">_∙_</a> <a id="3129" class="Symbol">:</a> <a id="3131" href="Data.Product.html#418" class="Generalizable">A</a> <a id="3133" class="Symbol"></a> <a id="3135" href="Data.Product.html#432" class="Generalizable">B</a> <a id="3137" class="Symbol"></a> <a id="3139" href="Data.Product.html#446" class="Generalizable">C</a><a id="3140" class="Symbol">)</a> <a id="3142" class="Symbol"></a>
<a id="3150" class="Symbol">(∀</a> <a id="3153" class="Symbol">{</a><a id="3154" href="Data.Product.html#3154" class="Bound">x</a> <a id="3156" href="Data.Product.html#3156" class="Bound">y</a><a id="3157" class="Symbol">}</a> <a id="3159" class="Symbol"></a> <a id="3161" href="Data.Product.html#3069" class="Bound">P</a> <a id="3163" href="Data.Product.html#3154" class="Bound">x</a> <a id="3165" class="Symbol"></a> <a id="3167" href="Data.Product.html#3085" class="Bound">Q</a> <a id="3169" href="Data.Product.html#3156" class="Bound">y</a> <a id="3171" class="Symbol"></a> <a id="3173" href="Data.Product.html#3101" class="Bound">R</a> <a id="3175" class="Symbol">(</a><a id="3176" href="Data.Product.html#3154" class="Bound">x</a> <a id="3178" href="Data.Product.html#3125" class="Bound Operator"></a> <a id="3180" href="Data.Product.html#3156" class="Bound">y</a><a id="3181" class="Symbol">))</a> <a id="3184" class="Symbol"></a>
<a id="3192" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="3194" href="Data.Product.html#418" class="Generalizable">A</a> <a id="3196" href="Data.Product.html#3069" class="Bound">P</a> <a id="3198" class="Symbol"></a> <a id="3200" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="3202" href="Data.Product.html#432" class="Generalizable">B</a> <a id="3204" href="Data.Product.html#3085" class="Bound">Q</a> <a id="3206" class="Symbol"></a> <a id="3208" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="3210" href="Data.Product.html#446" class="Generalizable">C</a> <a id="3212" href="Data.Product.html#3101" class="Bound">R</a>
<a id="3214" href="Data.Product.html#3060" class="Function">zip</a> <a id="3218" href="Data.Product.html#3218" class="Bound Operator">_∙_</a> <a id="3222" href="Data.Product.html#3222" class="Bound Operator">_∘_</a> <a id="3226" class="Symbol">(</a><a id="3227" href="Data.Product.html#3227" class="Bound">a</a> <a id="3229" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="3231" href="Data.Product.html#3231" class="Bound">p</a><a id="3232" class="Symbol">)</a> <a id="3234" class="Symbol">(</a><a id="3235" href="Data.Product.html#3235" class="Bound">b</a> <a id="3237" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="3239" href="Data.Product.html#3239" class="Bound">q</a><a id="3240" class="Symbol">)</a> <a id="3242" class="Symbol">=</a> <a id="3244" class="Symbol">((</a><a id="3246" href="Data.Product.html#3227" class="Bound">a</a> <a id="3248" href="Data.Product.html#3218" class="Bound Operator"></a> <a id="3250" href="Data.Product.html#3235" class="Bound">b</a><a id="3251" class="Symbol">)</a> <a id="3253" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="3255" class="Symbol">(</a><a id="3256" href="Data.Product.html#3231" class="Bound">p</a> <a id="3258" href="Data.Product.html#3222" class="Bound Operator"></a> <a id="3260" href="Data.Product.html#3239" class="Bound">q</a><a id="3261" class="Symbol">))</a>
<a id="curry"></a><a id="3265" href="Data.Product.html#3265" class="Function">curry</a> <a id="3271" class="Symbol">:</a> <a id="3273" class="Symbol"></a> <a id="3275" class="Symbol">{</a><a id="3276" href="Data.Product.html#3276" class="Bound">A</a> <a id="3278" class="Symbol">:</a> <a id="3280" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3284" href="Data.Product.html#386" class="Generalizable">a</a><a id="3285" class="Symbol">}</a> <a id="3287" class="Symbol">{</a><a id="3288" href="Data.Product.html#3288" class="Bound">B</a> <a id="3290" class="Symbol">:</a> <a id="3292" href="Data.Product.html#3276" class="Bound">A</a> <a id="3294" class="Symbol"></a> <a id="3296" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3300" href="Data.Product.html#388" class="Generalizable">b</a><a id="3301" class="Symbol">}</a> <a id="3303" class="Symbol">{</a><a id="3304" href="Data.Product.html#3304" class="Bound">C</a> <a id="3306" class="Symbol">:</a> <a id="3308" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="3310" href="Data.Product.html#3276" class="Bound">A</a> <a id="3312" href="Data.Product.html#3288" class="Bound">B</a> <a id="3314" class="Symbol"></a> <a id="3316" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3320" href="Data.Product.html#390" class="Generalizable">c</a><a id="3321" class="Symbol">}</a> <a id="3323" class="Symbol"></a>
<a id="3333" class="Symbol">((</a><a id="3335" href="Data.Product.html#3335" class="Bound">p</a> <a id="3337" class="Symbol">:</a> <a id="3339" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="3341" href="Data.Product.html#3276" class="Bound">A</a> <a id="3343" href="Data.Product.html#3288" class="Bound">B</a><a id="3344" class="Symbol">)</a> <a id="3346" class="Symbol"></a> <a id="3348" href="Data.Product.html#3304" class="Bound">C</a> <a id="3350" href="Data.Product.html#3335" class="Bound">p</a><a id="3351" class="Symbol">)</a> <a id="3353" class="Symbol"></a>
<a id="3363" class="Symbol">((</a><a id="3365" href="Data.Product.html#3365" class="Bound">x</a> <a id="3367" class="Symbol">:</a> <a id="3369" href="Data.Product.html#3276" class="Bound">A</a><a id="3370" class="Symbol">)</a> <a id="3372" class="Symbol"></a> <a id="3374" class="Symbol">(</a><a id="3375" href="Data.Product.html#3375" class="Bound">y</a> <a id="3377" class="Symbol">:</a> <a id="3379" href="Data.Product.html#3288" class="Bound">B</a> <a id="3381" href="Data.Product.html#3365" class="Bound">x</a><a id="3382" class="Symbol">)</a> <a id="3384" class="Symbol"></a> <a id="3386" href="Data.Product.html#3304" class="Bound">C</a> <a id="3388" class="Symbol">(</a><a id="3389" href="Data.Product.html#3365" class="Bound">x</a> <a id="3391" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="3393" href="Data.Product.html#3375" class="Bound">y</a><a id="3394" class="Symbol">))</a>
<a id="3397" href="Data.Product.html#3265" class="Function">curry</a> <a id="3403" href="Data.Product.html#3403" class="Bound">f</a> <a id="3405" href="Data.Product.html#3405" class="Bound">x</a> <a id="3407" href="Data.Product.html#3407" class="Bound">y</a> <a id="3409" class="Symbol">=</a> <a id="3411" href="Data.Product.html#3403" class="Bound">f</a> <a id="3413" class="Symbol">(</a><a id="3414" href="Data.Product.html#3405" class="Bound">x</a> <a id="3416" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="3418" href="Data.Product.html#3407" class="Bound">y</a><a id="3419" class="Symbol">)</a>
<a id="uncurry"></a><a id="3422" href="Data.Product.html#3422" class="Function">uncurry</a> <a id="3430" class="Symbol">:</a> <a id="3432" class="Symbol"></a> <a id="3434" class="Symbol">{</a><a id="3435" href="Data.Product.html#3435" class="Bound">A</a> <a id="3437" class="Symbol">:</a> <a id="3439" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3443" href="Data.Product.html#386" class="Generalizable">a</a><a id="3444" class="Symbol">}</a> <a id="3446" class="Symbol">{</a><a id="3447" href="Data.Product.html#3447" class="Bound">B</a> <a id="3449" class="Symbol">:</a> <a id="3451" href="Data.Product.html#3435" class="Bound">A</a> <a id="3453" class="Symbol"></a> <a id="3455" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3459" href="Data.Product.html#388" class="Generalizable">b</a><a id="3460" class="Symbol">}</a> <a id="3462" class="Symbol">{</a><a id="3463" href="Data.Product.html#3463" class="Bound">C</a> <a id="3465" class="Symbol">:</a> <a id="3467" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="3469" href="Data.Product.html#3435" class="Bound">A</a> <a id="3471" href="Data.Product.html#3447" class="Bound">B</a> <a id="3473" class="Symbol"></a> <a id="3475" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3479" href="Data.Product.html#390" class="Generalizable">c</a><a id="3480" class="Symbol">}</a> <a id="3482" class="Symbol"></a>
<a id="3494" class="Symbol">((</a><a id="3496" href="Data.Product.html#3496" class="Bound">x</a> <a id="3498" class="Symbol">:</a> <a id="3500" href="Data.Product.html#3435" class="Bound">A</a><a id="3501" class="Symbol">)</a> <a id="3503" class="Symbol"></a> <a id="3505" class="Symbol">(</a><a id="3506" href="Data.Product.html#3506" class="Bound">y</a> <a id="3508" class="Symbol">:</a> <a id="3510" href="Data.Product.html#3447" class="Bound">B</a> <a id="3512" href="Data.Product.html#3496" class="Bound">x</a><a id="3513" class="Symbol">)</a> <a id="3515" class="Symbol"></a> <a id="3517" href="Data.Product.html#3463" class="Bound">C</a> <a id="3519" class="Symbol">(</a><a id="3520" href="Data.Product.html#3496" class="Bound">x</a> <a id="3522" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="3524" href="Data.Product.html#3506" class="Bound">y</a><a id="3525" class="Symbol">))</a> <a id="3528" class="Symbol"></a>
<a id="3540" class="Symbol">((</a><a id="3542" href="Data.Product.html#3542" class="Bound">p</a> <a id="3544" class="Symbol">:</a> <a id="3546" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="3548" href="Data.Product.html#3435" class="Bound">A</a> <a id="3550" href="Data.Product.html#3447" class="Bound">B</a><a id="3551" class="Symbol">)</a> <a id="3553" class="Symbol"></a> <a id="3555" href="Data.Product.html#3463" class="Bound">C</a> <a id="3557" href="Data.Product.html#3542" class="Bound">p</a><a id="3558" class="Symbol">)</a>
<a id="3560" href="Data.Product.html#3422" class="Function">uncurry</a> <a id="3568" href="Data.Product.html#3568" class="Bound">f</a> <a id="3570" class="Symbol">(</a><a id="3571" href="Data.Product.html#3571" class="Bound">x</a> <a id="3573" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="3575" href="Data.Product.html#3575" class="Bound">y</a><a id="3576" class="Symbol">)</a> <a id="3578" class="Symbol">=</a> <a id="3580" href="Data.Product.html#3568" class="Bound">f</a> <a id="3582" href="Data.Product.html#3571" class="Bound">x</a> <a id="3584" href="Data.Product.html#3575" class="Bound">y</a>
<a id="3587" class="Comment">-- Rewriting dependent products</a>
<a id="assocʳ"></a><a id="3619" href="Data.Product.html#3619" class="Function">assocʳ</a> <a id="3626" class="Symbol">:</a> <a id="3628" class="Symbol">{</a><a id="3629" href="Data.Product.html#3629" class="Bound">B</a> <a id="3631" class="Symbol">:</a> <a id="3633" href="Data.Product.html#418" class="Generalizable">A</a> <a id="3635" class="Symbol"></a> <a id="3637" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3641" href="Data.Product.html#388" class="Generalizable">b</a><a id="3642" class="Symbol">}</a> <a id="3644" class="Symbol">{</a><a id="3645" href="Data.Product.html#3645" class="Bound">C</a> <a id="3647" class="Symbol">:</a> <a id="3649" class="Symbol">(</a><a id="3650" href="Data.Product.html#3650" class="Bound">a</a> <a id="3652" class="Symbol">:</a> <a id="3654" href="Data.Product.html#418" class="Generalizable">A</a><a id="3655" class="Symbol">)</a> <a id="3657" class="Symbol"></a> <a id="3659" href="Data.Product.html#3629" class="Bound">B</a> <a id="3661" href="Data.Product.html#3650" class="Bound">a</a> <a id="3663" class="Symbol"></a> <a id="3665" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3669" href="Data.Product.html#390" class="Generalizable">c</a><a id="3670" class="Symbol">}</a> <a id="3672" class="Symbol"></a>
<a id="3684" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="3686" class="Symbol">(</a><a id="3687" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="3689" href="Data.Product.html#418" class="Generalizable">A</a> <a id="3691" href="Data.Product.html#3629" class="Bound">B</a><a id="3692" class="Symbol">)</a> <a id="3694" class="Symbol">(</a><a id="3695" href="Data.Product.html#3422" class="Function">uncurry</a> <a id="3703" href="Data.Product.html#3645" class="Bound">C</a><a id="3704" class="Symbol">)</a> <a id="3706" class="Symbol"></a> <a id="3708" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="3710" href="Data.Product.html#418" class="Generalizable">A</a> <a id="3712" class="Symbol"></a> <a id="3715" href="Data.Product.html#3715" class="Bound">a</a> <a id="3717" class="Symbol"></a> <a id="3719" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="3721" class="Symbol">(</a><a id="3722" href="Data.Product.html#3629" class="Bound">B</a> <a id="3724" href="Data.Product.html#3715" class="Bound">a</a><a id="3725" class="Symbol">)</a> <a id="3727" class="Symbol">(</a><a id="3728" href="Data.Product.html#3645" class="Bound">C</a> <a id="3730" href="Data.Product.html#3715" class="Bound">a</a><a id="3731" class="Symbol">))</a>
<a id="3734" href="Data.Product.html#3619" class="Function">assocʳ</a> <a id="3741" class="Symbol">((</a><a id="3743" href="Data.Product.html#3743" class="Bound">a</a> <a id="3745" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="3747" href="Data.Product.html#3747" class="Bound">b</a><a id="3748" class="Symbol">)</a> <a id="3750" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="3752" href="Data.Product.html#3752" class="Bound">c</a><a id="3753" class="Symbol">)</a> <a id="3755" class="Symbol">=</a> <a id="3757" class="Symbol">(</a><a id="3758" href="Data.Product.html#3743" class="Bound">a</a> <a id="3760" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="3762" class="Symbol">(</a><a id="3763" href="Data.Product.html#3747" class="Bound">b</a> <a id="3765" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="3767" href="Data.Product.html#3752" class="Bound">c</a><a id="3768" class="Symbol">))</a>
<a id="assocˡ"></a><a id="3772" href="Data.Product.html#3772" class="Function">assocˡ</a> <a id="3779" class="Symbol">:</a> <a id="3781" class="Symbol">{</a><a id="3782" href="Data.Product.html#3782" class="Bound">B</a> <a id="3784" class="Symbol">:</a> <a id="3786" href="Data.Product.html#418" class="Generalizable">A</a> <a id="3788" class="Symbol"></a> <a id="3790" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3794" href="Data.Product.html#388" class="Generalizable">b</a><a id="3795" class="Symbol">}</a> <a id="3797" class="Symbol">{</a><a id="3798" href="Data.Product.html#3798" class="Bound">C</a> <a id="3800" class="Symbol">:</a> <a id="3802" class="Symbol">(</a><a id="3803" href="Data.Product.html#3803" class="Bound">a</a> <a id="3805" class="Symbol">:</a> <a id="3807" href="Data.Product.html#418" class="Generalizable">A</a><a id="3808" class="Symbol">)</a> <a id="3810" class="Symbol"></a> <a id="3812" href="Data.Product.html#3782" class="Bound">B</a> <a id="3814" href="Data.Product.html#3803" class="Bound">a</a> <a id="3816" class="Symbol"></a> <a id="3818" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3822" href="Data.Product.html#390" class="Generalizable">c</a><a id="3823" class="Symbol">}</a> <a id="3825" class="Symbol"></a>
<a id="3837" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="3839" href="Data.Product.html#418" class="Generalizable">A</a> <a id="3841" class="Symbol"></a> <a id="3844" href="Data.Product.html#3844" class="Bound">a</a> <a id="3846" class="Symbol"></a> <a id="3848" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="3850" class="Symbol">(</a><a id="3851" href="Data.Product.html#3782" class="Bound">B</a> <a id="3853" href="Data.Product.html#3844" class="Bound">a</a><a id="3854" class="Symbol">)</a> <a id="3856" class="Symbol">(</a><a id="3857" href="Data.Product.html#3798" class="Bound">C</a> <a id="3859" href="Data.Product.html#3844" class="Bound">a</a><a id="3860" class="Symbol">))</a> <a id="3863" class="Symbol"></a> <a id="3865" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="3867" class="Symbol">(</a><a id="3868" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="3870" href="Data.Product.html#418" class="Generalizable">A</a> <a id="3872" href="Data.Product.html#3782" class="Bound">B</a><a id="3873" class="Symbol">)</a> <a id="3875" class="Symbol">(</a><a id="3876" href="Data.Product.html#3422" class="Function">uncurry</a> <a id="3884" href="Data.Product.html#3798" class="Bound">C</a><a id="3885" class="Symbol">)</a>
<a id="3887" href="Data.Product.html#3772" class="Function">assocˡ</a> <a id="3894" class="Symbol">(</a><a id="3895" href="Data.Product.html#3895" class="Bound">a</a> <a id="3897" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="3899" class="Symbol">(</a><a id="3900" href="Data.Product.html#3900" class="Bound">b</a> <a id="3902" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="3904" href="Data.Product.html#3904" class="Bound">c</a><a id="3905" class="Symbol">))</a> <a id="3908" class="Symbol">=</a> <a id="3910" class="Symbol">((</a><a id="3912" href="Data.Product.html#3895" class="Bound">a</a> <a id="3914" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="3916" href="Data.Product.html#3900" class="Bound">b</a><a id="3917" class="Symbol">)</a> <a id="3919" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="3921" href="Data.Product.html#3904" class="Bound">c</a><a id="3922" class="Symbol">)</a>
<a id="3925" class="Comment">-- Alternate form of associativity for dependent products</a>
<a id="3983" class="Comment">-- where the C parameter is uncurried.</a>
<a id="assocʳ-curried"></a><a id="4022" href="Data.Product.html#4022" class="Function">assocʳ-curried</a> <a id="4037" class="Symbol">:</a> <a id="4039" class="Symbol">{</a><a id="4040" href="Data.Product.html#4040" class="Bound">B</a> <a id="4042" class="Symbol">:</a> <a id="4044" href="Data.Product.html#418" class="Generalizable">A</a> <a id="4046" class="Symbol"></a> <a id="4048" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4052" href="Data.Product.html#388" class="Generalizable">b</a><a id="4053" class="Symbol">}</a> <a id="4055" class="Symbol">{</a><a id="4056" href="Data.Product.html#4056" class="Bound">C</a> <a id="4058" class="Symbol">:</a> <a id="4060" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="4062" href="Data.Product.html#418" class="Generalizable">A</a> <a id="4064" href="Data.Product.html#4040" class="Bound">B</a> <a id="4066" class="Symbol"></a> <a id="4068" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4072" href="Data.Product.html#390" class="Generalizable">c</a><a id="4073" class="Symbol">}</a> <a id="4075" class="Symbol"></a>
<a id="4094" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="4096" class="Symbol">(</a><a id="4097" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="4099" href="Data.Product.html#418" class="Generalizable">A</a> <a id="4101" href="Data.Product.html#4040" class="Bound">B</a><a id="4102" class="Symbol">)</a> <a id="4104" href="Data.Product.html#4056" class="Bound">C</a> <a id="4106" class="Symbol"></a> <a id="4108" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="4110" href="Data.Product.html#418" class="Generalizable">A</a> <a id="4112" class="Symbol"></a> <a id="4115" href="Data.Product.html#4115" class="Bound">a</a> <a id="4117" class="Symbol"></a> <a id="4119" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="4121" class="Symbol">(</a><a id="4122" href="Data.Product.html#4040" class="Bound">B</a> <a id="4124" href="Data.Product.html#4115" class="Bound">a</a><a id="4125" class="Symbol">)</a> <a id="4127" class="Symbol">(</a><a id="4128" href="Data.Product.html#3265" class="Function">curry</a> <a id="4134" href="Data.Product.html#4056" class="Bound">C</a> <a id="4136" href="Data.Product.html#4115" class="Bound">a</a><a id="4137" class="Symbol">))</a>
<a id="4140" href="Data.Product.html#4022" class="Function">assocʳ-curried</a> <a id="4155" class="Symbol">((</a><a id="4157" href="Data.Product.html#4157" class="Bound">a</a> <a id="4159" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="4161" href="Data.Product.html#4161" class="Bound">b</a><a id="4162" class="Symbol">)</a> <a id="4164" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="4166" href="Data.Product.html#4166" class="Bound">c</a><a id="4167" class="Symbol">)</a> <a id="4169" class="Symbol">=</a> <a id="4171" class="Symbol">(</a><a id="4172" href="Data.Product.html#4157" class="Bound">a</a> <a id="4174" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="4176" class="Symbol">(</a><a id="4177" href="Data.Product.html#4161" class="Bound">b</a> <a id="4179" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="4181" href="Data.Product.html#4166" class="Bound">c</a><a id="4182" class="Symbol">))</a>
<a id="assocˡ-curried"></a><a id="4186" href="Data.Product.html#4186" class="Function">assocˡ-curried</a> <a id="4201" class="Symbol">:</a> <a id="4203" class="Symbol">{</a><a id="4204" href="Data.Product.html#4204" class="Bound">B</a> <a id="4206" class="Symbol">:</a> <a id="4208" href="Data.Product.html#418" class="Generalizable">A</a> <a id="4210" class="Symbol"></a> <a id="4212" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4216" href="Data.Product.html#388" class="Generalizable">b</a><a id="4217" class="Symbol">}</a> <a id="4219" class="Symbol">{</a><a id="4220" href="Data.Product.html#4220" class="Bound">C</a> <a id="4222" class="Symbol">:</a> <a id="4224" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="4226" href="Data.Product.html#418" class="Generalizable">A</a> <a id="4228" href="Data.Product.html#4204" class="Bound">B</a> <a id="4230" class="Symbol"></a> <a id="4232" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4236" href="Data.Product.html#390" class="Generalizable">c</a><a id="4237" class="Symbol">}</a> <a id="4239" class="Symbol"></a>
<a id="4251" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="4253" href="Data.Product.html#418" class="Generalizable">A</a> <a id="4255" class="Symbol"></a> <a id="4258" href="Data.Product.html#4258" class="Bound">a</a> <a id="4260" class="Symbol"></a> <a id="4262" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="4264" class="Symbol">(</a><a id="4265" href="Data.Product.html#4204" class="Bound">B</a> <a id="4267" href="Data.Product.html#4258" class="Bound">a</a><a id="4268" class="Symbol">)</a> <a id="4270" class="Symbol">(</a><a id="4271" href="Data.Product.html#3265" class="Function">curry</a> <a id="4277" href="Data.Product.html#4220" class="Bound">C</a> <a id="4279" href="Data.Product.html#4258" class="Bound">a</a><a id="4280" class="Symbol">))</a> <a id="4283" class="Symbol"></a> <a id="4285" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="4287" class="Symbol">(</a><a id="4288" href="Agda.Builtin.Sigma.html#166" class="Record">Σ</a> <a id="4290" href="Data.Product.html#418" class="Generalizable">A</a> <a id="4292" href="Data.Product.html#4204" class="Bound">B</a><a id="4293" class="Symbol">)</a> <a id="4295" href="Data.Product.html#4220" class="Bound">C</a>
<a id="4297" href="Data.Product.html#4186" class="Function">assocˡ-curried</a> <a id="4312" class="Symbol">(</a><a id="4313" href="Data.Product.html#4313" class="Bound">a</a> <a id="4315" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="4317" class="Symbol">(</a><a id="4318" href="Data.Product.html#4318" class="Bound">b</a> <a id="4320" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="4322" href="Data.Product.html#4322" class="Bound">c</a><a id="4323" class="Symbol">))</a> <a id="4326" class="Symbol">=</a> <a id="4328" class="Symbol">((</a><a id="4330" href="Data.Product.html#4313" class="Bound">a</a> <a id="4332" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="4334" href="Data.Product.html#4318" class="Bound">b</a><a id="4335" class="Symbol">)</a> <a id="4337" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="4339" href="Data.Product.html#4322" class="Bound">c</a><a id="4340" class="Symbol">)</a>
<a id="4343" class="Comment">------------------------------------------------------------------------</a>
<a id="4416" class="Comment">-- Operations for non-dependent products</a>
<a id="4458" class="Comment">-- Any of the above operations for dependent products will also work for</a>
<a id="4531" class="Comment">-- non-dependent products but sometimes Agda has difficulty inferring</a>
<a id="4601" class="Comment">-- the non-dependency. Primed ( = \prime) versions of the operations</a>
<a id="4671" class="Comment">-- are therefore provided below that sometimes have better inference</a>
<a id="4740" class="Comment">-- properties.</a>
<a id="zip"></a><a id="4756" href="Data.Product.html#4756" class="Function">zip</a> <a id="4761" class="Symbol">:</a> <a id="4763" class="Symbol">(</a><a id="4764" href="Data.Product.html#418" class="Generalizable">A</a> <a id="4766" class="Symbol"></a> <a id="4768" href="Data.Product.html#432" class="Generalizable">B</a> <a id="4770" class="Symbol"></a> <a id="4772" href="Data.Product.html#446" class="Generalizable">C</a><a id="4773" class="Symbol">)</a> <a id="4775" class="Symbol"></a> <a id="4777" class="Symbol">(</a><a id="4778" href="Data.Product.html#460" class="Generalizable">D</a> <a id="4780" class="Symbol"></a> <a id="4782" href="Data.Product.html#474" class="Generalizable">E</a> <a id="4784" class="Symbol"></a> <a id="4786" href="Data.Product.html#488" class="Generalizable">F</a><a id="4787" class="Symbol">)</a> <a id="4789" class="Symbol"></a> <a id="4791" href="Data.Product.html#418" class="Generalizable">A</a> <a id="4793" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="4795" href="Data.Product.html#460" class="Generalizable">D</a> <a id="4797" class="Symbol"></a> <a id="4799" href="Data.Product.html#432" class="Generalizable">B</a> <a id="4801" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="4803" href="Data.Product.html#474" class="Generalizable">E</a> <a id="4805" class="Symbol"></a> <a id="4807" href="Data.Product.html#446" class="Generalizable">C</a> <a id="4809" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="4811" href="Data.Product.html#488" class="Generalizable">F</a>
<a id="4813" href="Data.Product.html#4756" class="Function">zip</a> <a id="4818" href="Data.Product.html#4818" class="Bound">f</a> <a id="4820" href="Data.Product.html#4820" class="Bound">g</a> <a id="4822" class="Symbol">=</a> <a id="4824" href="Data.Product.html#3060" class="Function">zip</a> <a id="4828" href="Data.Product.html#4818" class="Bound">f</a> <a id="4830" href="Data.Product.html#4820" class="Bound">g</a>
<a id="curry"></a><a id="4833" href="Data.Product.html#4833" class="Function">curry</a> <a id="4840" class="Symbol">:</a> <a id="4842" class="Symbol">(</a><a id="4843" href="Data.Product.html#418" class="Generalizable">A</a> <a id="4845" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="4847" href="Data.Product.html#432" class="Generalizable">B</a> <a id="4849" class="Symbol"></a> <a id="4851" href="Data.Product.html#446" class="Generalizable">C</a><a id="4852" class="Symbol">)</a> <a id="4854" class="Symbol"></a> <a id="4856" class="Symbol">(</a><a id="4857" href="Data.Product.html#418" class="Generalizable">A</a> <a id="4859" class="Symbol"></a> <a id="4861" href="Data.Product.html#432" class="Generalizable">B</a> <a id="4863" class="Symbol"></a> <a id="4865" href="Data.Product.html#446" class="Generalizable">C</a><a id="4866" class="Symbol">)</a>
<a id="4868" href="Data.Product.html#4833" class="Function">curry</a> <a id="4875" class="Symbol">=</a> <a id="4877" href="Data.Product.html#3265" class="Function">curry</a>
<a id="uncurry"></a><a id="4884" href="Data.Product.html#4884" class="Function">uncurry</a> <a id="4893" class="Symbol">:</a> <a id="4895" class="Symbol">(</a><a id="4896" href="Data.Product.html#418" class="Generalizable">A</a> <a id="4898" class="Symbol"></a> <a id="4900" href="Data.Product.html#432" class="Generalizable">B</a> <a id="4902" class="Symbol"></a> <a id="4904" href="Data.Product.html#446" class="Generalizable">C</a><a id="4905" class="Symbol">)</a> <a id="4907" class="Symbol"></a> <a id="4909" class="Symbol">(</a><a id="4910" href="Data.Product.html#418" class="Generalizable">A</a> <a id="4912" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="4914" href="Data.Product.html#432" class="Generalizable">B</a> <a id="4916" class="Symbol"></a> <a id="4918" href="Data.Product.html#446" class="Generalizable">C</a><a id="4919" class="Symbol">)</a>
<a id="4921" href="Data.Product.html#4884" class="Function">uncurry</a> <a id="4930" class="Symbol">=</a> <a id="4932" href="Data.Product.html#3422" class="Function">uncurry</a>
<a id="dmap"></a><a id="4941" href="Data.Product.html#4941" class="Function">dmap</a> <a id="4947" class="Symbol">:</a> <a id="4949" class="Symbol"></a> <a id="4951" class="Symbol">{</a><a id="4952" href="Data.Product.html#4952" class="Bound">x</a> <a id="4954" href="Data.Product.html#4954" class="Bound">y</a><a id="4955" class="Symbol">}</a> <a id="4957" class="Symbol">{</a><a id="4958" href="Data.Product.html#4958" class="Bound">X</a> <a id="4960" class="Symbol">:</a> <a id="4962" href="Data.Product.html#418" class="Generalizable">A</a> <a id="4964" class="Symbol"></a> <a id="4966" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4970" href="Data.Product.html#4952" class="Bound">x</a><a id="4971" class="Symbol">}</a> <a id="4973" class="Symbol">{</a><a id="4974" href="Data.Product.html#4974" class="Bound">Y</a> <a id="4976" class="Symbol">:</a> <a id="4978" href="Data.Product.html#432" class="Generalizable">B</a> <a id="4980" class="Symbol"></a> <a id="4982" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4986" href="Data.Product.html#4954" class="Bound">y</a><a id="4987" class="Symbol">}</a> <a id="4989" class="Symbol"></a>
<a id="4999" class="Symbol">((</a><a id="5001" href="Data.Product.html#5001" class="Bound">a</a> <a id="5003" class="Symbol">:</a> <a id="5005" href="Data.Product.html#418" class="Generalizable">A</a><a id="5006" class="Symbol">)</a> <a id="5008" class="Symbol"></a> <a id="5010" href="Data.Product.html#4958" class="Bound">X</a> <a id="5012" href="Data.Product.html#5001" class="Bound">a</a><a id="5013" class="Symbol">)</a> <a id="5015" class="Symbol"></a> <a id="5017" class="Symbol">((</a><a id="5019" href="Data.Product.html#5019" class="Bound">b</a> <a id="5021" class="Symbol">:</a> <a id="5023" href="Data.Product.html#432" class="Generalizable">B</a><a id="5024" class="Symbol">)</a> <a id="5026" class="Symbol"></a> <a id="5028" href="Data.Product.html#4974" class="Bound">Y</a> <a id="5030" href="Data.Product.html#5019" class="Bound">b</a><a id="5031" class="Symbol">)</a> <a id="5033" class="Symbol"></a>
<a id="5043" class="Symbol">(</a><a id="5044" href="Data.Product.html#5044" class="Bound">(</a><a id="5045" href="Data.Product.html#5045" class="Bound">a</a> <a id="5047" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="5049" href="Data.Product.html#5049" class="Bound">b</a><a id="5050" href="Data.Product.html#5044" class="Bound">)</a> <a id="5052" class="Symbol">:</a> <a id="5054" href="Data.Product.html#418" class="Generalizable">A</a> <a id="5056" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="5058" href="Data.Product.html#432" class="Generalizable">B</a><a id="5059" class="Symbol">)</a> <a id="5061" class="Symbol"></a> <a id="5063" href="Data.Product.html#4958" class="Bound">X</a> <a id="5065" href="Data.Product.html#5045" class="Bound">a</a> <a id="5067" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="5069" href="Data.Product.html#4974" class="Bound">Y</a> <a id="5071" href="Data.Product.html#5049" class="Bound">b</a>
<a id="5073" href="Data.Product.html#4941" class="Function">dmap</a> <a id="5079" href="Data.Product.html#5079" class="Bound">f</a> <a id="5081" href="Data.Product.html#5081" class="Bound">g</a> <a id="5083" class="Symbol">=</a> <a id="5085" href="Data.Product.html#2853" class="Function">dmap</a> <a id="5090" href="Data.Product.html#5079" class="Bound">f</a> <a id="5092" href="Data.Product.html#5081" class="Bound">g</a>
<a id="_&lt;*&gt;_"></a><a id="5095" href="Data.Product.html#5095" class="Function Operator">_&lt;*&gt;_</a> <a id="5101" class="Symbol">:</a> <a id="5103" class="Symbol"></a> <a id="5105" class="Symbol">{</a><a id="5106" href="Data.Product.html#5106" class="Bound">x</a> <a id="5108" href="Data.Product.html#5108" class="Bound">y</a><a id="5109" class="Symbol">}</a> <a id="5111" class="Symbol">{</a><a id="5112" href="Data.Product.html#5112" class="Bound">X</a> <a id="5114" class="Symbol">:</a> <a id="5116" href="Data.Product.html#418" class="Generalizable">A</a> <a id="5118" class="Symbol"></a> <a id="5120" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="5124" href="Data.Product.html#5106" class="Bound">x</a><a id="5125" class="Symbol">}</a> <a id="5127" class="Symbol">{</a><a id="5128" href="Data.Product.html#5128" class="Bound">Y</a> <a id="5130" class="Symbol">:</a> <a id="5132" href="Data.Product.html#432" class="Generalizable">B</a> <a id="5134" class="Symbol"></a> <a id="5136" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="5140" href="Data.Product.html#5108" class="Bound">y</a><a id="5141" class="Symbol">}</a> <a id="5143" class="Symbol"></a>
<a id="5153" class="Symbol">((</a><a id="5155" href="Data.Product.html#5155" class="Bound">a</a> <a id="5157" class="Symbol">:</a> <a id="5159" href="Data.Product.html#418" class="Generalizable">A</a><a id="5160" class="Symbol">)</a> <a id="5162" class="Symbol"></a> <a id="5164" href="Data.Product.html#5112" class="Bound">X</a> <a id="5166" href="Data.Product.html#5155" class="Bound">a</a><a id="5167" class="Symbol">)</a> <a id="5169" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="5171" class="Symbol">((</a><a id="5173" href="Data.Product.html#5173" class="Bound">b</a> <a id="5175" class="Symbol">:</a> <a id="5177" href="Data.Product.html#432" class="Generalizable">B</a><a id="5178" class="Symbol">)</a> <a id="5180" class="Symbol"></a> <a id="5182" href="Data.Product.html#5128" class="Bound">Y</a> <a id="5184" href="Data.Product.html#5173" class="Bound">b</a><a id="5185" class="Symbol">)</a> <a id="5187" class="Symbol"></a>
<a id="5197" class="Symbol">(</a><a id="5198" href="Data.Product.html#5198" class="Bound">(</a><a id="5199" href="Data.Product.html#5199" class="Bound">a</a> <a id="5201" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="5203" href="Data.Product.html#5203" class="Bound">b</a><a id="5204" href="Data.Product.html#5198" class="Bound">)</a> <a id="5206" class="Symbol">:</a> <a id="5208" href="Data.Product.html#418" class="Generalizable">A</a> <a id="5210" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="5212" href="Data.Product.html#432" class="Generalizable">B</a><a id="5213" class="Symbol">)</a> <a id="5215" class="Symbol"></a> <a id="5217" href="Data.Product.html#5112" class="Bound">X</a> <a id="5219" href="Data.Product.html#5199" class="Bound">a</a> <a id="5221" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="5223" href="Data.Product.html#5128" class="Bound">Y</a> <a id="5225" href="Data.Product.html#5203" class="Bound">b</a>
<a id="5227" href="Data.Product.html#5095" class="Function Operator">_&lt;*&gt;_</a> <a id="5233" class="Symbol">=</a> <a id="5235" href="Data.Product.html#3422" class="Function">uncurry</a> <a id="5243" href="Data.Product.html#4941" class="Function">dmap</a>
<a id="5250" class="Comment">-- Operations that can only be defined for non-dependent products</a>
<a id="swap"></a><a id="5317" href="Data.Product.html#5317" class="Function">swap</a> <a id="5322" class="Symbol">:</a> <a id="5324" href="Data.Product.html#418" class="Generalizable">A</a> <a id="5326" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="5328" href="Data.Product.html#432" class="Generalizable">B</a> <a id="5330" class="Symbol"></a> <a id="5332" href="Data.Product.html#432" class="Generalizable">B</a> <a id="5334" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="5336" href="Data.Product.html#418" class="Generalizable">A</a>
<a id="5338" href="Data.Product.html#5317" class="Function">swap</a> <a id="5343" class="Symbol">(</a><a id="5344" href="Data.Product.html#5344" class="Bound">x</a> <a id="5346" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="5348" href="Data.Product.html#5348" class="Bound">y</a><a id="5349" class="Symbol">)</a> <a id="5351" class="Symbol">=</a> <a id="5353" class="Symbol">(</a><a id="5354" href="Data.Product.html#5348" class="Bound">y</a> <a id="5356" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="5358" href="Data.Product.html#5344" class="Bound">x</a><a id="5359" class="Symbol">)</a>
<a id="_-×-_"></a><a id="5362" href="Data.Product.html#5362" class="Function Operator">_-×-_</a> <a id="5368" class="Symbol">:</a> <a id="5370" class="Symbol">(</a><a id="5371" href="Data.Product.html#418" class="Generalizable">A</a> <a id="5373" class="Symbol"></a> <a id="5375" href="Data.Product.html#432" class="Generalizable">B</a> <a id="5377" class="Symbol"></a> <a id="5379" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="5383" href="Data.Product.html#400" class="Generalizable">p</a><a id="5384" class="Symbol">)</a> <a id="5386" class="Symbol"></a> <a id="5388" class="Symbol">(</a><a id="5389" href="Data.Product.html#418" class="Generalizable">A</a> <a id="5391" class="Symbol"></a> <a id="5393" href="Data.Product.html#432" class="Generalizable">B</a> <a id="5395" class="Symbol"></a> <a id="5397" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="5401" href="Data.Product.html#402" class="Generalizable">q</a><a id="5402" class="Symbol">)</a> <a id="5404" class="Symbol"></a> <a id="5406" class="Symbol">(</a><a id="5407" href="Data.Product.html#418" class="Generalizable">A</a> <a id="5409" class="Symbol"></a> <a id="5411" href="Data.Product.html#432" class="Generalizable">B</a> <a id="5413" class="Symbol"></a> <a id="5415" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="5419" class="Symbol">_)</a>
<a id="5422" href="Data.Product.html#5422" class="Bound">f</a> <a id="5424" href="Data.Product.html#5362" class="Function Operator">-×-</a> <a id="5428" href="Data.Product.html#5428" class="Bound">g</a> <a id="5430" class="Symbol">=</a> <a id="5432" href="Data.Product.html#5422" class="Bound">f</a> <a id="5434" href="Function.Base.html#5115" class="Function Operator">-⟪</a> <a id="5437" href="Data.Product.html#1167" class="Function Operator">_×_</a> <a id="5441" href="Function.Base.html#5115" class="Function Operator">⟫-</a> <a id="5444" href="Data.Product.html#5428" class="Bound">g</a>
<a id="_-,-_"></a><a id="5447" href="Data.Product.html#5447" class="Function Operator">_-,-_</a> <a id="5453" class="Symbol">:</a> <a id="5455" class="Symbol">(</a><a id="5456" href="Data.Product.html#418" class="Generalizable">A</a> <a id="5458" class="Symbol"></a> <a id="5460" href="Data.Product.html#432" class="Generalizable">B</a> <a id="5462" class="Symbol"></a> <a id="5464" href="Data.Product.html#446" class="Generalizable">C</a><a id="5465" class="Symbol">)</a> <a id="5467" class="Symbol"></a> <a id="5469" class="Symbol">(</a><a id="5470" href="Data.Product.html#418" class="Generalizable">A</a> <a id="5472" class="Symbol"></a> <a id="5474" href="Data.Product.html#432" class="Generalizable">B</a> <a id="5476" class="Symbol"></a> <a id="5478" href="Data.Product.html#460" class="Generalizable">D</a><a id="5479" class="Symbol">)</a> <a id="5481" class="Symbol"></a> <a id="5483" class="Symbol">(</a><a id="5484" href="Data.Product.html#418" class="Generalizable">A</a> <a id="5486" class="Symbol"></a> <a id="5488" href="Data.Product.html#432" class="Generalizable">B</a> <a id="5490" class="Symbol"></a> <a id="5492" href="Data.Product.html#446" class="Generalizable">C</a> <a id="5494" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="5496" href="Data.Product.html#460" class="Generalizable">D</a><a id="5497" class="Symbol">)</a>
<a id="5499" href="Data.Product.html#5499" class="Bound">f</a> <a id="5501" href="Data.Product.html#5447" class="Function Operator">-,-</a> <a id="5505" href="Data.Product.html#5505" class="Bound">g</a> <a id="5507" class="Symbol">=</a> <a id="5509" href="Data.Product.html#5499" class="Bound">f</a> <a id="5511" href="Function.Base.html#5115" class="Function Operator">-⟪</a> <a id="5514" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">_,_</a> <a id="5518" href="Function.Base.html#5115" class="Function Operator">⟫-</a> <a id="5521" href="Data.Product.html#5505" class="Bound">g</a>
<a id="5524" class="Comment">-- Rewriting non-dependent products</a>
<a id="assocʳ"></a><a id="5560" href="Data.Product.html#5560" class="Function">assocʳ</a> <a id="5568" class="Symbol">:</a> <a id="5570" class="Symbol">(</a><a id="5571" href="Data.Product.html#418" class="Generalizable">A</a> <a id="5573" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="5575" href="Data.Product.html#432" class="Generalizable">B</a><a id="5576" class="Symbol">)</a> <a id="5578" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="5580" href="Data.Product.html#446" class="Generalizable">C</a> <a id="5582" class="Symbol"></a> <a id="5584" href="Data.Product.html#418" class="Generalizable">A</a> <a id="5586" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="5588" class="Symbol">(</a><a id="5589" href="Data.Product.html#432" class="Generalizable">B</a> <a id="5591" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="5593" href="Data.Product.html#446" class="Generalizable">C</a><a id="5594" class="Symbol">)</a>
<a id="5596" href="Data.Product.html#5560" class="Function">assocʳ</a> <a id="5604" class="Symbol">((</a><a id="5606" href="Data.Product.html#5606" class="Bound">a</a> <a id="5608" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="5610" href="Data.Product.html#5610" class="Bound">b</a><a id="5611" class="Symbol">)</a> <a id="5613" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="5615" href="Data.Product.html#5615" class="Bound">c</a><a id="5616" class="Symbol">)</a> <a id="5618" class="Symbol">=</a> <a id="5620" class="Symbol">(</a><a id="5621" href="Data.Product.html#5606" class="Bound">a</a> <a id="5623" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="5625" class="Symbol">(</a><a id="5626" href="Data.Product.html#5610" class="Bound">b</a> <a id="5628" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="5630" href="Data.Product.html#5615" class="Bound">c</a><a id="5631" class="Symbol">))</a>
<a id="assocˡ"></a><a id="5635" href="Data.Product.html#5635" class="Function">assocˡ</a> <a id="5643" class="Symbol">:</a> <a id="5645" href="Data.Product.html#418" class="Generalizable">A</a> <a id="5647" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="5649" class="Symbol">(</a><a id="5650" href="Data.Product.html#432" class="Generalizable">B</a> <a id="5652" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="5654" href="Data.Product.html#446" class="Generalizable">C</a><a id="5655" class="Symbol">)</a> <a id="5657" class="Symbol"></a> <a id="5659" class="Symbol">(</a><a id="5660" href="Data.Product.html#418" class="Generalizable">A</a> <a id="5662" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="5664" href="Data.Product.html#432" class="Generalizable">B</a><a id="5665" class="Symbol">)</a> <a id="5667" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="5669" href="Data.Product.html#446" class="Generalizable">C</a>
<a id="5671" href="Data.Product.html#5635" class="Function">assocˡ</a> <a id="5679" class="Symbol">(</a><a id="5680" href="Data.Product.html#5680" class="Bound">a</a> <a id="5682" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="5684" class="Symbol">(</a><a id="5685" href="Data.Product.html#5685" class="Bound">b</a> <a id="5687" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="5689" href="Data.Product.html#5689" class="Bound">c</a><a id="5690" class="Symbol">))</a> <a id="5693" class="Symbol">=</a> <a id="5695" class="Symbol">((</a><a id="5697" href="Data.Product.html#5680" class="Bound">a</a> <a id="5699" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="5701" href="Data.Product.html#5685" class="Bound">b</a><a id="5702" class="Symbol">)</a> <a id="5704" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="5706" href="Data.Product.html#5689" class="Bound">c</a><a id="5707" class="Symbol">)</a>
</pre></body></html>

88
misc/Data.Sum.Base.html Normal file
View File

@ -0,0 +1,88 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Data.Sum.Base</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Sums (disjoint unions)</a>
<a id="132" class="Comment">------------------------------------------------------------------------</a>
<a id="206" class="Symbol">{-#</a> <a id="210" class="Keyword">OPTIONS</a> <a id="218" class="Pragma">--without-K</a> <a id="230" class="Pragma">--safe</a> <a id="237" class="Symbol">#-}</a>
<a id="242" class="Keyword">module</a> <a id="249" href="Data.Sum.Base.html" class="Module">Data.Sum.Base</a> <a id="263" class="Keyword">where</a>
<a id="270" class="Keyword">open</a> <a id="275" class="Keyword">import</a> <a id="282" href="Data.Bool.Base.html" class="Module">Data.Bool.Base</a> <a id="297" class="Keyword">using</a> <a id="303" class="Symbol">(</a><a id="304" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a><a id="308" class="Symbol">;</a> <a id="310" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a><a id="315" class="Symbol">)</a>
<a id="317" class="Keyword">open</a> <a id="322" class="Keyword">import</a> <a id="329" href="Function.Base.html" class="Module">Function.Base</a> <a id="343" class="Keyword">using</a> <a id="349" class="Symbol">(</a><a id="350" href="Function.Base.html#1031" class="Function Operator">_∘_</a><a id="353" class="Symbol">;</a> <a id="355" href="Function.Base.html#3706" class="Function Operator">_∘_</a><a id="359" class="Symbol">;</a> <a id="361" href="Function.Base.html#5115" class="Function Operator">_-⟪_⟫-_</a> <a id="369" class="Symbol">;</a> <a id="371" href="Function.Base.html#615" class="Function">id</a><a id="373" class="Symbol">)</a>
<a id="375" class="Keyword">open</a> <a id="380" class="Keyword">import</a> <a id="387" href="Relation.Nullary.Reflects.html" class="Module">Relation.Nullary.Reflects</a> <a id="413" class="Keyword">using</a> <a id="419" class="Symbol">(</a><a id="420" href="Relation.Nullary.Reflects.html#1031" class="Function">invert</a><a id="426" class="Symbol">)</a>
<a id="428" class="Keyword">open</a> <a id="433" class="Keyword">import</a> <a id="440" href="Relation.Nullary.html" class="Module">Relation.Nullary</a> <a id="457" class="Keyword">using</a> <a id="463" class="Symbol">(</a><a id="464" href="Relation.Nullary.html#1511" class="Record">Dec</a><a id="467" class="Symbol">;</a> <a id="469" href="Relation.Nullary.html#1648" class="InductiveConstructor">yes</a><a id="472" class="Symbol">;</a> <a id="474" href="Relation.Nullary.html#1685" class="InductiveConstructor">no</a><a id="476" class="Symbol">;</a> <a id="478" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">_because_</a><a id="487" class="Symbol">;</a> <a id="489" href="Relation.Nullary.html#656" class="Function Operator">¬_</a><a id="491" class="Symbol">)</a>
<a id="493" class="Keyword">open</a> <a id="498" class="Keyword">import</a> <a id="505" href="Level.html" class="Module">Level</a> <a id="511" class="Keyword">using</a> <a id="517" class="Symbol">(</a><a id="518" href="Agda.Primitive.html#597" class="Postulate">Level</a><a id="523" class="Symbol">;</a> <a id="525" href="Agda.Primitive.html#810" class="Primitive Operator">_⊔_</a><a id="528" class="Symbol">)</a>
<a id="531" class="Keyword">private</a>
<a id="541" class="Keyword">variable</a>
<a id="554" href="Data.Sum.Base.html#554" class="Generalizable">a</a> <a id="556" href="Data.Sum.Base.html#556" class="Generalizable">b</a> <a id="558" href="Data.Sum.Base.html#558" class="Generalizable">c</a> <a id="560" href="Data.Sum.Base.html#560" class="Generalizable">d</a> <a id="562" class="Symbol">:</a> <a id="564" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="574" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="576" class="Symbol">:</a> <a id="578" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="582" href="Data.Sum.Base.html#554" class="Generalizable">a</a>
<a id="588" href="Data.Sum.Base.html#588" class="Generalizable">B</a> <a id="590" class="Symbol">:</a> <a id="592" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="596" href="Data.Sum.Base.html#556" class="Generalizable">b</a>
<a id="602" href="Data.Sum.Base.html#602" class="Generalizable">C</a> <a id="604" class="Symbol">:</a> <a id="606" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="610" href="Data.Sum.Base.html#558" class="Generalizable">c</a>
<a id="616" href="Data.Sum.Base.html#616" class="Generalizable">D</a> <a id="618" class="Symbol">:</a> <a id="620" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="624" href="Data.Sum.Base.html#560" class="Generalizable">d</a>
<a id="627" class="Comment">------------------------------------------------------------------------</a>
<a id="700" class="Comment">-- Definition</a>
<a id="715" class="Keyword">infixr</a> <a id="722" class="Number">1</a> <a id="724" href="Data.Sum.Base.html#734" class="Datatype Operator">_⊎_</a>
<a id="729" class="Keyword">data</a> <a id="_⊎_"></a><a id="734" href="Data.Sum.Base.html#734" class="Datatype Operator">_⊎_</a> <a id="738" class="Symbol">(</a><a id="739" href="Data.Sum.Base.html#739" class="Bound">A</a> <a id="741" class="Symbol">:</a> <a id="743" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="747" href="Data.Sum.Base.html#554" class="Generalizable">a</a><a id="748" class="Symbol">)</a> <a id="750" class="Symbol">(</a><a id="751" href="Data.Sum.Base.html#751" class="Bound">B</a> <a id="753" class="Symbol">:</a> <a id="755" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="759" href="Data.Sum.Base.html#556" class="Generalizable">b</a><a id="760" class="Symbol">)</a> <a id="762" class="Symbol">:</a> <a id="764" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="768" class="Symbol">(</a><a id="769" href="Data.Sum.Base.html#747" class="Bound">a</a> <a id="771" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="773" href="Data.Sum.Base.html#759" class="Bound">b</a><a id="774" class="Symbol">)</a> <a id="776" class="Keyword">where</a>
<a id="_⊎_.inj₁"></a><a id="784" href="Data.Sum.Base.html#784" class="InductiveConstructor">inj₁</a> <a id="789" class="Symbol">:</a> <a id="791" class="Symbol">(</a><a id="792" href="Data.Sum.Base.html#792" class="Bound">x</a> <a id="794" class="Symbol">:</a> <a id="796" href="Data.Sum.Base.html#739" class="Bound">A</a><a id="797" class="Symbol">)</a> <a id="799" class="Symbol"></a> <a id="801" href="Data.Sum.Base.html#739" class="Bound">A</a> <a id="803" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="805" href="Data.Sum.Base.html#751" class="Bound">B</a>
<a id="_⊎_.inj₂"></a><a id="809" href="Data.Sum.Base.html#809" class="InductiveConstructor">inj₂</a> <a id="814" class="Symbol">:</a> <a id="816" class="Symbol">(</a><a id="817" href="Data.Sum.Base.html#817" class="Bound">y</a> <a id="819" class="Symbol">:</a> <a id="821" href="Data.Sum.Base.html#751" class="Bound">B</a><a id="822" class="Symbol">)</a> <a id="824" class="Symbol"></a> <a id="826" href="Data.Sum.Base.html#739" class="Bound">A</a> <a id="828" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="830" href="Data.Sum.Base.html#751" class="Bound">B</a>
<a id="833" class="Comment">------------------------------------------------------------------------</a>
<a id="906" class="Comment">-- Functions</a>
<a id="[_,_]"></a><a id="920" href="Data.Sum.Base.html#920" class="Function Operator">[_,_]</a> <a id="926" class="Symbol">:</a> <a id="928" class="Symbol"></a> <a id="930" class="Symbol">{</a><a id="931" href="Data.Sum.Base.html#931" class="Bound">C</a> <a id="933" class="Symbol">:</a> <a id="935" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="937" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="939" href="Data.Sum.Base.html#588" class="Generalizable">B</a> <a id="941" class="Symbol"></a> <a id="943" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="947" href="Data.Sum.Base.html#558" class="Generalizable">c</a><a id="948" class="Symbol">}</a> <a id="950" class="Symbol"></a>
<a id="960" class="Symbol">((</a><a id="962" href="Data.Sum.Base.html#962" class="Bound">x</a> <a id="964" class="Symbol">:</a> <a id="966" href="Data.Sum.Base.html#574" class="Generalizable">A</a><a id="967" class="Symbol">)</a> <a id="969" class="Symbol"></a> <a id="971" href="Data.Sum.Base.html#931" class="Bound">C</a> <a id="973" class="Symbol">(</a><a id="974" href="Data.Sum.Base.html#784" class="InductiveConstructor">inj₁</a> <a id="979" href="Data.Sum.Base.html#962" class="Bound">x</a><a id="980" class="Symbol">))</a> <a id="983" class="Symbol"></a> <a id="985" class="Symbol">((</a><a id="987" href="Data.Sum.Base.html#987" class="Bound">x</a> <a id="989" class="Symbol">:</a> <a id="991" href="Data.Sum.Base.html#588" class="Generalizable">B</a><a id="992" class="Symbol">)</a> <a id="994" class="Symbol"></a> <a id="996" href="Data.Sum.Base.html#931" class="Bound">C</a> <a id="998" class="Symbol">(</a><a id="999" href="Data.Sum.Base.html#809" class="InductiveConstructor">inj₂</a> <a id="1004" href="Data.Sum.Base.html#987" class="Bound">x</a><a id="1005" class="Symbol">))</a> <a id="1008" class="Symbol"></a>
<a id="1018" class="Symbol">((</a><a id="1020" href="Data.Sum.Base.html#1020" class="Bound">x</a> <a id="1022" class="Symbol">:</a> <a id="1024" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1026" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="1028" href="Data.Sum.Base.html#588" class="Generalizable">B</a><a id="1029" class="Symbol">)</a> <a id="1031" class="Symbol"></a> <a id="1033" href="Data.Sum.Base.html#931" class="Bound">C</a> <a id="1035" href="Data.Sum.Base.html#1020" class="Bound">x</a><a id="1036" class="Symbol">)</a>
<a id="1038" href="Data.Sum.Base.html#920" class="Function Operator">[</a> <a id="1040" href="Data.Sum.Base.html#1040" class="Bound">f</a> <a id="1042" href="Data.Sum.Base.html#920" class="Function Operator">,</a> <a id="1044" href="Data.Sum.Base.html#1044" class="Bound">g</a> <a id="1046" href="Data.Sum.Base.html#920" class="Function Operator">]</a> <a id="1048" class="Symbol">(</a><a id="1049" href="Data.Sum.Base.html#784" class="InductiveConstructor">inj₁</a> <a id="1054" href="Data.Sum.Base.html#1054" class="Bound">x</a><a id="1055" class="Symbol">)</a> <a id="1057" class="Symbol">=</a> <a id="1059" href="Data.Sum.Base.html#1040" class="Bound">f</a> <a id="1061" href="Data.Sum.Base.html#1054" class="Bound">x</a>
<a id="1063" href="Data.Sum.Base.html#920" class="Function Operator">[</a> <a id="1065" href="Data.Sum.Base.html#1065" class="Bound">f</a> <a id="1067" href="Data.Sum.Base.html#920" class="Function Operator">,</a> <a id="1069" href="Data.Sum.Base.html#1069" class="Bound">g</a> <a id="1071" href="Data.Sum.Base.html#920" class="Function Operator">]</a> <a id="1073" class="Symbol">(</a><a id="1074" href="Data.Sum.Base.html#809" class="InductiveConstructor">inj₂</a> <a id="1079" href="Data.Sum.Base.html#1079" class="Bound">y</a><a id="1080" class="Symbol">)</a> <a id="1082" class="Symbol">=</a> <a id="1084" href="Data.Sum.Base.html#1069" class="Bound">g</a> <a id="1086" href="Data.Sum.Base.html#1079" class="Bound">y</a>
<a id="[_,_]"></a><a id="1089" href="Data.Sum.Base.html#1089" class="Function Operator">[_,_]</a> <a id="1096" class="Symbol">:</a> <a id="1098" class="Symbol">(</a><a id="1099" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1101" class="Symbol"></a> <a id="1103" href="Data.Sum.Base.html#602" class="Generalizable">C</a><a id="1104" class="Symbol">)</a> <a id="1106" class="Symbol"></a> <a id="1108" class="Symbol">(</a><a id="1109" href="Data.Sum.Base.html#588" class="Generalizable">B</a> <a id="1111" class="Symbol"></a> <a id="1113" href="Data.Sum.Base.html#602" class="Generalizable">C</a><a id="1114" class="Symbol">)</a> <a id="1116" class="Symbol"></a> <a id="1118" class="Symbol">(</a><a id="1119" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1121" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="1123" href="Data.Sum.Base.html#588" class="Generalizable">B</a> <a id="1125" class="Symbol"></a> <a id="1127" href="Data.Sum.Base.html#602" class="Generalizable">C</a><a id="1128" class="Symbol">)</a>
<a id="1130" href="Data.Sum.Base.html#1089" class="Function Operator">[_,_]</a> <a id="1137" class="Symbol">=</a> <a id="1139" href="Data.Sum.Base.html#920" class="Function Operator">[_,_]</a>
<a id="fromInj₁"></a><a id="1146" href="Data.Sum.Base.html#1146" class="Function">fromInj₁</a> <a id="1155" class="Symbol">:</a> <a id="1157" class="Symbol">(</a><a id="1158" href="Data.Sum.Base.html#588" class="Generalizable">B</a> <a id="1160" class="Symbol"></a> <a id="1162" href="Data.Sum.Base.html#574" class="Generalizable">A</a><a id="1163" class="Symbol">)</a> <a id="1165" class="Symbol"></a> <a id="1167" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1169" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="1171" href="Data.Sum.Base.html#588" class="Generalizable">B</a> <a id="1173" class="Symbol"></a> <a id="1175" href="Data.Sum.Base.html#574" class="Generalizable">A</a>
<a id="1177" href="Data.Sum.Base.html#1146" class="Function">fromInj₁</a> <a id="1186" class="Symbol">=</a> <a id="1188" href="Data.Sum.Base.html#1089" class="Function Operator">[</a> <a id="1190" href="Function.Base.html#615" class="Function">id</a> <a id="1193" href="Data.Sum.Base.html#1089" class="Function Operator">,_]</a>
<a id="fromInj₂"></a><a id="1199" href="Data.Sum.Base.html#1199" class="Function">fromInj₂</a> <a id="1208" class="Symbol">:</a> <a id="1210" class="Symbol">(</a><a id="1211" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1213" class="Symbol"></a> <a id="1215" href="Data.Sum.Base.html#588" class="Generalizable">B</a><a id="1216" class="Symbol">)</a> <a id="1218" class="Symbol"></a> <a id="1220" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1222" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="1224" href="Data.Sum.Base.html#588" class="Generalizable">B</a> <a id="1226" class="Symbol"></a> <a id="1228" href="Data.Sum.Base.html#588" class="Generalizable">B</a>
<a id="1230" href="Data.Sum.Base.html#1199" class="Function">fromInj₂</a> <a id="1239" class="Symbol">=</a> <a id="1241" href="Data.Sum.Base.html#1089" class="Function Operator">[_,</a> <a id="1245" href="Function.Base.html#615" class="Function">id</a> <a id="1248" href="Data.Sum.Base.html#1089" class="Function Operator">]</a>
<a id="reduce"></a><a id="1252" href="Data.Sum.Base.html#1252" class="Function">reduce</a> <a id="1259" class="Symbol">:</a> <a id="1261" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1263" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="1265" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1267" class="Symbol"></a> <a id="1269" href="Data.Sum.Base.html#574" class="Generalizable">A</a>
<a id="1271" href="Data.Sum.Base.html#1252" class="Function">reduce</a> <a id="1278" class="Symbol">=</a> <a id="1280" href="Data.Sum.Base.html#1089" class="Function Operator">[</a> <a id="1282" href="Function.Base.html#615" class="Function">id</a> <a id="1285" href="Data.Sum.Base.html#1089" class="Function Operator">,</a> <a id="1287" href="Function.Base.html#615" class="Function">id</a> <a id="1290" href="Data.Sum.Base.html#1089" class="Function Operator">]</a>
<a id="swap"></a><a id="1294" href="Data.Sum.Base.html#1294" class="Function">swap</a> <a id="1299" class="Symbol">:</a> <a id="1301" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1303" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="1305" href="Data.Sum.Base.html#588" class="Generalizable">B</a> <a id="1307" class="Symbol"></a> <a id="1309" href="Data.Sum.Base.html#588" class="Generalizable">B</a> <a id="1311" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="1313" href="Data.Sum.Base.html#574" class="Generalizable">A</a>
<a id="1315" href="Data.Sum.Base.html#1294" class="Function">swap</a> <a id="1320" class="Symbol">(</a><a id="1321" href="Data.Sum.Base.html#784" class="InductiveConstructor">inj₁</a> <a id="1326" href="Data.Sum.Base.html#1326" class="Bound">x</a><a id="1327" class="Symbol">)</a> <a id="1329" class="Symbol">=</a> <a id="1331" href="Data.Sum.Base.html#809" class="InductiveConstructor">inj₂</a> <a id="1336" href="Data.Sum.Base.html#1326" class="Bound">x</a>
<a id="1338" href="Data.Sum.Base.html#1294" class="Function">swap</a> <a id="1343" class="Symbol">(</a><a id="1344" href="Data.Sum.Base.html#809" class="InductiveConstructor">inj₂</a> <a id="1349" href="Data.Sum.Base.html#1349" class="Bound">x</a><a id="1350" class="Symbol">)</a> <a id="1352" class="Symbol">=</a> <a id="1354" href="Data.Sum.Base.html#784" class="InductiveConstructor">inj₁</a> <a id="1359" href="Data.Sum.Base.html#1349" class="Bound">x</a>
<a id="map"></a><a id="1362" href="Data.Sum.Base.html#1362" class="Function">map</a> <a id="1366" class="Symbol">:</a> <a id="1368" class="Symbol">(</a><a id="1369" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1371" class="Symbol"></a> <a id="1373" href="Data.Sum.Base.html#602" class="Generalizable">C</a><a id="1374" class="Symbol">)</a> <a id="1376" class="Symbol"></a> <a id="1378" class="Symbol">(</a><a id="1379" href="Data.Sum.Base.html#588" class="Generalizable">B</a> <a id="1381" class="Symbol"></a> <a id="1383" href="Data.Sum.Base.html#616" class="Generalizable">D</a><a id="1384" class="Symbol">)</a> <a id="1386" class="Symbol"></a> <a id="1388" class="Symbol">(</a><a id="1389" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1391" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="1393" href="Data.Sum.Base.html#588" class="Generalizable">B</a> <a id="1395" class="Symbol"></a> <a id="1397" href="Data.Sum.Base.html#602" class="Generalizable">C</a> <a id="1399" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="1401" href="Data.Sum.Base.html#616" class="Generalizable">D</a><a id="1402" class="Symbol">)</a>
<a id="1404" href="Data.Sum.Base.html#1362" class="Function">map</a> <a id="1408" href="Data.Sum.Base.html#1408" class="Bound">f</a> <a id="1410" href="Data.Sum.Base.html#1410" class="Bound">g</a> <a id="1412" class="Symbol">=</a> <a id="1414" href="Data.Sum.Base.html#1089" class="Function Operator">[</a> <a id="1416" href="Data.Sum.Base.html#784" class="InductiveConstructor">inj₁</a> <a id="1421" href="Function.Base.html#1031" class="Function Operator"></a> <a id="1423" href="Data.Sum.Base.html#1408" class="Bound">f</a> <a id="1425" href="Data.Sum.Base.html#1089" class="Function Operator">,</a> <a id="1427" href="Data.Sum.Base.html#809" class="InductiveConstructor">inj₂</a> <a id="1432" href="Function.Base.html#1031" class="Function Operator"></a> <a id="1434" href="Data.Sum.Base.html#1410" class="Bound">g</a> <a id="1436" href="Data.Sum.Base.html#1089" class="Function Operator">]</a>
<a id="map₁"></a><a id="1440" href="Data.Sum.Base.html#1440" class="Function">map₁</a> <a id="1445" class="Symbol">:</a> <a id="1447" class="Symbol">(</a><a id="1448" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1450" class="Symbol"></a> <a id="1452" href="Data.Sum.Base.html#602" class="Generalizable">C</a><a id="1453" class="Symbol">)</a> <a id="1455" class="Symbol"></a> <a id="1457" class="Symbol">(</a><a id="1458" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1460" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="1462" href="Data.Sum.Base.html#588" class="Generalizable">B</a> <a id="1464" class="Symbol"></a> <a id="1466" href="Data.Sum.Base.html#602" class="Generalizable">C</a> <a id="1468" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="1470" href="Data.Sum.Base.html#588" class="Generalizable">B</a><a id="1471" class="Symbol">)</a>
<a id="1473" href="Data.Sum.Base.html#1440" class="Function">map₁</a> <a id="1478" href="Data.Sum.Base.html#1478" class="Bound">f</a> <a id="1480" class="Symbol">=</a> <a id="1482" href="Data.Sum.Base.html#1362" class="Function">map</a> <a id="1486" href="Data.Sum.Base.html#1478" class="Bound">f</a> <a id="1488" href="Function.Base.html#615" class="Function">id</a>
<a id="map₂"></a><a id="1492" href="Data.Sum.Base.html#1492" class="Function">map₂</a> <a id="1497" class="Symbol">:</a> <a id="1499" class="Symbol">(</a><a id="1500" href="Data.Sum.Base.html#588" class="Generalizable">B</a> <a id="1502" class="Symbol"></a> <a id="1504" href="Data.Sum.Base.html#616" class="Generalizable">D</a><a id="1505" class="Symbol">)</a> <a id="1507" class="Symbol"></a> <a id="1509" class="Symbol">(</a><a id="1510" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1512" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="1514" href="Data.Sum.Base.html#588" class="Generalizable">B</a> <a id="1516" class="Symbol"></a> <a id="1518" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1520" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="1522" href="Data.Sum.Base.html#616" class="Generalizable">D</a><a id="1523" class="Symbol">)</a>
<a id="1525" href="Data.Sum.Base.html#1492" class="Function">map₂</a> <a id="1530" class="Symbol">=</a> <a id="1532" href="Data.Sum.Base.html#1362" class="Function">map</a> <a id="1536" href="Function.Base.html#615" class="Function">id</a>
<a id="assocʳ"></a><a id="1540" href="Data.Sum.Base.html#1540" class="Function">assocʳ</a> <a id="1547" class="Symbol">:</a> <a id="1549" class="Symbol">(</a><a id="1550" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1552" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="1554" href="Data.Sum.Base.html#588" class="Generalizable">B</a><a id="1555" class="Symbol">)</a> <a id="1557" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="1559" href="Data.Sum.Base.html#602" class="Generalizable">C</a> <a id="1561" class="Symbol"></a> <a id="1563" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1565" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="1567" href="Data.Sum.Base.html#588" class="Generalizable">B</a> <a id="1569" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="1571" href="Data.Sum.Base.html#602" class="Generalizable">C</a>
<a id="1573" href="Data.Sum.Base.html#1540" class="Function">assocʳ</a> <a id="1580" class="Symbol">=</a> <a id="1582" href="Data.Sum.Base.html#1089" class="Function Operator">[</a> <a id="1584" href="Data.Sum.Base.html#1492" class="Function">map₂</a> <a id="1589" href="Data.Sum.Base.html#784" class="InductiveConstructor">inj₁</a> <a id="1594" href="Data.Sum.Base.html#1089" class="Function Operator">,</a> <a id="1596" href="Data.Sum.Base.html#809" class="InductiveConstructor">inj₂</a> <a id="1601" href="Function.Base.html#3706" class="Function Operator">∘′</a> <a id="1604" href="Data.Sum.Base.html#809" class="InductiveConstructor">inj₂</a> <a id="1609" href="Data.Sum.Base.html#1089" class="Function Operator">]</a>
<a id="assocˡ"></a><a id="1613" href="Data.Sum.Base.html#1613" class="Function">assocˡ</a> <a id="1620" class="Symbol">:</a> <a id="1622" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1624" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="1626" href="Data.Sum.Base.html#588" class="Generalizable">B</a> <a id="1628" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="1630" href="Data.Sum.Base.html#602" class="Generalizable">C</a> <a id="1632" class="Symbol"></a> <a id="1634" class="Symbol">(</a><a id="1635" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1637" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="1639" href="Data.Sum.Base.html#588" class="Generalizable">B</a><a id="1640" class="Symbol">)</a> <a id="1642" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="1644" href="Data.Sum.Base.html#602" class="Generalizable">C</a>
<a id="1646" href="Data.Sum.Base.html#1613" class="Function">assocˡ</a> <a id="1653" class="Symbol">=</a> <a id="1655" href="Data.Sum.Base.html#1089" class="Function Operator">[</a> <a id="1657" href="Data.Sum.Base.html#784" class="InductiveConstructor">inj₁</a> <a id="1662" href="Function.Base.html#3706" class="Function Operator">∘′</a> <a id="1665" href="Data.Sum.Base.html#784" class="InductiveConstructor">inj₁</a> <a id="1670" href="Data.Sum.Base.html#1089" class="Function Operator">,</a> <a id="1672" href="Data.Sum.Base.html#1440" class="Function">map₁</a> <a id="1677" href="Data.Sum.Base.html#809" class="InductiveConstructor">inj₂</a> <a id="1682" href="Data.Sum.Base.html#1089" class="Function Operator">]</a>
<a id="1686" class="Keyword">infixr</a> <a id="1693" class="Number">1</a> <a id="1695" href="Data.Sum.Base.html#1701" class="Function Operator">_-⊎-_</a>
<a id="_-⊎-_"></a><a id="1701" href="Data.Sum.Base.html#1701" class="Function Operator">_-⊎-_</a> <a id="1707" class="Symbol">:</a> <a id="1709" class="Symbol">(</a><a id="1710" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1712" class="Symbol"></a> <a id="1714" href="Data.Sum.Base.html#588" class="Generalizable">B</a> <a id="1716" class="Symbol"></a> <a id="1718" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1722" href="Data.Sum.Base.html#558" class="Generalizable">c</a><a id="1723" class="Symbol">)</a> <a id="1725" class="Symbol"></a> <a id="1727" class="Symbol">(</a><a id="1728" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1730" class="Symbol"></a> <a id="1732" href="Data.Sum.Base.html#588" class="Generalizable">B</a> <a id="1734" class="Symbol"></a> <a id="1736" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1740" href="Data.Sum.Base.html#560" class="Generalizable">d</a><a id="1741" class="Symbol">)</a> <a id="1743" class="Symbol"></a> <a id="1745" class="Symbol">(</a><a id="1746" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1748" class="Symbol"></a> <a id="1750" href="Data.Sum.Base.html#588" class="Generalizable">B</a> <a id="1752" class="Symbol"></a> <a id="1754" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1758" class="Symbol">(</a><a id="1759" href="Data.Sum.Base.html#558" class="Generalizable">c</a> <a id="1761" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1763" href="Data.Sum.Base.html#560" class="Generalizable">d</a><a id="1764" class="Symbol">))</a>
<a id="1767" href="Data.Sum.Base.html#1767" class="Bound">f</a> <a id="1769" href="Data.Sum.Base.html#1701" class="Function Operator">-⊎-</a> <a id="1773" href="Data.Sum.Base.html#1773" class="Bound">g</a> <a id="1775" class="Symbol">=</a> <a id="1777" href="Data.Sum.Base.html#1767" class="Bound">f</a> <a id="1779" href="Function.Base.html#5115" class="Function Operator">-⟪</a> <a id="1782" href="Data.Sum.Base.html#734" class="Datatype Operator">_⊎_</a> <a id="1786" href="Function.Base.html#5115" class="Function Operator">⟫-</a> <a id="1789" href="Data.Sum.Base.html#1773" class="Bound">g</a>
<a id="1792" class="Comment">-- Conversion back and forth with Dec</a>
<a id="fromDec"></a><a id="1831" href="Data.Sum.Base.html#1831" class="Function">fromDec</a> <a id="1839" class="Symbol">:</a> <a id="1841" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="1845" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1847" class="Symbol"></a> <a id="1849" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1851" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="1853" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="1855" href="Data.Sum.Base.html#574" class="Generalizable">A</a>
<a id="1857" href="Data.Sum.Base.html#1831" class="Function">fromDec</a> <a id="1865" class="Symbol">(</a> <a id="1867" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="1872" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="1881" href="Data.Sum.Base.html#1881" class="Bound">[p]</a><a id="1884" class="Symbol">)</a> <a id="1886" class="Symbol">=</a> <a id="1888" href="Data.Sum.Base.html#784" class="InductiveConstructor">inj₁</a> <a id="1893" class="Symbol">(</a><a id="1894" href="Relation.Nullary.Reflects.html#1031" class="Function">invert</a> <a id="1902" href="Data.Sum.Base.html#1881" class="Bound">[p]</a><a id="1905" class="Symbol">)</a>
<a id="1907" href="Data.Sum.Base.html#1831" class="Function">fromDec</a> <a id="1915" class="Symbol">(</a><a id="1916" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="1922" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="1930" href="Data.Sum.Base.html#1930" class="Bound">[¬p]</a><a id="1934" class="Symbol">)</a> <a id="1936" class="Symbol">=</a> <a id="1938" href="Data.Sum.Base.html#809" class="InductiveConstructor">inj₂</a> <a id="1943" class="Symbol">(</a><a id="1944" href="Relation.Nullary.Reflects.html#1031" class="Function">invert</a> <a id="1951" href="Data.Sum.Base.html#1930" class="Bound">[¬p]</a><a id="1955" class="Symbol">)</a>
<a id="toDec"></a><a id="1958" href="Data.Sum.Base.html#1958" class="Function">toDec</a> <a id="1964" class="Symbol">:</a> <a id="1966" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1968" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="1970" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="1972" href="Data.Sum.Base.html#574" class="Generalizable">A</a> <a id="1974" class="Symbol"></a> <a id="1976" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="1980" href="Data.Sum.Base.html#574" class="Generalizable">A</a>
<a id="1982" href="Data.Sum.Base.html#1958" class="Function">toDec</a> <a id="1988" class="Symbol">(</a><a id="1989" href="Data.Sum.Base.html#784" class="InductiveConstructor">inj₁</a> <a id="1994" href="Data.Sum.Base.html#1994" class="Bound">p</a><a id="1995" class="Symbol">)</a> <a id="1998" class="Symbol">=</a> <a id="2000" href="Relation.Nullary.html#1648" class="InductiveConstructor">yes</a> <a id="2004" href="Data.Sum.Base.html#1994" class="Bound">p</a>
<a id="2006" href="Data.Sum.Base.html#1958" class="Function">toDec</a> <a id="2012" class="Symbol">(</a><a id="2013" href="Data.Sum.Base.html#809" class="InductiveConstructor">inj₂</a> <a id="2018" href="Data.Sum.Base.html#2018" class="Bound">¬p</a><a id="2020" class="Symbol">)</a> <a id="2022" class="Symbol">=</a> <a id="2024" href="Relation.Nullary.html#1685" class="InductiveConstructor">no</a> <a id="2027" href="Data.Sum.Base.html#2018" class="Bound">¬p</a>
</pre></body></html>

82
misc/Data.These.Base.html Normal file
View File

@ -0,0 +1,82 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Data.These.Base</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- An either-or-both data type, basic type and operations</a>
<a id="164" class="Comment">------------------------------------------------------------------------</a>
<a id="238" class="Symbol">{-#</a> <a id="242" class="Keyword">OPTIONS</a> <a id="250" class="Pragma">--without-K</a> <a id="262" class="Pragma">--safe</a> <a id="269" class="Symbol">#-}</a>
<a id="274" class="Keyword">module</a> <a id="281" href="Data.These.Base.html" class="Module">Data.These.Base</a> <a id="297" class="Keyword">where</a>
<a id="304" class="Keyword">open</a> <a id="309" class="Keyword">import</a> <a id="316" href="Level.html" class="Module">Level</a>
<a id="322" class="Keyword">open</a> <a id="327" class="Keyword">import</a> <a id="334" href="Data.Sum.Base.html" class="Module">Data.Sum.Base</a> <a id="348" class="Keyword">using</a> <a id="354" class="Symbol">(</a><a id="355" href="Data.Sum.Base.html#734" class="Datatype Operator">_⊎_</a><a id="358" class="Symbol">;</a> <a id="360" href="Data.Sum.Base.html#1089" class="Function Operator">[_,_]</a><a id="366" class="Symbol">)</a>
<a id="368" class="Keyword">open</a> <a id="373" class="Keyword">import</a> <a id="380" href="Function.Base.html" class="Module">Function.Base</a>
<a id="395" class="Keyword">private</a>
<a id="405" class="Keyword">variable</a>
<a id="418" href="Data.These.Base.html#418" class="Generalizable">a</a> <a id="420" href="Data.These.Base.html#420" class="Generalizable">b</a> <a id="422" href="Data.These.Base.html#422" class="Generalizable">c</a> <a id="424" href="Data.These.Base.html#424" class="Generalizable">d</a> <a id="426" href="Data.These.Base.html#426" class="Generalizable">e</a> <a id="428" href="Data.These.Base.html#428" class="Generalizable">f</a> <a id="430" class="Symbol">:</a> <a id="432" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="442" href="Data.These.Base.html#442" class="Generalizable">A</a> <a id="444" class="Symbol">:</a> <a id="446" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="450" href="Data.These.Base.html#418" class="Generalizable">a</a>
<a id="456" href="Data.These.Base.html#456" class="Generalizable">B</a> <a id="458" class="Symbol">:</a> <a id="460" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="464" href="Data.These.Base.html#420" class="Generalizable">b</a>
<a id="470" href="Data.These.Base.html#470" class="Generalizable">C</a> <a id="472" class="Symbol">:</a> <a id="474" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="478" href="Data.These.Base.html#422" class="Generalizable">c</a>
<a id="484" href="Data.These.Base.html#484" class="Generalizable">D</a> <a id="486" class="Symbol">:</a> <a id="488" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="492" href="Data.These.Base.html#424" class="Generalizable">d</a>
<a id="498" href="Data.These.Base.html#498" class="Generalizable">E</a> <a id="500" class="Symbol">:</a> <a id="502" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="506" href="Data.These.Base.html#426" class="Generalizable">e</a>
<a id="512" href="Data.These.Base.html#512" class="Generalizable">F</a> <a id="514" class="Symbol">:</a> <a id="516" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="520" href="Data.These.Base.html#428" class="Generalizable">f</a>
<a id="523" class="Keyword">data</a> <a id="These"></a><a id="528" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="534" class="Symbol">{</a><a id="535" href="Data.These.Base.html#535" class="Bound">a</a> <a id="537" href="Data.These.Base.html#537" class="Bound">b</a><a id="538" class="Symbol">}</a> <a id="540" class="Symbol">(</a><a id="541" href="Data.These.Base.html#541" class="Bound">A</a> <a id="543" class="Symbol">:</a> <a id="545" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="549" href="Data.These.Base.html#535" class="Bound">a</a><a id="550" class="Symbol">)</a> <a id="552" class="Symbol">(</a><a id="553" href="Data.These.Base.html#553" class="Bound">B</a> <a id="555" class="Symbol">:</a> <a id="557" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="561" href="Data.These.Base.html#537" class="Bound">b</a><a id="562" class="Symbol">)</a> <a id="564" class="Symbol">:</a> <a id="566" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="570" class="Symbol">(</a><a id="571" href="Data.These.Base.html#535" class="Bound">a</a> <a id="573" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="575" href="Data.These.Base.html#537" class="Bound">b</a><a id="576" class="Symbol">)</a> <a id="578" class="Keyword">where</a>
<a id="These.this"></a><a id="586" href="Data.These.Base.html#586" class="InductiveConstructor">this</a> <a id="592" class="Symbol">:</a> <a id="594" href="Data.These.Base.html#541" class="Bound">A</a> <a id="600" class="Symbol"></a> <a id="602" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="608" href="Data.These.Base.html#541" class="Bound">A</a> <a id="610" href="Data.These.Base.html#553" class="Bound">B</a>
<a id="These.that"></a><a id="614" href="Data.These.Base.html#614" class="InductiveConstructor">that</a> <a id="620" class="Symbol">:</a> <a id="626" href="Data.These.Base.html#553" class="Bound">B</a> <a id="628" class="Symbol"></a> <a id="630" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="636" href="Data.These.Base.html#541" class="Bound">A</a> <a id="638" href="Data.These.Base.html#553" class="Bound">B</a>
<a id="These.these"></a><a id="642" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="648" class="Symbol">:</a> <a id="650" href="Data.These.Base.html#541" class="Bound">A</a> <a id="652" class="Symbol"></a> <a id="654" href="Data.These.Base.html#553" class="Bound">B</a> <a id="656" class="Symbol"></a> <a id="658" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="664" href="Data.These.Base.html#541" class="Bound">A</a> <a id="666" href="Data.These.Base.html#553" class="Bound">B</a>
<a id="669" class="Comment">------------------------------------------------------------------------</a>
<a id="742" class="Comment">-- Operations</a>
<a id="757" class="Comment">-- injection</a>
<a id="fromSum"></a><a id="771" href="Data.These.Base.html#771" class="Function">fromSum</a> <a id="779" class="Symbol">:</a> <a id="781" href="Data.These.Base.html#442" class="Generalizable">A</a> <a id="783" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="785" href="Data.These.Base.html#456" class="Generalizable">B</a> <a id="787" class="Symbol"></a> <a id="789" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="795" href="Data.These.Base.html#442" class="Generalizable">A</a> <a id="797" href="Data.These.Base.html#456" class="Generalizable">B</a>
<a id="799" href="Data.These.Base.html#771" class="Function">fromSum</a> <a id="807" class="Symbol">=</a> <a id="809" href="Data.Sum.Base.html#1089" class="Function Operator">[</a> <a id="811" href="Data.These.Base.html#586" class="InductiveConstructor">this</a> <a id="816" href="Data.Sum.Base.html#1089" class="Function Operator">,</a> <a id="818" href="Data.These.Base.html#614" class="InductiveConstructor">that</a> <a id="823" href="Data.Sum.Base.html#1089" class="Function Operator">]</a>
<a id="827" class="Comment">-- map</a>
<a id="map"></a><a id="835" href="Data.These.Base.html#835" class="Function">map</a> <a id="839" class="Symbol">:</a> <a id="841" class="Symbol">(</a><a id="842" href="Data.These.Base.html#842" class="Bound">f</a> <a id="844" class="Symbol">:</a> <a id="846" href="Data.These.Base.html#442" class="Generalizable">A</a> <a id="848" class="Symbol"></a> <a id="850" href="Data.These.Base.html#456" class="Generalizable">B</a><a id="851" class="Symbol">)</a> <a id="853" class="Symbol">(</a><a id="854" href="Data.These.Base.html#854" class="Bound">g</a> <a id="856" class="Symbol">:</a> <a id="858" href="Data.These.Base.html#470" class="Generalizable">C</a> <a id="860" class="Symbol"></a> <a id="862" href="Data.These.Base.html#484" class="Generalizable">D</a><a id="863" class="Symbol">)</a> <a id="865" class="Symbol"></a> <a id="867" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="873" href="Data.These.Base.html#442" class="Generalizable">A</a> <a id="875" href="Data.These.Base.html#470" class="Generalizable">C</a> <a id="877" class="Symbol"></a> <a id="879" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="885" href="Data.These.Base.html#456" class="Generalizable">B</a> <a id="887" href="Data.These.Base.html#484" class="Generalizable">D</a>
<a id="889" href="Data.These.Base.html#835" class="Function">map</a> <a id="893" href="Data.These.Base.html#893" class="Bound">f</a> <a id="895" href="Data.These.Base.html#895" class="Bound">g</a> <a id="897" class="Symbol">(</a><a id="898" href="Data.These.Base.html#586" class="InductiveConstructor">this</a> <a id="903" href="Data.These.Base.html#903" class="Bound">a</a><a id="904" class="Symbol">)</a> <a id="909" class="Symbol">=</a> <a id="911" href="Data.These.Base.html#586" class="InductiveConstructor">this</a> <a id="916" class="Symbol">(</a><a id="917" href="Data.These.Base.html#893" class="Bound">f</a> <a id="919" href="Data.These.Base.html#903" class="Bound">a</a><a id="920" class="Symbol">)</a>
<a id="922" href="Data.These.Base.html#835" class="Function">map</a> <a id="926" href="Data.These.Base.html#926" class="Bound">f</a> <a id="928" href="Data.These.Base.html#928" class="Bound">g</a> <a id="930" class="Symbol">(</a><a id="931" href="Data.These.Base.html#614" class="InductiveConstructor">that</a> <a id="936" href="Data.These.Base.html#936" class="Bound">b</a><a id="937" class="Symbol">)</a> <a id="942" class="Symbol">=</a> <a id="944" href="Data.These.Base.html#614" class="InductiveConstructor">that</a> <a id="949" class="Symbol">(</a><a id="950" href="Data.These.Base.html#928" class="Bound">g</a> <a id="952" href="Data.These.Base.html#936" class="Bound">b</a><a id="953" class="Symbol">)</a>
<a id="955" href="Data.These.Base.html#835" class="Function">map</a> <a id="959" href="Data.These.Base.html#959" class="Bound">f</a> <a id="961" href="Data.These.Base.html#961" class="Bound">g</a> <a id="963" class="Symbol">(</a><a id="964" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="970" href="Data.These.Base.html#970" class="Bound">a</a> <a id="972" href="Data.These.Base.html#972" class="Bound">b</a><a id="973" class="Symbol">)</a> <a id="975" class="Symbol">=</a> <a id="977" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="983" class="Symbol">(</a><a id="984" href="Data.These.Base.html#959" class="Bound">f</a> <a id="986" href="Data.These.Base.html#970" class="Bound">a</a><a id="987" class="Symbol">)</a> <a id="989" class="Symbol">(</a><a id="990" href="Data.These.Base.html#961" class="Bound">g</a> <a id="992" href="Data.These.Base.html#972" class="Bound">b</a><a id="993" class="Symbol">)</a>
<a id="map₁"></a><a id="996" href="Data.These.Base.html#996" class="Function">map₁</a> <a id="1001" class="Symbol">:</a> <a id="1003" class="Symbol">(</a><a id="1004" href="Data.These.Base.html#1004" class="Bound">f</a> <a id="1006" class="Symbol">:</a> <a id="1008" href="Data.These.Base.html#442" class="Generalizable">A</a> <a id="1010" class="Symbol"></a> <a id="1012" href="Data.These.Base.html#456" class="Generalizable">B</a><a id="1013" class="Symbol">)</a> <a id="1015" class="Symbol"></a> <a id="1017" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="1023" href="Data.These.Base.html#442" class="Generalizable">A</a> <a id="1025" href="Data.These.Base.html#470" class="Generalizable">C</a> <a id="1027" class="Symbol"></a> <a id="1029" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="1035" href="Data.These.Base.html#456" class="Generalizable">B</a> <a id="1037" href="Data.These.Base.html#470" class="Generalizable">C</a>
<a id="1039" href="Data.These.Base.html#996" class="Function">map₁</a> <a id="1044" href="Data.These.Base.html#1044" class="Bound">f</a> <a id="1046" class="Symbol">=</a> <a id="1048" href="Data.These.Base.html#835" class="Function">map</a> <a id="1052" href="Data.These.Base.html#1044" class="Bound">f</a> <a id="1054" href="Function.Base.html#615" class="Function">id</a>
<a id="map₂"></a><a id="1058" href="Data.These.Base.html#1058" class="Function">map₂</a> <a id="1063" class="Symbol">:</a> <a id="1065" class="Symbol">(</a><a id="1066" href="Data.These.Base.html#1066" class="Bound">g</a> <a id="1068" class="Symbol">:</a> <a id="1070" href="Data.These.Base.html#456" class="Generalizable">B</a> <a id="1072" class="Symbol"></a> <a id="1074" href="Data.These.Base.html#470" class="Generalizable">C</a><a id="1075" class="Symbol">)</a> <a id="1077" class="Symbol"></a> <a id="1079" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="1085" href="Data.These.Base.html#442" class="Generalizable">A</a> <a id="1087" href="Data.These.Base.html#456" class="Generalizable">B</a> <a id="1089" class="Symbol"></a> <a id="1091" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="1097" href="Data.These.Base.html#442" class="Generalizable">A</a> <a id="1099" href="Data.These.Base.html#470" class="Generalizable">C</a>
<a id="1101" href="Data.These.Base.html#1058" class="Function">map₂</a> <a id="1106" class="Symbol">=</a> <a id="1108" href="Data.These.Base.html#835" class="Function">map</a> <a id="1112" href="Function.Base.html#615" class="Function">id</a>
<a id="1116" class="Comment">-- fold</a>
<a id="fold"></a><a id="1125" href="Data.These.Base.html#1125" class="Function">fold</a> <a id="1130" class="Symbol">:</a> <a id="1132" class="Symbol">(</a><a id="1133" href="Data.These.Base.html#442" class="Generalizable">A</a> <a id="1135" class="Symbol"></a> <a id="1137" href="Data.These.Base.html#470" class="Generalizable">C</a><a id="1138" class="Symbol">)</a> <a id="1140" class="Symbol"></a> <a id="1142" class="Symbol">(</a><a id="1143" href="Data.These.Base.html#456" class="Generalizable">B</a> <a id="1145" class="Symbol"></a> <a id="1147" href="Data.These.Base.html#470" class="Generalizable">C</a><a id="1148" class="Symbol">)</a> <a id="1150" class="Symbol"></a> <a id="1152" class="Symbol">(</a><a id="1153" href="Data.These.Base.html#442" class="Generalizable">A</a> <a id="1155" class="Symbol"></a> <a id="1157" href="Data.These.Base.html#456" class="Generalizable">B</a> <a id="1159" class="Symbol"></a> <a id="1161" href="Data.These.Base.html#470" class="Generalizable">C</a><a id="1162" class="Symbol">)</a> <a id="1164" class="Symbol"></a> <a id="1166" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="1172" href="Data.These.Base.html#442" class="Generalizable">A</a> <a id="1174" href="Data.These.Base.html#456" class="Generalizable">B</a> <a id="1176" class="Symbol"></a> <a id="1178" href="Data.These.Base.html#470" class="Generalizable">C</a>
<a id="1180" href="Data.These.Base.html#1125" class="Function">fold</a> <a id="1185" href="Data.These.Base.html#1185" class="Bound">l</a> <a id="1187" href="Data.These.Base.html#1187" class="Bound">r</a> <a id="1189" href="Data.These.Base.html#1189" class="Bound">lr</a> <a id="1192" class="Symbol">(</a><a id="1193" href="Data.These.Base.html#586" class="InductiveConstructor">this</a> <a id="1198" href="Data.These.Base.html#1198" class="Bound">a</a><a id="1199" class="Symbol">)</a> <a id="1204" class="Symbol">=</a> <a id="1206" href="Data.These.Base.html#1185" class="Bound">l</a> <a id="1208" href="Data.These.Base.html#1198" class="Bound">a</a>
<a id="1210" href="Data.These.Base.html#1125" class="Function">fold</a> <a id="1215" href="Data.These.Base.html#1215" class="Bound">l</a> <a id="1217" href="Data.These.Base.html#1217" class="Bound">r</a> <a id="1219" href="Data.These.Base.html#1219" class="Bound">lr</a> <a id="1222" class="Symbol">(</a><a id="1223" href="Data.These.Base.html#614" class="InductiveConstructor">that</a> <a id="1228" href="Data.These.Base.html#1228" class="Bound">b</a><a id="1229" class="Symbol">)</a> <a id="1234" class="Symbol">=</a> <a id="1236" href="Data.These.Base.html#1217" class="Bound">r</a> <a id="1238" href="Data.These.Base.html#1228" class="Bound">b</a>
<a id="1240" href="Data.These.Base.html#1125" class="Function">fold</a> <a id="1245" href="Data.These.Base.html#1245" class="Bound">l</a> <a id="1247" href="Data.These.Base.html#1247" class="Bound">r</a> <a id="1249" href="Data.These.Base.html#1249" class="Bound">lr</a> <a id="1252" class="Symbol">(</a><a id="1253" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="1259" href="Data.These.Base.html#1259" class="Bound">a</a> <a id="1261" href="Data.These.Base.html#1261" class="Bound">b</a><a id="1262" class="Symbol">)</a> <a id="1264" class="Symbol">=</a> <a id="1266" href="Data.These.Base.html#1249" class="Bound">lr</a> <a id="1269" href="Data.These.Base.html#1259" class="Bound">a</a> <a id="1271" href="Data.These.Base.html#1261" class="Bound">b</a>
<a id="foldWithDefaults"></a><a id="1274" href="Data.These.Base.html#1274" class="Function">foldWithDefaults</a> <a id="1291" class="Symbol">:</a> <a id="1293" href="Data.These.Base.html#442" class="Generalizable">A</a> <a id="1295" class="Symbol"></a> <a id="1297" href="Data.These.Base.html#456" class="Generalizable">B</a> <a id="1299" class="Symbol"></a> <a id="1301" class="Symbol">(</a><a id="1302" href="Data.These.Base.html#442" class="Generalizable">A</a> <a id="1304" class="Symbol"></a> <a id="1306" href="Data.These.Base.html#456" class="Generalizable">B</a> <a id="1308" class="Symbol"></a> <a id="1310" href="Data.These.Base.html#470" class="Generalizable">C</a><a id="1311" class="Symbol">)</a> <a id="1313" class="Symbol"></a> <a id="1315" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="1321" href="Data.These.Base.html#442" class="Generalizable">A</a> <a id="1323" href="Data.These.Base.html#456" class="Generalizable">B</a> <a id="1325" class="Symbol"></a> <a id="1327" href="Data.These.Base.html#470" class="Generalizable">C</a>
<a id="1329" href="Data.These.Base.html#1274" class="Function">foldWithDefaults</a> <a id="1346" href="Data.These.Base.html#1346" class="Bound">a</a> <a id="1348" href="Data.These.Base.html#1348" class="Bound">b</a> <a id="1350" href="Data.These.Base.html#1350" class="Bound">lr</a> <a id="1353" class="Symbol">=</a> <a id="1355" href="Data.These.Base.html#1125" class="Function">fold</a> <a id="1360" class="Symbol">(</a><a id="1361" href="Function.Base.html#1554" class="Function">flip</a> <a id="1366" href="Data.These.Base.html#1350" class="Bound">lr</a> <a id="1369" href="Data.These.Base.html#1348" class="Bound">b</a><a id="1370" class="Symbol">)</a> <a id="1372" class="Symbol">(</a><a id="1373" href="Data.These.Base.html#1350" class="Bound">lr</a> <a id="1376" href="Data.These.Base.html#1346" class="Bound">a</a><a id="1377" class="Symbol">)</a> <a id="1379" href="Data.These.Base.html#1350" class="Bound">lr</a>
<a id="1383" class="Comment">-- swap</a>
<a id="swap"></a><a id="1392" href="Data.These.Base.html#1392" class="Function">swap</a> <a id="1397" class="Symbol">:</a> <a id="1399" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="1405" href="Data.These.Base.html#442" class="Generalizable">A</a> <a id="1407" href="Data.These.Base.html#456" class="Generalizable">B</a> <a id="1409" class="Symbol"></a> <a id="1411" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="1417" href="Data.These.Base.html#456" class="Generalizable">B</a> <a id="1419" href="Data.These.Base.html#442" class="Generalizable">A</a>
<a id="1421" href="Data.These.Base.html#1392" class="Function">swap</a> <a id="1426" class="Symbol">=</a> <a id="1428" href="Data.These.Base.html#1125" class="Function">fold</a> <a id="1433" href="Data.These.Base.html#614" class="InductiveConstructor">that</a> <a id="1438" href="Data.These.Base.html#586" class="InductiveConstructor">this</a> <a id="1443" class="Symbol">(</a><a id="1444" href="Function.Base.html#1554" class="Function">flip</a> <a id="1449" href="Data.These.Base.html#642" class="InductiveConstructor">these</a><a id="1454" class="Symbol">)</a>
<a id="1457" class="Comment">-- align</a>
<a id="alignWith"></a><a id="1467" href="Data.These.Base.html#1467" class="Function">alignWith</a> <a id="1477" class="Symbol">:</a> <a id="1479" class="Symbol">(</a><a id="1480" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="1486" href="Data.These.Base.html#442" class="Generalizable">A</a> <a id="1488" href="Data.These.Base.html#470" class="Generalizable">C</a> <a id="1490" class="Symbol"></a> <a id="1492" href="Data.These.Base.html#498" class="Generalizable">E</a><a id="1493" class="Symbol">)</a> <a id="1495" class="Symbol"></a> <a id="1497" class="Symbol">(</a><a id="1498" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="1504" href="Data.These.Base.html#456" class="Generalizable">B</a> <a id="1506" href="Data.These.Base.html#484" class="Generalizable">D</a> <a id="1508" class="Symbol"></a> <a id="1510" href="Data.These.Base.html#512" class="Generalizable">F</a><a id="1511" class="Symbol">)</a> <a id="1513" class="Symbol"></a> <a id="1515" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="1521" href="Data.These.Base.html#442" class="Generalizable">A</a> <a id="1523" href="Data.These.Base.html#456" class="Generalizable">B</a> <a id="1525" class="Symbol"></a> <a id="1527" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="1533" href="Data.These.Base.html#470" class="Generalizable">C</a> <a id="1535" href="Data.These.Base.html#484" class="Generalizable">D</a> <a id="1537" class="Symbol"></a> <a id="1539" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="1545" href="Data.These.Base.html#498" class="Generalizable">E</a> <a id="1547" href="Data.These.Base.html#512" class="Generalizable">F</a>
<a id="1549" href="Data.These.Base.html#1467" class="Function">alignWith</a> <a id="1559" href="Data.These.Base.html#1559" class="Bound">f</a> <a id="1561" href="Data.These.Base.html#1561" class="Bound">g</a> <a id="1563" class="Symbol">(</a><a id="1564" href="Data.These.Base.html#586" class="InductiveConstructor">this</a> <a id="1569" href="Data.These.Base.html#1569" class="Bound">a</a><a id="1570" class="Symbol">)</a> <a id="1575" class="Symbol">(</a><a id="1576" href="Data.These.Base.html#586" class="InductiveConstructor">this</a> <a id="1581" href="Data.These.Base.html#1581" class="Bound">c</a><a id="1582" class="Symbol">)</a> <a id="1587" class="Symbol">=</a> <a id="1589" href="Data.These.Base.html#586" class="InductiveConstructor">this</a> <a id="1594" class="Symbol">(</a><a id="1595" href="Data.These.Base.html#1559" class="Bound">f</a> <a id="1597" class="Symbol">(</a><a id="1598" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="1604" href="Data.These.Base.html#1569" class="Bound">a</a> <a id="1606" href="Data.These.Base.html#1581" class="Bound">c</a><a id="1607" class="Symbol">))</a>
<a id="1610" href="Data.These.Base.html#1467" class="Function">alignWith</a> <a id="1620" href="Data.These.Base.html#1620" class="Bound">f</a> <a id="1622" href="Data.These.Base.html#1622" class="Bound">g</a> <a id="1624" class="Symbol">(</a><a id="1625" href="Data.These.Base.html#586" class="InductiveConstructor">this</a> <a id="1630" href="Data.These.Base.html#1630" class="Bound">a</a><a id="1631" class="Symbol">)</a> <a id="1636" class="Symbol">(</a><a id="1637" href="Data.These.Base.html#614" class="InductiveConstructor">that</a> <a id="1642" href="Data.These.Base.html#1642" class="Bound">d</a><a id="1643" class="Symbol">)</a> <a id="1648" class="Symbol">=</a> <a id="1650" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="1656" class="Symbol">(</a><a id="1657" href="Data.These.Base.html#1620" class="Bound">f</a> <a id="1659" class="Symbol">(</a><a id="1660" href="Data.These.Base.html#586" class="InductiveConstructor">this</a> <a id="1665" href="Data.These.Base.html#1630" class="Bound">a</a><a id="1666" class="Symbol">))</a> <a id="1669" class="Symbol">(</a><a id="1670" href="Data.These.Base.html#1622" class="Bound">g</a> <a id="1672" class="Symbol">(</a><a id="1673" href="Data.These.Base.html#614" class="InductiveConstructor">that</a> <a id="1678" href="Data.These.Base.html#1642" class="Bound">d</a><a id="1679" class="Symbol">))</a>
<a id="1682" href="Data.These.Base.html#1467" class="Function">alignWith</a> <a id="1692" href="Data.These.Base.html#1692" class="Bound">f</a> <a id="1694" href="Data.These.Base.html#1694" class="Bound">g</a> <a id="1696" class="Symbol">(</a><a id="1697" href="Data.These.Base.html#586" class="InductiveConstructor">this</a> <a id="1702" href="Data.These.Base.html#1702" class="Bound">a</a><a id="1703" class="Symbol">)</a> <a id="1708" class="Symbol">(</a><a id="1709" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="1715" href="Data.These.Base.html#1715" class="Bound">c</a> <a id="1717" href="Data.These.Base.html#1717" class="Bound">d</a><a id="1718" class="Symbol">)</a> <a id="1720" class="Symbol">=</a> <a id="1722" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="1728" class="Symbol">(</a><a id="1729" href="Data.These.Base.html#1692" class="Bound">f</a> <a id="1731" class="Symbol">(</a><a id="1732" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="1738" href="Data.These.Base.html#1702" class="Bound">a</a> <a id="1740" href="Data.These.Base.html#1715" class="Bound">c</a><a id="1741" class="Symbol">))</a> <a id="1744" class="Symbol">(</a><a id="1745" href="Data.These.Base.html#1694" class="Bound">g</a> <a id="1747" class="Symbol">(</a><a id="1748" href="Data.These.Base.html#614" class="InductiveConstructor">that</a> <a id="1753" href="Data.These.Base.html#1717" class="Bound">d</a><a id="1754" class="Symbol">))</a>
<a id="1757" href="Data.These.Base.html#1467" class="Function">alignWith</a> <a id="1767" href="Data.These.Base.html#1767" class="Bound">f</a> <a id="1769" href="Data.These.Base.html#1769" class="Bound">g</a> <a id="1771" class="Symbol">(</a><a id="1772" href="Data.These.Base.html#614" class="InductiveConstructor">that</a> <a id="1777" href="Data.These.Base.html#1777" class="Bound">b</a><a id="1778" class="Symbol">)</a> <a id="1783" class="Symbol">(</a><a id="1784" href="Data.These.Base.html#586" class="InductiveConstructor">this</a> <a id="1789" href="Data.These.Base.html#1789" class="Bound">c</a><a id="1790" class="Symbol">)</a> <a id="1795" class="Symbol">=</a> <a id="1797" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="1803" class="Symbol">(</a><a id="1804" href="Data.These.Base.html#1767" class="Bound">f</a> <a id="1806" class="Symbol">(</a><a id="1807" href="Data.These.Base.html#614" class="InductiveConstructor">that</a> <a id="1812" href="Data.These.Base.html#1789" class="Bound">c</a><a id="1813" class="Symbol">))</a> <a id="1816" class="Symbol">(</a><a id="1817" href="Data.These.Base.html#1769" class="Bound">g</a> <a id="1819" class="Symbol">(</a><a id="1820" href="Data.These.Base.html#586" class="InductiveConstructor">this</a> <a id="1825" href="Data.These.Base.html#1777" class="Bound">b</a><a id="1826" class="Symbol">))</a>
<a id="1829" href="Data.These.Base.html#1467" class="Function">alignWith</a> <a id="1839" href="Data.These.Base.html#1839" class="Bound">f</a> <a id="1841" href="Data.These.Base.html#1841" class="Bound">g</a> <a id="1843" class="Symbol">(</a><a id="1844" href="Data.These.Base.html#614" class="InductiveConstructor">that</a> <a id="1849" href="Data.These.Base.html#1849" class="Bound">b</a><a id="1850" class="Symbol">)</a> <a id="1855" class="Symbol">(</a><a id="1856" href="Data.These.Base.html#614" class="InductiveConstructor">that</a> <a id="1861" href="Data.These.Base.html#1861" class="Bound">d</a><a id="1862" class="Symbol">)</a> <a id="1867" class="Symbol">=</a> <a id="1869" href="Data.These.Base.html#614" class="InductiveConstructor">that</a> <a id="1874" class="Symbol">(</a><a id="1875" href="Data.These.Base.html#1841" class="Bound">g</a> <a id="1877" class="Symbol">(</a><a id="1878" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="1884" href="Data.These.Base.html#1849" class="Bound">b</a> <a id="1886" href="Data.These.Base.html#1861" class="Bound">d</a><a id="1887" class="Symbol">))</a>
<a id="1890" href="Data.These.Base.html#1467" class="Function">alignWith</a> <a id="1900" href="Data.These.Base.html#1900" class="Bound">f</a> <a id="1902" href="Data.These.Base.html#1902" class="Bound">g</a> <a id="1904" class="Symbol">(</a><a id="1905" href="Data.These.Base.html#614" class="InductiveConstructor">that</a> <a id="1910" href="Data.These.Base.html#1910" class="Bound">b</a><a id="1911" class="Symbol">)</a> <a id="1916" class="Symbol">(</a><a id="1917" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="1923" href="Data.These.Base.html#1923" class="Bound">c</a> <a id="1925" href="Data.These.Base.html#1925" class="Bound">d</a><a id="1926" class="Symbol">)</a> <a id="1928" class="Symbol">=</a> <a id="1930" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="1936" class="Symbol">(</a><a id="1937" href="Data.These.Base.html#1900" class="Bound">f</a> <a id="1939" class="Symbol">(</a><a id="1940" href="Data.These.Base.html#614" class="InductiveConstructor">that</a> <a id="1945" href="Data.These.Base.html#1923" class="Bound">c</a><a id="1946" class="Symbol">))</a> <a id="1949" class="Symbol">(</a><a id="1950" href="Data.These.Base.html#1902" class="Bound">g</a> <a id="1952" class="Symbol">(</a><a id="1953" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="1959" href="Data.These.Base.html#1910" class="Bound">b</a> <a id="1961" href="Data.These.Base.html#1925" class="Bound">d</a><a id="1962" class="Symbol">))</a>
<a id="1965" href="Data.These.Base.html#1467" class="Function">alignWith</a> <a id="1975" href="Data.These.Base.html#1975" class="Bound">f</a> <a id="1977" href="Data.These.Base.html#1977" class="Bound">g</a> <a id="1979" class="Symbol">(</a><a id="1980" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="1986" href="Data.These.Base.html#1986" class="Bound">a</a> <a id="1988" href="Data.These.Base.html#1988" class="Bound">b</a><a id="1989" class="Symbol">)</a> <a id="1991" class="Symbol">(</a><a id="1992" href="Data.These.Base.html#586" class="InductiveConstructor">this</a> <a id="1997" href="Data.These.Base.html#1997" class="Bound">c</a><a id="1998" class="Symbol">)</a> <a id="2003" class="Symbol">=</a> <a id="2005" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="2011" class="Symbol">(</a><a id="2012" href="Data.These.Base.html#1975" class="Bound">f</a> <a id="2014" class="Symbol">(</a><a id="2015" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="2021" href="Data.These.Base.html#1986" class="Bound">a</a> <a id="2023" href="Data.These.Base.html#1997" class="Bound">c</a><a id="2024" class="Symbol">))</a> <a id="2027" class="Symbol">(</a><a id="2028" href="Data.These.Base.html#1977" class="Bound">g</a> <a id="2030" class="Symbol">(</a><a id="2031" href="Data.These.Base.html#586" class="InductiveConstructor">this</a> <a id="2036" href="Data.These.Base.html#1988" class="Bound">b</a><a id="2037" class="Symbol">))</a>
<a id="2040" href="Data.These.Base.html#1467" class="Function">alignWith</a> <a id="2050" href="Data.These.Base.html#2050" class="Bound">f</a> <a id="2052" href="Data.These.Base.html#2052" class="Bound">g</a> <a id="2054" class="Symbol">(</a><a id="2055" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="2061" href="Data.These.Base.html#2061" class="Bound">a</a> <a id="2063" href="Data.These.Base.html#2063" class="Bound">b</a><a id="2064" class="Symbol">)</a> <a id="2066" class="Symbol">(</a><a id="2067" href="Data.These.Base.html#614" class="InductiveConstructor">that</a> <a id="2072" href="Data.These.Base.html#2072" class="Bound">d</a><a id="2073" class="Symbol">)</a> <a id="2078" class="Symbol">=</a> <a id="2080" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="2086" class="Symbol">(</a><a id="2087" href="Data.These.Base.html#2050" class="Bound">f</a> <a id="2089" class="Symbol">(</a><a id="2090" href="Data.These.Base.html#586" class="InductiveConstructor">this</a> <a id="2095" href="Data.These.Base.html#2061" class="Bound">a</a><a id="2096" class="Symbol">))</a> <a id="2099" class="Symbol">(</a><a id="2100" href="Data.These.Base.html#2052" class="Bound">g</a> <a id="2102" class="Symbol">(</a><a id="2103" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="2109" href="Data.These.Base.html#2063" class="Bound">b</a> <a id="2111" href="Data.These.Base.html#2072" class="Bound">d</a><a id="2112" class="Symbol">))</a>
<a id="2115" href="Data.These.Base.html#1467" class="Function">alignWith</a> <a id="2125" href="Data.These.Base.html#2125" class="Bound">f</a> <a id="2127" href="Data.These.Base.html#2127" class="Bound">g</a> <a id="2129" class="Symbol">(</a><a id="2130" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="2136" href="Data.These.Base.html#2136" class="Bound">a</a> <a id="2138" href="Data.These.Base.html#2138" class="Bound">b</a><a id="2139" class="Symbol">)</a> <a id="2141" class="Symbol">(</a><a id="2142" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="2148" href="Data.These.Base.html#2148" class="Bound">c</a> <a id="2150" href="Data.These.Base.html#2150" class="Bound">d</a><a id="2151" class="Symbol">)</a> <a id="2153" class="Symbol">=</a> <a id="2155" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="2161" class="Symbol">(</a><a id="2162" href="Data.These.Base.html#2125" class="Bound">f</a> <a id="2164" class="Symbol">(</a><a id="2165" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="2171" href="Data.These.Base.html#2136" class="Bound">a</a> <a id="2173" href="Data.These.Base.html#2148" class="Bound">c</a><a id="2174" class="Symbol">))</a> <a id="2177" class="Symbol">(</a><a id="2178" href="Data.These.Base.html#2127" class="Bound">g</a> <a id="2180" class="Symbol">(</a><a id="2181" href="Data.These.Base.html#642" class="InductiveConstructor">these</a> <a id="2187" href="Data.These.Base.html#2138" class="Bound">b</a> <a id="2189" href="Data.These.Base.html#2150" class="Bound">d</a><a id="2190" class="Symbol">))</a>
<a id="align"></a><a id="2194" href="Data.These.Base.html#2194" class="Function">align</a> <a id="2200" class="Symbol">:</a> <a id="2202" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="2208" href="Data.These.Base.html#442" class="Generalizable">A</a> <a id="2210" href="Data.These.Base.html#456" class="Generalizable">B</a> <a id="2212" class="Symbol"></a> <a id="2214" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="2220" href="Data.These.Base.html#470" class="Generalizable">C</a> <a id="2222" href="Data.These.Base.html#484" class="Generalizable">D</a> <a id="2224" class="Symbol"></a> <a id="2226" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="2232" class="Symbol">(</a><a id="2233" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="2239" href="Data.These.Base.html#442" class="Generalizable">A</a> <a id="2241" href="Data.These.Base.html#470" class="Generalizable">C</a><a id="2242" class="Symbol">)</a> <a id="2244" class="Symbol">(</a><a id="2245" href="Data.These.Base.html#528" class="Datatype">These</a> <a id="2251" href="Data.These.Base.html#456" class="Generalizable">B</a> <a id="2253" href="Data.These.Base.html#484" class="Generalizable">D</a><a id="2254" class="Symbol">)</a>
<a id="2256" href="Data.These.Base.html#2194" class="Function">align</a> <a id="2262" class="Symbol">=</a> <a id="2264" href="Data.These.Base.html#1467" class="Function">alignWith</a> <a id="2274" href="Function.Base.html#615" class="Function">id</a> <a id="2277" href="Function.Base.html#615" class="Function">id</a>
</pre></body></html>

39
misc/Data.Unit.Base.html Normal file
View File

@ -0,0 +1,39 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Data.Unit.Base</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- The unit type and the total relation on unit</a>
<a id="154" class="Comment">------------------------------------------------------------------------</a>
<a id="228" class="Symbol">{-#</a> <a id="232" class="Keyword">OPTIONS</a> <a id="240" class="Pragma">--without-K</a> <a id="252" class="Pragma">--safe</a> <a id="259" class="Symbol">#-}</a>
<a id="264" class="Keyword">open</a> <a id="269" class="Keyword">import</a> <a id="276" href="Agda.Builtin.Equality.html" class="Module">Agda.Builtin.Equality</a> <a id="298" class="Keyword">using</a> <a id="304" class="Symbol">(</a><a id="305" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a><a id="308" class="Symbol">)</a>
<a id="311" class="Keyword">module</a> <a id="318" href="Data.Unit.Base.html" class="Module">Data.Unit.Base</a> <a id="333" class="Keyword">where</a>
<a id="340" class="Comment">------------------------------------------------------------------------</a>
<a id="413" class="Comment">-- A unit type defined as a record type</a>
<a id="454" class="Comment">-- Note that by default the unit type is not universe polymorphic as it</a>
<a id="526" class="Comment">-- often results in unsolved metas. See `Data.Unit.Polymorphic` for a</a>
<a id="596" class="Comment">-- universe polymorphic variant.</a>
<a id="630" class="Comment">-- Note also that the name of this type is &quot;\top&quot;, not T.</a>
<a id="689" class="Keyword">open</a> <a id="694" class="Keyword">import</a> <a id="701" href="Agda.Builtin.Unit.html" class="Module">Agda.Builtin.Unit</a> <a id="719" class="Keyword">public</a>
<a id="728" class="Keyword">using</a> <a id="734" class="Symbol">(</a><a id="735" href="Agda.Builtin.Unit.html#164" class="Record"></a><a id="736" class="Symbol">;</a> <a id="738" href="Agda.Builtin.Unit.html#201" class="InductiveConstructor">tt</a><a id="740" class="Symbol">)</a>
<a id="743" class="Comment">------------------------------------------------------------------------</a>
<a id="816" class="Comment">-- DEPRECATED NAMES</a>
<a id="836" class="Comment">------------------------------------------------------------------------</a>
<a id="909" class="Comment">-- Please use the new names as continuing support for the old names is</a>
<a id="980" class="Comment">-- not guaranteed.</a>
<a id="1000" class="Comment">-- Version 1.2</a>
<a id="1016" class="Keyword">record</a> <a id="_≤_"></a><a id="1023" href="Data.Unit.Base.html#1023" class="Record Operator">_≤_</a> <a id="1027" class="Symbol">(</a><a id="1028" href="Data.Unit.Base.html#1028" class="Bound">x</a> <a id="1030" href="Data.Unit.Base.html#1030" class="Bound">y</a> <a id="1032" class="Symbol">:</a> <a id="1034" href="Agda.Builtin.Unit.html#164" class="Record"></a><a id="1035" class="Symbol">)</a> <a id="1037" class="Symbol">:</a> <a id="1039" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1043" class="Keyword">where</a>
<a id="1049" class="Symbol">{-#</a> <a id="1053" class="Keyword">WARNING_ON_USAGE</a> <a id="1070" class="Pragma">_≤_</a>
<a id="1074" class="String">&quot;Warning: _≤_ was deprecated in v1.2.
Please use _≡_ from Relation.Binary.PropositionalEquality instead.&quot;</a>
<a id="1180" class="Symbol">#-}</a>
</pre></body></html>

259
misc/Function.Base.html Normal file
View File

@ -0,0 +1,259 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Function.Base</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Simple combinators working solely on and with functions</a>
<a id="165" class="Comment">------------------------------------------------------------------------</a>
<a id="239" class="Comment">-- The contents of this file can be accessed from `Function`.</a>
<a id="302" class="Symbol">{-#</a> <a id="306" class="Keyword">OPTIONS</a> <a id="314" class="Pragma">--without-K</a> <a id="326" class="Pragma">--safe</a> <a id="333" class="Symbol">#-}</a>
<a id="338" class="Keyword">module</a> <a id="345" href="Function.Base.html" class="Module">Function.Base</a> <a id="359" class="Keyword">where</a>
<a id="366" class="Keyword">open</a> <a id="371" class="Keyword">import</a> <a id="378" href="Level.html" class="Module">Level</a>
<a id="384" class="Keyword">open</a> <a id="389" class="Keyword">import</a> <a id="396" href="Strict.html" class="Module">Strict</a>
<a id="404" class="Keyword">private</a>
<a id="414" class="Keyword">variable</a>
<a id="427" href="Function.Base.html#427" class="Generalizable">a</a> <a id="429" href="Function.Base.html#429" class="Generalizable">b</a> <a id="431" href="Function.Base.html#431" class="Generalizable">c</a> <a id="433" href="Function.Base.html#433" class="Generalizable">d</a> <a id="435" href="Function.Base.html#435" class="Generalizable">e</a> <a id="437" class="Symbol">:</a> <a id="439" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="449" href="Function.Base.html#449" class="Generalizable">A</a> <a id="451" class="Symbol">:</a> <a id="453" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="457" href="Function.Base.html#427" class="Generalizable">a</a>
<a id="463" href="Function.Base.html#463" class="Generalizable">B</a> <a id="465" class="Symbol">:</a> <a id="467" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="471" href="Function.Base.html#429" class="Generalizable">b</a>
<a id="477" href="Function.Base.html#477" class="Generalizable">C</a> <a id="479" class="Symbol">:</a> <a id="481" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="485" href="Function.Base.html#431" class="Generalizable">c</a>
<a id="491" href="Function.Base.html#491" class="Generalizable">D</a> <a id="493" class="Symbol">:</a> <a id="495" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="499" href="Function.Base.html#433" class="Generalizable">d</a>
<a id="505" href="Function.Base.html#505" class="Generalizable">E</a> <a id="507" class="Symbol">:</a> <a id="509" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="513" href="Function.Base.html#435" class="Generalizable">e</a>
<a id="516" class="Comment">------------------------------------------------------------------------</a>
<a id="589" class="Comment">-- Some simple functions</a>
<a id="id"></a><a id="615" href="Function.Base.html#615" class="Function">id</a> <a id="618" class="Symbol">:</a> <a id="620" href="Function.Base.html#449" class="Generalizable">A</a> <a id="622" class="Symbol"></a> <a id="624" href="Function.Base.html#449" class="Generalizable">A</a>
<a id="626" href="Function.Base.html#615" class="Function">id</a> <a id="629" href="Function.Base.html#629" class="Bound">x</a> <a id="631" class="Symbol">=</a> <a id="633" href="Function.Base.html#629" class="Bound">x</a>
<a id="const"></a><a id="636" href="Function.Base.html#636" class="Function">const</a> <a id="642" class="Symbol">:</a> <a id="644" href="Function.Base.html#449" class="Generalizable">A</a> <a id="646" class="Symbol"></a> <a id="648" href="Function.Base.html#463" class="Generalizable">B</a> <a id="650" class="Symbol"></a> <a id="652" href="Function.Base.html#449" class="Generalizable">A</a>
<a id="654" href="Function.Base.html#636" class="Function">const</a> <a id="660" href="Function.Base.html#660" class="Bound">x</a> <a id="662" class="Symbol">=</a> <a id="664" class="Symbol">λ</a> <a id="666" href="Function.Base.html#666" class="Bound">_</a> <a id="668" class="Symbol"></a> <a id="670" href="Function.Base.html#660" class="Bound">x</a>
<a id="constᵣ"></a><a id="673" href="Function.Base.html#673" class="Function">constᵣ</a> <a id="680" class="Symbol">:</a> <a id="682" href="Function.Base.html#449" class="Generalizable">A</a> <a id="684" class="Symbol"></a> <a id="686" href="Function.Base.html#463" class="Generalizable">B</a> <a id="688" class="Symbol"></a> <a id="690" href="Function.Base.html#463" class="Generalizable">B</a>
<a id="692" href="Function.Base.html#673" class="Function">constᵣ</a> <a id="699" class="Symbol">_</a> <a id="701" class="Symbol">=</a> <a id="703" href="Function.Base.html#615" class="Function">id</a>
<a id="707" class="Comment">------------------------------------------------------------------------</a>
<a id="780" class="Comment">-- Operations on dependent functions</a>
<a id="818" class="Comment">-- These are functions whose output has a type that depends on the</a>
<a id="885" class="Comment">-- value of the input to the function.</a>
<a id="925" class="Keyword">infixr</a> <a id="932" class="Number">9</a> <a id="934" href="Function.Base.html#1031" class="Function Operator">_∘_</a> <a id="938" href="Function.Base.html#1219" class="Function Operator">_∘₂_</a>
<a id="943" class="Keyword">infixl</a> <a id="950" class="Number">8</a> <a id="952" href="Function.Base.html#2477" class="Function Operator">_ˢ_</a>
<a id="956" class="Keyword">infixl</a> <a id="963" class="Number">0</a> <a id="965" href="Function.Base.html#2210" class="Function Operator">_|&gt;_</a>
<a id="970" class="Keyword">infix</a> <a id="977" class="Number">0</a> <a id="979" href="Function.Base.html#3034" class="Function Operator">case_return_of_</a>
<a id="995" class="Keyword">infixr</a> <a id="1002" class="Number">-1</a> <a id="1005" href="Function.Base.html#1919" class="Function Operator">_$_</a> <a id="1009" href="Function.Base.html#2068" class="Function Operator">_$!_</a>
<a id="1015" class="Comment">-- Composition</a>
<a id="_∘_"></a><a id="1031" href="Function.Base.html#1031" class="Function Operator">_∘_</a> <a id="1035" class="Symbol">:</a> <a id="1037" class="Symbol"></a> <a id="1039" class="Symbol">{</a><a id="1040" href="Function.Base.html#1040" class="Bound">A</a> <a id="1042" class="Symbol">:</a> <a id="1044" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1048" href="Function.Base.html#427" class="Generalizable">a</a><a id="1049" class="Symbol">}</a> <a id="1051" class="Symbol">{</a><a id="1052" href="Function.Base.html#1052" class="Bound">B</a> <a id="1054" class="Symbol">:</a> <a id="1056" href="Function.Base.html#1040" class="Bound">A</a> <a id="1058" class="Symbol"></a> <a id="1060" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1064" href="Function.Base.html#429" class="Generalizable">b</a><a id="1065" class="Symbol">}</a> <a id="1067" class="Symbol">{</a><a id="1068" href="Function.Base.html#1068" class="Bound">C</a> <a id="1070" class="Symbol">:</a> <a id="1072" class="Symbol">{</a><a id="1073" href="Function.Base.html#1073" class="Bound">x</a> <a id="1075" class="Symbol">:</a> <a id="1077" href="Function.Base.html#1040" class="Bound">A</a><a id="1078" class="Symbol">}</a> <a id="1080" class="Symbol"></a> <a id="1082" href="Function.Base.html#1052" class="Bound">B</a> <a id="1084" href="Function.Base.html#1073" class="Bound">x</a> <a id="1086" class="Symbol"></a> <a id="1088" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1092" href="Function.Base.html#431" class="Generalizable">c</a><a id="1093" class="Symbol">}</a> <a id="1095" class="Symbol"></a>
<a id="1103" class="Symbol">(∀</a> <a id="1106" class="Symbol">{</a><a id="1107" href="Function.Base.html#1107" class="Bound">x</a><a id="1108" class="Symbol">}</a> <a id="1110" class="Symbol">(</a><a id="1111" href="Function.Base.html#1111" class="Bound">y</a> <a id="1113" class="Symbol">:</a> <a id="1115" href="Function.Base.html#1052" class="Bound">B</a> <a id="1117" href="Function.Base.html#1107" class="Bound">x</a><a id="1118" class="Symbol">)</a> <a id="1120" class="Symbol"></a> <a id="1122" href="Function.Base.html#1068" class="Bound">C</a> <a id="1124" href="Function.Base.html#1111" class="Bound">y</a><a id="1125" class="Symbol">)</a> <a id="1127" class="Symbol"></a> <a id="1129" class="Symbol">(</a><a id="1130" href="Function.Base.html#1130" class="Bound">g</a> <a id="1132" class="Symbol">:</a> <a id="1134" class="Symbol">(</a><a id="1135" href="Function.Base.html#1135" class="Bound">x</a> <a id="1137" class="Symbol">:</a> <a id="1139" href="Function.Base.html#1040" class="Bound">A</a><a id="1140" class="Symbol">)</a> <a id="1142" class="Symbol"></a> <a id="1144" href="Function.Base.html#1052" class="Bound">B</a> <a id="1146" href="Function.Base.html#1135" class="Bound">x</a><a id="1147" class="Symbol">)</a> <a id="1149" class="Symbol"></a>
<a id="1157" class="Symbol">((</a><a id="1159" href="Function.Base.html#1159" class="Bound">x</a> <a id="1161" class="Symbol">:</a> <a id="1163" href="Function.Base.html#1040" class="Bound">A</a><a id="1164" class="Symbol">)</a> <a id="1166" class="Symbol"></a> <a id="1168" href="Function.Base.html#1068" class="Bound">C</a> <a id="1170" class="Symbol">(</a><a id="1171" href="Function.Base.html#1130" class="Bound">g</a> <a id="1173" href="Function.Base.html#1159" class="Bound">x</a><a id="1174" class="Symbol">))</a>
<a id="1177" href="Function.Base.html#1177" class="Bound">f</a> <a id="1179" href="Function.Base.html#1031" class="Function Operator"></a> <a id="1181" href="Function.Base.html#1181" class="Bound">g</a> <a id="1183" class="Symbol">=</a> <a id="1185" class="Symbol">λ</a> <a id="1187" href="Function.Base.html#1187" class="Bound">x</a> <a id="1189" class="Symbol"></a> <a id="1191" href="Function.Base.html#1177" class="Bound">f</a> <a id="1193" class="Symbol">(</a><a id="1194" href="Function.Base.html#1181" class="Bound">g</a> <a id="1196" href="Function.Base.html#1187" class="Bound">x</a><a id="1197" class="Symbol">)</a>
<a id="1199" class="Symbol">{-#</a> <a id="1203" class="Keyword">INLINE</a> <a id="1210" href="Function.Base.html#1031" class="Function Operator">_∘_</a> <a id="1214" class="Symbol">#-}</a>
<a id="_∘₂_"></a><a id="1219" href="Function.Base.html#1219" class="Function Operator">_∘₂_</a> <a id="1224" class="Symbol">:</a> <a id="1226" class="Symbol"></a> <a id="1228" class="Symbol">{</a><a id="1229" href="Function.Base.html#1229" class="Bound">A₁</a> <a id="1232" class="Symbol">:</a> <a id="1234" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1238" href="Function.Base.html#427" class="Generalizable">a</a><a id="1239" class="Symbol">}</a> <a id="1241" class="Symbol">{</a><a id="1242" href="Function.Base.html#1242" class="Bound">A₂</a> <a id="1245" class="Symbol">:</a> <a id="1247" href="Function.Base.html#1229" class="Bound">A₁</a> <a id="1250" class="Symbol"></a> <a id="1252" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1256" href="Function.Base.html#433" class="Generalizable">d</a><a id="1257" class="Symbol">}</a>
<a id="1268" class="Symbol">{</a><a id="1269" href="Function.Base.html#1269" class="Bound">B</a> <a id="1271" class="Symbol">:</a> <a id="1273" class="Symbol">(</a><a id="1274" href="Function.Base.html#1274" class="Bound">x</a> <a id="1276" class="Symbol">:</a> <a id="1278" href="Function.Base.html#1229" class="Bound">A₁</a><a id="1280" class="Symbol">)</a> <a id="1282" class="Symbol"></a> <a id="1284" href="Function.Base.html#1242" class="Bound">A₂</a> <a id="1287" href="Function.Base.html#1274" class="Bound">x</a> <a id="1289" class="Symbol"></a> <a id="1291" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1295" href="Function.Base.html#429" class="Generalizable">b</a><a id="1296" class="Symbol">}</a>
<a id="1307" class="Symbol">{</a><a id="1308" href="Function.Base.html#1308" class="Bound">C</a> <a id="1310" class="Symbol">:</a> <a id="1312" class="Symbol">{</a><a id="1313" href="Function.Base.html#1313" class="Bound">x</a> <a id="1315" class="Symbol">:</a> <a id="1317" href="Function.Base.html#1229" class="Bound">A₁</a><a id="1319" class="Symbol">}</a> <a id="1321" class="Symbol"></a> <a id="1323" class="Symbol">{</a><a id="1324" href="Function.Base.html#1324" class="Bound">y</a> <a id="1326" class="Symbol">:</a> <a id="1328" href="Function.Base.html#1242" class="Bound">A₂</a> <a id="1331" href="Function.Base.html#1313" class="Bound">x</a><a id="1332" class="Symbol">}</a> <a id="1334" class="Symbol"></a> <a id="1336" href="Function.Base.html#1269" class="Bound">B</a> <a id="1338" href="Function.Base.html#1313" class="Bound">x</a> <a id="1340" href="Function.Base.html#1324" class="Bound">y</a> <a id="1342" class="Symbol"></a> <a id="1344" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1348" href="Function.Base.html#431" class="Generalizable">c</a><a id="1349" class="Symbol">}</a> <a id="1351" class="Symbol"></a>
<a id="1360" class="Symbol">({</a><a id="1362" href="Function.Base.html#1362" class="Bound">x</a> <a id="1364" class="Symbol">:</a> <a id="1366" href="Function.Base.html#1229" class="Bound">A₁</a><a id="1368" class="Symbol">}</a> <a id="1370" class="Symbol"></a> <a id="1372" class="Symbol">{</a><a id="1373" href="Function.Base.html#1373" class="Bound">y</a> <a id="1375" class="Symbol">:</a> <a id="1377" href="Function.Base.html#1242" class="Bound">A₂</a> <a id="1380" href="Function.Base.html#1362" class="Bound">x</a><a id="1381" class="Symbol">}</a> <a id="1383" class="Symbol"></a> <a id="1385" class="Symbol">(</a><a id="1386" href="Function.Base.html#1386" class="Bound">z</a> <a id="1388" class="Symbol">:</a> <a id="1390" href="Function.Base.html#1269" class="Bound">B</a> <a id="1392" href="Function.Base.html#1362" class="Bound">x</a> <a id="1394" href="Function.Base.html#1373" class="Bound">y</a><a id="1395" class="Symbol">)</a> <a id="1397" class="Symbol"></a> <a id="1399" href="Function.Base.html#1308" class="Bound">C</a> <a id="1401" href="Function.Base.html#1386" class="Bound">z</a><a id="1402" class="Symbol">)</a> <a id="1404" class="Symbol"></a>
<a id="1413" class="Symbol">(</a><a id="1414" href="Function.Base.html#1414" class="Bound">g</a> <a id="1416" class="Symbol">:</a> <a id="1418" class="Symbol">(</a><a id="1419" href="Function.Base.html#1419" class="Bound">x</a> <a id="1421" class="Symbol">:</a> <a id="1423" href="Function.Base.html#1229" class="Bound">A₁</a><a id="1425" class="Symbol">)</a> <a id="1427" class="Symbol"></a> <a id="1429" class="Symbol">(</a><a id="1430" href="Function.Base.html#1430" class="Bound">y</a> <a id="1432" class="Symbol">:</a> <a id="1434" href="Function.Base.html#1242" class="Bound">A₂</a> <a id="1437" href="Function.Base.html#1419" class="Bound">x</a><a id="1438" class="Symbol">)</a> <a id="1440" class="Symbol"></a> <a id="1442" href="Function.Base.html#1269" class="Bound">B</a> <a id="1444" href="Function.Base.html#1419" class="Bound">x</a> <a id="1446" href="Function.Base.html#1430" class="Bound">y</a><a id="1447" class="Symbol">)</a> <a id="1449" class="Symbol"></a>
<a id="1458" class="Symbol">((</a><a id="1460" href="Function.Base.html#1460" class="Bound">x</a> <a id="1462" class="Symbol">:</a> <a id="1464" href="Function.Base.html#1229" class="Bound">A₁</a><a id="1466" class="Symbol">)</a> <a id="1468" class="Symbol"></a> <a id="1470" class="Symbol">(</a><a id="1471" href="Function.Base.html#1471" class="Bound">y</a> <a id="1473" class="Symbol">:</a> <a id="1475" href="Function.Base.html#1242" class="Bound">A₂</a> <a id="1478" href="Function.Base.html#1460" class="Bound">x</a><a id="1479" class="Symbol">)</a> <a id="1481" class="Symbol"></a> <a id="1483" href="Function.Base.html#1308" class="Bound">C</a> <a id="1485" class="Symbol">(</a><a id="1486" href="Function.Base.html#1414" class="Bound">g</a> <a id="1488" href="Function.Base.html#1460" class="Bound">x</a> <a id="1490" href="Function.Base.html#1471" class="Bound">y</a><a id="1491" class="Symbol">))</a>
<a id="1494" href="Function.Base.html#1494" class="Bound">f</a> <a id="1496" href="Function.Base.html#1219" class="Function Operator">∘₂</a> <a id="1499" href="Function.Base.html#1499" class="Bound">g</a> <a id="1501" class="Symbol">=</a> <a id="1503" class="Symbol">λ</a> <a id="1505" href="Function.Base.html#1505" class="Bound">x</a> <a id="1507" href="Function.Base.html#1507" class="Bound">y</a> <a id="1509" class="Symbol"></a> <a id="1511" href="Function.Base.html#1494" class="Bound">f</a> <a id="1513" class="Symbol">(</a><a id="1514" href="Function.Base.html#1499" class="Bound">g</a> <a id="1516" href="Function.Base.html#1505" class="Bound">x</a> <a id="1518" href="Function.Base.html#1507" class="Bound">y</a><a id="1519" class="Symbol">)</a>
<a id="1522" class="Comment">-- Flipping order of arguments</a>
<a id="flip"></a><a id="1554" href="Function.Base.html#1554" class="Function">flip</a> <a id="1559" class="Symbol">:</a> <a id="1561" class="Symbol"></a> <a id="1563" class="Symbol">{</a><a id="1564" href="Function.Base.html#1564" class="Bound">A</a> <a id="1566" class="Symbol">:</a> <a id="1568" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1572" href="Function.Base.html#427" class="Generalizable">a</a><a id="1573" class="Symbol">}</a> <a id="1575" class="Symbol">{</a><a id="1576" href="Function.Base.html#1576" class="Bound">B</a> <a id="1578" class="Symbol">:</a> <a id="1580" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1584" href="Function.Base.html#429" class="Generalizable">b</a><a id="1585" class="Symbol">}</a> <a id="1587" class="Symbol">{</a><a id="1588" href="Function.Base.html#1588" class="Bound">C</a> <a id="1590" class="Symbol">:</a> <a id="1592" href="Function.Base.html#1564" class="Bound">A</a> <a id="1594" class="Symbol"></a> <a id="1596" href="Function.Base.html#1576" class="Bound">B</a> <a id="1598" class="Symbol"></a> <a id="1600" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1604" href="Function.Base.html#431" class="Generalizable">c</a><a id="1605" class="Symbol">}</a> <a id="1607" class="Symbol"></a>
<a id="1616" class="Symbol">((</a><a id="1618" href="Function.Base.html#1618" class="Bound">x</a> <a id="1620" class="Symbol">:</a> <a id="1622" href="Function.Base.html#1564" class="Bound">A</a><a id="1623" class="Symbol">)</a> <a id="1625" class="Symbol">(</a><a id="1626" href="Function.Base.html#1626" class="Bound">y</a> <a id="1628" class="Symbol">:</a> <a id="1630" href="Function.Base.html#1576" class="Bound">B</a><a id="1631" class="Symbol">)</a> <a id="1633" class="Symbol"></a> <a id="1635" href="Function.Base.html#1588" class="Bound">C</a> <a id="1637" href="Function.Base.html#1618" class="Bound">x</a> <a id="1639" href="Function.Base.html#1626" class="Bound">y</a><a id="1640" class="Symbol">)</a> <a id="1642" class="Symbol"></a> <a id="1644" class="Symbol">((</a><a id="1646" href="Function.Base.html#1646" class="Bound">y</a> <a id="1648" class="Symbol">:</a> <a id="1650" href="Function.Base.html#1576" class="Bound">B</a><a id="1651" class="Symbol">)</a> <a id="1653" class="Symbol">(</a><a id="1654" href="Function.Base.html#1654" class="Bound">x</a> <a id="1656" class="Symbol">:</a> <a id="1658" href="Function.Base.html#1564" class="Bound">A</a><a id="1659" class="Symbol">)</a> <a id="1661" class="Symbol"></a> <a id="1663" href="Function.Base.html#1588" class="Bound">C</a> <a id="1665" href="Function.Base.html#1654" class="Bound">x</a> <a id="1667" href="Function.Base.html#1646" class="Bound">y</a><a id="1668" class="Symbol">)</a>
<a id="1670" href="Function.Base.html#1554" class="Function">flip</a> <a id="1675" href="Function.Base.html#1675" class="Bound">f</a> <a id="1677" class="Symbol">=</a> <a id="1679" class="Symbol">λ</a> <a id="1681" href="Function.Base.html#1681" class="Bound">y</a> <a id="1683" href="Function.Base.html#1683" class="Bound">x</a> <a id="1685" class="Symbol"></a> <a id="1687" href="Function.Base.html#1675" class="Bound">f</a> <a id="1689" href="Function.Base.html#1683" class="Bound">x</a> <a id="1691" href="Function.Base.html#1681" class="Bound">y</a>
<a id="1693" class="Symbol">{-#</a> <a id="1697" class="Keyword">INLINE</a> <a id="1704" href="Function.Base.html#1554" class="Function">flip</a> <a id="1709" class="Symbol">#-}</a>
<a id="1714" class="Comment">-- Application - note that _$_ is right associative, as in Haskell.</a>
<a id="1782" class="Comment">-- If you want a left associative infix application operator, use</a>
<a id="1848" class="Comment">-- Category.Functor._&lt;$&gt;_ from Category.Monad.Identity.IdentityMonad.</a>
<a id="_$_"></a><a id="1919" href="Function.Base.html#1919" class="Function Operator">_$_</a> <a id="1923" class="Symbol">:</a> <a id="1925" class="Symbol"></a> <a id="1927" class="Symbol">{</a><a id="1928" href="Function.Base.html#1928" class="Bound">A</a> <a id="1930" class="Symbol">:</a> <a id="1932" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1936" href="Function.Base.html#427" class="Generalizable">a</a><a id="1937" class="Symbol">}</a> <a id="1939" class="Symbol">{</a><a id="1940" href="Function.Base.html#1940" class="Bound">B</a> <a id="1942" class="Symbol">:</a> <a id="1944" href="Function.Base.html#1928" class="Bound">A</a> <a id="1946" class="Symbol"></a> <a id="1948" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1952" href="Function.Base.html#429" class="Generalizable">b</a><a id="1953" class="Symbol">}</a> <a id="1955" class="Symbol"></a>
<a id="1963" class="Symbol">((</a><a id="1965" href="Function.Base.html#1965" class="Bound">x</a> <a id="1967" class="Symbol">:</a> <a id="1969" href="Function.Base.html#1928" class="Bound">A</a><a id="1970" class="Symbol">)</a> <a id="1972" class="Symbol"></a> <a id="1974" href="Function.Base.html#1940" class="Bound">B</a> <a id="1976" href="Function.Base.html#1965" class="Bound">x</a><a id="1977" class="Symbol">)</a> <a id="1979" class="Symbol"></a> <a id="1981" class="Symbol">((</a><a id="1983" href="Function.Base.html#1983" class="Bound">x</a> <a id="1985" class="Symbol">:</a> <a id="1987" href="Function.Base.html#1928" class="Bound">A</a><a id="1988" class="Symbol">)</a> <a id="1990" class="Symbol"></a> <a id="1992" href="Function.Base.html#1940" class="Bound">B</a> <a id="1994" href="Function.Base.html#1983" class="Bound">x</a><a id="1995" class="Symbol">)</a>
<a id="1997" href="Function.Base.html#1997" class="Bound">f</a> <a id="1999" href="Function.Base.html#1919" class="Function Operator">$</a> <a id="2001" href="Function.Base.html#2001" class="Bound">x</a> <a id="2003" class="Symbol">=</a> <a id="2005" href="Function.Base.html#1997" class="Bound">f</a> <a id="2007" href="Function.Base.html#2001" class="Bound">x</a>
<a id="2009" class="Symbol">{-#</a> <a id="2013" class="Keyword">INLINE</a> <a id="2020" href="Function.Base.html#1919" class="Function Operator">_$_</a> <a id="2024" class="Symbol">#-}</a>
<a id="2029" class="Comment">-- Strict (call-by-value) application</a>
<a id="_$!_"></a><a id="2068" href="Function.Base.html#2068" class="Function Operator">_$!_</a> <a id="2073" class="Symbol">:</a> <a id="2075" class="Symbol"></a> <a id="2077" class="Symbol">{</a><a id="2078" href="Function.Base.html#2078" class="Bound">A</a> <a id="2080" class="Symbol">:</a> <a id="2082" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2086" href="Function.Base.html#427" class="Generalizable">a</a><a id="2087" class="Symbol">}</a> <a id="2089" class="Symbol">{</a><a id="2090" href="Function.Base.html#2090" class="Bound">B</a> <a id="2092" class="Symbol">:</a> <a id="2094" href="Function.Base.html#2078" class="Bound">A</a> <a id="2096" class="Symbol"></a> <a id="2098" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2102" href="Function.Base.html#429" class="Generalizable">b</a><a id="2103" class="Symbol">}</a> <a id="2105" class="Symbol"></a>
<a id="2114" class="Symbol">((</a><a id="2116" href="Function.Base.html#2116" class="Bound">x</a> <a id="2118" class="Symbol">:</a> <a id="2120" href="Function.Base.html#2078" class="Bound">A</a><a id="2121" class="Symbol">)</a> <a id="2123" class="Symbol"></a> <a id="2125" href="Function.Base.html#2090" class="Bound">B</a> <a id="2127" href="Function.Base.html#2116" class="Bound">x</a><a id="2128" class="Symbol">)</a> <a id="2130" class="Symbol"></a> <a id="2132" class="Symbol">((</a><a id="2134" href="Function.Base.html#2134" class="Bound">x</a> <a id="2136" class="Symbol">:</a> <a id="2138" href="Function.Base.html#2078" class="Bound">A</a><a id="2139" class="Symbol">)</a> <a id="2141" class="Symbol"></a> <a id="2143" href="Function.Base.html#2090" class="Bound">B</a> <a id="2145" href="Function.Base.html#2134" class="Bound">x</a><a id="2146" class="Symbol">)</a>
<a id="2148" href="Function.Base.html#2068" class="Function Operator">_$!_</a> <a id="2153" class="Symbol">=</a> <a id="2155" href="Function.Base.html#1554" class="Function">flip</a> <a id="2160" href="Agda.Builtin.Strict.html#179" class="Primitive">force</a>
<a id="2167" class="Comment">-- Flipped application (aka pipe-forward)</a>
<a id="_|&gt;_"></a><a id="2210" href="Function.Base.html#2210" class="Function Operator">_|&gt;_</a> <a id="2215" class="Symbol">:</a> <a id="2217" class="Symbol"></a> <a id="2219" class="Symbol">{</a><a id="2220" href="Function.Base.html#2220" class="Bound">A</a> <a id="2222" class="Symbol">:</a> <a id="2224" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2228" href="Function.Base.html#427" class="Generalizable">a</a><a id="2229" class="Symbol">}</a> <a id="2231" class="Symbol">{</a><a id="2232" href="Function.Base.html#2232" class="Bound">B</a> <a id="2234" class="Symbol">:</a> <a id="2236" href="Function.Base.html#2220" class="Bound">A</a> <a id="2238" class="Symbol"></a> <a id="2240" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2244" href="Function.Base.html#429" class="Generalizable">b</a><a id="2245" class="Symbol">}</a> <a id="2247" class="Symbol"></a>
<a id="2256" class="Symbol">(</a><a id="2257" href="Function.Base.html#2257" class="Bound">a</a> <a id="2259" class="Symbol">:</a> <a id="2261" href="Function.Base.html#2220" class="Bound">A</a><a id="2262" class="Symbol">)</a> <a id="2264" class="Symbol"></a> <a id="2266" class="Symbol">(∀</a> <a id="2269" href="Function.Base.html#2269" class="Bound">a</a> <a id="2271" class="Symbol"></a> <a id="2273" href="Function.Base.html#2232" class="Bound">B</a> <a id="2275" href="Function.Base.html#2269" class="Bound">a</a><a id="2276" class="Symbol">)</a> <a id="2278" class="Symbol"></a> <a id="2280" href="Function.Base.html#2232" class="Bound">B</a> <a id="2282" href="Function.Base.html#2257" class="Bound">a</a>
<a id="2284" href="Function.Base.html#2210" class="Function Operator">_|&gt;_</a> <a id="2289" class="Symbol">=</a> <a id="2291" href="Function.Base.html#1554" class="Function">flip</a> <a id="2296" href="Function.Base.html#1919" class="Function Operator">_$_</a>
<a id="2300" class="Symbol">{-#</a> <a id="2304" class="Keyword">INLINE</a> <a id="2311" href="Function.Base.html#2210" class="Function Operator">_|&gt;_</a> <a id="2316" class="Symbol">#-}</a>
<a id="2321" class="Comment">-- The S combinator - written infix as in Conor McBride&#39;s paper</a>
<a id="2385" class="Comment">-- &quot;Outrageous but Meaningful Coincidences: Dependent type-safe syntax</a>
<a id="2456" class="Comment">-- and evaluation&quot;.</a>
<a id="_ˢ_"></a><a id="2477" href="Function.Base.html#2477" class="Function Operator">_ˢ_</a> <a id="2481" class="Symbol">:</a> <a id="2483" class="Symbol"></a> <a id="2485" class="Symbol">{</a><a id="2486" href="Function.Base.html#2486" class="Bound">A</a> <a id="2488" class="Symbol">:</a> <a id="2490" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2494" href="Function.Base.html#427" class="Generalizable">a</a><a id="2495" class="Symbol">}</a> <a id="2497" class="Symbol">{</a><a id="2498" href="Function.Base.html#2498" class="Bound">B</a> <a id="2500" class="Symbol">:</a> <a id="2502" href="Function.Base.html#2486" class="Bound">A</a> <a id="2504" class="Symbol"></a> <a id="2506" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2510" href="Function.Base.html#429" class="Generalizable">b</a><a id="2511" class="Symbol">}</a> <a id="2513" class="Symbol">{</a><a id="2514" href="Function.Base.html#2514" class="Bound">C</a> <a id="2516" class="Symbol">:</a> <a id="2518" class="Symbol">(</a><a id="2519" href="Function.Base.html#2519" class="Bound">x</a> <a id="2521" class="Symbol">:</a> <a id="2523" href="Function.Base.html#2486" class="Bound">A</a><a id="2524" class="Symbol">)</a> <a id="2526" class="Symbol"></a> <a id="2528" href="Function.Base.html#2498" class="Bound">B</a> <a id="2530" href="Function.Base.html#2519" class="Bound">x</a> <a id="2532" class="Symbol"></a> <a id="2534" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2538" href="Function.Base.html#431" class="Generalizable">c</a><a id="2539" class="Symbol">}</a> <a id="2541" class="Symbol"></a>
<a id="2549" class="Symbol">((</a><a id="2551" href="Function.Base.html#2551" class="Bound">x</a> <a id="2553" class="Symbol">:</a> <a id="2555" href="Function.Base.html#2486" class="Bound">A</a><a id="2556" class="Symbol">)</a> <a id="2558" class="Symbol">(</a><a id="2559" href="Function.Base.html#2559" class="Bound">y</a> <a id="2561" class="Symbol">:</a> <a id="2563" href="Function.Base.html#2498" class="Bound">B</a> <a id="2565" href="Function.Base.html#2551" class="Bound">x</a><a id="2566" class="Symbol">)</a> <a id="2568" class="Symbol"></a> <a id="2570" href="Function.Base.html#2514" class="Bound">C</a> <a id="2572" href="Function.Base.html#2551" class="Bound">x</a> <a id="2574" href="Function.Base.html#2559" class="Bound">y</a><a id="2575" class="Symbol">)</a> <a id="2577" class="Symbol"></a>
<a id="2585" class="Symbol">(</a><a id="2586" href="Function.Base.html#2586" class="Bound">g</a> <a id="2588" class="Symbol">:</a> <a id="2590" class="Symbol">(</a><a id="2591" href="Function.Base.html#2591" class="Bound">x</a> <a id="2593" class="Symbol">:</a> <a id="2595" href="Function.Base.html#2486" class="Bound">A</a><a id="2596" class="Symbol">)</a> <a id="2598" class="Symbol"></a> <a id="2600" href="Function.Base.html#2498" class="Bound">B</a> <a id="2602" href="Function.Base.html#2591" class="Bound">x</a><a id="2603" class="Symbol">)</a> <a id="2605" class="Symbol"></a>
<a id="2613" class="Symbol">((</a><a id="2615" href="Function.Base.html#2615" class="Bound">x</a> <a id="2617" class="Symbol">:</a> <a id="2619" href="Function.Base.html#2486" class="Bound">A</a><a id="2620" class="Symbol">)</a> <a id="2622" class="Symbol"></a> <a id="2624" href="Function.Base.html#2514" class="Bound">C</a> <a id="2626" href="Function.Base.html#2615" class="Bound">x</a> <a id="2628" class="Symbol">(</a><a id="2629" href="Function.Base.html#2586" class="Bound">g</a> <a id="2631" href="Function.Base.html#2615" class="Bound">x</a><a id="2632" class="Symbol">))</a>
<a id="2635" href="Function.Base.html#2635" class="Bound">f</a> <a id="2637" href="Function.Base.html#2477" class="Function Operator">ˢ</a> <a id="2639" href="Function.Base.html#2639" class="Bound">g</a> <a id="2641" class="Symbol">=</a> <a id="2643" class="Symbol">λ</a> <a id="2645" href="Function.Base.html#2645" class="Bound">x</a> <a id="2647" class="Symbol"></a> <a id="2649" href="Function.Base.html#2635" class="Bound">f</a> <a id="2651" href="Function.Base.html#2645" class="Bound">x</a> <a id="2653" class="Symbol">(</a><a id="2654" href="Function.Base.html#2639" class="Bound">g</a> <a id="2656" href="Function.Base.html#2645" class="Bound">x</a><a id="2657" class="Symbol">)</a>
<a id="2659" class="Symbol">{-#</a> <a id="2663" class="Keyword">INLINE</a> <a id="2670" href="Function.Base.html#2477" class="Function Operator">_ˢ_</a> <a id="2674" class="Symbol">#-}</a>
<a id="2679" class="Comment">-- Converting between implicit and explicit function spaces.</a>
<a id="_$-"></a><a id="2741" href="Function.Base.html#2741" class="Function Operator">_$-</a> <a id="2745" class="Symbol">:</a> <a id="2747" class="Symbol"></a> <a id="2749" class="Symbol">{</a><a id="2750" href="Function.Base.html#2750" class="Bound">A</a> <a id="2752" class="Symbol">:</a> <a id="2754" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2758" href="Function.Base.html#427" class="Generalizable">a</a><a id="2759" class="Symbol">}</a> <a id="2761" class="Symbol">{</a><a id="2762" href="Function.Base.html#2762" class="Bound">B</a> <a id="2764" class="Symbol">:</a> <a id="2766" href="Function.Base.html#2750" class="Bound">A</a> <a id="2768" class="Symbol"></a> <a id="2770" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2774" href="Function.Base.html#429" class="Generalizable">b</a><a id="2775" class="Symbol">}</a> <a id="2777" class="Symbol"></a> <a id="2779" class="Symbol">((</a><a id="2781" href="Function.Base.html#2781" class="Bound">x</a> <a id="2783" class="Symbol">:</a> <a id="2785" href="Function.Base.html#2750" class="Bound">A</a><a id="2786" class="Symbol">)</a> <a id="2788" class="Symbol"></a> <a id="2790" href="Function.Base.html#2762" class="Bound">B</a> <a id="2792" href="Function.Base.html#2781" class="Bound">x</a><a id="2793" class="Symbol">)</a> <a id="2795" class="Symbol"></a> <a id="2797" class="Symbol">({</a><a id="2799" href="Function.Base.html#2799" class="Bound">x</a> <a id="2801" class="Symbol">:</a> <a id="2803" href="Function.Base.html#2750" class="Bound">A</a><a id="2804" class="Symbol">}</a> <a id="2806" class="Symbol"></a> <a id="2808" href="Function.Base.html#2762" class="Bound">B</a> <a id="2810" href="Function.Base.html#2799" class="Bound">x</a><a id="2811" class="Symbol">)</a>
<a id="2813" href="Function.Base.html#2813" class="Bound">f</a> <a id="2815" href="Function.Base.html#2741" class="Function Operator">$-</a> <a id="2818" class="Symbol">=</a> <a id="2820" href="Function.Base.html#2813" class="Bound">f</a> <a id="2822" class="Symbol">_</a>
<a id="2824" class="Symbol">{-#</a> <a id="2828" class="Keyword">INLINE</a> <a id="2835" href="Function.Base.html#2741" class="Function Operator">_$-</a> <a id="2839" class="Symbol">#-}</a>
<a id="λ-"></a><a id="2844" href="Function.Base.html#2844" class="Function">λ-</a> <a id="2847" class="Symbol">:</a> <a id="2849" class="Symbol"></a> <a id="2851" class="Symbol">{</a><a id="2852" href="Function.Base.html#2852" class="Bound">A</a> <a id="2854" class="Symbol">:</a> <a id="2856" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2860" href="Function.Base.html#427" class="Generalizable">a</a><a id="2861" class="Symbol">}</a> <a id="2863" class="Symbol">{</a><a id="2864" href="Function.Base.html#2864" class="Bound">B</a> <a id="2866" class="Symbol">:</a> <a id="2868" href="Function.Base.html#2852" class="Bound">A</a> <a id="2870" class="Symbol"></a> <a id="2872" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2876" href="Function.Base.html#429" class="Generalizable">b</a><a id="2877" class="Symbol">}</a> <a id="2879" class="Symbol"></a> <a id="2881" class="Symbol">({</a><a id="2883" href="Function.Base.html#2883" class="Bound">x</a> <a id="2885" class="Symbol">:</a> <a id="2887" href="Function.Base.html#2852" class="Bound">A</a><a id="2888" class="Symbol">}</a> <a id="2890" class="Symbol"></a> <a id="2892" href="Function.Base.html#2864" class="Bound">B</a> <a id="2894" href="Function.Base.html#2883" class="Bound">x</a><a id="2895" class="Symbol">)</a> <a id="2897" class="Symbol"></a> <a id="2899" class="Symbol">((</a><a id="2901" href="Function.Base.html#2901" class="Bound">x</a> <a id="2903" class="Symbol">:</a> <a id="2905" href="Function.Base.html#2852" class="Bound">A</a><a id="2906" class="Symbol">)</a> <a id="2908" class="Symbol"></a> <a id="2910" href="Function.Base.html#2864" class="Bound">B</a> <a id="2912" href="Function.Base.html#2901" class="Bound">x</a><a id="2913" class="Symbol">)</a>
<a id="2915" href="Function.Base.html#2844" class="Function">λ-</a> <a id="2918" href="Function.Base.html#2918" class="Bound">f</a> <a id="2920" class="Symbol">=</a> <a id="2922" class="Symbol">λ</a> <a id="2924" href="Function.Base.html#2924" class="Bound">x</a> <a id="2926" class="Symbol"></a> <a id="2928" href="Function.Base.html#2918" class="Bound">f</a>
<a id="2930" class="Symbol">{-#</a> <a id="2934" class="Keyword">INLINE</a> <a id="2941" href="Function.Base.html#2844" class="Function">λ-</a> <a id="2944" class="Symbol">#-}</a>
<a id="2949" class="Comment">-- Case expressions (to be used with pattern-matching lambdas, see</a>
<a id="3016" class="Comment">-- README.Case).</a>
<a id="case_return_of_"></a><a id="3034" href="Function.Base.html#3034" class="Function Operator">case_return_of_</a> <a id="3050" class="Symbol">:</a> <a id="3052" class="Symbol"></a> <a id="3054" class="Symbol">{</a><a id="3055" href="Function.Base.html#3055" class="Bound">A</a> <a id="3057" class="Symbol">:</a> <a id="3059" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3063" href="Function.Base.html#427" class="Generalizable">a</a><a id="3064" class="Symbol">}</a> <a id="3066" class="Symbol">(</a><a id="3067" href="Function.Base.html#3067" class="Bound">x</a> <a id="3069" class="Symbol">:</a> <a id="3071" href="Function.Base.html#3055" class="Bound">A</a><a id="3072" class="Symbol">)</a> <a id="3074" class="Symbol">(</a><a id="3075" href="Function.Base.html#3075" class="Bound">B</a> <a id="3077" class="Symbol">:</a> <a id="3079" href="Function.Base.html#3055" class="Bound">A</a> <a id="3081" class="Symbol"></a> <a id="3083" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3087" href="Function.Base.html#429" class="Generalizable">b</a><a id="3088" class="Symbol">)</a> <a id="3090" class="Symbol"></a>
<a id="3110" class="Symbol">((</a><a id="3112" href="Function.Base.html#3112" class="Bound">x</a> <a id="3114" class="Symbol">:</a> <a id="3116" href="Function.Base.html#3055" class="Bound">A</a><a id="3117" class="Symbol">)</a> <a id="3119" class="Symbol"></a> <a id="3121" href="Function.Base.html#3075" class="Bound">B</a> <a id="3123" href="Function.Base.html#3112" class="Bound">x</a><a id="3124" class="Symbol">)</a> <a id="3126" class="Symbol"></a> <a id="3128" href="Function.Base.html#3075" class="Bound">B</a> <a id="3130" href="Function.Base.html#3067" class="Bound">x</a>
<a id="3132" href="Function.Base.html#3034" class="Function Operator">case</a> <a id="3137" href="Function.Base.html#3137" class="Bound">x</a> <a id="3139" href="Function.Base.html#3034" class="Function Operator">return</a> <a id="3146" href="Function.Base.html#3146" class="Bound">B</a> <a id="3148" href="Function.Base.html#3034" class="Function Operator">of</a> <a id="3151" href="Function.Base.html#3151" class="Bound">f</a> <a id="3153" class="Symbol">=</a> <a id="3155" href="Function.Base.html#3151" class="Bound">f</a> <a id="3157" href="Function.Base.html#3137" class="Bound">x</a>
<a id="3159" class="Symbol">{-#</a> <a id="3163" class="Keyword">INLINE</a> <a id="3170" href="Function.Base.html#3034" class="Function Operator">case_return_of_</a> <a id="3186" class="Symbol">#-}</a>
<a id="3191" class="Comment">------------------------------------------------------------------------</a>
<a id="3264" class="Comment">-- Non-dependent versions of dependent operations</a>
<a id="3315" class="Comment">-- Any of the above operations for dependent functions will also work</a>
<a id="3385" class="Comment">-- for non-dependent functions but sometimes Agda has difficulty</a>
<a id="3450" class="Comment">-- inferring the non-dependency. Primed ( = \prime) versions of the</a>
<a id="3519" class="Comment">-- operations are therefore provided below that sometimes have better</a>
<a id="3589" class="Comment">-- inference properties.</a>
<a id="3615" class="Keyword">infixr</a> <a id="3622" class="Number">9</a> <a id="3624" href="Function.Base.html#3706" class="Function Operator">_∘_</a> <a id="3629" href="Function.Base.html#3759" class="Function Operator">_∘₂_</a>
<a id="3635" class="Keyword">infixl</a> <a id="3642" class="Number">0</a> <a id="3644" href="Function.Base.html#3998" class="Function Operator">_|&gt;_</a>
<a id="3650" class="Keyword">infix</a> <a id="3657" class="Number">0</a> <a id="3659" href="Function.Base.html#4121" class="Function Operator">case_of_</a>
<a id="3668" class="Keyword">infixr</a> <a id="3675" class="Number">-1</a> <a id="3678" href="Function.Base.html#3839" class="Function Operator">_$_</a> <a id="3683" href="Function.Base.html#3915" class="Function Operator">_$!_</a>
<a id="3690" class="Comment">-- Composition</a>
<a id="_∘_"></a><a id="3706" href="Function.Base.html#3706" class="Function Operator">_∘_</a> <a id="3711" class="Symbol">:</a> <a id="3713" class="Symbol">(</a><a id="3714" href="Function.Base.html#463" class="Generalizable">B</a> <a id="3716" class="Symbol"></a> <a id="3718" href="Function.Base.html#477" class="Generalizable">C</a><a id="3719" class="Symbol">)</a> <a id="3721" class="Symbol"></a> <a id="3723" class="Symbol">(</a><a id="3724" href="Function.Base.html#449" class="Generalizable">A</a> <a id="3726" class="Symbol"></a> <a id="3728" href="Function.Base.html#463" class="Generalizable">B</a><a id="3729" class="Symbol">)</a> <a id="3731" class="Symbol"></a> <a id="3733" class="Symbol">(</a><a id="3734" href="Function.Base.html#449" class="Generalizable">A</a> <a id="3736" class="Symbol"></a> <a id="3738" href="Function.Base.html#477" class="Generalizable">C</a><a id="3739" class="Symbol">)</a>
<a id="3741" href="Function.Base.html#3741" class="Bound">f</a> <a id="3743" href="Function.Base.html#3706" class="Function Operator">∘′</a> <a id="3746" href="Function.Base.html#3746" class="Bound">g</a> <a id="3748" class="Symbol">=</a> <a id="3750" href="Function.Base.html#1031" class="Function Operator">_∘_</a> <a id="3754" href="Function.Base.html#3741" class="Bound">f</a> <a id="3756" href="Function.Base.html#3746" class="Bound">g</a>
<a id="_∘₂_"></a><a id="3759" href="Function.Base.html#3759" class="Function Operator">_∘₂_</a> <a id="3765" class="Symbol">:</a> <a id="3767" class="Symbol">(</a><a id="3768" href="Function.Base.html#477" class="Generalizable">C</a> <a id="3770" class="Symbol"></a> <a id="3772" href="Function.Base.html#491" class="Generalizable">D</a><a id="3773" class="Symbol">)</a> <a id="3775" class="Symbol"></a> <a id="3777" class="Symbol">(</a><a id="3778" href="Function.Base.html#449" class="Generalizable">A</a> <a id="3780" class="Symbol"></a> <a id="3782" href="Function.Base.html#463" class="Generalizable">B</a> <a id="3784" class="Symbol"></a> <a id="3786" href="Function.Base.html#477" class="Generalizable">C</a><a id="3787" class="Symbol">)</a> <a id="3789" class="Symbol"></a> <a id="3791" class="Symbol">(</a><a id="3792" href="Function.Base.html#449" class="Generalizable">A</a> <a id="3794" class="Symbol"></a> <a id="3796" href="Function.Base.html#463" class="Generalizable">B</a> <a id="3798" class="Symbol"></a> <a id="3800" href="Function.Base.html#491" class="Generalizable">D</a><a id="3801" class="Symbol">)</a>
<a id="3803" href="Function.Base.html#3803" class="Bound">f</a> <a id="3805" href="Function.Base.html#3759" class="Function Operator">∘₂′</a> <a id="3809" href="Function.Base.html#3809" class="Bound">g</a> <a id="3811" class="Symbol">=</a> <a id="3813" href="Function.Base.html#1219" class="Function Operator">_∘₂_</a> <a id="3818" href="Function.Base.html#3803" class="Bound">f</a> <a id="3820" href="Function.Base.html#3809" class="Bound">g</a>
<a id="3823" class="Comment">-- Application</a>
<a id="_$_"></a><a id="3839" href="Function.Base.html#3839" class="Function Operator">_$_</a> <a id="3844" class="Symbol">:</a> <a id="3846" class="Symbol">(</a><a id="3847" href="Function.Base.html#449" class="Generalizable">A</a> <a id="3849" class="Symbol"></a> <a id="3851" href="Function.Base.html#463" class="Generalizable">B</a><a id="3852" class="Symbol">)</a> <a id="3854" class="Symbol"></a> <a id="3856" class="Symbol">(</a><a id="3857" href="Function.Base.html#449" class="Generalizable">A</a> <a id="3859" class="Symbol"></a> <a id="3861" href="Function.Base.html#463" class="Generalizable">B</a><a id="3862" class="Symbol">)</a>
<a id="3864" href="Function.Base.html#3839" class="Function Operator">_$_</a> <a id="3869" class="Symbol">=</a> <a id="3871" href="Function.Base.html#1919" class="Function Operator">_$_</a>
<a id="3876" class="Comment">-- Strict (call-by-value) application</a>
<a id="_$!_"></a><a id="3915" href="Function.Base.html#3915" class="Function Operator">_$!_</a> <a id="3921" class="Symbol">:</a> <a id="3923" class="Symbol">(</a><a id="3924" href="Function.Base.html#449" class="Generalizable">A</a> <a id="3926" class="Symbol"></a> <a id="3928" href="Function.Base.html#463" class="Generalizable">B</a><a id="3929" class="Symbol">)</a> <a id="3931" class="Symbol"></a> <a id="3933" class="Symbol">(</a><a id="3934" href="Function.Base.html#449" class="Generalizable">A</a> <a id="3936" class="Symbol"></a> <a id="3938" href="Function.Base.html#463" class="Generalizable">B</a><a id="3939" class="Symbol">)</a>
<a id="3941" href="Function.Base.html#3915" class="Function Operator">_$!_</a> <a id="3947" class="Symbol">=</a> <a id="3949" href="Function.Base.html#2068" class="Function Operator">_$!_</a>
<a id="3955" class="Comment">-- Flipped application (aka pipe-forward)</a>
<a id="_|&gt;_"></a><a id="3998" href="Function.Base.html#3998" class="Function Operator">_|&gt;_</a> <a id="4004" class="Symbol">:</a> <a id="4006" href="Function.Base.html#449" class="Generalizable">A</a> <a id="4008" class="Symbol"></a> <a id="4010" class="Symbol">(</a><a id="4011" href="Function.Base.html#449" class="Generalizable">A</a> <a id="4013" class="Symbol"></a> <a id="4015" href="Function.Base.html#463" class="Generalizable">B</a><a id="4016" class="Symbol">)</a> <a id="4018" class="Symbol"></a> <a id="4020" href="Function.Base.html#463" class="Generalizable">B</a>
<a id="4022" href="Function.Base.html#3998" class="Function Operator">_|&gt;_</a> <a id="4028" class="Symbol">=</a> <a id="4030" href="Function.Base.html#2210" class="Function Operator">_|&gt;_</a>
<a id="4036" class="Comment">-- Case expressions (to be used with pattern-matching lambdas, see</a>
<a id="4103" class="Comment">-- README.Case).</a>
<a id="case_of_"></a><a id="4121" href="Function.Base.html#4121" class="Function Operator">case_of_</a> <a id="4130" class="Symbol">:</a> <a id="4132" href="Function.Base.html#449" class="Generalizable">A</a> <a id="4134" class="Symbol"></a> <a id="4136" class="Symbol">(</a><a id="4137" href="Function.Base.html#449" class="Generalizable">A</a> <a id="4139" class="Symbol"></a> <a id="4141" href="Function.Base.html#463" class="Generalizable">B</a><a id="4142" class="Symbol">)</a> <a id="4144" class="Symbol"></a> <a id="4146" href="Function.Base.html#463" class="Generalizable">B</a>
<a id="4148" href="Function.Base.html#4121" class="Function Operator">case</a> <a id="4153" href="Function.Base.html#4153" class="Bound">x</a> <a id="4155" href="Function.Base.html#4121" class="Function Operator">of</a> <a id="4158" href="Function.Base.html#4158" class="Bound">f</a> <a id="4160" class="Symbol">=</a> <a id="4162" href="Function.Base.html#3034" class="Function Operator">case</a> <a id="4167" href="Function.Base.html#4153" class="Bound">x</a> <a id="4169" href="Function.Base.html#3034" class="Function Operator">return</a> <a id="4176" class="Symbol">_</a> <a id="4178" href="Function.Base.html#3034" class="Function Operator">of</a> <a id="4181" href="Function.Base.html#4158" class="Bound">f</a>
<a id="4183" class="Symbol">{-#</a> <a id="4187" class="Keyword">INLINE</a> <a id="4194" href="Function.Base.html#4121" class="Function Operator">case_of_</a> <a id="4203" class="Symbol">#-}</a>
<a id="4208" class="Comment">------------------------------------------------------------------------</a>
<a id="4281" class="Comment">-- Operations that are only defined for non-dependent functions</a>
<a id="4346" class="Keyword">infixl</a> <a id="4353" class="Number">1</a> <a id="4355" href="Function.Base.html#4398" class="Function Operator">_⟨_⟩_</a>
<a id="4361" class="Keyword">infixl</a> <a id="4368" class="Number">0</a> <a id="4370" href="Function.Base.html#4562" class="Function Operator">_∋_</a>
<a id="4375" class="Comment">-- Binary application</a>
<a id="_⟨_⟩_"></a><a id="4398" href="Function.Base.html#4398" class="Function Operator">_⟨_⟩_</a> <a id="4404" class="Symbol">:</a> <a id="4406" href="Function.Base.html#449" class="Generalizable">A</a> <a id="4408" class="Symbol"></a> <a id="4410" class="Symbol">(</a><a id="4411" href="Function.Base.html#449" class="Generalizable">A</a> <a id="4413" class="Symbol"></a> <a id="4415" href="Function.Base.html#463" class="Generalizable">B</a> <a id="4417" class="Symbol"></a> <a id="4419" href="Function.Base.html#477" class="Generalizable">C</a><a id="4420" class="Symbol">)</a> <a id="4422" class="Symbol"></a> <a id="4424" href="Function.Base.html#463" class="Generalizable">B</a> <a id="4426" class="Symbol"></a> <a id="4428" href="Function.Base.html#477" class="Generalizable">C</a>
<a id="4430" href="Function.Base.html#4430" class="Bound">x</a> <a id="4432" href="Function.Base.html#4398" class="Function Operator"></a> <a id="4434" href="Function.Base.html#4434" class="Bound">f</a> <a id="4436" href="Function.Base.html#4398" class="Function Operator"></a> <a id="4438" href="Function.Base.html#4438" class="Bound">y</a> <a id="4440" class="Symbol">=</a> <a id="4442" href="Function.Base.html#4434" class="Bound">f</a> <a id="4444" href="Function.Base.html#4430" class="Bound">x</a> <a id="4446" href="Function.Base.html#4438" class="Bound">y</a>
<a id="4449" class="Comment">-- In Agda you cannot annotate every subexpression with a type</a>
<a id="4512" class="Comment">-- signature. This function can be used instead.</a>
<a id="_∋_"></a><a id="4562" href="Function.Base.html#4562" class="Function Operator">_∋_</a> <a id="4566" class="Symbol">:</a> <a id="4568" class="Symbol">(</a><a id="4569" href="Function.Base.html#4569" class="Bound">A</a> <a id="4571" class="Symbol">:</a> <a id="4573" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4577" href="Function.Base.html#427" class="Generalizable">a</a><a id="4578" class="Symbol">)</a> <a id="4580" class="Symbol"></a> <a id="4582" href="Function.Base.html#4569" class="Bound">A</a> <a id="4584" class="Symbol"></a> <a id="4586" href="Function.Base.html#4569" class="Bound">A</a>
<a id="4588" href="Function.Base.html#4588" class="Bound">A</a> <a id="4590" href="Function.Base.html#4562" class="Function Operator"></a> <a id="4592" href="Function.Base.html#4592" class="Bound">x</a> <a id="4594" class="Symbol">=</a> <a id="4596" href="Function.Base.html#4592" class="Bound">x</a>
<a id="4599" class="Comment">-- Conversely it is sometimes useful to be able to extract the</a>
<a id="4662" class="Comment">-- type of a given expression.</a>
<a id="typeOf"></a><a id="4694" href="Function.Base.html#4694" class="Function">typeOf</a> <a id="4701" class="Symbol">:</a> <a id="4703" class="Symbol">{</a><a id="4704" href="Function.Base.html#4704" class="Bound">A</a> <a id="4706" class="Symbol">:</a> <a id="4708" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4712" href="Function.Base.html#427" class="Generalizable">a</a><a id="4713" class="Symbol">}</a> <a id="4715" class="Symbol"></a> <a id="4717" href="Function.Base.html#4704" class="Bound">A</a> <a id="4719" class="Symbol"></a> <a id="4721" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4725" href="Function.Base.html#427" class="Generalizable">a</a>
<a id="4727" href="Function.Base.html#4694" class="Function">typeOf</a> <a id="4734" class="Symbol">{</a><a id="4735" class="Argument">A</a> <a id="4737" class="Symbol">=</a> <a id="4739" href="Function.Base.html#4739" class="Bound">A</a><a id="4740" class="Symbol">}</a> <a id="4742" class="Symbol">_</a> <a id="4744" class="Symbol">=</a> <a id="4746" href="Function.Base.html#4739" class="Bound">A</a>
<a id="4749" class="Comment">-- Construct an element of the given type by instance search.</a>
<a id="it"></a><a id="4812" href="Function.Base.html#4812" class="Function">it</a> <a id="4815" class="Symbol">:</a> <a id="4817" class="Symbol">{</a><a id="4818" href="Function.Base.html#4818" class="Bound">A</a> <a id="4820" class="Symbol">:</a> <a id="4822" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4826" href="Function.Base.html#427" class="Generalizable">a</a><a id="4827" class="Symbol">}</a> <a id="4829" class="Symbol"></a> <a id="4831" class="Symbol">{{</a><a id="4833" href="Function.Base.html#4818" class="Bound">A</a><a id="4834" class="Symbol">}}</a> <a id="4837" class="Symbol"></a> <a id="4839" href="Function.Base.html#4818" class="Bound">A</a>
<a id="4841" href="Function.Base.html#4812" class="Function">it</a> <a id="4844" class="Symbol">{{</a><a id="4846" href="Function.Base.html#4846" class="Bound">x</a><a id="4847" class="Symbol">}}</a> <a id="4850" class="Symbol">=</a> <a id="4852" href="Function.Base.html#4846" class="Bound">x</a>
<a id="4855" class="Comment">------------------------------------------------------------------------</a>
<a id="4928" class="Comment">-- Composition of a binary function with other functions</a>
<a id="4986" class="Keyword">infixr</a> <a id="4993" class="Number">0</a> <a id="4995" href="Function.Base.html#5115" class="Function Operator">_-⟪_⟫-_</a> <a id="5003" href="Function.Base.html#5889" class="Function Operator">_-⟨_⟫-_</a>
<a id="5011" class="Keyword">infixl</a> <a id="5018" class="Number">0</a> <a id="5020" href="Function.Base.html#5743" class="Function Operator">_-⟪_⟩-_</a>
<a id="5028" class="Keyword">infixr</a> <a id="5035" class="Number">1</a> <a id="5037" href="Function.Base.html#6015" class="Function Operator">_-⟨_⟩-_</a> <a id="5045" href="Function.Base.html#5382" class="Function Operator">_⟫-_</a> <a id="5051" href="Function.Base.html#5621" class="Function Operator">_⟩-_</a>
<a id="5057" class="Keyword">infixl</a> <a id="5064" class="Number">1</a> <a id="5066" href="Function.Base.html#6285" class="Function Operator">_on_</a> <a id="5071" href="Function.Base.html#6168" class="Function Operator">_on₂_</a> <a id="5077" href="Function.Base.html#5259" class="Function Operator">_-⟪_</a> <a id="5083" href="Function.Base.html#5502" class="Function Operator">_-⟨_</a>
<a id="5090" class="Comment">-- Two binary functions</a>
<a id="_-⟪_⟫-_"></a><a id="5115" href="Function.Base.html#5115" class="Function Operator">_-⟪_⟫-_</a> <a id="5123" class="Symbol">:</a> <a id="5125" class="Symbol">(</a><a id="5126" href="Function.Base.html#449" class="Generalizable">A</a> <a id="5128" class="Symbol"></a> <a id="5130" href="Function.Base.html#463" class="Generalizable">B</a> <a id="5132" class="Symbol"></a> <a id="5134" href="Function.Base.html#477" class="Generalizable">C</a><a id="5135" class="Symbol">)</a> <a id="5137" class="Symbol"></a> <a id="5139" class="Symbol">(</a><a id="5140" href="Function.Base.html#477" class="Generalizable">C</a> <a id="5142" class="Symbol"></a> <a id="5144" href="Function.Base.html#491" class="Generalizable">D</a> <a id="5146" class="Symbol"></a> <a id="5148" href="Function.Base.html#505" class="Generalizable">E</a><a id="5149" class="Symbol">)</a> <a id="5151" class="Symbol"></a> <a id="5153" class="Symbol">(</a><a id="5154" href="Function.Base.html#449" class="Generalizable">A</a> <a id="5156" class="Symbol"></a> <a id="5158" href="Function.Base.html#463" class="Generalizable">B</a> <a id="5160" class="Symbol"></a> <a id="5162" href="Function.Base.html#491" class="Generalizable">D</a><a id="5163" class="Symbol">)</a> <a id="5165" class="Symbol"></a> <a id="5167" class="Symbol">(</a><a id="5168" href="Function.Base.html#449" class="Generalizable">A</a> <a id="5170" class="Symbol"></a> <a id="5172" href="Function.Base.html#463" class="Generalizable">B</a> <a id="5174" class="Symbol"></a> <a id="5176" href="Function.Base.html#505" class="Generalizable">E</a><a id="5177" class="Symbol">)</a>
<a id="5179" href="Function.Base.html#5179" class="Bound">f</a> <a id="5181" href="Function.Base.html#5115" class="Function Operator">-⟪</a> <a id="5184" href="Function.Base.html#5184" class="Bound Operator">_*_</a> <a id="5188" href="Function.Base.html#5115" class="Function Operator">⟫-</a> <a id="5191" href="Function.Base.html#5191" class="Bound">g</a> <a id="5193" class="Symbol">=</a> <a id="5195" class="Symbol">λ</a> <a id="5197" href="Function.Base.html#5197" class="Bound">x</a> <a id="5199" href="Function.Base.html#5199" class="Bound">y</a> <a id="5201" class="Symbol"></a> <a id="5203" href="Function.Base.html#5179" class="Bound">f</a> <a id="5205" href="Function.Base.html#5197" class="Bound">x</a> <a id="5207" href="Function.Base.html#5199" class="Bound">y</a> <a id="5209" href="Function.Base.html#5184" class="Bound Operator">*</a> <a id="5211" href="Function.Base.html#5191" class="Bound">g</a> <a id="5213" href="Function.Base.html#5197" class="Bound">x</a> <a id="5215" href="Function.Base.html#5199" class="Bound">y</a>
<a id="5218" class="Comment">-- A single binary function on the left</a>
<a id="_-⟪_"></a><a id="5259" href="Function.Base.html#5259" class="Function Operator">_-⟪_</a> <a id="5265" class="Symbol">:</a> <a id="5267" class="Symbol">(</a><a id="5268" href="Function.Base.html#449" class="Generalizable">A</a> <a id="5270" class="Symbol"></a> <a id="5272" href="Function.Base.html#463" class="Generalizable">B</a> <a id="5274" class="Symbol"></a> <a id="5276" href="Function.Base.html#477" class="Generalizable">C</a><a id="5277" class="Symbol">)</a> <a id="5279" class="Symbol"></a> <a id="5281" class="Symbol">(</a><a id="5282" href="Function.Base.html#477" class="Generalizable">C</a> <a id="5284" class="Symbol"></a> <a id="5286" href="Function.Base.html#463" class="Generalizable">B</a> <a id="5288" class="Symbol"></a> <a id="5290" href="Function.Base.html#491" class="Generalizable">D</a><a id="5291" class="Symbol">)</a> <a id="5293" class="Symbol"></a> <a id="5295" class="Symbol">(</a><a id="5296" href="Function.Base.html#449" class="Generalizable">A</a> <a id="5298" class="Symbol"></a> <a id="5300" href="Function.Base.html#463" class="Generalizable">B</a> <a id="5302" class="Symbol"></a> <a id="5304" href="Function.Base.html#491" class="Generalizable">D</a><a id="5305" class="Symbol">)</a>
<a id="5307" href="Function.Base.html#5307" class="Bound">f</a> <a id="5309" href="Function.Base.html#5259" class="Function Operator">-⟪</a> <a id="5312" href="Function.Base.html#5312" class="Bound Operator">_*_</a> <a id="5316" href="Function.Base.html#5259" class="Function Operator"></a> <a id="5318" class="Symbol">=</a> <a id="5320" href="Function.Base.html#5307" class="Bound">f</a> <a id="5322" href="Function.Base.html#5115" class="Function Operator">-⟪</a> <a id="5325" href="Function.Base.html#5312" class="Bound Operator">_*_</a> <a id="5329" href="Function.Base.html#5115" class="Function Operator">⟫-</a> <a id="5332" href="Function.Base.html#673" class="Function">constᵣ</a>
<a id="5340" class="Comment">-- A single binary function on the right</a>
<a id="_⟫-_"></a><a id="5382" href="Function.Base.html#5382" class="Function Operator">_⟫-_</a> <a id="5388" class="Symbol">:</a> <a id="5390" class="Symbol">(</a><a id="5391" href="Function.Base.html#449" class="Generalizable">A</a> <a id="5393" class="Symbol"></a> <a id="5395" href="Function.Base.html#477" class="Generalizable">C</a> <a id="5397" class="Symbol"></a> <a id="5399" href="Function.Base.html#491" class="Generalizable">D</a><a id="5400" class="Symbol">)</a> <a id="5402" class="Symbol"></a> <a id="5404" class="Symbol">(</a><a id="5405" href="Function.Base.html#449" class="Generalizable">A</a> <a id="5407" class="Symbol"></a> <a id="5409" href="Function.Base.html#463" class="Generalizable">B</a> <a id="5411" class="Symbol"></a> <a id="5413" href="Function.Base.html#477" class="Generalizable">C</a><a id="5414" class="Symbol">)</a> <a id="5416" class="Symbol"></a> <a id="5418" class="Symbol">(</a><a id="5419" href="Function.Base.html#449" class="Generalizable">A</a> <a id="5421" class="Symbol"></a> <a id="5423" href="Function.Base.html#463" class="Generalizable">B</a> <a id="5425" class="Symbol"></a> <a id="5427" href="Function.Base.html#491" class="Generalizable">D</a><a id="5428" class="Symbol">)</a>
<a id="5430" href="Function.Base.html#5382" class="Function Operator"></a> <a id="5432" href="Function.Base.html#5432" class="Bound Operator">_*_</a> <a id="5436" href="Function.Base.html#5382" class="Function Operator">⟫-</a> <a id="5439" href="Function.Base.html#5439" class="Bound">g</a> <a id="5441" class="Symbol">=</a> <a id="5443" href="Function.Base.html#636" class="Function">const</a> <a id="5449" href="Function.Base.html#5115" class="Function Operator">-⟪</a> <a id="5452" href="Function.Base.html#5432" class="Bound Operator">_*_</a> <a id="5456" href="Function.Base.html#5115" class="Function Operator">⟫-</a> <a id="5459" href="Function.Base.html#5439" class="Bound">g</a>
<a id="5462" class="Comment">-- A single unary function on the left</a>
<a id="_-⟨_"></a><a id="5502" href="Function.Base.html#5502" class="Function Operator">_-⟨_</a> <a id="5508" class="Symbol">:</a> <a id="5510" class="Symbol">(</a><a id="5511" href="Function.Base.html#449" class="Generalizable">A</a> <a id="5513" class="Symbol"></a> <a id="5515" href="Function.Base.html#477" class="Generalizable">C</a><a id="5516" class="Symbol">)</a> <a id="5518" class="Symbol"></a> <a id="5520" class="Symbol">(</a><a id="5521" href="Function.Base.html#477" class="Generalizable">C</a> <a id="5523" class="Symbol"></a> <a id="5525" href="Function.Base.html#463" class="Generalizable">B</a> <a id="5527" class="Symbol"></a> <a id="5529" href="Function.Base.html#491" class="Generalizable">D</a><a id="5530" class="Symbol">)</a> <a id="5532" class="Symbol"></a> <a id="5534" class="Symbol">(</a><a id="5535" href="Function.Base.html#449" class="Generalizable">A</a> <a id="5537" class="Symbol"></a> <a id="5539" href="Function.Base.html#463" class="Generalizable">B</a> <a id="5541" class="Symbol"></a> <a id="5543" href="Function.Base.html#491" class="Generalizable">D</a><a id="5544" class="Symbol">)</a>
<a id="5546" href="Function.Base.html#5546" class="Bound">f</a> <a id="5548" href="Function.Base.html#5502" class="Function Operator">-⟨</a> <a id="5551" href="Function.Base.html#5551" class="Bound Operator">_*_</a> <a id="5555" href="Function.Base.html#5502" class="Function Operator"></a> <a id="5557" class="Symbol">=</a> <a id="5559" href="Function.Base.html#5546" class="Bound">f</a> <a id="5561" href="Function.Base.html#1219" class="Function Operator">∘₂</a> <a id="5564" href="Function.Base.html#636" class="Function">const</a> <a id="5570" href="Function.Base.html#5259" class="Function Operator">-⟪</a> <a id="5573" href="Function.Base.html#5551" class="Bound Operator">_*_</a> <a id="5577" href="Function.Base.html#5259" class="Function Operator"></a>
<a id="5580" class="Comment">-- A single unary function on the right</a>
<a id="_⟩-_"></a><a id="5621" href="Function.Base.html#5621" class="Function Operator">_⟩-_</a> <a id="5627" class="Symbol">:</a> <a id="5629" class="Symbol">(</a><a id="5630" href="Function.Base.html#449" class="Generalizable">A</a> <a id="5632" class="Symbol"></a> <a id="5634" href="Function.Base.html#477" class="Generalizable">C</a> <a id="5636" class="Symbol"></a> <a id="5638" href="Function.Base.html#491" class="Generalizable">D</a><a id="5639" class="Symbol">)</a> <a id="5641" class="Symbol"></a> <a id="5643" class="Symbol">(</a><a id="5644" href="Function.Base.html#463" class="Generalizable">B</a> <a id="5646" class="Symbol"></a> <a id="5648" href="Function.Base.html#477" class="Generalizable">C</a><a id="5649" class="Symbol">)</a> <a id="5651" class="Symbol"></a> <a id="5653" class="Symbol">(</a><a id="5654" href="Function.Base.html#449" class="Generalizable">A</a> <a id="5656" class="Symbol"></a> <a id="5658" href="Function.Base.html#463" class="Generalizable">B</a> <a id="5660" class="Symbol"></a> <a id="5662" href="Function.Base.html#491" class="Generalizable">D</a><a id="5663" class="Symbol">)</a>
<a id="5665" href="Function.Base.html#5621" class="Function Operator"></a> <a id="5667" href="Function.Base.html#5667" class="Bound Operator">_*_</a> <a id="5671" href="Function.Base.html#5621" class="Function Operator">⟩-</a> <a id="5674" href="Function.Base.html#5674" class="Bound">g</a> <a id="5676" class="Symbol">=</a> <a id="5678" href="Function.Base.html#5382" class="Function Operator"></a> <a id="5680" href="Function.Base.html#5667" class="Bound Operator">_*_</a> <a id="5684" href="Function.Base.html#5382" class="Function Operator">⟫-</a> <a id="5687" href="Function.Base.html#5674" class="Bound">g</a> <a id="5689" href="Function.Base.html#1219" class="Function Operator">∘₂</a> <a id="5692" href="Function.Base.html#673" class="Function">constᵣ</a>
<a id="5700" class="Comment">-- A binary function and a unary function</a>
<a id="_-⟪_⟩-_"></a><a id="5743" href="Function.Base.html#5743" class="Function Operator">_-⟪_⟩-_</a> <a id="5751" class="Symbol">:</a> <a id="5753" class="Symbol">(</a><a id="5754" href="Function.Base.html#449" class="Generalizable">A</a> <a id="5756" class="Symbol"></a> <a id="5758" href="Function.Base.html#463" class="Generalizable">B</a> <a id="5760" class="Symbol"></a> <a id="5762" href="Function.Base.html#477" class="Generalizable">C</a><a id="5763" class="Symbol">)</a> <a id="5765" class="Symbol"></a> <a id="5767" class="Symbol">(</a><a id="5768" href="Function.Base.html#477" class="Generalizable">C</a> <a id="5770" class="Symbol"></a> <a id="5772" href="Function.Base.html#491" class="Generalizable">D</a> <a id="5774" class="Symbol"></a> <a id="5776" href="Function.Base.html#505" class="Generalizable">E</a><a id="5777" class="Symbol">)</a> <a id="5779" class="Symbol"></a> <a id="5781" class="Symbol">(</a><a id="5782" href="Function.Base.html#463" class="Generalizable">B</a> <a id="5784" class="Symbol"></a> <a id="5786" href="Function.Base.html#491" class="Generalizable">D</a><a id="5787" class="Symbol">)</a> <a id="5789" class="Symbol"></a> <a id="5791" class="Symbol">(</a><a id="5792" href="Function.Base.html#449" class="Generalizable">A</a> <a id="5794" class="Symbol"></a> <a id="5796" href="Function.Base.html#463" class="Generalizable">B</a> <a id="5798" class="Symbol"></a> <a id="5800" href="Function.Base.html#505" class="Generalizable">E</a><a id="5801" class="Symbol">)</a>
<a id="5803" href="Function.Base.html#5803" class="Bound">f</a> <a id="5805" href="Function.Base.html#5743" class="Function Operator">-⟪</a> <a id="5808" href="Function.Base.html#5808" class="Bound Operator">_*_</a> <a id="5812" href="Function.Base.html#5743" class="Function Operator">⟩-</a> <a id="5815" href="Function.Base.html#5815" class="Bound">g</a> <a id="5817" class="Symbol">=</a> <a id="5819" href="Function.Base.html#5803" class="Bound">f</a> <a id="5821" href="Function.Base.html#5115" class="Function Operator">-⟪</a> <a id="5824" href="Function.Base.html#5808" class="Bound Operator">_*_</a> <a id="5828" href="Function.Base.html#5115" class="Function Operator">⟫-</a> <a id="5831" href="Function.Base.html#5621" class="Function Operator"></a> <a id="5833" href="Function.Base.html#673" class="Function">constᵣ</a> <a id="5840" href="Function.Base.html#5621" class="Function Operator">⟩-</a> <a id="5843" href="Function.Base.html#5815" class="Bound">g</a>
<a id="5846" class="Comment">-- A unary function and a binary function</a>
<a id="_-⟨_⟫-_"></a><a id="5889" href="Function.Base.html#5889" class="Function Operator">_-⟨_⟫-_</a> <a id="5897" class="Symbol">:</a> <a id="5899" class="Symbol">(</a><a id="5900" href="Function.Base.html#449" class="Generalizable">A</a> <a id="5902" class="Symbol"></a> <a id="5904" href="Function.Base.html#477" class="Generalizable">C</a><a id="5905" class="Symbol">)</a> <a id="5907" class="Symbol"></a> <a id="5909" class="Symbol">(</a><a id="5910" href="Function.Base.html#477" class="Generalizable">C</a> <a id="5912" class="Symbol"></a> <a id="5914" href="Function.Base.html#491" class="Generalizable">D</a> <a id="5916" class="Symbol"></a> <a id="5918" href="Function.Base.html#505" class="Generalizable">E</a><a id="5919" class="Symbol">)</a> <a id="5921" class="Symbol"></a> <a id="5923" class="Symbol">(</a><a id="5924" href="Function.Base.html#449" class="Generalizable">A</a> <a id="5926" class="Symbol"></a> <a id="5928" href="Function.Base.html#463" class="Generalizable">B</a> <a id="5930" class="Symbol"></a> <a id="5932" href="Function.Base.html#491" class="Generalizable">D</a><a id="5933" class="Symbol">)</a> <a id="5935" class="Symbol"></a> <a id="5937" class="Symbol">(</a><a id="5938" href="Function.Base.html#449" class="Generalizable">A</a> <a id="5940" class="Symbol"></a> <a id="5942" href="Function.Base.html#463" class="Generalizable">B</a> <a id="5944" class="Symbol"></a> <a id="5946" href="Function.Base.html#505" class="Generalizable">E</a><a id="5947" class="Symbol">)</a>
<a id="5949" href="Function.Base.html#5949" class="Bound">f</a> <a id="5951" href="Function.Base.html#5889" class="Function Operator">-⟨</a> <a id="5954" href="Function.Base.html#5954" class="Bound Operator">_*_</a> <a id="5958" href="Function.Base.html#5889" class="Function Operator">⟫-</a> <a id="5961" href="Function.Base.html#5961" class="Bound">g</a> <a id="5963" class="Symbol">=</a> <a id="5965" href="Function.Base.html#5949" class="Bound">f</a> <a id="5967" href="Function.Base.html#5502" class="Function Operator">-⟨</a> <a id="5970" href="Function.Base.html#636" class="Function">const</a> <a id="5976" href="Function.Base.html#5502" class="Function Operator"></a> <a id="5978" href="Function.Base.html#5115" class="Function Operator">-⟪</a> <a id="5981" href="Function.Base.html#5954" class="Bound Operator">_*_</a> <a id="5985" href="Function.Base.html#5115" class="Function Operator">⟫-</a> <a id="5988" href="Function.Base.html#5961" class="Bound">g</a>
<a id="5991" class="Comment">-- Two unary functions</a>
<a id="_-⟨_⟩-_"></a><a id="6015" href="Function.Base.html#6015" class="Function Operator">_-⟨_⟩-_</a> <a id="6023" class="Symbol">:</a> <a id="6025" class="Symbol">(</a><a id="6026" href="Function.Base.html#449" class="Generalizable">A</a> <a id="6028" class="Symbol"></a> <a id="6030" href="Function.Base.html#477" class="Generalizable">C</a><a id="6031" class="Symbol">)</a> <a id="6033" class="Symbol"></a> <a id="6035" class="Symbol">(</a><a id="6036" href="Function.Base.html#477" class="Generalizable">C</a> <a id="6038" class="Symbol"></a> <a id="6040" href="Function.Base.html#491" class="Generalizable">D</a> <a id="6042" class="Symbol"></a> <a id="6044" href="Function.Base.html#505" class="Generalizable">E</a><a id="6045" class="Symbol">)</a> <a id="6047" class="Symbol"></a> <a id="6049" class="Symbol">(</a><a id="6050" href="Function.Base.html#463" class="Generalizable">B</a> <a id="6052" class="Symbol"></a> <a id="6054" href="Function.Base.html#491" class="Generalizable">D</a><a id="6055" class="Symbol">)</a> <a id="6057" class="Symbol"></a> <a id="6059" class="Symbol">(</a><a id="6060" href="Function.Base.html#449" class="Generalizable">A</a> <a id="6062" class="Symbol"></a> <a id="6064" href="Function.Base.html#463" class="Generalizable">B</a> <a id="6066" class="Symbol"></a> <a id="6068" href="Function.Base.html#505" class="Generalizable">E</a><a id="6069" class="Symbol">)</a>
<a id="6071" href="Function.Base.html#6071" class="Bound">f</a> <a id="6073" href="Function.Base.html#6015" class="Function Operator">-⟨</a> <a id="6076" href="Function.Base.html#6076" class="Bound Operator">_*_</a> <a id="6080" href="Function.Base.html#6015" class="Function Operator">⟩-</a> <a id="6083" href="Function.Base.html#6083" class="Bound">g</a> <a id="6085" class="Symbol">=</a> <a id="6087" href="Function.Base.html#6071" class="Bound">f</a> <a id="6089" href="Function.Base.html#5502" class="Function Operator">-⟨</a> <a id="6092" href="Function.Base.html#636" class="Function">const</a> <a id="6098" href="Function.Base.html#5502" class="Function Operator"></a> <a id="6100" href="Function.Base.html#5115" class="Function Operator">-⟪</a> <a id="6103" href="Function.Base.html#6076" class="Bound Operator">_*_</a> <a id="6107" href="Function.Base.html#5115" class="Function Operator">⟫-</a> <a id="6110" href="Function.Base.html#5621" class="Function Operator"></a> <a id="6112" href="Function.Base.html#673" class="Function">constᵣ</a> <a id="6119" href="Function.Base.html#5621" class="Function Operator">⟩-</a> <a id="6122" href="Function.Base.html#6083" class="Bound">g</a>
<a id="6125" class="Comment">-- A single binary function on both sides</a>
<a id="_on₂_"></a><a id="6168" href="Function.Base.html#6168" class="Function Operator">_on₂_</a> <a id="6174" class="Symbol">:</a> <a id="6176" class="Symbol">(</a><a id="6177" href="Function.Base.html#477" class="Generalizable">C</a> <a id="6179" class="Symbol"></a> <a id="6181" href="Function.Base.html#477" class="Generalizable">C</a> <a id="6183" class="Symbol"></a> <a id="6185" href="Function.Base.html#491" class="Generalizable">D</a><a id="6186" class="Symbol">)</a> <a id="6188" class="Symbol"></a> <a id="6190" class="Symbol">(</a><a id="6191" href="Function.Base.html#449" class="Generalizable">A</a> <a id="6193" class="Symbol"></a> <a id="6195" href="Function.Base.html#463" class="Generalizable">B</a> <a id="6197" class="Symbol"></a> <a id="6199" href="Function.Base.html#477" class="Generalizable">C</a><a id="6200" class="Symbol">)</a> <a id="6202" class="Symbol"></a> <a id="6204" class="Symbol">(</a><a id="6205" href="Function.Base.html#449" class="Generalizable">A</a> <a id="6207" class="Symbol"></a> <a id="6209" href="Function.Base.html#463" class="Generalizable">B</a> <a id="6211" class="Symbol"></a> <a id="6213" href="Function.Base.html#491" class="Generalizable">D</a><a id="6214" class="Symbol">)</a>
<a id="6216" href="Function.Base.html#6216" class="Bound Operator">_*_</a> <a id="6220" href="Function.Base.html#6168" class="Function Operator">on₂</a> <a id="6224" href="Function.Base.html#6224" class="Bound">f</a> <a id="6226" class="Symbol">=</a> <a id="6228" href="Function.Base.html#6224" class="Bound">f</a> <a id="6230" href="Function.Base.html#5115" class="Function Operator">-⟪</a> <a id="6233" href="Function.Base.html#6216" class="Bound Operator">_*_</a> <a id="6237" href="Function.Base.html#5115" class="Function Operator">⟫-</a> <a id="6240" href="Function.Base.html#6224" class="Bound">f</a>
<a id="6243" class="Comment">-- A single unary function on both sides</a>
<a id="_on_"></a><a id="6285" href="Function.Base.html#6285" class="Function Operator">_on_</a> <a id="6290" class="Symbol">:</a> <a id="6292" class="Symbol">(</a><a id="6293" href="Function.Base.html#463" class="Generalizable">B</a> <a id="6295" class="Symbol"></a> <a id="6297" href="Function.Base.html#463" class="Generalizable">B</a> <a id="6299" class="Symbol"></a> <a id="6301" href="Function.Base.html#477" class="Generalizable">C</a><a id="6302" class="Symbol">)</a> <a id="6304" class="Symbol"></a> <a id="6306" class="Symbol">(</a><a id="6307" href="Function.Base.html#449" class="Generalizable">A</a> <a id="6309" class="Symbol"></a> <a id="6311" href="Function.Base.html#463" class="Generalizable">B</a><a id="6312" class="Symbol">)</a> <a id="6314" class="Symbol"></a> <a id="6316" class="Symbol">(</a><a id="6317" href="Function.Base.html#449" class="Generalizable">A</a> <a id="6319" class="Symbol"></a> <a id="6321" href="Function.Base.html#449" class="Generalizable">A</a> <a id="6323" class="Symbol"></a> <a id="6325" href="Function.Base.html#477" class="Generalizable">C</a><a id="6326" class="Symbol">)</a>
<a id="6328" href="Function.Base.html#6328" class="Bound Operator">_*_</a> <a id="6332" href="Function.Base.html#6285" class="Function Operator">on</a> <a id="6335" href="Function.Base.html#6335" class="Bound">f</a> <a id="6337" class="Symbol">=</a> <a id="6339" href="Function.Base.html#6335" class="Bound">f</a> <a id="6341" href="Function.Base.html#6015" class="Function Operator">-⟨</a> <a id="6344" href="Function.Base.html#6328" class="Bound Operator">_*_</a> <a id="6348" href="Function.Base.html#6015" class="Function Operator">⟩-</a> <a id="6351" href="Function.Base.html#6335" class="Bound">f</a>
<a id="_-[_]-_"></a><a id="6354" href="Function.Base.html#6354" class="Function Operator">_-[_]-_</a> <a id="6362" class="Symbol">=</a> <a id="6364" href="Function.Base.html#5115" class="Function Operator">_-⟪_⟫-_</a>
<a id="6372" class="Symbol">{-#</a> <a id="6376" class="Keyword">WARNING_ON_USAGE</a> <a id="6393" class="Pragma">_-[_]-_</a>
<a id="6401" class="String">&quot;Warning: Function._-[_]-_ was deprecated in v1.4.
Please use _-⟪_⟫-_ instead.&quot;</a>
<a id="6481" class="Symbol">#-}</a>
</pre></body></html>

424
misc/Function.Bundles.html Normal file
View File

@ -0,0 +1,424 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Function.Bundles</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Bundles for types of functions</a>
<a id="140" class="Comment">------------------------------------------------------------------------</a>
<a id="214" class="Comment">-- The contents of this file should usually be accessed from `Function`.</a>
<a id="288" class="Comment">-- Note that these bundles differ from those found elsewhere in other</a>
<a id="358" class="Comment">-- library hierarchies as they take Setoids as parameters. This is</a>
<a id="425" class="Comment">-- because a function is of no use without knowing what its domain and</a>
<a id="496" class="Comment">-- codomain is, as well which equalities are being considered over them.</a>
<a id="569" class="Comment">-- One consequence of this is that they are not built from the</a>
<a id="632" class="Comment">-- definitions found in `Function.Structures` as is usually the case in</a>
<a id="704" class="Comment">-- other library hierarchies, as this would duplicate the equality</a>
<a id="771" class="Comment">-- axioms.</a>
<a id="783" class="Symbol">{-#</a> <a id="787" class="Keyword">OPTIONS</a> <a id="795" class="Pragma">--without-K</a> <a id="807" class="Pragma">--safe</a> <a id="814" class="Symbol">#-}</a>
<a id="819" class="Keyword">module</a> <a id="826" href="Function.Bundles.html" class="Module">Function.Bundles</a> <a id="843" class="Keyword">where</a>
<a id="850" class="Keyword">import</a> <a id="857" href="Function.Definitions.html" class="Module">Function.Definitions</a> <a id="878" class="Symbol">as</a> <a id="881" class="Module">FunctionDefinitions</a>
<a id="901" class="Keyword">import</a> <a id="908" href="Function.Structures.html" class="Module">Function.Structures</a> <a id="928" class="Symbol">as</a> <a id="931" class="Module">FunctionStructures</a>
<a id="950" class="Keyword">open</a> <a id="955" class="Keyword">import</a> <a id="962" href="Level.html" class="Module">Level</a> <a id="968" class="Keyword">using</a> <a id="974" class="Symbol">(</a><a id="975" href="Agda.Primitive.html#597" class="Postulate">Level</a><a id="980" class="Symbol">;</a> <a id="982" href="Agda.Primitive.html#810" class="Primitive Operator">_⊔_</a><a id="985" class="Symbol">;</a> <a id="987" href="Agda.Primitive.html#780" class="Primitive">suc</a><a id="990" class="Symbol">)</a>
<a id="992" class="Keyword">open</a> <a id="997" class="Keyword">import</a> <a id="1004" href="Data.Product.html" class="Module">Data.Product</a> <a id="1017" class="Keyword">using</a> <a id="1023" class="Symbol">(</a><a id="1024" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">_,_</a><a id="1027" class="Symbol">;</a> <a id="1029" href="Agda.Builtin.Sigma.html#252" class="Field">proj₁</a><a id="1034" class="Symbol">;</a> <a id="1036" href="Agda.Builtin.Sigma.html#264" class="Field">proj₂</a><a id="1041" class="Symbol">)</a>
<a id="1043" class="Keyword">open</a> <a id="1048" class="Keyword">import</a> <a id="1055" href="Relation.Binary.html" class="Module">Relation.Binary</a> <a id="1071" class="Keyword">hiding</a> <a id="1078" class="Symbol">(</a><a id="1079" href="Relation.Binary.Core.html#1325" class="Function Operator">_⇔_</a><a id="1082" class="Symbol">)</a>
<a id="1084" class="Keyword">open</a> <a id="1089" class="Keyword">import</a> <a id="1096" href="Relation.Binary.PropositionalEquality.html" class="Module">Relation.Binary.PropositionalEquality</a> <a id="1134" class="Symbol">as</a> <a id="1137" class="Module"></a>
<a id="1141" class="Keyword">using</a> <a id="1147" class="Symbol">(</a><a id="1148" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a><a id="1151" class="Symbol">)</a>
<a id="1153" class="Keyword">open</a> <a id="1158" href="Relation.Binary.Bundles.html#1009" class="Module">Setoid</a> <a id="1165" class="Keyword">using</a> <a id="1171" class="Symbol">(</a><a id="1172" href="Relation.Binary.Bundles.html#1132" class="Field">isEquivalence</a><a id="1185" class="Symbol">)</a>
<a id="1188" class="Keyword">private</a>
<a id="1198" class="Keyword">variable</a>
<a id="1211" href="Function.Bundles.html#1211" class="Generalizable">a</a> <a id="1213" href="Function.Bundles.html#1213" class="Generalizable">b</a> <a id="1215" href="Function.Bundles.html#1215" class="Generalizable">ℓ₁</a> <a id="1218" href="Function.Bundles.html#1218" class="Generalizable">ℓ₂</a> <a id="1221" class="Symbol">:</a> <a id="1223" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="1230" class="Comment">------------------------------------------------------------------------</a>
<a id="1303" class="Comment">-- Setoid bundles</a>
<a id="1321" class="Comment">------------------------------------------------------------------------</a>
<a id="1395" class="Keyword">module</a> <a id="1402" href="Function.Bundles.html#1402" class="Module">_</a> <a id="1404" class="Symbol">(</a><a id="1405" href="Function.Bundles.html#1405" class="Bound">From</a> <a id="1410" class="Symbol">:</a> <a id="1412" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="1419" href="Function.Bundles.html#1211" class="Generalizable">a</a> <a id="1421" href="Function.Bundles.html#1215" class="Generalizable">ℓ₁</a><a id="1423" class="Symbol">)</a> <a id="1425" class="Symbol">(</a><a id="1426" href="Function.Bundles.html#1426" class="Bound">To</a> <a id="1429" class="Symbol">:</a> <a id="1431" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="1438" href="Function.Bundles.html#1213" class="Generalizable">b</a> <a id="1440" href="Function.Bundles.html#1218" class="Generalizable">ℓ₂</a><a id="1442" class="Symbol">)</a> <a id="1444" class="Keyword">where</a>
<a id="1453" class="Keyword">open</a> <a id="1458" href="Relation.Binary.Bundles.html#1009" class="Module">Setoid</a> <a id="1465" href="Function.Bundles.html#1405" class="Bound">From</a> <a id="1470" class="Keyword">using</a> <a id="1476" class="Symbol">()</a> <a id="1479" class="Keyword">renaming</a> <a id="1488" class="Symbol">(</a><a id="1489" href="Relation.Binary.Bundles.html#1072" class="Field">Carrier</a> <a id="1497" class="Symbol">to</a> <a id="1500" class="Field">A</a><a id="1501" class="Symbol">;</a> <a id="1503" href="Relation.Binary.Bundles.html#1098" class="Field Operator">_≈_</a> <a id="1507" class="Symbol">to</a> <a id="1510" class="Field Operator">_≈₁_</a><a id="1514" class="Symbol">)</a>
<a id="1518" class="Keyword">open</a> <a id="1523" href="Relation.Binary.Bundles.html#1009" class="Module">Setoid</a> <a id="1530" href="Function.Bundles.html#1426" class="Bound">To</a> <a id="1535" class="Keyword">using</a> <a id="1541" class="Symbol">()</a> <a id="1544" class="Keyword">renaming</a> <a id="1553" class="Symbol">(</a><a id="1554" href="Relation.Binary.Bundles.html#1072" class="Field">Carrier</a> <a id="1562" class="Symbol">to</a> <a id="1565" class="Field">B</a><a id="1566" class="Symbol">;</a> <a id="1568" href="Relation.Binary.Bundles.html#1098" class="Field Operator">_≈_</a> <a id="1572" class="Symbol">to</a> <a id="1575" class="Field Operator">_≈₂_</a><a id="1579" class="Symbol">)</a>
<a id="1583" class="Keyword">open</a> <a id="1588" href="Function.Definitions.html" class="Module">FunctionDefinitions</a> <a id="1608" href="Function.Bundles.html#1510" class="Function Operator">_≈₁_</a> <a id="1613" href="Function.Bundles.html#1575" class="Field Operator">_≈₂_</a>
<a id="1620" class="Keyword">open</a> <a id="1625" href="Function.Structures.html" class="Module">FunctionStructures</a> <a id="1645" href="Function.Bundles.html#1510" class="Function Operator">_≈₁_</a> <a id="1650" href="Function.Bundles.html#1575" class="Field Operator">_≈₂_</a>
<a id="1656" class="Comment">------------------------------------------------------------------------</a>
<a id="1729" class="Comment">-- Bundles with one element</a>
<a id="1760" class="Comment">-- Called `Func` rather than `Function` in order to avoid clashing</a>
<a id="1829" class="Comment">-- with the top-level module.</a>
<a id="1861" class="Keyword">record</a> <a id="1868" href="Function.Bundles.html#1868" class="Record">Func</a> <a id="1873" class="Symbol">:</a> <a id="1875" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1879" class="Symbol">(</a><a id="1880" href="Function.Bundles.html#1419" class="Bound">a</a> <a id="1882" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1884" href="Function.Bundles.html#1438" class="Bound">b</a> <a id="1886" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1888" href="Function.Bundles.html#1421" class="Bound">ℓ₁</a> <a id="1891" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1893" href="Function.Bundles.html#1440" class="Bound">ℓ₂</a><a id="1895" class="Symbol">)</a> <a id="1897" class="Keyword">where</a>
<a id="1907" class="Keyword">field</a>
<a id="1919" href="Function.Bundles.html#1919" class="Field">f</a> <a id="1924" class="Symbol">:</a> <a id="1926" href="Function.Bundles.html#1500" class="Function">A</a> <a id="1928" class="Symbol"></a> <a id="1930" href="Function.Bundles.html#1565" class="Field">B</a>
<a id="1938" href="Function.Bundles.html#1938" class="Field">cong</a> <a id="1943" class="Symbol">:</a> <a id="1945" href="Function.Bundles.html#1919" class="Field">f</a> <a id="1947" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="1957" href="Function.Bundles.html#1510" class="Function Operator">_≈₁_</a> <a id="1962" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="1964" href="Function.Bundles.html#1575" class="Field Operator">_≈₂_</a>
<a id="1974" href="Function.Bundles.html#1974" class="Function">isCongruent</a> <a id="1986" class="Symbol">:</a> <a id="1988" href="Function.Structures.html#841" class="Record">IsCongruent</a> <a id="2000" href="Function.Bundles.html#1919" class="Field">f</a>
<a id="2006" href="Function.Bundles.html#1974" class="Function">isCongruent</a> <a id="2018" class="Symbol">=</a> <a id="2020" class="Keyword">record</a>
<a id="2033" class="Symbol">{</a> <a id="2035" href="Function.Structures.html#907" class="Field">cong</a> <a id="2050" class="Symbol">=</a> <a id="2052" href="Function.Bundles.html#1938" class="Field">cong</a>
<a id="2063" class="Symbol">;</a> <a id="2065" href="Function.Structures.html#950" class="Field">isEquivalence₁</a> <a id="2080" class="Symbol">=</a> <a id="2082" href="Relation.Binary.Bundles.html#1132" class="Field">isEquivalence</a> <a id="2096" href="Function.Bundles.html#1405" class="Bound">From</a>
<a id="2107" class="Symbol">;</a> <a id="2109" href="Function.Structures.html#990" class="Field">isEquivalence₂</a> <a id="2124" class="Symbol">=</a> <a id="2126" href="Relation.Binary.Bundles.html#1132" class="Field">isEquivalence</a> <a id="2140" href="Function.Bundles.html#1426" class="Bound">To</a>
<a id="2149" class="Symbol">}</a>
<a id="2156" class="Keyword">open</a> <a id="2161" href="Function.Structures.html#841" class="Module">IsCongruent</a> <a id="2173" href="Function.Bundles.html#1974" class="Function">isCongruent</a> <a id="2185" class="Keyword">public</a>
<a id="2198" class="Keyword">using</a> <a id="2204" class="Symbol">(</a><a id="2205" class="Keyword">module</a> <a id="2212" href="Function.Structures.html#1036" class="Module">Eq₁</a><a id="2215" class="Symbol">;</a> <a id="2217" class="Keyword">module</a> <a id="2224" href="Function.Structures.html#1180" class="Module">Eq₂</a><a id="2227" class="Symbol">)</a>
<a id="2233" class="Keyword">record</a> <a id="2240" href="Function.Bundles.html#2240" class="Record">Injection</a> <a id="2250" class="Symbol">:</a> <a id="2252" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2256" class="Symbol">(</a><a id="2257" href="Function.Bundles.html#1419" class="Bound">a</a> <a id="2259" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2261" href="Function.Bundles.html#1438" class="Bound">b</a> <a id="2263" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2265" href="Function.Bundles.html#1421" class="Bound">ℓ₁</a> <a id="2268" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2270" href="Function.Bundles.html#1440" class="Bound">ℓ₂</a><a id="2272" class="Symbol">)</a> <a id="2274" class="Keyword">where</a>
<a id="2284" class="Keyword">field</a>
<a id="2296" href="Function.Bundles.html#2296" class="Field">f</a> <a id="2308" class="Symbol">:</a> <a id="2310" href="Function.Bundles.html#1500" class="Function">A</a> <a id="2312" class="Symbol"></a> <a id="2314" href="Function.Bundles.html#1565" class="Field">B</a>
<a id="2322" href="Function.Bundles.html#2322" class="Field">cong</a> <a id="2334" class="Symbol">:</a> <a id="2336" href="Function.Bundles.html#2296" class="Field">f</a> <a id="2338" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="2348" href="Function.Bundles.html#1510" class="Function Operator">_≈₁_</a> <a id="2353" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="2355" href="Function.Bundles.html#1575" class="Field Operator">_≈₂_</a>
<a id="2366" href="Function.Bundles.html#2366" class="Field">injective</a> <a id="2378" class="Symbol">:</a> <a id="2380" href="Function.Definitions.html#889" class="Function">Injective</a> <a id="2390" href="Function.Bundles.html#2296" class="Field">f</a>
<a id="2397" href="Function.Bundles.html#2397" class="Function">function</a> <a id="2406" class="Symbol">:</a> <a id="2408" href="Function.Bundles.html#1868" class="Record">Func</a>
<a id="2417" href="Function.Bundles.html#2397" class="Function">function</a> <a id="2426" class="Symbol">=</a> <a id="2428" class="Keyword">record</a>
<a id="2441" class="Symbol">{</a> <a id="2443" href="Function.Bundles.html#1919" class="Field">f</a> <a id="2448" class="Symbol">=</a> <a id="2450" href="Function.Bundles.html#2296" class="Field">f</a>
<a id="2458" class="Symbol">;</a> <a id="2460" href="Function.Bundles.html#1938" class="Field">cong</a> <a id="2465" class="Symbol">=</a> <a id="2467" href="Function.Bundles.html#2322" class="Field">cong</a>
<a id="2478" class="Symbol">}</a>
<a id="2485" class="Keyword">open</a> <a id="2490" href="Function.Bundles.html#1868" class="Module">Func</a> <a id="2495" href="Function.Bundles.html#2397" class="Function">function</a> <a id="2504" class="Keyword">public</a>
<a id="2517" class="Keyword">hiding</a> <a id="2524" class="Symbol">(</a><a id="2525" href="Function.Bundles.html#1919" class="Field">f</a><a id="2526" class="Symbol">;</a> <a id="2528" href="Function.Bundles.html#1938" class="Field">cong</a><a id="2532" class="Symbol">)</a>
<a id="2539" href="Function.Bundles.html#2539" class="Function">isInjection</a> <a id="2551" class="Symbol">:</a> <a id="2553" href="Function.Structures.html#1323" class="Record">IsInjection</a> <a id="2565" href="Function.Bundles.html#2296" class="Field">f</a>
<a id="2571" href="Function.Bundles.html#2539" class="Function">isInjection</a> <a id="2583" class="Symbol">=</a> <a id="2585" class="Keyword">record</a>
<a id="2598" class="Symbol">{</a> <a id="2600" href="Function.Structures.html#1389" class="Field">isCongruent</a> <a id="2612" class="Symbol">=</a> <a id="2614" href="Function.Bundles.html#1974" class="Function">isCongruent</a>
<a id="2632" class="Symbol">;</a> <a id="2634" href="Function.Structures.html#1421" class="Field">injective</a> <a id="2646" class="Symbol">=</a> <a id="2648" href="Function.Bundles.html#2366" class="Field">injective</a>
<a id="2664" class="Symbol">}</a>
<a id="2670" class="Keyword">record</a> <a id="2677" href="Function.Bundles.html#2677" class="Record">Surjection</a> <a id="2688" class="Symbol">:</a> <a id="2690" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2694" class="Symbol">(</a><a id="2695" href="Function.Bundles.html#1419" class="Bound">a</a> <a id="2697" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2699" href="Function.Bundles.html#1438" class="Bound">b</a> <a id="2701" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2703" href="Function.Bundles.html#1421" class="Bound">ℓ₁</a> <a id="2706" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2708" href="Function.Bundles.html#1440" class="Bound">ℓ₂</a><a id="2710" class="Symbol">)</a> <a id="2712" class="Keyword">where</a>
<a id="2722" class="Keyword">field</a>
<a id="2734" href="Function.Bundles.html#2734" class="Field">f</a> <a id="2745" class="Symbol">:</a> <a id="2747" href="Function.Bundles.html#1500" class="Function">A</a> <a id="2749" class="Symbol"></a> <a id="2751" href="Function.Bundles.html#1565" class="Field">B</a>
<a id="2759" href="Function.Bundles.html#2759" class="Field">cong</a> <a id="2770" class="Symbol">:</a> <a id="2772" href="Function.Bundles.html#2734" class="Field">f</a> <a id="2774" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="2784" href="Function.Bundles.html#1510" class="Function Operator">_≈₁_</a> <a id="2789" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="2791" href="Function.Bundles.html#1575" class="Field Operator">_≈₂_</a>
<a id="2802" href="Function.Bundles.html#2802" class="Field">surjective</a> <a id="2813" class="Symbol">:</a> <a id="2815" href="Function.Definitions.Core2.html#663" class="Function">Surjective</a> <a id="2826" href="Function.Bundles.html#2734" class="Field">f</a>
<a id="2833" href="Function.Bundles.html#2833" class="Function">isCongruent</a> <a id="2845" class="Symbol">:</a> <a id="2847" href="Function.Structures.html#841" class="Record">IsCongruent</a> <a id="2859" href="Function.Bundles.html#2734" class="Field">f</a>
<a id="2865" href="Function.Bundles.html#2833" class="Function">isCongruent</a> <a id="2877" class="Symbol">=</a> <a id="2879" class="Keyword">record</a>
<a id="2892" class="Symbol">{</a> <a id="2894" href="Function.Structures.html#907" class="Field">cong</a> <a id="2909" class="Symbol">=</a> <a id="2911" href="Function.Bundles.html#2759" class="Field">cong</a>
<a id="2922" class="Symbol">;</a> <a id="2924" href="Function.Structures.html#950" class="Field">isEquivalence₁</a> <a id="2939" class="Symbol">=</a> <a id="2941" href="Relation.Binary.Bundles.html#1132" class="Field">isEquivalence</a> <a id="2955" href="Function.Bundles.html#1405" class="Bound">From</a>
<a id="2966" class="Symbol">;</a> <a id="2968" href="Function.Structures.html#990" class="Field">isEquivalence₂</a> <a id="2983" class="Symbol">=</a> <a id="2985" href="Relation.Binary.Bundles.html#1132" class="Field">isEquivalence</a> <a id="2999" href="Function.Bundles.html#1426" class="Bound">To</a>
<a id="3008" class="Symbol">}</a>
<a id="3015" class="Keyword">open</a> <a id="3020" href="Function.Structures.html#841" class="Module">IsCongruent</a> <a id="3032" href="Function.Bundles.html#2833" class="Function">isCongruent</a> <a id="3044" class="Keyword">public</a> <a id="3051" class="Keyword">using</a> <a id="3057" class="Symbol">(</a><a id="3058" class="Keyword">module</a> <a id="3065" href="Function.Structures.html#1036" class="Module">Eq₁</a><a id="3068" class="Symbol">;</a> <a id="3070" class="Keyword">module</a> <a id="3077" href="Function.Structures.html#1180" class="Module">Eq₂</a><a id="3080" class="Symbol">)</a>
<a id="3087" href="Function.Bundles.html#3087" class="Function">isSurjection</a> <a id="3100" class="Symbol">:</a> <a id="3102" href="Function.Structures.html#1505" class="Record">IsSurjection</a> <a id="3115" href="Function.Bundles.html#2734" class="Field">f</a>
<a id="3121" href="Function.Bundles.html#3087" class="Function">isSurjection</a> <a id="3134" class="Symbol">=</a> <a id="3136" class="Keyword">record</a>
<a id="3149" class="Symbol">{</a> <a id="3151" href="Function.Structures.html#1572" class="Field">isCongruent</a> <a id="3163" class="Symbol">=</a> <a id="3165" href="Function.Bundles.html#2833" class="Function">isCongruent</a>
<a id="3183" class="Symbol">;</a> <a id="3185" href="Function.Structures.html#1604" class="Field">surjective</a> <a id="3197" class="Symbol">=</a> <a id="3199" href="Function.Bundles.html#2802" class="Field">surjective</a>
<a id="3216" class="Symbol">}</a>
<a id="3222" class="Keyword">record</a> <a id="3229" href="Function.Bundles.html#3229" class="Record">Bijection</a> <a id="3239" class="Symbol">:</a> <a id="3241" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3245" class="Symbol">(</a><a id="3246" href="Function.Bundles.html#1419" class="Bound">a</a> <a id="3248" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="3250" href="Function.Bundles.html#1438" class="Bound">b</a> <a id="3252" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="3254" href="Function.Bundles.html#1421" class="Bound">ℓ₁</a> <a id="3257" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="3259" href="Function.Bundles.html#1440" class="Bound">ℓ₂</a><a id="3261" class="Symbol">)</a> <a id="3263" class="Keyword">where</a>
<a id="3273" class="Keyword">field</a>
<a id="3285" href="Function.Bundles.html#3285" class="Field">f</a> <a id="3295" class="Symbol">:</a> <a id="3297" href="Function.Bundles.html#1500" class="Function">A</a> <a id="3299" class="Symbol"></a> <a id="3301" href="Function.Bundles.html#1565" class="Field">B</a>
<a id="3309" href="Function.Bundles.html#3309" class="Field">cong</a> <a id="3319" class="Symbol">:</a> <a id="3321" href="Function.Bundles.html#3285" class="Field">f</a> <a id="3323" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="3333" href="Function.Bundles.html#1510" class="Function Operator">_≈₁_</a> <a id="3338" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="3340" href="Function.Bundles.html#1575" class="Field Operator">_≈₂_</a>
<a id="3351" href="Function.Bundles.html#3351" class="Field">bijective</a> <a id="3361" class="Symbol">:</a> <a id="3363" href="Function.Definitions.html#1019" class="Function">Bijective</a> <a id="3373" href="Function.Bundles.html#3285" class="Field">f</a>
<a id="3380" href="Function.Bundles.html#3380" class="Function">injective</a> <a id="3390" class="Symbol">:</a> <a id="3392" href="Function.Definitions.html#889" class="Function">Injective</a> <a id="3402" href="Function.Bundles.html#3285" class="Field">f</a>
<a id="3408" href="Function.Bundles.html#3380" class="Function">injective</a> <a id="3418" class="Symbol">=</a> <a id="3420" href="Agda.Builtin.Sigma.html#252" class="Field">proj₁</a> <a id="3426" href="Function.Bundles.html#3351" class="Field">bijective</a>
<a id="3441" href="Function.Bundles.html#3441" class="Function">surjective</a> <a id="3452" class="Symbol">:</a> <a id="3454" href="Function.Definitions.Core2.html#663" class="Function">Surjective</a> <a id="3465" href="Function.Bundles.html#3285" class="Field">f</a>
<a id="3471" href="Function.Bundles.html#3441" class="Function">surjective</a> <a id="3482" class="Symbol">=</a> <a id="3484" href="Agda.Builtin.Sigma.html#264" class="Field">proj₂</a> <a id="3490" href="Function.Bundles.html#3351" class="Field">bijective</a>
<a id="3505" href="Function.Bundles.html#3505" class="Function">injection</a> <a id="3515" class="Symbol">:</a> <a id="3517" href="Function.Bundles.html#2240" class="Record">Injection</a>
<a id="3531" href="Function.Bundles.html#3505" class="Function">injection</a> <a id="3541" class="Symbol">=</a> <a id="3543" class="Keyword">record</a>
<a id="3556" class="Symbol">{</a> <a id="3558" href="Function.Bundles.html#2322" class="Field">cong</a> <a id="3568" class="Symbol">=</a> <a id="3570" href="Function.Bundles.html#3309" class="Field">cong</a>
<a id="3581" class="Symbol">;</a> <a id="3583" href="Function.Bundles.html#2366" class="Field">injective</a> <a id="3593" class="Symbol">=</a> <a id="3595" href="Function.Bundles.html#3380" class="Function">injective</a>
<a id="3611" class="Symbol">}</a>
<a id="3618" href="Function.Bundles.html#3618" class="Function">surjection</a> <a id="3629" class="Symbol">:</a> <a id="3631" href="Function.Bundles.html#2677" class="Record">Surjection</a>
<a id="3646" href="Function.Bundles.html#3618" class="Function">surjection</a> <a id="3657" class="Symbol">=</a> <a id="3659" class="Keyword">record</a>
<a id="3672" class="Symbol">{</a> <a id="3674" href="Function.Bundles.html#2759" class="Field">cong</a> <a id="3685" class="Symbol">=</a> <a id="3687" href="Function.Bundles.html#3309" class="Field">cong</a>
<a id="3698" class="Symbol">;</a> <a id="3700" href="Function.Bundles.html#2802" class="Field">surjective</a> <a id="3711" class="Symbol">=</a> <a id="3713" href="Function.Bundles.html#3441" class="Function">surjective</a>
<a id="3730" class="Symbol">}</a>
<a id="3737" class="Keyword">open</a> <a id="3742" href="Function.Bundles.html#2240" class="Module">Injection</a> <a id="3753" href="Function.Bundles.html#3505" class="Function">injection</a> <a id="3764" class="Keyword">public</a> <a id="3771" class="Keyword">using</a> <a id="3777" class="Symbol">(</a><a id="3778" href="Function.Bundles.html#2539" class="Function">isInjection</a><a id="3789" class="Symbol">)</a>
<a id="3795" class="Keyword">open</a> <a id="3800" href="Function.Bundles.html#2677" class="Module">Surjection</a> <a id="3811" href="Function.Bundles.html#3618" class="Function">surjection</a> <a id="3822" class="Keyword">public</a> <a id="3829" class="Keyword">using</a> <a id="3835" class="Symbol">(</a><a id="3836" href="Function.Bundles.html#3087" class="Function">isSurjection</a><a id="3848" class="Symbol">)</a>
<a id="3855" href="Function.Bundles.html#3855" class="Function">isBijection</a> <a id="3867" class="Symbol">:</a> <a id="3869" href="Function.Structures.html#1689" class="Record">IsBijection</a> <a id="3881" href="Function.Bundles.html#3285" class="Field">f</a>
<a id="3887" href="Function.Bundles.html#3855" class="Function">isBijection</a> <a id="3899" class="Symbol">=</a> <a id="3901" class="Keyword">record</a>
<a id="3914" class="Symbol">{</a> <a id="3916" href="Function.Structures.html#1755" class="Field">isInjection</a> <a id="3928" class="Symbol">=</a> <a id="3930" href="Function.Bundles.html#2539" class="Function">isInjection</a>
<a id="3948" class="Symbol">;</a> <a id="3950" href="Function.Structures.html#1787" class="Field">surjective</a> <a id="3962" class="Symbol">=</a> <a id="3964" href="Function.Bundles.html#3441" class="Function">surjective</a>
<a id="3981" class="Symbol">}</a>
<a id="3988" class="Keyword">open</a> <a id="3993" href="Function.Structures.html#1689" class="Module">IsBijection</a> <a id="4005" href="Function.Bundles.html#3855" class="Function">isBijection</a> <a id="4017" class="Keyword">public</a> <a id="4024" class="Keyword">using</a> <a id="4030" class="Symbol">(</a><a id="4031" class="Keyword">module</a> <a id="4038" href="Function.Structures.html#1036" class="Module">Eq₁</a><a id="4041" class="Symbol">;</a> <a id="4043" class="Keyword">module</a> <a id="4050" href="Function.Structures.html#1180" class="Module">Eq₂</a><a id="4053" class="Symbol">)</a>
<a id="4057" class="Comment">------------------------------------------------------------------------</a>
<a id="4130" class="Comment">-- Bundles with two elements</a>
<a id="4162" class="Keyword">record</a> <a id="4169" href="Function.Bundles.html#4169" class="Record">Equivalence</a> <a id="4181" class="Symbol">:</a> <a id="4183" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4187" class="Symbol">(</a><a id="4188" href="Function.Bundles.html#1419" class="Bound">a</a> <a id="4190" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="4192" href="Function.Bundles.html#1438" class="Bound">b</a> <a id="4194" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="4196" href="Function.Bundles.html#1421" class="Bound">ℓ₁</a> <a id="4199" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="4201" href="Function.Bundles.html#1440" class="Bound">ℓ₂</a><a id="4203" class="Symbol">)</a> <a id="4205" class="Keyword">where</a>
<a id="4215" class="Keyword">field</a>
<a id="4227" href="Function.Bundles.html#4227" class="Field">f</a> <a id="4233" class="Symbol">:</a> <a id="4235" href="Function.Bundles.html#1500" class="Function">A</a> <a id="4237" class="Symbol"></a> <a id="4239" href="Function.Bundles.html#1565" class="Field">B</a>
<a id="4247" href="Function.Bundles.html#4247" class="Field">g</a> <a id="4253" class="Symbol">:</a> <a id="4255" href="Function.Bundles.html#1565" class="Field">B</a> <a id="4257" class="Symbol"></a> <a id="4259" href="Function.Bundles.html#1500" class="Function">A</a>
<a id="4267" href="Function.Bundles.html#4267" class="Field">cong₁</a> <a id="4273" class="Symbol">:</a> <a id="4275" href="Function.Bundles.html#4227" class="Field">f</a> <a id="4277" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="4287" href="Function.Bundles.html#1510" class="Function Operator">_≈₁_</a> <a id="4292" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="4294" href="Function.Bundles.html#1575" class="Field Operator">_≈₂_</a>
<a id="4305" href="Function.Bundles.html#4305" class="Field">cong₂</a> <a id="4311" class="Symbol">:</a> <a id="4313" href="Function.Bundles.html#4247" class="Field">g</a> <a id="4315" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="4325" href="Function.Bundles.html#1575" class="Field Operator">_≈₂_</a> <a id="4330" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="4332" href="Function.Bundles.html#1510" class="Function Operator">_≈₁_</a>
<a id="4341" class="Keyword">record</a> <a id="4348" href="Function.Bundles.html#4348" class="Record">LeftInverse</a> <a id="4360" class="Symbol">:</a> <a id="4362" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4366" class="Symbol">(</a><a id="4367" href="Function.Bundles.html#1419" class="Bound">a</a> <a id="4369" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="4371" href="Function.Bundles.html#1438" class="Bound">b</a> <a id="4373" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="4375" href="Function.Bundles.html#1421" class="Bound">ℓ₁</a> <a id="4378" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="4380" href="Function.Bundles.html#1440" class="Bound">ℓ₂</a><a id="4382" class="Symbol">)</a> <a id="4384" class="Keyword">where</a>
<a id="4394" class="Keyword">field</a>
<a id="4406" href="Function.Bundles.html#4406" class="Field">f</a> <a id="4416" class="Symbol">:</a> <a id="4418" href="Function.Bundles.html#1500" class="Function">A</a> <a id="4420" class="Symbol"></a> <a id="4422" href="Function.Bundles.html#1565" class="Field">B</a>
<a id="4430" href="Function.Bundles.html#4430" class="Field">g</a> <a id="4440" class="Symbol">:</a> <a id="4442" href="Function.Bundles.html#1565" class="Field">B</a> <a id="4444" class="Symbol"></a> <a id="4446" href="Function.Bundles.html#1500" class="Function">A</a>
<a id="4454" href="Function.Bundles.html#4454" class="Field">cong₁</a> <a id="4464" class="Symbol">:</a> <a id="4466" href="Function.Bundles.html#4406" class="Field">f</a> <a id="4468" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="4478" href="Function.Bundles.html#1510" class="Function Operator">_≈₁_</a> <a id="4483" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="4485" href="Function.Bundles.html#1575" class="Field Operator">_≈₂_</a>
<a id="4496" href="Function.Bundles.html#4496" class="Field">cong₂</a> <a id="4506" class="Symbol">:</a> <a id="4508" href="Function.Bundles.html#4430" class="Field">g</a> <a id="4510" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="4520" href="Function.Bundles.html#1575" class="Field Operator">_≈₂_</a> <a id="4525" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="4527" href="Function.Bundles.html#1510" class="Function Operator">_≈₁_</a>
<a id="4538" href="Function.Bundles.html#4538" class="Field">inverseˡ</a> <a id="4548" class="Symbol">:</a> <a id="4550" href="Function.Definitions.Core2.html#818" class="Function">Inverseˡ</a> <a id="4559" href="Function.Bundles.html#4406" class="Field">f</a> <a id="4561" href="Function.Bundles.html#4430" class="Field">g</a>
<a id="4568" href="Function.Bundles.html#4568" class="Function">isCongruent</a> <a id="4580" class="Symbol">:</a> <a id="4582" href="Function.Structures.html#841" class="Record">IsCongruent</a> <a id="4594" href="Function.Bundles.html#4406" class="Field">f</a>
<a id="4600" href="Function.Bundles.html#4568" class="Function">isCongruent</a> <a id="4612" class="Symbol">=</a> <a id="4614" class="Keyword">record</a>
<a id="4627" class="Symbol">{</a> <a id="4629" href="Function.Structures.html#907" class="Field">cong</a> <a id="4644" class="Symbol">=</a> <a id="4646" href="Function.Bundles.html#4454" class="Field">cong₁</a>
<a id="4658" class="Symbol">;</a> <a id="4660" href="Function.Structures.html#950" class="Field">isEquivalence₁</a> <a id="4675" class="Symbol">=</a> <a id="4677" href="Relation.Binary.Bundles.html#1132" class="Field">isEquivalence</a> <a id="4691" href="Function.Bundles.html#1405" class="Bound">From</a>
<a id="4702" class="Symbol">;</a> <a id="4704" href="Function.Structures.html#990" class="Field">isEquivalence₂</a> <a id="4719" class="Symbol">=</a> <a id="4721" href="Relation.Binary.Bundles.html#1132" class="Field">isEquivalence</a> <a id="4735" href="Function.Bundles.html#1426" class="Bound">To</a>
<a id="4744" class="Symbol">}</a>
<a id="4751" class="Keyword">open</a> <a id="4756" href="Function.Structures.html#841" class="Module">IsCongruent</a> <a id="4768" href="Function.Bundles.html#4568" class="Function">isCongruent</a> <a id="4780" class="Keyword">public</a> <a id="4787" class="Keyword">using</a> <a id="4793" class="Symbol">(</a><a id="4794" class="Keyword">module</a> <a id="4801" href="Function.Structures.html#1036" class="Module">Eq₁</a><a id="4804" class="Symbol">;</a> <a id="4806" class="Keyword">module</a> <a id="4813" href="Function.Structures.html#1180" class="Module">Eq₂</a><a id="4816" class="Symbol">)</a>
<a id="4823" href="Function.Bundles.html#4823" class="Function">isLeftInverse</a> <a id="4837" class="Symbol">:</a> <a id="4839" href="Function.Structures.html#2245" class="Record">IsLeftInverse</a> <a id="4853" href="Function.Bundles.html#4406" class="Field">f</a> <a id="4855" href="Function.Bundles.html#4430" class="Field">g</a>
<a id="4861" href="Function.Bundles.html#4823" class="Function">isLeftInverse</a> <a id="4875" class="Symbol">=</a> <a id="4877" class="Keyword">record</a>
<a id="4890" class="Symbol">{</a> <a id="4892" href="Function.Structures.html#2325" class="Field">isCongruent</a> <a id="4904" class="Symbol">=</a> <a id="4906" href="Function.Bundles.html#4568" class="Function">isCongruent</a>
<a id="4924" class="Symbol">;</a> <a id="4926" href="Function.Structures.html#2358" class="Field">cong₂</a> <a id="4938" class="Symbol">=</a> <a id="4940" href="Function.Bundles.html#4496" class="Field">cong₂</a>
<a id="4952" class="Symbol">;</a> <a id="4954" href="Function.Structures.html#2399" class="Field">inverseˡ</a> <a id="4966" class="Symbol">=</a> <a id="4968" href="Function.Bundles.html#4538" class="Field">inverseˡ</a>
<a id="4983" class="Symbol">}</a>
<a id="4990" href="Function.Bundles.html#4990" class="Function">equivalence</a> <a id="5002" class="Symbol">:</a> <a id="5004" href="Function.Bundles.html#4169" class="Record">Equivalence</a>
<a id="5020" href="Function.Bundles.html#4990" class="Function">equivalence</a> <a id="5032" class="Symbol">=</a> <a id="5034" class="Keyword">record</a>
<a id="5047" class="Symbol">{</a> <a id="5049" href="Function.Bundles.html#4267" class="Field">cong₁</a> <a id="5055" class="Symbol">=</a> <a id="5057" href="Function.Bundles.html#4454" class="Field">cong₁</a>
<a id="5069" class="Symbol">;</a> <a id="5071" href="Function.Bundles.html#4305" class="Field">cong₂</a> <a id="5077" class="Symbol">=</a> <a id="5079" href="Function.Bundles.html#4496" class="Field">cong₂</a>
<a id="5091" class="Symbol">}</a>
<a id="5097" class="Keyword">record</a> <a id="5104" href="Function.Bundles.html#5104" class="Record">RightInverse</a> <a id="5117" class="Symbol">:</a> <a id="5119" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="5123" class="Symbol">(</a><a id="5124" href="Function.Bundles.html#1419" class="Bound">a</a> <a id="5126" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="5128" href="Function.Bundles.html#1438" class="Bound">b</a> <a id="5130" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="5132" href="Function.Bundles.html#1421" class="Bound">ℓ₁</a> <a id="5135" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="5137" href="Function.Bundles.html#1440" class="Bound">ℓ₂</a><a id="5139" class="Symbol">)</a> <a id="5141" class="Keyword">where</a>
<a id="5151" class="Keyword">field</a>
<a id="5163" href="Function.Bundles.html#5163" class="Field">f</a> <a id="5173" class="Symbol">:</a> <a id="5175" href="Function.Bundles.html#1500" class="Function">A</a> <a id="5177" class="Symbol"></a> <a id="5179" href="Function.Bundles.html#1565" class="Field">B</a>
<a id="5187" href="Function.Bundles.html#5187" class="Field">g</a> <a id="5197" class="Symbol">:</a> <a id="5199" href="Function.Bundles.html#1565" class="Field">B</a> <a id="5201" class="Symbol"></a> <a id="5203" href="Function.Bundles.html#1500" class="Function">A</a>
<a id="5211" href="Function.Bundles.html#5211" class="Field">cong₁</a> <a id="5221" class="Symbol">:</a> <a id="5223" href="Function.Bundles.html#5163" class="Field">f</a> <a id="5225" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="5235" href="Function.Bundles.html#1510" class="Function Operator">_≈₁_</a> <a id="5240" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="5242" href="Function.Bundles.html#1575" class="Field Operator">_≈₂_</a>
<a id="5253" href="Function.Bundles.html#5253" class="Field">cong₂</a> <a id="5263" class="Symbol">:</a> <a id="5265" href="Function.Bundles.html#5187" class="Field">g</a> <a id="5267" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="5277" href="Function.Bundles.html#1575" class="Field Operator">_≈₂_</a> <a id="5282" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="5284" href="Function.Bundles.html#1510" class="Function Operator">_≈₁_</a>
<a id="5295" href="Function.Bundles.html#5295" class="Field">inverseʳ</a> <a id="5305" class="Symbol">:</a> <a id="5307" href="Function.Definitions.Core1.html#675" class="Function">Inverseʳ</a> <a id="5316" href="Function.Bundles.html#5163" class="Field">f</a> <a id="5318" href="Function.Bundles.html#5187" class="Field">g</a>
<a id="5325" href="Function.Bundles.html#5325" class="Function">isCongruent</a> <a id="5337" class="Symbol">:</a> <a id="5339" href="Function.Structures.html#841" class="Record">IsCongruent</a> <a id="5351" href="Function.Bundles.html#5163" class="Field">f</a>
<a id="5357" href="Function.Bundles.html#5325" class="Function">isCongruent</a> <a id="5369" class="Symbol">=</a> <a id="5371" class="Keyword">record</a>
<a id="5384" class="Symbol">{</a> <a id="5386" href="Function.Structures.html#907" class="Field">cong</a> <a id="5401" class="Symbol">=</a> <a id="5403" href="Function.Bundles.html#5211" class="Field">cong₁</a>
<a id="5415" class="Symbol">;</a> <a id="5417" href="Function.Structures.html#950" class="Field">isEquivalence₁</a> <a id="5432" class="Symbol">=</a> <a id="5434" href="Relation.Binary.Bundles.html#1132" class="Field">isEquivalence</a> <a id="5448" href="Function.Bundles.html#1405" class="Bound">From</a>
<a id="5459" class="Symbol">;</a> <a id="5461" href="Function.Structures.html#990" class="Field">isEquivalence₂</a> <a id="5476" class="Symbol">=</a> <a id="5478" href="Relation.Binary.Bundles.html#1132" class="Field">isEquivalence</a> <a id="5492" href="Function.Bundles.html#1426" class="Bound">To</a>
<a id="5501" class="Symbol">}</a>
<a id="5508" href="Function.Bundles.html#5508" class="Function">isRightInverse</a> <a id="5523" class="Symbol">:</a> <a id="5525" href="Function.Structures.html#2514" class="Record">IsRightInverse</a> <a id="5540" href="Function.Bundles.html#5163" class="Field">f</a> <a id="5542" href="Function.Bundles.html#5187" class="Field">g</a>
<a id="5548" href="Function.Bundles.html#5508" class="Function">isRightInverse</a> <a id="5563" class="Symbol">=</a> <a id="5565" class="Keyword">record</a>
<a id="5578" class="Symbol">{</a> <a id="5580" href="Function.Structures.html#2595" class="Field">isCongruent</a> <a id="5592" class="Symbol">=</a> <a id="5594" href="Function.Bundles.html#5325" class="Function">isCongruent</a>
<a id="5612" class="Symbol">;</a> <a id="5614" href="Function.Structures.html#2627" class="Field">cong₂</a> <a id="5626" class="Symbol">=</a> <a id="5628" href="Function.Bundles.html#5253" class="Field">cong₂</a>
<a id="5640" class="Symbol">;</a> <a id="5642" href="Function.Structures.html#2667" class="Field">inverseʳ</a> <a id="5654" class="Symbol">=</a> <a id="5656" href="Function.Bundles.html#5295" class="Field">inverseʳ</a>
<a id="5671" class="Symbol">}</a>
<a id="5678" href="Function.Bundles.html#5678" class="Function">equivalence</a> <a id="5690" class="Symbol">:</a> <a id="5692" href="Function.Bundles.html#4169" class="Record">Equivalence</a>
<a id="5708" href="Function.Bundles.html#5678" class="Function">equivalence</a> <a id="5720" class="Symbol">=</a> <a id="5722" class="Keyword">record</a>
<a id="5735" class="Symbol">{</a> <a id="5737" href="Function.Bundles.html#4267" class="Field">cong₁</a> <a id="5743" class="Symbol">=</a> <a id="5745" href="Function.Bundles.html#5211" class="Field">cong₁</a>
<a id="5757" class="Symbol">;</a> <a id="5759" href="Function.Bundles.html#4305" class="Field">cong₂</a> <a id="5765" class="Symbol">=</a> <a id="5767" href="Function.Bundles.html#5253" class="Field">cong₂</a>
<a id="5779" class="Symbol">}</a>
<a id="5785" class="Keyword">record</a> <a id="5792" href="Function.Bundles.html#5792" class="Record">Inverse</a> <a id="5800" class="Symbol">:</a> <a id="5802" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="5806" class="Symbol">(</a><a id="5807" href="Function.Bundles.html#1419" class="Bound">a</a> <a id="5809" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="5811" href="Function.Bundles.html#1438" class="Bound">b</a> <a id="5813" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="5815" href="Function.Bundles.html#1421" class="Bound">ℓ₁</a> <a id="5818" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="5820" href="Function.Bundles.html#1440" class="Bound">ℓ₂</a><a id="5822" class="Symbol">)</a> <a id="5824" class="Keyword">where</a>
<a id="5834" class="Keyword">field</a>
<a id="5846" href="Function.Bundles.html#5846" class="Field">f</a> <a id="5856" class="Symbol">:</a> <a id="5858" href="Function.Bundles.html#1500" class="Function">A</a> <a id="5860" class="Symbol"></a> <a id="5862" href="Function.Bundles.html#1565" class="Field">B</a>
<a id="5870" href="Function.Bundles.html#5870" class="Field">f⁻¹</a> <a id="5880" class="Symbol">:</a> <a id="5882" href="Function.Bundles.html#1565" class="Field">B</a> <a id="5884" class="Symbol"></a> <a id="5886" href="Function.Bundles.html#1500" class="Function">A</a>
<a id="5894" href="Function.Bundles.html#5894" class="Field">cong₁</a> <a id="5904" class="Symbol">:</a> <a id="5906" href="Function.Bundles.html#5846" class="Field">f</a> <a id="5908" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="5918" href="Function.Bundles.html#1510" class="Function Operator">_≈₁_</a> <a id="5923" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="5925" href="Function.Bundles.html#1575" class="Field Operator">_≈₂_</a>
<a id="5936" href="Function.Bundles.html#5936" class="Field">cong₂</a> <a id="5946" class="Symbol">:</a> <a id="5948" href="Function.Bundles.html#5870" class="Field">f⁻¹</a> <a id="5952" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="5962" href="Function.Bundles.html#1575" class="Field Operator">_≈₂_</a> <a id="5967" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="5969" href="Function.Bundles.html#1510" class="Function Operator">_≈₁_</a>
<a id="5980" href="Function.Bundles.html#5980" class="Field">inverse</a> <a id="5990" class="Symbol">:</a> <a id="5992" href="Function.Definitions.html#1191" class="Function">Inverseᵇ</a> <a id="6001" href="Function.Bundles.html#5846" class="Field">f</a> <a id="6003" href="Function.Bundles.html#5870" class="Field">f⁻¹</a>
<a id="6012" href="Function.Bundles.html#6012" class="Function">inverseˡ</a> <a id="6021" class="Symbol">:</a> <a id="6023" href="Function.Definitions.Core2.html#818" class="Function">Inverseˡ</a> <a id="6032" href="Function.Bundles.html#5846" class="Field">f</a> <a id="6034" href="Function.Bundles.html#5870" class="Field">f⁻¹</a>
<a id="6042" href="Function.Bundles.html#6012" class="Function">inverseˡ</a> <a id="6051" class="Symbol">=</a> <a id="6053" href="Agda.Builtin.Sigma.html#252" class="Field">proj₁</a> <a id="6059" href="Function.Bundles.html#5980" class="Field">inverse</a>
<a id="6072" href="Function.Bundles.html#6072" class="Function">inverseʳ</a> <a id="6081" class="Symbol">:</a> <a id="6083" href="Function.Definitions.Core1.html#675" class="Function">Inverseʳ</a> <a id="6092" href="Function.Bundles.html#5846" class="Field">f</a> <a id="6094" href="Function.Bundles.html#5870" class="Field">f⁻¹</a>
<a id="6102" href="Function.Bundles.html#6072" class="Function">inverseʳ</a> <a id="6111" class="Symbol">=</a> <a id="6113" href="Agda.Builtin.Sigma.html#264" class="Field">proj₂</a> <a id="6119" href="Function.Bundles.html#5980" class="Field">inverse</a>
<a id="6132" href="Function.Bundles.html#6132" class="Function">leftInverse</a> <a id="6144" class="Symbol">:</a> <a id="6146" href="Function.Bundles.html#4348" class="Record">LeftInverse</a>
<a id="6162" href="Function.Bundles.html#6132" class="Function">leftInverse</a> <a id="6174" class="Symbol">=</a> <a id="6176" class="Keyword">record</a>
<a id="6189" class="Symbol">{</a> <a id="6191" href="Function.Bundles.html#4454" class="Field">cong₁</a> <a id="6200" class="Symbol">=</a> <a id="6202" href="Function.Bundles.html#5894" class="Field">cong₁</a>
<a id="6214" class="Symbol">;</a> <a id="6216" href="Function.Bundles.html#4496" class="Field">cong₂</a> <a id="6225" class="Symbol">=</a> <a id="6227" href="Function.Bundles.html#5936" class="Field">cong₂</a>
<a id="6239" class="Symbol">;</a> <a id="6241" href="Function.Bundles.html#4538" class="Field">inverseˡ</a> <a id="6250" class="Symbol">=</a> <a id="6252" href="Function.Bundles.html#6012" class="Function">inverseˡ</a>
<a id="6267" class="Symbol">}</a>
<a id="6274" href="Function.Bundles.html#6274" class="Function">rightInverse</a> <a id="6287" class="Symbol">:</a> <a id="6289" href="Function.Bundles.html#5104" class="Record">RightInverse</a>
<a id="6306" href="Function.Bundles.html#6274" class="Function">rightInverse</a> <a id="6319" class="Symbol">=</a> <a id="6321" class="Keyword">record</a>
<a id="6334" class="Symbol">{</a> <a id="6336" href="Function.Bundles.html#5211" class="Field">cong₁</a> <a id="6345" class="Symbol">=</a> <a id="6347" href="Function.Bundles.html#5894" class="Field">cong₁</a>
<a id="6359" class="Symbol">;</a> <a id="6361" href="Function.Bundles.html#5253" class="Field">cong₂</a> <a id="6370" class="Symbol">=</a> <a id="6372" href="Function.Bundles.html#5936" class="Field">cong₂</a>
<a id="6384" class="Symbol">;</a> <a id="6386" href="Function.Bundles.html#5295" class="Field">inverseʳ</a> <a id="6395" class="Symbol">=</a> <a id="6397" href="Function.Bundles.html#6072" class="Function">inverseʳ</a>
<a id="6412" class="Symbol">}</a>
<a id="6419" class="Keyword">open</a> <a id="6424" href="Function.Bundles.html#4348" class="Module">LeftInverse</a> <a id="6436" href="Function.Bundles.html#6132" class="Function">leftInverse</a> <a id="6450" class="Keyword">public</a> <a id="6457" class="Keyword">using</a> <a id="6463" class="Symbol">(</a><a id="6464" href="Function.Bundles.html#4823" class="Function">isLeftInverse</a><a id="6477" class="Symbol">)</a>
<a id="6483" class="Keyword">open</a> <a id="6488" href="Function.Bundles.html#5104" class="Module">RightInverse</a> <a id="6501" href="Function.Bundles.html#6274" class="Function">rightInverse</a> <a id="6514" class="Keyword">public</a> <a id="6521" class="Keyword">using</a> <a id="6527" class="Symbol">(</a><a id="6528" href="Function.Bundles.html#5508" class="Function">isRightInverse</a><a id="6542" class="Symbol">)</a>
<a id="6549" href="Function.Bundles.html#6549" class="Function">isInverse</a> <a id="6559" class="Symbol">:</a> <a id="6561" href="Function.Structures.html#2781" class="Record">IsInverse</a> <a id="6571" href="Function.Bundles.html#5846" class="Field">f</a> <a id="6573" href="Function.Bundles.html#5870" class="Field">f⁻¹</a>
<a id="6581" href="Function.Bundles.html#6549" class="Function">isInverse</a> <a id="6591" class="Symbol">=</a> <a id="6593" class="Keyword">record</a>
<a id="6606" class="Symbol">{</a> <a id="6608" href="Function.Structures.html#2857" class="Field">isLeftInverse</a> <a id="6622" class="Symbol">=</a> <a id="6624" href="Function.Bundles.html#4823" class="Function">isLeftInverse</a>
<a id="6644" class="Symbol">;</a> <a id="6646" href="Function.Structures.html#2895" class="Field">inverseʳ</a> <a id="6660" class="Symbol">=</a> <a id="6662" href="Function.Bundles.html#6072" class="Function">inverseʳ</a>
<a id="6677" class="Symbol">}</a>
<a id="6684" class="Keyword">open</a> <a id="6689" href="Function.Structures.html#2781" class="Module">IsInverse</a> <a id="6699" href="Function.Bundles.html#6549" class="Function">isInverse</a> <a id="6709" class="Keyword">public</a> <a id="6716" class="Keyword">using</a> <a id="6722" class="Symbol">(</a><a id="6723" class="Keyword">module</a> <a id="6730" href="Function.Structures.html#1036" class="Module">Eq₁</a><a id="6733" class="Symbol">;</a> <a id="6735" class="Keyword">module</a> <a id="6742" href="Function.Structures.html#1180" class="Module">Eq₂</a><a id="6745" class="Symbol">)</a>
<a id="6749" class="Comment">------------------------------------------------------------------------</a>
<a id="6822" class="Comment">-- Bundles with three elements</a>
<a id="6856" class="Keyword">record</a> <a id="6863" href="Function.Bundles.html#6863" class="Record">BiEquivalence</a> <a id="6877" class="Symbol">:</a> <a id="6879" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="6883" class="Symbol">(</a><a id="6884" href="Function.Bundles.html#1419" class="Bound">a</a> <a id="6886" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="6888" href="Function.Bundles.html#1438" class="Bound">b</a> <a id="6890" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="6892" href="Function.Bundles.html#1421" class="Bound">ℓ₁</a> <a id="6895" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="6897" href="Function.Bundles.html#1440" class="Bound">ℓ₂</a><a id="6899" class="Symbol">)</a> <a id="6901" class="Keyword">where</a>
<a id="6911" class="Keyword">field</a>
<a id="6923" href="Function.Bundles.html#6923" class="Field">f</a> <a id="6929" class="Symbol">:</a> <a id="6931" href="Function.Bundles.html#1500" class="Function">A</a> <a id="6933" class="Symbol"></a> <a id="6935" href="Function.Bundles.html#1565" class="Field">B</a>
<a id="6943" href="Function.Bundles.html#6943" class="Field">g₁</a> <a id="6949" class="Symbol">:</a> <a id="6951" href="Function.Bundles.html#1565" class="Field">B</a> <a id="6953" class="Symbol"></a> <a id="6955" href="Function.Bundles.html#1500" class="Function">A</a>
<a id="6963" href="Function.Bundles.html#6963" class="Field">g₂</a> <a id="6969" class="Symbol">:</a> <a id="6971" href="Function.Bundles.html#1565" class="Field">B</a> <a id="6973" class="Symbol"></a> <a id="6975" href="Function.Bundles.html#1500" class="Function">A</a>
<a id="6983" href="Function.Bundles.html#6983" class="Field">cong₁</a> <a id="6989" class="Symbol">:</a> <a id="6991" href="Function.Bundles.html#6923" class="Field">f</a> <a id="6993" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="7003" href="Function.Bundles.html#1510" class="Function Operator">_≈₁_</a> <a id="7008" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="7010" href="Function.Bundles.html#1575" class="Field Operator">_≈₂_</a>
<a id="7021" href="Function.Bundles.html#7021" class="Field">cong₂</a> <a id="7027" class="Symbol">:</a> <a id="7029" href="Function.Bundles.html#6943" class="Field">g₁</a> <a id="7032" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="7042" href="Function.Bundles.html#1575" class="Field Operator">_≈₂_</a> <a id="7047" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="7049" href="Function.Bundles.html#1510" class="Function Operator">_≈₁_</a>
<a id="7060" href="Function.Bundles.html#7060" class="Field">cong₃</a> <a id="7066" class="Symbol">:</a> <a id="7068" href="Function.Bundles.html#6963" class="Field">g₂</a> <a id="7071" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="7081" href="Function.Bundles.html#1575" class="Field Operator">_≈₂_</a> <a id="7086" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="7088" href="Function.Bundles.html#1510" class="Function Operator">_≈₁_</a>
<a id="7097" class="Keyword">record</a> <a id="7104" href="Function.Bundles.html#7104" class="Record">BiInverse</a> <a id="7114" class="Symbol">:</a> <a id="7116" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="7120" class="Symbol">(</a><a id="7121" href="Function.Bundles.html#1419" class="Bound">a</a> <a id="7123" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="7125" href="Function.Bundles.html#1438" class="Bound">b</a> <a id="7127" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="7129" href="Function.Bundles.html#1421" class="Bound">ℓ₁</a> <a id="7132" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="7134" href="Function.Bundles.html#1440" class="Bound">ℓ₂</a><a id="7136" class="Symbol">)</a> <a id="7138" class="Keyword">where</a>
<a id="7148" class="Keyword">field</a>
<a id="7160" href="Function.Bundles.html#7160" class="Field">f</a> <a id="7170" class="Symbol">:</a> <a id="7172" href="Function.Bundles.html#1500" class="Function">A</a> <a id="7174" class="Symbol"></a> <a id="7176" href="Function.Bundles.html#1565" class="Field">B</a>
<a id="7184" href="Function.Bundles.html#7184" class="Field">g₁</a> <a id="7194" class="Symbol">:</a> <a id="7196" href="Function.Bundles.html#1565" class="Field">B</a> <a id="7198" class="Symbol"></a> <a id="7200" href="Function.Bundles.html#1500" class="Function">A</a>
<a id="7208" href="Function.Bundles.html#7208" class="Field">g₂</a> <a id="7218" class="Symbol">:</a> <a id="7220" href="Function.Bundles.html#1565" class="Field">B</a> <a id="7222" class="Symbol"></a> <a id="7224" href="Function.Bundles.html#1500" class="Function">A</a>
<a id="7232" href="Function.Bundles.html#7232" class="Field">cong₁</a> <a id="7242" class="Symbol">:</a> <a id="7244" href="Function.Bundles.html#7160" class="Field">f</a> <a id="7246" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="7256" href="Function.Bundles.html#1510" class="Function Operator">_≈₁_</a> <a id="7261" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="7263" href="Function.Bundles.html#1575" class="Field Operator">_≈₂_</a>
<a id="7274" href="Function.Bundles.html#7274" class="Field">cong₂</a> <a id="7284" class="Symbol">:</a> <a id="7286" href="Function.Bundles.html#7184" class="Field">g₁</a> <a id="7289" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="7299" href="Function.Bundles.html#1575" class="Field Operator">_≈₂_</a> <a id="7304" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="7306" href="Function.Bundles.html#1510" class="Function Operator">_≈₁_</a>
<a id="7317" href="Function.Bundles.html#7317" class="Field">cong₃</a> <a id="7327" class="Symbol">:</a> <a id="7329" href="Function.Bundles.html#7208" class="Field">g₂</a> <a id="7332" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="7342" href="Function.Bundles.html#1575" class="Field Operator">_≈₂_</a> <a id="7347" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="7349" href="Function.Bundles.html#1510" class="Function Operator">_≈₁_</a>
<a id="7360" href="Function.Bundles.html#7360" class="Field">inverseˡ</a> <a id="7370" class="Symbol">:</a> <a id="7372" href="Function.Definitions.Core2.html#818" class="Function">Inverseˡ</a> <a id="7381" href="Function.Bundles.html#7160" class="Field">f</a> <a id="7383" href="Function.Bundles.html#7184" class="Field">g₁</a>
<a id="7392" href="Function.Bundles.html#7392" class="Field">inverseʳ</a> <a id="7402" class="Symbol">:</a> <a id="7404" href="Function.Definitions.Core1.html#675" class="Function">Inverseʳ</a> <a id="7413" href="Function.Bundles.html#7160" class="Field">f</a> <a id="7415" href="Function.Bundles.html#7208" class="Field">g₂</a>
<a id="7423" href="Function.Bundles.html#7423" class="Function">f-isCongruent</a> <a id="7437" class="Symbol">:</a> <a id="7439" href="Function.Structures.html#841" class="Record">IsCongruent</a> <a id="7451" href="Function.Bundles.html#7160" class="Field">f</a>
<a id="7457" href="Function.Bundles.html#7423" class="Function">f-isCongruent</a> <a id="7471" class="Symbol">=</a> <a id="7473" class="Keyword">record</a>
<a id="7486" class="Symbol">{</a> <a id="7488" href="Function.Structures.html#907" class="Field">cong</a> <a id="7503" class="Symbol">=</a> <a id="7505" href="Function.Bundles.html#7232" class="Field">cong₁</a>
<a id="7517" class="Symbol">;</a> <a id="7519" href="Function.Structures.html#950" class="Field">isEquivalence₁</a> <a id="7534" class="Symbol">=</a> <a id="7536" href="Relation.Binary.Bundles.html#1132" class="Field">isEquivalence</a> <a id="7550" href="Function.Bundles.html#1405" class="Bound">From</a>
<a id="7561" class="Symbol">;</a> <a id="7563" href="Function.Structures.html#990" class="Field">isEquivalence₂</a> <a id="7578" class="Symbol">=</a> <a id="7580" href="Relation.Binary.Bundles.html#1132" class="Field">isEquivalence</a> <a id="7594" href="Function.Bundles.html#1426" class="Bound">To</a>
<a id="7603" class="Symbol">}</a>
<a id="7610" href="Function.Bundles.html#7610" class="Function">isBiInverse</a> <a id="7622" class="Symbol">:</a> <a id="7624" href="Function.Structures.html#3680" class="Record">IsBiInverse</a> <a id="7636" href="Function.Bundles.html#7160" class="Field">f</a> <a id="7638" href="Function.Bundles.html#7184" class="Field">g₁</a> <a id="7641" href="Function.Bundles.html#7208" class="Field">g₂</a>
<a id="7648" href="Function.Bundles.html#7610" class="Function">isBiInverse</a> <a id="7660" class="Symbol">=</a> <a id="7662" class="Keyword">record</a>
<a id="7675" class="Symbol">{</a> <a id="7677" href="Function.Structures.html#3774" class="Field">f-isCongruent</a> <a id="7691" class="Symbol">=</a> <a id="7693" href="Function.Bundles.html#7423" class="Function">f-isCongruent</a>
<a id="7713" class="Symbol">;</a> <a id="7715" href="Function.Structures.html#3808" class="Field">cong₂</a> <a id="7729" class="Symbol">=</a> <a id="7731" href="Function.Bundles.html#7274" class="Field">cong₂</a>
<a id="7743" class="Symbol">;</a> <a id="7745" href="Function.Structures.html#3851" class="Field">inverseˡ</a> <a id="7759" class="Symbol">=</a> <a id="7761" href="Function.Bundles.html#7360" class="Field">inverseˡ</a>
<a id="7776" class="Symbol">;</a> <a id="7778" href="Function.Structures.html#3895" class="Field">cong₃</a> <a id="7792" class="Symbol">=</a> <a id="7794" href="Function.Bundles.html#7317" class="Field">cong₃</a>
<a id="7806" class="Symbol">;</a> <a id="7808" href="Function.Structures.html#3938" class="Field">inverseʳ</a> <a id="7822" class="Symbol">=</a> <a id="7824" href="Function.Bundles.html#7392" class="Field">inverseʳ</a>
<a id="7839" class="Symbol">}</a>
<a id="7846" href="Function.Bundles.html#7846" class="Function">biEquivalence</a> <a id="7860" class="Symbol">:</a> <a id="7862" href="Function.Bundles.html#6863" class="Record">BiEquivalence</a>
<a id="7880" href="Function.Bundles.html#7846" class="Function">biEquivalence</a> <a id="7894" class="Symbol">=</a> <a id="7896" class="Keyword">record</a>
<a id="7909" class="Symbol">{</a> <a id="7911" href="Function.Bundles.html#6983" class="Field">cong₁</a> <a id="7917" class="Symbol">=</a> <a id="7919" href="Function.Bundles.html#7232" class="Field">cong₁</a>
<a id="7931" class="Symbol">;</a> <a id="7933" href="Function.Bundles.html#7021" class="Field">cong₂</a> <a id="7939" class="Symbol">=</a> <a id="7941" href="Function.Bundles.html#7274" class="Field">cong₂</a>
<a id="7953" class="Symbol">;</a> <a id="7955" href="Function.Bundles.html#7060" class="Field">cong₃</a> <a id="7961" class="Symbol">=</a> <a id="7963" href="Function.Bundles.html#7317" class="Field">cong₃</a>
<a id="7975" class="Symbol">}</a>
<a id="7979" class="Comment">------------------------------------------------------------------------</a>
<a id="8052" class="Comment">-- Bundles specialised for propositional equality</a>
<a id="8102" class="Comment">------------------------------------------------------------------------</a>
<a id="8176" class="Keyword">infix</a> <a id="8182" class="Number">3</a> <a id="8184" href="Function.Bundles.html#8221" class="Function Operator">_⟶_</a> <a id="8188" href="Function.Bundles.html#8289" class="Function Operator">_↣_</a> <a id="8192" href="Function.Bundles.html#8362" class="Function Operator">_↠_</a> <a id="8196" href="Function.Bundles.html#8436" class="Function Operator">_⤖_</a> <a id="8200" href="Function.Bundles.html#8509" class="Function Operator">_⇔_</a> <a id="8204" href="Function.Bundles.html#8584" class="Function Operator">_↩_</a> <a id="8208" href="Function.Bundles.html#8659" class="Function Operator">_↪_</a> <a id="8212" href="Function.Bundles.html#8735" class="Function Operator">_↩↪_</a> <a id="8217" href="Function.Bundles.html#8810" class="Function Operator">_↔_</a>
<a id="_⟶_"></a><a id="8221" href="Function.Bundles.html#8221" class="Function Operator">_⟶_</a> <a id="8225" class="Symbol">:</a> <a id="8227" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8231" href="Function.Bundles.html#1211" class="Generalizable">a</a> <a id="8233" class="Symbol"></a> <a id="8235" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8239" href="Function.Bundles.html#1213" class="Generalizable">b</a> <a id="8241" class="Symbol"></a> <a id="8243" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8247" class="Symbol">_</a>
<a id="8249" href="Function.Bundles.html#8249" class="Bound">A</a> <a id="8251" href="Function.Bundles.html#8221" class="Function Operator"></a> <a id="8253" href="Function.Bundles.html#8253" class="Bound">B</a> <a id="8255" class="Symbol">=</a> <a id="8257" href="Function.Bundles.html#1868" class="Record">Func</a> <a id="8262" class="Symbol">(</a><a id="8263" href="Relation.Binary.PropositionalEquality.Properties.html#3972" class="Function">≡.setoid</a> <a id="8272" href="Function.Bundles.html#8249" class="Bound">A</a><a id="8273" class="Symbol">)</a> <a id="8275" class="Symbol">(</a><a id="8276" href="Relation.Binary.PropositionalEquality.Properties.html#3972" class="Function">≡.setoid</a> <a id="8285" href="Function.Bundles.html#8253" class="Bound">B</a><a id="8286" class="Symbol">)</a>
<a id="_↣_"></a><a id="8289" href="Function.Bundles.html#8289" class="Function Operator">_↣_</a> <a id="8293" class="Symbol">:</a> <a id="8295" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8299" href="Function.Bundles.html#1211" class="Generalizable">a</a> <a id="8301" class="Symbol"></a> <a id="8303" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8307" href="Function.Bundles.html#1213" class="Generalizable">b</a> <a id="8309" class="Symbol"></a> <a id="8311" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8315" class="Symbol">_</a>
<a id="8317" href="Function.Bundles.html#8317" class="Bound">A</a> <a id="8319" href="Function.Bundles.html#8289" class="Function Operator"></a> <a id="8321" href="Function.Bundles.html#8321" class="Bound">B</a> <a id="8323" class="Symbol">=</a> <a id="8325" href="Function.Bundles.html#2240" class="Record">Injection</a> <a id="8335" class="Symbol">(</a><a id="8336" href="Relation.Binary.PropositionalEquality.Properties.html#3972" class="Function">≡.setoid</a> <a id="8345" href="Function.Bundles.html#8317" class="Bound">A</a><a id="8346" class="Symbol">)</a> <a id="8348" class="Symbol">(</a><a id="8349" href="Relation.Binary.PropositionalEquality.Properties.html#3972" class="Function">≡.setoid</a> <a id="8358" href="Function.Bundles.html#8321" class="Bound">B</a><a id="8359" class="Symbol">)</a>
<a id="_↠_"></a><a id="8362" href="Function.Bundles.html#8362" class="Function Operator">_↠_</a> <a id="8366" class="Symbol">:</a> <a id="8368" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8372" href="Function.Bundles.html#1211" class="Generalizable">a</a> <a id="8374" class="Symbol"></a> <a id="8376" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8380" href="Function.Bundles.html#1213" class="Generalizable">b</a> <a id="8382" class="Symbol"></a> <a id="8384" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8388" class="Symbol">_</a>
<a id="8390" href="Function.Bundles.html#8390" class="Bound">A</a> <a id="8392" href="Function.Bundles.html#8362" class="Function Operator"></a> <a id="8394" href="Function.Bundles.html#8394" class="Bound">B</a> <a id="8396" class="Symbol">=</a> <a id="8398" href="Function.Bundles.html#2677" class="Record">Surjection</a> <a id="8409" class="Symbol">(</a><a id="8410" href="Relation.Binary.PropositionalEquality.Properties.html#3972" class="Function">≡.setoid</a> <a id="8419" href="Function.Bundles.html#8390" class="Bound">A</a><a id="8420" class="Symbol">)</a> <a id="8422" class="Symbol">(</a><a id="8423" href="Relation.Binary.PropositionalEquality.Properties.html#3972" class="Function">≡.setoid</a> <a id="8432" href="Function.Bundles.html#8394" class="Bound">B</a><a id="8433" class="Symbol">)</a>
<a id="_⤖_"></a><a id="8436" href="Function.Bundles.html#8436" class="Function Operator">_⤖_</a> <a id="8440" class="Symbol">:</a> <a id="8442" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8446" href="Function.Bundles.html#1211" class="Generalizable">a</a> <a id="8448" class="Symbol"></a> <a id="8450" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8454" href="Function.Bundles.html#1213" class="Generalizable">b</a> <a id="8456" class="Symbol"></a> <a id="8458" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8462" class="Symbol">_</a>
<a id="8464" href="Function.Bundles.html#8464" class="Bound">A</a> <a id="8466" href="Function.Bundles.html#8436" class="Function Operator"></a> <a id="8468" href="Function.Bundles.html#8468" class="Bound">B</a> <a id="8470" class="Symbol">=</a> <a id="8472" href="Function.Bundles.html#3229" class="Record">Bijection</a> <a id="8482" class="Symbol">(</a><a id="8483" href="Relation.Binary.PropositionalEquality.Properties.html#3972" class="Function">≡.setoid</a> <a id="8492" href="Function.Bundles.html#8464" class="Bound">A</a><a id="8493" class="Symbol">)</a> <a id="8495" class="Symbol">(</a><a id="8496" href="Relation.Binary.PropositionalEquality.Properties.html#3972" class="Function">≡.setoid</a> <a id="8505" href="Function.Bundles.html#8468" class="Bound">B</a><a id="8506" class="Symbol">)</a>
<a id="_⇔_"></a><a id="8509" href="Function.Bundles.html#8509" class="Function Operator">_⇔_</a> <a id="8513" class="Symbol">:</a> <a id="8515" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8519" href="Function.Bundles.html#1211" class="Generalizable">a</a> <a id="8521" class="Symbol"></a> <a id="8523" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8527" href="Function.Bundles.html#1213" class="Generalizable">b</a> <a id="8529" class="Symbol"></a> <a id="8531" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8535" class="Symbol">_</a>
<a id="8537" href="Function.Bundles.html#8537" class="Bound">A</a> <a id="8539" href="Function.Bundles.html#8509" class="Function Operator"></a> <a id="8541" href="Function.Bundles.html#8541" class="Bound">B</a> <a id="8543" class="Symbol">=</a> <a id="8545" href="Function.Bundles.html#4169" class="Record">Equivalence</a> <a id="8557" class="Symbol">(</a><a id="8558" href="Relation.Binary.PropositionalEquality.Properties.html#3972" class="Function">≡.setoid</a> <a id="8567" href="Function.Bundles.html#8537" class="Bound">A</a><a id="8568" class="Symbol">)</a> <a id="8570" class="Symbol">(</a><a id="8571" href="Relation.Binary.PropositionalEquality.Properties.html#3972" class="Function">≡.setoid</a> <a id="8580" href="Function.Bundles.html#8541" class="Bound">B</a><a id="8581" class="Symbol">)</a>
<a id="_↩_"></a><a id="8584" href="Function.Bundles.html#8584" class="Function Operator">_↩_</a> <a id="8588" class="Symbol">:</a> <a id="8590" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8594" href="Function.Bundles.html#1211" class="Generalizable">a</a> <a id="8596" class="Symbol"></a> <a id="8598" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8602" href="Function.Bundles.html#1213" class="Generalizable">b</a> <a id="8604" class="Symbol"></a> <a id="8606" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8610" class="Symbol">_</a>
<a id="8612" href="Function.Bundles.html#8612" class="Bound">A</a> <a id="8614" href="Function.Bundles.html#8584" class="Function Operator"></a> <a id="8616" href="Function.Bundles.html#8616" class="Bound">B</a> <a id="8618" class="Symbol">=</a> <a id="8620" href="Function.Bundles.html#4348" class="Record">LeftInverse</a> <a id="8632" class="Symbol">(</a><a id="8633" href="Relation.Binary.PropositionalEquality.Properties.html#3972" class="Function">≡.setoid</a> <a id="8642" href="Function.Bundles.html#8612" class="Bound">A</a><a id="8643" class="Symbol">)</a> <a id="8645" class="Symbol">(</a><a id="8646" href="Relation.Binary.PropositionalEquality.Properties.html#3972" class="Function">≡.setoid</a> <a id="8655" href="Function.Bundles.html#8616" class="Bound">B</a><a id="8656" class="Symbol">)</a>
<a id="_↪_"></a><a id="8659" href="Function.Bundles.html#8659" class="Function Operator">_↪_</a> <a id="8663" class="Symbol">:</a> <a id="8665" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8669" href="Function.Bundles.html#1211" class="Generalizable">a</a> <a id="8671" class="Symbol"></a> <a id="8673" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8677" href="Function.Bundles.html#1213" class="Generalizable">b</a> <a id="8679" class="Symbol"></a> <a id="8681" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8685" class="Symbol">_</a>
<a id="8687" href="Function.Bundles.html#8687" class="Bound">A</a> <a id="8689" href="Function.Bundles.html#8659" class="Function Operator"></a> <a id="8691" href="Function.Bundles.html#8691" class="Bound">B</a> <a id="8693" class="Symbol">=</a> <a id="8695" href="Function.Bundles.html#5104" class="Record">RightInverse</a> <a id="8708" class="Symbol">(</a><a id="8709" href="Relation.Binary.PropositionalEquality.Properties.html#3972" class="Function">≡.setoid</a> <a id="8718" href="Function.Bundles.html#8687" class="Bound">A</a><a id="8719" class="Symbol">)</a> <a id="8721" class="Symbol">(</a><a id="8722" href="Relation.Binary.PropositionalEquality.Properties.html#3972" class="Function">≡.setoid</a> <a id="8731" href="Function.Bundles.html#8691" class="Bound">B</a><a id="8732" class="Symbol">)</a>
<a id="_↩↪_"></a><a id="8735" href="Function.Bundles.html#8735" class="Function Operator">_↩↪_</a> <a id="8740" class="Symbol">:</a> <a id="8742" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8746" href="Function.Bundles.html#1211" class="Generalizable">a</a> <a id="8748" class="Symbol"></a> <a id="8750" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8754" href="Function.Bundles.html#1213" class="Generalizable">b</a> <a id="8756" class="Symbol"></a> <a id="8758" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8762" class="Symbol">_</a>
<a id="8764" href="Function.Bundles.html#8764" class="Bound">A</a> <a id="8766" href="Function.Bundles.html#8735" class="Function Operator">↩↪</a> <a id="8769" href="Function.Bundles.html#8769" class="Bound">B</a> <a id="8771" class="Symbol">=</a> <a id="8773" href="Function.Bundles.html#7104" class="Record">BiInverse</a> <a id="8783" class="Symbol">(</a><a id="8784" href="Relation.Binary.PropositionalEquality.Properties.html#3972" class="Function">≡.setoid</a> <a id="8793" href="Function.Bundles.html#8764" class="Bound">A</a><a id="8794" class="Symbol">)</a> <a id="8796" class="Symbol">(</a><a id="8797" href="Relation.Binary.PropositionalEquality.Properties.html#3972" class="Function">≡.setoid</a> <a id="8806" href="Function.Bundles.html#8769" class="Bound">B</a><a id="8807" class="Symbol">)</a>
<a id="_↔_"></a><a id="8810" href="Function.Bundles.html#8810" class="Function Operator">_↔_</a> <a id="8814" class="Symbol">:</a> <a id="8816" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8820" href="Function.Bundles.html#1211" class="Generalizable">a</a> <a id="8822" class="Symbol"></a> <a id="8824" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8828" href="Function.Bundles.html#1213" class="Generalizable">b</a> <a id="8830" class="Symbol"></a> <a id="8832" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="8836" class="Symbol">_</a>
<a id="8838" href="Function.Bundles.html#8838" class="Bound">A</a> <a id="8840" href="Function.Bundles.html#8810" class="Function Operator"></a> <a id="8842" href="Function.Bundles.html#8842" class="Bound">B</a> <a id="8844" class="Symbol">=</a> <a id="8846" href="Function.Bundles.html#5792" class="Record">Inverse</a> <a id="8854" class="Symbol">(</a><a id="8855" href="Relation.Binary.PropositionalEquality.Properties.html#3972" class="Function">≡.setoid</a> <a id="8864" href="Function.Bundles.html#8838" class="Bound">A</a><a id="8865" class="Symbol">)</a> <a id="8867" class="Symbol">(</a><a id="8868" href="Relation.Binary.PropositionalEquality.Properties.html#3972" class="Function">≡.setoid</a> <a id="8877" href="Function.Bundles.html#8842" class="Bound">B</a><a id="8878" class="Symbol">)</a>
<a id="8881" class="Comment">-- We now define some constructors for the above that</a>
<a id="8935" class="Comment">-- automatically provide the required congruency proofs.</a>
<a id="8993" class="Keyword">module</a> <a id="9000" href="Function.Bundles.html#9000" class="Module">_</a> <a id="9002" class="Symbol">{</a><a id="9003" href="Function.Bundles.html#9003" class="Bound">A</a> <a id="9005" class="Symbol">:</a> <a id="9007" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="9011" href="Function.Bundles.html#1211" class="Generalizable">a</a><a id="9012" class="Symbol">}</a> <a id="9014" class="Symbol">{</a><a id="9015" href="Function.Bundles.html#9015" class="Bound">B</a> <a id="9017" class="Symbol">:</a> <a id="9019" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="9023" href="Function.Bundles.html#1213" class="Generalizable">b</a><a id="9024" class="Symbol">}</a> <a id="9026" class="Keyword">where</a>
<a id="9035" class="Keyword">open</a> <a id="9040" href="Function.Definitions.html" class="Module">FunctionDefinitions</a> <a id="9060" class="Symbol">{</a><a id="9061" class="Argument">A</a> <a id="9063" class="Symbol">=</a> <a id="9065" href="Function.Bundles.html#9003" class="Bound">A</a><a id="9066" class="Symbol">}</a> <a id="9068" class="Symbol">{</a><a id="9069" href="Function.Bundles.html#9015" class="Bound">B</a><a id="9070" class="Symbol">}</a> <a id="9072" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a> <a id="9076" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a>
<a id="9083" href="Function.Bundles.html#9083" class="Function">mk⟶</a> <a id="9087" class="Symbol">:</a> <a id="9089" class="Symbol">(</a><a id="9090" href="Function.Bundles.html#9003" class="Bound">A</a> <a id="9092" class="Symbol"></a> <a id="9094" href="Function.Bundles.html#9015" class="Bound">B</a><a id="9095" class="Symbol">)</a> <a id="9097" class="Symbol"></a> <a id="9099" href="Function.Bundles.html#9003" class="Bound">A</a> <a id="9101" href="Function.Bundles.html#8221" class="Function Operator"></a> <a id="9103" href="Function.Bundles.html#9015" class="Bound">B</a>
<a id="9107" href="Function.Bundles.html#9083" class="Function">mk⟶</a> <a id="9111" href="Function.Bundles.html#9111" class="Bound">f</a> <a id="9113" class="Symbol">=</a> <a id="9115" class="Keyword">record</a>
<a id="9126" class="Symbol">{</a> <a id="9128" href="Function.Bundles.html#1919" class="Field">f</a> <a id="9138" class="Symbol">=</a> <a id="9140" href="Function.Bundles.html#9111" class="Bound">f</a>
<a id="9146" class="Symbol">;</a> <a id="9148" href="Function.Bundles.html#1938" class="Field">cong</a> <a id="9158" class="Symbol">=</a> <a id="9160" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">≡.cong</a> <a id="9167" href="Function.Bundles.html#9111" class="Bound">f</a>
<a id="9173" class="Symbol">}</a>
<a id="9178" href="Function.Bundles.html#9178" class="Function">mk↣</a> <a id="9182" class="Symbol">:</a> <a id="9184" class="Symbol"></a> <a id="9186" class="Symbol">{</a><a id="9187" href="Function.Bundles.html#9187" class="Bound">f</a> <a id="9189" class="Symbol">:</a> <a id="9191" href="Function.Bundles.html#9003" class="Bound">A</a> <a id="9193" class="Symbol"></a> <a id="9195" href="Function.Bundles.html#9015" class="Bound">B</a><a id="9196" class="Symbol">}</a> <a id="9198" class="Symbol"></a> <a id="9200" href="Function.Definitions.html#889" class="Function">Injective</a> <a id="9210" href="Function.Bundles.html#9187" class="Bound">f</a> <a id="9212" class="Symbol"></a> <a id="9214" href="Function.Bundles.html#9003" class="Bound">A</a> <a id="9216" href="Function.Bundles.html#8289" class="Function Operator"></a> <a id="9218" href="Function.Bundles.html#9015" class="Bound">B</a>
<a id="9222" href="Function.Bundles.html#9178" class="Function">mk↣</a> <a id="9226" class="Symbol">{</a><a id="9227" href="Function.Bundles.html#9227" class="Bound">f</a><a id="9228" class="Symbol">}</a> <a id="9230" href="Function.Bundles.html#9230" class="Bound">inj</a> <a id="9234" class="Symbol">=</a> <a id="9236" class="Keyword">record</a>
<a id="9247" class="Symbol">{</a> <a id="9249" href="Function.Bundles.html#2296" class="Field">f</a> <a id="9259" class="Symbol">=</a> <a id="9261" href="Function.Bundles.html#9227" class="Bound">f</a>
<a id="9267" class="Symbol">;</a> <a id="9269" href="Function.Bundles.html#2322" class="Field">cong</a> <a id="9279" class="Symbol">=</a> <a id="9281" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">≡.cong</a> <a id="9288" href="Function.Bundles.html#9227" class="Bound">f</a>
<a id="9294" class="Symbol">;</a> <a id="9296" href="Function.Bundles.html#2366" class="Field">injective</a> <a id="9306" class="Symbol">=</a> <a id="9308" href="Function.Bundles.html#9230" class="Bound">inj</a>
<a id="9316" class="Symbol">}</a>
<a id="9321" href="Function.Bundles.html#9321" class="Function">mk↠</a> <a id="9325" class="Symbol">:</a> <a id="9327" class="Symbol"></a> <a id="9329" class="Symbol">{</a><a id="9330" href="Function.Bundles.html#9330" class="Bound">f</a> <a id="9332" class="Symbol">:</a> <a id="9334" href="Function.Bundles.html#9003" class="Bound">A</a> <a id="9336" class="Symbol"></a> <a id="9338" href="Function.Bundles.html#9015" class="Bound">B</a><a id="9339" class="Symbol">}</a> <a id="9341" class="Symbol"></a> <a id="9343" href="Function.Definitions.Core2.html#663" class="Function">Surjective</a> <a id="9354" href="Function.Bundles.html#9330" class="Bound">f</a> <a id="9356" class="Symbol"></a> <a id="9358" href="Function.Bundles.html#9003" class="Bound">A</a> <a id="9360" href="Function.Bundles.html#8362" class="Function Operator"></a> <a id="9362" href="Function.Bundles.html#9015" class="Bound">B</a>
<a id="9366" href="Function.Bundles.html#9321" class="Function">mk↠</a> <a id="9370" class="Symbol">{</a><a id="9371" href="Function.Bundles.html#9371" class="Bound">f</a><a id="9372" class="Symbol">}</a> <a id="9374" href="Function.Bundles.html#9374" class="Bound">surj</a> <a id="9379" class="Symbol">=</a> <a id="9381" class="Keyword">record</a>
<a id="9392" class="Symbol">{</a> <a id="9394" href="Function.Bundles.html#2734" class="Field">f</a> <a id="9405" class="Symbol">=</a> <a id="9407" href="Function.Bundles.html#9371" class="Bound">f</a>
<a id="9413" class="Symbol">;</a> <a id="9415" href="Function.Bundles.html#2759" class="Field">cong</a> <a id="9426" class="Symbol">=</a> <a id="9428" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">≡.cong</a> <a id="9435" href="Function.Bundles.html#9371" class="Bound">f</a>
<a id="9441" class="Symbol">;</a> <a id="9443" href="Function.Bundles.html#2802" class="Field">surjective</a> <a id="9454" class="Symbol">=</a> <a id="9456" href="Function.Bundles.html#9374" class="Bound">surj</a>
<a id="9465" class="Symbol">}</a>
<a id="9470" href="Function.Bundles.html#9470" class="Function">mk⤖</a> <a id="9474" class="Symbol">:</a> <a id="9476" class="Symbol"></a> <a id="9478" class="Symbol">{</a><a id="9479" href="Function.Bundles.html#9479" class="Bound">f</a> <a id="9481" class="Symbol">:</a> <a id="9483" href="Function.Bundles.html#9003" class="Bound">A</a> <a id="9485" class="Symbol"></a> <a id="9487" href="Function.Bundles.html#9015" class="Bound">B</a><a id="9488" class="Symbol">}</a> <a id="9490" class="Symbol"></a> <a id="9492" href="Function.Definitions.html#1019" class="Function">Bijective</a> <a id="9502" href="Function.Bundles.html#9479" class="Bound">f</a> <a id="9504" class="Symbol"></a> <a id="9506" href="Function.Bundles.html#9003" class="Bound">A</a> <a id="9508" href="Function.Bundles.html#8436" class="Function Operator"></a> <a id="9510" href="Function.Bundles.html#9015" class="Bound">B</a>
<a id="9514" href="Function.Bundles.html#9470" class="Function">mk⤖</a> <a id="9518" class="Symbol">{</a><a id="9519" href="Function.Bundles.html#9519" class="Bound">f</a><a id="9520" class="Symbol">}</a> <a id="9522" href="Function.Bundles.html#9522" class="Bound">bij</a> <a id="9526" class="Symbol">=</a> <a id="9528" class="Keyword">record</a>
<a id="9539" class="Symbol">{</a> <a id="9541" href="Function.Bundles.html#3285" class="Field">f</a> <a id="9551" class="Symbol">=</a> <a id="9553" href="Function.Bundles.html#9519" class="Bound">f</a>
<a id="9559" class="Symbol">;</a> <a id="9561" href="Function.Bundles.html#3309" class="Field">cong</a> <a id="9571" class="Symbol">=</a> <a id="9573" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">≡.cong</a> <a id="9580" href="Function.Bundles.html#9519" class="Bound">f</a>
<a id="9586" class="Symbol">;</a> <a id="9588" href="Function.Bundles.html#3351" class="Field">bijective</a> <a id="9598" class="Symbol">=</a> <a id="9600" href="Function.Bundles.html#9522" class="Bound">bij</a>
<a id="9608" class="Symbol">}</a>
<a id="9613" href="Function.Bundles.html#9613" class="Function">mk⇔</a> <a id="9617" class="Symbol">:</a> <a id="9619" class="Symbol"></a> <a id="9621" class="Symbol">(</a><a id="9622" href="Function.Bundles.html#9622" class="Bound">f</a> <a id="9624" class="Symbol">:</a> <a id="9626" href="Function.Bundles.html#9003" class="Bound">A</a> <a id="9628" class="Symbol"></a> <a id="9630" href="Function.Bundles.html#9015" class="Bound">B</a><a id="9631" class="Symbol">)</a> <a id="9633" class="Symbol">(</a><a id="9634" href="Function.Bundles.html#9634" class="Bound">g</a> <a id="9636" class="Symbol">:</a> <a id="9638" href="Function.Bundles.html#9015" class="Bound">B</a> <a id="9640" class="Symbol"></a> <a id="9642" href="Function.Bundles.html#9003" class="Bound">A</a><a id="9643" class="Symbol">)</a> <a id="9645" class="Symbol"></a> <a id="9647" href="Function.Bundles.html#9003" class="Bound">A</a> <a id="9649" href="Function.Bundles.html#8509" class="Function Operator"></a> <a id="9651" href="Function.Bundles.html#9015" class="Bound">B</a>
<a id="9655" href="Function.Bundles.html#9613" class="Function">mk⇔</a> <a id="9659" href="Function.Bundles.html#9659" class="Bound">f</a> <a id="9661" href="Function.Bundles.html#9661" class="Bound">g</a> <a id="9663" class="Symbol">=</a> <a id="9665" class="Keyword">record</a>
<a id="9676" class="Symbol">{</a> <a id="9678" href="Function.Bundles.html#4227" class="Field">f</a> <a id="9684" class="Symbol">=</a> <a id="9686" href="Function.Bundles.html#9659" class="Bound">f</a>
<a id="9692" class="Symbol">;</a> <a id="9694" href="Function.Bundles.html#4247" class="Field">g</a> <a id="9700" class="Symbol">=</a> <a id="9702" href="Function.Bundles.html#9661" class="Bound">g</a>
<a id="9708" class="Symbol">;</a> <a id="9710" href="Function.Bundles.html#4267" class="Field">cong₁</a> <a id="9716" class="Symbol">=</a> <a id="9718" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">≡.cong</a> <a id="9725" href="Function.Bundles.html#9659" class="Bound">f</a>
<a id="9731" class="Symbol">;</a> <a id="9733" href="Function.Bundles.html#4305" class="Field">cong₂</a> <a id="9739" class="Symbol">=</a> <a id="9741" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">≡.cong</a> <a id="9748" href="Function.Bundles.html#9661" class="Bound">g</a>
<a id="9754" class="Symbol">}</a>
<a id="9759" href="Function.Bundles.html#9759" class="Function">mk↩</a> <a id="9763" class="Symbol">:</a> <a id="9765" class="Symbol"></a> <a id="9767" class="Symbol">{</a><a id="9768" href="Function.Bundles.html#9768" class="Bound">f</a> <a id="9770" class="Symbol">:</a> <a id="9772" href="Function.Bundles.html#9003" class="Bound">A</a> <a id="9774" class="Symbol"></a> <a id="9776" href="Function.Bundles.html#9015" class="Bound">B</a><a id="9777" class="Symbol">}</a> <a id="9779" class="Symbol">{</a><a id="9780" href="Function.Bundles.html#9780" class="Bound">g</a> <a id="9782" class="Symbol">:</a> <a id="9784" href="Function.Bundles.html#9015" class="Bound">B</a> <a id="9786" class="Symbol"></a> <a id="9788" href="Function.Bundles.html#9003" class="Bound">A</a><a id="9789" class="Symbol">}</a> <a id="9791" class="Symbol"></a> <a id="9793" href="Function.Definitions.Core2.html#818" class="Function">Inverseˡ</a> <a id="9802" href="Function.Bundles.html#9768" class="Bound">f</a> <a id="9804" href="Function.Bundles.html#9780" class="Bound">g</a> <a id="9806" class="Symbol"></a> <a id="9808" href="Function.Bundles.html#9003" class="Bound">A</a> <a id="9810" href="Function.Bundles.html#8584" class="Function Operator"></a> <a id="9812" href="Function.Bundles.html#9015" class="Bound">B</a>
<a id="9816" href="Function.Bundles.html#9759" class="Function">mk↩</a> <a id="9820" class="Symbol">{</a><a id="9821" href="Function.Bundles.html#9821" class="Bound">f</a><a id="9822" class="Symbol">}</a> <a id="9824" class="Symbol">{</a><a id="9825" href="Function.Bundles.html#9825" class="Bound">g</a><a id="9826" class="Symbol">}</a> <a id="9828" href="Function.Bundles.html#9828" class="Bound">invˡ</a> <a id="9833" class="Symbol">=</a> <a id="9835" class="Keyword">record</a>
<a id="9846" class="Symbol">{</a> <a id="9848" href="Function.Bundles.html#4406" class="Field">f</a> <a id="9857" class="Symbol">=</a> <a id="9859" href="Function.Bundles.html#9821" class="Bound">f</a>
<a id="9865" class="Symbol">;</a> <a id="9867" href="Function.Bundles.html#4430" class="Field">g</a> <a id="9876" class="Symbol">=</a> <a id="9878" href="Function.Bundles.html#9825" class="Bound">g</a>
<a id="9884" class="Symbol">;</a> <a id="9886" href="Function.Bundles.html#4454" class="Field">cong₁</a> <a id="9895" class="Symbol">=</a> <a id="9897" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">≡.cong</a> <a id="9904" href="Function.Bundles.html#9821" class="Bound">f</a>
<a id="9910" class="Symbol">;</a> <a id="9912" href="Function.Bundles.html#4496" class="Field">cong₂</a> <a id="9921" class="Symbol">=</a> <a id="9923" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">≡.cong</a> <a id="9930" href="Function.Bundles.html#9825" class="Bound">g</a>
<a id="9936" class="Symbol">;</a> <a id="9938" href="Function.Bundles.html#4538" class="Field">inverseˡ</a> <a id="9947" class="Symbol">=</a> <a id="9949" href="Function.Bundles.html#9828" class="Bound">invˡ</a>
<a id="9958" class="Symbol">}</a>
<a id="9963" href="Function.Bundles.html#9963" class="Function">mk↪</a> <a id="9967" class="Symbol">:</a> <a id="9969" class="Symbol"></a> <a id="9971" class="Symbol">{</a><a id="9972" href="Function.Bundles.html#9972" class="Bound">f</a> <a id="9974" class="Symbol">:</a> <a id="9976" href="Function.Bundles.html#9003" class="Bound">A</a> <a id="9978" class="Symbol"></a> <a id="9980" href="Function.Bundles.html#9015" class="Bound">B</a><a id="9981" class="Symbol">}</a> <a id="9983" class="Symbol">{</a><a id="9984" href="Function.Bundles.html#9984" class="Bound">g</a> <a id="9986" class="Symbol">:</a> <a id="9988" href="Function.Bundles.html#9015" class="Bound">B</a> <a id="9990" class="Symbol"></a> <a id="9992" href="Function.Bundles.html#9003" class="Bound">A</a><a id="9993" class="Symbol">}</a> <a id="9995" class="Symbol"></a> <a id="9997" href="Function.Definitions.Core1.html#675" class="Function">Inverseʳ</a> <a id="10006" href="Function.Bundles.html#9972" class="Bound">f</a> <a id="10008" href="Function.Bundles.html#9984" class="Bound">g</a> <a id="10010" class="Symbol"></a> <a id="10012" href="Function.Bundles.html#9003" class="Bound">A</a> <a id="10014" href="Function.Bundles.html#8659" class="Function Operator"></a> <a id="10016" href="Function.Bundles.html#9015" class="Bound">B</a>
<a id="10020" href="Function.Bundles.html#9963" class="Function">mk↪</a> <a id="10024" class="Symbol">{</a><a id="10025" href="Function.Bundles.html#10025" class="Bound">f</a><a id="10026" class="Symbol">}</a> <a id="10028" class="Symbol">{</a><a id="10029" href="Function.Bundles.html#10029" class="Bound">g</a><a id="10030" class="Symbol">}</a> <a id="10032" href="Function.Bundles.html#10032" class="Bound">invʳ</a> <a id="10037" class="Symbol">=</a> <a id="10039" class="Keyword">record</a>
<a id="10050" class="Symbol">{</a> <a id="10052" href="Function.Bundles.html#5163" class="Field">f</a> <a id="10061" class="Symbol">=</a> <a id="10063" href="Function.Bundles.html#10025" class="Bound">f</a>
<a id="10069" class="Symbol">;</a> <a id="10071" href="Function.Bundles.html#5187" class="Field">g</a> <a id="10080" class="Symbol">=</a> <a id="10082" href="Function.Bundles.html#10029" class="Bound">g</a>
<a id="10088" class="Symbol">;</a> <a id="10090" href="Function.Bundles.html#5211" class="Field">cong₁</a> <a id="10099" class="Symbol">=</a> <a id="10101" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">≡.cong</a> <a id="10108" href="Function.Bundles.html#10025" class="Bound">f</a>
<a id="10114" class="Symbol">;</a> <a id="10116" href="Function.Bundles.html#5253" class="Field">cong₂</a> <a id="10125" class="Symbol">=</a> <a id="10127" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">≡.cong</a> <a id="10134" href="Function.Bundles.html#10029" class="Bound">g</a>
<a id="10140" class="Symbol">;</a> <a id="10142" href="Function.Bundles.html#5295" class="Field">inverseʳ</a> <a id="10151" class="Symbol">=</a> <a id="10153" href="Function.Bundles.html#10032" class="Bound">invʳ</a>
<a id="10162" class="Symbol">}</a>
<a id="10167" href="Function.Bundles.html#10167" class="Function">mk↩↪</a> <a id="10172" class="Symbol">:</a> <a id="10174" class="Symbol"></a> <a id="10176" class="Symbol">{</a><a id="10177" href="Function.Bundles.html#10177" class="Bound">f</a> <a id="10179" class="Symbol">:</a> <a id="10181" href="Function.Bundles.html#9003" class="Bound">A</a> <a id="10183" class="Symbol"></a> <a id="10185" href="Function.Bundles.html#9015" class="Bound">B</a><a id="10186" class="Symbol">}</a> <a id="10188" class="Symbol">{</a><a id="10189" href="Function.Bundles.html#10189" class="Bound">g₁</a> <a id="10192" class="Symbol">:</a> <a id="10194" href="Function.Bundles.html#9015" class="Bound">B</a> <a id="10196" class="Symbol"></a> <a id="10198" href="Function.Bundles.html#9003" class="Bound">A</a><a id="10199" class="Symbol">}</a> <a id="10201" class="Symbol">{</a><a id="10202" href="Function.Bundles.html#10202" class="Bound">g₂</a> <a id="10205" class="Symbol">:</a> <a id="10207" href="Function.Bundles.html#9015" class="Bound">B</a> <a id="10209" class="Symbol"></a> <a id="10211" href="Function.Bundles.html#9003" class="Bound">A</a><a id="10212" class="Symbol">}</a> <a id="10214" class="Symbol"></a>
<a id="10225" href="Function.Definitions.Core2.html#818" class="Function">Inverseˡ</a> <a id="10234" href="Function.Bundles.html#10177" class="Bound">f</a> <a id="10236" href="Function.Bundles.html#10189" class="Bound">g₁</a> <a id="10239" class="Symbol"></a> <a id="10241" href="Function.Definitions.Core1.html#675" class="Function">Inverseʳ</a> <a id="10250" href="Function.Bundles.html#10177" class="Bound">f</a> <a id="10252" href="Function.Bundles.html#10202" class="Bound">g₂</a> <a id="10255" class="Symbol"></a> <a id="10257" href="Function.Bundles.html#9003" class="Bound">A</a> <a id="10259" href="Function.Bundles.html#8735" class="Function Operator">↩↪</a> <a id="10262" href="Function.Bundles.html#9015" class="Bound">B</a>
<a id="10266" href="Function.Bundles.html#10167" class="Function">mk↩↪</a> <a id="10271" class="Symbol">{</a><a id="10272" href="Function.Bundles.html#10272" class="Bound">f</a><a id="10273" class="Symbol">}</a> <a id="10275" class="Symbol">{</a><a id="10276" href="Function.Bundles.html#10276" class="Bound">g₁</a><a id="10278" class="Symbol">}</a> <a id="10280" class="Symbol">{</a><a id="10281" href="Function.Bundles.html#10281" class="Bound">g₂</a><a id="10283" class="Symbol">}</a> <a id="10285" href="Function.Bundles.html#10285" class="Bound">invˡ</a> <a id="10290" href="Function.Bundles.html#10290" class="Bound">invʳ</a> <a id="10295" class="Symbol">=</a> <a id="10297" class="Keyword">record</a>
<a id="10308" class="Symbol">{</a> <a id="10310" href="Function.Bundles.html#7160" class="Field">f</a> <a id="10319" class="Symbol">=</a> <a id="10321" href="Function.Bundles.html#10272" class="Bound">f</a>
<a id="10327" class="Symbol">;</a> <a id="10329" href="Function.Bundles.html#7184" class="Field">g₁</a> <a id="10338" class="Symbol">=</a> <a id="10340" href="Function.Bundles.html#10276" class="Bound">g₁</a>
<a id="10347" class="Symbol">;</a> <a id="10349" href="Function.Bundles.html#7208" class="Field">g₂</a> <a id="10358" class="Symbol">=</a> <a id="10360" href="Function.Bundles.html#10281" class="Bound">g₂</a>
<a id="10367" class="Symbol">;</a> <a id="10369" href="Function.Bundles.html#7232" class="Field">cong₁</a> <a id="10378" class="Symbol">=</a> <a id="10380" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">≡.cong</a> <a id="10387" href="Function.Bundles.html#10272" class="Bound">f</a>
<a id="10393" class="Symbol">;</a> <a id="10395" href="Function.Bundles.html#7274" class="Field">cong₂</a> <a id="10404" class="Symbol">=</a> <a id="10406" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">≡.cong</a> <a id="10413" href="Function.Bundles.html#10276" class="Bound">g₁</a>
<a id="10420" class="Symbol">;</a> <a id="10422" href="Function.Bundles.html#7317" class="Field">cong₃</a> <a id="10431" class="Symbol">=</a> <a id="10433" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">≡.cong</a> <a id="10440" href="Function.Bundles.html#10281" class="Bound">g₂</a>
<a id="10447" class="Symbol">;</a> <a id="10449" href="Function.Bundles.html#7360" class="Field">inverseˡ</a> <a id="10458" class="Symbol">=</a> <a id="10460" href="Function.Bundles.html#10285" class="Bound">invˡ</a>
<a id="10469" class="Symbol">;</a> <a id="10471" href="Function.Bundles.html#7392" class="Field">inverseʳ</a> <a id="10480" class="Symbol">=</a> <a id="10482" href="Function.Bundles.html#10290" class="Bound">invʳ</a>
<a id="10491" class="Symbol">}</a>
<a id="10496" href="Function.Bundles.html#10496" class="Function">mk↔</a> <a id="10500" class="Symbol">:</a> <a id="10502" class="Symbol"></a> <a id="10504" class="Symbol">{</a><a id="10505" href="Function.Bundles.html#10505" class="Bound">f</a> <a id="10507" class="Symbol">:</a> <a id="10509" href="Function.Bundles.html#9003" class="Bound">A</a> <a id="10511" class="Symbol"></a> <a id="10513" href="Function.Bundles.html#9015" class="Bound">B</a><a id="10514" class="Symbol">}</a> <a id="10516" class="Symbol">{</a><a id="10517" href="Function.Bundles.html#10517" class="Bound">f⁻¹</a> <a id="10521" class="Symbol">:</a> <a id="10523" href="Function.Bundles.html#9015" class="Bound">B</a> <a id="10525" class="Symbol"></a> <a id="10527" href="Function.Bundles.html#9003" class="Bound">A</a><a id="10528" class="Symbol">}</a> <a id="10530" class="Symbol"></a> <a id="10532" href="Function.Definitions.html#1191" class="Function">Inverseᵇ</a> <a id="10541" href="Function.Bundles.html#10505" class="Bound">f</a> <a id="10543" href="Function.Bundles.html#10517" class="Bound">f⁻¹</a> <a id="10547" class="Symbol"></a> <a id="10549" href="Function.Bundles.html#9003" class="Bound">A</a> <a id="10551" href="Function.Bundles.html#8810" class="Function Operator"></a> <a id="10553" href="Function.Bundles.html#9015" class="Bound">B</a>
<a id="10557" href="Function.Bundles.html#10496" class="Function">mk↔</a> <a id="10561" class="Symbol">{</a><a id="10562" href="Function.Bundles.html#10562" class="Bound">f</a><a id="10563" class="Symbol">}</a> <a id="10565" class="Symbol">{</a><a id="10566" href="Function.Bundles.html#10566" class="Bound">f⁻¹</a><a id="10569" class="Symbol">}</a> <a id="10571" href="Function.Bundles.html#10571" class="Bound">inv</a> <a id="10575" class="Symbol">=</a> <a id="10577" class="Keyword">record</a>
<a id="10588" class="Symbol">{</a> <a id="10590" href="Function.Bundles.html#5846" class="Field">f</a> <a id="10598" class="Symbol">=</a> <a id="10600" href="Function.Bundles.html#10562" class="Bound">f</a>
<a id="10606" class="Symbol">;</a> <a id="10608" href="Function.Bundles.html#5870" class="Field">f⁻¹</a> <a id="10616" class="Symbol">=</a> <a id="10618" href="Function.Bundles.html#10566" class="Bound">f⁻¹</a>
<a id="10626" class="Symbol">;</a> <a id="10628" href="Function.Bundles.html#5894" class="Field">cong₁</a> <a id="10636" class="Symbol">=</a> <a id="10638" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">≡.cong</a> <a id="10645" href="Function.Bundles.html#10562" class="Bound">f</a>
<a id="10651" class="Symbol">;</a> <a id="10653" href="Function.Bundles.html#5936" class="Field">cong₂</a> <a id="10661" class="Symbol">=</a> <a id="10663" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">≡.cong</a> <a id="10670" href="Function.Bundles.html#10566" class="Bound">f⁻¹</a>
<a id="10678" class="Symbol">;</a> <a id="10680" href="Function.Bundles.html#5980" class="Field">inverse</a> <a id="10688" class="Symbol">=</a> <a id="10690" href="Function.Bundles.html#10571" class="Bound">inv</a>
<a id="10698" class="Symbol">}</a>
<a id="10703" class="Comment">-- Sometimes the implicit arguments above cannot be inferred</a>
<a id="10766" href="Function.Bundles.html#10766" class="Function">mk↔</a> <a id="10771" class="Symbol">:</a> <a id="10773" class="Symbol"></a> <a id="10775" class="Symbol">(</a><a id="10776" href="Function.Bundles.html#10776" class="Bound">f</a> <a id="10778" class="Symbol">:</a> <a id="10780" href="Function.Bundles.html#9003" class="Bound">A</a> <a id="10782" class="Symbol"></a> <a id="10784" href="Function.Bundles.html#9015" class="Bound">B</a><a id="10785" class="Symbol">)</a> <a id="10787" class="Symbol">(</a><a id="10788" href="Function.Bundles.html#10788" class="Bound">f⁻¹</a> <a id="10792" class="Symbol">:</a> <a id="10794" href="Function.Bundles.html#9015" class="Bound">B</a> <a id="10796" class="Symbol"></a> <a id="10798" href="Function.Bundles.html#9003" class="Bound">A</a><a id="10799" class="Symbol">)</a> <a id="10801" class="Symbol"></a> <a id="10803" href="Function.Definitions.Core2.html#818" class="Function">Inverseˡ</a> <a id="10812" href="Function.Bundles.html#10776" class="Bound">f</a> <a id="10814" href="Function.Bundles.html#10788" class="Bound">f⁻¹</a> <a id="10818" class="Symbol"></a> <a id="10820" href="Function.Definitions.Core1.html#675" class="Function">Inverseʳ</a> <a id="10829" href="Function.Bundles.html#10776" class="Bound">f</a> <a id="10831" href="Function.Bundles.html#10788" class="Bound">f⁻¹</a> <a id="10835" class="Symbol"></a> <a id="10837" href="Function.Bundles.html#9003" class="Bound">A</a> <a id="10839" href="Function.Bundles.html#8810" class="Function Operator"></a> <a id="10841" href="Function.Bundles.html#9015" class="Bound">B</a>
<a id="10845" href="Function.Bundles.html#10766" class="Function">mk↔</a> <a id="10850" href="Function.Bundles.html#10850" class="Bound">f</a> <a id="10852" href="Function.Bundles.html#10852" class="Bound">f⁻¹</a> <a id="10856" href="Function.Bundles.html#10856" class="Bound">invˡ</a> <a id="10861" href="Function.Bundles.html#10861" class="Bound">invʳ</a> <a id="10866" class="Symbol">=</a> <a id="10868" href="Function.Bundles.html#10496" class="Function">mk↔</a> <a id="10872" class="Symbol">{</a><a id="10873" class="Argument">f</a> <a id="10875" class="Symbol">=</a> <a id="10877" href="Function.Bundles.html#10850" class="Bound">f</a><a id="10878" class="Symbol">}</a> <a id="10880" class="Symbol">{</a><a id="10881" class="Argument">f⁻¹</a> <a id="10885" class="Symbol">=</a> <a id="10887" href="Function.Bundles.html#10852" class="Bound">f⁻¹</a><a id="10890" class="Symbol">}</a> <a id="10892" class="Symbol">(</a><a id="10893" href="Function.Bundles.html#10856" class="Bound">invˡ</a> <a id="10898" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="10900" href="Function.Bundles.html#10861" class="Bound">invʳ</a><a id="10904" class="Symbol">)</a>
</pre></body></html>

30
misc/Function.Core.html Normal file
View File

@ -0,0 +1,30 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Function.Core</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Core definitions for Functions</a>
<a id="140" class="Comment">------------------------------------------------------------------------</a>
<a id="214" class="Comment">-- The contents of this file should usually be accessed from `Function`.</a>
<a id="288" class="Symbol">{-#</a> <a id="292" class="Keyword">OPTIONS</a> <a id="300" class="Pragma">--without-K</a> <a id="312" class="Pragma">--safe</a> <a id="319" class="Symbol">#-}</a>
<a id="324" class="Keyword">module</a> <a id="331" href="Function.Core.html" class="Module">Function.Core</a> <a id="345" class="Keyword">where</a>
<a id="352" class="Keyword">open</a> <a id="357" class="Keyword">import</a> <a id="364" href="Level.html" class="Module">Level</a> <a id="370" class="Keyword">using</a> <a id="376" class="Symbol">(</a><a id="377" href="Agda.Primitive.html#810" class="Primitive Operator">_⊔_</a><a id="380" class="Symbol">)</a>
<a id="383" class="Comment">------------------------------------------------------------------------</a>
<a id="456" class="Comment">-- Types</a>
<a id="Fun₁"></a><a id="466" href="Function.Core.html#466" class="Function">Fun₁</a> <a id="471" class="Symbol">:</a> <a id="473" class="Symbol"></a> <a id="475" class="Symbol">{</a><a id="476" href="Function.Core.html#476" class="Bound">a</a><a id="477" class="Symbol">}</a> <a id="479" class="Symbol"></a> <a id="481" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="485" href="Function.Core.html#476" class="Bound">a</a> <a id="487" class="Symbol"></a> <a id="489" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="493" href="Function.Core.html#476" class="Bound">a</a>
<a id="495" href="Function.Core.html#466" class="Function">Fun₁</a> <a id="500" href="Function.Core.html#500" class="Bound">A</a> <a id="502" class="Symbol">=</a> <a id="504" href="Function.Core.html#500" class="Bound">A</a> <a id="506" class="Symbol"></a> <a id="508" href="Function.Core.html#500" class="Bound">A</a>
<a id="Fun₂"></a><a id="511" href="Function.Core.html#511" class="Function">Fun₂</a> <a id="516" class="Symbol">:</a> <a id="518" class="Symbol"></a> <a id="520" class="Symbol">{</a><a id="521" href="Function.Core.html#521" class="Bound">a</a><a id="522" class="Symbol">}</a> <a id="524" class="Symbol"></a> <a id="526" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="530" href="Function.Core.html#521" class="Bound">a</a> <a id="532" class="Symbol"></a> <a id="534" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="538" href="Function.Core.html#521" class="Bound">a</a>
<a id="540" href="Function.Core.html#511" class="Function">Fun₂</a> <a id="545" href="Function.Core.html#545" class="Bound">A</a> <a id="547" class="Symbol">=</a> <a id="549" href="Function.Core.html#545" class="Bound">A</a> <a id="551" class="Symbol"></a> <a id="553" href="Function.Core.html#545" class="Bound">A</a> <a id="555" class="Symbol"></a> <a id="557" href="Function.Core.html#545" class="Bound">A</a>
<a id="560" class="Comment">------------------------------------------------------------------------</a>
<a id="633" class="Comment">-- Morphism</a>
<a id="Morphism"></a><a id="646" href="Function.Core.html#646" class="Function">Morphism</a> <a id="655" class="Symbol">:</a> <a id="657" class="Symbol"></a> <a id="659" class="Symbol">{</a><a id="660" href="Function.Core.html#660" class="Bound">a</a><a id="661" class="Symbol">}</a> <a id="663" class="Symbol"></a> <a id="665" class="Symbol"></a> <a id="667" class="Symbol">{</a><a id="668" href="Function.Core.html#668" class="Bound">b</a><a id="669" class="Symbol">}</a> <a id="671" class="Symbol"></a> <a id="673" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="677" href="Function.Core.html#660" class="Bound">a</a> <a id="679" class="Symbol"></a> <a id="681" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="685" href="Function.Core.html#668" class="Bound">b</a> <a id="687" class="Symbol"></a> <a id="689" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="693" class="Symbol">(</a><a id="694" href="Function.Core.html#660" class="Bound">a</a> <a id="696" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="698" href="Function.Core.html#668" class="Bound">b</a><a id="699" class="Symbol">)</a>
<a id="701" href="Function.Core.html#646" class="Function">Morphism</a> <a id="710" href="Function.Core.html#710" class="Bound">A</a> <a id="712" href="Function.Core.html#712" class="Bound">B</a> <a id="714" class="Symbol">=</a> <a id="716" href="Function.Core.html#710" class="Bound">A</a> <a id="718" class="Symbol"></a> <a id="720" href="Function.Core.html#712" class="Bound">B</a>
</pre></body></html>

View File

@ -0,0 +1,27 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Function.Definitions.Core1</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Definitions for types of functions that only require an equality</a>
<a id="174" class="Comment">-- relation over the domain.</a>
<a id="203" class="Comment">------------------------------------------------------------------------</a>
<a id="277" class="Comment">-- The contents of this file should usually be accessed from `Function`.</a>
<a id="351" class="Symbol">{-#</a> <a id="355" class="Keyword">OPTIONS</a> <a id="363" class="Pragma">--without-K</a> <a id="375" class="Pragma">--safe</a> <a id="382" class="Symbol">#-}</a>
<a id="387" class="Keyword">open</a> <a id="392" class="Keyword">import</a> <a id="399" href="Relation.Binary.html" class="Module">Relation.Binary</a>
<a id="416" class="Keyword">module</a> <a id="423" href="Function.Definitions.Core1.html" class="Module">Function.Definitions.Core1</a>
<a id="452" class="Symbol">{</a><a id="453" href="Function.Definitions.Core1.html#453" class="Bound">a</a> <a id="455" href="Function.Definitions.Core1.html#455" class="Bound">ℓ₁</a><a id="457" class="Symbol">}</a> <a id="459" class="Symbol">{</a><a id="460" href="Function.Definitions.Core1.html#460" class="Bound">A</a> <a id="462" class="Symbol">:</a> <a id="464" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="468" href="Function.Definitions.Core1.html#453" class="Bound">a</a><a id="469" class="Symbol">}</a> <a id="471" class="Symbol">(</a><a id="472" href="Function.Definitions.Core1.html#472" class="Bound Operator">_≈₁_</a> <a id="477" class="Symbol">:</a> <a id="479" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="483" href="Function.Definitions.Core1.html#460" class="Bound">A</a> <a id="485" href="Function.Definitions.Core1.html#455" class="Bound">ℓ₁</a><a id="487" class="Symbol">)</a>
<a id="491" class="Keyword">where</a>
<a id="498" class="Keyword">open</a> <a id="503" class="Keyword">import</a> <a id="510" href="Level.html" class="Module">Level</a> <a id="516" class="Keyword">using</a> <a id="522" class="Symbol">(</a><a id="523" href="Agda.Primitive.html#810" class="Primitive Operator">_⊔_</a><a id="526" class="Symbol">)</a>
<a id="529" class="Comment">------------------------------------------------------------------------</a>
<a id="602" class="Comment">-- Definitions</a>
<a id="618" class="Comment">-- (Note the name `RightInverse` is used for the bundle)</a>
<a id="Inverseʳ"></a><a id="675" href="Function.Definitions.Core1.html#675" class="Function">Inverseʳ</a> <a id="684" class="Symbol">:</a> <a id="686" class="Symbol"></a> <a id="688" class="Symbol">{</a><a id="689" href="Function.Definitions.Core1.html#689" class="Bound">b</a><a id="690" class="Symbol">}</a> <a id="692" class="Symbol">{</a><a id="693" href="Function.Definitions.Core1.html#693" class="Bound">B</a> <a id="695" class="Symbol">:</a> <a id="697" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="701" href="Function.Definitions.Core1.html#689" class="Bound">b</a><a id="702" class="Symbol">}</a> <a id="704" class="Symbol"></a> <a id="706" class="Symbol">(</a><a id="707" href="Function.Definitions.Core1.html#460" class="Bound">A</a> <a id="709" class="Symbol"></a> <a id="711" href="Function.Definitions.Core1.html#693" class="Bound">B</a><a id="712" class="Symbol">)</a> <a id="714" class="Symbol"></a> <a id="716" class="Symbol">(</a><a id="717" href="Function.Definitions.Core1.html#693" class="Bound">B</a> <a id="719" class="Symbol"></a> <a id="721" href="Function.Definitions.Core1.html#460" class="Bound">A</a><a id="722" class="Symbol">)</a> <a id="724" class="Symbol"></a> <a id="726" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="730" class="Symbol">(</a><a id="731" href="Function.Definitions.Core1.html#453" class="Bound">a</a> <a id="733" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="735" href="Function.Definitions.Core1.html#455" class="Bound">ℓ₁</a><a id="737" class="Symbol">)</a>
<a id="739" href="Function.Definitions.Core1.html#675" class="Function">Inverseʳ</a> <a id="748" href="Function.Definitions.Core1.html#748" class="Bound">f</a> <a id="750" href="Function.Definitions.Core1.html#750" class="Bound">g</a> <a id="752" class="Symbol">=</a> <a id="754" class="Symbol"></a> <a id="756" href="Function.Definitions.Core1.html#756" class="Bound">x</a> <a id="758" class="Symbol"></a> <a id="760" href="Function.Definitions.Core1.html#750" class="Bound">g</a> <a id="762" class="Symbol">(</a><a id="763" href="Function.Definitions.Core1.html#748" class="Bound">f</a> <a id="765" href="Function.Definitions.Core1.html#756" class="Bound">x</a><a id="766" class="Symbol">)</a> <a id="768" href="Function.Definitions.Core1.html#472" class="Bound Operator">≈₁</a> <a id="771" href="Function.Definitions.Core1.html#756" class="Bound">x</a>
</pre></body></html>

View File

@ -0,0 +1,31 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Function.Definitions.Core2</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Definitions for types of functions that only require an equality</a>
<a id="174" class="Comment">-- relation over the co-domain.</a>
<a id="206" class="Comment">------------------------------------------------------------------------</a>
<a id="280" class="Comment">-- The contents of this file should usually be accessed from `Function`.</a>
<a id="354" class="Symbol">{-#</a> <a id="358" class="Keyword">OPTIONS</a> <a id="366" class="Pragma">--without-K</a> <a id="378" class="Pragma">--safe</a> <a id="385" class="Symbol">#-}</a>
<a id="390" class="Keyword">open</a> <a id="395" class="Keyword">import</a> <a id="402" href="Relation.Binary.html" class="Module">Relation.Binary</a>
<a id="419" class="Keyword">module</a> <a id="426" href="Function.Definitions.Core2.html" class="Module">Function.Definitions.Core2</a>
<a id="455" class="Symbol">{</a><a id="456" href="Function.Definitions.Core2.html#456" class="Bound">b</a> <a id="458" href="Function.Definitions.Core2.html#458" class="Bound">ℓ₂</a><a id="460" class="Symbol">}</a> <a id="462" class="Symbol">{</a><a id="463" href="Function.Definitions.Core2.html#463" class="Bound">B</a> <a id="465" class="Symbol">:</a> <a id="467" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="471" href="Function.Definitions.Core2.html#456" class="Bound">b</a><a id="472" class="Symbol">}</a> <a id="474" class="Symbol">(</a><a id="475" href="Function.Definitions.Core2.html#475" class="Bound Operator">_≈₂_</a> <a id="480" class="Symbol">:</a> <a id="482" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="486" href="Function.Definitions.Core2.html#463" class="Bound">B</a> <a id="488" href="Function.Definitions.Core2.html#458" class="Bound">ℓ₂</a><a id="490" class="Symbol">)</a>
<a id="494" class="Keyword">where</a>
<a id="501" class="Keyword">open</a> <a id="506" class="Keyword">import</a> <a id="513" href="Data.Product.html" class="Module">Data.Product</a> <a id="526" class="Keyword">using</a> <a id="532" class="Symbol">(</a><a id="533" href="Data.Product.html#1369" class="Function"></a><a id="534" class="Symbol">)</a>
<a id="536" class="Keyword">open</a> <a id="541" class="Keyword">import</a> <a id="548" href="Level.html" class="Module">Level</a> <a id="554" class="Keyword">using</a> <a id="560" class="Symbol">(</a><a id="561" href="Agda.Primitive.html#597" class="Postulate">Level</a><a id="566" class="Symbol">;</a> <a id="568" href="Agda.Primitive.html#810" class="Primitive Operator">_⊔_</a><a id="571" class="Symbol">)</a>
<a id="574" class="Comment">------------------------------------------------------------------------</a>
<a id="647" class="Comment">-- Definitions</a>
<a id="Surjective"></a><a id="663" href="Function.Definitions.Core2.html#663" class="Function">Surjective</a> <a id="674" class="Symbol">:</a> <a id="676" class="Symbol"></a> <a id="678" class="Symbol">{</a><a id="679" href="Function.Definitions.Core2.html#679" class="Bound">a</a><a id="680" class="Symbol">}</a> <a id="682" class="Symbol">{</a><a id="683" href="Function.Definitions.Core2.html#683" class="Bound">A</a> <a id="685" class="Symbol">:</a> <a id="687" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="691" href="Function.Definitions.Core2.html#679" class="Bound">a</a><a id="692" class="Symbol">}</a> <a id="694" class="Symbol"></a> <a id="696" class="Symbol">(</a><a id="697" href="Function.Definitions.Core2.html#683" class="Bound">A</a> <a id="699" class="Symbol"></a> <a id="701" href="Function.Definitions.Core2.html#463" class="Bound">B</a><a id="702" class="Symbol">)</a> <a id="704" class="Symbol"></a> <a id="706" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="710" class="Symbol">(</a><a id="711" href="Function.Definitions.Core2.html#679" class="Bound">a</a> <a id="713" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="715" href="Function.Definitions.Core2.html#456" class="Bound">b</a> <a id="717" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="719" href="Function.Definitions.Core2.html#458" class="Bound">ℓ₂</a><a id="721" class="Symbol">)</a>
<a id="723" href="Function.Definitions.Core2.html#663" class="Function">Surjective</a> <a id="734" href="Function.Definitions.Core2.html#734" class="Bound">f</a> <a id="736" class="Symbol">=</a> <a id="738" class="Symbol"></a> <a id="740" href="Function.Definitions.Core2.html#740" class="Bound">y</a> <a id="742" class="Symbol"></a> <a id="744" href="Data.Product.html#1369" class="Function"></a> <a id="746" class="Symbol">λ</a> <a id="748" href="Function.Definitions.Core2.html#748" class="Bound">x</a> <a id="750" class="Symbol"></a> <a id="752" href="Function.Definitions.Core2.html#734" class="Bound">f</a> <a id="754" href="Function.Definitions.Core2.html#748" class="Bound">x</a> <a id="756" href="Function.Definitions.Core2.html#475" class="Bound Operator">≈₂</a> <a id="759" href="Function.Definitions.Core2.html#740" class="Bound">y</a>
<a id="762" class="Comment">-- (Note the name `LeftInverse` is used for the bundle)</a>
<a id="Inverseˡ"></a><a id="818" href="Function.Definitions.Core2.html#818" class="Function">Inverseˡ</a> <a id="827" class="Symbol">:</a> <a id="829" class="Symbol"></a> <a id="831" class="Symbol">{</a><a id="832" href="Function.Definitions.Core2.html#832" class="Bound">a</a><a id="833" class="Symbol">}</a> <a id="835" class="Symbol">{</a><a id="836" href="Function.Definitions.Core2.html#836" class="Bound">A</a> <a id="838" class="Symbol">:</a> <a id="840" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="844" href="Function.Definitions.Core2.html#832" class="Bound">a</a><a id="845" class="Symbol">}</a> <a id="847" class="Symbol"></a> <a id="849" class="Symbol">(</a><a id="850" href="Function.Definitions.Core2.html#836" class="Bound">A</a> <a id="852" class="Symbol"></a> <a id="854" href="Function.Definitions.Core2.html#463" class="Bound">B</a><a id="855" class="Symbol">)</a> <a id="857" class="Symbol"></a> <a id="859" class="Symbol">(</a><a id="860" href="Function.Definitions.Core2.html#463" class="Bound">B</a> <a id="862" class="Symbol"></a> <a id="864" href="Function.Definitions.Core2.html#836" class="Bound">A</a><a id="865" class="Symbol">)</a> <a id="867" class="Symbol"></a> <a id="869" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="873" class="Symbol">(</a><a id="874" href="Function.Definitions.Core2.html#456" class="Bound">b</a> <a id="876" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="878" href="Function.Definitions.Core2.html#458" class="Bound">ℓ₂</a><a id="880" class="Symbol">)</a>
<a id="882" href="Function.Definitions.Core2.html#818" class="Function">Inverseˡ</a> <a id="891" href="Function.Definitions.Core2.html#891" class="Bound">f</a> <a id="893" href="Function.Definitions.Core2.html#893" class="Bound">g</a> <a id="895" class="Symbol">=</a> <a id="897" class="Symbol"></a> <a id="899" href="Function.Definitions.Core2.html#899" class="Bound">x</a> <a id="901" class="Symbol"></a> <a id="903" href="Function.Definitions.Core2.html#891" class="Bound">f</a> <a id="905" class="Symbol">(</a><a id="906" href="Function.Definitions.Core2.html#893" class="Bound">g</a> <a id="908" href="Function.Definitions.Core2.html#899" class="Bound">x</a><a id="909" class="Symbol">)</a> <a id="911" href="Function.Definitions.Core2.html#475" class="Bound Operator">≈₂</a> <a id="914" href="Function.Definitions.Core2.html#899" class="Bound">x</a>
</pre></body></html>

View File

@ -0,0 +1,49 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Function.Definitions</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Definitions for types of functions.</a>
<a id="145" class="Comment">------------------------------------------------------------------------</a>
<a id="219" class="Comment">-- The contents of this file should usually be accessed from `Function`.</a>
<a id="293" class="Symbol">{-#</a> <a id="297" class="Keyword">OPTIONS</a> <a id="305" class="Pragma">--without-K</a> <a id="317" class="Pragma">--safe</a> <a id="324" class="Symbol">#-}</a>
<a id="329" class="Keyword">open</a> <a id="334" class="Keyword">import</a> <a id="341" href="Relation.Binary.html" class="Module">Relation.Binary</a>
<a id="358" class="Keyword">module</a> <a id="365" href="Function.Definitions.html" class="Module">Function.Definitions</a>
<a id="388" class="Symbol">{</a><a id="389" href="Function.Definitions.html#389" class="Bound">a</a> <a id="391" href="Function.Definitions.html#391" class="Bound">b</a> <a id="393" href="Function.Definitions.html#393" class="Bound">ℓ₁</a> <a id="396" href="Function.Definitions.html#396" class="Bound">ℓ₂</a><a id="398" class="Symbol">}</a> <a id="400" class="Symbol">{</a><a id="401" href="Function.Definitions.html#401" class="Bound">A</a> <a id="403" class="Symbol">:</a> <a id="405" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="409" href="Function.Definitions.html#389" class="Bound">a</a><a id="410" class="Symbol">}</a> <a id="412" class="Symbol">{</a><a id="413" href="Function.Definitions.html#413" class="Bound">B</a> <a id="415" class="Symbol">:</a> <a id="417" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="421" href="Function.Definitions.html#391" class="Bound">b</a><a id="422" class="Symbol">}</a>
<a id="426" class="Symbol">(</a><a id="427" href="Function.Definitions.html#427" class="Bound Operator">_≈₁_</a> <a id="432" class="Symbol">:</a> <a id="434" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="438" href="Function.Definitions.html#401" class="Bound">A</a> <a id="440" href="Function.Definitions.html#393" class="Bound">ℓ₁</a><a id="442" class="Symbol">)</a> <a id="444" class="Comment">-- Equality over the domain</a>
<a id="474" class="Symbol">(</a><a id="475" href="Function.Definitions.html#475" class="Bound Operator">_≈₂_</a> <a id="480" class="Symbol">:</a> <a id="482" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="486" href="Function.Definitions.html#413" class="Bound">B</a> <a id="488" href="Function.Definitions.html#396" class="Bound">ℓ₂</a><a id="490" class="Symbol">)</a> <a id="492" class="Comment">-- Equality over the codomain</a>
<a id="524" class="Keyword">where</a>
<a id="531" class="Keyword">open</a> <a id="536" class="Keyword">import</a> <a id="543" href="Data.Product.html" class="Module">Data.Product</a> <a id="556" class="Keyword">using</a> <a id="562" class="Symbol">(</a><a id="563" href="Data.Product.html#1369" class="Function"></a><a id="564" class="Symbol">;</a> <a id="566" href="Data.Product.html#1167" class="Function Operator">_×_</a><a id="569" class="Symbol">)</a>
<a id="571" class="Keyword">import</a> <a id="578" href="Function.Definitions.Core1.html" class="Module">Function.Definitions.Core1</a> <a id="605" class="Symbol">as</a> <a id="608" class="Module">Core₁</a>
<a id="614" class="Keyword">import</a> <a id="621" href="Function.Definitions.Core2.html" class="Module">Function.Definitions.Core2</a> <a id="648" class="Symbol">as</a> <a id="651" class="Module">Core₂</a>
<a id="657" class="Keyword">open</a> <a id="662" class="Keyword">import</a> <a id="669" href="Function.Base.html" class="Module">Function.Base</a>
<a id="683" class="Keyword">open</a> <a id="688" class="Keyword">import</a> <a id="695" href="Level.html" class="Module">Level</a> <a id="701" class="Keyword">using</a> <a id="707" class="Symbol">(</a><a id="708" href="Agda.Primitive.html#810" class="Primitive Operator">_⊔_</a><a id="711" class="Symbol">)</a>
<a id="714" class="Comment">------------------------------------------------------------------------</a>
<a id="787" class="Comment">-- Definitions</a>
<a id="Congruent"></a><a id="803" href="Function.Definitions.html#803" class="Function">Congruent</a> <a id="813" class="Symbol">:</a> <a id="815" class="Symbol">(</a><a id="816" href="Function.Definitions.html#401" class="Bound">A</a> <a id="818" class="Symbol"></a> <a id="820" href="Function.Definitions.html#413" class="Bound">B</a><a id="821" class="Symbol">)</a> <a id="823" class="Symbol"></a> <a id="825" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="829" class="Symbol">(</a><a id="830" href="Function.Definitions.html#389" class="Bound">a</a> <a id="832" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="834" href="Function.Definitions.html#393" class="Bound">ℓ₁</a> <a id="837" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="839" href="Function.Definitions.html#396" class="Bound">ℓ₂</a><a id="841" class="Symbol">)</a>
<a id="843" href="Function.Definitions.html#803" class="Function">Congruent</a> <a id="853" href="Function.Definitions.html#853" class="Bound">f</a> <a id="855" class="Symbol">=</a> <a id="857" class="Symbol"></a> <a id="859" class="Symbol">{</a><a id="860" href="Function.Definitions.html#860" class="Bound">x</a> <a id="862" href="Function.Definitions.html#862" class="Bound">y</a><a id="863" class="Symbol">}</a> <a id="865" class="Symbol"></a> <a id="867" href="Function.Definitions.html#860" class="Bound">x</a> <a id="869" href="Function.Definitions.html#427" class="Bound Operator">≈₁</a> <a id="872" href="Function.Definitions.html#862" class="Bound">y</a> <a id="874" class="Symbol"></a> <a id="877" href="Function.Definitions.html#853" class="Bound">f</a> <a id="879" href="Function.Definitions.html#860" class="Bound">x</a> <a id="881" href="Function.Definitions.html#475" class="Bound Operator">≈₂</a> <a id="884" href="Function.Definitions.html#853" class="Bound">f</a> <a id="886" href="Function.Definitions.html#862" class="Bound">y</a>
<a id="Injective"></a><a id="889" href="Function.Definitions.html#889" class="Function">Injective</a> <a id="899" class="Symbol">:</a> <a id="901" class="Symbol">(</a><a id="902" href="Function.Definitions.html#401" class="Bound">A</a> <a id="904" class="Symbol"></a> <a id="906" href="Function.Definitions.html#413" class="Bound">B</a><a id="907" class="Symbol">)</a> <a id="909" class="Symbol"></a> <a id="911" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="915" class="Symbol">(</a><a id="916" href="Function.Definitions.html#389" class="Bound">a</a> <a id="918" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="920" href="Function.Definitions.html#393" class="Bound">ℓ₁</a> <a id="923" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="925" href="Function.Definitions.html#396" class="Bound">ℓ₂</a><a id="927" class="Symbol">)</a>
<a id="929" href="Function.Definitions.html#889" class="Function">Injective</a> <a id="939" href="Function.Definitions.html#939" class="Bound">f</a> <a id="941" class="Symbol">=</a> <a id="943" class="Symbol"></a> <a id="945" class="Symbol">{</a><a id="946" href="Function.Definitions.html#946" class="Bound">x</a> <a id="948" href="Function.Definitions.html#948" class="Bound">y</a><a id="949" class="Symbol">}</a> <a id="951" class="Symbol"></a> <a id="953" href="Function.Definitions.html#939" class="Bound">f</a> <a id="955" href="Function.Definitions.html#946" class="Bound">x</a> <a id="957" href="Function.Definitions.html#475" class="Bound Operator">≈₂</a> <a id="960" href="Function.Definitions.html#939" class="Bound">f</a> <a id="962" href="Function.Definitions.html#948" class="Bound">y</a> <a id="964" class="Symbol"></a> <a id="966" href="Function.Definitions.html#946" class="Bound">x</a> <a id="968" href="Function.Definitions.html#427" class="Bound Operator">≈₁</a> <a id="971" href="Function.Definitions.html#948" class="Bound">y</a>
<a id="974" class="Keyword">open</a> <a id="979" href="Function.Definitions.Core2.html" class="Module">Core₂</a> <a id="985" href="Function.Definitions.html#475" class="Bound Operator">_≈₂_</a> <a id="990" class="Keyword">public</a>
<a id="999" class="Keyword">using</a> <a id="1005" class="Symbol">(</a><a id="1006" href="Function.Definitions.Core2.html#663" class="Function">Surjective</a><a id="1016" class="Symbol">)</a>
<a id="Bijective"></a><a id="1019" href="Function.Definitions.html#1019" class="Function">Bijective</a> <a id="1029" class="Symbol">:</a> <a id="1031" class="Symbol">(</a><a id="1032" href="Function.Definitions.html#401" class="Bound">A</a> <a id="1034" class="Symbol"></a> <a id="1036" href="Function.Definitions.html#413" class="Bound">B</a><a id="1037" class="Symbol">)</a> <a id="1039" class="Symbol"></a> <a id="1041" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1045" class="Symbol">(</a><a id="1046" href="Function.Definitions.html#389" class="Bound">a</a> <a id="1048" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1050" href="Function.Definitions.html#391" class="Bound">b</a> <a id="1052" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1054" href="Function.Definitions.html#393" class="Bound">ℓ₁</a> <a id="1057" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1059" href="Function.Definitions.html#396" class="Bound">ℓ₂</a><a id="1061" class="Symbol">)</a>
<a id="1063" href="Function.Definitions.html#1019" class="Function">Bijective</a> <a id="1073" href="Function.Definitions.html#1073" class="Bound">f</a> <a id="1075" class="Symbol">=</a> <a id="1077" href="Function.Definitions.html#889" class="Function">Injective</a> <a id="1087" href="Function.Definitions.html#1073" class="Bound">f</a> <a id="1089" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="1091" href="Function.Definitions.Core2.html#663" class="Function">Surjective</a> <a id="1102" href="Function.Definitions.html#1073" class="Bound">f</a>
<a id="1105" class="Keyword">open</a> <a id="1110" href="Function.Definitions.Core2.html" class="Module">Core₂</a> <a id="1116" href="Function.Definitions.html#475" class="Bound Operator">_≈₂_</a> <a id="1121" class="Keyword">public</a>
<a id="1130" class="Keyword">using</a> <a id="1136" class="Symbol">(</a><a id="1137" href="Function.Definitions.Core2.html#818" class="Function">Inverseˡ</a><a id="1145" class="Symbol">)</a>
<a id="1148" class="Keyword">open</a> <a id="1153" href="Function.Definitions.Core1.html" class="Module">Core₁</a> <a id="1159" href="Function.Definitions.html#427" class="Bound Operator">_≈₁_</a> <a id="1164" class="Keyword">public</a>
<a id="1173" class="Keyword">using</a> <a id="1179" class="Symbol">(</a><a id="1180" href="Function.Definitions.Core1.html#675" class="Function">Inverseʳ</a><a id="1188" class="Symbol">)</a>
<a id="Inverseᵇ"></a><a id="1191" href="Function.Definitions.html#1191" class="Function">Inverseᵇ</a> <a id="1200" class="Symbol">:</a> <a id="1202" class="Symbol">(</a><a id="1203" href="Function.Definitions.html#401" class="Bound">A</a> <a id="1205" class="Symbol"></a> <a id="1207" href="Function.Definitions.html#413" class="Bound">B</a><a id="1208" class="Symbol">)</a> <a id="1210" class="Symbol"></a> <a id="1212" class="Symbol">(</a><a id="1213" href="Function.Definitions.html#413" class="Bound">B</a> <a id="1215" class="Symbol"></a> <a id="1217" href="Function.Definitions.html#401" class="Bound">A</a><a id="1218" class="Symbol">)</a> <a id="1220" class="Symbol"></a> <a id="1222" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1226" class="Symbol">(</a><a id="1227" href="Function.Definitions.html#389" class="Bound">a</a> <a id="1229" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1231" href="Function.Definitions.html#391" class="Bound">b</a> <a id="1233" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1235" href="Function.Definitions.html#393" class="Bound">ℓ₁</a> <a id="1238" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1240" href="Function.Definitions.html#396" class="Bound">ℓ₂</a><a id="1242" class="Symbol">)</a>
<a id="1244" href="Function.Definitions.html#1191" class="Function">Inverseᵇ</a> <a id="1253" href="Function.Definitions.html#1253" class="Bound">f</a> <a id="1255" href="Function.Definitions.html#1255" class="Bound">g</a> <a id="1257" class="Symbol">=</a> <a id="1259" href="Function.Definitions.Core2.html#818" class="Function">Inverseˡ</a> <a id="1268" href="Function.Definitions.html#1253" class="Bound">f</a> <a id="1270" href="Function.Definitions.html#1255" class="Bound">g</a> <a id="1272" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="1274" href="Function.Definitions.Core1.html#675" class="Function">Inverseʳ</a> <a id="1283" href="Function.Definitions.html#1253" class="Bound">f</a> <a id="1285" href="Function.Definitions.html#1255" class="Bound">g</a>
</pre></body></html>

126
misc/Function.Equality.html Normal file
View File

@ -0,0 +1,126 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Function.Equality</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Function setoids and related constructions</a>
<a id="152" class="Comment">------------------------------------------------------------------------</a>
<a id="226" class="Symbol">{-#</a> <a id="230" class="Keyword">OPTIONS</a> <a id="238" class="Pragma">--without-K</a> <a id="250" class="Pragma">--safe</a> <a id="257" class="Symbol">#-}</a>
<a id="262" class="Comment">-- Note: use of the standard function hierarchy is encouraged. The</a>
<a id="329" class="Comment">-- module `Function` re-exports `Congruent`, `IsBijection` and</a>
<a id="392" class="Comment">-- `Bijection`. The alternative definitions found in this file will</a>
<a id="460" class="Comment">-- eventually be deprecated.</a>
<a id="490" class="Keyword">module</a> <a id="497" href="Function.Equality.html" class="Module">Function.Equality</a> <a id="515" class="Keyword">where</a>
<a id="522" class="Keyword">import</a> <a id="529" href="Function.Base.html" class="Module">Function.Base</a> <a id="543" class="Symbol">as</a> <a id="546" class="Module">Fun</a>
<a id="550" class="Keyword">open</a> <a id="555" class="Keyword">import</a> <a id="562" href="Level.html" class="Module">Level</a>
<a id="568" class="Keyword">open</a> <a id="573" class="Keyword">import</a> <a id="580" href="Relation.Binary.html" class="Module">Relation.Binary</a> <a id="596" class="Keyword">using</a> <a id="602" class="Symbol">(</a><a id="603" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a><a id="609" class="Symbol">)</a>
<a id="611" class="Keyword">open</a> <a id="616" class="Keyword">import</a> <a id="623" href="Relation.Binary.Indexed.Heterogeneous.html" class="Module">Relation.Binary.Indexed.Heterogeneous</a>
<a id="663" class="Keyword">using</a> <a id="669" class="Symbol">(</a><a id="670" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#789" class="Record">IndexedSetoid</a><a id="683" class="Symbol">;</a> <a id="685" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1062" class="Function Operator">_=[_]⇒_</a><a id="692" class="Symbol">)</a>
<a id="694" class="Keyword">import</a> <a id="701" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html" class="Module">Relation.Binary.Indexed.Heterogeneous.Construct.Trivial</a>
<a id="759" class="Symbol">as</a> <a id="762" class="Module">Trivial</a>
<a id="771" class="Comment">------------------------------------------------------------------------</a>
<a id="844" class="Comment">-- Functions which preserve equality</a>
<a id="882" class="Keyword">record</a> <a id="Π"></a><a id="889" href="Function.Equality.html#889" class="Record">Π</a> <a id="891" class="Symbol">{</a><a id="892" href="Function.Equality.html#892" class="Bound">f₁</a> <a id="895" href="Function.Equality.html#895" class="Bound">f₂</a> <a id="898" href="Function.Equality.html#898" class="Bound">t₁</a> <a id="901" href="Function.Equality.html#901" class="Bound">t₂</a><a id="903" class="Symbol">}</a>
<a id="914" class="Symbol">(</a><a id="915" href="Function.Equality.html#915" class="Bound">From</a> <a id="920" class="Symbol">:</a> <a id="922" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="929" href="Function.Equality.html#892" class="Bound">f₁</a> <a id="932" href="Function.Equality.html#895" class="Bound">f₂</a><a id="934" class="Symbol">)</a>
<a id="945" class="Symbol">(</a><a id="946" href="Function.Equality.html#946" class="Bound">To</a> <a id="949" class="Symbol">:</a> <a id="951" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#789" class="Record">IndexedSetoid</a> <a id="965" class="Symbol">(</a><a id="966" href="Relation.Binary.Bundles.html#1072" class="Field">Setoid.Carrier</a> <a id="981" href="Function.Equality.html#915" class="Bound">From</a><a id="985" class="Symbol">)</a> <a id="987" href="Function.Equality.html#898" class="Bound">t₁</a> <a id="990" href="Function.Equality.html#901" class="Bound">t₂</a><a id="992" class="Symbol">)</a> <a id="994" class="Symbol">:</a>
<a id="1005" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1009" class="Symbol">(</a><a id="1010" href="Function.Equality.html#892" class="Bound">f₁</a> <a id="1013" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1015" href="Function.Equality.html#895" class="Bound">f₂</a> <a id="1018" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1020" href="Function.Equality.html#898" class="Bound">t₁</a> <a id="1023" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1025" href="Function.Equality.html#901" class="Bound">t₂</a><a id="1027" class="Symbol">)</a> <a id="1029" class="Keyword">where</a>
<a id="1037" class="Keyword">infixl</a> <a id="1044" class="Number">5</a> <a id="1046" href="Function.Equality.html#1064" class="Field Operator">_⟨$⟩_</a>
<a id="1054" class="Keyword">field</a>
<a id="Π._⟨$⟩_"></a><a id="1064" href="Function.Equality.html#1064" class="Field Operator">_⟨$⟩_</a> <a id="1070" class="Symbol">:</a> <a id="1072" class="Symbol">(</a><a id="1073" href="Function.Equality.html#1073" class="Bound">x</a> <a id="1075" class="Symbol">:</a> <a id="1077" href="Relation.Binary.Bundles.html#1072" class="Field">Setoid.Carrier</a> <a id="1092" href="Function.Equality.html#915" class="Bound">From</a><a id="1096" class="Symbol">)</a> <a id="1098" class="Symbol"></a> <a id="1100" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#879" class="Field">IndexedSetoid.Carrier</a> <a id="1122" href="Function.Equality.html#946" class="Bound">To</a> <a id="1125" href="Function.Equality.html#1073" class="Bound">x</a>
<a id="Π.cong"></a><a id="1131" href="Function.Equality.html#1131" class="Field">cong</a> <a id="1137" class="Symbol">:</a> <a id="1139" href="Relation.Binary.Bundles.html#1098" class="Field Operator">Setoid._≈_</a> <a id="1150" href="Function.Equality.html#915" class="Bound">From</a> <a id="1155" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1062" class="Function Operator">=[</a> <a id="1158" href="Function.Equality.html#1064" class="Field Operator">_⟨$⟩_</a> <a id="1164" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1062" class="Function Operator">]⇒</a> <a id="1167" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#909" class="Field Operator">IndexedSetoid._≈_</a> <a id="1185" href="Function.Equality.html#946" class="Bound">To</a>
<a id="1189" class="Keyword">open</a> <a id="1194" href="Function.Equality.html#889" class="Module">Π</a> <a id="1196" class="Keyword">public</a>
<a id="1204" class="Keyword">infixr</a> <a id="1211" class="Number">0</a> <a id="1213" href="Function.Equality.html#1218" class="Function Operator">_⟶_</a>
<a id="_⟶_"></a><a id="1218" href="Function.Equality.html#1218" class="Function Operator">_⟶_</a> <a id="1222" class="Symbol">:</a> <a id="1224" class="Symbol"></a> <a id="1226" class="Symbol">{</a><a id="1227" href="Function.Equality.html#1227" class="Bound">f₁</a> <a id="1230" href="Function.Equality.html#1230" class="Bound">f₂</a> <a id="1233" href="Function.Equality.html#1233" class="Bound">t₁</a> <a id="1236" href="Function.Equality.html#1236" class="Bound">t₂</a><a id="1238" class="Symbol">}</a> <a id="1240" class="Symbol"></a> <a id="1242" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="1249" href="Function.Equality.html#1227" class="Bound">f₁</a> <a id="1252" href="Function.Equality.html#1230" class="Bound">f₂</a> <a id="1255" class="Symbol"></a> <a id="1257" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="1264" href="Function.Equality.html#1233" class="Bound">t₁</a> <a id="1267" href="Function.Equality.html#1236" class="Bound">t₂</a> <a id="1270" class="Symbol"></a> <a id="1272" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1276" class="Symbol">_</a>
<a id="1278" href="Function.Equality.html#1278" class="Bound">From</a> <a id="1283" href="Function.Equality.html#1218" class="Function Operator"></a> <a id="1285" href="Function.Equality.html#1285" class="Bound">To</a> <a id="1288" class="Symbol">=</a> <a id="1290" href="Function.Equality.html#889" class="Record">Π</a> <a id="1292" href="Function.Equality.html#1278" class="Bound">From</a> <a id="1297" class="Symbol">(</a><a id="1298" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1370" class="Function">Trivial.indexedSetoid</a> <a id="1320" href="Function.Equality.html#1285" class="Bound">To</a><a id="1322" class="Symbol">)</a>
<a id="1325" class="Comment">------------------------------------------------------------------------</a>
<a id="1398" class="Comment">-- Identity and composition.</a>
<a id="id"></a><a id="1428" href="Function.Equality.html#1428" class="Function">id</a> <a id="1431" class="Symbol">:</a> <a id="1433" class="Symbol"></a> <a id="1435" class="Symbol">{</a><a id="1436" href="Function.Equality.html#1436" class="Bound">a₁</a> <a id="1439" href="Function.Equality.html#1439" class="Bound">a₂</a><a id="1441" class="Symbol">}</a> <a id="1443" class="Symbol">{</a><a id="1444" href="Function.Equality.html#1444" class="Bound">A</a> <a id="1446" class="Symbol">:</a> <a id="1448" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="1455" href="Function.Equality.html#1436" class="Bound">a₁</a> <a id="1458" href="Function.Equality.html#1439" class="Bound">a₂</a><a id="1460" class="Symbol">}</a> <a id="1462" class="Symbol"></a> <a id="1464" href="Function.Equality.html#1444" class="Bound">A</a> <a id="1466" href="Function.Equality.html#1218" class="Function Operator"></a> <a id="1468" href="Function.Equality.html#1444" class="Bound">A</a>
<a id="1470" href="Function.Equality.html#1428" class="Function">id</a> <a id="1473" class="Symbol">=</a> <a id="1475" class="Keyword">record</a> <a id="1482" class="Symbol">{</a> <a id="1484" href="Function.Equality.html#1064" class="Field Operator">_⟨$⟩_</a> <a id="1490" class="Symbol">=</a> <a id="1492" href="Function.Base.html#615" class="Function">Fun.id</a><a id="1498" class="Symbol">;</a> <a id="1500" href="Function.Equality.html#1131" class="Field">cong</a> <a id="1505" class="Symbol">=</a> <a id="1507" href="Function.Base.html#615" class="Function">Fun.id</a> <a id="1514" class="Symbol">}</a>
<a id="1517" class="Keyword">infixr</a> <a id="1524" class="Number">9</a> <a id="1526" href="Function.Equality.html#1531" class="Function Operator">_∘_</a>
<a id="_∘_"></a><a id="1531" href="Function.Equality.html#1531" class="Function Operator">_∘_</a> <a id="1535" class="Symbol">:</a> <a id="1537" class="Symbol"></a> <a id="1539" class="Symbol">{</a><a id="1540" href="Function.Equality.html#1540" class="Bound">a₁</a> <a id="1543" href="Function.Equality.html#1543" class="Bound">a₂</a><a id="1545" class="Symbol">}</a> <a id="1547" class="Symbol">{</a><a id="1548" href="Function.Equality.html#1548" class="Bound">A</a> <a id="1550" class="Symbol">:</a> <a id="1552" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="1559" href="Function.Equality.html#1540" class="Bound">a₁</a> <a id="1562" href="Function.Equality.html#1543" class="Bound">a₂</a><a id="1564" class="Symbol">}</a>
<a id="1574" class="Symbol">{</a><a id="1575" href="Function.Equality.html#1575" class="Bound">b₁</a> <a id="1578" href="Function.Equality.html#1578" class="Bound">b₂</a><a id="1580" class="Symbol">}</a> <a id="1582" class="Symbol">{</a><a id="1583" href="Function.Equality.html#1583" class="Bound">B</a> <a id="1585" class="Symbol">:</a> <a id="1587" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="1594" href="Function.Equality.html#1575" class="Bound">b₁</a> <a id="1597" href="Function.Equality.html#1578" class="Bound">b₂</a><a id="1599" class="Symbol">}</a>
<a id="1609" class="Symbol">{</a><a id="1610" href="Function.Equality.html#1610" class="Bound">c₁</a> <a id="1613" href="Function.Equality.html#1613" class="Bound">c₂</a><a id="1615" class="Symbol">}</a> <a id="1617" class="Symbol">{</a><a id="1618" href="Function.Equality.html#1618" class="Bound">C</a> <a id="1620" class="Symbol">:</a> <a id="1622" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="1629" href="Function.Equality.html#1610" class="Bound">c₁</a> <a id="1632" href="Function.Equality.html#1613" class="Bound">c₂</a><a id="1634" class="Symbol">}</a> <a id="1636" class="Symbol"></a>
<a id="1644" href="Function.Equality.html#1583" class="Bound">B</a> <a id="1646" href="Function.Equality.html#1218" class="Function Operator"></a> <a id="1648" href="Function.Equality.html#1618" class="Bound">C</a> <a id="1650" class="Symbol"></a> <a id="1652" href="Function.Equality.html#1548" class="Bound">A</a> <a id="1654" href="Function.Equality.html#1218" class="Function Operator"></a> <a id="1656" href="Function.Equality.html#1583" class="Bound">B</a> <a id="1658" class="Symbol"></a> <a id="1660" href="Function.Equality.html#1548" class="Bound">A</a> <a id="1662" href="Function.Equality.html#1218" class="Function Operator"></a> <a id="1664" href="Function.Equality.html#1618" class="Bound">C</a>
<a id="1666" href="Function.Equality.html#1666" class="Bound">f</a> <a id="1668" href="Function.Equality.html#1531" class="Function Operator"></a> <a id="1670" href="Function.Equality.html#1670" class="Bound">g</a> <a id="1672" class="Symbol">=</a> <a id="1674" class="Keyword">record</a>
<a id="1683" class="Symbol">{</a> <a id="1685" href="Function.Equality.html#1064" class="Field Operator">_⟨$⟩_</a> <a id="1691" class="Symbol">=</a> <a id="1693" href="Function.Base.html#1031" class="Function Operator">Fun._∘_</a> <a id="1701" class="Symbol">(</a><a id="1702" href="Function.Equality.html#1064" class="Field Operator">_⟨$⟩_</a> <a id="1708" href="Function.Equality.html#1666" class="Bound">f</a><a id="1709" class="Symbol">)</a> <a id="1711" class="Symbol">(</a><a id="1712" href="Function.Equality.html#1064" class="Field Operator">_⟨$⟩_</a> <a id="1718" href="Function.Equality.html#1670" class="Bound">g</a><a id="1719" class="Symbol">)</a>
<a id="1723" class="Symbol">;</a> <a id="1725" href="Function.Equality.html#1131" class="Field">cong</a> <a id="1731" class="Symbol">=</a> <a id="1733" href="Function.Base.html#1031" class="Function Operator">Fun._∘_</a> <a id="1741" class="Symbol">(</a><a id="1742" href="Function.Equality.html#1131" class="Field">cong</a> <a id="1748" href="Function.Equality.html#1666" class="Bound">f</a><a id="1749" class="Symbol">)</a> <a id="1751" class="Symbol">(</a><a id="1752" href="Function.Equality.html#1131" class="Field">cong</a> <a id="1758" href="Function.Equality.html#1670" class="Bound">g</a><a id="1759" class="Symbol">)</a>
<a id="1763" class="Symbol">}</a>
<a id="1766" class="Comment">-- Constant equality-preserving function.</a>
<a id="const"></a><a id="1809" href="Function.Equality.html#1809" class="Function">const</a> <a id="1815" class="Symbol">:</a> <a id="1817" class="Symbol"></a> <a id="1819" class="Symbol">{</a><a id="1820" href="Function.Equality.html#1820" class="Bound">a₁</a> <a id="1823" href="Function.Equality.html#1823" class="Bound">a₂</a><a id="1825" class="Symbol">}</a> <a id="1827" class="Symbol">{</a><a id="1828" href="Function.Equality.html#1828" class="Bound">A</a> <a id="1830" class="Symbol">:</a> <a id="1832" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="1839" href="Function.Equality.html#1820" class="Bound">a₁</a> <a id="1842" href="Function.Equality.html#1823" class="Bound">a₂</a><a id="1844" class="Symbol">}</a>
<a id="1856" class="Symbol">{</a><a id="1857" href="Function.Equality.html#1857" class="Bound">b₁</a> <a id="1860" href="Function.Equality.html#1860" class="Bound">b₂</a><a id="1862" class="Symbol">}</a> <a id="1864" class="Symbol">{</a><a id="1865" href="Function.Equality.html#1865" class="Bound">B</a> <a id="1867" class="Symbol">:</a> <a id="1869" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="1876" href="Function.Equality.html#1857" class="Bound">b₁</a> <a id="1879" href="Function.Equality.html#1860" class="Bound">b₂</a><a id="1881" class="Symbol">}</a> <a id="1883" class="Symbol"></a>
<a id="1893" href="Relation.Binary.Bundles.html#1072" class="Field">Setoid.Carrier</a> <a id="1908" href="Function.Equality.html#1865" class="Bound">B</a> <a id="1910" class="Symbol"></a> <a id="1912" href="Function.Equality.html#1828" class="Bound">A</a> <a id="1914" href="Function.Equality.html#1218" class="Function Operator"></a> <a id="1916" href="Function.Equality.html#1865" class="Bound">B</a>
<a id="1918" href="Function.Equality.html#1809" class="Function">const</a> <a id="1924" class="Symbol">{</a><a id="1925" class="Argument">B</a> <a id="1927" class="Symbol">=</a> <a id="1929" href="Function.Equality.html#1929" class="Bound">B</a><a id="1930" class="Symbol">}</a> <a id="1932" href="Function.Equality.html#1932" class="Bound">b</a> <a id="1934" class="Symbol">=</a> <a id="1936" class="Keyword">record</a>
<a id="1945" class="Symbol">{</a> <a id="1947" href="Function.Equality.html#1064" class="Field Operator">_⟨$⟩_</a> <a id="1953" class="Symbol">=</a> <a id="1955" href="Function.Base.html#636" class="Function">Fun.const</a> <a id="1965" href="Function.Equality.html#1932" class="Bound">b</a>
<a id="1969" class="Symbol">;</a> <a id="1971" href="Function.Equality.html#1131" class="Field">cong</a> <a id="1977" class="Symbol">=</a> <a id="1979" href="Function.Base.html#636" class="Function">Fun.const</a> <a id="1989" class="Symbol">(</a><a id="1990" href="Relation.Binary.Structures.html#1568" class="Function">Setoid.refl</a> <a id="2002" href="Function.Equality.html#1929" class="Bound">B</a><a id="2003" class="Symbol">)</a>
<a id="2007" class="Symbol">}</a>
<a id="2010" class="Comment">------------------------------------------------------------------------</a>
<a id="2083" class="Comment">-- Function setoids</a>
<a id="2104" class="Comment">-- Dependent.</a>
<a id="setoid"></a><a id="2119" href="Function.Equality.html#2119" class="Function">setoid</a> <a id="2126" class="Symbol">:</a> <a id="2128" class="Symbol"></a> <a id="2130" class="Symbol">{</a><a id="2131" href="Function.Equality.html#2131" class="Bound">f₁</a> <a id="2134" href="Function.Equality.html#2134" class="Bound">f₂</a> <a id="2137" href="Function.Equality.html#2137" class="Bound">t₁</a> <a id="2140" href="Function.Equality.html#2140" class="Bound">t₂</a><a id="2142" class="Symbol">}</a>
<a id="2153" class="Symbol">(</a><a id="2154" href="Function.Equality.html#2154" class="Bound">From</a> <a id="2159" class="Symbol">:</a> <a id="2161" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="2168" href="Function.Equality.html#2131" class="Bound">f₁</a> <a id="2171" href="Function.Equality.html#2134" class="Bound">f₂</a><a id="2173" class="Symbol">)</a> <a id="2175" class="Symbol"></a>
<a id="2186" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#789" class="Record">IndexedSetoid</a> <a id="2200" class="Symbol">(</a><a id="2201" href="Relation.Binary.Bundles.html#1072" class="Field">Setoid.Carrier</a> <a id="2216" href="Function.Equality.html#2154" class="Bound">From</a><a id="2220" class="Symbol">)</a> <a id="2222" href="Function.Equality.html#2137" class="Bound">t₁</a> <a id="2225" href="Function.Equality.html#2140" class="Bound">t₂</a> <a id="2228" class="Symbol"></a>
<a id="2239" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="2246" class="Symbol">_</a> <a id="2248" class="Symbol">_</a>
<a id="2250" href="Function.Equality.html#2119" class="Function">setoid</a> <a id="2257" href="Function.Equality.html#2257" class="Bound">From</a> <a id="2262" href="Function.Equality.html#2262" class="Bound">To</a> <a id="2265" class="Symbol">=</a> <a id="2267" class="Keyword">record</a>
<a id="2276" class="Symbol">{</a> <a id="2278" href="Relation.Binary.Bundles.html#1072" class="Field">Carrier</a> <a id="2292" class="Symbol">=</a> <a id="2294" href="Function.Equality.html#889" class="Record">Π</a> <a id="2296" href="Function.Equality.html#2257" class="Bound">From</a> <a id="2301" href="Function.Equality.html#2262" class="Bound">To</a>
<a id="2306" class="Symbol">;</a> <a id="2308" href="Relation.Binary.Bundles.html#1098" class="Field Operator">_≈_</a> <a id="2322" class="Symbol">=</a> <a id="2324" class="Symbol">λ</a> <a id="2326" href="Function.Equality.html#2326" class="Bound">f</a> <a id="2328" href="Function.Equality.html#2328" class="Bound">g</a> <a id="2330" class="Symbol"></a> <a id="2332" class="Symbol"></a> <a id="2334" class="Symbol">{</a><a id="2335" href="Function.Equality.html#2335" class="Bound">x</a> <a id="2337" href="Function.Equality.html#2337" class="Bound">y</a><a id="2338" class="Symbol">}</a> <a id="2340" class="Symbol"></a> <a id="2342" href="Function.Equality.html#2335" class="Bound">x</a> <a id="2344" href="Function.Equality.html#2622" class="Function Operator">≈₁</a> <a id="2347" href="Function.Equality.html#2337" class="Bound">y</a> <a id="2349" class="Symbol"></a> <a id="2351" href="Function.Equality.html#2326" class="Bound">f</a> <a id="2353" href="Function.Equality.html#1064" class="Field Operator">⟨$⟩</a> <a id="2357" href="Function.Equality.html#2335" class="Bound">x</a> <a id="2359" href="Function.Equality.html#2692" class="Field Operator">≈₂</a> <a id="2362" href="Function.Equality.html#2328" class="Bound">g</a> <a id="2364" href="Function.Equality.html#1064" class="Field Operator">⟨$⟩</a> <a id="2368" href="Function.Equality.html#2337" class="Bound">y</a>
<a id="2372" class="Symbol">;</a> <a id="2374" href="Relation.Binary.Bundles.html#1132" class="Field">isEquivalence</a> <a id="2388" class="Symbol">=</a> <a id="2390" class="Keyword">record</a>
<a id="2401" class="Symbol">{</a> <a id="2403" href="Relation.Binary.Structures.html#1568" class="Field">refl</a> <a id="2409" class="Symbol">=</a> <a id="2411" class="Symbol">λ</a> <a id="2413" class="Symbol">{</a><a id="2414" href="Function.Equality.html#2414" class="Bound">f</a><a id="2415" class="Symbol">}</a> <a id="2417" class="Symbol"></a> <a id="2419" href="Function.Equality.html#1131" class="Field">cong</a> <a id="2424" href="Function.Equality.html#2414" class="Bound">f</a>
<a id="2430" class="Symbol">;</a> <a id="2432" href="Relation.Binary.Structures.html#1594" class="Field">sym</a> <a id="2438" class="Symbol">=</a> <a id="2440" class="Symbol">λ</a> <a id="2442" href="Function.Equality.html#2442" class="Bound">fg</a> <a id="2446" href="Function.Equality.html#2446" class="Bound">xy</a> <a id="2450" class="Symbol"></a> <a id="2452" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#938" class="Function">To.sym</a> <a id="2459" class="Symbol">(</a><a id="2460" href="Function.Equality.html#2442" class="Bound">fg</a> <a id="2464" class="Symbol">(</a><a id="2465" href="Relation.Binary.Structures.html#1594" class="Function">From.sym</a> <a id="2474" href="Function.Equality.html#2446" class="Bound">xy</a><a id="2477" class="Symbol">))</a>
<a id="2484" class="Symbol">;</a> <a id="2486" href="Relation.Binary.Structures.html#1620" class="Field">trans</a> <a id="2492" class="Symbol">=</a> <a id="2494" class="Symbol">λ</a> <a id="2496" href="Function.Equality.html#2496" class="Bound">fg</a> <a id="2500" href="Function.Equality.html#2500" class="Bound">gh</a> <a id="2504" href="Function.Equality.html#2504" class="Bound">xy</a> <a id="2508" class="Symbol"></a> <a id="2510" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#967" class="Function">To.trans</a> <a id="2519" class="Symbol">(</a><a id="2520" href="Function.Equality.html#2496" class="Bound">fg</a> <a id="2524" href="Relation.Binary.Structures.html#1568" class="Function">From.refl</a><a id="2533" class="Symbol">)</a> <a id="2535" class="Symbol">(</a><a id="2536" href="Function.Equality.html#2500" class="Bound">gh</a> <a id="2540" href="Function.Equality.html#2504" class="Bound">xy</a><a id="2543" class="Symbol">)</a>
<a id="2549" class="Symbol">}</a>
<a id="2553" class="Symbol">}</a>
<a id="2557" class="Keyword">where</a>
<a id="2565" class="Keyword">open</a> <a id="2570" class="Keyword">module</a> <a id="2577" href="Function.Equality.html#2577" class="Module">From</a> <a id="2582" class="Symbol">=</a> <a id="2584" href="Relation.Binary.Bundles.html#1009" class="Module">Setoid</a> <a id="2591" href="Function.Equality.html#2257" class="Bound">From</a> <a id="2596" class="Keyword">using</a> <a id="2602" class="Symbol">()</a> <a id="2605" class="Keyword">renaming</a> <a id="2614" class="Symbol">(</a><a id="2615" href="Relation.Binary.Bundles.html#1098" class="Function Operator">_≈_</a> <a id="2619" class="Symbol">to</a> <a id="2622" class="Function Operator">_≈₁_</a><a id="2626" class="Symbol">)</a>
<a id="2630" class="Keyword">open</a> <a id="2635" class="Keyword">module</a> <a id="2642" href="Function.Equality.html#2642" class="Module">To</a> <a id="2645" class="Symbol">=</a> <a id="2647" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#789" class="Module">IndexedSetoid</a> <a id="2661" href="Function.Equality.html#2262" class="Bound">To</a> <a id="2666" class="Keyword">using</a> <a id="2672" class="Symbol">()</a> <a id="2675" class="Keyword">renaming</a> <a id="2684" class="Symbol">(</a><a id="2685" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#909" class="Field Operator">_≈_</a> <a id="2689" class="Symbol">to</a> <a id="2692" class="Field Operator">_≈₂_</a><a id="2696" class="Symbol">)</a>
<a id="2699" class="Comment">-- Non-dependent.</a>
<a id="2718" class="Keyword">infixr</a> <a id="2725" class="Number">0</a> <a id="2727" href="Function.Equality.html#2732" class="Function Operator">_⇨_</a>
<a id="_⇨_"></a><a id="2732" href="Function.Equality.html#2732" class="Function Operator">_⇨_</a> <a id="2736" class="Symbol">:</a> <a id="2738" class="Symbol"></a> <a id="2740" class="Symbol">{</a><a id="2741" href="Function.Equality.html#2741" class="Bound">f₁</a> <a id="2744" href="Function.Equality.html#2744" class="Bound">f₂</a> <a id="2747" href="Function.Equality.html#2747" class="Bound">t₁</a> <a id="2750" href="Function.Equality.html#2750" class="Bound">t₂</a><a id="2752" class="Symbol">}</a> <a id="2754" class="Symbol"></a> <a id="2756" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="2763" href="Function.Equality.html#2741" class="Bound">f₁</a> <a id="2766" href="Function.Equality.html#2744" class="Bound">f₂</a> <a id="2769" class="Symbol"></a> <a id="2771" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="2778" href="Function.Equality.html#2747" class="Bound">t₁</a> <a id="2781" href="Function.Equality.html#2750" class="Bound">t₂</a> <a id="2784" class="Symbol"></a> <a id="2786" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="2793" class="Symbol">_</a> <a id="2795" class="Symbol">_</a>
<a id="2797" href="Function.Equality.html#2797" class="Bound">From</a> <a id="2802" href="Function.Equality.html#2732" class="Function Operator"></a> <a id="2804" href="Function.Equality.html#2804" class="Bound">To</a> <a id="2807" class="Symbol">=</a> <a id="2809" href="Function.Equality.html#2119" class="Function">setoid</a> <a id="2816" href="Function.Equality.html#2797" class="Bound">From</a> <a id="2821" class="Symbol">(</a><a id="2822" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1370" class="Function">Trivial.indexedSetoid</a> <a id="2844" href="Function.Equality.html#2804" class="Bound">To</a><a id="2846" class="Symbol">)</a>
<a id="2849" class="Comment">-- A variant of setoid which uses the propositional equality setoid</a>
<a id="2917" class="Comment">-- for the domain, and a more convenient definition of _≈_.</a>
<a id="≡-setoid"></a><a id="2978" href="Function.Equality.html#2978" class="Function">≡-setoid</a> <a id="2987" class="Symbol">:</a> <a id="2989" class="Symbol"></a> <a id="2991" class="Symbol">{</a><a id="2992" href="Function.Equality.html#2992" class="Bound">f</a> <a id="2994" href="Function.Equality.html#2994" class="Bound">t₁</a> <a id="2997" href="Function.Equality.html#2997" class="Bound">t₂</a><a id="2999" class="Symbol">}</a> <a id="3001" class="Symbol">(</a><a id="3002" href="Function.Equality.html#3002" class="Bound">From</a> <a id="3007" class="Symbol">:</a> <a id="3009" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3013" href="Function.Equality.html#2992" class="Bound">f</a><a id="3014" class="Symbol">)</a> <a id="3016" class="Symbol"></a> <a id="3018" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#789" class="Record">IndexedSetoid</a> <a id="3032" href="Function.Equality.html#3002" class="Bound">From</a> <a id="3037" href="Function.Equality.html#2994" class="Bound">t₁</a> <a id="3040" href="Function.Equality.html#2997" class="Bound">t₂</a> <a id="3043" class="Symbol"></a> <a id="3045" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="3052" class="Symbol">_</a> <a id="3054" class="Symbol">_</a>
<a id="3056" href="Function.Equality.html#2978" class="Function">≡-setoid</a> <a id="3065" href="Function.Equality.html#3065" class="Bound">From</a> <a id="3070" href="Function.Equality.html#3070" class="Bound">To</a> <a id="3073" class="Symbol">=</a> <a id="3075" class="Keyword">record</a>
<a id="3084" class="Symbol">{</a> <a id="3086" href="Relation.Binary.Bundles.html#1072" class="Field">Carrier</a> <a id="3100" class="Symbol">=</a> <a id="3102" class="Symbol">(</a><a id="3103" href="Function.Equality.html#3103" class="Bound">x</a> <a id="3105" class="Symbol">:</a> <a id="3107" href="Function.Equality.html#3065" class="Bound">From</a><a id="3111" class="Symbol">)</a> <a id="3113" class="Symbol"></a> <a id="3115" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#879" class="Field">Carrier</a> <a id="3123" href="Function.Equality.html#3103" class="Bound">x</a>
<a id="3127" class="Symbol">;</a> <a id="3129" href="Relation.Binary.Bundles.html#1098" class="Field Operator">_≈_</a> <a id="3143" class="Symbol">=</a> <a id="3145" class="Symbol">λ</a> <a id="3147" href="Function.Equality.html#3147" class="Bound">f</a> <a id="3149" href="Function.Equality.html#3149" class="Bound">g</a> <a id="3151" class="Symbol"></a> <a id="3153" class="Symbol"></a> <a id="3155" href="Function.Equality.html#3155" class="Bound">x</a> <a id="3157" class="Symbol"></a> <a id="3159" href="Function.Equality.html#3147" class="Bound">f</a> <a id="3161" href="Function.Equality.html#3155" class="Bound">x</a> <a id="3163" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#909" class="Field Operator"></a> <a id="3165" href="Function.Equality.html#3149" class="Bound">g</a> <a id="3167" href="Function.Equality.html#3155" class="Bound">x</a>
<a id="3171" class="Symbol">;</a> <a id="3173" href="Relation.Binary.Bundles.html#1132" class="Field">isEquivalence</a> <a id="3187" class="Symbol">=</a> <a id="3189" class="Keyword">record</a>
<a id="3200" class="Symbol">{</a> <a id="3202" href="Relation.Binary.Structures.html#1568" class="Field">refl</a> <a id="3208" class="Symbol">=</a> <a id="3210" class="Symbol">λ</a> <a id="3212" class="Symbol">{</a><a id="3213" href="Function.Equality.html#3213" class="Bound">f</a><a id="3214" class="Symbol">}</a> <a id="3216" href="Function.Equality.html#3216" class="Bound">x</a> <a id="3218" class="Symbol"></a> <a id="3220" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#909" class="Function">refl</a>
<a id="3229" class="Symbol">;</a> <a id="3231" href="Relation.Binary.Structures.html#1594" class="Field">sym</a> <a id="3237" class="Symbol">=</a> <a id="3239" class="Symbol">λ</a> <a id="3241" href="Function.Equality.html#3241" class="Bound">fg</a> <a id="3245" href="Function.Equality.html#3245" class="Bound">x</a> <a id="3247" class="Symbol"></a> <a id="3249" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#938" class="Function">sym</a> <a id="3253" class="Symbol">(</a><a id="3254" href="Function.Equality.html#3241" class="Bound">fg</a> <a id="3258" href="Function.Equality.html#3245" class="Bound">x</a><a id="3259" class="Symbol">)</a>
<a id="3265" class="Symbol">;</a> <a id="3267" href="Relation.Binary.Structures.html#1620" class="Field">trans</a> <a id="3273" class="Symbol">=</a> <a id="3275" class="Symbol">λ</a> <a id="3277" href="Function.Equality.html#3277" class="Bound">fg</a> <a id="3281" href="Function.Equality.html#3281" class="Bound">gh</a> <a id="3285" href="Function.Equality.html#3285" class="Bound">x</a> <a id="3287" class="Symbol"></a> <a id="3289" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#967" class="Function">trans</a> <a id="3295" class="Symbol">(</a><a id="3296" href="Function.Equality.html#3277" class="Bound">fg</a> <a id="3300" href="Function.Equality.html#3285" class="Bound">x</a><a id="3301" class="Symbol">)</a> <a id="3303" class="Symbol">(</a><a id="3304" href="Function.Equality.html#3281" class="Bound">gh</a> <a id="3308" href="Function.Equality.html#3285" class="Bound">x</a><a id="3309" class="Symbol">)</a>
<a id="3315" class="Symbol">}</a>
<a id="3319" class="Symbol">}</a> <a id="3321" class="Keyword">where</a> <a id="3327" class="Keyword">open</a> <a id="3332" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#789" class="Module">IndexedSetoid</a> <a id="3346" href="Function.Equality.html#3070" class="Bound">To</a>
<a id="3350" class="Comment">-- Parameter swapping function.</a>
<a id="flip"></a><a id="3383" href="Function.Equality.html#3383" class="Function">flip</a> <a id="3388" class="Symbol">:</a> <a id="3390" class="Symbol"></a> <a id="3392" class="Symbol">{</a><a id="3393" href="Function.Equality.html#3393" class="Bound">a₁</a> <a id="3396" href="Function.Equality.html#3396" class="Bound">a₂</a><a id="3398" class="Symbol">}</a> <a id="3400" class="Symbol">{</a><a id="3401" href="Function.Equality.html#3401" class="Bound">A</a> <a id="3403" class="Symbol">:</a> <a id="3405" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="3412" href="Function.Equality.html#3393" class="Bound">a₁</a> <a id="3415" href="Function.Equality.html#3396" class="Bound">a₂</a><a id="3417" class="Symbol">}</a>
<a id="3428" class="Symbol">{</a><a id="3429" href="Function.Equality.html#3429" class="Bound">b₁</a> <a id="3432" href="Function.Equality.html#3432" class="Bound">b₂</a><a id="3434" class="Symbol">}</a> <a id="3436" class="Symbol">{</a><a id="3437" href="Function.Equality.html#3437" class="Bound">B</a> <a id="3439" class="Symbol">:</a> <a id="3441" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="3448" href="Function.Equality.html#3429" class="Bound">b₁</a> <a id="3451" href="Function.Equality.html#3432" class="Bound">b₂</a><a id="3453" class="Symbol">}</a>
<a id="3464" class="Symbol">{</a><a id="3465" href="Function.Equality.html#3465" class="Bound">c₁</a> <a id="3468" href="Function.Equality.html#3468" class="Bound">c₂</a><a id="3470" class="Symbol">}</a> <a id="3472" class="Symbol">{</a><a id="3473" href="Function.Equality.html#3473" class="Bound">C</a> <a id="3475" class="Symbol">:</a> <a id="3477" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="3484" href="Function.Equality.html#3465" class="Bound">c₁</a> <a id="3487" href="Function.Equality.html#3468" class="Bound">c₂</a><a id="3489" class="Symbol">}</a> <a id="3491" class="Symbol"></a>
<a id="3500" href="Function.Equality.html#3401" class="Bound">A</a> <a id="3502" href="Function.Equality.html#1218" class="Function Operator"></a> <a id="3504" href="Function.Equality.html#3437" class="Bound">B</a> <a id="3506" href="Function.Equality.html#2732" class="Function Operator"></a> <a id="3508" href="Function.Equality.html#3473" class="Bound">C</a> <a id="3510" class="Symbol"></a> <a id="3512" href="Function.Equality.html#3437" class="Bound">B</a> <a id="3514" href="Function.Equality.html#1218" class="Function Operator"></a> <a id="3516" href="Function.Equality.html#3401" class="Bound">A</a> <a id="3518" href="Function.Equality.html#2732" class="Function Operator"></a> <a id="3520" href="Function.Equality.html#3473" class="Bound">C</a>
<a id="3522" href="Function.Equality.html#3383" class="Function">flip</a> <a id="3527" class="Symbol">{</a><a id="3528" class="Argument">B</a> <a id="3530" class="Symbol">=</a> <a id="3532" href="Function.Equality.html#3532" class="Bound">B</a><a id="3533" class="Symbol">}</a> <a id="3535" href="Function.Equality.html#3535" class="Bound">f</a> <a id="3537" class="Symbol">=</a> <a id="3539" class="Keyword">record</a>
<a id="3548" class="Symbol">{</a> <a id="3550" href="Function.Equality.html#1064" class="Field Operator">_⟨$⟩_</a> <a id="3556" class="Symbol">=</a> <a id="3558" class="Symbol">λ</a> <a id="3560" href="Function.Equality.html#3560" class="Bound">b</a> <a id="3562" class="Symbol"></a> <a id="3564" class="Keyword">record</a>
<a id="3575" class="Symbol">{</a> <a id="3577" href="Function.Equality.html#1064" class="Field Operator">_⟨$⟩_</a> <a id="3583" class="Symbol">=</a> <a id="3585" class="Symbol">λ</a> <a id="3587" href="Function.Equality.html#3587" class="Bound">a</a> <a id="3589" class="Symbol"></a> <a id="3591" href="Function.Equality.html#3535" class="Bound">f</a> <a id="3593" href="Function.Equality.html#1064" class="Field Operator">⟨$⟩</a> <a id="3597" href="Function.Equality.html#3587" class="Bound">a</a> <a id="3599" href="Function.Equality.html#1064" class="Field Operator">⟨$⟩</a> <a id="3603" href="Function.Equality.html#3560" class="Bound">b</a>
<a id="3609" class="Symbol">;</a> <a id="3611" href="Function.Equality.html#1131" class="Field">cong</a> <a id="3617" class="Symbol">=</a> <a id="3619" class="Symbol">λ</a> <a id="3621" href="Function.Equality.html#3621" class="Bound">a₁≈a₂</a> <a id="3627" class="Symbol"></a> <a id="3629" href="Function.Equality.html#1131" class="Field">cong</a> <a id="3634" href="Function.Equality.html#3535" class="Bound">f</a> <a id="3636" href="Function.Equality.html#3621" class="Bound">a₁≈a₂</a> <a id="3642" class="Symbol">(</a><a id="3643" href="Relation.Binary.Structures.html#1568" class="Function">Setoid.refl</a> <a id="3655" href="Function.Equality.html#3532" class="Bound">B</a><a id="3656" class="Symbol">)</a> <a id="3658" class="Symbol">}</a>
<a id="3662" class="Symbol">;</a> <a id="3664" href="Function.Equality.html#1131" class="Field">cong</a> <a id="3670" class="Symbol">=</a> <a id="3672" class="Symbol">λ</a> <a id="3674" href="Function.Equality.html#3674" class="Bound">b₁≈b₂</a> <a id="3680" href="Function.Equality.html#3680" class="Bound">a₁≈a₂</a> <a id="3686" class="Symbol"></a> <a id="3688" href="Function.Equality.html#1131" class="Field">cong</a> <a id="3693" href="Function.Equality.html#3535" class="Bound">f</a> <a id="3695" href="Function.Equality.html#3680" class="Bound">a₁≈a₂</a> <a id="3701" href="Function.Equality.html#3674" class="Bound">b₁≈b₂</a>
<a id="3709" class="Symbol">}</a>
</pre></body></html>

View File

@ -0,0 +1,154 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Function.Structures</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Structures for types of functions</a>
<a id="143" class="Comment">------------------------------------------------------------------------</a>
<a id="217" class="Comment">-- The contents of this file should usually be accessed from `Function`.</a>
<a id="291" class="Symbol">{-#</a> <a id="295" class="Keyword">OPTIONS</a> <a id="303" class="Pragma">--without-K</a> <a id="315" class="Pragma">--safe</a> <a id="322" class="Symbol">#-}</a>
<a id="327" class="Keyword">open</a> <a id="332" class="Keyword">import</a> <a id="339" href="Relation.Binary.html" class="Module">Relation.Binary</a>
<a id="356" class="Keyword">module</a> <a id="363" href="Function.Structures.html" class="Module">Function.Structures</a> <a id="383" class="Symbol">{</a><a id="384" href="Function.Structures.html#384" class="Bound">a</a> <a id="386" href="Function.Structures.html#386" class="Bound">b</a> <a id="388" href="Function.Structures.html#388" class="Bound">ℓ₁</a> <a id="391" href="Function.Structures.html#391" class="Bound">ℓ₂</a><a id="393" class="Symbol">}</a>
<a id="397" class="Symbol">{</a><a id="398" href="Function.Structures.html#398" class="Bound">A</a> <a id="400" class="Symbol">:</a> <a id="402" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="406" href="Function.Structures.html#384" class="Bound">a</a><a id="407" class="Symbol">}</a> <a id="409" class="Symbol">(</a><a id="410" href="Function.Structures.html#410" class="Bound Operator">_≈₁_</a> <a id="415" class="Symbol">:</a> <a id="417" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="421" href="Function.Structures.html#398" class="Bound">A</a> <a id="423" href="Function.Structures.html#388" class="Bound">ℓ₁</a><a id="425" class="Symbol">)</a> <a id="427" class="Comment">-- Equality over the domain</a>
<a id="457" class="Symbol">{</a><a id="458" href="Function.Structures.html#458" class="Bound">B</a> <a id="460" class="Symbol">:</a> <a id="462" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="466" href="Function.Structures.html#386" class="Bound">b</a><a id="467" class="Symbol">}</a> <a id="469" class="Symbol">(</a><a id="470" href="Function.Structures.html#470" class="Bound Operator">_≈₂_</a> <a id="475" class="Symbol">:</a> <a id="477" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="481" href="Function.Structures.html#458" class="Bound">B</a> <a id="483" href="Function.Structures.html#391" class="Bound">ℓ₂</a><a id="485" class="Symbol">)</a> <a id="487" class="Comment">-- Equality over the codomain</a>
<a id="519" class="Keyword">where</a>
<a id="526" class="Keyword">open</a> <a id="531" class="Keyword">import</a> <a id="538" href="Data.Product.html" class="Module">Data.Product</a> <a id="551" class="Keyword">using</a> <a id="557" class="Symbol">(</a><a id="558" href="Data.Product.html#1369" class="Function"></a><a id="559" class="Symbol">;</a> <a id="561" href="Data.Product.html#1167" class="Function Operator">_×_</a><a id="564" class="Symbol">;</a> <a id="566" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">_,_</a><a id="569" class="Symbol">)</a>
<a id="571" class="Keyword">open</a> <a id="576" class="Keyword">import</a> <a id="583" href="Function.Base.html" class="Module">Function.Base</a>
<a id="597" class="Keyword">open</a> <a id="602" class="Keyword">import</a> <a id="609" href="Function.Definitions.html" class="Module">Function.Definitions</a>
<a id="630" class="Keyword">open</a> <a id="635" class="Keyword">import</a> <a id="642" href="Level.html" class="Module">Level</a> <a id="648" class="Keyword">using</a> <a id="654" class="Symbol">(</a><a id="655" href="Agda.Primitive.html#810" class="Primitive Operator">_⊔_</a><a id="658" class="Symbol">)</a>
<a id="661" class="Comment">------------------------------------------------------------------------</a>
<a id="734" class="Comment">-- One element structures</a>
<a id="760" class="Comment">------------------------------------------------------------------------</a>
<a id="834" class="Keyword">record</a> <a id="IsCongruent"></a><a id="841" href="Function.Structures.html#841" class="Record">IsCongruent</a> <a id="853" class="Symbol">(</a><a id="854" href="Function.Structures.html#854" class="Bound">f</a> <a id="856" class="Symbol">:</a> <a id="858" href="Function.Structures.html#398" class="Bound">A</a> <a id="860" class="Symbol"></a> <a id="862" href="Function.Structures.html#458" class="Bound">B</a><a id="863" class="Symbol">)</a> <a id="865" class="Symbol">:</a> <a id="867" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="871" class="Symbol">(</a><a id="872" href="Function.Structures.html#384" class="Bound">a</a> <a id="874" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="876" href="Function.Structures.html#386" class="Bound">b</a> <a id="878" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="880" href="Function.Structures.html#388" class="Bound">ℓ₁</a> <a id="883" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="885" href="Function.Structures.html#391" class="Bound">ℓ₂</a><a id="887" class="Symbol">)</a> <a id="889" class="Keyword">where</a>
<a id="897" class="Keyword">field</a>
<a id="IsCongruent.cong"></a><a id="907" href="Function.Structures.html#907" class="Field">cong</a> <a id="922" class="Symbol">:</a> <a id="924" href="Function.Definitions.html#803" class="Function">Congruent</a> <a id="934" href="Function.Structures.html#410" class="Bound Operator">_≈₁_</a> <a id="939" href="Function.Structures.html#470" class="Bound Operator">_≈₂_</a> <a id="944" href="Function.Structures.html#854" class="Bound">f</a>
<a id="IsCongruent.isEquivalence₁"></a><a id="950" href="Function.Structures.html#950" class="Field">isEquivalence₁</a> <a id="965" class="Symbol">:</a> <a id="967" href="Relation.Binary.Structures.html#1522" class="Record">IsEquivalence</a> <a id="981" href="Function.Structures.html#410" class="Bound Operator">_≈₁_</a>
<a id="IsCongruent.isEquivalence₂"></a><a id="990" href="Function.Structures.html#990" class="Field">isEquivalence₂</a> <a id="1005" class="Symbol">:</a> <a id="1007" href="Relation.Binary.Structures.html#1522" class="Record">IsEquivalence</a> <a id="1021" href="Function.Structures.html#470" class="Bound Operator">_≈₂_</a>
<a id="1029" class="Keyword">module</a> <a id="IsCongruent.Eq₁"></a><a id="1036" href="Function.Structures.html#1036" class="Module">Eq₁</a> <a id="1040" class="Keyword">where</a>
<a id="IsCongruent.Eq₁.setoid"></a><a id="1051" href="Function.Structures.html#1051" class="Function">setoid</a> <a id="1058" class="Symbol">:</a> <a id="1060" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="1067" href="Function.Structures.html#384" class="Bound">a</a> <a id="1069" href="Function.Structures.html#388" class="Bound">ℓ₁</a>
<a id="1076" href="Function.Structures.html#1051" class="Function">setoid</a> <a id="1083" class="Symbol">=</a> <a id="1085" class="Keyword">record</a>
<a id="1098" class="Symbol">{</a> <a id="1100" href="Relation.Binary.Bundles.html#1132" class="Field">isEquivalence</a> <a id="1114" class="Symbol">=</a> <a id="1116" href="Function.Structures.html#950" class="Field">isEquivalence₁</a>
<a id="1137" class="Symbol">}</a>
<a id="1144" class="Keyword">open</a> <a id="1149" href="Relation.Binary.Bundles.html#1009" class="Module">Setoid</a> <a id="1156" href="Function.Structures.html#1051" class="Function">setoid</a> <a id="1163" class="Keyword">public</a>
<a id="1173" class="Keyword">module</a> <a id="IsCongruent.Eq₂"></a><a id="1180" href="Function.Structures.html#1180" class="Module">Eq₂</a> <a id="1184" class="Keyword">where</a>
<a id="IsCongruent.Eq₂.setoid"></a><a id="1195" href="Function.Structures.html#1195" class="Function">setoid</a> <a id="1202" class="Symbol">:</a> <a id="1204" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="1211" href="Function.Structures.html#386" class="Bound">b</a> <a id="1213" href="Function.Structures.html#391" class="Bound">ℓ₂</a>
<a id="1220" href="Function.Structures.html#1195" class="Function">setoid</a> <a id="1227" class="Symbol">=</a> <a id="1229" class="Keyword">record</a>
<a id="1242" class="Symbol">{</a> <a id="1244" href="Relation.Binary.Bundles.html#1132" class="Field">isEquivalence</a> <a id="1258" class="Symbol">=</a> <a id="1260" href="Function.Structures.html#990" class="Field">isEquivalence₂</a>
<a id="1281" class="Symbol">}</a>
<a id="1288" class="Keyword">open</a> <a id="1293" href="Relation.Binary.Bundles.html#1009" class="Module">Setoid</a> <a id="1300" href="Function.Structures.html#1195" class="Function">setoid</a> <a id="1307" class="Keyword">public</a>
<a id="1316" class="Keyword">record</a> <a id="IsInjection"></a><a id="1323" href="Function.Structures.html#1323" class="Record">IsInjection</a> <a id="1335" class="Symbol">(</a><a id="1336" href="Function.Structures.html#1336" class="Bound">f</a> <a id="1338" class="Symbol">:</a> <a id="1340" href="Function.Structures.html#398" class="Bound">A</a> <a id="1342" class="Symbol"></a> <a id="1344" href="Function.Structures.html#458" class="Bound">B</a><a id="1345" class="Symbol">)</a> <a id="1347" class="Symbol">:</a> <a id="1349" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1353" class="Symbol">(</a><a id="1354" href="Function.Structures.html#384" class="Bound">a</a> <a id="1356" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1358" href="Function.Structures.html#386" class="Bound">b</a> <a id="1360" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1362" href="Function.Structures.html#388" class="Bound">ℓ₁</a> <a id="1365" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1367" href="Function.Structures.html#391" class="Bound">ℓ₂</a><a id="1369" class="Symbol">)</a> <a id="1371" class="Keyword">where</a>
<a id="1379" class="Keyword">field</a>
<a id="IsInjection.isCongruent"></a><a id="1389" href="Function.Structures.html#1389" class="Field">isCongruent</a> <a id="1401" class="Symbol">:</a> <a id="1403" href="Function.Structures.html#841" class="Record">IsCongruent</a> <a id="1415" href="Function.Structures.html#1336" class="Bound">f</a>
<a id="IsInjection.injective"></a><a id="1421" href="Function.Structures.html#1421" class="Field">injective</a> <a id="1433" class="Symbol">:</a> <a id="1435" href="Function.Definitions.html#889" class="Function">Injective</a> <a id="1445" href="Function.Structures.html#410" class="Bound Operator">_≈₁_</a> <a id="1450" href="Function.Structures.html#470" class="Bound Operator">_≈₂_</a> <a id="1455" href="Function.Structures.html#1336" class="Bound">f</a>
<a id="1460" class="Keyword">open</a> <a id="1465" href="Function.Structures.html#841" class="Module">IsCongruent</a> <a id="1477" href="Function.Structures.html#1389" class="Field">isCongruent</a> <a id="1489" class="Keyword">public</a>
<a id="1498" class="Keyword">record</a> <a id="IsSurjection"></a><a id="1505" href="Function.Structures.html#1505" class="Record">IsSurjection</a> <a id="1518" class="Symbol">(</a><a id="1519" href="Function.Structures.html#1519" class="Bound">f</a> <a id="1521" class="Symbol">:</a> <a id="1523" href="Function.Structures.html#398" class="Bound">A</a> <a id="1525" class="Symbol"></a> <a id="1527" href="Function.Structures.html#458" class="Bound">B</a><a id="1528" class="Symbol">)</a> <a id="1530" class="Symbol">:</a> <a id="1532" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1536" class="Symbol">(</a><a id="1537" href="Function.Structures.html#384" class="Bound">a</a> <a id="1539" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1541" href="Function.Structures.html#386" class="Bound">b</a> <a id="1543" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1545" href="Function.Structures.html#388" class="Bound">ℓ₁</a> <a id="1548" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1550" href="Function.Structures.html#391" class="Bound">ℓ₂</a><a id="1552" class="Symbol">)</a> <a id="1554" class="Keyword">where</a>
<a id="1562" class="Keyword">field</a>
<a id="IsSurjection.isCongruent"></a><a id="1572" href="Function.Structures.html#1572" class="Field">isCongruent</a> <a id="1584" class="Symbol">:</a> <a id="1586" href="Function.Structures.html#841" class="Record">IsCongruent</a> <a id="1598" href="Function.Structures.html#1519" class="Bound">f</a>
<a id="IsSurjection.surjective"></a><a id="1604" href="Function.Structures.html#1604" class="Field">surjective</a> <a id="1616" class="Symbol">:</a> <a id="1618" href="Function.Definitions.Core2.html#663" class="Function">Surjective</a> <a id="1629" href="Function.Structures.html#410" class="Bound Operator">_≈₁_</a> <a id="1634" href="Function.Structures.html#470" class="Bound Operator">_≈₂_</a> <a id="1639" href="Function.Structures.html#1519" class="Bound">f</a>
<a id="1644" class="Keyword">open</a> <a id="1649" href="Function.Structures.html#841" class="Module">IsCongruent</a> <a id="1661" href="Function.Structures.html#1572" class="Field">isCongruent</a> <a id="1673" class="Keyword">public</a>
<a id="1682" class="Keyword">record</a> <a id="IsBijection"></a><a id="1689" href="Function.Structures.html#1689" class="Record">IsBijection</a> <a id="1701" class="Symbol">(</a><a id="1702" href="Function.Structures.html#1702" class="Bound">f</a> <a id="1704" class="Symbol">:</a> <a id="1706" href="Function.Structures.html#398" class="Bound">A</a> <a id="1708" class="Symbol"></a> <a id="1710" href="Function.Structures.html#458" class="Bound">B</a><a id="1711" class="Symbol">)</a> <a id="1713" class="Symbol">:</a> <a id="1715" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1719" class="Symbol">(</a><a id="1720" href="Function.Structures.html#384" class="Bound">a</a> <a id="1722" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1724" href="Function.Structures.html#386" class="Bound">b</a> <a id="1726" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1728" href="Function.Structures.html#388" class="Bound">ℓ₁</a> <a id="1731" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1733" href="Function.Structures.html#391" class="Bound">ℓ₂</a><a id="1735" class="Symbol">)</a> <a id="1737" class="Keyword">where</a>
<a id="1745" class="Keyword">field</a>
<a id="IsBijection.isInjection"></a><a id="1755" href="Function.Structures.html#1755" class="Field">isInjection</a> <a id="1767" class="Symbol">:</a> <a id="1769" href="Function.Structures.html#1323" class="Record">IsInjection</a> <a id="1781" href="Function.Structures.html#1702" class="Bound">f</a>
<a id="IsBijection.surjective"></a><a id="1787" href="Function.Structures.html#1787" class="Field">surjective</a> <a id="1799" class="Symbol">:</a> <a id="1801" href="Function.Definitions.Core2.html#663" class="Function">Surjective</a> <a id="1812" href="Function.Structures.html#410" class="Bound Operator">_≈₁_</a> <a id="1817" href="Function.Structures.html#470" class="Bound Operator">_≈₂_</a> <a id="1822" href="Function.Structures.html#1702" class="Bound">f</a>
<a id="1827" class="Keyword">open</a> <a id="1832" href="Function.Structures.html#1323" class="Module">IsInjection</a> <a id="1844" href="Function.Structures.html#1755" class="Field">isInjection</a> <a id="1856" class="Keyword">public</a>
<a id="IsBijection.bijective"></a><a id="1866" href="Function.Structures.html#1866" class="Function">bijective</a> <a id="1876" class="Symbol">:</a> <a id="1878" href="Function.Definitions.html#1019" class="Function">Bijective</a> <a id="1888" href="Function.Structures.html#410" class="Bound Operator">_≈₁_</a> <a id="1893" href="Function.Structures.html#470" class="Bound Operator">_≈₂_</a> <a id="1898" href="Function.Structures.html#1702" class="Bound">f</a>
<a id="1902" href="Function.Structures.html#1866" class="Function">bijective</a> <a id="1912" class="Symbol">=</a> <a id="1914" href="Function.Structures.html#1421" class="Function">injective</a> <a id="1924" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="1926" href="Function.Structures.html#1787" class="Field">surjective</a>
<a id="IsBijection.isSurjection"></a><a id="1940" href="Function.Structures.html#1940" class="Function">isSurjection</a> <a id="1953" class="Symbol">:</a> <a id="1955" href="Function.Structures.html#1505" class="Record">IsSurjection</a> <a id="1968" href="Function.Structures.html#1702" class="Bound">f</a>
<a id="1972" href="Function.Structures.html#1940" class="Function">isSurjection</a> <a id="1985" class="Symbol">=</a> <a id="1987" class="Keyword">record</a>
<a id="1998" class="Symbol">{</a> <a id="2000" href="Function.Structures.html#1572" class="Field">isCongruent</a> <a id="2012" class="Symbol">=</a> <a id="2014" href="Function.Structures.html#1389" class="Function">isCongruent</a>
<a id="2030" class="Symbol">;</a> <a id="2032" href="Function.Structures.html#1604" class="Field">surjective</a> <a id="2044" class="Symbol">=</a> <a id="2046" href="Function.Structures.html#1787" class="Field">surjective</a>
<a id="2061" class="Symbol">}</a>
<a id="2065" class="Comment">------------------------------------------------------------------------</a>
<a id="2138" class="Comment">-- Two element structures</a>
<a id="2164" class="Comment">------------------------------------------------------------------------</a>
<a id="2238" class="Keyword">record</a> <a id="IsLeftInverse"></a><a id="2245" href="Function.Structures.html#2245" class="Record">IsLeftInverse</a> <a id="2259" class="Symbol">(</a><a id="2260" href="Function.Structures.html#2260" class="Bound">f</a> <a id="2262" class="Symbol">:</a> <a id="2264" href="Function.Structures.html#398" class="Bound">A</a> <a id="2266" class="Symbol"></a> <a id="2268" href="Function.Structures.html#458" class="Bound">B</a><a id="2269" class="Symbol">)</a> <a id="2271" class="Symbol">(</a><a id="2272" href="Function.Structures.html#2272" class="Bound">g</a> <a id="2274" class="Symbol">:</a> <a id="2276" href="Function.Structures.html#458" class="Bound">B</a> <a id="2278" class="Symbol"></a> <a id="2280" href="Function.Structures.html#398" class="Bound">A</a><a id="2281" class="Symbol">)</a> <a id="2283" class="Symbol">:</a> <a id="2285" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2289" class="Symbol">(</a><a id="2290" href="Function.Structures.html#384" class="Bound">a</a> <a id="2292" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2294" href="Function.Structures.html#386" class="Bound">b</a> <a id="2296" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2298" href="Function.Structures.html#388" class="Bound">ℓ₁</a> <a id="2301" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2303" href="Function.Structures.html#391" class="Bound">ℓ₂</a><a id="2305" class="Symbol">)</a> <a id="2307" class="Keyword">where</a>
<a id="2315" class="Keyword">field</a>
<a id="IsLeftInverse.isCongruent"></a><a id="2325" href="Function.Structures.html#2325" class="Field">isCongruent</a> <a id="2338" class="Symbol">:</a> <a id="2340" href="Function.Structures.html#841" class="Record">IsCongruent</a> <a id="2352" href="Function.Structures.html#2260" class="Bound">f</a>
<a id="IsLeftInverse.cong₂"></a><a id="2358" href="Function.Structures.html#2358" class="Field">cong₂</a> <a id="2371" class="Symbol">:</a> <a id="2373" href="Function.Definitions.html#803" class="Function">Congruent</a> <a id="2383" href="Function.Structures.html#470" class="Bound Operator">_≈₂_</a> <a id="2388" href="Function.Structures.html#410" class="Bound Operator">_≈₁_</a> <a id="2393" href="Function.Structures.html#2272" class="Bound">g</a>
<a id="IsLeftInverse.inverseˡ"></a><a id="2399" href="Function.Structures.html#2399" class="Field">inverseˡ</a> <a id="2412" class="Symbol">:</a> <a id="2414" href="Function.Definitions.Core2.html#818" class="Function">Inverseˡ</a> <a id="2423" href="Function.Structures.html#410" class="Bound Operator">_≈₁_</a> <a id="2428" href="Function.Structures.html#470" class="Bound Operator">_≈₂_</a> <a id="2433" href="Function.Structures.html#2260" class="Bound">f</a> <a id="2435" href="Function.Structures.html#2272" class="Bound">g</a>
<a id="2440" class="Keyword">open</a> <a id="2445" href="Function.Structures.html#841" class="Module">IsCongruent</a> <a id="2457" href="Function.Structures.html#2325" class="Field">isCongruent</a> <a id="2469" class="Keyword">public</a>
<a id="2480" class="Keyword">renaming</a> <a id="2489" class="Symbol">(</a><a id="2490" href="Function.Structures.html#907" class="Field">cong</a> <a id="2495" class="Symbol">to</a> <a id="2498" class="Field">cong₁</a><a id="2503" class="Symbol">)</a>
<a id="2507" class="Keyword">record</a> <a id="IsRightInverse"></a><a id="2514" href="Function.Structures.html#2514" class="Record">IsRightInverse</a> <a id="2529" class="Symbol">(</a><a id="2530" href="Function.Structures.html#2530" class="Bound">f</a> <a id="2532" class="Symbol">:</a> <a id="2534" href="Function.Structures.html#398" class="Bound">A</a> <a id="2536" class="Symbol"></a> <a id="2538" href="Function.Structures.html#458" class="Bound">B</a><a id="2539" class="Symbol">)</a> <a id="2541" class="Symbol">(</a><a id="2542" href="Function.Structures.html#2542" class="Bound">g</a> <a id="2544" class="Symbol">:</a> <a id="2546" href="Function.Structures.html#458" class="Bound">B</a> <a id="2548" class="Symbol"></a> <a id="2550" href="Function.Structures.html#398" class="Bound">A</a><a id="2551" class="Symbol">)</a> <a id="2553" class="Symbol">:</a> <a id="2555" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2559" class="Symbol">(</a><a id="2560" href="Function.Structures.html#384" class="Bound">a</a> <a id="2562" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2564" href="Function.Structures.html#386" class="Bound">b</a> <a id="2566" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2568" href="Function.Structures.html#388" class="Bound">ℓ₁</a> <a id="2571" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2573" href="Function.Structures.html#391" class="Bound">ℓ₂</a><a id="2575" class="Symbol">)</a> <a id="2577" class="Keyword">where</a>
<a id="2585" class="Keyword">field</a>
<a id="IsRightInverse.isCongruent"></a><a id="2595" href="Function.Structures.html#2595" class="Field">isCongruent</a> <a id="2607" class="Symbol">:</a> <a id="2609" href="Function.Structures.html#841" class="Record">IsCongruent</a> <a id="2621" href="Function.Structures.html#2530" class="Bound">f</a>
<a id="IsRightInverse.cong₂"></a><a id="2627" href="Function.Structures.html#2627" class="Field">cong₂</a> <a id="2639" class="Symbol">:</a> <a id="2641" href="Function.Definitions.html#803" class="Function">Congruent</a> <a id="2651" href="Function.Structures.html#470" class="Bound Operator">_≈₂_</a> <a id="2656" href="Function.Structures.html#410" class="Bound Operator">_≈₁_</a> <a id="2661" href="Function.Structures.html#2542" class="Bound">g</a>
<a id="IsRightInverse.inverseʳ"></a><a id="2667" href="Function.Structures.html#2667" class="Field">inverseʳ</a> <a id="2679" class="Symbol">:</a> <a id="2681" href="Function.Definitions.Core1.html#675" class="Function">Inverseʳ</a> <a id="2690" href="Function.Structures.html#410" class="Bound Operator">_≈₁_</a> <a id="2695" href="Function.Structures.html#470" class="Bound Operator">_≈₂_</a> <a id="2700" href="Function.Structures.html#2530" class="Bound">f</a> <a id="2702" href="Function.Structures.html#2542" class="Bound">g</a>
<a id="2707" class="Keyword">open</a> <a id="2712" href="Function.Structures.html#841" class="Module">IsCongruent</a> <a id="2724" href="Function.Structures.html#2595" class="Field">isCongruent</a> <a id="2736" class="Keyword">public</a>
<a id="2747" class="Keyword">renaming</a> <a id="2756" class="Symbol">(</a><a id="2757" href="Function.Structures.html#907" class="Field">cong</a> <a id="2762" class="Symbol">to</a> <a id="2765" class="Field">cong₁</a><a id="2770" class="Symbol">)</a>
<a id="2774" class="Keyword">record</a> <a id="IsInverse"></a><a id="2781" href="Function.Structures.html#2781" class="Record">IsInverse</a> <a id="2791" class="Symbol">(</a><a id="2792" href="Function.Structures.html#2792" class="Bound">f</a> <a id="2794" class="Symbol">:</a> <a id="2796" href="Function.Structures.html#398" class="Bound">A</a> <a id="2798" class="Symbol"></a> <a id="2800" href="Function.Structures.html#458" class="Bound">B</a><a id="2801" class="Symbol">)</a> <a id="2803" class="Symbol">(</a><a id="2804" href="Function.Structures.html#2804" class="Bound">g</a> <a id="2806" class="Symbol">:</a> <a id="2808" href="Function.Structures.html#458" class="Bound">B</a> <a id="2810" class="Symbol"></a> <a id="2812" href="Function.Structures.html#398" class="Bound">A</a><a id="2813" class="Symbol">)</a> <a id="2815" class="Symbol">:</a> <a id="2817" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2821" class="Symbol">(</a><a id="2822" href="Function.Structures.html#384" class="Bound">a</a> <a id="2824" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2826" href="Function.Structures.html#386" class="Bound">b</a> <a id="2828" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2830" href="Function.Structures.html#388" class="Bound">ℓ₁</a> <a id="2833" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2835" href="Function.Structures.html#391" class="Bound">ℓ₂</a><a id="2837" class="Symbol">)</a> <a id="2839" class="Keyword">where</a>
<a id="2847" class="Keyword">field</a>
<a id="IsInverse.isLeftInverse"></a><a id="2857" href="Function.Structures.html#2857" class="Field">isLeftInverse</a> <a id="2871" class="Symbol">:</a> <a id="2873" href="Function.Structures.html#2245" class="Record">IsLeftInverse</a> <a id="2887" href="Function.Structures.html#2792" class="Bound">f</a> <a id="2889" href="Function.Structures.html#2804" class="Bound">g</a>
<a id="IsInverse.inverseʳ"></a><a id="2895" href="Function.Structures.html#2895" class="Field">inverseʳ</a> <a id="2909" class="Symbol">:</a> <a id="2911" href="Function.Definitions.Core1.html#675" class="Function">Inverseʳ</a> <a id="2920" href="Function.Structures.html#410" class="Bound Operator">_≈₁_</a> <a id="2925" href="Function.Structures.html#470" class="Bound Operator">_≈₂_</a> <a id="2930" href="Function.Structures.html#2792" class="Bound">f</a> <a id="2932" href="Function.Structures.html#2804" class="Bound">g</a>
<a id="2937" class="Keyword">open</a> <a id="2942" href="Function.Structures.html#2245" class="Module">IsLeftInverse</a> <a id="2956" href="Function.Structures.html#2857" class="Field">isLeftInverse</a> <a id="2970" class="Keyword">public</a>
<a id="IsInverse.isRightInverse"></a><a id="2980" href="Function.Structures.html#2980" class="Function">isRightInverse</a> <a id="2995" class="Symbol">:</a> <a id="2997" href="Function.Structures.html#2514" class="Record">IsRightInverse</a> <a id="3012" href="Function.Structures.html#2792" class="Bound">f</a> <a id="3014" href="Function.Structures.html#2804" class="Bound">g</a>
<a id="3018" href="Function.Structures.html#2980" class="Function">isRightInverse</a> <a id="3033" class="Symbol">=</a> <a id="3035" class="Keyword">record</a>
<a id="3046" class="Symbol">{</a> <a id="3048" href="Function.Structures.html#2595" class="Field">isCongruent</a> <a id="3060" class="Symbol">=</a> <a id="3062" href="Function.Structures.html#2325" class="Function">isCongruent</a>
<a id="3078" class="Symbol">;</a> <a id="3080" href="Function.Structures.html#2627" class="Field">cong₂</a> <a id="3092" class="Symbol">=</a> <a id="3094" href="Function.Structures.html#2358" class="Function">cong₂</a>
<a id="3104" class="Symbol">;</a> <a id="3106" href="Function.Structures.html#2667" class="Field">inverseʳ</a> <a id="3118" class="Symbol">=</a> <a id="3120" href="Function.Structures.html#2895" class="Field">inverseʳ</a>
<a id="3133" class="Symbol">}</a>
<a id="IsInverse.inverse"></a><a id="3138" href="Function.Structures.html#3138" class="Function">inverse</a> <a id="3146" class="Symbol">:</a> <a id="3148" href="Function.Definitions.html#1191" class="Function">Inverseᵇ</a> <a id="3157" href="Function.Structures.html#410" class="Bound Operator">_≈₁_</a> <a id="3162" href="Function.Structures.html#470" class="Bound Operator">_≈₂_</a> <a id="3167" href="Function.Structures.html#2792" class="Bound">f</a> <a id="3169" href="Function.Structures.html#2804" class="Bound">g</a>
<a id="3173" href="Function.Structures.html#3138" class="Function">inverse</a> <a id="3181" class="Symbol">=</a> <a id="3183" href="Function.Structures.html#2399" class="Function">inverseˡ</a> <a id="3192" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="3194" href="Function.Structures.html#2895" class="Field">inverseʳ</a>
<a id="3205" class="Comment">------------------------------------------------------------------------</a>
<a id="3278" class="Comment">-- Three element structures</a>
<a id="3306" class="Comment">------------------------------------------------------------------------</a>
<a id="3380" class="Keyword">record</a> <a id="IsBiEquivalence"></a><a id="3387" href="Function.Structures.html#3387" class="Record">IsBiEquivalence</a>
<a id="3405" class="Symbol">(</a><a id="3406" href="Function.Structures.html#3406" class="Bound">f</a> <a id="3408" class="Symbol">:</a> <a id="3410" href="Function.Structures.html#398" class="Bound">A</a> <a id="3412" class="Symbol"></a> <a id="3414" href="Function.Structures.html#458" class="Bound">B</a><a id="3415" class="Symbol">)</a> <a id="3417" class="Symbol">(</a><a id="3418" href="Function.Structures.html#3418" class="Bound">g₁</a> <a id="3421" class="Symbol">:</a> <a id="3423" href="Function.Structures.html#458" class="Bound">B</a> <a id="3425" class="Symbol"></a> <a id="3427" href="Function.Structures.html#398" class="Bound">A</a><a id="3428" class="Symbol">)</a> <a id="3430" class="Symbol">(</a><a id="3431" href="Function.Structures.html#3431" class="Bound">g₂</a> <a id="3434" class="Symbol">:</a> <a id="3436" href="Function.Structures.html#458" class="Bound">B</a> <a id="3438" class="Symbol"></a> <a id="3440" href="Function.Structures.html#398" class="Bound">A</a><a id="3441" class="Symbol">)</a> <a id="3443" class="Symbol">:</a> <a id="3445" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3449" class="Symbol">(</a><a id="3450" href="Function.Structures.html#384" class="Bound">a</a> <a id="3452" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="3454" href="Function.Structures.html#386" class="Bound">b</a> <a id="3456" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="3458" href="Function.Structures.html#388" class="Bound">ℓ₁</a> <a id="3461" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="3463" href="Function.Structures.html#391" class="Bound">ℓ₂</a><a id="3465" class="Symbol">)</a> <a id="3467" class="Keyword">where</a>
<a id="3475" class="Keyword">field</a>
<a id="IsBiEquivalence.f-isCongruent"></a><a id="3485" href="Function.Structures.html#3485" class="Field">f-isCongruent</a> <a id="3499" class="Symbol">:</a> <a id="3501" href="Function.Structures.html#841" class="Record">IsCongruent</a> <a id="3513" href="Function.Structures.html#3406" class="Bound">f</a>
<a id="IsBiEquivalence.cong₂"></a><a id="3519" href="Function.Structures.html#3519" class="Field">cong₂</a> <a id="3533" class="Symbol">:</a> <a id="3535" href="Function.Definitions.html#803" class="Function">Congruent</a> <a id="3545" href="Function.Structures.html#470" class="Bound Operator">_≈₂_</a> <a id="3550" href="Function.Structures.html#410" class="Bound Operator">_≈₁_</a> <a id="3555" href="Function.Structures.html#3418" class="Bound">g₁</a>
<a id="IsBiEquivalence.cong₃"></a><a id="3562" href="Function.Structures.html#3562" class="Field">cong₃</a> <a id="3576" class="Symbol">:</a> <a id="3578" href="Function.Definitions.html#803" class="Function">Congruent</a> <a id="3588" href="Function.Structures.html#470" class="Bound Operator">_≈₂_</a> <a id="3593" href="Function.Structures.html#410" class="Bound Operator">_≈₁_</a> <a id="3598" href="Function.Structures.html#3431" class="Bound">g₂</a>
<a id="3604" class="Keyword">open</a> <a id="3609" href="Function.Structures.html#841" class="Module">IsCongruent</a> <a id="3621" href="Function.Structures.html#3485" class="Field">f-isCongruent</a> <a id="3635" class="Keyword">public</a>
<a id="3646" class="Keyword">renaming</a> <a id="3655" class="Symbol">(</a><a id="3656" href="Function.Structures.html#907" class="Field">cong</a> <a id="3661" class="Symbol">to</a> <a id="3664" class="Field">cong₁</a><a id="3669" class="Symbol">)</a>
<a id="3673" class="Keyword">record</a> <a id="IsBiInverse"></a><a id="3680" href="Function.Structures.html#3680" class="Record">IsBiInverse</a>
<a id="3694" class="Symbol">(</a><a id="3695" href="Function.Structures.html#3695" class="Bound">f</a> <a id="3697" class="Symbol">:</a> <a id="3699" href="Function.Structures.html#398" class="Bound">A</a> <a id="3701" class="Symbol"></a> <a id="3703" href="Function.Structures.html#458" class="Bound">B</a><a id="3704" class="Symbol">)</a> <a id="3706" class="Symbol">(</a><a id="3707" href="Function.Structures.html#3707" class="Bound">g₁</a> <a id="3710" class="Symbol">:</a> <a id="3712" href="Function.Structures.html#458" class="Bound">B</a> <a id="3714" class="Symbol"></a> <a id="3716" href="Function.Structures.html#398" class="Bound">A</a><a id="3717" class="Symbol">)</a> <a id="3719" class="Symbol">(</a><a id="3720" href="Function.Structures.html#3720" class="Bound">g₂</a> <a id="3723" class="Symbol">:</a> <a id="3725" href="Function.Structures.html#458" class="Bound">B</a> <a id="3727" class="Symbol"></a> <a id="3729" href="Function.Structures.html#398" class="Bound">A</a><a id="3730" class="Symbol">)</a> <a id="3732" class="Symbol">:</a> <a id="3734" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3738" class="Symbol">(</a><a id="3739" href="Function.Structures.html#384" class="Bound">a</a> <a id="3741" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="3743" href="Function.Structures.html#386" class="Bound">b</a> <a id="3745" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="3747" href="Function.Structures.html#388" class="Bound">ℓ₁</a> <a id="3750" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="3752" href="Function.Structures.html#391" class="Bound">ℓ₂</a><a id="3754" class="Symbol">)</a> <a id="3756" class="Keyword">where</a>
<a id="3764" class="Keyword">field</a>
<a id="IsBiInverse.f-isCongruent"></a><a id="3774" href="Function.Structures.html#3774" class="Field">f-isCongruent</a> <a id="3788" class="Symbol">:</a> <a id="3790" href="Function.Structures.html#841" class="Record">IsCongruent</a> <a id="3802" href="Function.Structures.html#3695" class="Bound">f</a>
<a id="IsBiInverse.cong₂"></a><a id="3808" href="Function.Structures.html#3808" class="Field">cong₂</a> <a id="3822" class="Symbol">:</a> <a id="3824" href="Function.Definitions.html#803" class="Function">Congruent</a> <a id="3834" href="Function.Structures.html#470" class="Bound Operator">_≈₂_</a> <a id="3839" href="Function.Structures.html#410" class="Bound Operator">_≈₁_</a> <a id="3844" href="Function.Structures.html#3707" class="Bound">g₁</a>
<a id="IsBiInverse.inverseˡ"></a><a id="3851" href="Function.Structures.html#3851" class="Field">inverseˡ</a> <a id="3865" class="Symbol">:</a> <a id="3867" href="Function.Definitions.Core2.html#818" class="Function">Inverseˡ</a> <a id="3876" href="Function.Structures.html#410" class="Bound Operator">_≈₁_</a> <a id="3881" href="Function.Structures.html#470" class="Bound Operator">_≈₂_</a> <a id="3886" href="Function.Structures.html#3695" class="Bound">f</a> <a id="3888" href="Function.Structures.html#3707" class="Bound">g₁</a>
<a id="IsBiInverse.cong₃"></a><a id="3895" href="Function.Structures.html#3895" class="Field">cong₃</a> <a id="3909" class="Symbol">:</a> <a id="3911" href="Function.Definitions.html#803" class="Function">Congruent</a> <a id="3921" href="Function.Structures.html#470" class="Bound Operator">_≈₂_</a> <a id="3926" href="Function.Structures.html#410" class="Bound Operator">_≈₁_</a> <a id="3931" href="Function.Structures.html#3720" class="Bound">g₂</a>
<a id="IsBiInverse.inverseʳ"></a><a id="3938" href="Function.Structures.html#3938" class="Field">inverseʳ</a> <a id="3952" class="Symbol">:</a> <a id="3954" href="Function.Definitions.Core1.html#675" class="Function">Inverseʳ</a> <a id="3963" href="Function.Structures.html#410" class="Bound Operator">_≈₁_</a> <a id="3968" href="Function.Structures.html#470" class="Bound Operator">_≈₂_</a> <a id="3973" href="Function.Structures.html#3695" class="Bound">f</a> <a id="3975" href="Function.Structures.html#3720" class="Bound">g₂</a>
<a id="3981" class="Keyword">open</a> <a id="3986" href="Function.Structures.html#841" class="Module">IsCongruent</a> <a id="3998" href="Function.Structures.html#3774" class="Field">f-isCongruent</a> <a id="4012" class="Keyword">public</a>
<a id="4023" class="Keyword">renaming</a> <a id="4032" class="Symbol">(</a><a id="4033" href="Function.Structures.html#907" class="Field">cong</a> <a id="4038" class="Symbol">to</a> <a id="4041" class="Field">cong₁</a><a id="4046" class="Symbol">)</a>
</pre></body></html>

17
misc/Function.html Normal file
View File

@ -0,0 +1,17 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Function</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Functions</a>
<a id="119" class="Comment">------------------------------------------------------------------------</a>
<a id="193" class="Symbol">{-#</a> <a id="197" class="Keyword">OPTIONS</a> <a id="205" class="Pragma">--without-K</a> <a id="217" class="Pragma">--safe</a> <a id="224" class="Symbol">#-}</a>
<a id="229" class="Keyword">module</a> <a id="236" href="Function.html" class="Module">Function</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="Function.Core.html" class="Module">Function.Core</a> <a id="278" class="Keyword">public</a>
<a id="285" class="Keyword">open</a> <a id="290" class="Keyword">import</a> <a id="297" href="Function.Base.html" class="Module">Function.Base</a> <a id="311" class="Keyword">public</a>
<a id="318" class="Keyword">open</a> <a id="323" class="Keyword">import</a> <a id="330" href="Function.Definitions.html" class="Module">Function.Definitions</a> <a id="351" class="Keyword">public</a>
<a id="358" class="Keyword">open</a> <a id="363" class="Keyword">import</a> <a id="370" href="Function.Structures.html" class="Module">Function.Structures</a> <a id="390" class="Keyword">public</a>
<a id="397" class="Keyword">open</a> <a id="402" class="Keyword">import</a> <a id="409" href="Function.Bundles.html" class="Module">Function.Bundles</a> <a id="426" class="Keyword">public</a>
</pre></body></html>

36
misc/Level.html Normal file
View File

@ -0,0 +1,36 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Level</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Universe levels</a>
<a id="125" class="Comment">------------------------------------------------------------------------</a>
<a id="199" class="Symbol">{-#</a> <a id="203" class="Keyword">OPTIONS</a> <a id="211" class="Pragma">--without-K</a> <a id="223" class="Pragma">--safe</a> <a id="230" class="Symbol">#-}</a>
<a id="235" class="Keyword">module</a> <a id="242" href="Level.html" class="Module">Level</a> <a id="248" class="Keyword">where</a>
<a id="255" class="Comment">-- Levels.</a>
<a id="267" class="Keyword">open</a> <a id="272" class="Keyword">import</a> <a id="279" href="Agda.Primitive.html" class="Module">Agda.Primitive</a> <a id="294" class="Symbol">as</a> <a id="297" class="Module">Prim</a> <a id="302" class="Keyword">public</a>
<a id="311" class="Keyword">using</a> <a id="320" class="Symbol">(</a><a id="321" href="Agda.Primitive.html#597" class="Postulate">Level</a><a id="326" class="Symbol">;</a> <a id="328" href="Agda.Primitive.html#810" class="Primitive Operator">_⊔_</a><a id="331" class="Symbol">;</a> <a id="333" href="Agda.Primitive.html#381" class="Primitive">Setω</a><a id="337" class="Symbol">)</a>
<a id="341" class="Keyword">renaming</a> <a id="350" class="Symbol">(</a><a id="351" href="Agda.Primitive.html#764" class="Primitive">lzero</a> <a id="357" class="Symbol">to</a> <a id="360" class="Primitive">zero</a><a id="364" class="Symbol">;</a> <a id="366" href="Agda.Primitive.html#780" class="Primitive">lsuc</a> <a id="371" class="Symbol">to</a> <a id="374" class="Primitive">suc</a><a id="377" class="Symbol">)</a>
<a id="380" class="Comment">-- Lifting.</a>
<a id="393" class="Keyword">record</a> <a id="Lift"></a><a id="400" href="Level.html#400" class="Record">Lift</a> <a id="405" class="Symbol">{</a><a id="406" href="Level.html#406" class="Bound">a</a><a id="407" class="Symbol">}</a> <a id="409" href="Level.html#409" class="Bound"></a> <a id="411" class="Symbol">(</a><a id="412" href="Level.html#412" class="Bound">A</a> <a id="414" class="Symbol">:</a> <a id="416" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="420" href="Level.html#406" class="Bound">a</a><a id="421" class="Symbol">)</a> <a id="423" class="Symbol">:</a> <a id="425" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="429" class="Symbol">(</a><a id="430" href="Level.html#406" class="Bound">a</a> <a id="432" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="434" href="Level.html#409" class="Bound"></a><a id="435" class="Symbol">)</a> <a id="437" class="Keyword">where</a>
<a id="445" class="Keyword">constructor</a> <a id="lift"></a><a id="457" href="Level.html#457" class="InductiveConstructor">lift</a>
<a id="464" class="Keyword">field</a> <a id="Lift.lower"></a><a id="470" href="Level.html#470" class="Field">lower</a> <a id="476" class="Symbol">:</a> <a id="478" href="Level.html#412" class="Bound">A</a>
<a id="481" class="Keyword">open</a> <a id="486" href="Level.html#400" class="Module">Lift</a> <a id="491" class="Keyword">public</a>
<a id="499" class="Comment">-- Synonyms</a>
<a id="0"></a><a id="512" href="Level.html#512" class="Function">0</a> <a id="515" class="Symbol">:</a> <a id="517" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="523" href="Level.html#512" class="Function">0</a> <a id="526" class="Symbol">=</a> <a id="528" href="Level.html#360" class="Primitive">zero</a>
<a id="levelOfType"></a><a id="534" href="Level.html#534" class="Function">levelOfType</a> <a id="546" class="Symbol">:</a> <a id="548" class="Symbol"></a> <a id="550" class="Symbol">{</a><a id="551" href="Level.html#551" class="Bound">a</a><a id="552" class="Symbol">}</a> <a id="554" class="Symbol"></a> <a id="556" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="560" href="Level.html#551" class="Bound">a</a> <a id="562" class="Symbol"></a> <a id="564" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="570" href="Level.html#534" class="Function">levelOfType</a> <a id="582" class="Symbol">{</a><a id="583" href="Level.html#583" class="Bound">a</a><a id="584" class="Symbol">}</a> <a id="586" class="Symbol">_</a> <a id="588" class="Symbol">=</a> <a id="590" href="Level.html#583" class="Bound">a</a>
<a id="levelOfTerm"></a><a id="593" href="Level.html#593" class="Function">levelOfTerm</a> <a id="605" class="Symbol">:</a> <a id="607" class="Symbol"></a> <a id="609" class="Symbol">{</a><a id="610" href="Level.html#610" class="Bound">a</a><a id="611" class="Symbol">}</a> <a id="613" class="Symbol">{</a><a id="614" href="Level.html#614" class="Bound">A</a> <a id="616" class="Symbol">:</a> <a id="618" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="622" href="Level.html#610" class="Bound">a</a><a id="623" class="Symbol">}</a> <a id="625" class="Symbol"></a> <a id="627" href="Level.html#614" class="Bound">A</a> <a id="629" class="Symbol"></a> <a id="631" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="637" href="Level.html#593" class="Function">levelOfTerm</a> <a id="649" class="Symbol">{</a><a id="650" href="Level.html#650" class="Bound">a</a><a id="651" class="Symbol">}</a> <a id="653" class="Symbol">_</a> <a id="655" class="Symbol">=</a> <a id="657" href="Level.html#650" class="Bound">a</a>
</pre></body></html>

View File

@ -0,0 +1,301 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Relation.Binary.Bundles</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Bundles for homogeneous binary relations</a>
<a id="150" class="Comment">------------------------------------------------------------------------</a>
<a id="224" class="Comment">-- The contents of this module should be accessed via `Relation.Binary`.</a>
<a id="298" class="Symbol">{-#</a> <a id="302" class="Keyword">OPTIONS</a> <a id="310" class="Pragma">--without-K</a> <a id="322" class="Pragma">--safe</a> <a id="329" class="Symbol">#-}</a>
<a id="334" class="Keyword">module</a> <a id="341" href="Relation.Binary.Bundles.html" class="Module">Relation.Binary.Bundles</a> <a id="365" class="Keyword">where</a>
<a id="372" class="Keyword">open</a> <a id="377" class="Keyword">import</a> <a id="384" href="Level.html" class="Module">Level</a>
<a id="390" class="Keyword">open</a> <a id="395" class="Keyword">import</a> <a id="402" href="Relation.Nullary.html" class="Module">Relation.Nullary</a> <a id="419" class="Keyword">using</a> <a id="425" class="Symbol">(</a><a id="426" href="Relation.Nullary.html#656" class="Function Operator">¬_</a><a id="428" class="Symbol">)</a>
<a id="430" class="Keyword">open</a> <a id="435" class="Keyword">import</a> <a id="442" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a>
<a id="463" class="Keyword">open</a> <a id="468" class="Keyword">import</a> <a id="475" href="Relation.Binary.Definitions.html" class="Module">Relation.Binary.Definitions</a>
<a id="503" class="Keyword">open</a> <a id="508" class="Keyword">import</a> <a id="515" href="Relation.Binary.Structures.html" class="Module">Relation.Binary.Structures</a>
<a id="543" class="Comment">------------------------------------------------------------------------</a>
<a id="616" class="Comment">-- Setoids</a>
<a id="627" class="Comment">------------------------------------------------------------------------</a>
<a id="701" class="Keyword">record</a> <a id="PartialSetoid"></a><a id="708" href="Relation.Binary.Bundles.html#708" class="Record">PartialSetoid</a> <a id="722" href="Relation.Binary.Bundles.html#722" class="Bound">a</a> <a id="724" href="Relation.Binary.Bundles.html#724" class="Bound"></a> <a id="726" class="Symbol">:</a> <a id="728" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="732" class="Symbol">(</a><a id="733" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="737" class="Symbol">(</a><a id="738" href="Relation.Binary.Bundles.html#722" class="Bound">a</a> <a id="740" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="742" href="Relation.Binary.Bundles.html#724" class="Bound"></a><a id="743" class="Symbol">))</a> <a id="746" class="Keyword">where</a>
<a id="754" class="Keyword">field</a>
<a id="PartialSetoid.Carrier"></a><a id="764" href="Relation.Binary.Bundles.html#764" class="Field">Carrier</a> <a id="785" class="Symbol">:</a> <a id="787" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="791" href="Relation.Binary.Bundles.html#722" class="Bound">a</a>
<a id="PartialSetoid._≈_"></a><a id="797" href="Relation.Binary.Bundles.html#797" class="Field Operator">_≈_</a> <a id="818" class="Symbol">:</a> <a id="820" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="824" href="Relation.Binary.Bundles.html#764" class="Field">Carrier</a> <a id="832" href="Relation.Binary.Bundles.html#724" class="Bound"></a>
<a id="PartialSetoid.isPartialEquivalence"></a><a id="838" href="Relation.Binary.Bundles.html#838" class="Field">isPartialEquivalence</a> <a id="859" class="Symbol">:</a> <a id="861" href="Relation.Binary.Structures.html#1119" class="Record">IsPartialEquivalence</a> <a id="882" href="Relation.Binary.Bundles.html#797" class="Field Operator">_≈_</a>
<a id="889" class="Keyword">open</a> <a id="894" href="Relation.Binary.Structures.html#1119" class="Module">IsPartialEquivalence</a> <a id="915" href="Relation.Binary.Bundles.html#838" class="Field">isPartialEquivalence</a> <a id="936" class="Keyword">public</a>
<a id="946" class="Keyword">infix</a> <a id="952" class="Number">4</a> <a id="954" href="Relation.Binary.Bundles.html#960" class="Function Operator">_≉_</a>
<a id="PartialSetoid._≉_"></a><a id="960" href="Relation.Binary.Bundles.html#960" class="Function Operator">_≉_</a> <a id="964" class="Symbol">:</a> <a id="966" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="970" href="Relation.Binary.Bundles.html#764" class="Field">Carrier</a> <a id="978" class="Symbol">_</a>
<a id="982" href="Relation.Binary.Bundles.html#982" class="Bound">x</a> <a id="984" href="Relation.Binary.Bundles.html#960" class="Function Operator"></a> <a id="986" href="Relation.Binary.Bundles.html#986" class="Bound">y</a> <a id="988" class="Symbol">=</a> <a id="990" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="992" class="Symbol">(</a><a id="993" href="Relation.Binary.Bundles.html#982" class="Bound">x</a> <a id="995" href="Relation.Binary.Bundles.html#797" class="Field Operator"></a> <a id="997" href="Relation.Binary.Bundles.html#986" class="Bound">y</a><a id="998" class="Symbol">)</a>
<a id="1002" class="Keyword">record</a> <a id="Setoid"></a><a id="1009" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="1016" href="Relation.Binary.Bundles.html#1016" class="Bound">c</a> <a id="1018" href="Relation.Binary.Bundles.html#1018" class="Bound"></a> <a id="1020" class="Symbol">:</a> <a id="1022" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1026" class="Symbol">(</a><a id="1027" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="1031" class="Symbol">(</a><a id="1032" href="Relation.Binary.Bundles.html#1016" class="Bound">c</a> <a id="1034" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1036" href="Relation.Binary.Bundles.html#1018" class="Bound"></a><a id="1037" class="Symbol">))</a> <a id="1040" class="Keyword">where</a>
<a id="1048" class="Keyword">infix</a> <a id="1054" class="Number">4</a> <a id="1056" href="Relation.Binary.Bundles.html#1098" class="Field Operator">_≈_</a>
<a id="1062" class="Keyword">field</a>
<a id="Setoid.Carrier"></a><a id="1072" href="Relation.Binary.Bundles.html#1072" class="Field">Carrier</a> <a id="1086" class="Symbol">:</a> <a id="1088" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1092" href="Relation.Binary.Bundles.html#1016" class="Bound">c</a>
<a id="Setoid._≈_"></a><a id="1098" href="Relation.Binary.Bundles.html#1098" class="Field Operator">_≈_</a> <a id="1112" class="Symbol">:</a> <a id="1114" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="1118" href="Relation.Binary.Bundles.html#1072" class="Field">Carrier</a> <a id="1126" href="Relation.Binary.Bundles.html#1018" class="Bound"></a>
<a id="Setoid.isEquivalence"></a><a id="1132" href="Relation.Binary.Bundles.html#1132" class="Field">isEquivalence</a> <a id="1146" class="Symbol">:</a> <a id="1148" href="Relation.Binary.Structures.html#1522" class="Record">IsEquivalence</a> <a id="1162" href="Relation.Binary.Bundles.html#1098" class="Field Operator">_≈_</a>
<a id="1169" class="Keyword">open</a> <a id="1174" href="Relation.Binary.Structures.html#1522" class="Module">IsEquivalence</a> <a id="1188" href="Relation.Binary.Bundles.html#1132" class="Field">isEquivalence</a> <a id="1202" class="Keyword">public</a>
<a id="Setoid.partialSetoid"></a><a id="1212" href="Relation.Binary.Bundles.html#1212" class="Function">partialSetoid</a> <a id="1226" class="Symbol">:</a> <a id="1228" href="Relation.Binary.Bundles.html#708" class="Record">PartialSetoid</a> <a id="1242" href="Relation.Binary.Bundles.html#1016" class="Bound">c</a> <a id="1244" href="Relation.Binary.Bundles.html#1018" class="Bound"></a>
<a id="1248" href="Relation.Binary.Bundles.html#1212" class="Function">partialSetoid</a> <a id="1262" class="Symbol">=</a> <a id="1264" class="Keyword">record</a>
<a id="1275" class="Symbol">{</a> <a id="1277" href="Relation.Binary.Bundles.html#838" class="Field">isPartialEquivalence</a> <a id="1298" class="Symbol">=</a> <a id="1300" href="Relation.Binary.Structures.html#1697" class="Function">isPartialEquivalence</a>
<a id="1325" class="Symbol">}</a>
<a id="1330" class="Keyword">open</a> <a id="1335" href="Relation.Binary.Bundles.html#708" class="Module">PartialSetoid</a> <a id="1349" href="Relation.Binary.Bundles.html#1212" class="Function">partialSetoid</a> <a id="1363" class="Keyword">public</a> <a id="1370" class="Keyword">using</a> <a id="1376" class="Symbol">(</a><a id="1377" href="Relation.Binary.Bundles.html#960" class="Function Operator">_≉_</a><a id="1380" class="Symbol">)</a>
<a id="1384" class="Keyword">record</a> <a id="DecSetoid"></a><a id="1391" href="Relation.Binary.Bundles.html#1391" class="Record">DecSetoid</a> <a id="1401" href="Relation.Binary.Bundles.html#1401" class="Bound">c</a> <a id="1403" href="Relation.Binary.Bundles.html#1403" class="Bound"></a> <a id="1405" class="Symbol">:</a> <a id="1407" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1411" class="Symbol">(</a><a id="1412" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="1416" class="Symbol">(</a><a id="1417" href="Relation.Binary.Bundles.html#1401" class="Bound">c</a> <a id="1419" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1421" href="Relation.Binary.Bundles.html#1403" class="Bound"></a><a id="1422" class="Symbol">))</a> <a id="1425" class="Keyword">where</a>
<a id="1433" class="Keyword">infix</a> <a id="1439" class="Number">4</a> <a id="1441" href="Relation.Binary.Bundles.html#1486" class="Field Operator">_≈_</a>
<a id="1447" class="Keyword">field</a>
<a id="DecSetoid.Carrier"></a><a id="1457" href="Relation.Binary.Bundles.html#1457" class="Field">Carrier</a> <a id="1474" class="Symbol">:</a> <a id="1476" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1480" href="Relation.Binary.Bundles.html#1401" class="Bound">c</a>
<a id="DecSetoid._≈_"></a><a id="1486" href="Relation.Binary.Bundles.html#1486" class="Field Operator">_≈_</a> <a id="1503" class="Symbol">:</a> <a id="1505" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="1509" href="Relation.Binary.Bundles.html#1457" class="Field">Carrier</a> <a id="1517" href="Relation.Binary.Bundles.html#1403" class="Bound"></a>
<a id="DecSetoid.isDecEquivalence"></a><a id="1523" href="Relation.Binary.Bundles.html#1523" class="Field">isDecEquivalence</a> <a id="1540" class="Symbol">:</a> <a id="1542" href="Relation.Binary.Structures.html#1824" class="Record">IsDecEquivalence</a> <a id="1559" href="Relation.Binary.Bundles.html#1486" class="Field Operator">_≈_</a>
<a id="1566" class="Keyword">open</a> <a id="1571" href="Relation.Binary.Structures.html#1824" class="Module">IsDecEquivalence</a> <a id="1588" href="Relation.Binary.Bundles.html#1523" class="Field">isDecEquivalence</a> <a id="1605" class="Keyword">public</a>
<a id="DecSetoid.setoid"></a><a id="1615" href="Relation.Binary.Bundles.html#1615" class="Function">setoid</a> <a id="1622" class="Symbol">:</a> <a id="1624" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="1631" href="Relation.Binary.Bundles.html#1401" class="Bound">c</a> <a id="1633" href="Relation.Binary.Bundles.html#1403" class="Bound"></a>
<a id="1637" href="Relation.Binary.Bundles.html#1615" class="Function">setoid</a> <a id="1644" class="Symbol">=</a> <a id="1646" class="Keyword">record</a>
<a id="1657" class="Symbol">{</a> <a id="1659" href="Relation.Binary.Bundles.html#1132" class="Field">isEquivalence</a> <a id="1673" class="Symbol">=</a> <a id="1675" href="Relation.Binary.Structures.html#1887" class="Function">isEquivalence</a>
<a id="1693" class="Symbol">}</a>
<a id="1698" class="Keyword">open</a> <a id="1703" href="Relation.Binary.Bundles.html#1009" class="Module">Setoid</a> <a id="1710" href="Relation.Binary.Bundles.html#1615" class="Function">setoid</a> <a id="1717" class="Keyword">public</a> <a id="1724" class="Keyword">using</a> <a id="1730" class="Symbol">(</a><a id="1731" href="Relation.Binary.Bundles.html#1212" class="Function">partialSetoid</a><a id="1744" class="Symbol">;</a> <a id="1746" href="Relation.Binary.Bundles.html#960" class="Function Operator">_≉_</a><a id="1749" class="Symbol">)</a>
<a id="1753" class="Comment">------------------------------------------------------------------------</a>
<a id="1826" class="Comment">-- Preorders</a>
<a id="1839" class="Comment">------------------------------------------------------------------------</a>
<a id="1913" class="Keyword">record</a> <a id="Preorder"></a><a id="1920" href="Relation.Binary.Bundles.html#1920" class="Record">Preorder</a> <a id="1929" href="Relation.Binary.Bundles.html#1929" class="Bound">c</a> <a id="1931" href="Relation.Binary.Bundles.html#1931" class="Bound">ℓ₁</a> <a id="1934" href="Relation.Binary.Bundles.html#1934" class="Bound">ℓ₂</a> <a id="1937" class="Symbol">:</a> <a id="1939" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1943" class="Symbol">(</a><a id="1944" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="1948" class="Symbol">(</a><a id="1949" href="Relation.Binary.Bundles.html#1929" class="Bound">c</a> <a id="1951" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1953" href="Relation.Binary.Bundles.html#1931" class="Bound">ℓ₁</a> <a id="1956" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1958" href="Relation.Binary.Bundles.html#1934" class="Bound">ℓ₂</a><a id="1960" class="Symbol">))</a> <a id="1963" class="Keyword">where</a>
<a id="1971" class="Keyword">infix</a> <a id="1977" class="Number">4</a> <a id="1979" href="Relation.Binary.Bundles.html#2022" class="Field Operator">_≈_</a> <a id="1983" href="Relation.Binary.Bundles.html#2083" class="Field Operator">__</a>
<a id="1989" class="Keyword">field</a>
<a id="Preorder.Carrier"></a><a id="1999" href="Relation.Binary.Bundles.html#1999" class="Field">Carrier</a> <a id="2010" class="Symbol">:</a> <a id="2012" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2016" href="Relation.Binary.Bundles.html#1929" class="Bound">c</a>
<a id="Preorder._≈_"></a><a id="2022" href="Relation.Binary.Bundles.html#2022" class="Field Operator">_≈_</a> <a id="2033" class="Symbol">:</a> <a id="2035" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="2039" href="Relation.Binary.Bundles.html#1999" class="Field">Carrier</a> <a id="2047" href="Relation.Binary.Bundles.html#1931" class="Bound">ℓ₁</a> <a id="2051" class="Comment">-- The underlying equality.</a>
<a id="Preorder.__"></a><a id="2083" href="Relation.Binary.Bundles.html#2083" class="Field Operator">__</a> <a id="2094" class="Symbol">:</a> <a id="2096" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="2100" href="Relation.Binary.Bundles.html#1999" class="Field">Carrier</a> <a id="2108" href="Relation.Binary.Bundles.html#1934" class="Bound">ℓ₂</a> <a id="2112" class="Comment">-- The relation.</a>
<a id="Preorder.isPreorder"></a><a id="2133" href="Relation.Binary.Bundles.html#2133" class="Field">isPreorder</a> <a id="2144" class="Symbol">:</a> <a id="2146" href="Relation.Binary.Structures.html#2163" class="Record">IsPreorder</a> <a id="2157" href="Relation.Binary.Bundles.html#2022" class="Field Operator">_≈_</a> <a id="2161" href="Relation.Binary.Bundles.html#2083" class="Field Operator">__</a>
<a id="2168" class="Keyword">open</a> <a id="2173" href="Relation.Binary.Structures.html#2163" class="Module">IsPreorder</a> <a id="2184" href="Relation.Binary.Bundles.html#2133" class="Field">isPreorder</a> <a id="2195" class="Keyword">public</a>
<a id="2206" class="Keyword">hiding</a> <a id="2213" class="Symbol">(</a><a id="2214" class="Keyword">module</a> <a id="2221" href="Relation.Binary.Structures.html#2402" class="Module">Eq</a><a id="2223" class="Symbol">)</a>
<a id="2228" class="Keyword">module</a> <a id="Preorder.Eq"></a><a id="2235" href="Relation.Binary.Bundles.html#2235" class="Module">Eq</a> <a id="2238" class="Keyword">where</a>
<a id="Preorder.Eq.setoid"></a><a id="2248" href="Relation.Binary.Bundles.html#2248" class="Function">setoid</a> <a id="2255" class="Symbol">:</a> <a id="2257" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="2264" href="Relation.Binary.Bundles.html#1929" class="Bound">c</a> <a id="2266" href="Relation.Binary.Bundles.html#1931" class="Bound">ℓ₁</a>
<a id="2273" href="Relation.Binary.Bundles.html#2248" class="Function">setoid</a> <a id="2280" class="Symbol">=</a> <a id="2282" class="Keyword">record</a>
<a id="2295" class="Symbol">{</a> <a id="2297" href="Relation.Binary.Bundles.html#1132" class="Field">isEquivalence</a> <a id="2311" class="Symbol">=</a> <a id="2313" href="Relation.Binary.Structures.html#2228" class="Function">isEquivalence</a>
<a id="2333" class="Symbol">}</a>
<a id="2340" class="Keyword">open</a> <a id="2345" href="Relation.Binary.Bundles.html#1009" class="Module">Setoid</a> <a id="2352" href="Relation.Binary.Bundles.html#2248" class="Function">setoid</a> <a id="2359" class="Keyword">public</a>
<a id="2368" class="Keyword">record</a> <a id="TotalPreorder"></a><a id="2375" href="Relation.Binary.Bundles.html#2375" class="Record">TotalPreorder</a> <a id="2389" href="Relation.Binary.Bundles.html#2389" class="Bound">c</a> <a id="2391" href="Relation.Binary.Bundles.html#2391" class="Bound">ℓ₁</a> <a id="2394" href="Relation.Binary.Bundles.html#2394" class="Bound">ℓ₂</a> <a id="2397" class="Symbol">:</a> <a id="2399" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2403" class="Symbol">(</a><a id="2404" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="2408" class="Symbol">(</a><a id="2409" href="Relation.Binary.Bundles.html#2389" class="Bound">c</a> <a id="2411" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2413" href="Relation.Binary.Bundles.html#2391" class="Bound">ℓ₁</a> <a id="2416" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2418" href="Relation.Binary.Bundles.html#2394" class="Bound">ℓ₂</a><a id="2420" class="Symbol">))</a> <a id="2423" class="Keyword">where</a>
<a id="2431" class="Keyword">infix</a> <a id="2437" class="Number">4</a> <a id="2439" href="Relation.Binary.Bundles.html#2487" class="Field Operator">_≈_</a> <a id="2443" href="Relation.Binary.Bundles.html#2553" class="Field Operator">_≲_</a>
<a id="2449" class="Keyword">field</a>
<a id="TotalPreorder.Carrier"></a><a id="2459" href="Relation.Binary.Bundles.html#2459" class="Field">Carrier</a> <a id="2475" class="Symbol">:</a> <a id="2477" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2481" href="Relation.Binary.Bundles.html#2389" class="Bound">c</a>
<a id="TotalPreorder._≈_"></a><a id="2487" href="Relation.Binary.Bundles.html#2487" class="Field Operator">_≈_</a> <a id="2503" class="Symbol">:</a> <a id="2505" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="2509" href="Relation.Binary.Bundles.html#2459" class="Field">Carrier</a> <a id="2517" href="Relation.Binary.Bundles.html#2391" class="Bound">ℓ₁</a> <a id="2521" class="Comment">-- The underlying equality.</a>
<a id="TotalPreorder._≲_"></a><a id="2553" href="Relation.Binary.Bundles.html#2553" class="Field Operator">_≲_</a> <a id="2569" class="Symbol">:</a> <a id="2571" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="2575" href="Relation.Binary.Bundles.html#2459" class="Field">Carrier</a> <a id="2583" href="Relation.Binary.Bundles.html#2394" class="Bound">ℓ₂</a> <a id="2587" class="Comment">-- The relation.</a>
<a id="TotalPreorder.isTotalPreorder"></a><a id="2608" href="Relation.Binary.Bundles.html#2608" class="Field">isTotalPreorder</a> <a id="2624" class="Symbol">:</a> <a id="2626" href="Relation.Binary.Structures.html#2733" class="Record">IsTotalPreorder</a> <a id="2642" href="Relation.Binary.Bundles.html#2487" class="Field Operator">_≈_</a> <a id="2646" href="Relation.Binary.Bundles.html#2553" class="Field Operator">_≲_</a>
<a id="2653" class="Keyword">open</a> <a id="2658" href="Relation.Binary.Structures.html#2733" class="Module">IsTotalPreorder</a> <a id="2674" href="Relation.Binary.Bundles.html#2608" class="Field">isTotalPreorder</a> <a id="2690" class="Keyword">public</a>
<a id="2701" class="Keyword">hiding</a> <a id="2708" class="Symbol">(</a><a id="2709" class="Keyword">module</a> <a id="2716" href="Relation.Binary.Structures.html#2402" class="Module">Eq</a><a id="2718" class="Symbol">)</a>
<a id="TotalPreorder.preorder"></a><a id="2723" href="Relation.Binary.Bundles.html#2723" class="Function">preorder</a> <a id="2732" class="Symbol">:</a> <a id="2734" href="Relation.Binary.Bundles.html#1920" class="Record">Preorder</a> <a id="2743" href="Relation.Binary.Bundles.html#2389" class="Bound">c</a> <a id="2745" href="Relation.Binary.Bundles.html#2391" class="Bound">ℓ₁</a> <a id="2748" href="Relation.Binary.Bundles.html#2394" class="Bound">ℓ₂</a>
<a id="2753" href="Relation.Binary.Bundles.html#2723" class="Function">preorder</a> <a id="2762" class="Symbol">=</a> <a id="2764" class="Keyword">record</a> <a id="2771" class="Symbol">{</a> <a id="2773" href="Relation.Binary.Bundles.html#2133" class="Field">isPreorder</a> <a id="2784" class="Symbol">=</a> <a id="2786" href="Relation.Binary.Structures.html#2803" class="Function">isPreorder</a> <a id="2797" class="Symbol">}</a>
<a id="2802" class="Keyword">open</a> <a id="2807" href="Relation.Binary.Bundles.html#1920" class="Module">Preorder</a> <a id="2816" href="Relation.Binary.Bundles.html#2723" class="Function">preorder</a> <a id="2825" class="Keyword">public</a>
<a id="2836" class="Keyword">using</a> <a id="2842" class="Symbol">(</a><a id="2843" class="Keyword">module</a> <a id="2850" href="Relation.Binary.Bundles.html#2235" class="Module">Eq</a><a id="2852" class="Symbol">)</a>
<a id="2856" class="Comment">------------------------------------------------------------------------</a>
<a id="2929" class="Comment">-- Partial orders</a>
<a id="2947" class="Comment">------------------------------------------------------------------------</a>
<a id="3021" class="Keyword">record</a> <a id="Poset"></a><a id="3028" href="Relation.Binary.Bundles.html#3028" class="Record">Poset</a> <a id="3034" href="Relation.Binary.Bundles.html#3034" class="Bound">c</a> <a id="3036" href="Relation.Binary.Bundles.html#3036" class="Bound">ℓ₁</a> <a id="3039" href="Relation.Binary.Bundles.html#3039" class="Bound">ℓ₂</a> <a id="3042" class="Symbol">:</a> <a id="3044" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3048" class="Symbol">(</a><a id="3049" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="3053" class="Symbol">(</a><a id="3054" href="Relation.Binary.Bundles.html#3034" class="Bound">c</a> <a id="3056" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="3058" href="Relation.Binary.Bundles.html#3036" class="Bound">ℓ₁</a> <a id="3061" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="3063" href="Relation.Binary.Bundles.html#3039" class="Bound">ℓ₂</a><a id="3065" class="Symbol">))</a> <a id="3068" class="Keyword">where</a>
<a id="3076" class="Keyword">infix</a> <a id="3082" class="Number">4</a> <a id="3084" href="Relation.Binary.Bundles.html#3131" class="Field Operator">_≈_</a> <a id="3088" href="Relation.Binary.Bundles.html#3167" class="Field Operator">_≤_</a>
<a id="3094" class="Keyword">field</a>
<a id="Poset.Carrier"></a><a id="3104" href="Relation.Binary.Bundles.html#3104" class="Field">Carrier</a> <a id="3119" class="Symbol">:</a> <a id="3121" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3125" href="Relation.Binary.Bundles.html#3034" class="Bound">c</a>
<a id="Poset._≈_"></a><a id="3131" href="Relation.Binary.Bundles.html#3131" class="Field Operator">_≈_</a> <a id="3146" class="Symbol">:</a> <a id="3148" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="3152" href="Relation.Binary.Bundles.html#3104" class="Field">Carrier</a> <a id="3160" href="Relation.Binary.Bundles.html#3036" class="Bound">ℓ₁</a>
<a id="Poset._≤_"></a><a id="3167" href="Relation.Binary.Bundles.html#3167" class="Field Operator">_≤_</a> <a id="3182" class="Symbol">:</a> <a id="3184" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="3188" href="Relation.Binary.Bundles.html#3104" class="Field">Carrier</a> <a id="3196" href="Relation.Binary.Bundles.html#3039" class="Bound">ℓ₂</a>
<a id="Poset.isPartialOrder"></a><a id="3203" href="Relation.Binary.Bundles.html#3203" class="Field">isPartialOrder</a> <a id="3218" class="Symbol">:</a> <a id="3220" href="Relation.Binary.Structures.html#3174" class="Record">IsPartialOrder</a> <a id="3235" href="Relation.Binary.Bundles.html#3131" class="Field Operator">_≈_</a> <a id="3239" href="Relation.Binary.Bundles.html#3167" class="Field Operator">_≤_</a>
<a id="3246" class="Keyword">open</a> <a id="3251" href="Relation.Binary.Structures.html#3174" class="Module">IsPartialOrder</a> <a id="3266" href="Relation.Binary.Bundles.html#3203" class="Field">isPartialOrder</a> <a id="3281" class="Keyword">public</a>
<a id="3292" class="Keyword">hiding</a> <a id="3299" class="Symbol">(</a><a id="3300" class="Keyword">module</a> <a id="3307" href="Relation.Binary.Structures.html#2402" class="Module">Eq</a><a id="3309" class="Symbol">)</a>
<a id="Poset.preorder"></a><a id="3314" href="Relation.Binary.Bundles.html#3314" class="Function">preorder</a> <a id="3323" class="Symbol">:</a> <a id="3325" href="Relation.Binary.Bundles.html#1920" class="Record">Preorder</a> <a id="3334" href="Relation.Binary.Bundles.html#3034" class="Bound">c</a> <a id="3336" href="Relation.Binary.Bundles.html#3036" class="Bound">ℓ₁</a> <a id="3339" href="Relation.Binary.Bundles.html#3039" class="Bound">ℓ₂</a>
<a id="3344" href="Relation.Binary.Bundles.html#3314" class="Function">preorder</a> <a id="3353" class="Symbol">=</a> <a id="3355" class="Keyword">record</a>
<a id="3366" class="Symbol">{</a> <a id="3368" href="Relation.Binary.Bundles.html#2133" class="Field">isPreorder</a> <a id="3379" class="Symbol">=</a> <a id="3381" href="Relation.Binary.Structures.html#3243" class="Function">isPreorder</a>
<a id="3396" class="Symbol">}</a>
<a id="3401" class="Keyword">open</a> <a id="3406" href="Relation.Binary.Bundles.html#1920" class="Module">Preorder</a> <a id="3415" href="Relation.Binary.Bundles.html#3314" class="Function">preorder</a> <a id="3424" class="Keyword">public</a>
<a id="3435" class="Keyword">using</a> <a id="3441" class="Symbol">(</a><a id="3442" class="Keyword">module</a> <a id="3449" href="Relation.Binary.Bundles.html#2235" class="Module">Eq</a><a id="3451" class="Symbol">)</a>
<a id="3455" class="Keyword">record</a> <a id="DecPoset"></a><a id="3462" href="Relation.Binary.Bundles.html#3462" class="Record">DecPoset</a> <a id="3471" href="Relation.Binary.Bundles.html#3471" class="Bound">c</a> <a id="3473" href="Relation.Binary.Bundles.html#3473" class="Bound">ℓ₁</a> <a id="3476" href="Relation.Binary.Bundles.html#3476" class="Bound">ℓ₂</a> <a id="3479" class="Symbol">:</a> <a id="3481" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3485" class="Symbol">(</a><a id="3486" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="3490" class="Symbol">(</a><a id="3491" href="Relation.Binary.Bundles.html#3471" class="Bound">c</a> <a id="3493" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="3495" href="Relation.Binary.Bundles.html#3473" class="Bound">ℓ₁</a> <a id="3498" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="3500" href="Relation.Binary.Bundles.html#3476" class="Bound">ℓ₂</a><a id="3502" class="Symbol">))</a> <a id="3505" class="Keyword">where</a>
<a id="3513" class="Keyword">infix</a> <a id="3519" class="Number">4</a> <a id="3521" href="Relation.Binary.Bundles.html#3571" class="Field Operator">_≈_</a> <a id="3525" href="Relation.Binary.Bundles.html#3610" class="Field Operator">_≤_</a>
<a id="3531" class="Keyword">field</a>
<a id="DecPoset.Carrier"></a><a id="3541" href="Relation.Binary.Bundles.html#3541" class="Field">Carrier</a> <a id="3559" class="Symbol">:</a> <a id="3561" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3565" href="Relation.Binary.Bundles.html#3471" class="Bound">c</a>
<a id="DecPoset._≈_"></a><a id="3571" href="Relation.Binary.Bundles.html#3571" class="Field Operator">_≈_</a> <a id="3589" class="Symbol">:</a> <a id="3591" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="3595" href="Relation.Binary.Bundles.html#3541" class="Field">Carrier</a> <a id="3603" href="Relation.Binary.Bundles.html#3473" class="Bound">ℓ₁</a>
<a id="DecPoset._≤_"></a><a id="3610" href="Relation.Binary.Bundles.html#3610" class="Field Operator">_≤_</a> <a id="3628" class="Symbol">:</a> <a id="3630" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="3634" href="Relation.Binary.Bundles.html#3541" class="Field">Carrier</a> <a id="3642" href="Relation.Binary.Bundles.html#3476" class="Bound">ℓ₂</a>
<a id="DecPoset.isDecPartialOrder"></a><a id="3649" href="Relation.Binary.Bundles.html#3649" class="Field">isDecPartialOrder</a> <a id="3667" class="Symbol">:</a> <a id="3669" href="Relation.Binary.Structures.html#3461" class="Record">IsDecPartialOrder</a> <a id="3687" href="Relation.Binary.Bundles.html#3571" class="Field Operator">_≈_</a> <a id="3691" href="Relation.Binary.Bundles.html#3610" class="Field Operator">_≤_</a>
<a id="3698" class="Keyword">private</a>
<a id="3710" class="Keyword">module</a> <a id="DecPoset.DPO"></a><a id="3717" href="Relation.Binary.Bundles.html#3717" class="Module">DPO</a> <a id="3721" class="Symbol">=</a> <a id="3723" href="Relation.Binary.Structures.html#3461" class="Module">IsDecPartialOrder</a> <a id="3741" href="Relation.Binary.Bundles.html#3649" class="Field">isDecPartialOrder</a>
<a id="3761" class="Keyword">open</a> <a id="3766" href="Relation.Binary.Bundles.html#3717" class="Module">DPO</a> <a id="3770" class="Keyword">public</a> <a id="3777" class="Keyword">hiding</a> <a id="3784" class="Symbol">(</a><a id="3785" class="Keyword">module</a> <a id="3792" href="Relation.Binary.Structures.html#3736" class="Module">Eq</a><a id="3794" class="Symbol">)</a>
<a id="DecPoset.poset"></a><a id="3799" href="Relation.Binary.Bundles.html#3799" class="Function">poset</a> <a id="3805" class="Symbol">:</a> <a id="3807" href="Relation.Binary.Bundles.html#3028" class="Record">Poset</a> <a id="3813" href="Relation.Binary.Bundles.html#3471" class="Bound">c</a> <a id="3815" href="Relation.Binary.Bundles.html#3473" class="Bound">ℓ₁</a> <a id="3818" href="Relation.Binary.Bundles.html#3476" class="Bound">ℓ₂</a>
<a id="3823" href="Relation.Binary.Bundles.html#3799" class="Function">poset</a> <a id="3829" class="Symbol">=</a> <a id="3831" class="Keyword">record</a>
<a id="3842" class="Symbol">{</a> <a id="3844" href="Relation.Binary.Bundles.html#3203" class="Field">isPartialOrder</a> <a id="3859" class="Symbol">=</a> <a id="3861" href="Relation.Binary.Structures.html#3552" class="Function">isPartialOrder</a>
<a id="3880" class="Symbol">}</a>
<a id="3885" class="Keyword">open</a> <a id="3890" href="Relation.Binary.Bundles.html#3028" class="Module">Poset</a> <a id="3896" href="Relation.Binary.Bundles.html#3799" class="Function">poset</a> <a id="3902" class="Keyword">public</a>
<a id="3913" class="Keyword">using</a> <a id="3919" class="Symbol">(</a><a id="3920" href="Relation.Binary.Bundles.html#3314" class="Function">preorder</a><a id="3928" class="Symbol">)</a>
<a id="3933" class="Keyword">module</a> <a id="DecPoset.Eq"></a><a id="3940" href="Relation.Binary.Bundles.html#3940" class="Module">Eq</a> <a id="3943" class="Keyword">where</a>
<a id="DecPoset.Eq.decSetoid"></a><a id="3953" href="Relation.Binary.Bundles.html#3953" class="Function">decSetoid</a> <a id="3963" class="Symbol">:</a> <a id="3965" href="Relation.Binary.Bundles.html#1391" class="Record">DecSetoid</a> <a id="3975" href="Relation.Binary.Bundles.html#3471" class="Bound">c</a> <a id="3977" href="Relation.Binary.Bundles.html#3473" class="Bound">ℓ₁</a>
<a id="3984" href="Relation.Binary.Bundles.html#3953" class="Function">decSetoid</a> <a id="3994" class="Symbol">=</a> <a id="3996" class="Keyword">record</a>
<a id="4009" class="Symbol">{</a> <a id="4011" href="Relation.Binary.Bundles.html#1523" class="Field">isDecEquivalence</a> <a id="4028" class="Symbol">=</a> <a id="4030" href="Relation.Binary.Structures.html#3750" class="Function">DPO.Eq.isDecEquivalence</a>
<a id="4060" class="Symbol">}</a>
<a id="4067" class="Keyword">open</a> <a id="4072" href="Relation.Binary.Bundles.html#1391" class="Module">DecSetoid</a> <a id="4082" href="Relation.Binary.Bundles.html#3953" class="Function">decSetoid</a> <a id="4092" class="Keyword">public</a>
<a id="4101" class="Keyword">record</a> <a id="StrictPartialOrder"></a><a id="4108" href="Relation.Binary.Bundles.html#4108" class="Record">StrictPartialOrder</a> <a id="4127" href="Relation.Binary.Bundles.html#4127" class="Bound">c</a> <a id="4129" href="Relation.Binary.Bundles.html#4129" class="Bound">ℓ₁</a> <a id="4132" href="Relation.Binary.Bundles.html#4132" class="Bound">ℓ₂</a> <a id="4135" class="Symbol">:</a> <a id="4137" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4141" class="Symbol">(</a><a id="4142" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="4146" class="Symbol">(</a><a id="4147" href="Relation.Binary.Bundles.html#4127" class="Bound">c</a> <a id="4149" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="4151" href="Relation.Binary.Bundles.html#4129" class="Bound">ℓ₁</a> <a id="4154" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="4156" href="Relation.Binary.Bundles.html#4132" class="Bound">ℓ₂</a><a id="4158" class="Symbol">))</a> <a id="4161" class="Keyword">where</a>
<a id="4169" class="Keyword">infix</a> <a id="4175" class="Number">4</a> <a id="4177" href="Relation.Binary.Bundles.html#4230" class="Field Operator">_≈_</a> <a id="4181" href="Relation.Binary.Bundles.html#4272" class="Field Operator">_&lt;_</a>
<a id="4187" class="Keyword">field</a>
<a id="StrictPartialOrder.Carrier"></a><a id="4197" href="Relation.Binary.Bundles.html#4197" class="Field">Carrier</a> <a id="4218" class="Symbol">:</a> <a id="4220" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4224" href="Relation.Binary.Bundles.html#4127" class="Bound">c</a>
<a id="StrictPartialOrder._≈_"></a><a id="4230" href="Relation.Binary.Bundles.html#4230" class="Field Operator">_≈_</a> <a id="4251" class="Symbol">:</a> <a id="4253" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="4257" href="Relation.Binary.Bundles.html#4197" class="Field">Carrier</a> <a id="4265" href="Relation.Binary.Bundles.html#4129" class="Bound">ℓ₁</a>
<a id="StrictPartialOrder._&lt;_"></a><a id="4272" href="Relation.Binary.Bundles.html#4272" class="Field Operator">_&lt;_</a> <a id="4293" class="Symbol">:</a> <a id="4295" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="4299" href="Relation.Binary.Bundles.html#4197" class="Field">Carrier</a> <a id="4307" href="Relation.Binary.Bundles.html#4132" class="Bound">ℓ₂</a>
<a id="StrictPartialOrder.isStrictPartialOrder"></a><a id="4314" href="Relation.Binary.Bundles.html#4314" class="Field">isStrictPartialOrder</a> <a id="4335" class="Symbol">:</a> <a id="4337" href="Relation.Binary.Structures.html#3950" class="Record">IsStrictPartialOrder</a> <a id="4358" href="Relation.Binary.Bundles.html#4230" class="Field Operator">_≈_</a> <a id="4362" href="Relation.Binary.Bundles.html#4272" class="Field Operator">_&lt;_</a>
<a id="4369" class="Keyword">open</a> <a id="4374" href="Relation.Binary.Structures.html#3950" class="Module">IsStrictPartialOrder</a> <a id="4395" href="Relation.Binary.Bundles.html#4314" class="Field">isStrictPartialOrder</a> <a id="4416" class="Keyword">public</a>
<a id="4427" class="Keyword">hiding</a> <a id="4434" class="Symbol">(</a><a id="4435" class="Keyword">module</a> <a id="4442" href="Relation.Binary.Structures.html#4178" class="Module">Eq</a><a id="4444" class="Symbol">)</a>
<a id="4449" class="Keyword">module</a> <a id="StrictPartialOrder.Eq"></a><a id="4456" href="Relation.Binary.Bundles.html#4456" class="Module">Eq</a> <a id="4459" class="Keyword">where</a>
<a id="StrictPartialOrder.Eq.setoid"></a><a id="4469" href="Relation.Binary.Bundles.html#4469" class="Function">setoid</a> <a id="4476" class="Symbol">:</a> <a id="4478" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="4485" href="Relation.Binary.Bundles.html#4127" class="Bound">c</a> <a id="4487" href="Relation.Binary.Bundles.html#4129" class="Bound">ℓ₁</a>
<a id="4494" href="Relation.Binary.Bundles.html#4469" class="Function">setoid</a> <a id="4501" class="Symbol">=</a> <a id="4503" class="Keyword">record</a>
<a id="4516" class="Symbol">{</a> <a id="4518" href="Relation.Binary.Bundles.html#1132" class="Field">isEquivalence</a> <a id="4532" class="Symbol">=</a> <a id="4534" href="Relation.Binary.Structures.html#4025" class="Function">isEquivalence</a>
<a id="4554" class="Symbol">}</a>
<a id="4561" class="Keyword">open</a> <a id="4566" href="Relation.Binary.Bundles.html#1009" class="Module">Setoid</a> <a id="4573" href="Relation.Binary.Bundles.html#4469" class="Function">setoid</a> <a id="4580" class="Keyword">public</a>
<a id="4589" class="Keyword">record</a> <a id="DecStrictPartialOrder"></a><a id="4596" href="Relation.Binary.Bundles.html#4596" class="Record">DecStrictPartialOrder</a> <a id="4618" href="Relation.Binary.Bundles.html#4618" class="Bound">c</a> <a id="4620" href="Relation.Binary.Bundles.html#4620" class="Bound">ℓ₁</a> <a id="4623" href="Relation.Binary.Bundles.html#4623" class="Bound">ℓ₂</a> <a id="4626" class="Symbol">:</a> <a id="4628" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4632" class="Symbol">(</a><a id="4633" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="4637" class="Symbol">(</a><a id="4638" href="Relation.Binary.Bundles.html#4618" class="Bound">c</a> <a id="4640" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="4642" href="Relation.Binary.Bundles.html#4620" class="Bound">ℓ₁</a> <a id="4645" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="4647" href="Relation.Binary.Bundles.html#4623" class="Bound">ℓ₂</a><a id="4649" class="Symbol">))</a> <a id="4652" class="Keyword">where</a>
<a id="4660" class="Keyword">infix</a> <a id="4666" class="Number">4</a> <a id="4668" href="Relation.Binary.Bundles.html#4724" class="Field Operator">_≈_</a> <a id="4672" href="Relation.Binary.Bundles.html#4769" class="Field Operator">_&lt;_</a>
<a id="4678" class="Keyword">field</a>
<a id="DecStrictPartialOrder.Carrier"></a><a id="4688" href="Relation.Binary.Bundles.html#4688" class="Field">Carrier</a> <a id="4712" class="Symbol">:</a> <a id="4714" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4718" href="Relation.Binary.Bundles.html#4618" class="Bound">c</a>
<a id="DecStrictPartialOrder._≈_"></a><a id="4724" href="Relation.Binary.Bundles.html#4724" class="Field Operator">_≈_</a> <a id="4748" class="Symbol">:</a> <a id="4750" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="4754" href="Relation.Binary.Bundles.html#4688" class="Field">Carrier</a> <a id="4762" href="Relation.Binary.Bundles.html#4620" class="Bound">ℓ₁</a>
<a id="DecStrictPartialOrder._&lt;_"></a><a id="4769" href="Relation.Binary.Bundles.html#4769" class="Field Operator">_&lt;_</a> <a id="4793" class="Symbol">:</a> <a id="4795" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="4799" href="Relation.Binary.Bundles.html#4688" class="Field">Carrier</a> <a id="4807" href="Relation.Binary.Bundles.html#4623" class="Bound">ℓ₂</a>
<a id="DecStrictPartialOrder.isDecStrictPartialOrder"></a><a id="4814" href="Relation.Binary.Bundles.html#4814" class="Field">isDecStrictPartialOrder</a> <a id="4838" class="Symbol">:</a> <a id="4840" href="Relation.Binary.Structures.html#4571" class="Record">IsDecStrictPartialOrder</a> <a id="4864" href="Relation.Binary.Bundles.html#4724" class="Field Operator">_≈_</a> <a id="4868" href="Relation.Binary.Bundles.html#4769" class="Field Operator">_&lt;_</a>
<a id="4875" class="Keyword">private</a>
<a id="4887" class="Keyword">module</a> <a id="DecStrictPartialOrder.DSPO"></a><a id="4894" href="Relation.Binary.Bundles.html#4894" class="Module">DSPO</a> <a id="4899" class="Symbol">=</a> <a id="4901" href="Relation.Binary.Structures.html#4571" class="Module">IsDecStrictPartialOrder</a> <a id="4925" href="Relation.Binary.Bundles.html#4814" class="Field">isDecStrictPartialOrder</a>
<a id="4951" class="Keyword">open</a> <a id="4956" href="Relation.Binary.Bundles.html#4894" class="Module">DSPO</a> <a id="4961" class="Keyword">public</a> <a id="4968" class="Keyword">hiding</a> <a id="4975" class="Symbol">(</a><a id="4976" class="Keyword">module</a> <a id="4983" href="Relation.Binary.Structures.html#4916" class="Module">Eq</a><a id="4985" class="Symbol">)</a>
<a id="DecStrictPartialOrder.strictPartialOrder"></a><a id="4990" href="Relation.Binary.Bundles.html#4990" class="Function">strictPartialOrder</a> <a id="5009" class="Symbol">:</a> <a id="5011" href="Relation.Binary.Bundles.html#4108" class="Record">StrictPartialOrder</a> <a id="5030" href="Relation.Binary.Bundles.html#4618" class="Bound">c</a> <a id="5032" href="Relation.Binary.Bundles.html#4620" class="Bound">ℓ₁</a> <a id="5035" href="Relation.Binary.Bundles.html#4623" class="Bound">ℓ₂</a>
<a id="5040" href="Relation.Binary.Bundles.html#4990" class="Function">strictPartialOrder</a> <a id="5059" class="Symbol">=</a> <a id="5061" class="Keyword">record</a>
<a id="5072" class="Symbol">{</a> <a id="5074" href="Relation.Binary.Bundles.html#4314" class="Field">isStrictPartialOrder</a> <a id="5095" class="Symbol">=</a> <a id="5097" href="Relation.Binary.Structures.html#4668" class="Function">isStrictPartialOrder</a>
<a id="5122" class="Symbol">}</a>
<a id="5127" class="Keyword">module</a> <a id="DecStrictPartialOrder.Eq"></a><a id="5134" href="Relation.Binary.Bundles.html#5134" class="Module">Eq</a> <a id="5137" class="Keyword">where</a>
<a id="DecStrictPartialOrder.Eq.decSetoid"></a><a id="5148" href="Relation.Binary.Bundles.html#5148" class="Function">decSetoid</a> <a id="5158" class="Symbol">:</a> <a id="5160" href="Relation.Binary.Bundles.html#1391" class="Record">DecSetoid</a> <a id="5170" href="Relation.Binary.Bundles.html#4618" class="Bound">c</a> <a id="5172" href="Relation.Binary.Bundles.html#4620" class="Bound">ℓ₁</a>
<a id="5179" href="Relation.Binary.Bundles.html#5148" class="Function">decSetoid</a> <a id="5189" class="Symbol">=</a> <a id="5191" class="Keyword">record</a>
<a id="5204" class="Symbol">{</a> <a id="5206" href="Relation.Binary.Bundles.html#1523" class="Field">isDecEquivalence</a> <a id="5223" class="Symbol">=</a> <a id="5225" href="Relation.Binary.Structures.html#4930" class="Function">DSPO.Eq.isDecEquivalence</a>
<a id="5256" class="Symbol">}</a>
<a id="5263" class="Keyword">open</a> <a id="5268" href="Relation.Binary.Bundles.html#1391" class="Module">DecSetoid</a> <a id="5278" href="Relation.Binary.Bundles.html#5148" class="Function">decSetoid</a> <a id="5288" class="Keyword">public</a>
<a id="5297" class="Comment">------------------------------------------------------------------------</a>
<a id="5370" class="Comment">-- Total orders</a>
<a id="5386" class="Comment">------------------------------------------------------------------------</a>
<a id="5460" class="Keyword">record</a> <a id="TotalOrder"></a><a id="5467" href="Relation.Binary.Bundles.html#5467" class="Record">TotalOrder</a> <a id="5478" href="Relation.Binary.Bundles.html#5478" class="Bound">c</a> <a id="5480" href="Relation.Binary.Bundles.html#5480" class="Bound">ℓ₁</a> <a id="5483" href="Relation.Binary.Bundles.html#5483" class="Bound">ℓ₂</a> <a id="5486" class="Symbol">:</a> <a id="5488" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="5492" class="Symbol">(</a><a id="5493" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="5497" class="Symbol">(</a><a id="5498" href="Relation.Binary.Bundles.html#5478" class="Bound">c</a> <a id="5500" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="5502" href="Relation.Binary.Bundles.html#5480" class="Bound">ℓ₁</a> <a id="5505" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="5507" href="Relation.Binary.Bundles.html#5483" class="Bound">ℓ₂</a><a id="5509" class="Symbol">))</a> <a id="5512" class="Keyword">where</a>
<a id="5520" class="Keyword">infix</a> <a id="5526" class="Number">4</a> <a id="5528" href="Relation.Binary.Bundles.html#5573" class="Field Operator">_≈_</a> <a id="5532" href="Relation.Binary.Bundles.html#5607" class="Field Operator">_≤_</a>
<a id="5538" class="Keyword">field</a>
<a id="TotalOrder.Carrier"></a><a id="5548" href="Relation.Binary.Bundles.html#5548" class="Field">Carrier</a> <a id="5561" class="Symbol">:</a> <a id="5563" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="5567" href="Relation.Binary.Bundles.html#5478" class="Bound">c</a>
<a id="TotalOrder._≈_"></a><a id="5573" href="Relation.Binary.Bundles.html#5573" class="Field Operator">_≈_</a> <a id="5586" class="Symbol">:</a> <a id="5588" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="5592" href="Relation.Binary.Bundles.html#5548" class="Field">Carrier</a> <a id="5600" href="Relation.Binary.Bundles.html#5480" class="Bound">ℓ₁</a>
<a id="TotalOrder._≤_"></a><a id="5607" href="Relation.Binary.Bundles.html#5607" class="Field Operator">_≤_</a> <a id="5620" class="Symbol">:</a> <a id="5622" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="5626" href="Relation.Binary.Bundles.html#5548" class="Field">Carrier</a> <a id="5634" href="Relation.Binary.Bundles.html#5483" class="Bound">ℓ₂</a>
<a id="TotalOrder.isTotalOrder"></a><a id="5641" href="Relation.Binary.Bundles.html#5641" class="Field">isTotalOrder</a> <a id="5654" class="Symbol">:</a> <a id="5656" href="Relation.Binary.Structures.html#5297" class="Record">IsTotalOrder</a> <a id="5669" href="Relation.Binary.Bundles.html#5573" class="Field Operator">_≈_</a> <a id="5673" href="Relation.Binary.Bundles.html#5607" class="Field Operator">_≤_</a>
<a id="5680" class="Keyword">open</a> <a id="5685" href="Relation.Binary.Structures.html#5297" class="Module">IsTotalOrder</a> <a id="5698" href="Relation.Binary.Bundles.html#5641" class="Field">isTotalOrder</a> <a id="5711" class="Keyword">public</a>
<a id="5722" class="Keyword">hiding</a> <a id="5729" class="Symbol">(</a><a id="5730" class="Keyword">module</a> <a id="5737" href="Relation.Binary.Structures.html#2402" class="Module">Eq</a><a id="5739" class="Symbol">)</a>
<a id="TotalOrder.poset"></a><a id="5744" href="Relation.Binary.Bundles.html#5744" class="Function">poset</a> <a id="5750" class="Symbol">:</a> <a id="5752" href="Relation.Binary.Bundles.html#3028" class="Record">Poset</a> <a id="5758" href="Relation.Binary.Bundles.html#5478" class="Bound">c</a> <a id="5760" href="Relation.Binary.Bundles.html#5480" class="Bound">ℓ₁</a> <a id="5763" href="Relation.Binary.Bundles.html#5483" class="Bound">ℓ₂</a>
<a id="5768" href="Relation.Binary.Bundles.html#5744" class="Function">poset</a> <a id="5774" class="Symbol">=</a> <a id="5776" class="Keyword">record</a>
<a id="5787" class="Symbol">{</a> <a id="5789" href="Relation.Binary.Bundles.html#3203" class="Field">isPartialOrder</a> <a id="5804" class="Symbol">=</a> <a id="5806" href="Relation.Binary.Structures.html#5364" class="Function">isPartialOrder</a>
<a id="5825" class="Symbol">}</a>
<a id="5830" class="Keyword">open</a> <a id="5835" href="Relation.Binary.Bundles.html#3028" class="Module">Poset</a> <a id="5841" href="Relation.Binary.Bundles.html#5744" class="Function">poset</a> <a id="5847" class="Keyword">public</a>
<a id="5858" class="Keyword">using</a> <a id="5864" class="Symbol">(</a><a id="5865" class="Keyword">module</a> <a id="5872" href="Relation.Binary.Bundles.html#2235" class="Module">Eq</a><a id="5874" class="Symbol">;</a> <a id="5876" href="Relation.Binary.Bundles.html#3314" class="Function">preorder</a><a id="5884" class="Symbol">)</a>
<a id="TotalOrder.totalPreorder"></a><a id="5889" href="Relation.Binary.Bundles.html#5889" class="Function">totalPreorder</a> <a id="5903" class="Symbol">:</a> <a id="5905" href="Relation.Binary.Bundles.html#2375" class="Record">TotalPreorder</a> <a id="5919" href="Relation.Binary.Bundles.html#5478" class="Bound">c</a> <a id="5921" href="Relation.Binary.Bundles.html#5480" class="Bound">ℓ₁</a> <a id="5924" href="Relation.Binary.Bundles.html#5483" class="Bound">ℓ₂</a>
<a id="5929" href="Relation.Binary.Bundles.html#5889" class="Function">totalPreorder</a> <a id="5943" class="Symbol">=</a> <a id="5945" class="Keyword">record</a>
<a id="5956" class="Symbol">{</a> <a id="5958" href="Relation.Binary.Bundles.html#2608" class="Field">isTotalPreorder</a> <a id="5974" class="Symbol">=</a> <a id="5976" href="Relation.Binary.Structures.html#5479" class="Function">isTotalPreorder</a>
<a id="5996" class="Symbol">}</a>
<a id="6000" class="Keyword">record</a> <a id="DecTotalOrder"></a><a id="6007" href="Relation.Binary.Bundles.html#6007" class="Record">DecTotalOrder</a> <a id="6021" href="Relation.Binary.Bundles.html#6021" class="Bound">c</a> <a id="6023" href="Relation.Binary.Bundles.html#6023" class="Bound">ℓ₁</a> <a id="6026" href="Relation.Binary.Bundles.html#6026" class="Bound">ℓ₂</a> <a id="6029" class="Symbol">:</a> <a id="6031" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="6035" class="Symbol">(</a><a id="6036" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="6040" class="Symbol">(</a><a id="6041" href="Relation.Binary.Bundles.html#6021" class="Bound">c</a> <a id="6043" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="6045" href="Relation.Binary.Bundles.html#6023" class="Bound">ℓ₁</a> <a id="6048" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="6050" href="Relation.Binary.Bundles.html#6026" class="Bound">ℓ₂</a><a id="6052" class="Symbol">))</a> <a id="6055" class="Keyword">where</a>
<a id="6063" class="Keyword">infix</a> <a id="6069" class="Number">4</a> <a id="6071" href="Relation.Binary.Bundles.html#6119" class="Field Operator">_≈_</a> <a id="6075" href="Relation.Binary.Bundles.html#6156" class="Field Operator">_≤_</a>
<a id="6081" class="Keyword">field</a>
<a id="DecTotalOrder.Carrier"></a><a id="6091" href="Relation.Binary.Bundles.html#6091" class="Field">Carrier</a> <a id="6107" class="Symbol">:</a> <a id="6109" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="6113" href="Relation.Binary.Bundles.html#6021" class="Bound">c</a>
<a id="DecTotalOrder._≈_"></a><a id="6119" href="Relation.Binary.Bundles.html#6119" class="Field Operator">_≈_</a> <a id="6135" class="Symbol">:</a> <a id="6137" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="6141" href="Relation.Binary.Bundles.html#6091" class="Field">Carrier</a> <a id="6149" href="Relation.Binary.Bundles.html#6023" class="Bound">ℓ₁</a>
<a id="DecTotalOrder._≤_"></a><a id="6156" href="Relation.Binary.Bundles.html#6156" class="Field Operator">_≤_</a> <a id="6172" class="Symbol">:</a> <a id="6174" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="6178" href="Relation.Binary.Bundles.html#6091" class="Field">Carrier</a> <a id="6186" href="Relation.Binary.Bundles.html#6026" class="Bound">ℓ₂</a>
<a id="DecTotalOrder.isDecTotalOrder"></a><a id="6193" href="Relation.Binary.Bundles.html#6193" class="Field">isDecTotalOrder</a> <a id="6209" class="Symbol">:</a> <a id="6211" href="Relation.Binary.Structures.html#5614" class="Record">IsDecTotalOrder</a> <a id="6227" href="Relation.Binary.Bundles.html#6119" class="Field Operator">_≈_</a> <a id="6231" href="Relation.Binary.Bundles.html#6156" class="Field Operator">_≤_</a>
<a id="6238" class="Keyword">private</a>
<a id="6250" class="Keyword">module</a> <a id="DecTotalOrder.DTO"></a><a id="6257" href="Relation.Binary.Bundles.html#6257" class="Module">DTO</a> <a id="6261" class="Symbol">=</a> <a id="6263" href="Relation.Binary.Structures.html#5614" class="Module">IsDecTotalOrder</a> <a id="6279" href="Relation.Binary.Bundles.html#6193" class="Field">isDecTotalOrder</a>
<a id="6297" class="Keyword">open</a> <a id="6302" href="Relation.Binary.Bundles.html#6257" class="Module">DTO</a> <a id="6306" class="Keyword">public</a> <a id="6313" class="Keyword">hiding</a> <a id="6320" class="Symbol">(</a><a id="6321" class="Keyword">module</a> <a id="6328" href="Relation.Binary.Structures.html#6048" class="Module">Eq</a><a id="6330" class="Symbol">)</a>
<a id="DecTotalOrder.totalOrder"></a><a id="6335" href="Relation.Binary.Bundles.html#6335" class="Function">totalOrder</a> <a id="6346" class="Symbol">:</a> <a id="6348" href="Relation.Binary.Bundles.html#5467" class="Record">TotalOrder</a> <a id="6359" href="Relation.Binary.Bundles.html#6021" class="Bound">c</a> <a id="6361" href="Relation.Binary.Bundles.html#6023" class="Bound">ℓ₁</a> <a id="6364" href="Relation.Binary.Bundles.html#6026" class="Bound">ℓ₂</a>
<a id="6369" href="Relation.Binary.Bundles.html#6335" class="Function">totalOrder</a> <a id="6380" class="Symbol">=</a> <a id="6382" class="Keyword">record</a>
<a id="6393" class="Symbol">{</a> <a id="6395" href="Relation.Binary.Bundles.html#5641" class="Field">isTotalOrder</a> <a id="6408" class="Symbol">=</a> <a id="6410" href="Relation.Binary.Structures.html#5703" class="Function">isTotalOrder</a>
<a id="6427" class="Symbol">}</a>
<a id="6432" class="Keyword">open</a> <a id="6437" href="Relation.Binary.Bundles.html#5467" class="Module">TotalOrder</a> <a id="6448" href="Relation.Binary.Bundles.html#6335" class="Function">totalOrder</a> <a id="6459" class="Keyword">public</a> <a id="6466" class="Keyword">using</a> <a id="6472" class="Symbol">(</a><a id="6473" href="Relation.Binary.Bundles.html#5744" class="Function">poset</a><a id="6478" class="Symbol">;</a> <a id="6480" href="Relation.Binary.Bundles.html#3314" class="Function">preorder</a><a id="6488" class="Symbol">)</a>
<a id="DecTotalOrder.decPoset"></a><a id="6493" href="Relation.Binary.Bundles.html#6493" class="Function">decPoset</a> <a id="6502" class="Symbol">:</a> <a id="6504" href="Relation.Binary.Bundles.html#3462" class="Record">DecPoset</a> <a id="6513" href="Relation.Binary.Bundles.html#6021" class="Bound">c</a> <a id="6515" href="Relation.Binary.Bundles.html#6023" class="Bound">ℓ₁</a> <a id="6518" href="Relation.Binary.Bundles.html#6026" class="Bound">ℓ₂</a>
<a id="6523" href="Relation.Binary.Bundles.html#6493" class="Function">decPoset</a> <a id="6532" class="Symbol">=</a> <a id="6534" class="Keyword">record</a>
<a id="6545" class="Symbol">{</a> <a id="6547" href="Relation.Binary.Bundles.html#3649" class="Field">isDecPartialOrder</a> <a id="6565" class="Symbol">=</a> <a id="6567" href="Relation.Binary.Structures.html#5868" class="Function">isDecPartialOrder</a>
<a id="6589" class="Symbol">}</a>
<a id="6594" class="Keyword">open</a> <a id="6599" href="Relation.Binary.Bundles.html#3462" class="Module">DecPoset</a> <a id="6608" href="Relation.Binary.Bundles.html#6493" class="Function">decPoset</a> <a id="6617" class="Keyword">public</a> <a id="6624" class="Keyword">using</a> <a id="6630" class="Symbol">(</a><a id="6631" class="Keyword">module</a> <a id="6638" href="Relation.Binary.Bundles.html#3940" class="Module">Eq</a><a id="6640" class="Symbol">)</a>
<a id="6644" class="Comment">-- Note that these orders are decidable. The current implementation</a>
<a id="6712" class="Comment">-- of `Trichotomous` subsumes irreflexivity and asymmetry. Any reasonable</a>
<a id="6786" class="Comment">-- definition capturing these three properties implies decidability</a>
<a id="6854" class="Comment">-- as `Trichotomous` necessarily separates out the equality case.</a>
<a id="6921" class="Keyword">record</a> <a id="StrictTotalOrder"></a><a id="6928" href="Relation.Binary.Bundles.html#6928" class="Record">StrictTotalOrder</a> <a id="6945" href="Relation.Binary.Bundles.html#6945" class="Bound">c</a> <a id="6947" href="Relation.Binary.Bundles.html#6947" class="Bound">ℓ₁</a> <a id="6950" href="Relation.Binary.Bundles.html#6950" class="Bound">ℓ₂</a> <a id="6953" class="Symbol">:</a> <a id="6955" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="6959" class="Symbol">(</a><a id="6960" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="6964" class="Symbol">(</a><a id="6965" href="Relation.Binary.Bundles.html#6945" class="Bound">c</a> <a id="6967" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="6969" href="Relation.Binary.Bundles.html#6947" class="Bound">ℓ₁</a> <a id="6972" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="6974" href="Relation.Binary.Bundles.html#6950" class="Bound">ℓ₂</a><a id="6976" class="Symbol">))</a> <a id="6979" class="Keyword">where</a>
<a id="6987" class="Keyword">infix</a> <a id="6993" class="Number">4</a> <a id="6995" href="Relation.Binary.Bundles.html#7046" class="Field Operator">_≈_</a> <a id="6999" href="Relation.Binary.Bundles.html#7086" class="Field Operator">_&lt;_</a>
<a id="7005" class="Keyword">field</a>
<a id="StrictTotalOrder.Carrier"></a><a id="7015" href="Relation.Binary.Bundles.html#7015" class="Field">Carrier</a> <a id="7034" class="Symbol">:</a> <a id="7036" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="7040" href="Relation.Binary.Bundles.html#6945" class="Bound">c</a>
<a id="StrictTotalOrder._≈_"></a><a id="7046" href="Relation.Binary.Bundles.html#7046" class="Field Operator">_≈_</a> <a id="7065" class="Symbol">:</a> <a id="7067" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="7071" href="Relation.Binary.Bundles.html#7015" class="Field">Carrier</a> <a id="7079" href="Relation.Binary.Bundles.html#6947" class="Bound">ℓ₁</a>
<a id="StrictTotalOrder._&lt;_"></a><a id="7086" href="Relation.Binary.Bundles.html#7086" class="Field Operator">_&lt;_</a> <a id="7105" class="Symbol">:</a> <a id="7107" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="7111" href="Relation.Binary.Bundles.html#7015" class="Field">Carrier</a> <a id="7119" href="Relation.Binary.Bundles.html#6950" class="Bound">ℓ₂</a>
<a id="StrictTotalOrder.isStrictTotalOrder"></a><a id="7126" href="Relation.Binary.Bundles.html#7126" class="Field">isStrictTotalOrder</a> <a id="7145" class="Symbol">:</a> <a id="7147" href="Relation.Binary.Structures.html#6539" class="Record">IsStrictTotalOrder</a> <a id="7166" href="Relation.Binary.Bundles.html#7046" class="Field Operator">_≈_</a> <a id="7170" href="Relation.Binary.Bundles.html#7086" class="Field Operator">_&lt;_</a>
<a id="7177" class="Keyword">open</a> <a id="7182" href="Relation.Binary.Structures.html#6539" class="Module">IsStrictTotalOrder</a> <a id="7201" href="Relation.Binary.Bundles.html#7126" class="Field">isStrictTotalOrder</a> <a id="7220" class="Keyword">public</a>
<a id="7231" class="Keyword">hiding</a> <a id="7238" class="Symbol">(</a><a id="7239" class="Keyword">module</a> <a id="7246" href="Relation.Binary.Structures.html#6981" class="Module">Eq</a><a id="7248" class="Symbol">)</a>
<a id="StrictTotalOrder.strictPartialOrder"></a><a id="7253" href="Relation.Binary.Bundles.html#7253" class="Function">strictPartialOrder</a> <a id="7272" class="Symbol">:</a> <a id="7274" href="Relation.Binary.Bundles.html#4108" class="Record">StrictPartialOrder</a> <a id="7293" href="Relation.Binary.Bundles.html#6945" class="Bound">c</a> <a id="7295" href="Relation.Binary.Bundles.html#6947" class="Bound">ℓ₁</a> <a id="7298" href="Relation.Binary.Bundles.html#6950" class="Bound">ℓ₂</a>
<a id="7303" href="Relation.Binary.Bundles.html#7253" class="Function">strictPartialOrder</a> <a id="7322" class="Symbol">=</a> <a id="7324" class="Keyword">record</a>
<a id="7335" class="Symbol">{</a> <a id="7337" href="Relation.Binary.Bundles.html#4314" class="Field">isStrictPartialOrder</a> <a id="7358" class="Symbol">=</a> <a id="7360" href="Relation.Binary.Structures.html#7023" class="Function">isStrictPartialOrder</a>
<a id="7385" class="Symbol">}</a>
<a id="7390" class="Keyword">open</a> <a id="7395" href="Relation.Binary.Bundles.html#4108" class="Module">StrictPartialOrder</a> <a id="7414" href="Relation.Binary.Bundles.html#7253" class="Function">strictPartialOrder</a> <a id="7433" class="Keyword">public</a>
<a id="7444" class="Keyword">using</a> <a id="7450" class="Symbol">(</a><a id="7451" class="Keyword">module</a> <a id="7458" href="Relation.Binary.Bundles.html#4456" class="Module">Eq</a><a id="7460" class="Symbol">)</a>
<a id="StrictTotalOrder.decSetoid"></a><a id="7465" href="Relation.Binary.Bundles.html#7465" class="Function">decSetoid</a> <a id="7475" class="Symbol">:</a> <a id="7477" href="Relation.Binary.Bundles.html#1391" class="Record">DecSetoid</a> <a id="7487" href="Relation.Binary.Bundles.html#6945" class="Bound">c</a> <a id="7489" href="Relation.Binary.Bundles.html#6947" class="Bound">ℓ₁</a>
<a id="7494" href="Relation.Binary.Bundles.html#7465" class="Function">decSetoid</a> <a id="7504" class="Symbol">=</a> <a id="7506" class="Keyword">record</a>
<a id="7517" class="Symbol">{</a> <a id="7519" href="Relation.Binary.Bundles.html#1523" class="Field">isDecEquivalence</a> <a id="7536" class="Symbol">=</a> <a id="7538" href="Relation.Binary.Structures.html#6839" class="Function">isDecEquivalence</a>
<a id="7559" class="Symbol">}</a>
<a id="7563" class="Symbol">{-#</a> <a id="7567" class="Keyword">WARNING_ON_USAGE</a> <a id="7584" class="Pragma">decSetoid</a>
<a id="7596" class="String">&quot;Warning: decSetoid was deprecated in v1.3.
Please use Eq.decSetoid instead.&quot;</a>
<a id="7678" class="Symbol">#-}</a>
</pre></body></html>

View File

@ -0,0 +1,287 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Relation.Binary.Consequences</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Some properties imply others</a>
<a id="138" class="Comment">------------------------------------------------------------------------</a>
<a id="212" class="Symbol">{-#</a> <a id="216" class="Keyword">OPTIONS</a> <a id="224" class="Pragma">--without-K</a> <a id="236" class="Pragma">--safe</a> <a id="243" class="Symbol">#-}</a>
<a id="248" class="Keyword">module</a> <a id="255" href="Relation.Binary.Consequences.html" class="Module">Relation.Binary.Consequences</a> <a id="284" class="Keyword">where</a>
<a id="291" class="Keyword">open</a> <a id="296" class="Keyword">import</a> <a id="303" href="Data.Maybe.Base.html" class="Module">Data.Maybe.Base</a> <a id="319" class="Keyword">using</a> <a id="325" class="Symbol">(</a><a id="326" href="Agda.Builtin.Maybe.html#174" class="InductiveConstructor">just</a><a id="330" class="Symbol">;</a> <a id="332" href="Agda.Builtin.Maybe.html#195" class="InductiveConstructor">nothing</a><a id="339" class="Symbol">;</a> <a id="341" href="Data.Maybe.Base.html#1212" class="Function">decToMaybe</a><a id="351" class="Symbol">)</a>
<a id="353" class="Keyword">open</a> <a id="358" class="Keyword">import</a> <a id="365" href="Data.Sum.Base.html" class="Module">Data.Sum.Base</a> <a id="379" class="Symbol">as</a> <a id="382" class="Module">Sum</a> <a id="386" class="Keyword">using</a> <a id="392" class="Symbol">(</a><a id="393" href="Data.Sum.Base.html#784" class="InductiveConstructor">inj₁</a><a id="397" class="Symbol">;</a> <a id="399" href="Data.Sum.Base.html#809" class="InductiveConstructor">inj₂</a><a id="403" class="Symbol">)</a>
<a id="405" class="Keyword">open</a> <a id="410" class="Keyword">import</a> <a id="417" href="Data.Product.html" class="Module">Data.Product</a> <a id="430" class="Keyword">using</a> <a id="436" class="Symbol">(</a><a id="437" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">_,_</a><a id="440" class="Symbol">)</a>
<a id="442" class="Keyword">open</a> <a id="447" class="Keyword">import</a> <a id="454" href="Data.Empty.Irrelevant.html" class="Module">Data.Empty.Irrelevant</a> <a id="476" class="Keyword">using</a> <a id="482" class="Symbol">(</a><a id="483" href="Data.Empty.Irrelevant.html#327" class="Function">⊥-elim</a><a id="489" class="Symbol">)</a>
<a id="491" class="Keyword">open</a> <a id="496" class="Keyword">import</a> <a id="503" href="Function.Base.html" class="Module">Function.Base</a> <a id="517" class="Keyword">using</a> <a id="523" class="Symbol">(</a><a id="524" href="Function.Base.html#1031" class="Function Operator">_∘_</a><a id="527" class="Symbol">;</a> <a id="529" href="Function.Base.html#1919" class="Function Operator">_$_</a><a id="532" class="Symbol">;</a> <a id="534" href="Function.Base.html#1554" class="Function">flip</a><a id="538" class="Symbol">)</a>
<a id="540" class="Keyword">open</a> <a id="545" class="Keyword">import</a> <a id="552" href="Level.html" class="Module">Level</a> <a id="558" class="Keyword">using</a> <a id="564" class="Symbol">(</a><a id="565" href="Agda.Primitive.html#597" class="Postulate">Level</a><a id="570" class="Symbol">)</a>
<a id="572" class="Keyword">open</a> <a id="577" class="Keyword">import</a> <a id="584" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a>
<a id="605" class="Keyword">open</a> <a id="610" class="Keyword">import</a> <a id="617" href="Relation.Binary.Definitions.html" class="Module">Relation.Binary.Definitions</a>
<a id="645" class="Keyword">open</a> <a id="650" class="Keyword">import</a> <a id="657" href="Relation.Nullary.html" class="Module">Relation.Nullary</a> <a id="674" class="Keyword">using</a> <a id="680" class="Symbol">(</a><a id="681" href="Relation.Nullary.html#1648" class="InductiveConstructor">yes</a><a id="684" class="Symbol">;</a> <a id="686" href="Relation.Nullary.html#1685" class="InductiveConstructor">no</a><a id="688" class="Symbol">;</a> <a id="690" href="Relation.Nullary.html#1838" class="Function">recompute</a><a id="699" class="Symbol">)</a>
<a id="701" class="Keyword">open</a> <a id="706" class="Keyword">import</a> <a id="713" href="Relation.Nullary.Decidable.Core.html" class="Module">Relation.Nullary.Decidable.Core</a> <a id="745" class="Keyword">using</a> <a id="751" class="Symbol">(</a><a id="752" href="Relation.Nullary.Decidable.Core.html#3636" class="Function">map</a><a id="756" class="Symbol">)</a>
<a id="758" class="Keyword">open</a> <a id="763" class="Keyword">import</a> <a id="770" href="Relation.Unary.html" class="Module">Relation.Unary</a> <a id="785" class="Keyword">using</a> <a id="791" class="Symbol">(</a><a id="792" href="Relation.Unary.html#4278" class="Function"></a><a id="793" class="Symbol">;</a> <a id="795" href="Relation.Unary.html#1101" class="Function">Pred</a><a id="799" class="Symbol">)</a>
<a id="802" class="Keyword">private</a>
<a id="812" class="Keyword">variable</a>
<a id="825" href="Relation.Binary.Consequences.html#825" class="Generalizable">a</a> <a id="827" href="Relation.Binary.Consequences.html#827" class="Generalizable"></a> <a id="829" href="Relation.Binary.Consequences.html#829" class="Generalizable">ℓ₁</a> <a id="832" href="Relation.Binary.Consequences.html#832" class="Generalizable">ℓ₂</a> <a id="835" href="Relation.Binary.Consequences.html#835" class="Generalizable">ℓ₃</a> <a id="838" href="Relation.Binary.Consequences.html#838" class="Generalizable">ℓ₄</a> <a id="841" href="Relation.Binary.Consequences.html#841" class="Generalizable">p</a> <a id="843" class="Symbol">:</a> <a id="845" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="855" href="Relation.Binary.Consequences.html#855" class="Generalizable">A</a> <a id="857" href="Relation.Binary.Consequences.html#857" class="Generalizable">B</a> <a id="859" class="Symbol">:</a> <a id="861" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="865" href="Relation.Binary.Consequences.html#825" class="Generalizable">a</a>
<a id="868" class="Comment">------------------------------------------------------------------------</a>
<a id="941" class="Comment">-- Substitutive properties</a>
<a id="969" class="Keyword">module</a> <a id="976" href="Relation.Binary.Consequences.html#976" class="Module">_</a> <a id="978" class="Symbol">{</a><a id="979" href="Relation.Binary.Consequences.html#979" class="Bound Operator">__</a> <a id="983" class="Symbol">:</a> <a id="985" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="989" href="Relation.Binary.Consequences.html#855" class="Generalizable">A</a> <a id="991" href="Relation.Binary.Consequences.html#827" class="Generalizable"></a><a id="992" class="Symbol">}</a> <a id="994" class="Symbol">(</a><a id="995" href="Relation.Binary.Consequences.html#995" class="Bound">R</a> <a id="997" class="Symbol">:</a> <a id="999" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="1003" href="Relation.Binary.Consequences.html#855" class="Generalizable">A</a> <a id="1005" href="Relation.Binary.Consequences.html#841" class="Generalizable">p</a><a id="1006" class="Symbol">)</a> <a id="1008" class="Keyword">where</a>
<a id="1017" href="Relation.Binary.Consequences.html#1017" class="Function">subst⇒respˡ</a> <a id="1029" class="Symbol">:</a> <a id="1031" href="Relation.Binary.Definitions.html#4369" class="Function">Substitutive</a> <a id="1044" href="Relation.Binary.Consequences.html#979" class="Bound Operator">__</a> <a id="1048" href="Relation.Binary.Consequences.html#1005" class="Bound">p</a> <a id="1050" class="Symbol"></a> <a id="1052" href="Relation.Binary.Consequences.html#995" class="Bound">R</a> <a id="1054" href="Relation.Binary.Definitions.html#3914" class="Function Operator">Respectsˡ</a> <a id="1064" href="Relation.Binary.Consequences.html#979" class="Bound Operator">__</a>
<a id="1070" href="Relation.Binary.Consequences.html#1017" class="Function">subst⇒respˡ</a> <a id="1082" href="Relation.Binary.Consequences.html#1082" class="Bound">subst</a> <a id="1088" class="Symbol">{</a><a id="1089" href="Relation.Binary.Consequences.html#1089" class="Bound">y</a><a id="1090" class="Symbol">}</a> <a id="1092" href="Relation.Binary.Consequences.html#1092" class="Bound">xx</a> <a id="1097" href="Relation.Binary.Consequences.html#1097" class="Bound">Pxy</a> <a id="1102" class="Symbol">=</a> <a id="1104" href="Relation.Binary.Consequences.html#1082" class="Bound">subst</a> <a id="1110" class="Symbol">(</a><a id="1111" href="Function.Base.html#1554" class="Function">flip</a> <a id="1116" href="Relation.Binary.Consequences.html#995" class="Bound">R</a> <a id="1118" href="Relation.Binary.Consequences.html#1089" class="Bound">y</a><a id="1119" class="Symbol">)</a> <a id="1121" href="Relation.Binary.Consequences.html#1092" class="Bound">xx</a> <a id="1126" href="Relation.Binary.Consequences.html#1097" class="Bound">Pxy</a>
<a id="1134" href="Relation.Binary.Consequences.html#1134" class="Function">subst⇒respʳ</a> <a id="1146" class="Symbol">:</a> <a id="1148" href="Relation.Binary.Definitions.html#4369" class="Function">Substitutive</a> <a id="1161" href="Relation.Binary.Consequences.html#979" class="Bound Operator">__</a> <a id="1165" href="Relation.Binary.Consequences.html#1005" class="Bound">p</a> <a id="1167" class="Symbol"></a> <a id="1169" href="Relation.Binary.Consequences.html#995" class="Bound">R</a> <a id="1171" href="Relation.Binary.Definitions.html#3749" class="Function Operator">Respectsʳ</a> <a id="1181" href="Relation.Binary.Consequences.html#979" class="Bound Operator">__</a>
<a id="1187" href="Relation.Binary.Consequences.html#1134" class="Function">subst⇒respʳ</a> <a id="1199" href="Relation.Binary.Consequences.html#1199" class="Bound">subst</a> <a id="1205" class="Symbol">{</a><a id="1206" href="Relation.Binary.Consequences.html#1206" class="Bound">x</a><a id="1207" class="Symbol">}</a> <a id="1209" href="Relation.Binary.Consequences.html#1209" class="Bound">yy</a> <a id="1214" href="Relation.Binary.Consequences.html#1214" class="Bound">Pxy</a> <a id="1219" class="Symbol">=</a> <a id="1221" href="Relation.Binary.Consequences.html#1199" class="Bound">subst</a> <a id="1227" class="Symbol">(</a><a id="1228" href="Relation.Binary.Consequences.html#995" class="Bound">R</a> <a id="1230" href="Relation.Binary.Consequences.html#1206" class="Bound">x</a><a id="1231" class="Symbol">)</a> <a id="1233" href="Relation.Binary.Consequences.html#1209" class="Bound">yy</a> <a id="1238" href="Relation.Binary.Consequences.html#1214" class="Bound">Pxy</a>
<a id="1246" href="Relation.Binary.Consequences.html#1246" class="Function">subst⇒resp₂</a> <a id="1258" class="Symbol">:</a> <a id="1260" href="Relation.Binary.Definitions.html#4369" class="Function">Substitutive</a> <a id="1273" href="Relation.Binary.Consequences.html#979" class="Bound Operator">__</a> <a id="1277" href="Relation.Binary.Consequences.html#1005" class="Bound">p</a> <a id="1279" class="Symbol"></a> <a id="1281" href="Relation.Binary.Consequences.html#995" class="Bound">R</a> <a id="1283" href="Relation.Binary.Definitions.html#4077" class="Function Operator">Respects₂</a> <a id="1293" href="Relation.Binary.Consequences.html#979" class="Bound Operator">__</a>
<a id="1299" href="Relation.Binary.Consequences.html#1246" class="Function">subst⇒resp₂</a> <a id="1311" href="Relation.Binary.Consequences.html#1311" class="Bound">subst</a> <a id="1317" class="Symbol">=</a> <a id="1319" href="Relation.Binary.Consequences.html#1134" class="Function">subst⇒respʳ</a> <a id="1331" href="Relation.Binary.Consequences.html#1311" class="Bound">subst</a> <a id="1337" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="1339" href="Relation.Binary.Consequences.html#1017" class="Function">subst⇒respˡ</a> <a id="1351" href="Relation.Binary.Consequences.html#1311" class="Bound">subst</a>
<a id="1358" class="Keyword">module</a> <a id="1365" href="Relation.Binary.Consequences.html#1365" class="Module">_</a> <a id="1367" class="Symbol">{</a><a id="1368" href="Relation.Binary.Consequences.html#1368" class="Bound Operator">__</a> <a id="1372" class="Symbol">:</a> <a id="1374" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="1378" href="Relation.Binary.Consequences.html#855" class="Generalizable">A</a> <a id="1380" href="Relation.Binary.Consequences.html#827" class="Generalizable"></a><a id="1381" class="Symbol">}</a> <a id="1383" class="Symbol">{</a><a id="1384" href="Relation.Binary.Consequences.html#1384" class="Bound">P</a> <a id="1386" class="Symbol">:</a> <a id="1388" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="1393" href="Relation.Binary.Consequences.html#855" class="Generalizable">A</a> <a id="1395" href="Relation.Binary.Consequences.html#841" class="Generalizable">p</a><a id="1396" class="Symbol">}</a> <a id="1398" class="Keyword">where</a>
<a id="1407" href="Relation.Binary.Consequences.html#1407" class="Function">resp⇒¬-resp</a> <a id="1419" class="Symbol">:</a> <a id="1421" href="Relation.Binary.Definitions.html#1498" class="Function">Symmetric</a> <a id="1431" href="Relation.Binary.Consequences.html#1368" class="Bound Operator">__</a> <a id="1435" class="Symbol"></a> <a id="1437" href="Relation.Binary.Consequences.html#1384" class="Bound">P</a> <a id="1439" href="Relation.Binary.Definitions.html#3593" class="Function Operator">Respects</a> <a id="1448" href="Relation.Binary.Consequences.html#1368" class="Bound Operator">__</a> <a id="1452" class="Symbol"></a> <a id="1454" class="Symbol">(</a><a id="1455" href="Relation.Unary.html#4278" class="Function"></a> <a id="1457" href="Relation.Binary.Consequences.html#1384" class="Bound">P</a><a id="1458" class="Symbol">)</a> <a id="1460" href="Relation.Binary.Definitions.html#3593" class="Function Operator">Respects</a> <a id="1469" href="Relation.Binary.Consequences.html#1368" class="Bound Operator">__</a>
<a id="1475" href="Relation.Binary.Consequences.html#1407" class="Function">resp⇒¬-resp</a> <a id="1487" href="Relation.Binary.Consequences.html#1487" class="Bound">sym</a> <a id="1491" href="Relation.Binary.Consequences.html#1491" class="Bound">resp</a> <a id="1496" href="Relation.Binary.Consequences.html#1496" class="Bound">xy</a> <a id="1500" href="Relation.Binary.Consequences.html#1500" class="Bound">¬Px</a> <a id="1504" href="Relation.Binary.Consequences.html#1504" class="Bound">Py</a> <a id="1507" class="Symbol">=</a> <a id="1509" href="Relation.Binary.Consequences.html#1500" class="Bound">¬Px</a> <a id="1513" class="Symbol">(</a><a id="1514" href="Relation.Binary.Consequences.html#1491" class="Bound">resp</a> <a id="1519" class="Symbol">(</a><a id="1520" href="Relation.Binary.Consequences.html#1487" class="Bound">sym</a> <a id="1524" href="Relation.Binary.Consequences.html#1496" class="Bound">xy</a><a id="1527" class="Symbol">)</a> <a id="1529" href="Relation.Binary.Consequences.html#1504" class="Bound">Py</a><a id="1531" class="Symbol">)</a>
<a id="1534" class="Comment">------------------------------------------------------------------------</a>
<a id="1607" class="Comment">-- Proofs for non-strict orders</a>
<a id="1640" class="Keyword">module</a> <a id="1647" href="Relation.Binary.Consequences.html#1647" class="Module">_</a> <a id="1649" class="Symbol">{</a><a id="1650" href="Relation.Binary.Consequences.html#1650" class="Bound Operator">_≈_</a> <a id="1654" class="Symbol">:</a> <a id="1656" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="1660" href="Relation.Binary.Consequences.html#855" class="Generalizable">A</a> <a id="1662" href="Relation.Binary.Consequences.html#829" class="Generalizable">ℓ₁</a><a id="1664" class="Symbol">}</a> <a id="1666" class="Symbol">{</a><a id="1667" href="Relation.Binary.Consequences.html#1667" class="Bound Operator">_≤_</a> <a id="1671" class="Symbol">:</a> <a id="1673" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="1677" href="Relation.Binary.Consequences.html#855" class="Generalizable">A</a> <a id="1679" href="Relation.Binary.Consequences.html#832" class="Generalizable">ℓ₂</a><a id="1681" class="Symbol">}</a> <a id="1683" class="Keyword">where</a>
<a id="1692" href="Relation.Binary.Consequences.html#1692" class="Function">total⇒refl</a> <a id="1703" class="Symbol">:</a> <a id="1705" href="Relation.Binary.Consequences.html#1667" class="Bound Operator">_≤_</a> <a id="1709" href="Relation.Binary.Definitions.html#4077" class="Function Operator">Respects₂</a> <a id="1719" href="Relation.Binary.Consequences.html#1650" class="Bound Operator">_≈_</a> <a id="1723" class="Symbol"></a> <a id="1725" href="Relation.Binary.Definitions.html#1498" class="Function">Symmetric</a> <a id="1735" href="Relation.Binary.Consequences.html#1650" class="Bound Operator">_≈_</a> <a id="1739" class="Symbol"></a>
<a id="1756" href="Relation.Binary.Definitions.html#2584" class="Function">Total</a> <a id="1762" href="Relation.Binary.Consequences.html#1667" class="Bound Operator">_≤_</a> <a id="1766" class="Symbol"></a> <a id="1768" href="Relation.Binary.Consequences.html#1650" class="Bound Operator">_≈_</a> <a id="1772" href="Relation.Binary.Core.html#1254" class="Function Operator"></a> <a id="1774" href="Relation.Binary.Consequences.html#1667" class="Bound Operator">_≤_</a>
<a id="1780" href="Relation.Binary.Consequences.html#1692" class="Function">total⇒refl</a> <a id="1791" class="Symbol">(</a><a id="1792" href="Relation.Binary.Consequences.html#1792" class="Bound">respʳ</a> <a id="1798" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="1800" href="Relation.Binary.Consequences.html#1800" class="Bound">respˡ</a><a id="1805" class="Symbol">)</a> <a id="1807" href="Relation.Binary.Consequences.html#1807" class="Bound">sym</a> <a id="1811" href="Relation.Binary.Consequences.html#1811" class="Bound">total</a> <a id="1817" class="Symbol">{</a><a id="1818" href="Relation.Binary.Consequences.html#1818" class="Bound">x</a><a id="1819" class="Symbol">}</a> <a id="1821" class="Symbol">{</a><a id="1822" href="Relation.Binary.Consequences.html#1822" class="Bound">y</a><a id="1823" class="Symbol">}</a> <a id="1825" href="Relation.Binary.Consequences.html#1825" class="Bound">x≈y</a> <a id="1829" class="Keyword">with</a> <a id="1834" href="Relation.Binary.Consequences.html#1811" class="Bound">total</a> <a id="1840" href="Relation.Binary.Consequences.html#1818" class="Bound">x</a> <a id="1842" href="Relation.Binary.Consequences.html#1822" class="Bound">y</a>
<a id="1846" class="Symbol">...</a> <a id="1850" class="Symbol">|</a> <a id="1852" href="Data.Sum.Base.html#784" class="InductiveConstructor">inj₁</a> <a id="1857" href="Relation.Binary.Consequences.html#1857" class="Bound">xy</a> <a id="1861" class="Symbol">=</a> <a id="1863" href="Relation.Binary.Consequences.html#1857" class="Bound">xy</a>
<a id="1869" class="Symbol">...</a> <a id="1873" class="Symbol">|</a> <a id="1875" href="Data.Sum.Base.html#809" class="InductiveConstructor">inj₂</a> <a id="1880" href="Relation.Binary.Consequences.html#1880" class="Bound">yx</a> <a id="1884" class="Symbol">=</a> <a id="1886" class="Bound">respʳ</a> <a id="1892" class="Bound">x≈y</a> <a id="1896" class="Symbol">(</a><a id="1897" class="Bound">respˡ</a> <a id="1903" class="Symbol">(</a><a id="1904" class="Bound">sym</a> <a id="1908" class="Bound">x≈y</a><a id="1911" class="Symbol">)</a> <a id="1913" href="Relation.Binary.Consequences.html#1880" class="Bound">yx</a><a id="1916" class="Symbol">)</a>
<a id="1921" href="Relation.Binary.Consequences.html#1921" class="Function">total∧dec⇒dec</a> <a id="1935" class="Symbol">:</a> <a id="1937" href="Relation.Binary.Consequences.html#1650" class="Bound Operator">_≈_</a> <a id="1941" href="Relation.Binary.Core.html#1254" class="Function Operator"></a> <a id="1943" href="Relation.Binary.Consequences.html#1667" class="Bound Operator">_≤_</a> <a id="1947" class="Symbol"></a> <a id="1949" href="Relation.Binary.Definitions.html#2082" class="Function">Antisymmetric</a> <a id="1963" href="Relation.Binary.Consequences.html#1650" class="Bound Operator">_≈_</a> <a id="1967" href="Relation.Binary.Consequences.html#1667" class="Bound Operator">_≤_</a> <a id="1971" class="Symbol"></a>
<a id="1991" href="Relation.Binary.Definitions.html#2584" class="Function">Total</a> <a id="1997" href="Relation.Binary.Consequences.html#1667" class="Bound Operator">_≤_</a> <a id="2001" class="Symbol"></a> <a id="2003" href="Relation.Binary.Definitions.html#4575" class="Function">Decidable</a> <a id="2013" href="Relation.Binary.Consequences.html#1650" class="Bound Operator">_≈_</a> <a id="2017" class="Symbol"></a> <a id="2019" href="Relation.Binary.Definitions.html#4575" class="Function">Decidable</a> <a id="2029" href="Relation.Binary.Consequences.html#1667" class="Bound Operator">_≤_</a>
<a id="2035" href="Relation.Binary.Consequences.html#1921" class="Function">total∧dec⇒dec</a> <a id="2049" href="Relation.Binary.Consequences.html#2049" class="Bound">refl</a> <a id="2054" href="Relation.Binary.Consequences.html#2054" class="Bound">antisym</a> <a id="2062" href="Relation.Binary.Consequences.html#2062" class="Bound">total</a> <a id="2068" href="Relation.Binary.Consequences.html#2068" class="Bound Operator">_≟_</a> <a id="2072" href="Relation.Binary.Consequences.html#2072" class="Bound">x</a> <a id="2074" href="Relation.Binary.Consequences.html#2074" class="Bound">y</a> <a id="2076" class="Keyword">with</a> <a id="2081" href="Relation.Binary.Consequences.html#2062" class="Bound">total</a> <a id="2087" href="Relation.Binary.Consequences.html#2072" class="Bound">x</a> <a id="2089" href="Relation.Binary.Consequences.html#2074" class="Bound">y</a>
<a id="2093" class="Symbol">...</a> <a id="2097" class="Symbol">|</a> <a id="2099" href="Data.Sum.Base.html#784" class="InductiveConstructor">inj₁</a> <a id="2104" href="Relation.Binary.Consequences.html#2104" class="Bound">x≤y</a> <a id="2108" class="Symbol">=</a> <a id="2110" href="Relation.Nullary.html#1648" class="InductiveConstructor">yes</a> <a id="2114" href="Relation.Binary.Consequences.html#2104" class="Bound">x≤y</a>
<a id="2120" class="Symbol">...</a> <a id="2124" class="Symbol">|</a> <a id="2126" href="Data.Sum.Base.html#809" class="InductiveConstructor">inj₂</a> <a id="2131" href="Relation.Binary.Consequences.html#2131" class="Bound">y≤x</a> <a id="2135" class="Symbol">=</a> <a id="2137" href="Relation.Nullary.Decidable.Core.html#3636" class="Function">map</a> <a id="2142" class="Bound">refl</a> <a id="2147" class="Symbol">(</a><a id="2148" href="Function.Base.html#1554" class="Function">flip</a> <a id="2153" class="Bound">antisym</a> <a id="2161" href="Relation.Binary.Consequences.html#2131" class="Bound">y≤x</a><a id="2164" class="Symbol">)</a> <a id="2166" class="Symbol">(</a><a id="2167" class="Bound">x</a> <a id="2169" class="Bound Operator"></a> <a id="2171" class="Bound">y</a><a id="2172" class="Symbol">)</a>
<a id="2175" class="Keyword">module</a> <a id="2182" href="Relation.Binary.Consequences.html#2182" class="Module">_</a> <a id="2184" class="Symbol">(</a><a id="2185" href="Relation.Binary.Consequences.html#2185" class="Bound">≈₁</a> <a id="2188" class="Symbol">:</a> <a id="2190" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="2194" href="Relation.Binary.Consequences.html#855" class="Generalizable">A</a> <a id="2196" href="Relation.Binary.Consequences.html#829" class="Generalizable">ℓ₁</a><a id="2198" class="Symbol">)</a> <a id="2200" class="Symbol">(</a><a id="2201" href="Relation.Binary.Consequences.html#2201" class="Bound">≈₂</a> <a id="2204" class="Symbol">:</a> <a id="2206" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="2210" href="Relation.Binary.Consequences.html#857" class="Generalizable">B</a> <a id="2212" href="Relation.Binary.Consequences.html#832" class="Generalizable">ℓ₂</a><a id="2214" class="Symbol">)</a> <a id="2216" class="Symbol">{</a><a id="2217" href="Relation.Binary.Consequences.html#2217" class="Bound">≤₁</a> <a id="2220" class="Symbol">:</a> <a id="2222" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="2226" href="Relation.Binary.Consequences.html#855" class="Generalizable">A</a> <a id="2228" href="Relation.Binary.Consequences.html#835" class="Generalizable">ℓ₃</a><a id="2230" class="Symbol">}</a> <a id="2232" class="Symbol">{</a><a id="2233" href="Relation.Binary.Consequences.html#2233" class="Bound">≤₂</a> <a id="2236" class="Symbol">:</a> <a id="2238" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="2242" href="Relation.Binary.Consequences.html#857" class="Generalizable">B</a> <a id="2244" href="Relation.Binary.Consequences.html#838" class="Generalizable">ℓ₄</a><a id="2246" class="Symbol">}</a> <a id="2248" class="Keyword">where</a>
<a id="2257" href="Relation.Binary.Consequences.html#2257" class="Function">mono⇒cong</a> <a id="2267" class="Symbol">:</a> <a id="2269" href="Relation.Binary.Definitions.html#1498" class="Function">Symmetric</a> <a id="2279" href="Relation.Binary.Consequences.html#2185" class="Bound">≈₁</a> <a id="2282" class="Symbol"></a> <a id="2284" href="Relation.Binary.Consequences.html#2185" class="Bound">≈₁</a> <a id="2287" href="Relation.Binary.Core.html#1254" class="Function Operator"></a> <a id="2289" href="Relation.Binary.Consequences.html#2217" class="Bound">≤₁</a> <a id="2292" class="Symbol"></a> <a id="2294" href="Relation.Binary.Definitions.html#2082" class="Function">Antisymmetric</a> <a id="2308" href="Relation.Binary.Consequences.html#2201" class="Bound">≈₂</a> <a id="2311" href="Relation.Binary.Consequences.html#2233" class="Bound">≤₂</a> <a id="2314" class="Symbol"></a>
<a id="2330" class="Symbol"></a> <a id="2332" class="Symbol">{</a><a id="2333" href="Relation.Binary.Consequences.html#2333" class="Bound">f</a><a id="2334" class="Symbol">}</a> <a id="2336" class="Symbol"></a> <a id="2338" href="Relation.Binary.Consequences.html#2333" class="Bound">f</a> <a id="2340" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="2350" href="Relation.Binary.Consequences.html#2217" class="Bound">≤₁</a> <a id="2353" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="2355" href="Relation.Binary.Consequences.html#2233" class="Bound">≤₂</a> <a id="2358" class="Symbol"></a> <a id="2360" href="Relation.Binary.Consequences.html#2333" class="Bound">f</a> <a id="2362" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="2372" href="Relation.Binary.Consequences.html#2185" class="Bound">≈₁</a> <a id="2375" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="2377" href="Relation.Binary.Consequences.html#2201" class="Bound">≈₂</a>
<a id="2382" href="Relation.Binary.Consequences.html#2257" class="Function">mono⇒cong</a> <a id="2392" href="Relation.Binary.Consequences.html#2392" class="Bound">sym</a> <a id="2396" href="Relation.Binary.Consequences.html#2396" class="Bound">reflexive</a> <a id="2406" href="Relation.Binary.Consequences.html#2406" class="Bound">antisym</a> <a id="2414" href="Relation.Binary.Consequences.html#2414" class="Bound">mono</a> <a id="2419" href="Relation.Binary.Consequences.html#2419" class="Bound">x≈y</a> <a id="2423" class="Symbol">=</a> <a id="2425" href="Relation.Binary.Consequences.html#2406" class="Bound">antisym</a>
<a id="2437" class="Symbol">(</a><a id="2438" href="Relation.Binary.Consequences.html#2414" class="Bound">mono</a> <a id="2443" class="Symbol">(</a><a id="2444" href="Relation.Binary.Consequences.html#2396" class="Bound">reflexive</a> <a id="2454" href="Relation.Binary.Consequences.html#2419" class="Bound">x≈y</a><a id="2457" class="Symbol">))</a>
<a id="2464" class="Symbol">(</a><a id="2465" href="Relation.Binary.Consequences.html#2414" class="Bound">mono</a> <a id="2470" class="Symbol">(</a><a id="2471" href="Relation.Binary.Consequences.html#2396" class="Bound">reflexive</a> <a id="2481" class="Symbol">(</a><a id="2482" href="Relation.Binary.Consequences.html#2392" class="Bound">sym</a> <a id="2486" href="Relation.Binary.Consequences.html#2419" class="Bound">x≈y</a><a id="2489" class="Symbol">)))</a>
<a id="2496" href="Relation.Binary.Consequences.html#2496" class="Function">antimono⇒cong</a> <a id="2510" class="Symbol">:</a> <a id="2512" href="Relation.Binary.Definitions.html#1498" class="Function">Symmetric</a> <a id="2522" href="Relation.Binary.Consequences.html#2185" class="Bound">≈₁</a> <a id="2525" class="Symbol"></a> <a id="2527" href="Relation.Binary.Consequences.html#2185" class="Bound">≈₁</a> <a id="2530" href="Relation.Binary.Core.html#1254" class="Function Operator"></a> <a id="2532" href="Relation.Binary.Consequences.html#2217" class="Bound">≤₁</a> <a id="2535" class="Symbol"></a> <a id="2537" href="Relation.Binary.Definitions.html#2082" class="Function">Antisymmetric</a> <a id="2551" href="Relation.Binary.Consequences.html#2201" class="Bound">≈₂</a> <a id="2554" href="Relation.Binary.Consequences.html#2233" class="Bound">≤₂</a> <a id="2557" class="Symbol"></a>
<a id="2577" class="Symbol"></a> <a id="2579" class="Symbol">{</a><a id="2580" href="Relation.Binary.Consequences.html#2580" class="Bound">f</a><a id="2581" class="Symbol">}</a> <a id="2583" class="Symbol"></a> <a id="2585" href="Relation.Binary.Consequences.html#2580" class="Bound">f</a> <a id="2587" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="2597" href="Relation.Binary.Consequences.html#2217" class="Bound">≤₁</a> <a id="2600" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="2602" class="Symbol">(</a><a id="2603" href="Function.Base.html#1554" class="Function">flip</a> <a id="2608" href="Relation.Binary.Consequences.html#2233" class="Bound">≤₂</a><a id="2610" class="Symbol">)</a> <a id="2612" class="Symbol"></a> <a id="2614" href="Relation.Binary.Consequences.html#2580" class="Bound">f</a> <a id="2616" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="2626" href="Relation.Binary.Consequences.html#2185" class="Bound">≈₁</a> <a id="2629" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="2631" href="Relation.Binary.Consequences.html#2201" class="Bound">≈₂</a>
<a id="2636" href="Relation.Binary.Consequences.html#2496" class="Function">antimono⇒cong</a> <a id="2650" href="Relation.Binary.Consequences.html#2650" class="Bound">sym</a> <a id="2654" href="Relation.Binary.Consequences.html#2654" class="Bound">reflexive</a> <a id="2664" href="Relation.Binary.Consequences.html#2664" class="Bound">antisym</a> <a id="2672" href="Relation.Binary.Consequences.html#2672" class="Bound">antimono</a> <a id="2681" href="Relation.Binary.Consequences.html#2681" class="Bound">p≈q</a> <a id="2685" class="Symbol">=</a> <a id="2687" href="Relation.Binary.Consequences.html#2664" class="Bound">antisym</a>
<a id="2699" class="Symbol">(</a><a id="2700" href="Relation.Binary.Consequences.html#2672" class="Bound">antimono</a> <a id="2709" class="Symbol">(</a><a id="2710" href="Relation.Binary.Consequences.html#2654" class="Bound">reflexive</a> <a id="2720" class="Symbol">(</a><a id="2721" href="Relation.Binary.Consequences.html#2650" class="Bound">sym</a> <a id="2725" href="Relation.Binary.Consequences.html#2681" class="Bound">p≈q</a><a id="2728" class="Symbol">)))</a>
<a id="2736" class="Symbol">(</a><a id="2737" href="Relation.Binary.Consequences.html#2672" class="Bound">antimono</a> <a id="2746" class="Symbol">(</a><a id="2747" href="Relation.Binary.Consequences.html#2654" class="Bound">reflexive</a> <a id="2757" href="Relation.Binary.Consequences.html#2681" class="Bound">p≈q</a><a id="2760" class="Symbol">))</a>
<a id="2764" class="Comment">------------------------------------------------------------------------</a>
<a id="2837" class="Comment">-- Proofs for strict orders</a>
<a id="2866" class="Keyword">module</a> <a id="2873" href="Relation.Binary.Consequences.html#2873" class="Module">_</a> <a id="2875" class="Symbol">{</a><a id="2876" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a> <a id="2880" class="Symbol">:</a> <a id="2882" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="2886" href="Relation.Binary.Consequences.html#855" class="Generalizable">A</a> <a id="2888" href="Relation.Binary.Consequences.html#829" class="Generalizable">ℓ₁</a><a id="2890" class="Symbol">}</a> <a id="2892" class="Symbol">{</a><a id="2893" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a> <a id="2897" class="Symbol">:</a> <a id="2899" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="2903" href="Relation.Binary.Consequences.html#855" class="Generalizable">A</a> <a id="2905" href="Relation.Binary.Consequences.html#832" class="Generalizable">ℓ₂</a><a id="2907" class="Symbol">}</a> <a id="2909" class="Keyword">where</a>
<a id="2918" href="Relation.Binary.Consequences.html#2918" class="Function">trans∧irr⇒asym</a> <a id="2933" class="Symbol">:</a> <a id="2935" href="Relation.Binary.Definitions.html#1339" class="Function">Reflexive</a> <a id="2945" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a> <a id="2949" class="Symbol"></a> <a id="2951" href="Relation.Binary.Definitions.html#1866" class="Function">Transitive</a> <a id="2962" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a> <a id="2966" class="Symbol"></a>
<a id="2987" href="Relation.Binary.Definitions.html#2241" class="Function">Irreflexive</a> <a id="2999" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a> <a id="3003" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a> <a id="3007" class="Symbol"></a> <a id="3009" href="Relation.Binary.Definitions.html#2353" class="Function">Asymmetric</a> <a id="3020" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a>
<a id="3026" href="Relation.Binary.Consequences.html#2918" class="Function">trans∧irr⇒asym</a> <a id="3041" href="Relation.Binary.Consequences.html#3041" class="Bound">refl</a> <a id="3046" href="Relation.Binary.Consequences.html#3046" class="Bound">trans</a> <a id="3052" href="Relation.Binary.Consequences.html#3052" class="Bound">irrefl</a> <a id="3059" href="Relation.Binary.Consequences.html#3059" class="Bound">x&lt;y</a> <a id="3063" href="Relation.Binary.Consequences.html#3063" class="Bound">y&lt;x</a> <a id="3067" class="Symbol">=</a>
<a id="3073" href="Relation.Binary.Consequences.html#3052" class="Bound">irrefl</a> <a id="3080" href="Relation.Binary.Consequences.html#3041" class="Bound">refl</a> <a id="3085" class="Symbol">(</a><a id="3086" href="Relation.Binary.Consequences.html#3046" class="Bound">trans</a> <a id="3092" href="Relation.Binary.Consequences.html#3059" class="Bound">x&lt;y</a> <a id="3096" href="Relation.Binary.Consequences.html#3063" class="Bound">y&lt;x</a><a id="3099" class="Symbol">)</a>
<a id="3104" href="Relation.Binary.Consequences.html#3104" class="Function">irr∧antisym⇒asym</a> <a id="3121" class="Symbol">:</a> <a id="3123" href="Relation.Binary.Definitions.html#2241" class="Function">Irreflexive</a> <a id="3135" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a> <a id="3139" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a> <a id="3143" class="Symbol"></a> <a id="3145" href="Relation.Binary.Definitions.html#2082" class="Function">Antisymmetric</a> <a id="3159" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a> <a id="3163" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a> <a id="3167" class="Symbol"></a>
<a id="3190" href="Relation.Binary.Definitions.html#2353" class="Function">Asymmetric</a> <a id="3201" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a>
<a id="3207" href="Relation.Binary.Consequences.html#3104" class="Function">irr∧antisym⇒asym</a> <a id="3224" href="Relation.Binary.Consequences.html#3224" class="Bound">irrefl</a> <a id="3231" href="Relation.Binary.Consequences.html#3231" class="Bound">antisym</a> <a id="3239" href="Relation.Binary.Consequences.html#3239" class="Bound">x&lt;y</a> <a id="3243" href="Relation.Binary.Consequences.html#3243" class="Bound">y&lt;x</a> <a id="3247" class="Symbol">=</a>
<a id="3253" href="Relation.Binary.Consequences.html#3224" class="Bound">irrefl</a> <a id="3260" class="Symbol">(</a><a id="3261" href="Relation.Binary.Consequences.html#3231" class="Bound">antisym</a> <a id="3269" href="Relation.Binary.Consequences.html#3239" class="Bound">x&lt;y</a> <a id="3273" href="Relation.Binary.Consequences.html#3243" class="Bound">y&lt;x</a><a id="3276" class="Symbol">)</a> <a id="3278" href="Relation.Binary.Consequences.html#3239" class="Bound">x&lt;y</a>
<a id="3285" href="Relation.Binary.Consequences.html#3285" class="Function">asym⇒antisym</a> <a id="3298" class="Symbol">:</a> <a id="3300" href="Relation.Binary.Definitions.html#2353" class="Function">Asymmetric</a> <a id="3311" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a> <a id="3315" class="Symbol"></a> <a id="3317" href="Relation.Binary.Definitions.html#2082" class="Function">Antisymmetric</a> <a id="3331" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a> <a id="3335" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a>
<a id="3341" href="Relation.Binary.Consequences.html#3285" class="Function">asym⇒antisym</a> <a id="3354" href="Relation.Binary.Consequences.html#3354" class="Bound">asym</a> <a id="3359" href="Relation.Binary.Consequences.html#3359" class="Bound">x&lt;y</a> <a id="3363" href="Relation.Binary.Consequences.html#3363" class="Bound">y&lt;x</a> <a id="3367" class="Symbol">=</a> <a id="3369" href="Data.Empty.Irrelevant.html#327" class="Function">⊥-elim</a> <a id="3376" class="Symbol">(</a><a id="3377" href="Relation.Binary.Consequences.html#3354" class="Bound">asym</a> <a id="3382" href="Relation.Binary.Consequences.html#3359" class="Bound">x&lt;y</a> <a id="3386" href="Relation.Binary.Consequences.html#3363" class="Bound">y&lt;x</a><a id="3389" class="Symbol">)</a>
<a id="3394" href="Relation.Binary.Consequences.html#3394" class="Function">asym⇒irr</a> <a id="3403" class="Symbol">:</a> <a id="3405" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a> <a id="3409" href="Relation.Binary.Definitions.html#4077" class="Function Operator">Respects₂</a> <a id="3419" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a> <a id="3423" class="Symbol"></a> <a id="3425" href="Relation.Binary.Definitions.html#1498" class="Function">Symmetric</a> <a id="3435" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a> <a id="3439" class="Symbol"></a>
<a id="3454" href="Relation.Binary.Definitions.html#2353" class="Function">Asymmetric</a> <a id="3465" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a> <a id="3469" class="Symbol"></a> <a id="3471" href="Relation.Binary.Definitions.html#2241" class="Function">Irreflexive</a> <a id="3483" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a> <a id="3487" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a>
<a id="3493" href="Relation.Binary.Consequences.html#3394" class="Function">asym⇒irr</a> <a id="3502" class="Symbol">(</a><a id="3503" href="Relation.Binary.Consequences.html#3503" class="Bound">respʳ</a> <a id="3509" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="3511" href="Relation.Binary.Consequences.html#3511" class="Bound">respˡ</a><a id="3516" class="Symbol">)</a> <a id="3518" href="Relation.Binary.Consequences.html#3518" class="Bound">sym</a> <a id="3522" href="Relation.Binary.Consequences.html#3522" class="Bound">asym</a> <a id="3527" class="Symbol">{</a><a id="3528" href="Relation.Binary.Consequences.html#3528" class="Bound">x</a><a id="3529" class="Symbol">}</a> <a id="3531" class="Symbol">{</a><a id="3532" href="Relation.Binary.Consequences.html#3532" class="Bound">y</a><a id="3533" class="Symbol">}</a> <a id="3535" href="Relation.Binary.Consequences.html#3535" class="Bound">x≈y</a> <a id="3539" href="Relation.Binary.Consequences.html#3539" class="Bound">x&lt;y</a> <a id="3543" class="Symbol">=</a>
<a id="3549" href="Relation.Binary.Consequences.html#3522" class="Bound">asym</a> <a id="3554" href="Relation.Binary.Consequences.html#3539" class="Bound">x&lt;y</a> <a id="3558" class="Symbol">(</a><a id="3559" href="Relation.Binary.Consequences.html#3503" class="Bound">respʳ</a> <a id="3565" class="Symbol">(</a><a id="3566" href="Relation.Binary.Consequences.html#3518" class="Bound">sym</a> <a id="3570" href="Relation.Binary.Consequences.html#3535" class="Bound">x≈y</a><a id="3573" class="Symbol">)</a> <a id="3575" class="Symbol">(</a><a id="3576" href="Relation.Binary.Consequences.html#3511" class="Bound">respˡ</a> <a id="3582" href="Relation.Binary.Consequences.html#3535" class="Bound">x≈y</a> <a id="3586" href="Relation.Binary.Consequences.html#3539" class="Bound">x&lt;y</a><a id="3589" class="Symbol">))</a>
<a id="3595" href="Relation.Binary.Consequences.html#3595" class="Function">tri⇒asym</a> <a id="3604" class="Symbol">:</a> <a id="3606" href="Relation.Binary.Definitions.html#2955" class="Function">Trichotomous</a> <a id="3619" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a> <a id="3623" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a> <a id="3627" class="Symbol"></a> <a id="3629" href="Relation.Binary.Definitions.html#2353" class="Function">Asymmetric</a> <a id="3640" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a>
<a id="3646" href="Relation.Binary.Consequences.html#3595" class="Function">tri⇒asym</a> <a id="3655" href="Relation.Binary.Consequences.html#3655" class="Bound">tri</a> <a id="3659" class="Symbol">{</a><a id="3660" href="Relation.Binary.Consequences.html#3660" class="Bound">x</a><a id="3661" class="Symbol">}</a> <a id="3663" class="Symbol">{</a><a id="3664" href="Relation.Binary.Consequences.html#3664" class="Bound">y</a><a id="3665" class="Symbol">}</a> <a id="3667" href="Relation.Binary.Consequences.html#3667" class="Bound">x&lt;y</a> <a id="3671" href="Relation.Binary.Consequences.html#3671" class="Bound">x&gt;y</a> <a id="3675" class="Keyword">with</a> <a id="3680" href="Relation.Binary.Consequences.html#3655" class="Bound">tri</a> <a id="3684" href="Relation.Binary.Consequences.html#3660" class="Bound">x</a> <a id="3686" href="Relation.Binary.Consequences.html#3664" class="Bound">y</a>
<a id="3690" class="Symbol">...</a> <a id="3694" class="Symbol">|</a> <a id="3696" href="Relation.Binary.Definitions.html#2778" class="InductiveConstructor">tri&lt;</a> <a id="3701" class="Symbol">_</a> <a id="3705" class="Symbol">_</a> <a id="3707" href="Relation.Binary.Consequences.html#3707" class="Bound">x≯y</a> <a id="3711" class="Symbol">=</a> <a id="3713" href="Relation.Binary.Consequences.html#3707" class="Bound">x≯y</a> <a id="3717" class="Bound">x&gt;y</a>
<a id="3723" class="Symbol">...</a> <a id="3727" class="Symbol">|</a> <a id="3729" href="Relation.Binary.Definitions.html#2832" class="InductiveConstructor">tri≈</a> <a id="3734" class="Symbol">_</a> <a id="3738" class="Symbol">_</a> <a id="3740" href="Relation.Binary.Consequences.html#3740" class="Bound">x≯y</a> <a id="3744" class="Symbol">=</a> <a id="3746" href="Relation.Binary.Consequences.html#3740" class="Bound">x≯y</a> <a id="3750" class="Bound">x&gt;y</a>
<a id="3756" class="Symbol">...</a> <a id="3760" class="Symbol">|</a> <a id="3762" href="Relation.Binary.Definitions.html#2886" class="InductiveConstructor">tri&gt;</a> <a id="3767" href="Relation.Binary.Consequences.html#3767" class="Bound">x≮y</a> <a id="3771" class="Symbol">_</a> <a id="3773" class="Symbol">_</a> <a id="3777" class="Symbol">=</a> <a id="3779" href="Relation.Binary.Consequences.html#3767" class="Bound">x≮y</a> <a id="3783" class="Bound">x&lt;y</a>
<a id="3790" href="Relation.Binary.Consequences.html#3790" class="Function">tri⇒irr</a> <a id="3798" class="Symbol">:</a> <a id="3800" href="Relation.Binary.Definitions.html#2955" class="Function">Trichotomous</a> <a id="3813" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a> <a id="3817" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a> <a id="3821" class="Symbol"></a> <a id="3823" href="Relation.Binary.Definitions.html#2241" class="Function">Irreflexive</a> <a id="3835" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a> <a id="3839" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a>
<a id="3845" href="Relation.Binary.Consequences.html#3790" class="Function">tri⇒irr</a> <a id="3853" href="Relation.Binary.Consequences.html#3853" class="Bound">compare</a> <a id="3861" class="Symbol">{</a><a id="3862" href="Relation.Binary.Consequences.html#3862" class="Bound">x</a><a id="3863" class="Symbol">}</a> <a id="3865" class="Symbol">{</a><a id="3866" href="Relation.Binary.Consequences.html#3866" class="Bound">y</a><a id="3867" class="Symbol">}</a> <a id="3869" href="Relation.Binary.Consequences.html#3869" class="Bound">x≈y</a> <a id="3873" href="Relation.Binary.Consequences.html#3873" class="Bound">x&lt;y</a> <a id="3877" class="Keyword">with</a> <a id="3882" href="Relation.Binary.Consequences.html#3853" class="Bound">compare</a> <a id="3890" href="Relation.Binary.Consequences.html#3862" class="Bound">x</a> <a id="3892" href="Relation.Binary.Consequences.html#3866" class="Bound">y</a>
<a id="3896" class="Symbol">...</a> <a id="3900" class="Symbol">|</a> <a id="3902" href="Relation.Binary.Definitions.html#2778" class="InductiveConstructor">tri&lt;</a> <a id="3907" class="Symbol">_</a> <a id="3911" href="Relation.Binary.Consequences.html#3911" class="Bound">x≉y</a> <a id="3915" href="Relation.Binary.Consequences.html#3915" class="Bound">y≮x</a> <a id="3919" class="Symbol">=</a> <a id="3921" href="Relation.Binary.Consequences.html#3911" class="Bound">x≉y</a> <a id="3925" class="Bound">x≈y</a>
<a id="3931" class="Symbol">...</a> <a id="3935" class="Symbol">|</a> <a id="3937" href="Relation.Binary.Definitions.html#2886" class="InductiveConstructor">tri&gt;</a> <a id="3942" href="Relation.Binary.Consequences.html#3942" class="Bound">x≮y</a> <a id="3946" href="Relation.Binary.Consequences.html#3946" class="Bound">x≉y</a> <a id="3950" href="Relation.Binary.Consequences.html#3950" class="Bound">y&lt;x</a> <a id="3954" class="Symbol">=</a> <a id="3956" href="Relation.Binary.Consequences.html#3946" class="Bound">x≉y</a> <a id="3960" class="Bound">x≈y</a>
<a id="3966" class="Symbol">...</a> <a id="3970" class="Symbol">|</a> <a id="3972" href="Relation.Binary.Definitions.html#2832" class="InductiveConstructor">tri≈</a> <a id="3977" href="Relation.Binary.Consequences.html#3977" class="Bound">x≮y</a> <a id="3981" class="Symbol">_</a> <a id="3985" href="Relation.Binary.Consequences.html#3985" class="Bound">y≮x</a> <a id="3989" class="Symbol">=</a> <a id="3991" href="Relation.Binary.Consequences.html#3977" class="Bound">x≮y</a> <a id="3995" class="Bound">x&lt;y</a>
<a id="4002" href="Relation.Binary.Consequences.html#4002" class="Function">tri⇒dec≈</a> <a id="4011" class="Symbol">:</a> <a id="4013" href="Relation.Binary.Definitions.html#2955" class="Function">Trichotomous</a> <a id="4026" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a> <a id="4030" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a> <a id="4034" class="Symbol"></a> <a id="4036" href="Relation.Binary.Definitions.html#4575" class="Function">Decidable</a> <a id="4046" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a>
<a id="4052" href="Relation.Binary.Consequences.html#4002" class="Function">tri⇒dec≈</a> <a id="4061" href="Relation.Binary.Consequences.html#4061" class="Bound">compare</a> <a id="4069" href="Relation.Binary.Consequences.html#4069" class="Bound">x</a> <a id="4071" href="Relation.Binary.Consequences.html#4071" class="Bound">y</a> <a id="4073" class="Keyword">with</a> <a id="4078" href="Relation.Binary.Consequences.html#4061" class="Bound">compare</a> <a id="4086" href="Relation.Binary.Consequences.html#4069" class="Bound">x</a> <a id="4088" href="Relation.Binary.Consequences.html#4071" class="Bound">y</a>
<a id="4092" class="Symbol">...</a> <a id="4096" class="Symbol">|</a> <a id="4098" href="Relation.Binary.Definitions.html#2778" class="InductiveConstructor">tri&lt;</a> <a id="4103" class="Symbol">_</a> <a id="4105" href="Relation.Binary.Consequences.html#4105" class="Bound">x≉y</a> <a id="4109" class="Symbol">_</a> <a id="4111" class="Symbol">=</a> <a id="4113" href="Relation.Nullary.html#1685" class="InductiveConstructor">no</a> <a id="4117" href="Relation.Binary.Consequences.html#4105" class="Bound">x≉y</a>
<a id="4123" class="Symbol">...</a> <a id="4127" class="Symbol">|</a> <a id="4129" href="Relation.Binary.Definitions.html#2832" class="InductiveConstructor">tri≈</a> <a id="4134" class="Symbol">_</a> <a id="4136" href="Relation.Binary.Consequences.html#4136" class="Bound">x≈y</a> <a id="4140" class="Symbol">_</a> <a id="4142" class="Symbol">=</a> <a id="4144" href="Relation.Nullary.html#1648" class="InductiveConstructor">yes</a> <a id="4148" href="Relation.Binary.Consequences.html#4136" class="Bound">x≈y</a>
<a id="4154" class="Symbol">...</a> <a id="4158" class="Symbol">|</a> <a id="4160" href="Relation.Binary.Definitions.html#2886" class="InductiveConstructor">tri&gt;</a> <a id="4165" class="Symbol">_</a> <a id="4167" href="Relation.Binary.Consequences.html#4167" class="Bound">x≉y</a> <a id="4171" class="Symbol">_</a> <a id="4173" class="Symbol">=</a> <a id="4175" href="Relation.Nullary.html#1685" class="InductiveConstructor">no</a> <a id="4179" href="Relation.Binary.Consequences.html#4167" class="Bound">x≉y</a>
<a id="4186" href="Relation.Binary.Consequences.html#4186" class="Function">tri⇒dec&lt;</a> <a id="4195" class="Symbol">:</a> <a id="4197" href="Relation.Binary.Definitions.html#2955" class="Function">Trichotomous</a> <a id="4210" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a> <a id="4214" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a> <a id="4218" class="Symbol"></a> <a id="4220" href="Relation.Binary.Definitions.html#4575" class="Function">Decidable</a> <a id="4230" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a>
<a id="4236" href="Relation.Binary.Consequences.html#4186" class="Function">tri⇒dec&lt;</a> <a id="4245" href="Relation.Binary.Consequences.html#4245" class="Bound">compare</a> <a id="4253" href="Relation.Binary.Consequences.html#4253" class="Bound">x</a> <a id="4255" href="Relation.Binary.Consequences.html#4255" class="Bound">y</a> <a id="4257" class="Keyword">with</a> <a id="4262" href="Relation.Binary.Consequences.html#4245" class="Bound">compare</a> <a id="4270" href="Relation.Binary.Consequences.html#4253" class="Bound">x</a> <a id="4272" href="Relation.Binary.Consequences.html#4255" class="Bound">y</a>
<a id="4276" class="Symbol">...</a> <a id="4280" class="Symbol">|</a> <a id="4282" href="Relation.Binary.Definitions.html#2778" class="InductiveConstructor">tri&lt;</a> <a id="4287" href="Relation.Binary.Consequences.html#4287" class="Bound">x&lt;y</a> <a id="4291" class="Symbol">_</a> <a id="4293" class="Symbol">_</a> <a id="4295" class="Symbol">=</a> <a id="4297" href="Relation.Nullary.html#1648" class="InductiveConstructor">yes</a> <a id="4301" href="Relation.Binary.Consequences.html#4287" class="Bound">x&lt;y</a>
<a id="4307" class="Symbol">...</a> <a id="4311" class="Symbol">|</a> <a id="4313" href="Relation.Binary.Definitions.html#2832" class="InductiveConstructor">tri≈</a> <a id="4318" href="Relation.Binary.Consequences.html#4318" class="Bound">x≮y</a> <a id="4322" class="Symbol">_</a> <a id="4324" class="Symbol">_</a> <a id="4326" class="Symbol">=</a> <a id="4328" href="Relation.Nullary.html#1685" class="InductiveConstructor">no</a> <a id="4332" href="Relation.Binary.Consequences.html#4318" class="Bound">x≮y</a>
<a id="4338" class="Symbol">...</a> <a id="4342" class="Symbol">|</a> <a id="4344" href="Relation.Binary.Definitions.html#2886" class="InductiveConstructor">tri&gt;</a> <a id="4349" href="Relation.Binary.Consequences.html#4349" class="Bound">x≮y</a> <a id="4353" class="Symbol">_</a> <a id="4355" class="Symbol">_</a> <a id="4357" class="Symbol">=</a> <a id="4359" href="Relation.Nullary.html#1685" class="InductiveConstructor">no</a> <a id="4363" href="Relation.Binary.Consequences.html#4349" class="Bound">x≮y</a>
<a id="4370" href="Relation.Binary.Consequences.html#4370" class="Function">trans∧tri⇒respʳ</a> <a id="4386" class="Symbol">:</a> <a id="4388" href="Relation.Binary.Definitions.html#1498" class="Function">Symmetric</a> <a id="4398" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a> <a id="4402" class="Symbol"></a> <a id="4404" href="Relation.Binary.Definitions.html#1866" class="Function">Transitive</a> <a id="4415" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a> <a id="4419" class="Symbol"></a>
<a id="4441" href="Relation.Binary.Definitions.html#1866" class="Function">Transitive</a> <a id="4452" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a> <a id="4456" class="Symbol"></a> <a id="4458" href="Relation.Binary.Definitions.html#2955" class="Function">Trichotomous</a> <a id="4471" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a> <a id="4475" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a> <a id="4479" class="Symbol"></a>
<a id="4501" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a> <a id="4505" href="Relation.Binary.Definitions.html#3749" class="Function Operator">Respectsʳ</a> <a id="4515" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a>
<a id="4521" href="Relation.Binary.Consequences.html#4370" class="Function">trans∧tri⇒respʳ</a> <a id="4537" href="Relation.Binary.Consequences.html#4537" class="Bound">sym</a> <a id="4541" href="Relation.Binary.Consequences.html#4541" class="Bound">≈-tr</a> <a id="4546" href="Relation.Binary.Consequences.html#4546" class="Bound">&lt;-tr</a> <a id="4551" href="Relation.Binary.Consequences.html#4551" class="Bound">tri</a> <a id="4555" class="Symbol">{</a><a id="4556" href="Relation.Binary.Consequences.html#4556" class="Bound">x</a><a id="4557" class="Symbol">}</a> <a id="4559" class="Symbol">{</a><a id="4560" href="Relation.Binary.Consequences.html#4560" class="Bound">y</a><a id="4561" class="Symbol">}</a> <a id="4563" class="Symbol">{</a><a id="4564" href="Relation.Binary.Consequences.html#4564" class="Bound">z</a><a id="4565" class="Symbol">}</a> <a id="4567" href="Relation.Binary.Consequences.html#4567" class="Bound">y≈z</a> <a id="4571" href="Relation.Binary.Consequences.html#4571" class="Bound">x&lt;y</a> <a id="4575" class="Keyword">with</a> <a id="4580" href="Relation.Binary.Consequences.html#4551" class="Bound">tri</a> <a id="4584" href="Relation.Binary.Consequences.html#4556" class="Bound">x</a> <a id="4586" href="Relation.Binary.Consequences.html#4564" class="Bound">z</a>
<a id="4590" class="Symbol">...</a> <a id="4594" class="Symbol">|</a> <a id="4596" href="Relation.Binary.Definitions.html#2778" class="InductiveConstructor">tri&lt;</a> <a id="4601" href="Relation.Binary.Consequences.html#4601" class="Bound">x&lt;z</a> <a id="4605" class="Symbol">_</a> <a id="4607" class="Symbol">_</a> <a id="4609" class="Symbol">=</a> <a id="4611" href="Relation.Binary.Consequences.html#4601" class="Bound">x&lt;z</a>
<a id="4617" class="Symbol">...</a> <a id="4621" class="Symbol">|</a> <a id="4623" href="Relation.Binary.Definitions.html#2832" class="InductiveConstructor">tri≈</a> <a id="4628" class="Symbol">_</a> <a id="4630" href="Relation.Binary.Consequences.html#4630" class="Bound">x≈z</a> <a id="4634" class="Symbol">_</a> <a id="4636" class="Symbol">=</a> <a id="4638" href="Data.Empty.Irrelevant.html#327" class="Function">⊥-elim</a> <a id="4645" class="Symbol">(</a><a id="4646" href="Relation.Binary.Consequences.html#3790" class="Function">tri⇒irr</a> <a id="4654" class="Bound">tri</a> <a id="4658" class="Symbol">(</a><a id="4659" class="Bound">≈-tr</a> <a id="4664" href="Relation.Binary.Consequences.html#4630" class="Bound">x≈z</a> <a id="4668" class="Symbol">(</a><a id="4669" class="Bound">sym</a> <a id="4673" class="Bound">y≈z</a><a id="4676" class="Symbol">))</a> <a id="4679" class="Bound">x&lt;y</a><a id="4682" class="Symbol">)</a>
<a id="4686" class="Symbol">...</a> <a id="4690" class="Symbol">|</a> <a id="4692" href="Relation.Binary.Definitions.html#2886" class="InductiveConstructor">tri&gt;</a> <a id="4697" class="Symbol">_</a> <a id="4699" class="Symbol">_</a> <a id="4701" href="Relation.Binary.Consequences.html#4701" class="Bound">z&lt;x</a> <a id="4705" class="Symbol">=</a> <a id="4707" href="Data.Empty.Irrelevant.html#327" class="Function">⊥-elim</a> <a id="4714" class="Symbol">(</a><a id="4715" href="Relation.Binary.Consequences.html#3790" class="Function">tri⇒irr</a> <a id="4723" class="Bound">tri</a> <a id="4727" class="Symbol">(</a><a id="4728" class="Bound">sym</a> <a id="4732" class="Bound">y≈z</a><a id="4735" class="Symbol">)</a> <a id="4737" class="Symbol">(</a><a id="4738" class="Bound">&lt;-tr</a> <a id="4743" href="Relation.Binary.Consequences.html#4701" class="Bound">z&lt;x</a> <a id="4747" class="Bound">x&lt;y</a><a id="4750" class="Symbol">))</a>
<a id="4756" href="Relation.Binary.Consequences.html#4756" class="Function">trans∧tri⇒respˡ</a> <a id="4772" class="Symbol">:</a> <a id="4774" href="Relation.Binary.Definitions.html#1866" class="Function">Transitive</a> <a id="4785" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a> <a id="4789" class="Symbol"></a>
<a id="4811" href="Relation.Binary.Definitions.html#1866" class="Function">Transitive</a> <a id="4822" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a> <a id="4826" class="Symbol"></a> <a id="4828" href="Relation.Binary.Definitions.html#2955" class="Function">Trichotomous</a> <a id="4841" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a> <a id="4845" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a> <a id="4849" class="Symbol"></a>
<a id="4871" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a> <a id="4875" href="Relation.Binary.Definitions.html#3914" class="Function Operator">Respectsˡ</a> <a id="4885" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a>
<a id="4891" href="Relation.Binary.Consequences.html#4756" class="Function">trans∧tri⇒respˡ</a> <a id="4907" href="Relation.Binary.Consequences.html#4907" class="Bound">≈-tr</a> <a id="4912" href="Relation.Binary.Consequences.html#4912" class="Bound">&lt;-tr</a> <a id="4917" href="Relation.Binary.Consequences.html#4917" class="Bound">tri</a> <a id="4921" class="Symbol">{</a><a id="4922" href="Relation.Binary.Consequences.html#4922" class="Bound">z</a><a id="4923" class="Symbol">}</a> <a id="4925" class="Symbol">{_}</a> <a id="4929" class="Symbol">{</a><a id="4930" href="Relation.Binary.Consequences.html#4930" class="Bound">y</a><a id="4931" class="Symbol">}</a> <a id="4933" href="Relation.Binary.Consequences.html#4933" class="Bound">x≈y</a> <a id="4937" href="Relation.Binary.Consequences.html#4937" class="Bound">x&lt;z</a> <a id="4941" class="Keyword">with</a> <a id="4946" href="Relation.Binary.Consequences.html#4917" class="Bound">tri</a> <a id="4950" href="Relation.Binary.Consequences.html#4930" class="Bound">y</a> <a id="4952" href="Relation.Binary.Consequences.html#4922" class="Bound">z</a>
<a id="4956" class="Symbol">...</a> <a id="4960" class="Symbol">|</a> <a id="4962" href="Relation.Binary.Definitions.html#2778" class="InductiveConstructor">tri&lt;</a> <a id="4967" href="Relation.Binary.Consequences.html#4967" class="Bound">y&lt;z</a> <a id="4971" class="Symbol">_</a> <a id="4973" class="Symbol">_</a> <a id="4975" class="Symbol">=</a> <a id="4977" href="Relation.Binary.Consequences.html#4967" class="Bound">y&lt;z</a>
<a id="4983" class="Symbol">...</a> <a id="4987" class="Symbol">|</a> <a id="4989" href="Relation.Binary.Definitions.html#2832" class="InductiveConstructor">tri≈</a> <a id="4994" class="Symbol">_</a> <a id="4996" href="Relation.Binary.Consequences.html#4996" class="Bound">y≈z</a> <a id="5000" class="Symbol">_</a> <a id="5002" class="Symbol">=</a> <a id="5004" href="Data.Empty.Irrelevant.html#327" class="Function">⊥-elim</a> <a id="5011" class="Symbol">(</a><a id="5012" href="Relation.Binary.Consequences.html#3790" class="Function">tri⇒irr</a> <a id="5020" class="Bound">tri</a> <a id="5024" class="Symbol">(</a><a id="5025" class="Bound">≈-tr</a> <a id="5030" class="Bound">x≈y</a> <a id="5034" href="Relation.Binary.Consequences.html#4996" class="Bound">y≈z</a><a id="5037" class="Symbol">)</a> <a id="5039" class="Bound">x&lt;z</a><a id="5042" class="Symbol">)</a>
<a id="5046" class="Symbol">...</a> <a id="5050" class="Symbol">|</a> <a id="5052" href="Relation.Binary.Definitions.html#2886" class="InductiveConstructor">tri&gt;</a> <a id="5057" class="Symbol">_</a> <a id="5059" class="Symbol">_</a> <a id="5061" href="Relation.Binary.Consequences.html#5061" class="Bound">z&lt;y</a> <a id="5065" class="Symbol">=</a> <a id="5067" href="Data.Empty.Irrelevant.html#327" class="Function">⊥-elim</a> <a id="5074" class="Symbol">(</a><a id="5075" href="Relation.Binary.Consequences.html#3790" class="Function">tri⇒irr</a> <a id="5083" class="Bound">tri</a> <a id="5087" class="Bound">x≈y</a> <a id="5091" class="Symbol">(</a><a id="5092" class="Bound">&lt;-tr</a> <a id="5097" class="Bound">x&lt;z</a> <a id="5101" href="Relation.Binary.Consequences.html#5061" class="Bound">z&lt;y</a><a id="5104" class="Symbol">))</a>
<a id="5110" href="Relation.Binary.Consequences.html#5110" class="Function">trans∧tri⇒resp</a> <a id="5125" class="Symbol">:</a> <a id="5127" href="Relation.Binary.Definitions.html#1498" class="Function">Symmetric</a> <a id="5137" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a> <a id="5141" class="Symbol"></a> <a id="5143" href="Relation.Binary.Definitions.html#1866" class="Function">Transitive</a> <a id="5154" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a> <a id="5158" class="Symbol"></a>
<a id="5179" href="Relation.Binary.Definitions.html#1866" class="Function">Transitive</a> <a id="5190" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a> <a id="5194" class="Symbol"></a> <a id="5196" href="Relation.Binary.Definitions.html#2955" class="Function">Trichotomous</a> <a id="5209" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a> <a id="5213" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a> <a id="5217" class="Symbol"></a>
<a id="5238" href="Relation.Binary.Consequences.html#2893" class="Bound Operator">_&lt;_</a> <a id="5242" href="Relation.Binary.Definitions.html#4077" class="Function Operator">Respects₂</a> <a id="5252" href="Relation.Binary.Consequences.html#2876" class="Bound Operator">_≈_</a>
<a id="5258" href="Relation.Binary.Consequences.html#5110" class="Function">trans∧tri⇒resp</a> <a id="5273" href="Relation.Binary.Consequences.html#5273" class="Bound">sym</a> <a id="5277" href="Relation.Binary.Consequences.html#5277" class="Bound">≈-tr</a> <a id="5282" href="Relation.Binary.Consequences.html#5282" class="Bound">&lt;-tr</a> <a id="5287" href="Relation.Binary.Consequences.html#5287" class="Bound">tri</a> <a id="5291" class="Symbol">=</a>
<a id="5297" href="Relation.Binary.Consequences.html#4370" class="Function">trans∧tri⇒respʳ</a> <a id="5313" href="Relation.Binary.Consequences.html#5273" class="Bound">sym</a> <a id="5317" href="Relation.Binary.Consequences.html#5277" class="Bound">≈-tr</a> <a id="5322" href="Relation.Binary.Consequences.html#5282" class="Bound">&lt;-tr</a> <a id="5327" href="Relation.Binary.Consequences.html#5287" class="Bound">tri</a> <a id="5331" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a>
<a id="5337" href="Relation.Binary.Consequences.html#4756" class="Function">trans∧tri⇒respˡ</a> <a id="5353" href="Relation.Binary.Consequences.html#5277" class="Bound">≈-tr</a> <a id="5358" href="Relation.Binary.Consequences.html#5282" class="Bound">&lt;-tr</a> <a id="5363" href="Relation.Binary.Consequences.html#5287" class="Bound">tri</a>
<a id="5368" class="Comment">------------------------------------------------------------------------</a>
<a id="5441" class="Comment">-- Without Loss of Generality</a>
<a id="5472" class="Keyword">module</a> <a id="5479" href="Relation.Binary.Consequences.html#5479" class="Module">_</a> <a id="5482" class="Symbol">{</a><a id="5483" href="Relation.Binary.Consequences.html#5483" class="Bound Operator">_R_</a> <a id="5487" class="Symbol">:</a> <a id="5489" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="5493" href="Relation.Binary.Consequences.html#855" class="Generalizable">A</a> <a id="5495" href="Relation.Binary.Consequences.html#829" class="Generalizable">ℓ₁</a><a id="5497" class="Symbol">}</a> <a id="5499" class="Symbol">{</a><a id="5500" href="Relation.Binary.Consequences.html#5500" class="Bound">Q</a> <a id="5502" class="Symbol">:</a> <a id="5504" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="5508" href="Relation.Binary.Consequences.html#855" class="Generalizable">A</a> <a id="5510" href="Relation.Binary.Consequences.html#832" class="Generalizable">ℓ₂</a><a id="5512" class="Symbol">}</a> <a id="5514" class="Keyword">where</a>
<a id="5523" href="Relation.Binary.Consequences.html#5523" class="Function">wlog</a> <a id="5528" class="Symbol">:</a> <a id="5530" href="Relation.Binary.Definitions.html#2584" class="Function">Total</a> <a id="5536" href="Relation.Binary.Consequences.html#5483" class="Bound Operator">_R_</a> <a id="5540" class="Symbol"></a> <a id="5542" href="Relation.Binary.Definitions.html#1498" class="Function">Symmetric</a> <a id="5552" href="Relation.Binary.Consequences.html#5500" class="Bound">Q</a> <a id="5554" class="Symbol"></a>
<a id="5565" class="Symbol">(∀</a> <a id="5568" href="Relation.Binary.Consequences.html#5568" class="Bound">a</a> <a id="5570" href="Relation.Binary.Consequences.html#5570" class="Bound">b</a> <a id="5572" class="Symbol"></a> <a id="5574" href="Relation.Binary.Consequences.html#5568" class="Bound">a</a> <a id="5576" href="Relation.Binary.Consequences.html#5483" class="Bound Operator">R</a> <a id="5578" href="Relation.Binary.Consequences.html#5570" class="Bound">b</a> <a id="5580" class="Symbol"></a> <a id="5582" href="Relation.Binary.Consequences.html#5500" class="Bound">Q</a> <a id="5584" href="Relation.Binary.Consequences.html#5568" class="Bound">a</a> <a id="5586" href="Relation.Binary.Consequences.html#5570" class="Bound">b</a><a id="5587" class="Symbol">)</a> <a id="5589" class="Symbol"></a>
<a id="5600" class="Symbol"></a> <a id="5602" href="Relation.Binary.Consequences.html#5602" class="Bound">a</a> <a id="5604" href="Relation.Binary.Consequences.html#5604" class="Bound">b</a> <a id="5606" class="Symbol"></a> <a id="5608" href="Relation.Binary.Consequences.html#5500" class="Bound">Q</a> <a id="5610" href="Relation.Binary.Consequences.html#5602" class="Bound">a</a> <a id="5612" href="Relation.Binary.Consequences.html#5604" class="Bound">b</a>
<a id="5616" href="Relation.Binary.Consequences.html#5523" class="Function">wlog</a> <a id="5621" href="Relation.Binary.Consequences.html#5621" class="Bound">r-total</a> <a id="5629" href="Relation.Binary.Consequences.html#5629" class="Bound">q-sym</a> <a id="5635" href="Relation.Binary.Consequences.html#5635" class="Bound">prf</a> <a id="5639" href="Relation.Binary.Consequences.html#5639" class="Bound">a</a> <a id="5641" href="Relation.Binary.Consequences.html#5641" class="Bound">b</a> <a id="5643" class="Keyword">with</a> <a id="5648" href="Relation.Binary.Consequences.html#5621" class="Bound">r-total</a> <a id="5656" href="Relation.Binary.Consequences.html#5639" class="Bound">a</a> <a id="5658" href="Relation.Binary.Consequences.html#5641" class="Bound">b</a>
<a id="5662" class="Symbol">...</a> <a id="5666" class="Symbol">|</a> <a id="5668" href="Data.Sum.Base.html#784" class="InductiveConstructor">inj₁</a> <a id="5673" href="Relation.Binary.Consequences.html#5673" class="Bound">aRb</a> <a id="5677" class="Symbol">=</a> <a id="5679" class="Bound">prf</a> <a id="5683" class="Bound">a</a> <a id="5685" class="Bound">b</a> <a id="5687" href="Relation.Binary.Consequences.html#5673" class="Bound">aRb</a>
<a id="5693" class="Symbol">...</a> <a id="5697" class="Symbol">|</a> <a id="5699" href="Data.Sum.Base.html#809" class="InductiveConstructor">inj₂</a> <a id="5704" href="Relation.Binary.Consequences.html#5704" class="Bound">bRa</a> <a id="5708" class="Symbol">=</a> <a id="5710" class="Bound">q-sym</a> <a id="5716" class="Symbol">(</a><a id="5717" class="Bound">prf</a> <a id="5721" class="Bound">b</a> <a id="5723" class="Bound">a</a> <a id="5725" href="Relation.Binary.Consequences.html#5704" class="Bound">bRa</a><a id="5728" class="Symbol">)</a>
<a id="5731" class="Comment">------------------------------------------------------------------------</a>
<a id="5804" class="Comment">-- Other proofs</a>
<a id="5821" class="Keyword">module</a> <a id="5828" href="Relation.Binary.Consequences.html#5828" class="Module">_</a> <a id="5830" class="Symbol">{</a><a id="5831" href="Relation.Binary.Consequences.html#5831" class="Bound">R</a> <a id="5833" class="Symbol">:</a> <a id="5835" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="5839" href="Relation.Binary.Consequences.html#855" class="Generalizable">A</a> <a id="5841" href="Relation.Binary.Consequences.html#857" class="Generalizable">B</a> <a id="5843" href="Relation.Binary.Consequences.html#841" class="Generalizable">p</a><a id="5844" class="Symbol">}</a> <a id="5846" class="Keyword">where</a>
<a id="5855" href="Relation.Binary.Consequences.html#5855" class="Function">dec⇒weaklyDec</a> <a id="5869" class="Symbol">:</a> <a id="5871" href="Relation.Binary.Definitions.html#4575" class="Function">Decidable</a> <a id="5881" href="Relation.Binary.Consequences.html#5831" class="Bound">R</a> <a id="5883" class="Symbol"></a> <a id="5885" href="Relation.Binary.Definitions.html#4748" class="Function">WeaklyDecidable</a> <a id="5901" href="Relation.Binary.Consequences.html#5831" class="Bound">R</a>
<a id="5905" href="Relation.Binary.Consequences.html#5855" class="Function">dec⇒weaklyDec</a> <a id="5919" href="Relation.Binary.Consequences.html#5919" class="Bound">dec</a> <a id="5923" href="Relation.Binary.Consequences.html#5923" class="Bound">x</a> <a id="5925" href="Relation.Binary.Consequences.html#5925" class="Bound">y</a> <a id="5927" class="Symbol">=</a> <a id="5929" href="Data.Maybe.Base.html#1212" class="Function">decToMaybe</a> <a id="5940" class="Symbol">(</a><a id="5941" href="Relation.Binary.Consequences.html#5919" class="Bound">dec</a> <a id="5945" href="Relation.Binary.Consequences.html#5923" class="Bound">x</a> <a id="5947" href="Relation.Binary.Consequences.html#5925" class="Bound">y</a><a id="5948" class="Symbol">)</a>
<a id="5953" href="Relation.Binary.Consequences.html#5953" class="Function">dec⇒recomputable</a> <a id="5970" class="Symbol">:</a> <a id="5972" href="Relation.Binary.Definitions.html#4575" class="Function">Decidable</a> <a id="5982" href="Relation.Binary.Consequences.html#5831" class="Bound">R</a> <a id="5984" class="Symbol"></a> <a id="5986" href="Relation.Binary.Definitions.html#5226" class="Function">Recomputable</a> <a id="5999" href="Relation.Binary.Consequences.html#5831" class="Bound">R</a>
<a id="6003" href="Relation.Binary.Consequences.html#5953" class="Function">dec⇒recomputable</a> <a id="6020" href="Relation.Binary.Consequences.html#6020" class="Bound">dec</a> <a id="6024" class="Symbol">{</a><a id="6025" href="Relation.Binary.Consequences.html#6025" class="Bound">a</a><a id="6026" class="Symbol">}</a> <a id="6028" class="Symbol">{</a><a id="6029" href="Relation.Binary.Consequences.html#6029" class="Bound">b</a><a id="6030" class="Symbol">}</a> <a id="6032" class="Symbol">=</a> <a id="6034" href="Relation.Nullary.html#1838" class="Function">recompute</a> <a id="6044" href="Function.Base.html#1919" class="Function Operator">$</a> <a id="6046" href="Relation.Binary.Consequences.html#6020" class="Bound">dec</a> <a id="6050" href="Relation.Binary.Consequences.html#6025" class="Bound">a</a> <a id="6052" href="Relation.Binary.Consequences.html#6029" class="Bound">b</a>
<a id="6055" class="Keyword">module</a> <a id="6062" href="Relation.Binary.Consequences.html#6062" class="Module">_</a> <a id="6064" class="Symbol">{</a><a id="6065" href="Relation.Binary.Consequences.html#6065" class="Bound">R</a> <a id="6067" class="Symbol">:</a> <a id="6069" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="6073" href="Relation.Binary.Consequences.html#855" class="Generalizable">A</a> <a id="6075" href="Relation.Binary.Consequences.html#857" class="Generalizable">B</a> <a id="6077" href="Relation.Binary.Consequences.html#829" class="Generalizable">ℓ₁</a><a id="6079" class="Symbol">}</a> <a id="6081" class="Symbol">{</a><a id="6082" href="Relation.Binary.Consequences.html#6082" class="Bound">S</a> <a id="6084" class="Symbol">:</a> <a id="6086" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="6090" href="Relation.Binary.Consequences.html#855" class="Generalizable">A</a> <a id="6092" href="Relation.Binary.Consequences.html#857" class="Generalizable">B</a> <a id="6094" href="Relation.Binary.Consequences.html#832" class="Generalizable">ℓ₂</a><a id="6096" class="Symbol">}</a> <a id="6098" class="Keyword">where</a>
<a id="6107" href="Relation.Binary.Consequences.html#6107" class="Function">map-NonEmpty</a> <a id="6120" class="Symbol">:</a> <a id="6122" href="Relation.Binary.Consequences.html#6065" class="Bound">R</a> <a id="6124" href="Relation.Binary.Core.html#1254" class="Function Operator"></a> <a id="6126" href="Relation.Binary.Consequences.html#6082" class="Bound">S</a> <a id="6128" class="Symbol"></a> <a id="6130" href="Relation.Binary.Definitions.html#5487" class="Record">NonEmpty</a> <a id="6139" href="Relation.Binary.Consequences.html#6065" class="Bound">R</a> <a id="6141" class="Symbol"></a> <a id="6143" href="Relation.Binary.Definitions.html#5487" class="Record">NonEmpty</a> <a id="6152" href="Relation.Binary.Consequences.html#6082" class="Bound">S</a>
<a id="6156" href="Relation.Binary.Consequences.html#6107" class="Function">map-NonEmpty</a> <a id="6169" href="Relation.Binary.Consequences.html#6169" class="Bound">f</a> <a id="6171" href="Relation.Binary.Consequences.html#6171" class="Bound">x</a> <a id="6173" class="Symbol">=</a> <a id="6175" href="Relation.Binary.Definitions.html#5590" class="InductiveConstructor">nonEmpty</a> <a id="6184" class="Symbol">(</a><a id="6185" href="Relation.Binary.Consequences.html#6169" class="Bound">f</a> <a id="6187" class="Symbol">(</a><a id="6188" href="Relation.Binary.Definitions.html#5639" class="Field">NonEmpty.proof</a> <a id="6203" href="Relation.Binary.Consequences.html#6171" class="Bound">x</a><a id="6204" class="Symbol">))</a>
<a id="6208" class="Keyword">module</a> <a id="6215" href="Relation.Binary.Consequences.html#6215" class="Module">_</a> <a id="6217" class="Symbol">{</a><a id="6218" href="Relation.Binary.Consequences.html#6218" class="Bound">R</a> <a id="6220" class="Symbol">:</a> <a id="6222" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="6226" href="Relation.Binary.Consequences.html#855" class="Generalizable">A</a> <a id="6228" href="Relation.Binary.Consequences.html#857" class="Generalizable">B</a> <a id="6230" href="Relation.Binary.Consequences.html#829" class="Generalizable">ℓ₁</a><a id="6232" class="Symbol">}</a> <a id="6234" class="Symbol">{</a><a id="6235" href="Relation.Binary.Consequences.html#6235" class="Bound">S</a> <a id="6237" class="Symbol">:</a> <a id="6239" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="6243" href="Relation.Binary.Consequences.html#857" class="Generalizable">B</a> <a id="6245" href="Relation.Binary.Consequences.html#855" class="Generalizable">A</a> <a id="6247" href="Relation.Binary.Consequences.html#832" class="Generalizable">ℓ₂</a><a id="6249" class="Symbol">}</a> <a id="6251" class="Keyword">where</a>
<a id="6260" href="Relation.Binary.Consequences.html#6260" class="Function">flip-Connex</a> <a id="6272" class="Symbol">:</a> <a id="6274" href="Relation.Binary.Definitions.html#2493" class="Function">Connex</a> <a id="6281" href="Relation.Binary.Consequences.html#6218" class="Bound">R</a> <a id="6283" href="Relation.Binary.Consequences.html#6235" class="Bound">S</a> <a id="6285" class="Symbol"></a> <a id="6287" href="Relation.Binary.Definitions.html#2493" class="Function">Connex</a> <a id="6294" href="Relation.Binary.Consequences.html#6235" class="Bound">S</a> <a id="6296" href="Relation.Binary.Consequences.html#6218" class="Bound">R</a>
<a id="6300" href="Relation.Binary.Consequences.html#6260" class="Function">flip-Connex</a> <a id="6312" href="Relation.Binary.Consequences.html#6312" class="Bound">f</a> <a id="6314" href="Relation.Binary.Consequences.html#6314" class="Bound">x</a> <a id="6316" href="Relation.Binary.Consequences.html#6316" class="Bound">y</a> <a id="6318" class="Symbol">=</a> <a id="6320" href="Data.Sum.Base.html#1294" class="Function">Sum.swap</a> <a id="6329" class="Symbol">(</a><a id="6330" href="Relation.Binary.Consequences.html#6312" class="Bound">f</a> <a id="6332" href="Relation.Binary.Consequences.html#6316" class="Bound">y</a> <a id="6334" href="Relation.Binary.Consequences.html#6314" class="Bound">x</a><a id="6335" class="Symbol">)</a>
<a id="6340" class="Comment">------------------------------------------------------------------------</a>
<a id="6413" class="Comment">-- DEPRECATED NAMES</a>
<a id="6433" class="Comment">------------------------------------------------------------------------</a>
<a id="6506" class="Comment">-- Please use the new names as continuing support for the old names is</a>
<a id="6577" class="Comment">-- not guaranteed.</a>
<a id="6597" class="Comment">-- Version 1.6</a>
<a id="subst⟶respˡ"></a><a id="6613" href="Relation.Binary.Consequences.html#6613" class="Function">subst⟶respˡ</a> <a id="6625" class="Symbol">=</a> <a id="6627" href="Relation.Binary.Consequences.html#1017" class="Function">subst⇒respˡ</a>
<a id="6639" class="Symbol">{-#</a> <a id="6643" class="Keyword">WARNING_ON_USAGE</a> <a id="6660" class="Pragma">subst⟶respˡ</a>
<a id="6672" class="String">&quot;Warning: subst⟶respˡ was deprecated in v1.6.
Please use subst⇒respˡ instead.&quot;</a>
<a id="6751" class="Symbol">#-}</a>
<a id="subst⟶respʳ"></a><a id="6755" href="Relation.Binary.Consequences.html#6755" class="Function">subst⟶respʳ</a> <a id="6767" class="Symbol">=</a> <a id="6769" href="Relation.Binary.Consequences.html#1134" class="Function">subst⇒respʳ</a>
<a id="6781" class="Symbol">{-#</a> <a id="6785" class="Keyword">WARNING_ON_USAGE</a> <a id="6802" class="Pragma">subst⟶respʳ</a>
<a id="6814" class="String">&quot;Warning: subst⟶respʳ was deprecated in v1.6.
Please use subst⇒respʳ instead.&quot;</a>
<a id="6893" class="Symbol">#-}</a>
<a id="subst⟶resp₂"></a><a id="6897" href="Relation.Binary.Consequences.html#6897" class="Function">subst⟶resp₂</a> <a id="6909" class="Symbol">=</a> <a id="6911" href="Relation.Binary.Consequences.html#1246" class="Function">subst⇒resp₂</a>
<a id="6923" class="Symbol">{-#</a> <a id="6927" class="Keyword">WARNING_ON_USAGE</a> <a id="6944" class="Pragma">subst⟶resp₂</a>
<a id="6956" class="String">&quot;Warning: subst⟶resp₂ was deprecated in v1.6.
Please use subst⇒resp₂ instead.&quot;</a>
<a id="7035" class="Symbol">#-}</a>
<a id="P-resp⟶¬P-resp"></a><a id="7039" href="Relation.Binary.Consequences.html#7039" class="Function">P-resp⟶¬P-resp</a> <a id="7054" class="Symbol">=</a> <a id="7056" href="Relation.Binary.Consequences.html#1407" class="Function">resp⇒¬-resp</a>
<a id="7068" class="Symbol">{-#</a> <a id="7072" class="Keyword">WARNING_ON_USAGE</a> <a id="7089" class="Pragma">P-resp⟶¬P-resp</a>
<a id="7104" class="String">&quot;Warning: P-resp⟶¬P-resp was deprecated in v1.6.
Please use resp⇒¬-resp instead.&quot;</a>
<a id="7186" class="Symbol">#-}</a>
<a id="total⟶refl"></a><a id="7190" href="Relation.Binary.Consequences.html#7190" class="Function">total⟶refl</a> <a id="7201" class="Symbol">=</a> <a id="7203" href="Relation.Binary.Consequences.html#1692" class="Function">total⇒refl</a>
<a id="7214" class="Symbol">{-#</a> <a id="7218" class="Keyword">WARNING_ON_USAGE</a> <a id="7235" class="Pragma">total⟶refl</a>
<a id="7246" class="String">&quot;Warning: total⟶refl was deprecated in v1.6.
Please use total⇒refl instead.&quot;</a>
<a id="7323" class="Symbol">#-}</a>
<a id="total+dec⟶dec"></a><a id="7327" href="Relation.Binary.Consequences.html#7327" class="Function">total+dec⟶dec</a> <a id="7341" class="Symbol">=</a> <a id="7343" href="Relation.Binary.Consequences.html#1921" class="Function">total∧dec⇒dec</a>
<a id="7357" class="Symbol">{-#</a> <a id="7361" class="Keyword">WARNING_ON_USAGE</a> <a id="7378" class="Pragma">total+dec⟶dec</a>
<a id="7392" class="String">&quot;Warning: total+dec⟶dec was deprecated in v1.6.
Please use total∧dec⇒dec instead.&quot;</a>
<a id="7475" class="Symbol">#-}</a>
<a id="trans∧irr⟶asym"></a><a id="7479" href="Relation.Binary.Consequences.html#7479" class="Function">trans∧irr⟶asym</a> <a id="7494" class="Symbol">=</a> <a id="7496" href="Relation.Binary.Consequences.html#2918" class="Function">trans∧irr⇒asym</a>
<a id="7511" class="Symbol">{-#</a> <a id="7515" class="Keyword">WARNING_ON_USAGE</a> <a id="7532" class="Pragma">trans∧irr⟶asym</a>
<a id="7547" class="String">&quot;Warning: trans∧irr⟶asym was deprecated in v1.6.
Please use trans∧irr⇒asym instead.&quot;</a>
<a id="7632" class="Symbol">#-}</a>
<a id="irr∧antisym⟶asym"></a><a id="7636" href="Relation.Binary.Consequences.html#7636" class="Function">irr∧antisym⟶asym</a> <a id="7653" class="Symbol">=</a> <a id="7655" href="Relation.Binary.Consequences.html#3104" class="Function">irr∧antisym⇒asym</a>
<a id="7672" class="Symbol">{-#</a> <a id="7676" class="Keyword">WARNING_ON_USAGE</a> <a id="7693" class="Pragma">irr∧antisym⟶asym</a>
<a id="7710" class="String">&quot;Warning: irr∧antisym⟶asym was deprecated in v1.6.
Please use irr∧antisym⇒asym instead.&quot;</a>
<a id="7799" class="Symbol">#-}</a>
<a id="asym⟶antisym"></a><a id="7803" href="Relation.Binary.Consequences.html#7803" class="Function">asym⟶antisym</a> <a id="7816" class="Symbol">=</a> <a id="7818" href="Relation.Binary.Consequences.html#3285" class="Function">asym⇒antisym</a>
<a id="7831" class="Symbol">{-#</a> <a id="7835" class="Keyword">WARNING_ON_USAGE</a> <a id="7852" class="Pragma">asym⟶antisym</a>
<a id="7865" class="String">&quot;Warning: asym⟶antisym was deprecated in v1.6.
Please use asym⇒antisym instead.&quot;</a>
<a id="7946" class="Symbol">#-}</a>
<a id="asym⟶irr"></a><a id="7950" href="Relation.Binary.Consequences.html#7950" class="Function">asym⟶irr</a> <a id="7959" class="Symbol">=</a> <a id="7961" href="Relation.Binary.Consequences.html#3394" class="Function">asym⇒irr</a>
<a id="7970" class="Symbol">{-#</a> <a id="7974" class="Keyword">WARNING_ON_USAGE</a> <a id="7991" class="Pragma">asym⟶irr</a>
<a id="8000" class="String">&quot;Warning: asym⟶irr was deprecated in v1.6.
Please use asym⇒irr instead.&quot;</a>
<a id="8073" class="Symbol">#-}</a>
<a id="tri⟶asym"></a><a id="8077" href="Relation.Binary.Consequences.html#8077" class="Function">tri⟶asym</a> <a id="8086" class="Symbol">=</a> <a id="8088" href="Relation.Binary.Consequences.html#3595" class="Function">tri⇒asym</a>
<a id="8097" class="Symbol">{-#</a> <a id="8101" class="Keyword">WARNING_ON_USAGE</a> <a id="8118" class="Pragma">tri⟶asym</a>
<a id="8127" class="String">&quot;Warning: tri⟶asym was deprecated in v1.6.
Please use tri⇒asym instead.&quot;</a>
<a id="8200" class="Symbol">#-}</a>
<a id="tri⟶irr"></a><a id="8204" href="Relation.Binary.Consequences.html#8204" class="Function">tri⟶irr</a> <a id="8212" class="Symbol">=</a> <a id="8214" href="Relation.Binary.Consequences.html#3790" class="Function">tri⇒irr</a>
<a id="8222" class="Symbol">{-#</a> <a id="8226" class="Keyword">WARNING_ON_USAGE</a> <a id="8243" class="Pragma">tri⟶irr</a>
<a id="8251" class="String">&quot;Warning: tri⟶irr was deprecated in v1.6.
Please use tri⇒irr instead.&quot;</a>
<a id="8322" class="Symbol">#-}</a>
<a id="tri⟶dec≈"></a><a id="8326" href="Relation.Binary.Consequences.html#8326" class="Function">tri⟶dec≈</a> <a id="8335" class="Symbol">=</a> <a id="8337" href="Relation.Binary.Consequences.html#4002" class="Function">tri⇒dec≈</a>
<a id="8346" class="Symbol">{-#</a> <a id="8350" class="Keyword">WARNING_ON_USAGE</a> <a id="8367" class="Pragma">tri⟶dec≈</a>
<a id="8376" class="String">&quot;Warning: tri⟶dec≈ was deprecated in v1.6.
Please use tri⇒dec≈ instead.&quot;</a>
<a id="8449" class="Symbol">#-}</a>
<a id="tri⟶dec&lt;"></a><a id="8453" href="Relation.Binary.Consequences.html#8453" class="Function">tri⟶dec&lt;</a> <a id="8462" class="Symbol">=</a> <a id="8464" href="Relation.Binary.Consequences.html#4186" class="Function">tri⇒dec&lt;</a>
<a id="8473" class="Symbol">{-#</a> <a id="8477" class="Keyword">WARNING_ON_USAGE</a> <a id="8494" class="Pragma">tri⟶dec&lt;</a>
<a id="8503" class="String">&quot;Warning: tri⟶dec&lt; was deprecated in v1.6.
Please use tri⇒dec&lt; instead.&quot;</a>
<a id="8576" class="Symbol">#-}</a>
<a id="trans∧tri⟶respʳ≈"></a><a id="8580" href="Relation.Binary.Consequences.html#8580" class="Function">trans∧tri⟶respʳ≈</a> <a id="8597" class="Symbol">=</a> <a id="8599" href="Relation.Binary.Consequences.html#4370" class="Function">trans∧tri⇒respʳ</a>
<a id="8615" class="Symbol">{-#</a> <a id="8619" class="Keyword">WARNING_ON_USAGE</a> <a id="8636" class="Pragma">trans∧tri⟶respʳ≈</a>
<a id="8653" class="String">&quot;Warning: trans∧tri⟶respʳ≈ was deprecated in v1.6.
Please use trans∧tri⇒respʳ instead.&quot;</a>
<a id="8741" class="Symbol">#-}</a>
<a id="trans∧tri⟶respˡ≈"></a><a id="8745" href="Relation.Binary.Consequences.html#8745" class="Function">trans∧tri⟶respˡ≈</a> <a id="8762" class="Symbol">=</a> <a id="8764" href="Relation.Binary.Consequences.html#4756" class="Function">trans∧tri⇒respˡ</a>
<a id="8780" class="Symbol">{-#</a> <a id="8784" class="Keyword">WARNING_ON_USAGE</a> <a id="8801" class="Pragma">trans∧tri⟶respˡ≈</a>
<a id="8818" class="String">&quot;Warning: trans∧tri⟶respˡ≈ was deprecated in v1.6.
Please use trans∧tri⇒respˡ instead.&quot;</a>
<a id="8906" class="Symbol">#-}</a>
<a id="trans∧tri⟶resp≈"></a><a id="8910" href="Relation.Binary.Consequences.html#8910" class="Function">trans∧tri⟶resp≈</a> <a id="8926" class="Symbol">=</a> <a id="8928" href="Relation.Binary.Consequences.html#5110" class="Function">trans∧tri⇒resp</a>
<a id="8943" class="Symbol">{-#</a> <a id="8947" class="Keyword">WARNING_ON_USAGE</a> <a id="8964" class="Pragma">trans∧tri⟶resp≈</a>
<a id="8980" class="String">&quot;Warning: trans∧tri⟶resp≈ was deprecated in v1.6.
Please use trans∧tri⇒resp instead.&quot;</a>
<a id="9066" class="Symbol">#-}</a>
<a id="dec⟶weaklyDec"></a><a id="9070" href="Relation.Binary.Consequences.html#9070" class="Function">dec⟶weaklyDec</a> <a id="9084" class="Symbol">=</a> <a id="9086" href="Relation.Binary.Consequences.html#5855" class="Function">dec⇒weaklyDec</a>
<a id="9100" class="Symbol">{-#</a> <a id="9104" class="Keyword">WARNING_ON_USAGE</a> <a id="9121" class="Pragma">dec⟶weaklyDec</a>
<a id="9135" class="String">&quot;Warning: dec⟶weaklyDec was deprecated in v1.6.
Please use dec⇒weaklyDec instead.&quot;</a>
<a id="9218" class="Symbol">#-}</a>
<a id="dec⟶recomputable"></a><a id="9222" href="Relation.Binary.Consequences.html#9222" class="Function">dec⟶recomputable</a> <a id="9239" class="Symbol">=</a> <a id="9241" href="Relation.Binary.Consequences.html#5953" class="Function">dec⇒recomputable</a>
<a id="9258" class="Symbol">{-#</a> <a id="9262" class="Keyword">WARNING_ON_USAGE</a> <a id="9279" class="Pragma">dec⟶recomputable</a>
<a id="9296" class="String">&quot;Warning: dec⟶recomputable was deprecated in v1.6.
Please use dec⇒recomputable instead.&quot;</a>
<a id="9385" class="Symbol">#-}</a>
</pre></body></html>

View File

@ -0,0 +1,68 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Relation.Binary.Core</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Properties of binary relations</a>
<a id="140" class="Comment">------------------------------------------------------------------------</a>
<a id="214" class="Comment">-- The contents of this module should be accessed via `Relation.Binary`.</a>
<a id="288" class="Symbol">{-#</a> <a id="292" class="Keyword">OPTIONS</a> <a id="300" class="Pragma">--without-K</a> <a id="312" class="Pragma">--safe</a> <a id="319" class="Symbol">#-}</a>
<a id="324" class="Keyword">module</a> <a id="331" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a> <a id="352" class="Keyword">where</a>
<a id="359" class="Keyword">open</a> <a id="364" class="Keyword">import</a> <a id="371" href="Data.Product.html" class="Module">Data.Product</a> <a id="384" class="Keyword">using</a> <a id="390" class="Symbol">(</a><a id="391" href="Data.Product.html#1167" class="Function Operator">_×_</a><a id="394" class="Symbol">)</a>
<a id="396" class="Keyword">open</a> <a id="401" class="Keyword">import</a> <a id="408" href="Function.Base.html" class="Module">Function.Base</a> <a id="422" class="Keyword">using</a> <a id="428" class="Symbol">(</a><a id="429" href="Function.Base.html#6285" class="Function Operator">_on_</a><a id="433" class="Symbol">)</a>
<a id="435" class="Keyword">open</a> <a id="440" class="Keyword">import</a> <a id="447" href="Level.html" class="Module">Level</a> <a id="453" class="Keyword">using</a> <a id="459" class="Symbol">(</a><a id="460" href="Agda.Primitive.html#597" class="Postulate">Level</a><a id="465" class="Symbol">;</a> <a id="467" href="Agda.Primitive.html#810" class="Primitive Operator">_⊔_</a><a id="470" class="Symbol">;</a> <a id="472" href="Agda.Primitive.html#780" class="Primitive">suc</a><a id="475" class="Symbol">)</a>
<a id="478" class="Keyword">private</a>
<a id="488" class="Keyword">variable</a>
<a id="501" href="Relation.Binary.Core.html#501" class="Generalizable">a</a> <a id="503" href="Relation.Binary.Core.html#503" class="Generalizable">b</a> <a id="505" href="Relation.Binary.Core.html#505" class="Generalizable">c</a> <a id="507" href="Relation.Binary.Core.html#507" class="Generalizable"></a> <a id="509" href="Relation.Binary.Core.html#509" class="Generalizable">ℓ₁</a> <a id="512" href="Relation.Binary.Core.html#512" class="Generalizable">ℓ₂</a> <a id="515" href="Relation.Binary.Core.html#515" class="Generalizable">ℓ₃</a> <a id="518" class="Symbol">:</a> <a id="520" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="530" href="Relation.Binary.Core.html#530" class="Generalizable">A</a> <a id="532" class="Symbol">:</a> <a id="534" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="538" href="Relation.Binary.Core.html#501" class="Generalizable">a</a>
<a id="544" href="Relation.Binary.Core.html#544" class="Generalizable">B</a> <a id="546" class="Symbol">:</a> <a id="548" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="552" href="Relation.Binary.Core.html#503" class="Generalizable">b</a>
<a id="558" href="Relation.Binary.Core.html#558" class="Generalizable">C</a> <a id="560" class="Symbol">:</a> <a id="562" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="566" href="Relation.Binary.Core.html#505" class="Generalizable">c</a>
<a id="569" class="Comment">------------------------------------------------------------------------</a>
<a id="642" class="Comment">-- Definitions</a>
<a id="657" class="Comment">------------------------------------------------------------------------</a>
<a id="731" class="Comment">-- Heterogeneous binary relations</a>
<a id="REL"></a><a id="766" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="770" class="Symbol">:</a> <a id="772" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="776" href="Relation.Binary.Core.html#501" class="Generalizable">a</a> <a id="778" class="Symbol"></a> <a id="780" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="784" href="Relation.Binary.Core.html#503" class="Generalizable">b</a> <a id="786" class="Symbol"></a> <a id="788" class="Symbol">(</a><a id="789" href="Relation.Binary.Core.html#789" class="Bound"></a> <a id="791" class="Symbol">:</a> <a id="793" href="Agda.Primitive.html#597" class="Postulate">Level</a><a id="798" class="Symbol">)</a> <a id="800" class="Symbol"></a> <a id="802" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="806" class="Symbol">(</a><a id="807" href="Relation.Binary.Core.html#501" class="Generalizable">a</a> <a id="809" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="811" href="Relation.Binary.Core.html#503" class="Generalizable">b</a> <a id="813" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="815" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="819" href="Relation.Binary.Core.html#789" class="Bound"></a><a id="820" class="Symbol">)</a>
<a id="822" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="826" href="Relation.Binary.Core.html#826" class="Bound">A</a> <a id="828" href="Relation.Binary.Core.html#828" class="Bound">B</a> <a id="830" href="Relation.Binary.Core.html#830" class="Bound"></a> <a id="832" class="Symbol">=</a> <a id="834" href="Relation.Binary.Core.html#826" class="Bound">A</a> <a id="836" class="Symbol"></a> <a id="838" href="Relation.Binary.Core.html#828" class="Bound">B</a> <a id="840" class="Symbol"></a> <a id="842" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="846" href="Relation.Binary.Core.html#830" class="Bound"></a>
<a id="849" class="Comment">-- Homogeneous binary relations</a>
<a id="Rel"></a><a id="882" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="886" class="Symbol">:</a> <a id="888" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="892" href="Relation.Binary.Core.html#501" class="Generalizable">a</a> <a id="894" class="Symbol"></a> <a id="896" class="Symbol">(</a><a id="897" href="Relation.Binary.Core.html#897" class="Bound"></a> <a id="899" class="Symbol">:</a> <a id="901" href="Agda.Primitive.html#597" class="Postulate">Level</a><a id="906" class="Symbol">)</a> <a id="908" class="Symbol"></a> <a id="910" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="914" class="Symbol">(</a><a id="915" href="Relation.Binary.Core.html#501" class="Generalizable">a</a> <a id="917" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="919" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="923" href="Relation.Binary.Core.html#897" class="Bound"></a><a id="924" class="Symbol">)</a>
<a id="926" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="930" href="Relation.Binary.Core.html#930" class="Bound">A</a> <a id="932" href="Relation.Binary.Core.html#932" class="Bound"></a> <a id="934" class="Symbol">=</a> <a id="936" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="940" href="Relation.Binary.Core.html#930" class="Bound">A</a> <a id="942" href="Relation.Binary.Core.html#930" class="Bound">A</a> <a id="944" href="Relation.Binary.Core.html#932" class="Bound"></a>
<a id="947" class="Comment">------------------------------------------------------------------------</a>
<a id="1020" class="Comment">-- Relationships between relations</a>
<a id="1055" class="Comment">------------------------------------------------------------------------</a>
<a id="1129" class="Keyword">infix</a> <a id="1135" class="Number">4</a> <a id="1137" href="Relation.Binary.Core.html#1254" class="Function Operator">_⇒_</a> <a id="1141" href="Relation.Binary.Core.html#1325" class="Function Operator">_⇔_</a> <a id="1145" href="Relation.Binary.Core.html#1460" class="Function Operator">_=[_]⇒_</a>
<a id="1154" class="Comment">-- Implication/containment - could also be written _⊆_.</a>
<a id="1210" class="Comment">-- and corresponding notion of equivalence</a>
<a id="_⇒_"></a><a id="1254" href="Relation.Binary.Core.html#1254" class="Function Operator">_⇒_</a> <a id="1258" class="Symbol">:</a> <a id="1260" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="1264" href="Relation.Binary.Core.html#530" class="Generalizable">A</a> <a id="1266" href="Relation.Binary.Core.html#544" class="Generalizable">B</a> <a id="1268" href="Relation.Binary.Core.html#509" class="Generalizable">ℓ₁</a> <a id="1271" class="Symbol"></a> <a id="1273" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="1277" href="Relation.Binary.Core.html#530" class="Generalizable">A</a> <a id="1279" href="Relation.Binary.Core.html#544" class="Generalizable">B</a> <a id="1281" href="Relation.Binary.Core.html#512" class="Generalizable">ℓ₂</a> <a id="1284" class="Symbol"></a> <a id="1286" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1290" class="Symbol">_</a>
<a id="1292" href="Relation.Binary.Core.html#1292" class="Bound">P</a> <a id="1294" href="Relation.Binary.Core.html#1254" class="Function Operator"></a> <a id="1296" href="Relation.Binary.Core.html#1296" class="Bound">Q</a> <a id="1298" class="Symbol">=</a> <a id="1300" class="Symbol"></a> <a id="1302" class="Symbol">{</a><a id="1303" href="Relation.Binary.Core.html#1303" class="Bound">x</a> <a id="1305" href="Relation.Binary.Core.html#1305" class="Bound">y</a><a id="1306" class="Symbol">}</a> <a id="1308" class="Symbol"></a> <a id="1310" href="Relation.Binary.Core.html#1292" class="Bound">P</a> <a id="1312" href="Relation.Binary.Core.html#1303" class="Bound">x</a> <a id="1314" href="Relation.Binary.Core.html#1305" class="Bound">y</a> <a id="1316" class="Symbol"></a> <a id="1318" href="Relation.Binary.Core.html#1296" class="Bound">Q</a> <a id="1320" href="Relation.Binary.Core.html#1303" class="Bound">x</a> <a id="1322" href="Relation.Binary.Core.html#1305" class="Bound">y</a>
<a id="_⇔_"></a><a id="1325" href="Relation.Binary.Core.html#1325" class="Function Operator">_⇔_</a> <a id="1329" class="Symbol">:</a> <a id="1331" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="1335" href="Relation.Binary.Core.html#530" class="Generalizable">A</a> <a id="1337" href="Relation.Binary.Core.html#544" class="Generalizable">B</a> <a id="1339" href="Relation.Binary.Core.html#509" class="Generalizable">ℓ₁</a> <a id="1342" class="Symbol"></a> <a id="1344" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="1348" href="Relation.Binary.Core.html#530" class="Generalizable">A</a> <a id="1350" href="Relation.Binary.Core.html#544" class="Generalizable">B</a> <a id="1352" href="Relation.Binary.Core.html#512" class="Generalizable">ℓ₂</a> <a id="1355" class="Symbol"></a> <a id="1357" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1361" class="Symbol">_</a>
<a id="1363" href="Relation.Binary.Core.html#1363" class="Bound">P</a> <a id="1365" href="Relation.Binary.Core.html#1325" class="Function Operator"></a> <a id="1367" href="Relation.Binary.Core.html#1367" class="Bound">Q</a> <a id="1369" class="Symbol">=</a> <a id="1371" href="Relation.Binary.Core.html#1363" class="Bound">P</a> <a id="1373" href="Relation.Binary.Core.html#1254" class="Function Operator"></a> <a id="1375" href="Relation.Binary.Core.html#1367" class="Bound">Q</a> <a id="1377" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="1379" href="Relation.Binary.Core.html#1367" class="Bound">Q</a> <a id="1381" href="Relation.Binary.Core.html#1254" class="Function Operator"></a> <a id="1383" href="Relation.Binary.Core.html#1363" class="Bound">P</a>
<a id="1386" class="Comment">-- Generalised implication - if P ≡ Q it can be read as &quot;f preserves P&quot;.</a>
<a id="_=[_]⇒_"></a><a id="1460" href="Relation.Binary.Core.html#1460" class="Function Operator">_=[_]⇒_</a> <a id="1468" class="Symbol">:</a> <a id="1470" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="1474" href="Relation.Binary.Core.html#530" class="Generalizable">A</a> <a id="1476" href="Relation.Binary.Core.html#509" class="Generalizable">ℓ₁</a> <a id="1479" class="Symbol"></a> <a id="1481" class="Symbol">(</a><a id="1482" href="Relation.Binary.Core.html#530" class="Generalizable">A</a> <a id="1484" class="Symbol"></a> <a id="1486" href="Relation.Binary.Core.html#544" class="Generalizable">B</a><a id="1487" class="Symbol">)</a> <a id="1489" class="Symbol"></a> <a id="1491" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="1495" href="Relation.Binary.Core.html#544" class="Generalizable">B</a> <a id="1497" href="Relation.Binary.Core.html#512" class="Generalizable">ℓ₂</a> <a id="1500" class="Symbol"></a> <a id="1502" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1506" class="Symbol">_</a>
<a id="1508" href="Relation.Binary.Core.html#1508" class="Bound">P</a> <a id="1510" href="Relation.Binary.Core.html#1460" class="Function Operator">=[</a> <a id="1513" href="Relation.Binary.Core.html#1513" class="Bound">f</a> <a id="1515" href="Relation.Binary.Core.html#1460" class="Function Operator">]⇒</a> <a id="1518" href="Relation.Binary.Core.html#1518" class="Bound">Q</a> <a id="1520" class="Symbol">=</a> <a id="1522" href="Relation.Binary.Core.html#1508" class="Bound">P</a> <a id="1524" href="Relation.Binary.Core.html#1254" class="Function Operator"></a> <a id="1526" class="Symbol">(</a><a id="1527" href="Relation.Binary.Core.html#1518" class="Bound">Q</a> <a id="1529" href="Function.Base.html#6285" class="Function Operator">on</a> <a id="1532" href="Relation.Binary.Core.html#1513" class="Bound">f</a><a id="1533" class="Symbol">)</a>
<a id="1536" class="Comment">-- A synonym for _=[_]⇒_.</a>
<a id="_Preserves_⟶_"></a><a id="1563" href="Relation.Binary.Core.html#1563" class="Function Operator">_Preserves_⟶_</a> <a id="1577" class="Symbol">:</a> <a id="1579" class="Symbol">(</a><a id="1580" href="Relation.Binary.Core.html#530" class="Generalizable">A</a> <a id="1582" class="Symbol"></a> <a id="1584" href="Relation.Binary.Core.html#544" class="Generalizable">B</a><a id="1585" class="Symbol">)</a> <a id="1587" class="Symbol"></a> <a id="1589" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="1593" href="Relation.Binary.Core.html#530" class="Generalizable">A</a> <a id="1595" href="Relation.Binary.Core.html#509" class="Generalizable">ℓ₁</a> <a id="1598" class="Symbol"></a> <a id="1600" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="1604" href="Relation.Binary.Core.html#544" class="Generalizable">B</a> <a id="1606" href="Relation.Binary.Core.html#512" class="Generalizable">ℓ₂</a> <a id="1609" class="Symbol"></a> <a id="1611" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1615" class="Symbol">_</a>
<a id="1617" href="Relation.Binary.Core.html#1617" class="Bound">f</a> <a id="1619" href="Relation.Binary.Core.html#1563" class="Function Operator">Preserves</a> <a id="1629" href="Relation.Binary.Core.html#1629" class="Bound">P</a> <a id="1631" href="Relation.Binary.Core.html#1563" class="Function Operator"></a> <a id="1633" href="Relation.Binary.Core.html#1633" class="Bound">Q</a> <a id="1635" class="Symbol">=</a> <a id="1637" href="Relation.Binary.Core.html#1629" class="Bound">P</a> <a id="1639" href="Relation.Binary.Core.html#1460" class="Function Operator">=[</a> <a id="1642" href="Relation.Binary.Core.html#1617" class="Bound">f</a> <a id="1644" href="Relation.Binary.Core.html#1460" class="Function Operator">]⇒</a> <a id="1647" href="Relation.Binary.Core.html#1633" class="Bound">Q</a>
<a id="1650" class="Comment">-- A binary variant of _Preserves_⟶_.</a>
<a id="_Preserves₂_⟶_⟶_"></a><a id="1689" href="Relation.Binary.Core.html#1689" class="Function Operator">_Preserves₂_⟶_⟶_</a> <a id="1706" class="Symbol">:</a> <a id="1708" class="Symbol">(</a><a id="1709" href="Relation.Binary.Core.html#530" class="Generalizable">A</a> <a id="1711" class="Symbol"></a> <a id="1713" href="Relation.Binary.Core.html#544" class="Generalizable">B</a> <a id="1715" class="Symbol"></a> <a id="1717" href="Relation.Binary.Core.html#558" class="Generalizable">C</a><a id="1718" class="Symbol">)</a> <a id="1720" class="Symbol"></a> <a id="1722" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="1726" href="Relation.Binary.Core.html#530" class="Generalizable">A</a> <a id="1728" href="Relation.Binary.Core.html#509" class="Generalizable">ℓ₁</a> <a id="1731" class="Symbol"></a> <a id="1733" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="1737" href="Relation.Binary.Core.html#544" class="Generalizable">B</a> <a id="1739" href="Relation.Binary.Core.html#512" class="Generalizable">ℓ₂</a> <a id="1742" class="Symbol"></a> <a id="1744" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="1748" href="Relation.Binary.Core.html#558" class="Generalizable">C</a> <a id="1750" href="Relation.Binary.Core.html#515" class="Generalizable">ℓ₃</a> <a id="1753" class="Symbol"></a> <a id="1755" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1759" class="Symbol">_</a>
<a id="1761" href="Relation.Binary.Core.html#1761" class="Bound Operator">_∙_</a> <a id="1765" href="Relation.Binary.Core.html#1689" class="Function Operator">Preserves₂</a> <a id="1776" href="Relation.Binary.Core.html#1776" class="Bound">P</a> <a id="1778" href="Relation.Binary.Core.html#1689" class="Function Operator"></a> <a id="1780" href="Relation.Binary.Core.html#1780" class="Bound">Q</a> <a id="1782" href="Relation.Binary.Core.html#1689" class="Function Operator"></a> <a id="1784" href="Relation.Binary.Core.html#1784" class="Bound">R</a> <a id="1786" class="Symbol">=</a> <a id="1788" class="Symbol"></a> <a id="1790" class="Symbol">{</a><a id="1791" href="Relation.Binary.Core.html#1791" class="Bound">x</a> <a id="1793" href="Relation.Binary.Core.html#1793" class="Bound">y</a> <a id="1795" href="Relation.Binary.Core.html#1795" class="Bound">u</a> <a id="1797" href="Relation.Binary.Core.html#1797" class="Bound">v</a><a id="1798" class="Symbol">}</a> <a id="1800" class="Symbol"></a> <a id="1802" href="Relation.Binary.Core.html#1776" class="Bound">P</a> <a id="1804" href="Relation.Binary.Core.html#1791" class="Bound">x</a> <a id="1806" href="Relation.Binary.Core.html#1793" class="Bound">y</a> <a id="1808" class="Symbol"></a> <a id="1810" href="Relation.Binary.Core.html#1780" class="Bound">Q</a> <a id="1812" href="Relation.Binary.Core.html#1795" class="Bound">u</a> <a id="1814" href="Relation.Binary.Core.html#1797" class="Bound">v</a> <a id="1816" class="Symbol"></a> <a id="1818" href="Relation.Binary.Core.html#1784" class="Bound">R</a> <a id="1820" class="Symbol">(</a><a id="1821" href="Relation.Binary.Core.html#1791" class="Bound">x</a> <a id="1823" href="Relation.Binary.Core.html#1761" class="Bound Operator"></a> <a id="1825" href="Relation.Binary.Core.html#1795" class="Bound">u</a><a id="1826" class="Symbol">)</a> <a id="1828" class="Symbol">(</a><a id="1829" href="Relation.Binary.Core.html#1793" class="Bound">y</a> <a id="1831" href="Relation.Binary.Core.html#1761" class="Bound Operator"></a> <a id="1833" href="Relation.Binary.Core.html#1797" class="Bound">v</a><a id="1834" class="Symbol">)</a>
</pre></body></html>

View File

@ -0,0 +1,225 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Relation.Binary.Definitions</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Properties of binary relations</a>
<a id="140" class="Comment">------------------------------------------------------------------------</a>
<a id="214" class="Comment">-- The contents of this module should be accessed via `Relation.Binary`.</a>
<a id="288" class="Symbol">{-#</a> <a id="292" class="Keyword">OPTIONS</a> <a id="300" class="Pragma">--without-K</a> <a id="312" class="Pragma">--safe</a> <a id="319" class="Symbol">#-}</a>
<a id="324" class="Keyword">module</a> <a id="331" href="Relation.Binary.Definitions.html" class="Module">Relation.Binary.Definitions</a> <a id="359" class="Keyword">where</a>
<a id="366" class="Keyword">open</a> <a id="371" class="Keyword">import</a> <a id="378" href="Agda.Builtin.Equality.html" class="Module">Agda.Builtin.Equality</a> <a id="400" class="Keyword">using</a> <a id="406" class="Symbol">(</a><a id="407" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a><a id="410" class="Symbol">)</a>
<a id="413" class="Keyword">open</a> <a id="418" class="Keyword">import</a> <a id="425" href="Data.Maybe.Base.html" class="Module">Data.Maybe.Base</a> <a id="441" class="Keyword">using</a> <a id="447" class="Symbol">(</a><a id="448" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a><a id="453" class="Symbol">)</a>
<a id="455" class="Keyword">open</a> <a id="460" class="Keyword">import</a> <a id="467" href="Data.Product.html" class="Module">Data.Product</a> <a id="480" class="Keyword">using</a> <a id="486" class="Symbol">(</a><a id="487" href="Data.Product.html#1167" class="Function Operator">_×_</a><a id="490" class="Symbol">)</a>
<a id="492" class="Keyword">open</a> <a id="497" class="Keyword">import</a> <a id="504" href="Data.Sum.Base.html" class="Module">Data.Sum.Base</a> <a id="518" class="Keyword">using</a> <a id="524" class="Symbol">(</a><a id="525" href="Data.Sum.Base.html#734" class="Datatype Operator">_⊎_</a><a id="528" class="Symbol">)</a>
<a id="530" class="Keyword">open</a> <a id="535" class="Keyword">import</a> <a id="542" href="Function.Base.html" class="Module">Function.Base</a> <a id="556" class="Keyword">using</a> <a id="562" class="Symbol">(</a><a id="563" href="Function.Base.html#6285" class="Function Operator">_on_</a><a id="567" class="Symbol">;</a> <a id="569" href="Function.Base.html#1554" class="Function">flip</a><a id="573" class="Symbol">)</a>
<a id="575" class="Keyword">open</a> <a id="580" class="Keyword">import</a> <a id="587" href="Level.html" class="Module">Level</a>
<a id="593" class="Keyword">open</a> <a id="598" class="Keyword">import</a> <a id="605" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a>
<a id="626" class="Keyword">open</a> <a id="631" class="Keyword">import</a> <a id="638" href="Relation.Nullary.html" class="Module">Relation.Nullary</a> <a id="655" class="Keyword">using</a> <a id="661" class="Symbol">(</a><a id="662" href="Relation.Nullary.html#1511" class="Record">Dec</a><a id="665" class="Symbol">;</a> <a id="667" href="Relation.Nullary.html#656" class="Function Operator">¬_</a><a id="669" class="Symbol">)</a>
<a id="672" class="Keyword">private</a>
<a id="682" class="Keyword">variable</a>
<a id="695" href="Relation.Binary.Definitions.html#695" class="Generalizable">a</a> <a id="697" href="Relation.Binary.Definitions.html#697" class="Generalizable">b</a> <a id="699" href="Relation.Binary.Definitions.html#699" class="Generalizable">c</a> <a id="701" href="Relation.Binary.Definitions.html#701" class="Generalizable"></a> <a id="703" href="Relation.Binary.Definitions.html#703" class="Generalizable">ℓ₁</a> <a id="706" href="Relation.Binary.Definitions.html#706" class="Generalizable">ℓ₂</a> <a id="709" href="Relation.Binary.Definitions.html#709" class="Generalizable">ℓ₃</a> <a id="712" class="Symbol">:</a> <a id="714" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="724" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="726" class="Symbol">:</a> <a id="728" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="732" href="Relation.Binary.Definitions.html#695" class="Generalizable">a</a>
<a id="738" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="740" class="Symbol">:</a> <a id="742" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="746" href="Relation.Binary.Definitions.html#697" class="Generalizable">b</a>
<a id="752" href="Relation.Binary.Definitions.html#752" class="Generalizable">C</a> <a id="754" class="Symbol">:</a> <a id="756" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="760" href="Relation.Binary.Definitions.html#699" class="Generalizable">c</a>
<a id="763" class="Comment">------------------------------------------------------------------------</a>
<a id="836" class="Comment">-- Definitions</a>
<a id="851" class="Comment">------------------------------------------------------------------------</a>
<a id="925" class="Comment">-- Reflexivity - defined without an underlying equality. It could</a>
<a id="991" class="Comment">-- alternatively be defined as `_≈_ ⇒ __` for some equality `_≈_`.</a>
<a id="1060" class="Comment">-- Confusingly the convention in the library is to use the name &quot;refl&quot;</a>
<a id="1131" class="Comment">-- for proofs of Reflexive and `reflexive` for proofs of type `_≈_ ⇒ __`,</a>
<a id="1206" class="Comment">-- e.g. in the definition of `IsEquivalence` later in this file. This</a>
<a id="1276" class="Comment">-- convention is a legacy from the early days of the library.</a>
<a id="Reflexive"></a><a id="1339" href="Relation.Binary.Definitions.html#1339" class="Function">Reflexive</a> <a id="1349" class="Symbol">:</a> <a id="1351" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="1355" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="1357" href="Relation.Binary.Definitions.html#701" class="Generalizable"></a> <a id="1359" class="Symbol"></a> <a id="1361" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1365" class="Symbol">_</a>
<a id="1367" href="Relation.Binary.Definitions.html#1339" class="Function">Reflexive</a> <a id="1377" href="Relation.Binary.Definitions.html#1377" class="Bound Operator">__</a> <a id="1381" class="Symbol">=</a> <a id="1383" class="Symbol"></a> <a id="1385" class="Symbol">{</a><a id="1386" href="Relation.Binary.Definitions.html#1386" class="Bound">x</a><a id="1387" class="Symbol">}</a> <a id="1389" class="Symbol"></a> <a id="1391" href="Relation.Binary.Definitions.html#1386" class="Bound">x</a> <a id="1393" href="Relation.Binary.Definitions.html#1377" class="Bound Operator"></a> <a id="1395" href="Relation.Binary.Definitions.html#1386" class="Bound">x</a>
<a id="1398" class="Comment">-- Generalised symmetry.</a>
<a id="Sym"></a><a id="1424" href="Relation.Binary.Definitions.html#1424" class="Function">Sym</a> <a id="1428" class="Symbol">:</a> <a id="1430" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="1434" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="1436" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="1438" href="Relation.Binary.Definitions.html#703" class="Generalizable">ℓ₁</a> <a id="1441" class="Symbol"></a> <a id="1443" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="1447" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="1449" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="1451" href="Relation.Binary.Definitions.html#706" class="Generalizable">ℓ₂</a> <a id="1454" class="Symbol"></a> <a id="1456" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1460" class="Symbol">_</a>
<a id="1462" href="Relation.Binary.Definitions.html#1424" class="Function">Sym</a> <a id="1466" href="Relation.Binary.Definitions.html#1466" class="Bound">P</a> <a id="1468" href="Relation.Binary.Definitions.html#1468" class="Bound">Q</a> <a id="1470" class="Symbol">=</a> <a id="1472" href="Relation.Binary.Definitions.html#1466" class="Bound">P</a> <a id="1474" href="Relation.Binary.Core.html#1254" class="Function Operator"></a> <a id="1476" href="Function.Base.html#1554" class="Function">flip</a> <a id="1481" href="Relation.Binary.Definitions.html#1468" class="Bound">Q</a>
<a id="1484" class="Comment">-- Symmetry.</a>
<a id="Symmetric"></a><a id="1498" href="Relation.Binary.Definitions.html#1498" class="Function">Symmetric</a> <a id="1508" class="Symbol">:</a> <a id="1510" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="1514" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="1516" href="Relation.Binary.Definitions.html#701" class="Generalizable"></a> <a id="1518" class="Symbol"></a> <a id="1520" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1524" class="Symbol">_</a>
<a id="1526" href="Relation.Binary.Definitions.html#1498" class="Function">Symmetric</a> <a id="1536" href="Relation.Binary.Definitions.html#1536" class="Bound Operator">__</a> <a id="1540" class="Symbol">=</a> <a id="1542" href="Relation.Binary.Definitions.html#1424" class="Function">Sym</a> <a id="1546" href="Relation.Binary.Definitions.html#1536" class="Bound Operator">__</a> <a id="1550" href="Relation.Binary.Definitions.html#1536" class="Bound Operator">__</a>
<a id="1555" class="Comment">-- Generalised transitivity.</a>
<a id="Trans"></a><a id="1585" href="Relation.Binary.Definitions.html#1585" class="Function">Trans</a> <a id="1591" class="Symbol">:</a> <a id="1593" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="1597" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="1599" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="1601" href="Relation.Binary.Definitions.html#703" class="Generalizable">ℓ₁</a> <a id="1604" class="Symbol"></a> <a id="1606" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="1610" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="1612" href="Relation.Binary.Definitions.html#752" class="Generalizable">C</a> <a id="1614" href="Relation.Binary.Definitions.html#706" class="Generalizable">ℓ₂</a> <a id="1617" class="Symbol"></a> <a id="1619" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="1623" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="1625" href="Relation.Binary.Definitions.html#752" class="Generalizable">C</a> <a id="1627" href="Relation.Binary.Definitions.html#709" class="Generalizable">ℓ₃</a> <a id="1630" class="Symbol"></a> <a id="1632" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1636" class="Symbol">_</a>
<a id="1638" href="Relation.Binary.Definitions.html#1585" class="Function">Trans</a> <a id="1644" href="Relation.Binary.Definitions.html#1644" class="Bound">P</a> <a id="1646" href="Relation.Binary.Definitions.html#1646" class="Bound">Q</a> <a id="1648" href="Relation.Binary.Definitions.html#1648" class="Bound">R</a> <a id="1650" class="Symbol">=</a> <a id="1652" class="Symbol"></a> <a id="1654" class="Symbol">{</a><a id="1655" href="Relation.Binary.Definitions.html#1655" class="Bound">i</a> <a id="1657" href="Relation.Binary.Definitions.html#1657" class="Bound">j</a> <a id="1659" href="Relation.Binary.Definitions.html#1659" class="Bound">k</a><a id="1660" class="Symbol">}</a> <a id="1662" class="Symbol"></a> <a id="1664" href="Relation.Binary.Definitions.html#1644" class="Bound">P</a> <a id="1666" href="Relation.Binary.Definitions.html#1655" class="Bound">i</a> <a id="1668" href="Relation.Binary.Definitions.html#1657" class="Bound">j</a> <a id="1670" class="Symbol"></a> <a id="1672" href="Relation.Binary.Definitions.html#1646" class="Bound">Q</a> <a id="1674" href="Relation.Binary.Definitions.html#1657" class="Bound">j</a> <a id="1676" href="Relation.Binary.Definitions.html#1659" class="Bound">k</a> <a id="1678" class="Symbol"></a> <a id="1680" href="Relation.Binary.Definitions.html#1648" class="Bound">R</a> <a id="1682" href="Relation.Binary.Definitions.html#1655" class="Bound">i</a> <a id="1684" href="Relation.Binary.Definitions.html#1659" class="Bound">k</a>
<a id="1687" class="Comment">-- A flipped variant of generalised transitivity.</a>
<a id="TransFlip"></a><a id="1738" href="Relation.Binary.Definitions.html#1738" class="Function">TransFlip</a> <a id="1748" class="Symbol">:</a> <a id="1750" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="1754" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="1756" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="1758" href="Relation.Binary.Definitions.html#703" class="Generalizable">ℓ₁</a> <a id="1761" class="Symbol"></a> <a id="1763" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="1767" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="1769" href="Relation.Binary.Definitions.html#752" class="Generalizable">C</a> <a id="1771" href="Relation.Binary.Definitions.html#706" class="Generalizable">ℓ₂</a> <a id="1774" class="Symbol"></a> <a id="1776" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="1780" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="1782" href="Relation.Binary.Definitions.html#752" class="Generalizable">C</a> <a id="1784" href="Relation.Binary.Definitions.html#709" class="Generalizable">ℓ₃</a> <a id="1787" class="Symbol"></a> <a id="1789" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1793" class="Symbol">_</a>
<a id="1795" href="Relation.Binary.Definitions.html#1738" class="Function">TransFlip</a> <a id="1805" href="Relation.Binary.Definitions.html#1805" class="Bound">P</a> <a id="1807" href="Relation.Binary.Definitions.html#1807" class="Bound">Q</a> <a id="1809" href="Relation.Binary.Definitions.html#1809" class="Bound">R</a> <a id="1811" class="Symbol">=</a> <a id="1813" class="Symbol"></a> <a id="1815" class="Symbol">{</a><a id="1816" href="Relation.Binary.Definitions.html#1816" class="Bound">i</a> <a id="1818" href="Relation.Binary.Definitions.html#1818" class="Bound">j</a> <a id="1820" href="Relation.Binary.Definitions.html#1820" class="Bound">k</a><a id="1821" class="Symbol">}</a> <a id="1823" class="Symbol"></a> <a id="1825" href="Relation.Binary.Definitions.html#1807" class="Bound">Q</a> <a id="1827" href="Relation.Binary.Definitions.html#1818" class="Bound">j</a> <a id="1829" href="Relation.Binary.Definitions.html#1820" class="Bound">k</a> <a id="1831" class="Symbol"></a> <a id="1833" href="Relation.Binary.Definitions.html#1805" class="Bound">P</a> <a id="1835" href="Relation.Binary.Definitions.html#1816" class="Bound">i</a> <a id="1837" href="Relation.Binary.Definitions.html#1818" class="Bound">j</a> <a id="1839" class="Symbol"></a> <a id="1841" href="Relation.Binary.Definitions.html#1809" class="Bound">R</a> <a id="1843" href="Relation.Binary.Definitions.html#1816" class="Bound">i</a> <a id="1845" href="Relation.Binary.Definitions.html#1820" class="Bound">k</a>
<a id="1848" class="Comment">-- Transitivity.</a>
<a id="Transitive"></a><a id="1866" href="Relation.Binary.Definitions.html#1866" class="Function">Transitive</a> <a id="1877" class="Symbol">:</a> <a id="1879" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="1883" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="1885" href="Relation.Binary.Definitions.html#701" class="Generalizable"></a> <a id="1887" class="Symbol"></a> <a id="1889" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1893" class="Symbol">_</a>
<a id="1895" href="Relation.Binary.Definitions.html#1866" class="Function">Transitive</a> <a id="1906" href="Relation.Binary.Definitions.html#1906" class="Bound Operator">__</a> <a id="1910" class="Symbol">=</a> <a id="1912" href="Relation.Binary.Definitions.html#1585" class="Function">Trans</a> <a id="1918" href="Relation.Binary.Definitions.html#1906" class="Bound Operator">__</a> <a id="1922" href="Relation.Binary.Definitions.html#1906" class="Bound Operator">__</a> <a id="1926" href="Relation.Binary.Definitions.html#1906" class="Bound Operator">__</a>
<a id="1931" class="Comment">-- Generalised antisymmetry</a>
<a id="Antisym"></a><a id="1960" href="Relation.Binary.Definitions.html#1960" class="Function">Antisym</a> <a id="1968" class="Symbol">:</a> <a id="1970" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="1974" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="1976" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="1978" href="Relation.Binary.Definitions.html#703" class="Generalizable">ℓ₁</a> <a id="1981" class="Symbol"></a> <a id="1983" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="1987" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="1989" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="1991" href="Relation.Binary.Definitions.html#706" class="Generalizable">ℓ₂</a> <a id="1994" class="Symbol"></a> <a id="1996" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="2000" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="2002" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="2004" href="Relation.Binary.Definitions.html#709" class="Generalizable">ℓ₃</a> <a id="2007" class="Symbol"></a> <a id="2009" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2013" class="Symbol">_</a>
<a id="2015" href="Relation.Binary.Definitions.html#1960" class="Function">Antisym</a> <a id="2023" href="Relation.Binary.Definitions.html#2023" class="Bound">R</a> <a id="2025" href="Relation.Binary.Definitions.html#2025" class="Bound">S</a> <a id="2027" href="Relation.Binary.Definitions.html#2027" class="Bound">E</a> <a id="2029" class="Symbol">=</a> <a id="2031" class="Symbol"></a> <a id="2033" class="Symbol">{</a><a id="2034" href="Relation.Binary.Definitions.html#2034" class="Bound">i</a> <a id="2036" href="Relation.Binary.Definitions.html#2036" class="Bound">j</a><a id="2037" class="Symbol">}</a> <a id="2039" class="Symbol"></a> <a id="2041" href="Relation.Binary.Definitions.html#2023" class="Bound">R</a> <a id="2043" href="Relation.Binary.Definitions.html#2034" class="Bound">i</a> <a id="2045" href="Relation.Binary.Definitions.html#2036" class="Bound">j</a> <a id="2047" class="Symbol"></a> <a id="2049" href="Relation.Binary.Definitions.html#2025" class="Bound">S</a> <a id="2051" href="Relation.Binary.Definitions.html#2036" class="Bound">j</a> <a id="2053" href="Relation.Binary.Definitions.html#2034" class="Bound">i</a> <a id="2055" class="Symbol"></a> <a id="2057" href="Relation.Binary.Definitions.html#2027" class="Bound">E</a> <a id="2059" href="Relation.Binary.Definitions.html#2034" class="Bound">i</a> <a id="2061" href="Relation.Binary.Definitions.html#2036" class="Bound">j</a>
<a id="2064" class="Comment">-- Antisymmetry.</a>
<a id="Antisymmetric"></a><a id="2082" href="Relation.Binary.Definitions.html#2082" class="Function">Antisymmetric</a> <a id="2096" class="Symbol">:</a> <a id="2098" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="2102" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="2104" href="Relation.Binary.Definitions.html#703" class="Generalizable">ℓ₁</a> <a id="2107" class="Symbol"></a> <a id="2109" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="2113" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="2115" href="Relation.Binary.Definitions.html#706" class="Generalizable">ℓ₂</a> <a id="2118" class="Symbol"></a> <a id="2120" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2124" class="Symbol">_</a>
<a id="2126" href="Relation.Binary.Definitions.html#2082" class="Function">Antisymmetric</a> <a id="2140" href="Relation.Binary.Definitions.html#2140" class="Bound Operator">_≈_</a> <a id="2144" href="Relation.Binary.Definitions.html#2144" class="Bound Operator">_≤_</a> <a id="2148" class="Symbol">=</a> <a id="2150" href="Relation.Binary.Definitions.html#1960" class="Function">Antisym</a> <a id="2158" href="Relation.Binary.Definitions.html#2144" class="Bound Operator">_≤_</a> <a id="2162" href="Relation.Binary.Definitions.html#2144" class="Bound Operator">_≤_</a> <a id="2166" href="Relation.Binary.Definitions.html#2140" class="Bound Operator">_≈_</a>
<a id="2171" class="Comment">-- Irreflexivity - this is defined terms of the underlying equality.</a>
<a id="Irreflexive"></a><a id="2241" href="Relation.Binary.Definitions.html#2241" class="Function">Irreflexive</a> <a id="2253" class="Symbol">:</a> <a id="2255" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="2259" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="2261" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="2263" href="Relation.Binary.Definitions.html#703" class="Generalizable">ℓ₁</a> <a id="2266" class="Symbol"></a> <a id="2268" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="2272" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="2274" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="2276" href="Relation.Binary.Definitions.html#706" class="Generalizable">ℓ₂</a> <a id="2279" class="Symbol"></a> <a id="2281" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2285" class="Symbol">_</a>
<a id="2287" href="Relation.Binary.Definitions.html#2241" class="Function">Irreflexive</a> <a id="2299" href="Relation.Binary.Definitions.html#2299" class="Bound Operator">_≈_</a> <a id="2303" href="Relation.Binary.Definitions.html#2303" class="Bound Operator">_&lt;_</a> <a id="2307" class="Symbol">=</a> <a id="2309" class="Symbol"></a> <a id="2311" class="Symbol">{</a><a id="2312" href="Relation.Binary.Definitions.html#2312" class="Bound">x</a> <a id="2314" href="Relation.Binary.Definitions.html#2314" class="Bound">y</a><a id="2315" class="Symbol">}</a> <a id="2317" class="Symbol"></a> <a id="2319" href="Relation.Binary.Definitions.html#2312" class="Bound">x</a> <a id="2321" href="Relation.Binary.Definitions.html#2299" class="Bound Operator"></a> <a id="2323" href="Relation.Binary.Definitions.html#2314" class="Bound">y</a> <a id="2325" class="Symbol"></a> <a id="2327" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="2329" class="Symbol">(</a><a id="2330" href="Relation.Binary.Definitions.html#2312" class="Bound">x</a> <a id="2332" href="Relation.Binary.Definitions.html#2303" class="Bound Operator">&lt;</a> <a id="2334" href="Relation.Binary.Definitions.html#2314" class="Bound">y</a><a id="2335" class="Symbol">)</a>
<a id="2338" class="Comment">-- Asymmetry.</a>
<a id="Asymmetric"></a><a id="2353" href="Relation.Binary.Definitions.html#2353" class="Function">Asymmetric</a> <a id="2364" class="Symbol">:</a> <a id="2366" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="2370" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="2372" href="Relation.Binary.Definitions.html#701" class="Generalizable"></a> <a id="2374" class="Symbol"></a> <a id="2376" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2380" class="Symbol">_</a>
<a id="2382" href="Relation.Binary.Definitions.html#2353" class="Function">Asymmetric</a> <a id="2393" href="Relation.Binary.Definitions.html#2393" class="Bound Operator">_&lt;_</a> <a id="2397" class="Symbol">=</a> <a id="2399" class="Symbol"></a> <a id="2401" class="Symbol">{</a><a id="2402" href="Relation.Binary.Definitions.html#2402" class="Bound">x</a> <a id="2404" href="Relation.Binary.Definitions.html#2404" class="Bound">y</a><a id="2405" class="Symbol">}</a> <a id="2407" class="Symbol"></a> <a id="2409" href="Relation.Binary.Definitions.html#2402" class="Bound">x</a> <a id="2411" href="Relation.Binary.Definitions.html#2393" class="Bound Operator">&lt;</a> <a id="2413" href="Relation.Binary.Definitions.html#2404" class="Bound">y</a> <a id="2415" class="Symbol"></a> <a id="2417" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="2419" class="Symbol">(</a><a id="2420" href="Relation.Binary.Definitions.html#2404" class="Bound">y</a> <a id="2422" href="Relation.Binary.Definitions.html#2393" class="Bound Operator">&lt;</a> <a id="2424" href="Relation.Binary.Definitions.html#2402" class="Bound">x</a><a id="2425" class="Symbol">)</a>
<a id="2428" class="Comment">-- Generalised connex - exactly one of the two relations holds.</a>
<a id="Connex"></a><a id="2493" href="Relation.Binary.Definitions.html#2493" class="Function">Connex</a> <a id="2500" class="Symbol">:</a> <a id="2502" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="2506" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="2508" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="2510" href="Relation.Binary.Definitions.html#703" class="Generalizable">ℓ₁</a> <a id="2513" class="Symbol"></a> <a id="2515" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="2519" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="2521" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="2523" href="Relation.Binary.Definitions.html#706" class="Generalizable">ℓ₂</a> <a id="2526" class="Symbol"></a> <a id="2528" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2532" class="Symbol">_</a>
<a id="2534" href="Relation.Binary.Definitions.html#2493" class="Function">Connex</a> <a id="2541" href="Relation.Binary.Definitions.html#2541" class="Bound">P</a> <a id="2543" href="Relation.Binary.Definitions.html#2543" class="Bound">Q</a> <a id="2545" class="Symbol">=</a> <a id="2547" class="Symbol"></a> <a id="2549" href="Relation.Binary.Definitions.html#2549" class="Bound">x</a> <a id="2551" href="Relation.Binary.Definitions.html#2551" class="Bound">y</a> <a id="2553" class="Symbol"></a> <a id="2555" href="Relation.Binary.Definitions.html#2541" class="Bound">P</a> <a id="2557" href="Relation.Binary.Definitions.html#2549" class="Bound">x</a> <a id="2559" href="Relation.Binary.Definitions.html#2551" class="Bound">y</a> <a id="2561" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="2563" href="Relation.Binary.Definitions.html#2543" class="Bound">Q</a> <a id="2565" href="Relation.Binary.Definitions.html#2551" class="Bound">y</a> <a id="2567" href="Relation.Binary.Definitions.html#2549" class="Bound">x</a>
<a id="2570" class="Comment">-- Totality.</a>
<a id="Total"></a><a id="2584" href="Relation.Binary.Definitions.html#2584" class="Function">Total</a> <a id="2590" class="Symbol">:</a> <a id="2592" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="2596" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="2598" href="Relation.Binary.Definitions.html#701" class="Generalizable"></a> <a id="2600" class="Symbol"></a> <a id="2602" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2606" class="Symbol">_</a>
<a id="2608" href="Relation.Binary.Definitions.html#2584" class="Function">Total</a> <a id="2614" href="Relation.Binary.Definitions.html#2614" class="Bound Operator">__</a> <a id="2618" class="Symbol">=</a> <a id="2620" href="Relation.Binary.Definitions.html#2493" class="Function">Connex</a> <a id="2627" href="Relation.Binary.Definitions.html#2614" class="Bound Operator">__</a> <a id="2631" href="Relation.Binary.Definitions.html#2614" class="Bound Operator">__</a>
<a id="2636" class="Comment">-- Generalised trichotomy - exactly one of three types has a witness.</a>
<a id="2707" class="Keyword">data</a> <a id="Tri"></a><a id="2712" href="Relation.Binary.Definitions.html#2712" class="Datatype">Tri</a> <a id="2716" class="Symbol">(</a><a id="2717" href="Relation.Binary.Definitions.html#2717" class="Bound">A</a> <a id="2719" class="Symbol">:</a> <a id="2721" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2725" href="Relation.Binary.Definitions.html#695" class="Generalizable">a</a><a id="2726" class="Symbol">)</a> <a id="2728" class="Symbol">(</a><a id="2729" href="Relation.Binary.Definitions.html#2729" class="Bound">B</a> <a id="2731" class="Symbol">:</a> <a id="2733" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2737" href="Relation.Binary.Definitions.html#697" class="Generalizable">b</a><a id="2738" class="Symbol">)</a> <a id="2740" class="Symbol">(</a><a id="2741" href="Relation.Binary.Definitions.html#2741" class="Bound">C</a> <a id="2743" class="Symbol">:</a> <a id="2745" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2749" href="Relation.Binary.Definitions.html#699" class="Generalizable">c</a><a id="2750" class="Symbol">)</a> <a id="2752" class="Symbol">:</a> <a id="2754" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2758" class="Symbol">(</a><a id="2759" href="Relation.Binary.Definitions.html#2725" class="Bound">a</a> <a id="2761" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2763" href="Relation.Binary.Definitions.html#2737" class="Bound">b</a> <a id="2765" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2767" href="Relation.Binary.Definitions.html#2749" class="Bound">c</a><a id="2768" class="Symbol">)</a> <a id="2770" class="Keyword">where</a>
<a id="Tri.tri&lt;"></a><a id="2778" href="Relation.Binary.Definitions.html#2778" class="InductiveConstructor">tri&lt;</a> <a id="2783" class="Symbol">:</a> <a id="2785" class="Symbol">(</a> <a id="2787" href="Relation.Binary.Definitions.html#2787" class="Bound">a</a> <a id="2789" class="Symbol">:</a> <a id="2793" href="Relation.Binary.Definitions.html#2717" class="Bound">A</a><a id="2794" class="Symbol">)</a> <a id="2796" class="Symbol">(</a><a id="2797" href="Relation.Binary.Definitions.html#2797" class="Bound">¬b</a> <a id="2800" class="Symbol">:</a> <a id="2802" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="2804" href="Relation.Binary.Definitions.html#2729" class="Bound">B</a><a id="2805" class="Symbol">)</a> <a id="2807" class="Symbol">(</a><a id="2808" href="Relation.Binary.Definitions.html#2808" class="Bound">¬c</a> <a id="2811" class="Symbol">:</a> <a id="2813" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="2815" href="Relation.Binary.Definitions.html#2741" class="Bound">C</a><a id="2816" class="Symbol">)</a> <a id="2818" class="Symbol"></a> <a id="2820" href="Relation.Binary.Definitions.html#2712" class="Datatype">Tri</a> <a id="2824" href="Relation.Binary.Definitions.html#2717" class="Bound">A</a> <a id="2826" href="Relation.Binary.Definitions.html#2729" class="Bound">B</a> <a id="2828" href="Relation.Binary.Definitions.html#2741" class="Bound">C</a>
<a id="Tri.tri≈"></a><a id="2832" href="Relation.Binary.Definitions.html#2832" class="InductiveConstructor">tri≈</a> <a id="2837" class="Symbol">:</a> <a id="2839" class="Symbol">(</a><a id="2840" href="Relation.Binary.Definitions.html#2840" class="Bound">¬a</a> <a id="2843" class="Symbol">:</a> <a id="2845" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="2847" href="Relation.Binary.Definitions.html#2717" class="Bound">A</a><a id="2848" class="Symbol">)</a> <a id="2850" class="Symbol">(</a> <a id="2852" href="Relation.Binary.Definitions.html#2852" class="Bound">b</a> <a id="2854" class="Symbol">:</a> <a id="2858" href="Relation.Binary.Definitions.html#2729" class="Bound">B</a><a id="2859" class="Symbol">)</a> <a id="2861" class="Symbol">(</a><a id="2862" href="Relation.Binary.Definitions.html#2862" class="Bound">¬c</a> <a id="2865" class="Symbol">:</a> <a id="2867" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="2869" href="Relation.Binary.Definitions.html#2741" class="Bound">C</a><a id="2870" class="Symbol">)</a> <a id="2872" class="Symbol"></a> <a id="2874" href="Relation.Binary.Definitions.html#2712" class="Datatype">Tri</a> <a id="2878" href="Relation.Binary.Definitions.html#2717" class="Bound">A</a> <a id="2880" href="Relation.Binary.Definitions.html#2729" class="Bound">B</a> <a id="2882" href="Relation.Binary.Definitions.html#2741" class="Bound">C</a>
<a id="Tri.tri&gt;"></a><a id="2886" href="Relation.Binary.Definitions.html#2886" class="InductiveConstructor">tri&gt;</a> <a id="2891" class="Symbol">:</a> <a id="2893" class="Symbol">(</a><a id="2894" href="Relation.Binary.Definitions.html#2894" class="Bound">¬a</a> <a id="2897" class="Symbol">:</a> <a id="2899" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="2901" href="Relation.Binary.Definitions.html#2717" class="Bound">A</a><a id="2902" class="Symbol">)</a> <a id="2904" class="Symbol">(</a><a id="2905" href="Relation.Binary.Definitions.html#2905" class="Bound">¬b</a> <a id="2908" class="Symbol">:</a> <a id="2910" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="2912" href="Relation.Binary.Definitions.html#2729" class="Bound">B</a><a id="2913" class="Symbol">)</a> <a id="2915" class="Symbol">(</a> <a id="2917" href="Relation.Binary.Definitions.html#2917" class="Bound">c</a> <a id="2919" class="Symbol">:</a> <a id="2923" href="Relation.Binary.Definitions.html#2741" class="Bound">C</a><a id="2924" class="Symbol">)</a> <a id="2926" class="Symbol"></a> <a id="2928" href="Relation.Binary.Definitions.html#2712" class="Datatype">Tri</a> <a id="2932" href="Relation.Binary.Definitions.html#2717" class="Bound">A</a> <a id="2934" href="Relation.Binary.Definitions.html#2729" class="Bound">B</a> <a id="2936" href="Relation.Binary.Definitions.html#2741" class="Bound">C</a>
<a id="2939" class="Comment">-- Trichotomy.</a>
<a id="Trichotomous"></a><a id="2955" href="Relation.Binary.Definitions.html#2955" class="Function">Trichotomous</a> <a id="2968" class="Symbol">:</a> <a id="2970" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="2974" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="2976" href="Relation.Binary.Definitions.html#703" class="Generalizable">ℓ₁</a> <a id="2979" class="Symbol"></a> <a id="2981" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="2985" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="2987" href="Relation.Binary.Definitions.html#706" class="Generalizable">ℓ₂</a> <a id="2990" class="Symbol"></a> <a id="2992" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2996" class="Symbol">_</a>
<a id="2998" href="Relation.Binary.Definitions.html#2955" class="Function">Trichotomous</a> <a id="3011" href="Relation.Binary.Definitions.html#3011" class="Bound Operator">_≈_</a> <a id="3015" href="Relation.Binary.Definitions.html#3015" class="Bound Operator">_&lt;_</a> <a id="3019" class="Symbol">=</a> <a id="3021" class="Symbol"></a> <a id="3023" href="Relation.Binary.Definitions.html#3023" class="Bound">x</a> <a id="3025" href="Relation.Binary.Definitions.html#3025" class="Bound">y</a> <a id="3027" class="Symbol"></a> <a id="3029" href="Relation.Binary.Definitions.html#2712" class="Datatype">Tri</a> <a id="3033" class="Symbol">(</a><a id="3034" href="Relation.Binary.Definitions.html#3023" class="Bound">x</a> <a id="3036" href="Relation.Binary.Definitions.html#3015" class="Bound Operator">&lt;</a> <a id="3038" href="Relation.Binary.Definitions.html#3025" class="Bound">y</a><a id="3039" class="Symbol">)</a> <a id="3041" class="Symbol">(</a><a id="3042" href="Relation.Binary.Definitions.html#3023" class="Bound">x</a> <a id="3044" href="Relation.Binary.Definitions.html#3011" class="Bound Operator"></a> <a id="3046" href="Relation.Binary.Definitions.html#3025" class="Bound">y</a><a id="3047" class="Symbol">)</a> <a id="3049" class="Symbol">(</a><a id="3050" href="Relation.Binary.Definitions.html#3023" class="Bound">x</a> <a id="3052" href="Relation.Binary.Definitions.html#3065" class="Function Operator">&gt;</a> <a id="3054" href="Relation.Binary.Definitions.html#3025" class="Bound">y</a><a id="3055" class="Symbol">)</a>
<a id="3059" class="Keyword">where</a> <a id="3065" href="Relation.Binary.Definitions.html#3065" class="Function Operator">_&gt;_</a> <a id="3069" class="Symbol">=</a> <a id="3071" href="Function.Base.html#1554" class="Function">flip</a> <a id="3076" href="Relation.Binary.Definitions.html#3015" class="Bound Operator">_&lt;_</a>
<a id="3081" class="Comment">-- Generalised maximum element.</a>
<a id="Max"></a><a id="3114" href="Relation.Binary.Definitions.html#3114" class="Function">Max</a> <a id="3118" class="Symbol">:</a> <a id="3120" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="3124" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="3126" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="3128" href="Relation.Binary.Definitions.html#701" class="Generalizable"></a> <a id="3130" class="Symbol"></a> <a id="3132" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="3134" class="Symbol"></a> <a id="3136" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3140" class="Symbol">_</a>
<a id="3142" href="Relation.Binary.Definitions.html#3114" class="Function">Max</a> <a id="3146" href="Relation.Binary.Definitions.html#3146" class="Bound Operator">_≤_</a> <a id="3150" href="Relation.Binary.Definitions.html#3150" class="Bound">T</a> <a id="3152" class="Symbol">=</a> <a id="3154" class="Symbol"></a> <a id="3156" href="Relation.Binary.Definitions.html#3156" class="Bound">x</a> <a id="3158" class="Symbol"></a> <a id="3160" href="Relation.Binary.Definitions.html#3156" class="Bound">x</a> <a id="3162" href="Relation.Binary.Definitions.html#3146" class="Bound Operator"></a> <a id="3164" href="Relation.Binary.Definitions.html#3150" class="Bound">T</a>
<a id="3167" class="Comment">-- Maximum element.</a>
<a id="Maximum"></a><a id="3188" href="Relation.Binary.Definitions.html#3188" class="Function">Maximum</a> <a id="3196" class="Symbol">:</a> <a id="3198" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="3202" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="3204" href="Relation.Binary.Definitions.html#701" class="Generalizable"></a> <a id="3206" class="Symbol"></a> <a id="3208" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="3210" class="Symbol"></a> <a id="3212" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3216" class="Symbol">_</a>
<a id="3218" href="Relation.Binary.Definitions.html#3188" class="Function">Maximum</a> <a id="3226" class="Symbol">=</a> <a id="3228" href="Relation.Binary.Definitions.html#3114" class="Function">Max</a>
<a id="3233" class="Comment">-- Generalised minimum element.</a>
<a id="Min"></a><a id="3266" href="Relation.Binary.Definitions.html#3266" class="Function">Min</a> <a id="3270" class="Symbol">:</a> <a id="3272" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="3276" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="3278" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="3280" href="Relation.Binary.Definitions.html#701" class="Generalizable"></a> <a id="3282" class="Symbol"></a> <a id="3284" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="3286" class="Symbol"></a> <a id="3288" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3292" class="Symbol">_</a>
<a id="3294" href="Relation.Binary.Definitions.html#3266" class="Function">Min</a> <a id="3298" href="Relation.Binary.Definitions.html#3298" class="Bound">R</a> <a id="3300" class="Symbol">=</a> <a id="3302" href="Relation.Binary.Definitions.html#3114" class="Function">Max</a> <a id="3306" class="Symbol">(</a><a id="3307" href="Function.Base.html#1554" class="Function">flip</a> <a id="3312" href="Relation.Binary.Definitions.html#3298" class="Bound">R</a><a id="3313" class="Symbol">)</a>
<a id="3316" class="Comment">-- Minimum element.</a>
<a id="Minimum"></a><a id="3337" href="Relation.Binary.Definitions.html#3337" class="Function">Minimum</a> <a id="3345" class="Symbol">:</a> <a id="3347" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="3351" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="3353" href="Relation.Binary.Definitions.html#701" class="Generalizable"></a> <a id="3355" class="Symbol"></a> <a id="3357" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="3359" class="Symbol"></a> <a id="3361" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3365" class="Symbol">_</a>
<a id="3367" href="Relation.Binary.Definitions.html#3337" class="Function">Minimum</a> <a id="3375" class="Symbol">=</a> <a id="3377" href="Relation.Binary.Definitions.html#3266" class="Function">Min</a>
<a id="3382" class="Comment">-- Unary relations respecting a binary relation.</a>
<a id="_⟶_Respects_"></a><a id="3432" href="Relation.Binary.Definitions.html#3432" class="Function Operator">_⟶_Respects_</a> <a id="3445" class="Symbol">:</a> <a id="3447" class="Symbol">(</a><a id="3448" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="3450" class="Symbol"></a> <a id="3452" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3456" href="Relation.Binary.Definitions.html#703" class="Generalizable">ℓ₁</a><a id="3458" class="Symbol">)</a> <a id="3460" class="Symbol"></a> <a id="3462" class="Symbol">(</a><a id="3463" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="3465" class="Symbol"></a> <a id="3467" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3471" href="Relation.Binary.Definitions.html#706" class="Generalizable">ℓ₂</a><a id="3473" class="Symbol">)</a> <a id="3475" class="Symbol"></a> <a id="3477" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="3481" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="3483" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="3485" href="Relation.Binary.Definitions.html#709" class="Generalizable">ℓ₃</a> <a id="3488" class="Symbol"></a> <a id="3490" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3494" class="Symbol">_</a>
<a id="3496" href="Relation.Binary.Definitions.html#3496" class="Bound">P</a> <a id="3498" href="Relation.Binary.Definitions.html#3432" class="Function Operator"></a> <a id="3500" href="Relation.Binary.Definitions.html#3500" class="Bound">Q</a> <a id="3502" href="Relation.Binary.Definitions.html#3432" class="Function Operator">Respects</a> <a id="3511" href="Relation.Binary.Definitions.html#3511" class="Bound Operator">__</a> <a id="3515" class="Symbol">=</a> <a id="3517" class="Symbol"></a> <a id="3519" class="Symbol">{</a><a id="3520" href="Relation.Binary.Definitions.html#3520" class="Bound">x</a> <a id="3522" href="Relation.Binary.Definitions.html#3522" class="Bound">y</a><a id="3523" class="Symbol">}</a> <a id="3525" class="Symbol"></a> <a id="3527" href="Relation.Binary.Definitions.html#3520" class="Bound">x</a> <a id="3529" href="Relation.Binary.Definitions.html#3511" class="Bound Operator"></a> <a id="3531" href="Relation.Binary.Definitions.html#3522" class="Bound">y</a> <a id="3533" class="Symbol"></a> <a id="3535" href="Relation.Binary.Definitions.html#3496" class="Bound">P</a> <a id="3537" href="Relation.Binary.Definitions.html#3520" class="Bound">x</a> <a id="3539" class="Symbol"></a> <a id="3541" href="Relation.Binary.Definitions.html#3500" class="Bound">Q</a> <a id="3543" href="Relation.Binary.Definitions.html#3522" class="Bound">y</a>
<a id="3546" class="Comment">-- Unary relation respects a binary relation.</a>
<a id="_Respects_"></a><a id="3593" href="Relation.Binary.Definitions.html#3593" class="Function Operator">_Respects_</a> <a id="3604" class="Symbol">:</a> <a id="3606" class="Symbol">(</a><a id="3607" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="3609" class="Symbol"></a> <a id="3611" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3615" href="Relation.Binary.Definitions.html#703" class="Generalizable">ℓ₁</a><a id="3617" class="Symbol">)</a> <a id="3619" class="Symbol"></a> <a id="3621" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="3625" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="3627" href="Relation.Binary.Definitions.html#706" class="Generalizable">ℓ₂</a> <a id="3630" class="Symbol"></a> <a id="3632" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3636" class="Symbol">_</a>
<a id="3638" href="Relation.Binary.Definitions.html#3638" class="Bound">P</a> <a id="3640" href="Relation.Binary.Definitions.html#3593" class="Function Operator">Respects</a> <a id="3649" href="Relation.Binary.Definitions.html#3649" class="Bound Operator">__</a> <a id="3653" class="Symbol">=</a> <a id="3655" href="Relation.Binary.Definitions.html#3638" class="Bound">P</a> <a id="3657" href="Relation.Binary.Definitions.html#3432" class="Function Operator"></a> <a id="3659" href="Relation.Binary.Definitions.html#3638" class="Bound">P</a> <a id="3661" href="Relation.Binary.Definitions.html#3432" class="Function Operator">Respects</a> <a id="3670" href="Relation.Binary.Definitions.html#3649" class="Bound Operator">__</a>
<a id="3675" class="Comment">-- Right respecting - relatedness is preserved on the right by equality.</a>
<a id="_Respectsʳ_"></a><a id="3749" href="Relation.Binary.Definitions.html#3749" class="Function Operator">_Respectsʳ_</a> <a id="3761" class="Symbol">:</a> <a id="3763" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="3767" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="3769" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="3771" href="Relation.Binary.Definitions.html#703" class="Generalizable">ℓ₁</a> <a id="3774" class="Symbol"></a> <a id="3776" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="3780" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="3782" href="Relation.Binary.Definitions.html#706" class="Generalizable">ℓ₂</a> <a id="3785" class="Symbol"></a> <a id="3787" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3791" class="Symbol">_</a>
<a id="3793" href="Relation.Binary.Definitions.html#3793" class="Bound Operator">__</a> <a id="3797" href="Relation.Binary.Definitions.html#3749" class="Function Operator">Respectsʳ</a> <a id="3807" href="Relation.Binary.Definitions.html#3807" class="Bound Operator">_≈_</a> <a id="3811" class="Symbol">=</a> <a id="3813" class="Symbol"></a> <a id="3815" class="Symbol">{</a><a id="3816" href="Relation.Binary.Definitions.html#3816" class="Bound">x</a><a id="3817" class="Symbol">}</a> <a id="3819" class="Symbol"></a> <a id="3821" class="Symbol">(</a><a id="3822" href="Relation.Binary.Definitions.html#3816" class="Bound">x</a> <a id="3824" href="Relation.Binary.Definitions.html#3793" class="Bound Operator">_</a><a id="3826" class="Symbol">)</a> <a id="3828" href="Relation.Binary.Definitions.html#3593" class="Function Operator">Respects</a> <a id="3837" href="Relation.Binary.Definitions.html#3807" class="Bound Operator">_≈_</a>
<a id="3842" class="Comment">-- Left respecting - relatedness is preserved on the left by equality.</a>
<a id="_Respectsˡ_"></a><a id="3914" href="Relation.Binary.Definitions.html#3914" class="Function Operator">_Respectsˡ_</a> <a id="3926" class="Symbol">:</a> <a id="3928" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="3932" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="3934" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="3936" href="Relation.Binary.Definitions.html#703" class="Generalizable">ℓ₁</a> <a id="3939" class="Symbol"></a> <a id="3941" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="3945" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="3947" href="Relation.Binary.Definitions.html#706" class="Generalizable">ℓ₂</a> <a id="3950" class="Symbol"></a> <a id="3952" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3956" class="Symbol">_</a>
<a id="3958" href="Relation.Binary.Definitions.html#3958" class="Bound">P</a> <a id="3960" href="Relation.Binary.Definitions.html#3914" class="Function Operator">Respectsˡ</a> <a id="3970" href="Relation.Binary.Definitions.html#3970" class="Bound Operator">__</a> <a id="3974" class="Symbol">=</a> <a id="3976" class="Symbol"></a> <a id="3978" class="Symbol">{</a><a id="3979" href="Relation.Binary.Definitions.html#3979" class="Bound">y</a><a id="3980" class="Symbol">}</a> <a id="3982" class="Symbol"></a> <a id="3984" class="Symbol">(</a><a id="3985" href="Function.Base.html#1554" class="Function">flip</a> <a id="3990" href="Relation.Binary.Definitions.html#3958" class="Bound">P</a> <a id="3992" href="Relation.Binary.Definitions.html#3979" class="Bound">y</a><a id="3993" class="Symbol">)</a> <a id="3995" href="Relation.Binary.Definitions.html#3593" class="Function Operator">Respects</a> <a id="4004" href="Relation.Binary.Definitions.html#3970" class="Bound Operator">__</a>
<a id="4009" class="Comment">-- Respecting - relatedness is preserved on both sides by equality</a>
<a id="_Respects₂_"></a><a id="4077" href="Relation.Binary.Definitions.html#4077" class="Function Operator">_Respects₂_</a> <a id="4089" class="Symbol">:</a> <a id="4091" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="4095" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="4097" href="Relation.Binary.Definitions.html#703" class="Generalizable">ℓ₁</a> <a id="4100" class="Symbol"></a> <a id="4102" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="4106" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="4108" href="Relation.Binary.Definitions.html#706" class="Generalizable">ℓ₂</a> <a id="4111" class="Symbol"></a> <a id="4113" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4117" class="Symbol">_</a>
<a id="4119" href="Relation.Binary.Definitions.html#4119" class="Bound">P</a> <a id="4121" href="Relation.Binary.Definitions.html#4077" class="Function Operator">Respects₂</a> <a id="4131" href="Relation.Binary.Definitions.html#4131" class="Bound Operator">__</a> <a id="4135" class="Symbol">=</a> <a id="4137" class="Symbol">(</a><a id="4138" href="Relation.Binary.Definitions.html#4119" class="Bound">P</a> <a id="4140" href="Relation.Binary.Definitions.html#3749" class="Function Operator">Respectsʳ</a> <a id="4150" href="Relation.Binary.Definitions.html#4131" class="Bound Operator">__</a><a id="4153" class="Symbol">)</a> <a id="4155" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="4157" class="Symbol">(</a><a id="4158" href="Relation.Binary.Definitions.html#4119" class="Bound">P</a> <a id="4160" href="Relation.Binary.Definitions.html#3914" class="Function Operator">Respectsˡ</a> <a id="4170" href="Relation.Binary.Definitions.html#4131" class="Bound Operator">__</a><a id="4173" class="Symbol">)</a>
<a id="4176" class="Comment">-- Substitutivity - any two related elements satisfy exactly the same</a>
<a id="4246" class="Comment">-- set of unary relations. Note that only the various derivatives</a>
<a id="4312" class="Comment">-- of propositional equality can satisfy this property.</a>
<a id="Substitutive"></a><a id="4369" href="Relation.Binary.Definitions.html#4369" class="Function">Substitutive</a> <a id="4382" class="Symbol">:</a> <a id="4384" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="4388" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="4390" href="Relation.Binary.Definitions.html#703" class="Generalizable">ℓ₁</a> <a id="4393" class="Symbol"></a> <a id="4395" class="Symbol">(</a><a id="4396" href="Relation.Binary.Definitions.html#4396" class="Bound">ℓ₂</a> <a id="4399" class="Symbol">:</a> <a id="4401" href="Agda.Primitive.html#597" class="Postulate">Level</a><a id="4406" class="Symbol">)</a> <a id="4408" class="Symbol"></a> <a id="4410" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4414" class="Symbol">_</a>
<a id="4416" href="Relation.Binary.Definitions.html#4369" class="Function">Substitutive</a> <a id="4429" class="Symbol">{</a><a id="4430" class="Argument">A</a> <a id="4432" class="Symbol">=</a> <a id="4434" href="Relation.Binary.Definitions.html#4434" class="Bound">A</a><a id="4435" class="Symbol">}</a> <a id="4437" href="Relation.Binary.Definitions.html#4437" class="Bound Operator">__</a> <a id="4441" href="Relation.Binary.Definitions.html#4441" class="Bound">p</a> <a id="4443" class="Symbol">=</a> <a id="4445" class="Symbol">(</a><a id="4446" href="Relation.Binary.Definitions.html#4446" class="Bound">P</a> <a id="4448" class="Symbol">:</a> <a id="4450" href="Relation.Binary.Definitions.html#4434" class="Bound">A</a> <a id="4452" class="Symbol"></a> <a id="4454" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4458" href="Relation.Binary.Definitions.html#4441" class="Bound">p</a><a id="4459" class="Symbol">)</a> <a id="4461" class="Symbol"></a> <a id="4463" href="Relation.Binary.Definitions.html#4446" class="Bound">P</a> <a id="4465" href="Relation.Binary.Definitions.html#3593" class="Function Operator">Respects</a> <a id="4474" href="Relation.Binary.Definitions.html#4437" class="Bound Operator">__</a>
<a id="4479" class="Comment">-- Decidability - it is possible to determine whether a given pair of</a>
<a id="4549" class="Comment">-- elements are related.</a>
<a id="Decidable"></a><a id="4575" href="Relation.Binary.Definitions.html#4575" class="Function">Decidable</a> <a id="4585" class="Symbol">:</a> <a id="4587" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="4591" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="4593" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="4595" href="Relation.Binary.Definitions.html#701" class="Generalizable"></a> <a id="4597" class="Symbol"></a> <a id="4599" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4603" class="Symbol">_</a>
<a id="4605" href="Relation.Binary.Definitions.html#4575" class="Function">Decidable</a> <a id="4615" href="Relation.Binary.Definitions.html#4615" class="Bound Operator">__</a> <a id="4619" class="Symbol">=</a> <a id="4621" class="Symbol"></a> <a id="4623" href="Relation.Binary.Definitions.html#4623" class="Bound">x</a> <a id="4625" href="Relation.Binary.Definitions.html#4625" class="Bound">y</a> <a id="4627" class="Symbol"></a> <a id="4629" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="4633" class="Symbol">(</a><a id="4634" href="Relation.Binary.Definitions.html#4623" class="Bound">x</a> <a id="4636" href="Relation.Binary.Definitions.html#4615" class="Bound Operator"></a> <a id="4638" href="Relation.Binary.Definitions.html#4625" class="Bound">y</a><a id="4639" class="Symbol">)</a>
<a id="4642" class="Comment">-- Weak decidability - it is sometimes possible to determine if a given</a>
<a id="4714" class="Comment">-- pair of elements are related.</a>
<a id="WeaklyDecidable"></a><a id="4748" href="Relation.Binary.Definitions.html#4748" class="Function">WeaklyDecidable</a> <a id="4764" class="Symbol">:</a> <a id="4766" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="4770" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="4772" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="4774" href="Relation.Binary.Definitions.html#701" class="Generalizable"></a> <a id="4776" class="Symbol"></a> <a id="4778" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4782" class="Symbol">_</a>
<a id="4784" href="Relation.Binary.Definitions.html#4748" class="Function">WeaklyDecidable</a> <a id="4800" href="Relation.Binary.Definitions.html#4800" class="Bound Operator">__</a> <a id="4804" class="Symbol">=</a> <a id="4806" class="Symbol"></a> <a id="4808" href="Relation.Binary.Definitions.html#4808" class="Bound">x</a> <a id="4810" href="Relation.Binary.Definitions.html#4810" class="Bound">y</a> <a id="4812" class="Symbol"></a> <a id="4814" href="Agda.Builtin.Maybe.html#136" class="Datatype">Maybe</a> <a id="4820" class="Symbol">(</a><a id="4821" href="Relation.Binary.Definitions.html#4808" class="Bound">x</a> <a id="4823" href="Relation.Binary.Definitions.html#4800" class="Bound Operator"></a> <a id="4825" href="Relation.Binary.Definitions.html#4810" class="Bound">y</a><a id="4826" class="Symbol">)</a>
<a id="4829" class="Comment">-- Propositional equality is decidable for the type.</a>
<a id="DecidableEquality"></a><a id="4883" href="Relation.Binary.Definitions.html#4883" class="Function">DecidableEquality</a> <a id="4901" class="Symbol">:</a> <a id="4903" class="Symbol">(</a><a id="4904" href="Relation.Binary.Definitions.html#4904" class="Bound">A</a> <a id="4906" class="Symbol">:</a> <a id="4908" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4912" href="Relation.Binary.Definitions.html#695" class="Generalizable">a</a><a id="4913" class="Symbol">)</a> <a id="4915" class="Symbol"></a> <a id="4917" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4921" class="Symbol">_</a>
<a id="4923" href="Relation.Binary.Definitions.html#4883" class="Function">DecidableEquality</a> <a id="4941" href="Relation.Binary.Definitions.html#4941" class="Bound">A</a> <a id="4943" class="Symbol">=</a> <a id="4945" href="Relation.Binary.Definitions.html#4575" class="Function">Decidable</a> <a id="4955" class="Symbol">{</a><a id="4956" class="Argument">A</a> <a id="4958" class="Symbol">=</a> <a id="4960" href="Relation.Binary.Definitions.html#4941" class="Bound">A</a><a id="4961" class="Symbol">}</a> <a id="4963" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a>
<a id="4968" class="Comment">-- Irrelevancy - all proofs that a given pair of elements are related</a>
<a id="5038" class="Comment">-- are indistinguishable.</a>
<a id="Irrelevant"></a><a id="5065" href="Relation.Binary.Definitions.html#5065" class="Function">Irrelevant</a> <a id="5076" class="Symbol">:</a> <a id="5078" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="5082" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="5084" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="5086" href="Relation.Binary.Definitions.html#701" class="Generalizable"></a> <a id="5088" class="Symbol"></a> <a id="5090" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="5094" class="Symbol">_</a>
<a id="5096" href="Relation.Binary.Definitions.html#5065" class="Function">Irrelevant</a> <a id="5107" href="Relation.Binary.Definitions.html#5107" class="Bound Operator">__</a> <a id="5111" class="Symbol">=</a> <a id="5113" class="Symbol"></a> <a id="5115" class="Symbol">{</a><a id="5116" href="Relation.Binary.Definitions.html#5116" class="Bound">x</a> <a id="5118" href="Relation.Binary.Definitions.html#5118" class="Bound">y</a><a id="5119" class="Symbol">}</a> <a id="5121" class="Symbol">(</a><a id="5122" href="Relation.Binary.Definitions.html#5122" class="Bound">a</a> <a id="5124" href="Relation.Binary.Definitions.html#5124" class="Bound">b</a> <a id="5126" class="Symbol">:</a> <a id="5128" href="Relation.Binary.Definitions.html#5116" class="Bound">x</a> <a id="5130" href="Relation.Binary.Definitions.html#5107" class="Bound Operator"></a> <a id="5132" href="Relation.Binary.Definitions.html#5118" class="Bound">y</a><a id="5133" class="Symbol">)</a> <a id="5135" class="Symbol"></a> <a id="5137" href="Relation.Binary.Definitions.html#5122" class="Bound">a</a> <a id="5139" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="5141" href="Relation.Binary.Definitions.html#5124" class="Bound">b</a>
<a id="5144" class="Comment">-- Recomputability - we can rebuild a relevant proof given an</a>
<a id="5206" class="Comment">-- irrelevant one.</a>
<a id="Recomputable"></a><a id="5226" href="Relation.Binary.Definitions.html#5226" class="Function">Recomputable</a> <a id="5239" class="Symbol">:</a> <a id="5241" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="5245" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="5247" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="5249" href="Relation.Binary.Definitions.html#701" class="Generalizable"></a> <a id="5251" class="Symbol"></a> <a id="5253" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="5257" class="Symbol">_</a>
<a id="5259" href="Relation.Binary.Definitions.html#5226" class="Function">Recomputable</a> <a id="5272" href="Relation.Binary.Definitions.html#5272" class="Bound Operator">__</a> <a id="5276" class="Symbol">=</a> <a id="5278" class="Symbol"></a> <a id="5280" class="Symbol">{</a><a id="5281" href="Relation.Binary.Definitions.html#5281" class="Bound">x</a> <a id="5283" href="Relation.Binary.Definitions.html#5283" class="Bound">y</a><a id="5284" class="Symbol">}</a> <a id="5286" class="Symbol"></a> <a id="5288" class="Symbol">.(</a><a id="5290" href="Relation.Binary.Definitions.html#5281" class="Bound">x</a> <a id="5292" href="Relation.Binary.Definitions.html#5272" class="Bound Operator"></a> <a id="5294" href="Relation.Binary.Definitions.html#5283" class="Bound">y</a><a id="5295" class="Symbol">)</a> <a id="5297" class="Symbol"></a> <a id="5299" href="Relation.Binary.Definitions.html#5281" class="Bound">x</a> <a id="5301" href="Relation.Binary.Definitions.html#5272" class="Bound Operator"></a> <a id="5303" href="Relation.Binary.Definitions.html#5283" class="Bound">y</a>
<a id="5306" class="Comment">-- Universal - all pairs of elements are related</a>
<a id="Universal"></a><a id="5356" href="Relation.Binary.Definitions.html#5356" class="Function">Universal</a> <a id="5366" class="Symbol">:</a> <a id="5368" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="5372" href="Relation.Binary.Definitions.html#724" class="Generalizable">A</a> <a id="5374" href="Relation.Binary.Definitions.html#738" class="Generalizable">B</a> <a id="5376" href="Relation.Binary.Definitions.html#701" class="Generalizable"></a> <a id="5378" class="Symbol"></a> <a id="5380" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="5384" class="Symbol">_</a>
<a id="5386" href="Relation.Binary.Definitions.html#5356" class="Function">Universal</a> <a id="5396" href="Relation.Binary.Definitions.html#5396" class="Bound Operator">__</a> <a id="5400" class="Symbol">=</a> <a id="5402" class="Symbol"></a> <a id="5404" href="Relation.Binary.Definitions.html#5404" class="Bound">x</a> <a id="5406" href="Relation.Binary.Definitions.html#5406" class="Bound">y</a> <a id="5408" class="Symbol"></a> <a id="5410" href="Relation.Binary.Definitions.html#5404" class="Bound">x</a> <a id="5412" href="Relation.Binary.Definitions.html#5396" class="Bound Operator"></a> <a id="5414" href="Relation.Binary.Definitions.html#5406" class="Bound">y</a>
<a id="5417" class="Comment">-- Non-emptiness - at least one pair of elements are related.</a>
<a id="5480" class="Keyword">record</a> <a id="NonEmpty"></a><a id="5487" href="Relation.Binary.Definitions.html#5487" class="Record">NonEmpty</a> <a id="5496" class="Symbol">{</a><a id="5497" href="Relation.Binary.Definitions.html#5497" class="Bound">A</a> <a id="5499" class="Symbol">:</a> <a id="5501" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="5505" href="Relation.Binary.Definitions.html#695" class="Generalizable">a</a><a id="5506" class="Symbol">}</a> <a id="5508" class="Symbol">{</a><a id="5509" href="Relation.Binary.Definitions.html#5509" class="Bound">B</a> <a id="5511" class="Symbol">:</a> <a id="5513" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="5517" href="Relation.Binary.Definitions.html#697" class="Generalizable">b</a><a id="5518" class="Symbol">}</a>
<a id="5536" class="Symbol">(</a><a id="5537" href="Relation.Binary.Definitions.html#5537" class="Bound">T</a> <a id="5539" class="Symbol">:</a> <a id="5541" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="5545" href="Relation.Binary.Definitions.html#5497" class="Bound">A</a> <a id="5547" href="Relation.Binary.Definitions.html#5509" class="Bound">B</a> <a id="5549" href="Relation.Binary.Definitions.html#701" class="Generalizable"></a><a id="5550" class="Symbol">)</a> <a id="5552" class="Symbol">:</a> <a id="5554" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="5558" class="Symbol">(</a><a id="5559" href="Relation.Binary.Definitions.html#5505" class="Bound">a</a> <a id="5561" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="5563" href="Relation.Binary.Definitions.html#5517" class="Bound">b</a> <a id="5565" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="5567" href="Relation.Binary.Definitions.html#5549" class="Bound"></a><a id="5568" class="Symbol">)</a> <a id="5570" class="Keyword">where</a>
<a id="5578" class="Keyword">constructor</a> <a id="nonEmpty"></a><a id="5590" href="Relation.Binary.Definitions.html#5590" class="InductiveConstructor">nonEmpty</a>
<a id="5601" class="Keyword">field</a>
<a id="5611" class="Symbol">{</a><a id="NonEmpty.x"></a><a id="5612" href="Relation.Binary.Definitions.html#5612" class="Field">x</a><a id="5613" class="Symbol">}</a> <a id="5617" class="Symbol">:</a> <a id="5619" href="Relation.Binary.Definitions.html#5497" class="Bound">A</a>
<a id="5625" class="Symbol">{</a><a id="NonEmpty.y"></a><a id="5626" href="Relation.Binary.Definitions.html#5626" class="Field">y</a><a id="5627" class="Symbol">}</a> <a id="5631" class="Symbol">:</a> <a id="5633" href="Relation.Binary.Definitions.html#5509" class="Bound">B</a>
<a id="NonEmpty.proof"></a><a id="5639" href="Relation.Binary.Definitions.html#5639" class="Field">proof</a> <a id="5645" class="Symbol">:</a> <a id="5647" href="Relation.Binary.Definitions.html#5537" class="Bound">T</a> <a id="5649" href="Relation.Binary.Definitions.html#5612" class="Field">x</a> <a id="5651" href="Relation.Binary.Definitions.html#5626" class="Field">y</a>
<a id="5656" class="Comment">------------------------------------------------------------------------</a>
<a id="5729" class="Comment">-- DEPRECATED NAMES</a>
<a id="5749" class="Comment">------------------------------------------------------------------------</a>
<a id="5822" class="Comment">-- Please use the new names as continuing support for the old names is</a>
<a id="5893" class="Comment">-- not guaranteed.</a>
<a id="5913" class="Comment">-- Version 1.1</a>
<a id="Conn"></a><a id="5929" href="Relation.Binary.Definitions.html#5929" class="Function">Conn</a> <a id="5934" class="Symbol">=</a> <a id="5936" href="Relation.Binary.Definitions.html#2493" class="Function">Connex</a>
<a id="5943" class="Symbol">{-#</a> <a id="5947" class="Keyword">WARNING_ON_USAGE</a> <a id="5964" class="Pragma">Conn</a>
<a id="5969" class="String">&quot;Warning: Conn was deprecated in v1.1.
Please use Connex instead.&quot;</a>
<a id="6036" class="Symbol">#-}</a>
</pre></body></html>

View File

@ -0,0 +1,45 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Relation.Binary.Indexed.Heterogeneous.Bundles</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Indexed binary relations</a>
<a id="134" class="Comment">------------------------------------------------------------------------</a>
<a id="208" class="Comment">-- The contents of this module should be accessed via</a>
<a id="262" class="Comment">-- `Relation.Binary.Indexed.Heterogeneous`.</a>
<a id="307" class="Symbol">{-#</a> <a id="311" class="Keyword">OPTIONS</a> <a id="319" class="Pragma">--without-K</a> <a id="331" class="Pragma">--safe</a> <a id="338" class="Symbol">#-}</a>
<a id="343" class="Keyword">module</a> <a id="350" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html" class="Module">Relation.Binary.Indexed.Heterogeneous.Bundles</a> <a id="396" class="Keyword">where</a>
<a id="403" class="Keyword">open</a> <a id="408" class="Keyword">import</a> <a id="415" href="Function.Base.html" class="Module">Function.Base</a>
<a id="429" class="Keyword">open</a> <a id="434" class="Keyword">import</a> <a id="441" href="Level.html" class="Module">Level</a> <a id="447" class="Keyword">using</a> <a id="453" class="Symbol">(</a><a id="454" href="Agda.Primitive.html#780" class="Primitive">suc</a><a id="457" class="Symbol">;</a> <a id="459" href="Agda.Primitive.html#810" class="Primitive Operator">_⊔_</a><a id="462" class="Symbol">)</a>
<a id="464" class="Keyword">open</a> <a id="469" class="Keyword">import</a> <a id="476" href="Relation.Binary.html" class="Module">Relation.Binary</a> <a id="492" class="Keyword">using</a> <a id="498" class="Symbol">(</a><a id="499" href="Relation.Binary.Core.html#1254" class="Function Operator">_⇒_</a><a id="502" class="Symbol">)</a>
<a id="504" class="Keyword">open</a> <a id="509" class="Keyword">import</a> <a id="516" href="Relation.Binary.PropositionalEquality.Core.html" class="Module">Relation.Binary.PropositionalEquality.Core</a> <a id="559" class="Symbol">as</a> <a id="562" class="Module">P</a> <a id="564" class="Keyword">using</a> <a id="570" class="Symbol">(</a><a id="571" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a><a id="574" class="Symbol">)</a>
<a id="576" class="Keyword">open</a> <a id="581" class="Keyword">import</a> <a id="588" href="Relation.Binary.Indexed.Heterogeneous.Core.html" class="Module">Relation.Binary.Indexed.Heterogeneous.Core</a>
<a id="631" class="Keyword">open</a> <a id="636" class="Keyword">import</a> <a id="643" href="Relation.Binary.Indexed.Heterogeneous.Structures.html" class="Module">Relation.Binary.Indexed.Heterogeneous.Structures</a>
<a id="693" class="Comment">------------------------------------------------------------------------</a>
<a id="766" class="Comment">-- Definitions</a>
<a id="782" class="Keyword">record</a> <a id="IndexedSetoid"></a><a id="789" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#789" class="Record">IndexedSetoid</a> <a id="803" class="Symbol">{</a><a id="804" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#804" class="Bound">i</a><a id="805" class="Symbol">}</a> <a id="807" class="Symbol">(</a><a id="808" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#808" class="Bound">I</a> <a id="810" class="Symbol">:</a> <a id="812" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="816" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#804" class="Bound">i</a><a id="817" class="Symbol">)</a> <a id="819" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#819" class="Bound">c</a> <a id="821" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#821" class="Bound"></a> <a id="823" class="Symbol">:</a> <a id="825" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="829" class="Symbol">(</a><a id="830" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="834" class="Symbol">(</a><a id="835" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#804" class="Bound">i</a> <a id="837" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="839" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#819" class="Bound">c</a> <a id="841" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="843" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#821" class="Bound"></a><a id="844" class="Symbol">))</a> <a id="847" class="Keyword">where</a>
<a id="855" class="Keyword">infix</a> <a id="861" class="Number">4</a> <a id="863" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#909" class="Field Operator">_≈_</a>
<a id="869" class="Keyword">field</a>
<a id="IndexedSetoid.Carrier"></a><a id="879" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#879" class="Field">Carrier</a> <a id="893" class="Symbol">:</a> <a id="895" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#808" class="Bound">I</a> <a id="897" class="Symbol"></a> <a id="899" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="903" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#819" class="Bound">c</a>
<a id="IndexedSetoid._≈_"></a><a id="909" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#909" class="Field Operator">_≈_</a> <a id="923" class="Symbol">:</a> <a id="925" href="Relation.Binary.Indexed.Heterogeneous.Core.html#856" class="Function">IRel</a> <a id="930" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#879" class="Field">Carrier</a> <a id="938" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#821" class="Bound"></a>
<a id="IndexedSetoid.isEquivalence"></a><a id="944" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#944" class="Field">isEquivalence</a> <a id="958" class="Symbol">:</a> <a id="960" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#852" class="Record">IsIndexedEquivalence</a> <a id="981" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#879" class="Field">Carrier</a> <a id="989" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#909" class="Field Operator">_≈_</a>
<a id="996" class="Keyword">open</a> <a id="1001" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#852" class="Module">IsIndexedEquivalence</a> <a id="1022" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#944" class="Field">isEquivalence</a> <a id="1036" class="Keyword">public</a>
<a id="1045" class="Keyword">record</a> <a id="IndexedPreorder"></a><a id="1052" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1052" class="Record">IndexedPreorder</a> <a id="1068" class="Symbol">{</a><a id="1069" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1069" class="Bound">i</a><a id="1070" class="Symbol">}</a> <a id="1072" class="Symbol">(</a><a id="1073" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1073" class="Bound">I</a> <a id="1075" class="Symbol">:</a> <a id="1077" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1081" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1069" class="Bound">i</a><a id="1082" class="Symbol">)</a> <a id="1084" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1084" class="Bound">c</a> <a id="1086" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1086" class="Bound">ℓ₁</a> <a id="1089" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1089" class="Bound">ℓ₂</a> <a id="1092" class="Symbol">:</a>
<a id="1117" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1121" class="Symbol">(</a><a id="1122" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="1126" class="Symbol">(</a><a id="1127" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1069" class="Bound">i</a> <a id="1129" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1131" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1084" class="Bound">c</a> <a id="1133" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1135" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1086" class="Bound">ℓ₁</a> <a id="1138" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1140" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1089" class="Bound">ℓ₂</a><a id="1142" class="Symbol">))</a> <a id="1145" class="Keyword">where</a>
<a id="1153" class="Keyword">infix</a> <a id="1159" class="Number">4</a> <a id="1161" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1208" class="Field Operator">_≈_</a> <a id="1165" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1270" class="Field Operator">__</a>
<a id="1171" class="Keyword">field</a>
<a id="IndexedPreorder.Carrier"></a><a id="1181" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1181" class="Field">Carrier</a> <a id="1192" class="Symbol">:</a> <a id="1194" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1073" class="Bound">I</a> <a id="1196" class="Symbol"></a> <a id="1198" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1202" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1084" class="Bound">c</a>
<a id="IndexedPreorder._≈_"></a><a id="1208" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1208" class="Field Operator">_≈_</a> <a id="1219" class="Symbol">:</a> <a id="1221" href="Relation.Binary.Indexed.Heterogeneous.Core.html#856" class="Function">IRel</a> <a id="1226" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1181" class="Field">Carrier</a> <a id="1234" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1086" class="Bound">ℓ₁</a> <a id="1238" class="Comment">-- The underlying equality.</a>
<a id="IndexedPreorder.__"></a><a id="1270" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1270" class="Field Operator">__</a> <a id="1281" class="Symbol">:</a> <a id="1283" href="Relation.Binary.Indexed.Heterogeneous.Core.html#856" class="Function">IRel</a> <a id="1288" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1181" class="Field">Carrier</a> <a id="1296" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1089" class="Bound">ℓ₂</a> <a id="1300" class="Comment">-- The relation.</a>
<a id="IndexedPreorder.isPreorder"></a><a id="1321" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1321" class="Field">isPreorder</a> <a id="1332" class="Symbol">:</a> <a id="1334" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1070" class="Record">IsIndexedPreorder</a> <a id="1352" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1181" class="Field">Carrier</a> <a id="1360" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1208" class="Field Operator">_≈_</a> <a id="1364" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1270" class="Field Operator">__</a>
<a id="1371" class="Keyword">open</a> <a id="1376" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1070" class="Module">IsIndexedPreorder</a> <a id="1394" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1321" class="Field">isPreorder</a> <a id="1405" class="Keyword">public</a>
</pre></body></html>

View File

@ -0,0 +1,60 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Relation.Binary.Indexed.Heterogeneous.Construct.Trivial</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Creates trivially indexed records from their non-indexed counterpart.</a>
<a id="179" class="Comment">------------------------------------------------------------------------</a>
<a id="253" class="Symbol">{-#</a> <a id="257" class="Keyword">OPTIONS</a> <a id="265" class="Pragma">--without-K</a> <a id="277" class="Pragma">--safe</a> <a id="284" class="Symbol">#-}</a>
<a id="289" class="Keyword">module</a> <a id="296" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html" class="Module">Relation.Binary.Indexed.Heterogeneous.Construct.Trivial</a>
<a id="354" class="Symbol">{</a><a id="355" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#355" class="Bound">i</a><a id="356" class="Symbol">}</a> <a id="358" class="Symbol">{</a><a id="359" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#359" class="Bound">I</a> <a id="361" class="Symbol">:</a> <a id="363" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="367" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#355" class="Bound">i</a><a id="368" class="Symbol">}</a> <a id="370" class="Keyword">where</a>
<a id="377" class="Keyword">open</a> <a id="382" class="Keyword">import</a> <a id="389" href="Relation.Binary.html" class="Module">Relation.Binary</a>
<a id="405" class="Keyword">open</a> <a id="410" class="Keyword">import</a> <a id="417" href="Relation.Binary.Indexed.Heterogeneous.html" class="Module">Relation.Binary.Indexed.Heterogeneous</a> <a id="455" class="Keyword">hiding</a> <a id="462" class="Symbol">(</a><a id="463" href="Relation.Binary.Indexed.Heterogeneous.html#1067" class="Function">Rel</a><a id="466" class="Symbol">)</a>
<a id="470" class="Keyword">hiding</a> <a id="477" class="Symbol">(</a><a id="478" href="Relation.Binary.Indexed.Heterogeneous.html#1304" class="Function">IsEquivalence</a><a id="491" class="Symbol">;</a> <a id="493" href="Relation.Binary.Indexed.Heterogeneous.html#1172" class="Function">Setoid</a><a id="499" class="Symbol">)</a>
<a id="502" class="Comment">------------------------------------------------------------------------</a>
<a id="575" class="Comment">-- Structures</a>
<a id="590" class="Keyword">module</a> <a id="597" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#597" class="Module">_</a> <a id="599" class="Symbol">{</a><a id="600" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#600" class="Bound">a</a><a id="601" class="Symbol">}</a> <a id="603" class="Symbol">{</a><a id="604" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#604" class="Bound">A</a> <a id="606" class="Symbol">:</a> <a id="608" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="612" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#600" class="Bound">a</a><a id="613" class="Symbol">}</a> <a id="615" class="Keyword">where</a>
<a id="624" class="Keyword">private</a>
<a id="636" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#636" class="Function">Aᵢ</a> <a id="639" class="Symbol">:</a> <a id="641" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#359" class="Bound">I</a> <a id="643" class="Symbol"></a> <a id="645" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="649" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#600" class="Bound">a</a>
<a id="655" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#636" class="Function">Aᵢ</a> <a id="658" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#658" class="Bound">i</a> <a id="660" class="Symbol">=</a> <a id="662" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#604" class="Bound">A</a>
<a id="667" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#667" class="Function">isIndexedEquivalence</a> <a id="688" class="Symbol">:</a> <a id="690" class="Symbol"></a> <a id="692" class="Symbol">{</a><a id="693" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#693" class="Bound"></a><a id="694" class="Symbol">}</a> <a id="696" class="Symbol">{</a><a id="697" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#697" class="Bound Operator">_≈_</a> <a id="701" class="Symbol">:</a> <a id="703" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="707" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#604" class="Bound">A</a> <a id="709" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#693" class="Bound"></a><a id="710" class="Symbol">}</a> <a id="712" class="Symbol"></a> <a id="714" href="Relation.Binary.Structures.html#1522" class="Record">IsEquivalence</a> <a id="728" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#697" class="Bound Operator">_≈_</a> <a id="732" class="Symbol"></a>
<a id="759" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#852" class="Record">IsIndexedEquivalence</a> <a id="780" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#636" class="Function">Aᵢ</a> <a id="783" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#697" class="Bound Operator">_≈_</a>
<a id="789" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#667" class="Function">isIndexedEquivalence</a> <a id="810" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#810" class="Bound">isEq</a> <a id="815" class="Symbol">=</a> <a id="817" class="Keyword">record</a>
<a id="828" class="Symbol">{</a> <a id="830" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#909" class="Field">refl</a> <a id="836" class="Symbol">=</a> <a id="838" href="Relation.Binary.Structures.html#1568" class="Field">refl</a>
<a id="847" class="Symbol">;</a> <a id="849" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#938" class="Field">sym</a> <a id="855" class="Symbol">=</a> <a id="857" href="Relation.Binary.Structures.html#1594" class="Field">sym</a>
<a id="865" class="Symbol">;</a> <a id="867" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#967" class="Field">trans</a> <a id="873" class="Symbol">=</a> <a id="875" href="Relation.Binary.Structures.html#1620" class="Field">trans</a>
<a id="885" class="Symbol">}</a>
<a id="891" class="Keyword">where</a> <a id="897" class="Keyword">open</a> <a id="902" href="Relation.Binary.Structures.html#1522" class="Module">IsEquivalence</a> <a id="916" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#810" class="Bound">isEq</a>
<a id="924" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#924" class="Function">isIndexedPreorder</a> <a id="942" class="Symbol">:</a> <a id="944" class="Symbol"></a> <a id="946" class="Symbol">{</a><a id="947" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#947" class="Bound">ℓ₁</a> <a id="950" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#950" class="Bound">ℓ₂</a><a id="952" class="Symbol">}</a> <a id="954" class="Symbol">{</a><a id="955" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#955" class="Bound Operator">_≈_</a> <a id="959" class="Symbol">:</a> <a id="961" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="965" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#604" class="Bound">A</a> <a id="967" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#947" class="Bound">ℓ₁</a><a id="969" class="Symbol">}</a> <a id="971" class="Symbol">{</a><a id="972" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#972" class="Bound Operator">__</a> <a id="976" class="Symbol">:</a> <a id="978" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="982" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#604" class="Bound">A</a> <a id="984" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#950" class="Bound">ℓ₂</a><a id="986" class="Symbol">}</a> <a id="988" class="Symbol"></a>
<a id="1012" href="Relation.Binary.Structures.html#2163" class="Record">IsPreorder</a> <a id="1023" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#955" class="Bound Operator">_≈_</a> <a id="1027" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#972" class="Bound Operator">__</a> <a id="1031" class="Symbol"></a>
<a id="1055" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1070" class="Record">IsIndexedPreorder</a> <a id="1073" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#636" class="Function">Aᵢ</a> <a id="1076" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#955" class="Bound Operator">_≈_</a> <a id="1080" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#972" class="Bound Operator">__</a>
<a id="1086" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#924" class="Function">isIndexedPreorder</a> <a id="1104" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1104" class="Bound">isPreorder</a> <a id="1115" class="Symbol">=</a> <a id="1117" class="Keyword">record</a>
<a id="1128" class="Symbol">{</a> <a id="1130" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1152" class="Field">isEquivalence</a> <a id="1144" class="Symbol">=</a> <a id="1146" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#667" class="Function">isIndexedEquivalence</a> <a id="1167" href="Relation.Binary.Structures.html#2228" class="Field">isEquivalence</a>
<a id="1185" class="Symbol">;</a> <a id="1187" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1193" class="Field">reflexive</a> <a id="1201" class="Symbol">=</a> <a id="1203" href="Relation.Binary.Structures.html#2331" class="Field">reflexive</a>
<a id="1217" class="Symbol">;</a> <a id="1219" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1249" class="Field">trans</a> <a id="1233" class="Symbol">=</a> <a id="1235" href="Relation.Binary.Structures.html#2361" class="Field">trans</a>
<a id="1245" class="Symbol">}</a>
<a id="1251" class="Keyword">where</a> <a id="1257" class="Keyword">open</a> <a id="1262" href="Relation.Binary.Structures.html#2163" class="Module">IsPreorder</a> <a id="1273" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1104" class="Bound">isPreorder</a>
<a id="1285" class="Comment">------------------------------------------------------------------------</a>
<a id="1358" class="Comment">-- Bundles</a>
<a id="indexedSetoid"></a><a id="1370" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1370" class="Function">indexedSetoid</a> <a id="1384" class="Symbol">:</a> <a id="1386" class="Symbol"></a> <a id="1388" class="Symbol">{</a><a id="1389" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1389" class="Bound">a</a> <a id="1391" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1391" class="Bound"></a><a id="1392" class="Symbol">}</a> <a id="1394" class="Symbol"></a> <a id="1396" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="1403" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1389" class="Bound">a</a> <a id="1405" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1391" class="Bound"></a> <a id="1407" class="Symbol"></a> <a id="1409" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#789" class="Record">IndexedSetoid</a> <a id="1423" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#359" class="Bound">I</a> <a id="1425" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1389" class="Bound">a</a> <a id="1427" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1391" class="Bound"></a>
<a id="1429" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1370" class="Function">indexedSetoid</a> <a id="1443" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1443" class="Bound">S</a> <a id="1445" class="Symbol">=</a> <a id="1447" class="Keyword">record</a>
<a id="1456" class="Symbol">{</a> <a id="1458" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#944" class="Field">isEquivalence</a> <a id="1472" class="Symbol">=</a> <a id="1474" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#667" class="Function">isIndexedEquivalence</a> <a id="1495" href="Relation.Binary.Bundles.html#1132" class="Field">isEquivalence</a>
<a id="1511" class="Symbol">}</a>
<a id="1515" class="Keyword">where</a> <a id="1521" class="Keyword">open</a> <a id="1526" href="Relation.Binary.Bundles.html#1009" class="Module">Setoid</a> <a id="1533" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1443" class="Bound">S</a>
<a id="indexedPreorder"></a><a id="1536" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1536" class="Function">indexedPreorder</a> <a id="1552" class="Symbol">:</a> <a id="1554" class="Symbol"></a> <a id="1556" class="Symbol">{</a><a id="1557" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1557" class="Bound">a</a> <a id="1559" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1559" class="Bound">ℓ₁</a> <a id="1562" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1562" class="Bound">ℓ₂</a><a id="1564" class="Symbol">}</a> <a id="1566" class="Symbol"></a> <a id="1568" href="Relation.Binary.Bundles.html#1920" class="Record">Preorder</a> <a id="1577" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1557" class="Bound">a</a> <a id="1579" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1559" class="Bound">ℓ₁</a> <a id="1582" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1562" class="Bound">ℓ₂</a> <a id="1585" class="Symbol"></a>
<a id="1605" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1052" class="Record">IndexedPreorder</a> <a id="1621" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#359" class="Bound">I</a> <a id="1623" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1557" class="Bound">a</a> <a id="1625" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1559" class="Bound">ℓ₁</a> <a id="1628" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1562" class="Bound">ℓ₂</a>
<a id="1631" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1536" class="Function">indexedPreorder</a> <a id="1647" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1647" class="Bound">O</a> <a id="1649" class="Symbol">=</a> <a id="1651" class="Keyword">record</a>
<a id="1660" class="Symbol">{</a> <a id="1662" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#1321" class="Field">isPreorder</a> <a id="1673" class="Symbol">=</a> <a id="1675" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#924" class="Function">isIndexedPreorder</a> <a id="1693" href="Relation.Binary.Bundles.html#2133" class="Field">isPreorder</a>
<a id="1706" class="Symbol">}</a>
<a id="1710" class="Keyword">where</a> <a id="1716" class="Keyword">open</a> <a id="1721" href="Relation.Binary.Bundles.html#1920" class="Module">Preorder</a> <a id="1730" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1647" class="Bound">O</a>
</pre></body></html>

View File

@ -0,0 +1,42 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Relation.Binary.Indexed.Heterogeneous.Core</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Indexed binary relations</a>
<a id="134" class="Comment">------------------------------------------------------------------------</a>
<a id="208" class="Comment">-- The contents of this module should be accessed via</a>
<a id="262" class="Comment">-- `Relation.Binary.Indexed.Heterogeneous`.</a>
<a id="307" class="Symbol">{-#</a> <a id="311" class="Keyword">OPTIONS</a> <a id="319" class="Pragma">--without-K</a> <a id="331" class="Pragma">--safe</a> <a id="338" class="Symbol">#-}</a>
<a id="343" class="Keyword">module</a> <a id="350" href="Relation.Binary.Indexed.Heterogeneous.Core.html" class="Module">Relation.Binary.Indexed.Heterogeneous.Core</a> <a id="393" class="Keyword">where</a>
<a id="400" class="Keyword">open</a> <a id="405" class="Keyword">import</a> <a id="412" href="Level.html" class="Module">Level</a>
<a id="418" class="Keyword">import</a> <a id="425" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a> <a id="446" class="Symbol">as</a> <a id="449" class="Module">B</a>
<a id="451" class="Keyword">import</a> <a id="458" href="Relation.Binary.Definitions.html" class="Module">Relation.Binary.Definitions</a> <a id="486" class="Symbol">as</a> <a id="489" class="Module">B</a>
<a id="491" class="Keyword">import</a> <a id="498" href="Relation.Binary.PropositionalEquality.Core.html" class="Module">Relation.Binary.PropositionalEquality.Core</a> <a id="541" class="Symbol">as</a> <a id="544" class="Module">P</a>
<a id="547" class="Comment">------------------------------------------------------------------------</a>
<a id="620" class="Comment">-- Indexed binary relations</a>
<a id="649" class="Comment">-- Heterogeneous types</a>
<a id="IREL"></a><a id="673" href="Relation.Binary.Indexed.Heterogeneous.Core.html#673" class="Function">IREL</a> <a id="678" class="Symbol">:</a> <a id="680" class="Symbol"></a> <a id="682" class="Symbol">{</a><a id="683" href="Relation.Binary.Indexed.Heterogeneous.Core.html#683" class="Bound">i₁</a> <a id="686" href="Relation.Binary.Indexed.Heterogeneous.Core.html#686" class="Bound">i₂</a> <a id="689" href="Relation.Binary.Indexed.Heterogeneous.Core.html#689" class="Bound">a₁</a> <a id="692" href="Relation.Binary.Indexed.Heterogeneous.Core.html#692" class="Bound">a₂</a><a id="694" class="Symbol">}</a> <a id="696" class="Symbol">{</a><a id="697" href="Relation.Binary.Indexed.Heterogeneous.Core.html#697" class="Bound">I₁</a> <a id="700" class="Symbol">:</a> <a id="702" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="706" href="Relation.Binary.Indexed.Heterogeneous.Core.html#683" class="Bound">i₁</a><a id="708" class="Symbol">}</a> <a id="710" class="Symbol">{</a><a id="711" href="Relation.Binary.Indexed.Heterogeneous.Core.html#711" class="Bound">I₂</a> <a id="714" class="Symbol">:</a> <a id="716" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="720" href="Relation.Binary.Indexed.Heterogeneous.Core.html#686" class="Bound">i₂</a><a id="722" class="Symbol">}</a> <a id="724" class="Symbol"></a>
<a id="732" class="Symbol">(</a><a id="733" href="Relation.Binary.Indexed.Heterogeneous.Core.html#697" class="Bound">I₁</a> <a id="736" class="Symbol"></a> <a id="738" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="742" href="Relation.Binary.Indexed.Heterogeneous.Core.html#689" class="Bound">a₁</a><a id="744" class="Symbol">)</a> <a id="746" class="Symbol"></a> <a id="748" class="Symbol">(</a><a id="749" href="Relation.Binary.Indexed.Heterogeneous.Core.html#711" class="Bound">I₂</a> <a id="752" class="Symbol"></a> <a id="754" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="758" href="Relation.Binary.Indexed.Heterogeneous.Core.html#692" class="Bound">a₂</a><a id="760" class="Symbol">)</a> <a id="762" class="Symbol"></a> <a id="764" class="Symbol">(</a><a id="765" href="Relation.Binary.Indexed.Heterogeneous.Core.html#765" class="Bound"></a> <a id="767" class="Symbol">:</a> <a id="769" href="Agda.Primitive.html#597" class="Postulate">Level</a><a id="774" class="Symbol">)</a> <a id="776" class="Symbol"></a> <a id="778" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="782" class="Symbol">_</a>
<a id="784" href="Relation.Binary.Indexed.Heterogeneous.Core.html#673" class="Function">IREL</a> <a id="789" href="Relation.Binary.Indexed.Heterogeneous.Core.html#789" class="Bound">A₁</a> <a id="792" href="Relation.Binary.Indexed.Heterogeneous.Core.html#792" class="Bound">A₂</a> <a id="795" href="Relation.Binary.Indexed.Heterogeneous.Core.html#795" class="Bound"></a> <a id="797" class="Symbol">=</a> <a id="799" class="Symbol"></a> <a id="801" class="Symbol">{</a><a id="802" href="Relation.Binary.Indexed.Heterogeneous.Core.html#802" class="Bound">i₁</a> <a id="805" href="Relation.Binary.Indexed.Heterogeneous.Core.html#805" class="Bound">i₂</a><a id="807" class="Symbol">}</a> <a id="809" class="Symbol"></a> <a id="811" href="Relation.Binary.Indexed.Heterogeneous.Core.html#789" class="Bound">A₁</a> <a id="814" href="Relation.Binary.Indexed.Heterogeneous.Core.html#802" class="Bound">i₁</a> <a id="817" class="Symbol"></a> <a id="819" href="Relation.Binary.Indexed.Heterogeneous.Core.html#792" class="Bound">A₂</a> <a id="822" href="Relation.Binary.Indexed.Heterogeneous.Core.html#805" class="Bound">i₂</a> <a id="825" class="Symbol"></a> <a id="827" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="831" href="Relation.Binary.Indexed.Heterogeneous.Core.html#795" class="Bound"></a>
<a id="834" class="Comment">-- Homogeneous types</a>
<a id="IRel"></a><a id="856" href="Relation.Binary.Indexed.Heterogeneous.Core.html#856" class="Function">IRel</a> <a id="861" class="Symbol">:</a> <a id="863" class="Symbol"></a> <a id="865" class="Symbol">{</a><a id="866" href="Relation.Binary.Indexed.Heterogeneous.Core.html#866" class="Bound">i</a> <a id="868" href="Relation.Binary.Indexed.Heterogeneous.Core.html#868" class="Bound">a</a><a id="869" class="Symbol">}</a> <a id="871" class="Symbol">{</a><a id="872" href="Relation.Binary.Indexed.Heterogeneous.Core.html#872" class="Bound">I</a> <a id="874" class="Symbol">:</a> <a id="876" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="880" href="Relation.Binary.Indexed.Heterogeneous.Core.html#866" class="Bound">i</a><a id="881" class="Symbol">}</a> <a id="883" class="Symbol"></a> <a id="885" class="Symbol">(</a><a id="886" href="Relation.Binary.Indexed.Heterogeneous.Core.html#872" class="Bound">I</a> <a id="888" class="Symbol"></a> <a id="890" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="894" href="Relation.Binary.Indexed.Heterogeneous.Core.html#868" class="Bound">a</a><a id="895" class="Symbol">)</a> <a id="897" class="Symbol"></a> <a id="899" class="Symbol">(</a><a id="900" href="Relation.Binary.Indexed.Heterogeneous.Core.html#900" class="Bound"></a> <a id="902" class="Symbol">:</a> <a id="904" href="Agda.Primitive.html#597" class="Postulate">Level</a><a id="909" class="Symbol">)</a> <a id="911" class="Symbol"></a> <a id="913" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="917" class="Symbol">_</a>
<a id="919" href="Relation.Binary.Indexed.Heterogeneous.Core.html#856" class="Function">IRel</a> <a id="924" href="Relation.Binary.Indexed.Heterogeneous.Core.html#924" class="Bound">A</a> <a id="926" href="Relation.Binary.Indexed.Heterogeneous.Core.html#926" class="Bound"></a> <a id="928" class="Symbol">=</a> <a id="930" href="Relation.Binary.Indexed.Heterogeneous.Core.html#673" class="Function">IREL</a> <a id="935" href="Relation.Binary.Indexed.Heterogeneous.Core.html#924" class="Bound">A</a> <a id="937" href="Relation.Binary.Indexed.Heterogeneous.Core.html#924" class="Bound">A</a> <a id="939" href="Relation.Binary.Indexed.Heterogeneous.Core.html#926" class="Bound"></a>
<a id="942" class="Comment">------------------------------------------------------------------------</a>
<a id="1015" class="Comment">-- Generalised implication.</a>
<a id="1044" class="Keyword">infixr</a> <a id="1051" class="Number">4</a> <a id="1053" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1062" class="Function Operator">_=[_]⇒_</a>
<a id="_=[_]⇒_"></a><a id="1062" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1062" class="Function Operator">_=[_]⇒_</a> <a id="1070" class="Symbol">:</a> <a id="1072" class="Symbol"></a> <a id="1074" class="Symbol">{</a><a id="1075" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1075" class="Bound">a</a> <a id="1077" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1077" class="Bound">b</a> <a id="1079" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1079" class="Bound">ℓ₁</a> <a id="1082" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1082" class="Bound">ℓ₂</a><a id="1084" class="Symbol">}</a> <a id="1086" class="Symbol">{</a><a id="1087" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1087" class="Bound">A</a> <a id="1089" class="Symbol">:</a> <a id="1091" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1095" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1075" class="Bound">a</a><a id="1096" class="Symbol">}</a> <a id="1098" class="Symbol">{</a><a id="1099" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1099" class="Bound">B</a> <a id="1101" class="Symbol">:</a> <a id="1103" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1087" class="Bound">A</a> <a id="1105" class="Symbol"></a> <a id="1107" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1111" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1077" class="Bound">b</a><a id="1112" class="Symbol">}</a> <a id="1114" class="Symbol"></a>
<a id="1126" href="Relation.Binary.Core.html#882" class="Function">B.Rel</a> <a id="1132" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1087" class="Bound">A</a> <a id="1134" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1079" class="Bound">ℓ₁</a> <a id="1137" class="Symbol"></a> <a id="1139" class="Symbol">((</a><a id="1141" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1141" class="Bound">x</a> <a id="1143" class="Symbol">:</a> <a id="1145" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1087" class="Bound">A</a><a id="1146" class="Symbol">)</a> <a id="1148" class="Symbol"></a> <a id="1150" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1099" class="Bound">B</a> <a id="1152" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1141" class="Bound">x</a><a id="1153" class="Symbol">)</a> <a id="1155" class="Symbol"></a> <a id="1157" href="Relation.Binary.Indexed.Heterogeneous.Core.html#856" class="Function">IRel</a> <a id="1162" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1099" class="Bound">B</a> <a id="1164" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1082" class="Bound">ℓ₂</a> <a id="1167" class="Symbol"></a> <a id="1169" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1173" class="Symbol">_</a>
<a id="1175" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1175" class="Bound">P</a> <a id="1177" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1062" class="Function Operator">=[</a> <a id="1180" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1180" class="Bound">f</a> <a id="1182" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1062" class="Function Operator">]⇒</a> <a id="1185" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1185" class="Bound">Q</a> <a id="1187" class="Symbol">=</a> <a id="1189" class="Symbol"></a> <a id="1191" class="Symbol">{</a><a id="1192" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1192" class="Bound">i</a> <a id="1194" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1194" class="Bound">j</a><a id="1195" class="Symbol">}</a> <a id="1197" class="Symbol"></a> <a id="1199" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1175" class="Bound">P</a> <a id="1201" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1192" class="Bound">i</a> <a id="1203" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1194" class="Bound">j</a> <a id="1205" class="Symbol"></a> <a id="1207" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1185" class="Bound">Q</a> <a id="1209" class="Symbol">(</a><a id="1210" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1180" class="Bound">f</a> <a id="1212" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1192" class="Bound">i</a><a id="1213" class="Symbol">)</a> <a id="1215" class="Symbol">(</a><a id="1216" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1180" class="Bound">f</a> <a id="1218" href="Relation.Binary.Indexed.Heterogeneous.Core.html#1194" class="Bound">j</a><a id="1219" class="Symbol">)</a>
</pre></body></html>

View File

@ -0,0 +1,37 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Relation.Binary.Indexed.Heterogeneous.Definitions</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Indexed binary relations</a>
<a id="134" class="Comment">------------------------------------------------------------------------</a>
<a id="208" class="Comment">-- The contents of this module should be accessed via</a>
<a id="262" class="Comment">-- `Relation.Binary.Indexed.Heterogeneous`.</a>
<a id="307" class="Symbol">{-#</a> <a id="311" class="Keyword">OPTIONS</a> <a id="319" class="Pragma">--without-K</a> <a id="331" class="Pragma">--safe</a> <a id="338" class="Symbol">#-}</a>
<a id="343" class="Keyword">module</a> <a id="350" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html" class="Module">Relation.Binary.Indexed.Heterogeneous.Definitions</a> <a id="400" class="Keyword">where</a>
<a id="407" class="Keyword">open</a> <a id="412" class="Keyword">import</a> <a id="419" href="Level.html" class="Module">Level</a>
<a id="425" class="Keyword">import</a> <a id="432" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a> <a id="453" class="Symbol">as</a> <a id="456" class="Module">B</a>
<a id="458" class="Keyword">import</a> <a id="465" href="Relation.Binary.Definitions.html" class="Module">Relation.Binary.Definitions</a> <a id="493" class="Symbol">as</a> <a id="496" class="Module">B</a>
<a id="498" class="Keyword">import</a> <a id="505" href="Relation.Binary.PropositionalEquality.Core.html" class="Module">Relation.Binary.PropositionalEquality.Core</a> <a id="548" class="Symbol">as</a> <a id="551" class="Module">P</a>
<a id="553" class="Keyword">open</a> <a id="558" class="Keyword">import</a> <a id="565" href="Relation.Binary.Indexed.Heterogeneous.Core.html" class="Module">Relation.Binary.Indexed.Heterogeneous.Core</a>
<a id="609" class="Keyword">private</a>
<a id="619" class="Keyword">variable</a>
<a id="632" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#632" class="Generalizable">i</a> <a id="634" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#634" class="Generalizable">a</a> <a id="636" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#636" class="Generalizable"></a> <a id="638" class="Symbol">:</a> <a id="640" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="650" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#650" class="Generalizable">I</a> <a id="652" class="Symbol">:</a> <a id="654" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="658" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#632" class="Generalizable">i</a>
<a id="661" class="Comment">------------------------------------------------------------------------</a>
<a id="734" class="Comment">-- Simple properties of indexed binary relations</a>
<a id="Reflexive"></a><a id="784" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#784" class="Function">Reflexive</a> <a id="794" class="Symbol">:</a> <a id="796" class="Symbol">(</a><a id="797" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#797" class="Bound">A</a> <a id="799" class="Symbol">:</a> <a id="801" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#650" class="Generalizable">I</a> <a id="803" class="Symbol"></a> <a id="805" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="809" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#634" class="Generalizable">a</a><a id="810" class="Symbol">)</a> <a id="812" class="Symbol"></a> <a id="814" href="Relation.Binary.Indexed.Heterogeneous.Core.html#856" class="Function">IRel</a> <a id="819" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#797" class="Bound">A</a> <a id="821" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#636" class="Generalizable"></a> <a id="823" class="Symbol"></a> <a id="825" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="829" class="Symbol">_</a>
<a id="831" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#784" class="Function">Reflexive</a> <a id="841" class="Symbol">_</a> <a id="843" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#843" class="Bound Operator">__</a> <a id="847" class="Symbol">=</a> <a id="849" class="Symbol"></a> <a id="851" class="Symbol">{</a><a id="852" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#852" class="Bound">i</a><a id="853" class="Symbol">}</a> <a id="855" class="Symbol"></a> <a id="857" href="Relation.Binary.Definitions.html#1339" class="Function">B.Reflexive</a> <a id="869" class="Symbol">(</a><a id="870" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#843" class="Bound Operator">__</a> <a id="874" class="Symbol">{</a><a id="875" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#852" class="Bound">i</a><a id="876" class="Symbol">})</a>
<a id="Symmetric"></a><a id="880" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#880" class="Function">Symmetric</a> <a id="890" class="Symbol">:</a> <a id="892" class="Symbol">(</a><a id="893" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#893" class="Bound">A</a> <a id="895" class="Symbol">:</a> <a id="897" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#650" class="Generalizable">I</a> <a id="899" class="Symbol"></a> <a id="901" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="905" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#634" class="Generalizable">a</a><a id="906" class="Symbol">)</a> <a id="908" class="Symbol"></a> <a id="910" href="Relation.Binary.Indexed.Heterogeneous.Core.html#856" class="Function">IRel</a> <a id="915" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#893" class="Bound">A</a> <a id="917" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#636" class="Generalizable"></a> <a id="919" class="Symbol"></a> <a id="921" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="925" class="Symbol">_</a>
<a id="927" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#880" class="Function">Symmetric</a> <a id="937" class="Symbol">_</a> <a id="939" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#939" class="Bound Operator">__</a> <a id="943" class="Symbol">=</a> <a id="945" class="Symbol"></a> <a id="947" class="Symbol">{</a><a id="948" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#948" class="Bound">i</a> <a id="950" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#950" class="Bound">j</a><a id="951" class="Symbol">}</a> <a id="953" class="Symbol"></a> <a id="955" href="Relation.Binary.Definitions.html#1424" class="Function">B.Sym</a> <a id="961" class="Symbol">(</a><a id="962" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#939" class="Bound Operator">__</a> <a id="966" class="Symbol">{</a><a id="967" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#948" class="Bound">i</a><a id="968" class="Symbol">}</a> <a id="970" class="Symbol">{</a><a id="971" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#950" class="Bound">j</a><a id="972" class="Symbol">})</a> <a id="975" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#939" class="Bound Operator">__</a>
<a id="Transitive"></a><a id="980" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#980" class="Function">Transitive</a> <a id="991" class="Symbol">:</a> <a id="993" class="Symbol">(</a><a id="994" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#994" class="Bound">A</a> <a id="996" class="Symbol">:</a> <a id="998" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#650" class="Generalizable">I</a> <a id="1000" class="Symbol"></a> <a id="1002" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1006" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#634" class="Generalizable">a</a><a id="1007" class="Symbol">)</a> <a id="1009" class="Symbol"></a> <a id="1011" href="Relation.Binary.Indexed.Heterogeneous.Core.html#856" class="Function">IRel</a> <a id="1016" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#994" class="Bound">A</a> <a id="1018" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#636" class="Generalizable"></a> <a id="1020" class="Symbol"></a> <a id="1022" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1026" class="Symbol">_</a>
<a id="1028" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#980" class="Function">Transitive</a> <a id="1039" class="Symbol">_</a> <a id="1041" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#1041" class="Bound Operator">__</a> <a id="1045" class="Symbol">=</a> <a id="1047" class="Symbol"></a> <a id="1049" class="Symbol">{</a><a id="1050" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#1050" class="Bound">i</a> <a id="1052" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#1052" class="Bound">j</a> <a id="1054" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#1054" class="Bound">k</a><a id="1055" class="Symbol">}</a> <a id="1057" class="Symbol"></a> <a id="1059" href="Relation.Binary.Definitions.html#1585" class="Function">B.Trans</a> <a id="1067" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#1041" class="Bound Operator">__</a> <a id="1071" class="Symbol">(</a><a id="1072" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#1041" class="Bound Operator">__</a> <a id="1076" class="Symbol">{</a><a id="1077" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#1052" class="Bound">j</a><a id="1078" class="Symbol">})</a> <a id="1081" class="Symbol">(</a><a id="1082" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#1041" class="Bound Operator">__</a> <a id="1086" class="Symbol">{</a><a id="1087" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#1050" class="Bound">i</a><a id="1088" class="Symbol">}</a> <a id="1090" class="Symbol">{</a><a id="1091" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#1054" class="Bound">k</a><a id="1092" class="Symbol">})</a>
</pre></body></html>

View File

@ -0,0 +1,48 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Relation.Binary.Indexed.Heterogeneous.Structures</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Indexed binary relations</a>
<a id="134" class="Comment">------------------------------------------------------------------------</a>
<a id="208" class="Comment">-- The contents of this module should be accessed via</a>
<a id="262" class="Comment">-- `Relation.Binary.Indexed.Heterogeneous`.</a>
<a id="307" class="Symbol">{-#</a> <a id="311" class="Keyword">OPTIONS</a> <a id="319" class="Pragma">--without-K</a> <a id="331" class="Pragma">--safe</a> <a id="338" class="Symbol">#-}</a>
<a id="343" class="Keyword">open</a> <a id="348" class="Keyword">import</a> <a id="355" href="Relation.Binary.Indexed.Heterogeneous.Core.html" class="Module">Relation.Binary.Indexed.Heterogeneous.Core</a>
<a id="399" class="Keyword">module</a> <a id="406" href="Relation.Binary.Indexed.Heterogeneous.Structures.html" class="Module">Relation.Binary.Indexed.Heterogeneous.Structures</a>
<a id="457" class="Symbol">{</a><a id="458" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#458" class="Bound">i</a> <a id="460" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#460" class="Bound">a</a> <a id="462" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#462" class="Bound"></a><a id="463" class="Symbol">}</a> <a id="465" class="Symbol">{</a><a id="466" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#466" class="Bound">I</a> <a id="468" class="Symbol">:</a> <a id="470" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="474" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#458" class="Bound">i</a><a id="475" class="Symbol">}</a> <a id="477" class="Symbol">(</a><a id="478" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#478" class="Bound">A</a> <a id="480" class="Symbol">:</a> <a id="482" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#466" class="Bound">I</a> <a id="484" class="Symbol"></a> <a id="486" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="490" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#460" class="Bound">a</a><a id="491" class="Symbol">)</a> <a id="493" class="Symbol">(</a><a id="494" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#494" class="Bound Operator">_≈_</a> <a id="498" class="Symbol">:</a> <a id="500" href="Relation.Binary.Indexed.Heterogeneous.Core.html#856" class="Function">IRel</a> <a id="505" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#478" class="Bound">A</a> <a id="507" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#462" class="Bound"></a><a id="508" class="Symbol">)</a>
<a id="512" class="Keyword">where</a>
<a id="519" class="Keyword">open</a> <a id="524" class="Keyword">import</a> <a id="531" href="Function.Base.html" class="Module">Function.Base</a>
<a id="545" class="Keyword">open</a> <a id="550" class="Keyword">import</a> <a id="557" href="Level.html" class="Module">Level</a> <a id="563" class="Keyword">using</a> <a id="569" class="Symbol">(</a><a id="570" href="Agda.Primitive.html#780" class="Primitive">suc</a><a id="573" class="Symbol">;</a> <a id="575" href="Agda.Primitive.html#810" class="Primitive Operator">_⊔_</a><a id="578" class="Symbol">)</a>
<a id="580" class="Keyword">open</a> <a id="585" class="Keyword">import</a> <a id="592" href="Relation.Binary.html" class="Module">Relation.Binary</a> <a id="608" class="Keyword">using</a> <a id="614" class="Symbol">(</a><a id="615" href="Relation.Binary.Core.html#1254" class="Function Operator">_⇒_</a><a id="618" class="Symbol">)</a>
<a id="620" class="Keyword">open</a> <a id="625" class="Keyword">import</a> <a id="632" href="Relation.Binary.PropositionalEquality.Core.html" class="Module">Relation.Binary.PropositionalEquality.Core</a> <a id="675" class="Symbol">as</a> <a id="678" class="Module">P</a> <a id="680" class="Keyword">using</a> <a id="686" class="Symbol">(</a><a id="687" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a><a id="690" class="Symbol">)</a>
<a id="692" class="Keyword">open</a> <a id="697" class="Keyword">import</a> <a id="704" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html" class="Module">Relation.Binary.Indexed.Heterogeneous.Definitions</a>
<a id="755" class="Comment">------------------------------------------------------------------------</a>
<a id="828" class="Comment">-- Equivalences</a>
<a id="845" class="Keyword">record</a> <a id="IsIndexedEquivalence"></a><a id="852" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#852" class="Record">IsIndexedEquivalence</a> <a id="873" class="Symbol">:</a> <a id="875" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="879" class="Symbol">(</a><a id="880" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#458" class="Bound">i</a> <a id="882" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="884" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#460" class="Bound">a</a> <a id="886" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="888" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#462" class="Bound"></a><a id="889" class="Symbol">)</a> <a id="891" class="Keyword">where</a>
<a id="899" class="Keyword">field</a>
<a id="IsIndexedEquivalence.refl"></a><a id="909" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#909" class="Field">refl</a> <a id="915" class="Symbol">:</a> <a id="917" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#784" class="Function">Reflexive</a> <a id="928" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#478" class="Bound">A</a> <a id="930" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#494" class="Bound Operator">_≈_</a>
<a id="IsIndexedEquivalence.sym"></a><a id="938" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#938" class="Field">sym</a> <a id="944" class="Symbol">:</a> <a id="946" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#880" class="Function">Symmetric</a> <a id="957" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#478" class="Bound">A</a> <a id="959" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#494" class="Bound Operator">_≈_</a>
<a id="IsIndexedEquivalence.trans"></a><a id="967" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#967" class="Field">trans</a> <a id="973" class="Symbol">:</a> <a id="975" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#980" class="Function">Transitive</a> <a id="986" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#478" class="Bound">A</a> <a id="988" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#494" class="Bound Operator">_≈_</a>
<a id="IsIndexedEquivalence.reflexive"></a><a id="995" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#995" class="Function">reflexive</a> <a id="1005" class="Symbol">:</a> <a id="1007" class="Symbol"></a> <a id="1009" class="Symbol">{</a><a id="1010" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1010" class="Bound">i</a><a id="1011" class="Symbol">}</a> <a id="1013" class="Symbol"></a> <a id="1015" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a> <a id="1019" href="Function.Base.html#4398" class="Function Operator"></a> <a id="1021" href="Relation.Binary.Core.html#1254" class="Function Operator">_⇒_</a> <a id="1025" href="Function.Base.html#4398" class="Function Operator"></a> <a id="1027" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#494" class="Bound Operator">_≈_</a> <a id="1031" class="Symbol">{</a><a id="1032" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1010" class="Bound">i</a><a id="1033" class="Symbol">}</a>
<a id="1037" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#995" class="Function">reflexive</a> <a id="1047" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">P.refl</a> <a id="1054" class="Symbol">=</a> <a id="1056" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#909" class="Field">refl</a>
<a id="1063" class="Keyword">record</a> <a id="IsIndexedPreorder"></a><a id="1070" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1070" class="Record">IsIndexedPreorder</a> <a id="1088" class="Symbol">{</a><a id="1089" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1089" class="Bound">ℓ₂</a><a id="1091" class="Symbol">}</a> <a id="1093" class="Symbol">(</a><a id="1094" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1094" class="Bound Operator">__</a> <a id="1098" class="Symbol">:</a> <a id="1100" href="Relation.Binary.Indexed.Heterogeneous.Core.html#856" class="Function">IRel</a> <a id="1105" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#478" class="Bound">A</a> <a id="1107" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1089" class="Bound">ℓ₂</a><a id="1109" class="Symbol">)</a> <a id="1111" class="Symbol">:</a> <a id="1113" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1117" class="Symbol">(</a><a id="1118" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#458" class="Bound">i</a> <a id="1120" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1122" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#460" class="Bound">a</a> <a id="1124" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1126" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#462" class="Bound"></a> <a id="1128" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1130" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1089" class="Bound">ℓ₂</a><a id="1132" class="Symbol">)</a> <a id="1134" class="Keyword">where</a>
<a id="1142" class="Keyword">field</a>
<a id="IsIndexedPreorder.isEquivalence"></a><a id="1152" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1152" class="Field">isEquivalence</a> <a id="1166" class="Symbol">:</a> <a id="1168" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#852" class="Record">IsIndexedEquivalence</a>
<a id="IsIndexedPreorder.reflexive"></a><a id="1193" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1193" class="Field">reflexive</a> <a id="1207" class="Symbol">:</a> <a id="1209" class="Symbol"></a> <a id="1211" class="Symbol">{</a><a id="1212" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1212" class="Bound">i</a> <a id="1214" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1214" class="Bound">j</a><a id="1215" class="Symbol">}</a> <a id="1217" class="Symbol"></a> <a id="1219" class="Symbol">(</a><a id="1220" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#494" class="Bound Operator">_≈_</a> <a id="1224" class="Symbol">{</a><a id="1225" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1212" class="Bound">i</a><a id="1226" class="Symbol">}</a> <a id="1228" class="Symbol">{</a><a id="1229" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1214" class="Bound">j</a><a id="1230" class="Symbol">})</a> <a id="1233" href="Function.Base.html#4398" class="Function Operator"></a> <a id="1235" href="Relation.Binary.Core.html#1254" class="Function Operator">_⇒_</a> <a id="1239" href="Function.Base.html#4398" class="Function Operator"></a> <a id="1241" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1094" class="Bound Operator">__</a>
<a id="IsIndexedPreorder.trans"></a><a id="1249" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1249" class="Field">trans</a> <a id="1263" class="Symbol">:</a> <a id="1265" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#980" class="Function">Transitive</a> <a id="1276" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#478" class="Bound">A</a> <a id="1278" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1094" class="Bound Operator">__</a>
<a id="1285" class="Keyword">module</a> <a id="IsIndexedPreorder.Eq"></a><a id="1292" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1292" class="Module">Eq</a> <a id="1295" class="Symbol">=</a> <a id="1297" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#852" class="Module">IsIndexedEquivalence</a> <a id="1318" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1152" class="Field">isEquivalence</a>
<a id="IsIndexedPreorder.refl"></a><a id="1335" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1335" class="Function">refl</a> <a id="1340" class="Symbol">:</a> <a id="1342" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html#784" class="Function">Reflexive</a> <a id="1352" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#478" class="Bound">A</a> <a id="1354" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1094" class="Bound Operator">__</a>
<a id="1360" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1335" class="Function">refl</a> <a id="1365" class="Symbol">=</a> <a id="1367" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#1193" class="Field">reflexive</a> <a id="1377" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#909" class="Function">Eq.refl</a>
</pre></body></html>

View File

@ -0,0 +1,49 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Relation.Binary.Indexed.Heterogeneous</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Heterogeneously-indexed binary relations</a>
<a id="150" class="Comment">------------------------------------------------------------------------</a>
<a id="224" class="Symbol">{-#</a> <a id="228" class="Keyword">OPTIONS</a> <a id="236" class="Pragma">--without-K</a> <a id="248" class="Pragma">--safe</a> <a id="255" class="Symbol">#-}</a>
<a id="260" class="Keyword">module</a> <a id="267" href="Relation.Binary.Indexed.Heterogeneous.html" class="Module">Relation.Binary.Indexed.Heterogeneous</a> <a id="305" class="Keyword">where</a>
<a id="312" class="Comment">------------------------------------------------------------------------</a>
<a id="385" class="Comment">-- Publicly export core definitions</a>
<a id="422" class="Keyword">open</a> <a id="427" class="Keyword">import</a> <a id="434" href="Relation.Binary.Indexed.Heterogeneous.Core.html" class="Module">Relation.Binary.Indexed.Heterogeneous.Core</a> <a id="477" class="Keyword">public</a>
<a id="484" class="Keyword">open</a> <a id="489" class="Keyword">import</a> <a id="496" href="Relation.Binary.Indexed.Heterogeneous.Definitions.html" class="Module">Relation.Binary.Indexed.Heterogeneous.Definitions</a> <a id="546" class="Keyword">public</a>
<a id="553" class="Keyword">open</a> <a id="558" class="Keyword">import</a> <a id="565" href="Relation.Binary.Indexed.Heterogeneous.Structures.html" class="Module">Relation.Binary.Indexed.Heterogeneous.Structures</a> <a id="614" class="Keyword">public</a>
<a id="621" class="Keyword">open</a> <a id="626" class="Keyword">import</a> <a id="633" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html" class="Module">Relation.Binary.Indexed.Heterogeneous.Bundles</a> <a id="679" class="Keyword">public</a>
<a id="688" class="Comment">------------------------------------------------------------------------</a>
<a id="761" class="Comment">-- DEPRECATED NAMES</a>
<a id="781" class="Comment">------------------------------------------------------------------------</a>
<a id="854" class="Comment">-- Please use the new names as continuing support for the old names is</a>
<a id="925" class="Comment">-- not guaranteed.</a>
<a id="945" class="Comment">-- Version 0.17</a>
<a id="REL"></a><a id="962" href="Relation.Binary.Indexed.Heterogeneous.html#962" class="Function">REL</a> <a id="966" class="Symbol">=</a> <a id="968" href="Relation.Binary.Indexed.Heterogeneous.Core.html#673" class="Function">IREL</a>
<a id="973" class="Symbol">{-#</a> <a id="977" class="Keyword">WARNING_ON_USAGE</a> <a id="994" class="Pragma">REL</a>
<a id="998" class="String">&quot;Warning: REL was deprecated in v0.17.
Please use IREL instead.&quot;</a>
<a id="1063" class="Symbol">#-}</a>
<a id="Rel"></a><a id="1067" href="Relation.Binary.Indexed.Heterogeneous.html#1067" class="Function">Rel</a> <a id="1071" class="Symbol">=</a> <a id="1073" href="Relation.Binary.Indexed.Heterogeneous.Core.html#856" class="Function">IRel</a>
<a id="1078" class="Symbol">{-#</a> <a id="1082" class="Keyword">WARNING_ON_USAGE</a> <a id="1099" class="Pragma">Rel</a>
<a id="1103" class="String">&quot;Warning: Rel was deprecated in v0.17.
Please use IRel instead.&quot;</a>
<a id="1168" class="Symbol">#-}</a>
<a id="Setoid"></a><a id="1172" href="Relation.Binary.Indexed.Heterogeneous.html#1172" class="Function">Setoid</a> <a id="1179" class="Symbol">=</a> <a id="1181" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#789" class="Record">IndexedSetoid</a>
<a id="1195" class="Symbol">{-#</a> <a id="1199" class="Keyword">WARNING_ON_USAGE</a> <a id="1216" class="Pragma">Setoid</a>
<a id="1223" class="String">&quot;Warning: Setoid was deprecated in v0.17.
Please use IndexedSetoid instead.&quot;</a>
<a id="1300" class="Symbol">#-}</a>
<a id="IsEquivalence"></a><a id="1304" href="Relation.Binary.Indexed.Heterogeneous.html#1304" class="Function">IsEquivalence</a> <a id="1318" class="Symbol">=</a> <a id="1320" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#852" class="Record">IsIndexedEquivalence</a>
<a id="1341" class="Symbol">{-#</a> <a id="1345" class="Keyword">WARNING_ON_USAGE</a> <a id="1362" class="Pragma">IsEquivalence</a>
<a id="1376" class="String">&quot;Warning: IsEquivalence was deprecated in v0.17.
Please use IsIndexedEquivalence instead.&quot;</a>
<a id="1467" class="Symbol">#-}</a>
</pre></body></html>

View File

@ -0,0 +1,35 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Relation.Binary.PropositionalEquality.Algebra</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Propositional (intensional) equality - Algebraic structures</a>
<a id="169" class="Comment">------------------------------------------------------------------------</a>
<a id="243" class="Symbol">{-#</a> <a id="247" class="Keyword">OPTIONS</a> <a id="255" class="Pragma">--without-K</a> <a id="267" class="Pragma">--safe</a> <a id="274" class="Symbol">#-}</a>
<a id="279" class="Keyword">module</a> <a id="286" href="Relation.Binary.PropositionalEquality.Algebra.html" class="Module">Relation.Binary.PropositionalEquality.Algebra</a> <a id="332" class="Keyword">where</a>
<a id="339" class="Keyword">open</a> <a id="344" class="Keyword">import</a> <a id="351" href="Algebra.html" class="Module">Algebra</a>
<a id="359" class="Keyword">open</a> <a id="364" class="Keyword">import</a> <a id="371" href="Level.html" class="Module">Level</a>
<a id="377" class="Keyword">open</a> <a id="382" class="Keyword">import</a> <a id="389" href="Relation.Binary.PropositionalEquality.Core.html" class="Module">Relation.Binary.PropositionalEquality.Core</a>
<a id="432" class="Keyword">open</a> <a id="437" class="Keyword">import</a> <a id="444" href="Relation.Binary.PropositionalEquality.Properties.html" class="Module">Relation.Binary.PropositionalEquality.Properties</a>
<a id="494" class="Keyword">private</a>
<a id="504" class="Keyword">variable</a>
<a id="517" href="Relation.Binary.PropositionalEquality.Algebra.html#517" class="Generalizable">a</a> <a id="519" class="Symbol">:</a> <a id="521" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="531" href="Relation.Binary.PropositionalEquality.Algebra.html#531" class="Generalizable">A</a> <a id="533" class="Symbol">:</a> <a id="535" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="539" href="Relation.Binary.PropositionalEquality.Algebra.html#517" class="Generalizable">a</a>
<a id="542" class="Comment">------------------------------------------------------------------------</a>
<a id="615" class="Comment">-- Any operation forms a magma over _≡_</a>
<a id="isMagma"></a><a id="656" href="Relation.Binary.PropositionalEquality.Algebra.html#656" class="Function">isMagma</a> <a id="664" class="Symbol">:</a> <a id="666" class="Symbol">(</a><a id="667" href="Relation.Binary.PropositionalEquality.Algebra.html#667" class="Bound Operator">_∙_</a> <a id="671" class="Symbol">:</a> <a id="673" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="677" href="Relation.Binary.PropositionalEquality.Algebra.html#531" class="Generalizable">A</a><a id="678" class="Symbol">)</a> <a id="680" class="Symbol"></a> <a id="682" href="Algebra.Structures.html#1120" class="Record">IsMagma</a> <a id="690" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a> <a id="694" href="Relation.Binary.PropositionalEquality.Algebra.html#667" class="Bound Operator">_∙_</a>
<a id="698" href="Relation.Binary.PropositionalEquality.Algebra.html#656" class="Function">isMagma</a> <a id="706" href="Relation.Binary.PropositionalEquality.Algebra.html#706" class="Bound Operator">_∙_</a> <a id="710" class="Symbol">=</a> <a id="712" class="Keyword">record</a>
<a id="721" class="Symbol">{</a> <a id="723" href="Algebra.Structures.html#1172" class="Field">isEquivalence</a> <a id="737" class="Symbol">=</a> <a id="739" href="Relation.Binary.PropositionalEquality.Properties.html#3427" class="Function">isEquivalence</a>
<a id="755" class="Symbol">;</a> <a id="757" href="Algebra.Structures.html#1210" class="Field">∙-cong</a> <a id="771" class="Symbol">=</a> <a id="773" href="Relation.Binary.PropositionalEquality.Core.html#1367" class="Function">cong₂</a> <a id="779" href="Relation.Binary.PropositionalEquality.Algebra.html#706" class="Bound Operator">_∙_</a>
<a id="785" class="Symbol">}</a>
<a id="magma"></a><a id="788" href="Relation.Binary.PropositionalEquality.Algebra.html#788" class="Function">magma</a> <a id="794" class="Symbol">:</a> <a id="796" class="Symbol">(</a><a id="797" href="Relation.Binary.PropositionalEquality.Algebra.html#797" class="Bound Operator">_∙_</a> <a id="801" class="Symbol">:</a> <a id="803" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="807" href="Relation.Binary.PropositionalEquality.Algebra.html#531" class="Generalizable">A</a><a id="808" class="Symbol">)</a> <a id="810" class="Symbol"></a> <a id="812" href="Algebra.Bundles.html#1000" class="Record">Magma</a> <a id="818" class="Symbol">_</a> <a id="820" class="Symbol">_</a>
<a id="822" href="Relation.Binary.PropositionalEquality.Algebra.html#788" class="Function">magma</a> <a id="828" href="Relation.Binary.PropositionalEquality.Algebra.html#828" class="Bound Operator">_∙_</a> <a id="832" class="Symbol">=</a> <a id="834" class="Keyword">record</a>
<a id="843" class="Symbol">{</a> <a id="845" href="Algebra.Bundles.html#1152" class="Field">isMagma</a> <a id="853" class="Symbol">=</a> <a id="855" href="Relation.Binary.PropositionalEquality.Algebra.html#656" class="Function">isMagma</a> <a id="863" href="Relation.Binary.PropositionalEquality.Algebra.html#828" class="Bound Operator">_∙_</a>
<a id="869" class="Symbol">}</a>
</pre></body></html>

View File

@ -0,0 +1,127 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Relation.Binary.PropositionalEquality.Core</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Propositional equality</a>
<a id="132" class="Comment">--</a>
<a id="135" class="Comment">-- This file contains some core definitions which are re-exported by</a>
<a id="204" class="Comment">-- Relation.Binary.PropositionalEquality.</a>
<a id="246" class="Comment">------------------------------------------------------------------------</a>
<a id="320" class="Symbol">{-#</a> <a id="324" class="Keyword">OPTIONS</a> <a id="332" class="Pragma">--without-K</a> <a id="344" class="Pragma">--safe</a> <a id="351" class="Symbol">#-}</a>
<a id="356" class="Keyword">module</a> <a id="363" href="Relation.Binary.PropositionalEquality.Core.html" class="Module">Relation.Binary.PropositionalEquality.Core</a> <a id="406" class="Keyword">where</a>
<a id="413" class="Keyword">open</a> <a id="418" class="Keyword">import</a> <a id="425" href="Data.Product.html" class="Module">Data.Product</a> <a id="438" class="Keyword">using</a> <a id="444" class="Symbol">(</a><a id="445" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">_,_</a><a id="448" class="Symbol">)</a>
<a id="450" class="Keyword">open</a> <a id="455" class="Keyword">import</a> <a id="462" href="Function.Base.html" class="Module">Function.Base</a> <a id="476" class="Keyword">using</a> <a id="482" class="Symbol">(</a><a id="483" href="Function.Base.html#1031" class="Function Operator">_∘_</a><a id="486" class="Symbol">)</a>
<a id="488" class="Keyword">open</a> <a id="493" class="Keyword">import</a> <a id="500" href="Level.html" class="Module">Level</a>
<a id="506" class="Keyword">open</a> <a id="511" class="Keyword">import</a> <a id="518" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a>
<a id="539" class="Keyword">open</a> <a id="544" class="Keyword">import</a> <a id="551" href="Relation.Binary.Definitions.html" class="Module">Relation.Binary.Definitions</a>
<a id="579" class="Keyword">open</a> <a id="584" class="Keyword">import</a> <a id="591" href="Relation.Nullary.html" class="Module">Relation.Nullary</a> <a id="608" class="Keyword">using</a> <a id="614" class="Symbol">(</a><a id="615" href="Relation.Nullary.html#656" class="Function Operator">¬_</a><a id="617" class="Symbol">)</a>
<a id="620" class="Keyword">private</a>
<a id="630" class="Keyword">variable</a>
<a id="643" href="Relation.Binary.PropositionalEquality.Core.html#643" class="Generalizable">a</a> <a id="645" href="Relation.Binary.PropositionalEquality.Core.html#645" class="Generalizable">b</a> <a id="647" href="Relation.Binary.PropositionalEquality.Core.html#647" class="Generalizable"></a> <a id="649" class="Symbol">:</a> <a id="651" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="661" href="Relation.Binary.PropositionalEquality.Core.html#661" class="Generalizable">A</a> <a id="663" href="Relation.Binary.PropositionalEquality.Core.html#663" class="Generalizable">B</a> <a id="665" href="Relation.Binary.PropositionalEquality.Core.html#665" class="Generalizable">C</a> <a id="667" class="Symbol">:</a> <a id="669" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="673" href="Relation.Binary.PropositionalEquality.Core.html#643" class="Generalizable">a</a>
<a id="676" class="Comment">------------------------------------------------------------------------</a>
<a id="749" class="Comment">-- Propositional equality</a>
<a id="776" class="Keyword">open</a> <a id="781" class="Keyword">import</a> <a id="788" href="Agda.Builtin.Equality.html" class="Module">Agda.Builtin.Equality</a> <a id="810" class="Keyword">public</a>
<a id="818" class="Keyword">infix</a> <a id="824" class="Number">4</a> <a id="826" href="Relation.Binary.PropositionalEquality.Core.html#830" class="Function Operator">_≢_</a>
<a id="_≢_"></a><a id="830" href="Relation.Binary.PropositionalEquality.Core.html#830" class="Function Operator">_≢_</a> <a id="834" class="Symbol">:</a> <a id="836" class="Symbol">{</a><a id="837" href="Relation.Binary.PropositionalEquality.Core.html#837" class="Bound">A</a> <a id="839" class="Symbol">:</a> <a id="841" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="845" href="Relation.Binary.PropositionalEquality.Core.html#643" class="Generalizable">a</a><a id="846" class="Symbol">}</a> <a id="848" class="Symbol"></a> <a id="850" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="854" href="Relation.Binary.PropositionalEquality.Core.html#837" class="Bound">A</a> <a id="856" href="Relation.Binary.PropositionalEquality.Core.html#643" class="Generalizable">a</a>
<a id="858" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Bound">x</a> <a id="860" href="Relation.Binary.PropositionalEquality.Core.html#830" class="Function Operator"></a> <a id="862" href="Relation.Binary.PropositionalEquality.Core.html#862" class="Bound">y</a> <a id="864" class="Symbol">=</a> <a id="866" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="868" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Bound">x</a> <a id="870" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="872" href="Relation.Binary.PropositionalEquality.Core.html#862" class="Bound">y</a>
<a id="875" class="Comment">------------------------------------------------------------------------</a>
<a id="948" class="Comment">-- A variant of `refl` where the argument is explicit</a>
<a id="1003" class="Keyword">pattern</a> <a id="erefl"></a><a id="1011" href="Relation.Binary.PropositionalEquality.Core.html#1011" class="InductiveConstructor">erefl</a> <a id="1017" href="Relation.Binary.PropositionalEquality.Core.html#1031" class="Bound">x</a> <a id="1019" class="Symbol">=</a> <a id="1021" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1026" class="Symbol">{</a><a id="1027" class="Argument">x</a> <a id="1029" class="Symbol">=</a> <a id="1031" href="Relation.Binary.PropositionalEquality.Core.html#1031" class="Bound">x</a><a id="1032" class="Symbol">}</a>
<a id="1035" class="Comment">------------------------------------------------------------------------</a>
<a id="1108" class="Comment">-- Congruence lemmas</a>
<a id="cong"></a><a id="1130" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="1135" class="Symbol">:</a> <a id="1137" class="Symbol"></a> <a id="1139" class="Symbol">(</a><a id="1140" href="Relation.Binary.PropositionalEquality.Core.html#1140" class="Bound">f</a> <a id="1142" class="Symbol">:</a> <a id="1144" href="Relation.Binary.PropositionalEquality.Core.html#661" class="Generalizable">A</a> <a id="1146" class="Symbol"></a> <a id="1148" href="Relation.Binary.PropositionalEquality.Core.html#663" class="Generalizable">B</a><a id="1149" class="Symbol">)</a> <a id="1151" class="Symbol">{</a><a id="1152" href="Relation.Binary.PropositionalEquality.Core.html#1152" class="Bound">x</a> <a id="1154" href="Relation.Binary.PropositionalEquality.Core.html#1154" class="Bound">y</a><a id="1155" class="Symbol">}</a> <a id="1157" class="Symbol"></a> <a id="1159" href="Relation.Binary.PropositionalEquality.Core.html#1152" class="Bound">x</a> <a id="1161" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1163" href="Relation.Binary.PropositionalEquality.Core.html#1154" class="Bound">y</a> <a id="1165" class="Symbol"></a> <a id="1167" href="Relation.Binary.PropositionalEquality.Core.html#1140" class="Bound">f</a> <a id="1169" href="Relation.Binary.PropositionalEquality.Core.html#1152" class="Bound">x</a> <a id="1171" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1173" href="Relation.Binary.PropositionalEquality.Core.html#1140" class="Bound">f</a> <a id="1175" href="Relation.Binary.PropositionalEquality.Core.html#1154" class="Bound">y</a>
<a id="1177" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="1182" href="Relation.Binary.PropositionalEquality.Core.html#1182" class="Bound">f</a> <a id="1184" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1189" class="Symbol">=</a> <a id="1191" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="cong"></a><a id="1197" href="Relation.Binary.PropositionalEquality.Core.html#1197" class="Function">cong</a> <a id="1203" class="Symbol">:</a> <a id="1205" class="Symbol"></a> <a id="1207" class="Symbol">{</a><a id="1208" href="Relation.Binary.PropositionalEquality.Core.html#1208" class="Bound">f</a> <a id="1210" class="Symbol">:</a> <a id="1212" href="Relation.Binary.PropositionalEquality.Core.html#661" class="Generalizable">A</a> <a id="1214" class="Symbol"></a> <a id="1216" href="Relation.Binary.PropositionalEquality.Core.html#663" class="Generalizable">B</a><a id="1217" class="Symbol">}</a> <a id="1219" href="Relation.Binary.PropositionalEquality.Core.html#1219" class="Bound">x</a> <a id="1221" class="Symbol"></a> <a id="1223" href="Relation.Binary.PropositionalEquality.Core.html#1208" class="Bound">f</a> <a id="1225" href="Relation.Binary.PropositionalEquality.Core.html#1219" class="Bound">x</a> <a id="1227" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1229" href="Relation.Binary.PropositionalEquality.Core.html#1208" class="Bound">f</a> <a id="1231" href="Relation.Binary.PropositionalEquality.Core.html#1219" class="Bound">x</a>
<a id="1233" href="Relation.Binary.PropositionalEquality.Core.html#1197" class="Function">cong</a> <a id="1239" class="Symbol">_</a> <a id="1241" class="Symbol">=</a> <a id="1243" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="icong"></a><a id="1249" href="Relation.Binary.PropositionalEquality.Core.html#1249" class="Function">icong</a> <a id="1255" class="Symbol">:</a> <a id="1257" class="Symbol"></a> <a id="1259" class="Symbol">{</a><a id="1260" href="Relation.Binary.PropositionalEquality.Core.html#1260" class="Bound">f</a> <a id="1262" class="Symbol">:</a> <a id="1264" href="Relation.Binary.PropositionalEquality.Core.html#661" class="Generalizable">A</a> <a id="1266" class="Symbol"></a> <a id="1268" href="Relation.Binary.PropositionalEquality.Core.html#663" class="Generalizable">B</a><a id="1269" class="Symbol">}</a> <a id="1271" class="Symbol">{</a><a id="1272" href="Relation.Binary.PropositionalEquality.Core.html#1272" class="Bound">x</a> <a id="1274" href="Relation.Binary.PropositionalEquality.Core.html#1274" class="Bound">y</a><a id="1275" class="Symbol">}</a> <a id="1277" class="Symbol"></a> <a id="1279" href="Relation.Binary.PropositionalEquality.Core.html#1272" class="Bound">x</a> <a id="1281" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1283" href="Relation.Binary.PropositionalEquality.Core.html#1274" class="Bound">y</a> <a id="1285" class="Symbol"></a> <a id="1287" href="Relation.Binary.PropositionalEquality.Core.html#1260" class="Bound">f</a> <a id="1289" href="Relation.Binary.PropositionalEquality.Core.html#1272" class="Bound">x</a> <a id="1291" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1293" href="Relation.Binary.PropositionalEquality.Core.html#1260" class="Bound">f</a> <a id="1295" href="Relation.Binary.PropositionalEquality.Core.html#1274" class="Bound">y</a>
<a id="1297" href="Relation.Binary.PropositionalEquality.Core.html#1249" class="Function">icong</a> <a id="1303" class="Symbol">=</a> <a id="1305" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="1310" class="Symbol">_</a>
<a id="icong"></a><a id="1313" href="Relation.Binary.PropositionalEquality.Core.html#1313" class="Function">icong</a> <a id="1320" class="Symbol">:</a> <a id="1322" class="Symbol"></a> <a id="1324" class="Symbol">{</a><a id="1325" href="Relation.Binary.PropositionalEquality.Core.html#1325" class="Bound">f</a> <a id="1327" class="Symbol">:</a> <a id="1329" href="Relation.Binary.PropositionalEquality.Core.html#661" class="Generalizable">A</a> <a id="1331" class="Symbol"></a> <a id="1333" href="Relation.Binary.PropositionalEquality.Core.html#663" class="Generalizable">B</a><a id="1334" class="Symbol">}</a> <a id="1336" href="Relation.Binary.PropositionalEquality.Core.html#1336" class="Bound">x</a> <a id="1338" class="Symbol"></a> <a id="1340" href="Relation.Binary.PropositionalEquality.Core.html#1325" class="Bound">f</a> <a id="1342" href="Relation.Binary.PropositionalEquality.Core.html#1336" class="Bound">x</a> <a id="1344" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1346" href="Relation.Binary.PropositionalEquality.Core.html#1325" class="Bound">f</a> <a id="1348" href="Relation.Binary.PropositionalEquality.Core.html#1336" class="Bound">x</a>
<a id="1350" href="Relation.Binary.PropositionalEquality.Core.html#1313" class="Function">icong</a> <a id="1357" class="Symbol">_</a> <a id="1359" class="Symbol">=</a> <a id="1361" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="cong₂"></a><a id="1367" href="Relation.Binary.PropositionalEquality.Core.html#1367" class="Function">cong₂</a> <a id="1373" class="Symbol">:</a> <a id="1375" class="Symbol"></a> <a id="1377" class="Symbol">(</a><a id="1378" href="Relation.Binary.PropositionalEquality.Core.html#1378" class="Bound">f</a> <a id="1380" class="Symbol">:</a> <a id="1382" href="Relation.Binary.PropositionalEquality.Core.html#661" class="Generalizable">A</a> <a id="1384" class="Symbol"></a> <a id="1386" href="Relation.Binary.PropositionalEquality.Core.html#663" class="Generalizable">B</a> <a id="1388" class="Symbol"></a> <a id="1390" href="Relation.Binary.PropositionalEquality.Core.html#665" class="Generalizable">C</a><a id="1391" class="Symbol">)</a> <a id="1393" class="Symbol">{</a><a id="1394" href="Relation.Binary.PropositionalEquality.Core.html#1394" class="Bound">x</a> <a id="1396" href="Relation.Binary.PropositionalEquality.Core.html#1396" class="Bound">y</a> <a id="1398" href="Relation.Binary.PropositionalEquality.Core.html#1398" class="Bound">u</a> <a id="1400" href="Relation.Binary.PropositionalEquality.Core.html#1400" class="Bound">v</a><a id="1401" class="Symbol">}</a> <a id="1403" class="Symbol"></a> <a id="1405" href="Relation.Binary.PropositionalEquality.Core.html#1394" class="Bound">x</a> <a id="1407" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1409" href="Relation.Binary.PropositionalEquality.Core.html#1396" class="Bound">y</a> <a id="1411" class="Symbol"></a> <a id="1413" href="Relation.Binary.PropositionalEquality.Core.html#1398" class="Bound">u</a> <a id="1415" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1417" href="Relation.Binary.PropositionalEquality.Core.html#1400" class="Bound">v</a> <a id="1419" class="Symbol"></a> <a id="1421" href="Relation.Binary.PropositionalEquality.Core.html#1378" class="Bound">f</a> <a id="1423" href="Relation.Binary.PropositionalEquality.Core.html#1394" class="Bound">x</a> <a id="1425" href="Relation.Binary.PropositionalEquality.Core.html#1398" class="Bound">u</a> <a id="1427" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1429" href="Relation.Binary.PropositionalEquality.Core.html#1378" class="Bound">f</a> <a id="1431" href="Relation.Binary.PropositionalEquality.Core.html#1396" class="Bound">y</a> <a id="1433" href="Relation.Binary.PropositionalEquality.Core.html#1400" class="Bound">v</a>
<a id="1435" href="Relation.Binary.PropositionalEquality.Core.html#1367" class="Function">cong₂</a> <a id="1441" href="Relation.Binary.PropositionalEquality.Core.html#1441" class="Bound">f</a> <a id="1443" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1448" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1453" class="Symbol">=</a> <a id="1455" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="cong-app"></a><a id="1461" href="Relation.Binary.PropositionalEquality.Core.html#1461" class="Function">cong-app</a> <a id="1470" class="Symbol">:</a> <a id="1472" class="Symbol"></a> <a id="1474" class="Symbol">{</a><a id="1475" href="Relation.Binary.PropositionalEquality.Core.html#1475" class="Bound">A</a> <a id="1477" class="Symbol">:</a> <a id="1479" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1483" href="Relation.Binary.PropositionalEquality.Core.html#643" class="Generalizable">a</a><a id="1484" class="Symbol">}</a> <a id="1486" class="Symbol">{</a><a id="1487" href="Relation.Binary.PropositionalEquality.Core.html#1487" class="Bound">B</a> <a id="1489" class="Symbol">:</a> <a id="1491" href="Relation.Binary.PropositionalEquality.Core.html#1475" class="Bound">A</a> <a id="1493" class="Symbol"></a> <a id="1495" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1499" href="Relation.Binary.PropositionalEquality.Core.html#645" class="Generalizable">b</a><a id="1500" class="Symbol">}</a> <a id="1502" class="Symbol">{</a><a id="1503" href="Relation.Binary.PropositionalEquality.Core.html#1503" class="Bound">f</a> <a id="1505" href="Relation.Binary.PropositionalEquality.Core.html#1505" class="Bound">g</a> <a id="1507" class="Symbol">:</a> <a id="1509" class="Symbol">(</a><a id="1510" href="Relation.Binary.PropositionalEquality.Core.html#1510" class="Bound">x</a> <a id="1512" class="Symbol">:</a> <a id="1514" href="Relation.Binary.PropositionalEquality.Core.html#1475" class="Bound">A</a><a id="1515" class="Symbol">)</a> <a id="1517" class="Symbol"></a> <a id="1519" href="Relation.Binary.PropositionalEquality.Core.html#1487" class="Bound">B</a> <a id="1521" href="Relation.Binary.PropositionalEquality.Core.html#1510" class="Bound">x</a><a id="1522" class="Symbol">}</a> <a id="1524" class="Symbol"></a>
<a id="1537" href="Relation.Binary.PropositionalEquality.Core.html#1503" class="Bound">f</a> <a id="1539" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1541" href="Relation.Binary.PropositionalEquality.Core.html#1505" class="Bound">g</a> <a id="1543" class="Symbol"></a> <a id="1545" class="Symbol">(</a><a id="1546" href="Relation.Binary.PropositionalEquality.Core.html#1546" class="Bound">x</a> <a id="1548" class="Symbol">:</a> <a id="1550" href="Relation.Binary.PropositionalEquality.Core.html#1475" class="Bound">A</a><a id="1551" class="Symbol">)</a> <a id="1553" class="Symbol"></a> <a id="1555" href="Relation.Binary.PropositionalEquality.Core.html#1503" class="Bound">f</a> <a id="1557" href="Relation.Binary.PropositionalEquality.Core.html#1546" class="Bound">x</a> <a id="1559" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1561" href="Relation.Binary.PropositionalEquality.Core.html#1505" class="Bound">g</a> <a id="1563" href="Relation.Binary.PropositionalEquality.Core.html#1546" class="Bound">x</a>
<a id="1565" href="Relation.Binary.PropositionalEquality.Core.html#1461" class="Function">cong-app</a> <a id="1574" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1579" href="Relation.Binary.PropositionalEquality.Core.html#1579" class="Bound">x</a> <a id="1581" class="Symbol">=</a> <a id="1583" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="1589" class="Comment">------------------------------------------------------------------------</a>
<a id="1662" class="Comment">-- Properties of _≡_</a>
<a id="sym"></a><a id="1684" href="Relation.Binary.PropositionalEquality.Core.html#1684" class="Function">sym</a> <a id="1688" class="Symbol">:</a> <a id="1690" href="Relation.Binary.Definitions.html#1498" class="Function">Symmetric</a> <a id="1700" class="Symbol">{</a><a id="1701" class="Argument">A</a> <a id="1703" class="Symbol">=</a> <a id="1705" href="Relation.Binary.PropositionalEquality.Core.html#661" class="Generalizable">A</a><a id="1706" class="Symbol">}</a> <a id="1708" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a>
<a id="1712" href="Relation.Binary.PropositionalEquality.Core.html#1684" class="Function">sym</a> <a id="1716" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1721" class="Symbol">=</a> <a id="1723" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="trans"></a><a id="1729" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="1735" class="Symbol">:</a> <a id="1737" href="Relation.Binary.Definitions.html#1866" class="Function">Transitive</a> <a id="1748" class="Symbol">{</a><a id="1749" class="Argument">A</a> <a id="1751" class="Symbol">=</a> <a id="1753" href="Relation.Binary.PropositionalEquality.Core.html#661" class="Generalizable">A</a><a id="1754" class="Symbol">}</a> <a id="1756" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a>
<a id="1760" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="1766" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1771" href="Relation.Binary.PropositionalEquality.Core.html#1771" class="Bound">eq</a> <a id="1774" class="Symbol">=</a> <a id="1776" href="Relation.Binary.PropositionalEquality.Core.html#1771" class="Bound">eq</a>
<a id="subst"></a><a id="1780" href="Relation.Binary.PropositionalEquality.Core.html#1780" class="Function">subst</a> <a id="1786" class="Symbol">:</a> <a id="1788" href="Relation.Binary.Definitions.html#4369" class="Function">Substitutive</a> <a id="1801" class="Symbol">{</a><a id="1802" class="Argument">A</a> <a id="1804" class="Symbol">=</a> <a id="1806" href="Relation.Binary.PropositionalEquality.Core.html#661" class="Generalizable">A</a><a id="1807" class="Symbol">}</a> <a id="1809" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a> <a id="1813" href="Relation.Binary.PropositionalEquality.Core.html#647" class="Generalizable"></a>
<a id="1815" href="Relation.Binary.PropositionalEquality.Core.html#1780" class="Function">subst</a> <a id="1821" href="Relation.Binary.PropositionalEquality.Core.html#1821" class="Bound">P</a> <a id="1823" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1828" href="Relation.Binary.PropositionalEquality.Core.html#1828" class="Bound">p</a> <a id="1830" class="Symbol">=</a> <a id="1832" href="Relation.Binary.PropositionalEquality.Core.html#1828" class="Bound">p</a>
<a id="subst₂"></a><a id="1835" href="Relation.Binary.PropositionalEquality.Core.html#1835" class="Function">subst₂</a> <a id="1842" class="Symbol">:</a> <a id="1844" class="Symbol"></a> <a id="1846" class="Symbol">(</a><a id="1847" href="Relation.Binary.PropositionalEquality.Core.html#1847" class="Bound Operator">__</a> <a id="1851" class="Symbol">:</a> <a id="1853" href="Relation.Binary.Core.html#766" class="Function">REL</a> <a id="1857" href="Relation.Binary.PropositionalEquality.Core.html#661" class="Generalizable">A</a> <a id="1859" href="Relation.Binary.PropositionalEquality.Core.html#663" class="Generalizable">B</a> <a id="1861" href="Relation.Binary.PropositionalEquality.Core.html#647" class="Generalizable"></a><a id="1862" class="Symbol">)</a> <a id="1864" class="Symbol">{</a><a id="1865" href="Relation.Binary.PropositionalEquality.Core.html#1865" class="Bound">x</a> <a id="1867" href="Relation.Binary.PropositionalEquality.Core.html#1867" class="Bound">y</a> <a id="1869" href="Relation.Binary.PropositionalEquality.Core.html#1869" class="Bound">u</a> <a id="1871" href="Relation.Binary.PropositionalEquality.Core.html#1871" class="Bound">v</a><a id="1872" class="Symbol">}</a> <a id="1874" class="Symbol"></a> <a id="1876" href="Relation.Binary.PropositionalEquality.Core.html#1865" class="Bound">x</a> <a id="1878" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1880" href="Relation.Binary.PropositionalEquality.Core.html#1867" class="Bound">y</a> <a id="1882" class="Symbol"></a> <a id="1884" href="Relation.Binary.PropositionalEquality.Core.html#1869" class="Bound">u</a> <a id="1886" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1888" href="Relation.Binary.PropositionalEquality.Core.html#1871" class="Bound">v</a> <a id="1890" class="Symbol"></a> <a id="1892" href="Relation.Binary.PropositionalEquality.Core.html#1865" class="Bound">x</a> <a id="1894" href="Relation.Binary.PropositionalEquality.Core.html#1847" class="Bound Operator"></a> <a id="1896" href="Relation.Binary.PropositionalEquality.Core.html#1869" class="Bound">u</a> <a id="1898" class="Symbol"></a> <a id="1900" href="Relation.Binary.PropositionalEquality.Core.html#1867" class="Bound">y</a> <a id="1902" href="Relation.Binary.PropositionalEquality.Core.html#1847" class="Bound Operator"></a> <a id="1904" href="Relation.Binary.PropositionalEquality.Core.html#1871" class="Bound">v</a>
<a id="1906" href="Relation.Binary.PropositionalEquality.Core.html#1835" class="Function">subst₂</a> <a id="1913" class="Symbol">_</a> <a id="1915" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1920" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1925" href="Relation.Binary.PropositionalEquality.Core.html#1925" class="Bound">p</a> <a id="1927" class="Symbol">=</a> <a id="1929" href="Relation.Binary.PropositionalEquality.Core.html#1925" class="Bound">p</a>
<a id="resp"></a><a id="1932" href="Relation.Binary.PropositionalEquality.Core.html#1932" class="Function">resp</a> <a id="1937" class="Symbol">:</a> <a id="1939" class="Symbol"></a> <a id="1941" class="Symbol">(</a><a id="1942" href="Relation.Binary.PropositionalEquality.Core.html#1942" class="Bound">P</a> <a id="1944" class="Symbol">:</a> <a id="1946" href="Relation.Binary.PropositionalEquality.Core.html#661" class="Generalizable">A</a> <a id="1948" class="Symbol"></a> <a id="1950" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1954" href="Relation.Binary.PropositionalEquality.Core.html#647" class="Generalizable"></a><a id="1955" class="Symbol">)</a> <a id="1957" class="Symbol"></a> <a id="1959" href="Relation.Binary.PropositionalEquality.Core.html#1942" class="Bound">P</a> <a id="1961" href="Relation.Binary.Definitions.html#3593" class="Function Operator">Respects</a> <a id="1970" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a>
<a id="1974" href="Relation.Binary.PropositionalEquality.Core.html#1932" class="Function">resp</a> <a id="1979" href="Relation.Binary.PropositionalEquality.Core.html#1979" class="Bound">P</a> <a id="1981" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1986" href="Relation.Binary.PropositionalEquality.Core.html#1986" class="Bound">p</a> <a id="1988" class="Symbol">=</a> <a id="1990" href="Relation.Binary.PropositionalEquality.Core.html#1986" class="Bound">p</a>
<a id="respˡ"></a><a id="1993" href="Relation.Binary.PropositionalEquality.Core.html#1993" class="Function">respˡ</a> <a id="1999" class="Symbol">:</a> <a id="2001" class="Symbol"></a> <a id="2003" class="Symbol">(</a><a id="2004" href="Relation.Binary.PropositionalEquality.Core.html#2004" class="Bound"></a> <a id="2006" class="Symbol">:</a> <a id="2008" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="2012" href="Relation.Binary.PropositionalEquality.Core.html#661" class="Generalizable">A</a> <a id="2014" href="Relation.Binary.PropositionalEquality.Core.html#647" class="Generalizable"></a><a id="2015" class="Symbol">)</a> <a id="2017" class="Symbol"></a> <a id="2019" href="Relation.Binary.PropositionalEquality.Core.html#2004" class="Bound"></a> <a id="2021" href="Relation.Binary.Definitions.html#3914" class="Function Operator">Respectsˡ</a> <a id="2031" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a>
<a id="2035" href="Relation.Binary.PropositionalEquality.Core.html#1993" class="Function">respˡ</a> <a id="2041" href="Relation.Binary.PropositionalEquality.Core.html#2041" class="Bound Operator">__</a> <a id="2045" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="2050" href="Relation.Binary.PropositionalEquality.Core.html#2050" class="Bound">xy</a> <a id="2054" class="Symbol">=</a> <a id="2056" href="Relation.Binary.PropositionalEquality.Core.html#2050" class="Bound">xy</a>
<a id="respʳ"></a><a id="2061" href="Relation.Binary.PropositionalEquality.Core.html#2061" class="Function">respʳ</a> <a id="2067" class="Symbol">:</a> <a id="2069" class="Symbol"></a> <a id="2071" class="Symbol">(</a><a id="2072" href="Relation.Binary.PropositionalEquality.Core.html#2072" class="Bound"></a> <a id="2074" class="Symbol">:</a> <a id="2076" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="2080" href="Relation.Binary.PropositionalEquality.Core.html#661" class="Generalizable">A</a> <a id="2082" href="Relation.Binary.PropositionalEquality.Core.html#647" class="Generalizable"></a><a id="2083" class="Symbol">)</a> <a id="2085" class="Symbol"></a> <a id="2087" href="Relation.Binary.PropositionalEquality.Core.html#2072" class="Bound"></a> <a id="2089" href="Relation.Binary.Definitions.html#3749" class="Function Operator">Respectsʳ</a> <a id="2099" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a>
<a id="2103" href="Relation.Binary.PropositionalEquality.Core.html#2061" class="Function">respʳ</a> <a id="2109" href="Relation.Binary.PropositionalEquality.Core.html#2109" class="Bound Operator">__</a> <a id="2113" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="2118" href="Relation.Binary.PropositionalEquality.Core.html#2118" class="Bound">xy</a> <a id="2122" class="Symbol">=</a> <a id="2124" href="Relation.Binary.PropositionalEquality.Core.html#2118" class="Bound">xy</a>
<a id="resp₂"></a><a id="2129" href="Relation.Binary.PropositionalEquality.Core.html#2129" class="Function">resp₂</a> <a id="2135" class="Symbol">:</a> <a id="2137" class="Symbol"></a> <a id="2139" class="Symbol">(</a><a id="2140" href="Relation.Binary.PropositionalEquality.Core.html#2140" class="Bound"></a> <a id="2142" class="Symbol">:</a> <a id="2144" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="2148" href="Relation.Binary.PropositionalEquality.Core.html#661" class="Generalizable">A</a> <a id="2150" href="Relation.Binary.PropositionalEquality.Core.html#647" class="Generalizable"></a><a id="2151" class="Symbol">)</a> <a id="2153" class="Symbol"></a> <a id="2155" href="Relation.Binary.PropositionalEquality.Core.html#2140" class="Bound"></a> <a id="2157" href="Relation.Binary.Definitions.html#4077" class="Function Operator">Respects₂</a> <a id="2167" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a>
<a id="2171" href="Relation.Binary.PropositionalEquality.Core.html#2129" class="Function">resp₂</a> <a id="2177" href="Relation.Binary.PropositionalEquality.Core.html#2177" class="Bound Operator">__</a> <a id="2181" class="Symbol">=</a> <a id="2183" href="Relation.Binary.PropositionalEquality.Core.html#2061" class="Function">respʳ</a> <a id="2189" href="Relation.Binary.PropositionalEquality.Core.html#2177" class="Bound Operator">__</a> <a id="2193" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="2195" href="Relation.Binary.PropositionalEquality.Core.html#1993" class="Function">respˡ</a> <a id="2201" href="Relation.Binary.PropositionalEquality.Core.html#2177" class="Bound Operator">__</a>
<a id="2206" class="Comment">------------------------------------------------------------------------</a>
<a id="2279" class="Comment">-- Properties of _≢_</a>
<a id="≢-sym"></a><a id="2301" href="Relation.Binary.PropositionalEquality.Core.html#2301" class="Function">≢-sym</a> <a id="2307" class="Symbol">:</a> <a id="2309" href="Relation.Binary.Definitions.html#1498" class="Function">Symmetric</a> <a id="2319" class="Symbol">{</a><a id="2320" class="Argument">A</a> <a id="2322" class="Symbol">=</a> <a id="2324" href="Relation.Binary.PropositionalEquality.Core.html#661" class="Generalizable">A</a><a id="2325" class="Symbol">}</a> <a id="2327" href="Relation.Binary.PropositionalEquality.Core.html#830" class="Function Operator">_≢_</a>
<a id="2331" href="Relation.Binary.PropositionalEquality.Core.html#2301" class="Function">≢-sym</a> <a id="2337" href="Relation.Binary.PropositionalEquality.Core.html#2337" class="Bound">x≢y</a> <a id="2341" class="Symbol">=</a> <a id="2344" href="Relation.Binary.PropositionalEquality.Core.html#2337" class="Bound">x≢y</a> <a id="2348" href="Function.Base.html#1031" class="Function Operator"></a> <a id="2350" href="Relation.Binary.PropositionalEquality.Core.html#1684" class="Function">sym</a>
<a id="2355" class="Comment">------------------------------------------------------------------------</a>
<a id="2428" class="Comment">-- Convenient syntax for equational reasoning</a>
<a id="2475" class="Comment">-- This is a special instance of `Relation.Binary.Reasoning.Setoid`.</a>
<a id="2544" class="Comment">-- Rather than instantiating the latter with (setoid A), we reimplement</a>
<a id="2616" class="Comment">-- equation chains from scratch since then goals are printed much more</a>
<a id="2687" class="Comment">-- readably.</a>
<a id="2701" class="Keyword">module</a> <a id="≡-Reasoning"></a><a id="2708" href="Relation.Binary.PropositionalEquality.Core.html#2708" class="Module">≡-Reasoning</a> <a id="2720" class="Symbol">{</a><a id="2721" href="Relation.Binary.PropositionalEquality.Core.html#2721" class="Bound">A</a> <a id="2723" class="Symbol">:</a> <a id="2725" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2729" href="Relation.Binary.PropositionalEquality.Core.html#643" class="Generalizable">a</a><a id="2730" class="Symbol">}</a> <a id="2732" class="Keyword">where</a>
<a id="2741" class="Keyword">infix</a> <a id="2748" class="Number">3</a> <a id="2750" href="Relation.Binary.PropositionalEquality.Core.html#3105" class="Function Operator">_∎</a>
<a id="2755" class="Keyword">infixr</a> <a id="2762" class="Number">2</a> <a id="2764" href="Relation.Binary.PropositionalEquality.Core.html#2864" class="Function Operator">_≡⟨⟩_</a> <a id="2770" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function">step-≡</a> <a id="2777" href="Relation.Binary.PropositionalEquality.Core.html#3010" class="Function">step-≡˘</a>
<a id="2787" class="Keyword">infix</a> <a id="2794" class="Number">1</a> <a id="2796" href="Relation.Binary.PropositionalEquality.Core.html#2806" class="Function Operator">begin_</a>
<a id="≡-Reasoning.begin_"></a><a id="2806" href="Relation.Binary.PropositionalEquality.Core.html#2806" class="Function Operator">begin_</a> <a id="2813" class="Symbol">:</a> <a id="2815" class="Symbol">∀{</a><a id="2817" href="Relation.Binary.PropositionalEquality.Core.html#2817" class="Bound">x</a> <a id="2819" href="Relation.Binary.PropositionalEquality.Core.html#2819" class="Bound">y</a> <a id="2821" class="Symbol">:</a> <a id="2823" href="Relation.Binary.PropositionalEquality.Core.html#2721" class="Bound">A</a><a id="2824" class="Symbol">}</a> <a id="2826" class="Symbol"></a> <a id="2828" href="Relation.Binary.PropositionalEquality.Core.html#2817" class="Bound">x</a> <a id="2830" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2832" href="Relation.Binary.PropositionalEquality.Core.html#2819" class="Bound">y</a> <a id="2834" class="Symbol"></a> <a id="2836" href="Relation.Binary.PropositionalEquality.Core.html#2817" class="Bound">x</a> <a id="2838" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2840" href="Relation.Binary.PropositionalEquality.Core.html#2819" class="Bound">y</a>
<a id="2844" href="Relation.Binary.PropositionalEquality.Core.html#2806" class="Function Operator">begin_</a> <a id="2851" href="Relation.Binary.PropositionalEquality.Core.html#2851" class="Bound">x≡y</a> <a id="2855" class="Symbol">=</a> <a id="2857" href="Relation.Binary.PropositionalEquality.Core.html#2851" class="Bound">x≡y</a>
<a id="≡-Reasoning._≡⟨⟩_"></a><a id="2864" href="Relation.Binary.PropositionalEquality.Core.html#2864" class="Function Operator">_≡⟨⟩_</a> <a id="2870" class="Symbol">:</a> <a id="2872" class="Symbol"></a> <a id="2874" class="Symbol">(</a><a id="2875" href="Relation.Binary.PropositionalEquality.Core.html#2875" class="Bound">x</a> <a id="2877" class="Symbol">{</a><a id="2878" href="Relation.Binary.PropositionalEquality.Core.html#2878" class="Bound">y</a><a id="2879" class="Symbol">}</a> <a id="2881" class="Symbol">:</a> <a id="2883" href="Relation.Binary.PropositionalEquality.Core.html#2721" class="Bound">A</a><a id="2884" class="Symbol">)</a> <a id="2886" class="Symbol"></a> <a id="2888" href="Relation.Binary.PropositionalEquality.Core.html#2875" class="Bound">x</a> <a id="2890" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2892" href="Relation.Binary.PropositionalEquality.Core.html#2878" class="Bound">y</a> <a id="2894" class="Symbol"></a> <a id="2896" href="Relation.Binary.PropositionalEquality.Core.html#2875" class="Bound">x</a> <a id="2898" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2900" href="Relation.Binary.PropositionalEquality.Core.html#2878" class="Bound">y</a>
<a id="2904" class="Symbol">_</a> <a id="2906" href="Relation.Binary.PropositionalEquality.Core.html#2864" class="Function Operator">≡⟨⟩</a> <a id="2910" href="Relation.Binary.PropositionalEquality.Core.html#2910" class="Bound">x≡y</a> <a id="2914" class="Symbol">=</a> <a id="2916" href="Relation.Binary.PropositionalEquality.Core.html#2910" class="Bound">x≡y</a>
<a id="≡-Reasoning.step-≡"></a><a id="2923" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function">step-≡</a> <a id="2930" class="Symbol">:</a> <a id="2932" class="Symbol"></a> <a id="2934" class="Symbol">(</a><a id="2935" href="Relation.Binary.PropositionalEquality.Core.html#2935" class="Bound">x</a> <a id="2937" class="Symbol">{</a><a id="2938" href="Relation.Binary.PropositionalEquality.Core.html#2938" class="Bound">y</a> <a id="2940" href="Relation.Binary.PropositionalEquality.Core.html#2940" class="Bound">z</a><a id="2941" class="Symbol">}</a> <a id="2943" class="Symbol">:</a> <a id="2945" href="Relation.Binary.PropositionalEquality.Core.html#2721" class="Bound">A</a><a id="2946" class="Symbol">)</a> <a id="2948" class="Symbol"></a> <a id="2950" href="Relation.Binary.PropositionalEquality.Core.html#2938" class="Bound">y</a> <a id="2952" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2954" href="Relation.Binary.PropositionalEquality.Core.html#2940" class="Bound">z</a> <a id="2956" class="Symbol"></a> <a id="2958" href="Relation.Binary.PropositionalEquality.Core.html#2935" class="Bound">x</a> <a id="2960" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2962" href="Relation.Binary.PropositionalEquality.Core.html#2938" class="Bound">y</a> <a id="2964" class="Symbol"></a> <a id="2966" href="Relation.Binary.PropositionalEquality.Core.html#2935" class="Bound">x</a> <a id="2968" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2970" href="Relation.Binary.PropositionalEquality.Core.html#2940" class="Bound">z</a>
<a id="2974" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function">step-≡</a> <a id="2981" class="Symbol">_</a> <a id="2983" href="Relation.Binary.PropositionalEquality.Core.html#2983" class="Bound">y≡z</a> <a id="2987" href="Relation.Binary.PropositionalEquality.Core.html#2987" class="Bound">x≡y</a> <a id="2991" class="Symbol">=</a> <a id="2993" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="2999" href="Relation.Binary.PropositionalEquality.Core.html#2987" class="Bound">x≡y</a> <a id="3003" href="Relation.Binary.PropositionalEquality.Core.html#2983" class="Bound">y≡z</a>
<a id="≡-Reasoning.step-≡˘"></a><a id="3010" href="Relation.Binary.PropositionalEquality.Core.html#3010" class="Function">step-≡˘</a> <a id="3018" class="Symbol">:</a> <a id="3020" class="Symbol"></a> <a id="3022" class="Symbol">(</a><a id="3023" href="Relation.Binary.PropositionalEquality.Core.html#3023" class="Bound">x</a> <a id="3025" class="Symbol">{</a><a id="3026" href="Relation.Binary.PropositionalEquality.Core.html#3026" class="Bound">y</a> <a id="3028" href="Relation.Binary.PropositionalEquality.Core.html#3028" class="Bound">z</a><a id="3029" class="Symbol">}</a> <a id="3031" class="Symbol">:</a> <a id="3033" href="Relation.Binary.PropositionalEquality.Core.html#2721" class="Bound">A</a><a id="3034" class="Symbol">)</a> <a id="3036" class="Symbol"></a> <a id="3038" href="Relation.Binary.PropositionalEquality.Core.html#3026" class="Bound">y</a> <a id="3040" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="3042" href="Relation.Binary.PropositionalEquality.Core.html#3028" class="Bound">z</a> <a id="3044" class="Symbol"></a> <a id="3046" href="Relation.Binary.PropositionalEquality.Core.html#3026" class="Bound">y</a> <a id="3048" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="3050" href="Relation.Binary.PropositionalEquality.Core.html#3023" class="Bound">x</a> <a id="3052" class="Symbol"></a> <a id="3054" href="Relation.Binary.PropositionalEquality.Core.html#3023" class="Bound">x</a> <a id="3056" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="3058" href="Relation.Binary.PropositionalEquality.Core.html#3028" class="Bound">z</a>
<a id="3062" href="Relation.Binary.PropositionalEquality.Core.html#3010" class="Function">step-≡˘</a> <a id="3070" class="Symbol">_</a> <a id="3072" href="Relation.Binary.PropositionalEquality.Core.html#3072" class="Bound">y≡z</a> <a id="3076" href="Relation.Binary.PropositionalEquality.Core.html#3076" class="Bound">y≡x</a> <a id="3080" class="Symbol">=</a> <a id="3082" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="3088" class="Symbol">(</a><a id="3089" href="Relation.Binary.PropositionalEquality.Core.html#1684" class="Function">sym</a> <a id="3093" href="Relation.Binary.PropositionalEquality.Core.html#3076" class="Bound">y≡x</a><a id="3096" class="Symbol">)</a> <a id="3098" href="Relation.Binary.PropositionalEquality.Core.html#3072" class="Bound">y≡z</a>
<a id="≡-Reasoning._∎"></a><a id="3105" href="Relation.Binary.PropositionalEquality.Core.html#3105" class="Function Operator">_∎</a> <a id="3108" class="Symbol">:</a> <a id="3110" class="Symbol"></a> <a id="3112" class="Symbol">(</a><a id="3113" href="Relation.Binary.PropositionalEquality.Core.html#3113" class="Bound">x</a> <a id="3115" class="Symbol">:</a> <a id="3117" href="Relation.Binary.PropositionalEquality.Core.html#2721" class="Bound">A</a><a id="3118" class="Symbol">)</a> <a id="3120" class="Symbol"></a> <a id="3122" href="Relation.Binary.PropositionalEquality.Core.html#3113" class="Bound">x</a> <a id="3124" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="3126" href="Relation.Binary.PropositionalEquality.Core.html#3113" class="Bound">x</a>
<a id="3130" href="Relation.Binary.PropositionalEquality.Core.html#3105" class="Function Operator">_∎</a> <a id="3133" class="Symbol">_</a> <a id="3135" class="Symbol">=</a> <a id="3137" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="3145" class="Keyword">syntax</a> <a id="3152" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function">step-≡</a> <a id="3160" class="Bound">x</a> <a id="3162" class="Bound">y≡z</a> <a id="3166" class="Bound">x≡y</a> <a id="3170" class="Symbol">=</a> <a id="3172" class="Bound">x</a> <a id="3174" class="Function">≡⟨</a> <a id="3178" class="Bound">x≡y</a> <a id="3182" class="Function"></a> <a id="3184" class="Bound">y≡z</a>
<a id="3190" class="Keyword">syntax</a> <a id="3197" href="Relation.Binary.PropositionalEquality.Core.html#3010" class="Function">step-≡˘</a> <a id="3205" class="Bound">x</a> <a id="3207" class="Bound">y≡z</a> <a id="3211" class="Bound">y≡x</a> <a id="3215" class="Symbol">=</a> <a id="3217" class="Bound">x</a> <a id="3219" class="Function">≡˘⟨</a> <a id="3223" class="Bound">y≡x</a> <a id="3227" class="Function"></a> <a id="3229" class="Bound">y≡z</a>
</pre></body></html>

View File

@ -0,0 +1,146 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Relation.Binary.PropositionalEquality.Properties</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Propositional equality</a>
<a id="132" class="Comment">--</a>
<a id="135" class="Comment">-- This file contains some core properies of propositional equality which</a>
<a id="209" class="Comment">-- are re-exported by Relation.Binary.PropositionalEquality. They are</a>
<a id="279" class="Comment">-- ``equality rearrangement&#39;&#39; lemmas.</a>
<a id="317" class="Comment">------------------------------------------------------------------------</a>
<a id="391" class="Symbol">{-#</a> <a id="395" class="Keyword">OPTIONS</a> <a id="403" class="Pragma">--without-K</a> <a id="415" class="Pragma">--safe</a> <a id="422" class="Symbol">#-}</a>
<a id="427" class="Keyword">module</a> <a id="434" href="Relation.Binary.PropositionalEquality.Properties.html" class="Module">Relation.Binary.PropositionalEquality.Properties</a> <a id="483" class="Keyword">where</a>
<a id="490" class="Keyword">open</a> <a id="495" class="Keyword">import</a> <a id="502" href="Function.Base.html" class="Module">Function.Base</a> <a id="516" class="Keyword">using</a> <a id="522" class="Symbol">(</a><a id="523" href="Function.Base.html#615" class="Function">id</a><a id="525" class="Symbol">;</a> <a id="527" href="Function.Base.html#1031" class="Function Operator">_∘_</a><a id="530" class="Symbol">)</a>
<a id="532" class="Keyword">open</a> <a id="537" class="Keyword">import</a> <a id="544" href="Level.html" class="Module">Level</a>
<a id="550" class="Keyword">open</a> <a id="555" class="Keyword">import</a> <a id="562" href="Relation.Binary.html" class="Module">Relation.Binary</a>
<a id="578" class="Keyword">open</a> <a id="583" class="Keyword">import</a> <a id="590" href="Relation.Binary.PropositionalEquality.Core.html" class="Module">Relation.Binary.PropositionalEquality.Core</a>
<a id="633" class="Keyword">open</a> <a id="638" class="Keyword">import</a> <a id="645" href="Relation.Unary.html" class="Module">Relation.Unary</a> <a id="660" class="Keyword">using</a> <a id="666" class="Symbol">(</a><a id="667" href="Relation.Unary.html#1101" class="Function">Pred</a><a id="671" class="Symbol">)</a>
<a id="674" class="Keyword">private</a>
<a id="684" class="Keyword">variable</a>
<a id="697" href="Relation.Binary.PropositionalEquality.Properties.html#697" class="Generalizable">a</a> <a id="699" href="Relation.Binary.PropositionalEquality.Properties.html#699" class="Generalizable">p</a> <a id="701" class="Symbol">:</a> <a id="703" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="713" href="Relation.Binary.PropositionalEquality.Properties.html#713" class="Generalizable">A</a> <a id="715" href="Relation.Binary.PropositionalEquality.Properties.html#715" class="Generalizable">B</a> <a id="717" href="Relation.Binary.PropositionalEquality.Properties.html#717" class="Generalizable">C</a> <a id="719" class="Symbol">:</a> <a id="721" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="725" href="Relation.Binary.PropositionalEquality.Properties.html#697" class="Generalizable">a</a>
<a id="728" class="Comment">------------------------------------------------------------------------</a>
<a id="801" class="Comment">-- Various equality rearrangement lemmas</a>
<a id="trans-reflʳ"></a><a id="843" href="Relation.Binary.PropositionalEquality.Properties.html#843" class="Function">trans-reflʳ</a> <a id="855" class="Symbol">:</a> <a id="857" class="Symbol"></a> <a id="859" class="Symbol">{</a><a id="860" href="Relation.Binary.PropositionalEquality.Properties.html#860" class="Bound">x</a> <a id="862" href="Relation.Binary.PropositionalEquality.Properties.html#862" class="Bound">y</a> <a id="864" class="Symbol">:</a> <a id="866" href="Relation.Binary.PropositionalEquality.Properties.html#713" class="Generalizable">A</a><a id="867" class="Symbol">}</a> <a id="869" class="Symbol">(</a><a id="870" href="Relation.Binary.PropositionalEquality.Properties.html#870" class="Bound">p</a> <a id="872" class="Symbol">:</a> <a id="874" href="Relation.Binary.PropositionalEquality.Properties.html#860" class="Bound">x</a> <a id="876" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="878" href="Relation.Binary.PropositionalEquality.Properties.html#862" class="Bound">y</a><a id="879" class="Symbol">)</a> <a id="881" class="Symbol"></a> <a id="883" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="889" href="Relation.Binary.PropositionalEquality.Properties.html#870" class="Bound">p</a> <a id="891" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="896" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="898" href="Relation.Binary.PropositionalEquality.Properties.html#870" class="Bound">p</a>
<a id="900" href="Relation.Binary.PropositionalEquality.Properties.html#843" class="Function">trans-reflʳ</a> <a id="912" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="917" class="Symbol">=</a> <a id="919" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="trans-assoc"></a><a id="925" href="Relation.Binary.PropositionalEquality.Properties.html#925" class="Function">trans-assoc</a> <a id="937" class="Symbol">:</a> <a id="939" class="Symbol"></a> <a id="941" class="Symbol">{</a><a id="942" href="Relation.Binary.PropositionalEquality.Properties.html#942" class="Bound">x</a> <a id="944" href="Relation.Binary.PropositionalEquality.Properties.html#944" class="Bound">y</a> <a id="946" href="Relation.Binary.PropositionalEquality.Properties.html#946" class="Bound">z</a> <a id="948" href="Relation.Binary.PropositionalEquality.Properties.html#948" class="Bound">u</a> <a id="950" class="Symbol">:</a> <a id="952" href="Relation.Binary.PropositionalEquality.Properties.html#713" class="Generalizable">A</a><a id="953" class="Symbol">}</a> <a id="955" class="Symbol">(</a><a id="956" href="Relation.Binary.PropositionalEquality.Properties.html#956" class="Bound">p</a> <a id="958" class="Symbol">:</a> <a id="960" href="Relation.Binary.PropositionalEquality.Properties.html#942" class="Bound">x</a> <a id="962" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="964" href="Relation.Binary.PropositionalEquality.Properties.html#944" class="Bound">y</a><a id="965" class="Symbol">)</a> <a id="967" class="Symbol">{</a><a id="968" href="Relation.Binary.PropositionalEquality.Properties.html#968" class="Bound">q</a> <a id="970" class="Symbol">:</a> <a id="972" href="Relation.Binary.PropositionalEquality.Properties.html#944" class="Bound">y</a> <a id="974" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="976" href="Relation.Binary.PropositionalEquality.Properties.html#946" class="Bound">z</a><a id="977" class="Symbol">}</a> <a id="979" class="Symbol">{</a><a id="980" href="Relation.Binary.PropositionalEquality.Properties.html#980" class="Bound">r</a> <a id="982" class="Symbol">:</a> <a id="984" href="Relation.Binary.PropositionalEquality.Properties.html#946" class="Bound">z</a> <a id="986" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="988" href="Relation.Binary.PropositionalEquality.Properties.html#948" class="Bound">u</a><a id="989" class="Symbol">}</a> <a id="991" class="Symbol"></a>
<a id="995" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="1001" class="Symbol">(</a><a id="1002" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="1008" href="Relation.Binary.PropositionalEquality.Properties.html#956" class="Bound">p</a> <a id="1010" href="Relation.Binary.PropositionalEquality.Properties.html#968" class="Bound">q</a><a id="1011" class="Symbol">)</a> <a id="1013" href="Relation.Binary.PropositionalEquality.Properties.html#980" class="Bound">r</a> <a id="1015" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1017" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="1023" href="Relation.Binary.PropositionalEquality.Properties.html#956" class="Bound">p</a> <a id="1025" class="Symbol">(</a><a id="1026" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="1032" href="Relation.Binary.PropositionalEquality.Properties.html#968" class="Bound">q</a> <a id="1034" href="Relation.Binary.PropositionalEquality.Properties.html#980" class="Bound">r</a><a id="1035" class="Symbol">)</a>
<a id="1037" href="Relation.Binary.PropositionalEquality.Properties.html#925" class="Function">trans-assoc</a> <a id="1049" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1054" class="Symbol">=</a> <a id="1056" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="trans-symˡ"></a><a id="1062" href="Relation.Binary.PropositionalEquality.Properties.html#1062" class="Function">trans-symˡ</a> <a id="1073" class="Symbol">:</a> <a id="1075" class="Symbol"></a> <a id="1077" class="Symbol">{</a><a id="1078" href="Relation.Binary.PropositionalEquality.Properties.html#1078" class="Bound">x</a> <a id="1080" href="Relation.Binary.PropositionalEquality.Properties.html#1080" class="Bound">y</a> <a id="1082" class="Symbol">:</a> <a id="1084" href="Relation.Binary.PropositionalEquality.Properties.html#713" class="Generalizable">A</a><a id="1085" class="Symbol">}</a> <a id="1087" class="Symbol">(</a><a id="1088" href="Relation.Binary.PropositionalEquality.Properties.html#1088" class="Bound">p</a> <a id="1090" class="Symbol">:</a> <a id="1092" href="Relation.Binary.PropositionalEquality.Properties.html#1078" class="Bound">x</a> <a id="1094" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1096" href="Relation.Binary.PropositionalEquality.Properties.html#1080" class="Bound">y</a><a id="1097" class="Symbol">)</a> <a id="1099" class="Symbol"></a> <a id="1101" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="1107" class="Symbol">(</a><a id="1108" href="Relation.Binary.PropositionalEquality.Core.html#1684" class="Function">sym</a> <a id="1112" href="Relation.Binary.PropositionalEquality.Properties.html#1088" class="Bound">p</a><a id="1113" class="Symbol">)</a> <a id="1115" href="Relation.Binary.PropositionalEquality.Properties.html#1088" class="Bound">p</a> <a id="1117" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1119" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="1124" href="Relation.Binary.PropositionalEquality.Properties.html#1062" class="Function">trans-symˡ</a> <a id="1135" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1140" class="Symbol">=</a> <a id="1142" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="trans-symʳ"></a><a id="1148" href="Relation.Binary.PropositionalEquality.Properties.html#1148" class="Function">trans-symʳ</a> <a id="1159" class="Symbol">:</a> <a id="1161" class="Symbol"></a> <a id="1163" class="Symbol">{</a><a id="1164" href="Relation.Binary.PropositionalEquality.Properties.html#1164" class="Bound">x</a> <a id="1166" href="Relation.Binary.PropositionalEquality.Properties.html#1166" class="Bound">y</a> <a id="1168" class="Symbol">:</a> <a id="1170" href="Relation.Binary.PropositionalEquality.Properties.html#713" class="Generalizable">A</a><a id="1171" class="Symbol">}</a> <a id="1173" class="Symbol">(</a><a id="1174" href="Relation.Binary.PropositionalEquality.Properties.html#1174" class="Bound">p</a> <a id="1176" class="Symbol">:</a> <a id="1178" href="Relation.Binary.PropositionalEquality.Properties.html#1164" class="Bound">x</a> <a id="1180" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1182" href="Relation.Binary.PropositionalEquality.Properties.html#1166" class="Bound">y</a><a id="1183" class="Symbol">)</a> <a id="1185" class="Symbol"></a> <a id="1187" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="1193" href="Relation.Binary.PropositionalEquality.Properties.html#1174" class="Bound">p</a> <a id="1195" class="Symbol">(</a><a id="1196" href="Relation.Binary.PropositionalEquality.Core.html#1684" class="Function">sym</a> <a id="1200" href="Relation.Binary.PropositionalEquality.Properties.html#1174" class="Bound">p</a><a id="1201" class="Symbol">)</a> <a id="1203" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1205" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="1210" href="Relation.Binary.PropositionalEquality.Properties.html#1148" class="Function">trans-symʳ</a> <a id="1221" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1226" class="Symbol">=</a> <a id="1228" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="trans-injectiveˡ"></a><a id="1234" href="Relation.Binary.PropositionalEquality.Properties.html#1234" class="Function">trans-injectiveˡ</a> <a id="1251" class="Symbol">:</a> <a id="1253" class="Symbol"></a> <a id="1255" class="Symbol">{</a><a id="1256" href="Relation.Binary.PropositionalEquality.Properties.html#1256" class="Bound">x</a> <a id="1258" href="Relation.Binary.PropositionalEquality.Properties.html#1258" class="Bound">y</a> <a id="1260" href="Relation.Binary.PropositionalEquality.Properties.html#1260" class="Bound">z</a> <a id="1262" class="Symbol">:</a> <a id="1264" href="Relation.Binary.PropositionalEquality.Properties.html#713" class="Generalizable">A</a><a id="1265" class="Symbol">}</a> <a id="1267" class="Symbol">{</a><a id="1268" href="Relation.Binary.PropositionalEquality.Properties.html#1268" class="Bound">p₁</a> <a id="1271" href="Relation.Binary.PropositionalEquality.Properties.html#1271" class="Bound">p₂</a> <a id="1274" class="Symbol">:</a> <a id="1276" href="Relation.Binary.PropositionalEquality.Properties.html#1256" class="Bound">x</a> <a id="1278" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1280" href="Relation.Binary.PropositionalEquality.Properties.html#1258" class="Bound">y</a><a id="1281" class="Symbol">}</a> <a id="1283" class="Symbol">(</a><a id="1284" href="Relation.Binary.PropositionalEquality.Properties.html#1284" class="Bound">q</a> <a id="1286" class="Symbol">:</a> <a id="1288" href="Relation.Binary.PropositionalEquality.Properties.html#1258" class="Bound">y</a> <a id="1290" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1292" href="Relation.Binary.PropositionalEquality.Properties.html#1260" class="Bound">z</a><a id="1293" class="Symbol">)</a> <a id="1295" class="Symbol"></a>
<a id="1316" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="1322" href="Relation.Binary.PropositionalEquality.Properties.html#1268" class="Bound">p₁</a> <a id="1325" href="Relation.Binary.PropositionalEquality.Properties.html#1284" class="Bound">q</a> <a id="1327" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1329" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="1335" href="Relation.Binary.PropositionalEquality.Properties.html#1271" class="Bound">p₂</a> <a id="1338" href="Relation.Binary.PropositionalEquality.Properties.html#1284" class="Bound">q</a> <a id="1340" class="Symbol"></a> <a id="1342" href="Relation.Binary.PropositionalEquality.Properties.html#1268" class="Bound">p₁</a> <a id="1345" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1347" href="Relation.Binary.PropositionalEquality.Properties.html#1271" class="Bound">p₂</a>
<a id="1350" href="Relation.Binary.PropositionalEquality.Properties.html#1234" class="Function">trans-injectiveˡ</a> <a id="1367" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1372" class="Symbol">=</a> <a id="1374" href="Relation.Binary.PropositionalEquality.Core.html#1835" class="Function">subst₂</a> <a id="1381" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a> <a id="1385" class="Symbol">(</a><a id="1386" href="Relation.Binary.PropositionalEquality.Properties.html#843" class="Function">trans-reflʳ</a> <a id="1398" class="Symbol">_)</a> <a id="1401" class="Symbol">(</a><a id="1402" href="Relation.Binary.PropositionalEquality.Properties.html#843" class="Function">trans-reflʳ</a> <a id="1414" class="Symbol">_)</a>
<a id="trans-injectiveʳ"></a><a id="1418" href="Relation.Binary.PropositionalEquality.Properties.html#1418" class="Function">trans-injectiveʳ</a> <a id="1435" class="Symbol">:</a> <a id="1437" class="Symbol"></a> <a id="1439" class="Symbol">{</a><a id="1440" href="Relation.Binary.PropositionalEquality.Properties.html#1440" class="Bound">x</a> <a id="1442" href="Relation.Binary.PropositionalEquality.Properties.html#1442" class="Bound">y</a> <a id="1444" href="Relation.Binary.PropositionalEquality.Properties.html#1444" class="Bound">z</a> <a id="1446" class="Symbol">:</a> <a id="1448" href="Relation.Binary.PropositionalEquality.Properties.html#713" class="Generalizable">A</a><a id="1449" class="Symbol">}</a> <a id="1451" class="Symbol">(</a><a id="1452" href="Relation.Binary.PropositionalEquality.Properties.html#1452" class="Bound">p</a> <a id="1454" class="Symbol">:</a> <a id="1456" href="Relation.Binary.PropositionalEquality.Properties.html#1440" class="Bound">x</a> <a id="1458" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1460" href="Relation.Binary.PropositionalEquality.Properties.html#1442" class="Bound">y</a><a id="1461" class="Symbol">)</a> <a id="1463" class="Symbol">{</a><a id="1464" href="Relation.Binary.PropositionalEquality.Properties.html#1464" class="Bound">q₁</a> <a id="1467" href="Relation.Binary.PropositionalEquality.Properties.html#1467" class="Bound">q₂</a> <a id="1470" class="Symbol">:</a> <a id="1472" href="Relation.Binary.PropositionalEquality.Properties.html#1442" class="Bound">y</a> <a id="1474" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1476" href="Relation.Binary.PropositionalEquality.Properties.html#1444" class="Bound">z</a><a id="1477" class="Symbol">}</a> <a id="1479" class="Symbol"></a>
<a id="1500" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="1506" href="Relation.Binary.PropositionalEquality.Properties.html#1452" class="Bound">p</a> <a id="1508" href="Relation.Binary.PropositionalEquality.Properties.html#1464" class="Bound">q₁</a> <a id="1511" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1513" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="1519" href="Relation.Binary.PropositionalEquality.Properties.html#1452" class="Bound">p</a> <a id="1521" href="Relation.Binary.PropositionalEquality.Properties.html#1467" class="Bound">q₂</a> <a id="1524" class="Symbol"></a> <a id="1526" href="Relation.Binary.PropositionalEquality.Properties.html#1464" class="Bound">q₁</a> <a id="1529" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1531" href="Relation.Binary.PropositionalEquality.Properties.html#1467" class="Bound">q₂</a>
<a id="1534" href="Relation.Binary.PropositionalEquality.Properties.html#1418" class="Function">trans-injectiveʳ</a> <a id="1551" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1556" href="Relation.Binary.PropositionalEquality.Properties.html#1556" class="Bound">eq</a> <a id="1559" class="Symbol">=</a> <a id="1561" href="Relation.Binary.PropositionalEquality.Properties.html#1556" class="Bound">eq</a>
<a id="cong-id"></a><a id="1565" href="Relation.Binary.PropositionalEquality.Properties.html#1565" class="Function">cong-id</a> <a id="1573" class="Symbol">:</a> <a id="1575" class="Symbol"></a> <a id="1577" class="Symbol">{</a><a id="1578" href="Relation.Binary.PropositionalEquality.Properties.html#1578" class="Bound">x</a> <a id="1580" href="Relation.Binary.PropositionalEquality.Properties.html#1580" class="Bound">y</a> <a id="1582" class="Symbol">:</a> <a id="1584" href="Relation.Binary.PropositionalEquality.Properties.html#713" class="Generalizable">A</a><a id="1585" class="Symbol">}</a> <a id="1587" class="Symbol">(</a><a id="1588" href="Relation.Binary.PropositionalEquality.Properties.html#1588" class="Bound">p</a> <a id="1590" class="Symbol">:</a> <a id="1592" href="Relation.Binary.PropositionalEquality.Properties.html#1578" class="Bound">x</a> <a id="1594" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1596" href="Relation.Binary.PropositionalEquality.Properties.html#1580" class="Bound">y</a><a id="1597" class="Symbol">)</a> <a id="1599" class="Symbol"></a> <a id="1601" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="1606" href="Function.Base.html#615" class="Function">id</a> <a id="1609" href="Relation.Binary.PropositionalEquality.Properties.html#1588" class="Bound">p</a> <a id="1611" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1613" href="Relation.Binary.PropositionalEquality.Properties.html#1588" class="Bound">p</a>
<a id="1615" href="Relation.Binary.PropositionalEquality.Properties.html#1565" class="Function">cong-id</a> <a id="1623" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1628" class="Symbol">=</a> <a id="1630" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="cong-∘"></a><a id="1636" href="Relation.Binary.PropositionalEquality.Properties.html#1636" class="Function">cong-∘</a> <a id="1643" class="Symbol">:</a> <a id="1645" class="Symbol"></a> <a id="1647" class="Symbol">{</a><a id="1648" href="Relation.Binary.PropositionalEquality.Properties.html#1648" class="Bound">x</a> <a id="1650" href="Relation.Binary.PropositionalEquality.Properties.html#1650" class="Bound">y</a> <a id="1652" class="Symbol">:</a> <a id="1654" href="Relation.Binary.PropositionalEquality.Properties.html#713" class="Generalizable">A</a><a id="1655" class="Symbol">}</a> <a id="1657" class="Symbol">{</a><a id="1658" href="Relation.Binary.PropositionalEquality.Properties.html#1658" class="Bound">f</a> <a id="1660" class="Symbol">:</a> <a id="1662" href="Relation.Binary.PropositionalEquality.Properties.html#715" class="Generalizable">B</a> <a id="1664" class="Symbol"></a> <a id="1666" href="Relation.Binary.PropositionalEquality.Properties.html#717" class="Generalizable">C</a><a id="1667" class="Symbol">}</a> <a id="1669" class="Symbol">{</a><a id="1670" href="Relation.Binary.PropositionalEquality.Properties.html#1670" class="Bound">g</a> <a id="1672" class="Symbol">:</a> <a id="1674" href="Relation.Binary.PropositionalEquality.Properties.html#713" class="Generalizable">A</a> <a id="1676" class="Symbol"></a> <a id="1678" href="Relation.Binary.PropositionalEquality.Properties.html#715" class="Generalizable">B</a><a id="1679" class="Symbol">}</a> <a id="1681" class="Symbol">(</a><a id="1682" href="Relation.Binary.PropositionalEquality.Properties.html#1682" class="Bound">p</a> <a id="1684" class="Symbol">:</a> <a id="1686" href="Relation.Binary.PropositionalEquality.Properties.html#1648" class="Bound">x</a> <a id="1688" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1690" href="Relation.Binary.PropositionalEquality.Properties.html#1650" class="Bound">y</a><a id="1691" class="Symbol">)</a> <a id="1693" class="Symbol"></a>
<a id="1704" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="1709" class="Symbol">(</a><a id="1710" href="Relation.Binary.PropositionalEquality.Properties.html#1658" class="Bound">f</a> <a id="1712" href="Function.Base.html#1031" class="Function Operator"></a> <a id="1714" href="Relation.Binary.PropositionalEquality.Properties.html#1670" class="Bound">g</a><a id="1715" class="Symbol">)</a> <a id="1717" href="Relation.Binary.PropositionalEquality.Properties.html#1682" class="Bound">p</a> <a id="1719" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1721" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="1726" href="Relation.Binary.PropositionalEquality.Properties.html#1658" class="Bound">f</a> <a id="1728" class="Symbol">(</a><a id="1729" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="1734" href="Relation.Binary.PropositionalEquality.Properties.html#1670" class="Bound">g</a> <a id="1736" href="Relation.Binary.PropositionalEquality.Properties.html#1682" class="Bound">p</a><a id="1737" class="Symbol">)</a>
<a id="1739" href="Relation.Binary.PropositionalEquality.Properties.html#1636" class="Function">cong-∘</a> <a id="1746" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1751" class="Symbol">=</a> <a id="1753" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="trans-cong"></a><a id="1759" href="Relation.Binary.PropositionalEquality.Properties.html#1759" class="Function">trans-cong</a> <a id="1770" class="Symbol">:</a> <a id="1772" class="Symbol"></a> <a id="1774" class="Symbol">{</a><a id="1775" href="Relation.Binary.PropositionalEquality.Properties.html#1775" class="Bound">x</a> <a id="1777" href="Relation.Binary.PropositionalEquality.Properties.html#1777" class="Bound">y</a> <a id="1779" href="Relation.Binary.PropositionalEquality.Properties.html#1779" class="Bound">z</a> <a id="1781" class="Symbol">:</a> <a id="1783" href="Relation.Binary.PropositionalEquality.Properties.html#713" class="Generalizable">A</a><a id="1784" class="Symbol">}</a> <a id="1786" class="Symbol">{</a><a id="1787" href="Relation.Binary.PropositionalEquality.Properties.html#1787" class="Bound">f</a> <a id="1789" class="Symbol">:</a> <a id="1791" href="Relation.Binary.PropositionalEquality.Properties.html#713" class="Generalizable">A</a> <a id="1793" class="Symbol"></a> <a id="1795" href="Relation.Binary.PropositionalEquality.Properties.html#715" class="Generalizable">B</a><a id="1796" class="Symbol">}</a> <a id="1798" class="Symbol">(</a><a id="1799" href="Relation.Binary.PropositionalEquality.Properties.html#1799" class="Bound">p</a> <a id="1801" class="Symbol">:</a> <a id="1803" href="Relation.Binary.PropositionalEquality.Properties.html#1775" class="Bound">x</a> <a id="1805" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1807" href="Relation.Binary.PropositionalEquality.Properties.html#1777" class="Bound">y</a><a id="1808" class="Symbol">)</a> <a id="1810" class="Symbol">{</a><a id="1811" href="Relation.Binary.PropositionalEquality.Properties.html#1811" class="Bound">q</a> <a id="1813" class="Symbol">:</a> <a id="1815" href="Relation.Binary.PropositionalEquality.Properties.html#1777" class="Bound">y</a> <a id="1817" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1819" href="Relation.Binary.PropositionalEquality.Properties.html#1779" class="Bound">z</a><a id="1820" class="Symbol">}</a> <a id="1822" class="Symbol"></a>
<a id="1837" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="1843" class="Symbol">(</a><a id="1844" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="1849" href="Relation.Binary.PropositionalEquality.Properties.html#1787" class="Bound">f</a> <a id="1851" href="Relation.Binary.PropositionalEquality.Properties.html#1799" class="Bound">p</a><a id="1852" class="Symbol">)</a> <a id="1854" class="Symbol">(</a><a id="1855" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="1860" href="Relation.Binary.PropositionalEquality.Properties.html#1787" class="Bound">f</a> <a id="1862" href="Relation.Binary.PropositionalEquality.Properties.html#1811" class="Bound">q</a><a id="1863" class="Symbol">)</a> <a id="1865" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1867" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="1872" href="Relation.Binary.PropositionalEquality.Properties.html#1787" class="Bound">f</a> <a id="1874" class="Symbol">(</a><a id="1875" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="1881" href="Relation.Binary.PropositionalEquality.Properties.html#1799" class="Bound">p</a> <a id="1883" href="Relation.Binary.PropositionalEquality.Properties.html#1811" class="Bound">q</a><a id="1884" class="Symbol">)</a>
<a id="1886" href="Relation.Binary.PropositionalEquality.Properties.html#1759" class="Function">trans-cong</a> <a id="1897" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1902" class="Symbol">=</a> <a id="1904" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="cong₂-reflˡ"></a><a id="1910" href="Relation.Binary.PropositionalEquality.Properties.html#1910" class="Function">cong₂-reflˡ</a> <a id="1922" class="Symbol">:</a> <a id="1924" class="Symbol"></a> <a id="1926" class="Symbol">{</a><a id="1927" href="Relation.Binary.PropositionalEquality.Properties.html#1927" class="Bound Operator">_∙_</a> <a id="1931" class="Symbol">:</a> <a id="1933" href="Relation.Binary.PropositionalEquality.Properties.html#713" class="Generalizable">A</a> <a id="1935" class="Symbol"></a> <a id="1937" href="Relation.Binary.PropositionalEquality.Properties.html#715" class="Generalizable">B</a> <a id="1939" class="Symbol"></a> <a id="1941" href="Relation.Binary.PropositionalEquality.Properties.html#717" class="Generalizable">C</a><a id="1942" class="Symbol">}</a> <a id="1944" class="Symbol">{</a><a id="1945" href="Relation.Binary.PropositionalEquality.Properties.html#1945" class="Bound">x</a> <a id="1947" href="Relation.Binary.PropositionalEquality.Properties.html#1947" class="Bound">u</a> <a id="1949" href="Relation.Binary.PropositionalEquality.Properties.html#1949" class="Bound">v</a><a id="1950" class="Symbol">}</a> <a id="1952" class="Symbol"></a> <a id="1954" class="Symbol">(</a><a id="1955" href="Relation.Binary.PropositionalEquality.Properties.html#1955" class="Bound">p</a> <a id="1957" class="Symbol">:</a> <a id="1959" href="Relation.Binary.PropositionalEquality.Properties.html#1947" class="Bound">u</a> <a id="1961" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1963" href="Relation.Binary.PropositionalEquality.Properties.html#1949" class="Bound">v</a><a id="1964" class="Symbol">)</a> <a id="1966" class="Symbol"></a>
<a id="1982" href="Relation.Binary.PropositionalEquality.Core.html#1367" class="Function">cong₂</a> <a id="1988" href="Relation.Binary.PropositionalEquality.Properties.html#1927" class="Bound Operator">_∙_</a> <a id="1992" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1997" href="Relation.Binary.PropositionalEquality.Properties.html#1955" class="Bound">p</a> <a id="1999" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2001" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="2006" class="Symbol">(</a><a id="2007" href="Relation.Binary.PropositionalEquality.Properties.html#1945" class="Bound">x</a> <a id="2009" href="Relation.Binary.PropositionalEquality.Properties.html#1927" class="Bound Operator">∙_</a><a id="2011" class="Symbol">)</a> <a id="2013" href="Relation.Binary.PropositionalEquality.Properties.html#1955" class="Bound">p</a>
<a id="2015" href="Relation.Binary.PropositionalEquality.Properties.html#1910" class="Function">cong₂-reflˡ</a> <a id="2027" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="2032" class="Symbol">=</a> <a id="2034" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="cong₂-reflʳ"></a><a id="2040" href="Relation.Binary.PropositionalEquality.Properties.html#2040" class="Function">cong₂-reflʳ</a> <a id="2052" class="Symbol">:</a> <a id="2054" class="Symbol"></a> <a id="2056" class="Symbol">{</a><a id="2057" href="Relation.Binary.PropositionalEquality.Properties.html#2057" class="Bound Operator">_∙_</a> <a id="2061" class="Symbol">:</a> <a id="2063" href="Relation.Binary.PropositionalEquality.Properties.html#713" class="Generalizable">A</a> <a id="2065" class="Symbol"></a> <a id="2067" href="Relation.Binary.PropositionalEquality.Properties.html#715" class="Generalizable">B</a> <a id="2069" class="Symbol"></a> <a id="2071" href="Relation.Binary.PropositionalEquality.Properties.html#717" class="Generalizable">C</a><a id="2072" class="Symbol">}</a> <a id="2074" class="Symbol">{</a><a id="2075" href="Relation.Binary.PropositionalEquality.Properties.html#2075" class="Bound">x</a> <a id="2077" href="Relation.Binary.PropositionalEquality.Properties.html#2077" class="Bound">y</a> <a id="2079" href="Relation.Binary.PropositionalEquality.Properties.html#2079" class="Bound">u</a><a id="2080" class="Symbol">}</a> <a id="2082" class="Symbol"></a> <a id="2084" class="Symbol">(</a><a id="2085" href="Relation.Binary.PropositionalEquality.Properties.html#2085" class="Bound">p</a> <a id="2087" class="Symbol">:</a> <a id="2089" href="Relation.Binary.PropositionalEquality.Properties.html#2075" class="Bound">x</a> <a id="2091" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2093" href="Relation.Binary.PropositionalEquality.Properties.html#2077" class="Bound">y</a><a id="2094" class="Symbol">)</a> <a id="2096" class="Symbol"></a>
<a id="2112" href="Relation.Binary.PropositionalEquality.Core.html#1367" class="Function">cong₂</a> <a id="2118" href="Relation.Binary.PropositionalEquality.Properties.html#2057" class="Bound Operator">_∙_</a> <a id="2122" href="Relation.Binary.PropositionalEquality.Properties.html#2085" class="Bound">p</a> <a id="2124" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="2129" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2131" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="2136" class="Symbol">(</a><a id="2137" href="Relation.Binary.PropositionalEquality.Properties.html#2057" class="Bound Operator">_∙</a> <a id="2140" href="Relation.Binary.PropositionalEquality.Properties.html#2079" class="Bound">u</a><a id="2141" class="Symbol">)</a> <a id="2143" href="Relation.Binary.PropositionalEquality.Properties.html#2085" class="Bound">p</a>
<a id="2145" href="Relation.Binary.PropositionalEquality.Properties.html#2040" class="Function">cong₂-reflʳ</a> <a id="2157" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="2162" class="Symbol">=</a> <a id="2164" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="2170" class="Keyword">module</a> <a id="2177" href="Relation.Binary.PropositionalEquality.Properties.html#2177" class="Module">_</a> <a id="2179" class="Symbol">{</a><a id="2180" href="Relation.Binary.PropositionalEquality.Properties.html#2180" class="Bound">P</a> <a id="2182" class="Symbol">:</a> <a id="2184" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="2189" href="Relation.Binary.PropositionalEquality.Properties.html#713" class="Generalizable">A</a> <a id="2191" href="Relation.Binary.PropositionalEquality.Properties.html#699" class="Generalizable">p</a><a id="2192" class="Symbol">}</a> <a id="2194" class="Symbol">{</a><a id="2195" href="Relation.Binary.PropositionalEquality.Properties.html#2195" class="Bound">x</a> <a id="2197" href="Relation.Binary.PropositionalEquality.Properties.html#2197" class="Bound">y</a> <a id="2199" class="Symbol">:</a> <a id="2201" href="Relation.Binary.PropositionalEquality.Properties.html#713" class="Generalizable">A</a><a id="2202" class="Symbol">}</a> <a id="2204" class="Keyword">where</a>
<a id="2213" href="Relation.Binary.PropositionalEquality.Properties.html#2213" class="Function">subst-injective</a> <a id="2229" class="Symbol">:</a> <a id="2231" class="Symbol"></a> <a id="2233" class="Symbol">(</a><a id="2234" href="Relation.Binary.PropositionalEquality.Properties.html#2234" class="Bound">x≡y</a> <a id="2238" class="Symbol">:</a> <a id="2240" href="Relation.Binary.PropositionalEquality.Properties.html#2195" class="Bound">x</a> <a id="2242" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2244" href="Relation.Binary.PropositionalEquality.Properties.html#2197" class="Bound">y</a><a id="2245" class="Symbol">)</a> <a id="2247" class="Symbol">{</a><a id="2248" href="Relation.Binary.PropositionalEquality.Properties.html#2248" class="Bound">p</a> <a id="2250" href="Relation.Binary.PropositionalEquality.Properties.html#2250" class="Bound">q</a> <a id="2252" class="Symbol">:</a> <a id="2254" href="Relation.Binary.PropositionalEquality.Properties.html#2180" class="Bound">P</a> <a id="2256" href="Relation.Binary.PropositionalEquality.Properties.html#2195" class="Bound">x</a><a id="2257" class="Symbol">}</a> <a id="2259" class="Symbol"></a>
<a id="2281" href="Relation.Binary.PropositionalEquality.Core.html#1780" class="Function">subst</a> <a id="2287" href="Relation.Binary.PropositionalEquality.Properties.html#2180" class="Bound">P</a> <a id="2289" href="Relation.Binary.PropositionalEquality.Properties.html#2234" class="Bound">x≡y</a> <a id="2293" href="Relation.Binary.PropositionalEquality.Properties.html#2248" class="Bound">p</a> <a id="2295" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2297" href="Relation.Binary.PropositionalEquality.Core.html#1780" class="Function">subst</a> <a id="2303" href="Relation.Binary.PropositionalEquality.Properties.html#2180" class="Bound">P</a> <a id="2305" href="Relation.Binary.PropositionalEquality.Properties.html#2234" class="Bound">x≡y</a> <a id="2309" href="Relation.Binary.PropositionalEquality.Properties.html#2250" class="Bound">q</a> <a id="2311" class="Symbol"></a> <a id="2313" href="Relation.Binary.PropositionalEquality.Properties.html#2248" class="Bound">p</a> <a id="2315" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2317" href="Relation.Binary.PropositionalEquality.Properties.html#2250" class="Bound">q</a>
<a id="2321" href="Relation.Binary.PropositionalEquality.Properties.html#2213" class="Function">subst-injective</a> <a id="2337" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="2342" href="Relation.Binary.PropositionalEquality.Properties.html#2342" class="Bound">p≡q</a> <a id="2346" class="Symbol">=</a> <a id="2348" href="Relation.Binary.PropositionalEquality.Properties.html#2342" class="Bound">p≡q</a>
<a id="2355" href="Relation.Binary.PropositionalEquality.Properties.html#2355" class="Function">subst-subst</a> <a id="2367" class="Symbol">:</a> <a id="2369" class="Symbol"></a> <a id="2371" class="Symbol">{</a><a id="2372" href="Relation.Binary.PropositionalEquality.Properties.html#2372" class="Bound">z</a><a id="2373" class="Symbol">}</a> <a id="2375" class="Symbol">(</a><a id="2376" href="Relation.Binary.PropositionalEquality.Properties.html#2376" class="Bound">x≡y</a> <a id="2380" class="Symbol">:</a> <a id="2382" href="Relation.Binary.PropositionalEquality.Properties.html#2195" class="Bound">x</a> <a id="2384" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2386" href="Relation.Binary.PropositionalEquality.Properties.html#2197" class="Bound">y</a><a id="2387" class="Symbol">)</a> <a id="2389" class="Symbol">{</a><a id="2390" href="Relation.Binary.PropositionalEquality.Properties.html#2390" class="Bound">y≡z</a> <a id="2394" class="Symbol">:</a> <a id="2396" href="Relation.Binary.PropositionalEquality.Properties.html#2197" class="Bound">y</a> <a id="2398" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2400" href="Relation.Binary.PropositionalEquality.Properties.html#2372" class="Bound">z</a><a id="2401" class="Symbol">}</a> <a id="2403" class="Symbol">{</a><a id="2404" href="Relation.Binary.PropositionalEquality.Properties.html#2404" class="Bound">p</a> <a id="2406" class="Symbol">:</a> <a id="2408" href="Relation.Binary.PropositionalEquality.Properties.html#2180" class="Bound">P</a> <a id="2410" href="Relation.Binary.PropositionalEquality.Properties.html#2195" class="Bound">x</a><a id="2411" class="Symbol">}</a> <a id="2413" class="Symbol"></a>
<a id="2431" href="Relation.Binary.PropositionalEquality.Core.html#1780" class="Function">subst</a> <a id="2437" href="Relation.Binary.PropositionalEquality.Properties.html#2180" class="Bound">P</a> <a id="2439" href="Relation.Binary.PropositionalEquality.Properties.html#2390" class="Bound">y≡z</a> <a id="2443" class="Symbol">(</a><a id="2444" href="Relation.Binary.PropositionalEquality.Core.html#1780" class="Function">subst</a> <a id="2450" href="Relation.Binary.PropositionalEquality.Properties.html#2180" class="Bound">P</a> <a id="2452" href="Relation.Binary.PropositionalEquality.Properties.html#2376" class="Bound">x≡y</a> <a id="2456" href="Relation.Binary.PropositionalEquality.Properties.html#2404" class="Bound">p</a><a id="2457" class="Symbol">)</a> <a id="2459" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2461" href="Relation.Binary.PropositionalEquality.Core.html#1780" class="Function">subst</a> <a id="2467" href="Relation.Binary.PropositionalEquality.Properties.html#2180" class="Bound">P</a> <a id="2469" class="Symbol">(</a><a id="2470" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="2476" href="Relation.Binary.PropositionalEquality.Properties.html#2376" class="Bound">x≡y</a> <a id="2480" href="Relation.Binary.PropositionalEquality.Properties.html#2390" class="Bound">y≡z</a><a id="2483" class="Symbol">)</a> <a id="2485" href="Relation.Binary.PropositionalEquality.Properties.html#2404" class="Bound">p</a>
<a id="2489" href="Relation.Binary.PropositionalEquality.Properties.html#2355" class="Function">subst-subst</a> <a id="2501" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="2506" class="Symbol">=</a> <a id="2508" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="2516" href="Relation.Binary.PropositionalEquality.Properties.html#2516" class="Function">subst-subst-sym</a> <a id="2532" class="Symbol">:</a> <a id="2534" class="Symbol">(</a><a id="2535" href="Relation.Binary.PropositionalEquality.Properties.html#2535" class="Bound">x≡y</a> <a id="2539" class="Symbol">:</a> <a id="2541" href="Relation.Binary.PropositionalEquality.Properties.html#2195" class="Bound">x</a> <a id="2543" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2545" href="Relation.Binary.PropositionalEquality.Properties.html#2197" class="Bound">y</a><a id="2546" class="Symbol">)</a> <a id="2548" class="Symbol">{</a><a id="2549" href="Relation.Binary.PropositionalEquality.Properties.html#2549" class="Bound">p</a> <a id="2551" class="Symbol">:</a> <a id="2553" href="Relation.Binary.PropositionalEquality.Properties.html#2180" class="Bound">P</a> <a id="2555" href="Relation.Binary.PropositionalEquality.Properties.html#2197" class="Bound">y</a><a id="2556" class="Symbol">}</a> <a id="2558" class="Symbol"></a>
<a id="2580" href="Relation.Binary.PropositionalEquality.Core.html#1780" class="Function">subst</a> <a id="2586" href="Relation.Binary.PropositionalEquality.Properties.html#2180" class="Bound">P</a> <a id="2588" href="Relation.Binary.PropositionalEquality.Properties.html#2535" class="Bound">x≡y</a> <a id="2592" class="Symbol">(</a><a id="2593" href="Relation.Binary.PropositionalEquality.Core.html#1780" class="Function">subst</a> <a id="2599" href="Relation.Binary.PropositionalEquality.Properties.html#2180" class="Bound">P</a> <a id="2601" class="Symbol">(</a><a id="2602" href="Relation.Binary.PropositionalEquality.Core.html#1684" class="Function">sym</a> <a id="2606" href="Relation.Binary.PropositionalEquality.Properties.html#2535" class="Bound">x≡y</a><a id="2609" class="Symbol">)</a> <a id="2611" href="Relation.Binary.PropositionalEquality.Properties.html#2549" class="Bound">p</a><a id="2612" class="Symbol">)</a> <a id="2614" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2616" href="Relation.Binary.PropositionalEquality.Properties.html#2549" class="Bound">p</a>
<a id="2620" href="Relation.Binary.PropositionalEquality.Properties.html#2516" class="Function">subst-subst-sym</a> <a id="2636" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="2641" class="Symbol">=</a> <a id="2643" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="2651" href="Relation.Binary.PropositionalEquality.Properties.html#2651" class="Function">subst-sym-subst</a> <a id="2667" class="Symbol">:</a> <a id="2669" class="Symbol">(</a><a id="2670" href="Relation.Binary.PropositionalEquality.Properties.html#2670" class="Bound">x≡y</a> <a id="2674" class="Symbol">:</a> <a id="2676" href="Relation.Binary.PropositionalEquality.Properties.html#2195" class="Bound">x</a> <a id="2678" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2680" href="Relation.Binary.PropositionalEquality.Properties.html#2197" class="Bound">y</a><a id="2681" class="Symbol">)</a> <a id="2683" class="Symbol">{</a><a id="2684" href="Relation.Binary.PropositionalEquality.Properties.html#2684" class="Bound">p</a> <a id="2686" class="Symbol">:</a> <a id="2688" href="Relation.Binary.PropositionalEquality.Properties.html#2180" class="Bound">P</a> <a id="2690" href="Relation.Binary.PropositionalEquality.Properties.html#2195" class="Bound">x</a><a id="2691" class="Symbol">}</a> <a id="2693" class="Symbol"></a>
<a id="2715" href="Relation.Binary.PropositionalEquality.Core.html#1780" class="Function">subst</a> <a id="2721" href="Relation.Binary.PropositionalEquality.Properties.html#2180" class="Bound">P</a> <a id="2723" class="Symbol">(</a><a id="2724" href="Relation.Binary.PropositionalEquality.Core.html#1684" class="Function">sym</a> <a id="2728" href="Relation.Binary.PropositionalEquality.Properties.html#2670" class="Bound">x≡y</a><a id="2731" class="Symbol">)</a> <a id="2733" class="Symbol">(</a><a id="2734" href="Relation.Binary.PropositionalEquality.Core.html#1780" class="Function">subst</a> <a id="2740" href="Relation.Binary.PropositionalEquality.Properties.html#2180" class="Bound">P</a> <a id="2742" href="Relation.Binary.PropositionalEquality.Properties.html#2670" class="Bound">x≡y</a> <a id="2746" href="Relation.Binary.PropositionalEquality.Properties.html#2684" class="Bound">p</a><a id="2747" class="Symbol">)</a> <a id="2749" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2751" href="Relation.Binary.PropositionalEquality.Properties.html#2684" class="Bound">p</a>
<a id="2755" href="Relation.Binary.PropositionalEquality.Properties.html#2651" class="Function">subst-sym-subst</a> <a id="2771" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="2776" class="Symbol">=</a> <a id="2778" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="subst-∘"></a><a id="2784" href="Relation.Binary.PropositionalEquality.Properties.html#2784" class="Function">subst-∘</a> <a id="2792" class="Symbol">:</a> <a id="2794" class="Symbol"></a> <a id="2796" class="Symbol">{</a><a id="2797" href="Relation.Binary.PropositionalEquality.Properties.html#2797" class="Bound">x</a> <a id="2799" href="Relation.Binary.PropositionalEquality.Properties.html#2799" class="Bound">y</a> <a id="2801" class="Symbol">:</a> <a id="2803" href="Relation.Binary.PropositionalEquality.Properties.html#713" class="Generalizable">A</a><a id="2804" class="Symbol">}</a> <a id="2806" class="Symbol">{</a><a id="2807" href="Relation.Binary.PropositionalEquality.Properties.html#2807" class="Bound">P</a> <a id="2809" class="Symbol">:</a> <a id="2811" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="2816" href="Relation.Binary.PropositionalEquality.Properties.html#715" class="Generalizable">B</a> <a id="2818" href="Relation.Binary.PropositionalEquality.Properties.html#699" class="Generalizable">p</a><a id="2819" class="Symbol">}</a> <a id="2821" class="Symbol">{</a><a id="2822" href="Relation.Binary.PropositionalEquality.Properties.html#2822" class="Bound">f</a> <a id="2824" class="Symbol">:</a> <a id="2826" href="Relation.Binary.PropositionalEquality.Properties.html#713" class="Generalizable">A</a> <a id="2828" class="Symbol"></a> <a id="2830" href="Relation.Binary.PropositionalEquality.Properties.html#715" class="Generalizable">B</a><a id="2831" class="Symbol">}</a>
<a id="2843" class="Symbol">(</a><a id="2844" href="Relation.Binary.PropositionalEquality.Properties.html#2844" class="Bound">x≡y</a> <a id="2848" class="Symbol">:</a> <a id="2850" href="Relation.Binary.PropositionalEquality.Properties.html#2797" class="Bound">x</a> <a id="2852" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2854" href="Relation.Binary.PropositionalEquality.Properties.html#2799" class="Bound">y</a><a id="2855" class="Symbol">)</a> <a id="2857" class="Symbol">{</a><a id="2858" href="Relation.Binary.PropositionalEquality.Properties.html#2858" class="Bound">p</a> <a id="2860" class="Symbol">:</a> <a id="2862" href="Relation.Binary.PropositionalEquality.Properties.html#2807" class="Bound">P</a> <a id="2864" class="Symbol">(</a><a id="2865" href="Relation.Binary.PropositionalEquality.Properties.html#2822" class="Bound">f</a> <a id="2867" href="Relation.Binary.PropositionalEquality.Properties.html#2797" class="Bound">x</a><a id="2868" class="Symbol">)}</a> <a id="2871" class="Symbol"></a>
<a id="2883" href="Relation.Binary.PropositionalEquality.Core.html#1780" class="Function">subst</a> <a id="2889" class="Symbol">(</a><a id="2890" href="Relation.Binary.PropositionalEquality.Properties.html#2807" class="Bound">P</a> <a id="2892" href="Function.Base.html#1031" class="Function Operator"></a> <a id="2894" href="Relation.Binary.PropositionalEquality.Properties.html#2822" class="Bound">f</a><a id="2895" class="Symbol">)</a> <a id="2897" href="Relation.Binary.PropositionalEquality.Properties.html#2844" class="Bound">x≡y</a> <a id="2901" href="Relation.Binary.PropositionalEquality.Properties.html#2858" class="Bound">p</a> <a id="2903" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2905" href="Relation.Binary.PropositionalEquality.Core.html#1780" class="Function">subst</a> <a id="2911" href="Relation.Binary.PropositionalEquality.Properties.html#2807" class="Bound">P</a> <a id="2913" class="Symbol">(</a><a id="2914" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="2919" href="Relation.Binary.PropositionalEquality.Properties.html#2822" class="Bound">f</a> <a id="2921" href="Relation.Binary.PropositionalEquality.Properties.html#2844" class="Bound">x≡y</a><a id="2924" class="Symbol">)</a> <a id="2926" href="Relation.Binary.PropositionalEquality.Properties.html#2858" class="Bound">p</a>
<a id="2928" href="Relation.Binary.PropositionalEquality.Properties.html#2784" class="Function">subst-∘</a> <a id="2936" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="2941" class="Symbol">=</a> <a id="2943" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="subst-application"></a><a id="2949" href="Relation.Binary.PropositionalEquality.Properties.html#2949" class="Function">subst-application</a> <a id="2967" class="Symbol">:</a> <a id="2969" class="Symbol"></a> <a id="2971" class="Symbol">{</a><a id="2972" href="Relation.Binary.PropositionalEquality.Properties.html#2972" class="Bound">a₁</a> <a id="2975" href="Relation.Binary.PropositionalEquality.Properties.html#2975" class="Bound">a₂</a> <a id="2978" href="Relation.Binary.PropositionalEquality.Properties.html#2978" class="Bound">b₁</a> <a id="2981" href="Relation.Binary.PropositionalEquality.Properties.html#2981" class="Bound">b₂</a><a id="2983" class="Symbol">}</a> <a id="2985" class="Symbol">{</a><a id="2986" href="Relation.Binary.PropositionalEquality.Properties.html#2986" class="Bound">A₁</a> <a id="2989" class="Symbol">:</a> <a id="2991" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2995" href="Relation.Binary.PropositionalEquality.Properties.html#2972" class="Bound">a₁</a><a id="2997" class="Symbol">}</a> <a id="2999" class="Symbol">{</a><a id="3000" href="Relation.Binary.PropositionalEquality.Properties.html#3000" class="Bound">A₂</a> <a id="3003" class="Symbol">:</a> <a id="3005" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3009" href="Relation.Binary.PropositionalEquality.Properties.html#2975" class="Bound">a₂</a><a id="3011" class="Symbol">}</a>
<a id="3033" class="Symbol">(</a><a id="3034" href="Relation.Binary.PropositionalEquality.Properties.html#3034" class="Bound">B₁</a> <a id="3037" class="Symbol">:</a> <a id="3039" href="Relation.Binary.PropositionalEquality.Properties.html#2986" class="Bound">A₁</a> <a id="3042" class="Symbol"></a> <a id="3044" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3048" href="Relation.Binary.PropositionalEquality.Properties.html#2978" class="Bound">b₁</a><a id="3050" class="Symbol">)</a> <a id="3052" class="Symbol">{</a><a id="3053" href="Relation.Binary.PropositionalEquality.Properties.html#3053" class="Bound">B₂</a> <a id="3056" class="Symbol">:</a> <a id="3058" href="Relation.Binary.PropositionalEquality.Properties.html#3000" class="Bound">A₂</a> <a id="3061" class="Symbol"></a> <a id="3063" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3067" href="Relation.Binary.PropositionalEquality.Properties.html#2981" class="Bound">b₂</a><a id="3069" class="Symbol">}</a>
<a id="3091" class="Symbol">{</a><a id="3092" href="Relation.Binary.PropositionalEquality.Properties.html#3092" class="Bound">f</a> <a id="3094" class="Symbol">:</a> <a id="3096" href="Relation.Binary.PropositionalEquality.Properties.html#3000" class="Bound">A₂</a> <a id="3099" class="Symbol"></a> <a id="3101" href="Relation.Binary.PropositionalEquality.Properties.html#2986" class="Bound">A₁</a><a id="3103" class="Symbol">}</a> <a id="3105" class="Symbol">{</a><a id="3106" href="Relation.Binary.PropositionalEquality.Properties.html#3106" class="Bound">x₁</a> <a id="3109" href="Relation.Binary.PropositionalEquality.Properties.html#3109" class="Bound">x₂</a> <a id="3112" class="Symbol">:</a> <a id="3114" href="Relation.Binary.PropositionalEquality.Properties.html#3000" class="Bound">A₂</a><a id="3116" class="Symbol">}</a> <a id="3118" class="Symbol">{</a><a id="3119" href="Relation.Binary.PropositionalEquality.Properties.html#3119" class="Bound">y</a> <a id="3121" class="Symbol">:</a> <a id="3123" href="Relation.Binary.PropositionalEquality.Properties.html#3034" class="Bound">B₁</a> <a id="3126" class="Symbol">(</a><a id="3127" href="Relation.Binary.PropositionalEquality.Properties.html#3092" class="Bound">f</a> <a id="3129" href="Relation.Binary.PropositionalEquality.Properties.html#3106" class="Bound">x₁</a><a id="3131" class="Symbol">)}</a>
<a id="3154" class="Symbol">(</a><a id="3155" href="Relation.Binary.PropositionalEquality.Properties.html#3155" class="Bound">g</a> <a id="3157" class="Symbol">:</a> <a id="3159" class="Symbol"></a> <a id="3161" href="Relation.Binary.PropositionalEquality.Properties.html#3161" class="Bound">x</a> <a id="3163" class="Symbol"></a> <a id="3165" href="Relation.Binary.PropositionalEquality.Properties.html#3034" class="Bound">B₁</a> <a id="3168" class="Symbol">(</a><a id="3169" href="Relation.Binary.PropositionalEquality.Properties.html#3092" class="Bound">f</a> <a id="3171" href="Relation.Binary.PropositionalEquality.Properties.html#3161" class="Bound">x</a><a id="3172" class="Symbol">)</a> <a id="3174" class="Symbol"></a> <a id="3176" href="Relation.Binary.PropositionalEquality.Properties.html#3053" class="Bound">B₂</a> <a id="3179" href="Relation.Binary.PropositionalEquality.Properties.html#3161" class="Bound">x</a><a id="3180" class="Symbol">)</a> <a id="3182" class="Symbol">(</a><a id="3183" href="Relation.Binary.PropositionalEquality.Properties.html#3183" class="Bound">eq</a> <a id="3186" class="Symbol">:</a> <a id="3188" href="Relation.Binary.PropositionalEquality.Properties.html#3106" class="Bound">x₁</a> <a id="3191" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="3193" href="Relation.Binary.PropositionalEquality.Properties.html#3109" class="Bound">x₂</a><a id="3195" class="Symbol">)</a> <a id="3197" class="Symbol"></a>
<a id="3219" href="Relation.Binary.PropositionalEquality.Core.html#1780" class="Function">subst</a> <a id="3225" href="Relation.Binary.PropositionalEquality.Properties.html#3053" class="Bound">B₂</a> <a id="3228" href="Relation.Binary.PropositionalEquality.Properties.html#3183" class="Bound">eq</a> <a id="3231" class="Symbol">(</a><a id="3232" href="Relation.Binary.PropositionalEquality.Properties.html#3155" class="Bound">g</a> <a id="3234" href="Relation.Binary.PropositionalEquality.Properties.html#3106" class="Bound">x₁</a> <a id="3237" href="Relation.Binary.PropositionalEquality.Properties.html#3119" class="Bound">y</a><a id="3238" class="Symbol">)</a> <a id="3240" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="3242" href="Relation.Binary.PropositionalEquality.Properties.html#3155" class="Bound">g</a> <a id="3244" href="Relation.Binary.PropositionalEquality.Properties.html#3109" class="Bound">x₂</a> <a id="3247" class="Symbol">(</a><a id="3248" href="Relation.Binary.PropositionalEquality.Core.html#1780" class="Function">subst</a> <a id="3254" href="Relation.Binary.PropositionalEquality.Properties.html#3034" class="Bound">B₁</a> <a id="3257" class="Symbol">(</a><a id="3258" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="3263" href="Relation.Binary.PropositionalEquality.Properties.html#3092" class="Bound">f</a> <a id="3265" href="Relation.Binary.PropositionalEquality.Properties.html#3183" class="Bound">eq</a><a id="3267" class="Symbol">)</a> <a id="3269" href="Relation.Binary.PropositionalEquality.Properties.html#3119" class="Bound">y</a><a id="3270" class="Symbol">)</a>
<a id="3272" href="Relation.Binary.PropositionalEquality.Properties.html#2949" class="Function">subst-application</a> <a id="3290" class="Symbol">_</a> <a id="3292" class="Symbol">_</a> <a id="3294" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="3299" class="Symbol">=</a> <a id="3301" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="3307" class="Comment">------------------------------------------------------------------------</a>
<a id="3380" class="Comment">-- Structure of equality as a binary relation</a>
<a id="isEquivalence"></a><a id="3427" href="Relation.Binary.PropositionalEquality.Properties.html#3427" class="Function">isEquivalence</a> <a id="3441" class="Symbol">:</a> <a id="3443" href="Relation.Binary.Structures.html#1522" class="Record">IsEquivalence</a> <a id="3457" class="Symbol">{</a><a id="3458" class="Argument">A</a> <a id="3460" class="Symbol">=</a> <a id="3462" href="Relation.Binary.PropositionalEquality.Properties.html#713" class="Generalizable">A</a><a id="3463" class="Symbol">}</a> <a id="3465" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a>
<a id="3469" href="Relation.Binary.PropositionalEquality.Properties.html#3427" class="Function">isEquivalence</a> <a id="3483" class="Symbol">=</a> <a id="3485" class="Keyword">record</a>
<a id="3494" class="Symbol">{</a> <a id="3496" href="Relation.Binary.Structures.html#1568" class="Field">refl</a> <a id="3502" class="Symbol">=</a> <a id="3504" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="3511" class="Symbol">;</a> <a id="3513" href="Relation.Binary.Structures.html#1594" class="Field">sym</a> <a id="3519" class="Symbol">=</a> <a id="3521" href="Relation.Binary.PropositionalEquality.Core.html#1684" class="Function">sym</a>
<a id="3527" class="Symbol">;</a> <a id="3529" href="Relation.Binary.Structures.html#1620" class="Field">trans</a> <a id="3535" class="Symbol">=</a> <a id="3537" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a>
<a id="3545" class="Symbol">}</a>
<a id="isDecEquivalence"></a><a id="3548" href="Relation.Binary.PropositionalEquality.Properties.html#3548" class="Function">isDecEquivalence</a> <a id="3565" class="Symbol">:</a> <a id="3567" href="Relation.Binary.Definitions.html#4575" class="Function">Decidable</a> <a id="3577" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a> <a id="3581" class="Symbol"></a> <a id="3583" href="Relation.Binary.Structures.html#1824" class="Record">IsDecEquivalence</a> <a id="3600" class="Symbol">{</a><a id="3601" class="Argument">A</a> <a id="3603" class="Symbol">=</a> <a id="3605" href="Relation.Binary.PropositionalEquality.Properties.html#713" class="Generalizable">A</a><a id="3606" class="Symbol">}</a> <a id="3608" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a>
<a id="3612" href="Relation.Binary.PropositionalEquality.Properties.html#3548" class="Function">isDecEquivalence</a> <a id="3629" href="Relation.Binary.PropositionalEquality.Properties.html#3629" class="Bound Operator">_≟_</a> <a id="3633" class="Symbol">=</a> <a id="3635" class="Keyword">record</a>
<a id="3644" class="Symbol">{</a> <a id="3646" href="Relation.Binary.Structures.html#1887" class="Field">isEquivalence</a> <a id="3660" class="Symbol">=</a> <a id="3662" href="Relation.Binary.PropositionalEquality.Properties.html#3427" class="Function">isEquivalence</a>
<a id="3678" class="Symbol">;</a> <a id="3680" href="Relation.Binary.Structures.html#1921" class="Field Operator">_≟_</a> <a id="3694" class="Symbol">=</a> <a id="3696" href="Relation.Binary.PropositionalEquality.Properties.html#3629" class="Bound Operator">_≟_</a>
<a id="3702" class="Symbol">}</a>
<a id="isPreorder"></a><a id="3705" href="Relation.Binary.PropositionalEquality.Properties.html#3705" class="Function">isPreorder</a> <a id="3716" class="Symbol">:</a> <a id="3718" href="Relation.Binary.Structures.html#2163" class="Record">IsPreorder</a> <a id="3729" class="Symbol">{</a><a id="3730" class="Argument">A</a> <a id="3732" class="Symbol">=</a> <a id="3734" href="Relation.Binary.PropositionalEquality.Properties.html#713" class="Generalizable">A</a><a id="3735" class="Symbol">}</a> <a id="3737" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a> <a id="3741" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a>
<a id="3745" href="Relation.Binary.PropositionalEquality.Properties.html#3705" class="Function">isPreorder</a> <a id="3756" class="Symbol">=</a> <a id="3758" class="Keyword">record</a>
<a id="3767" class="Symbol">{</a> <a id="3769" href="Relation.Binary.Structures.html#2228" class="Field">isEquivalence</a> <a id="3783" class="Symbol">=</a> <a id="3785" href="Relation.Binary.PropositionalEquality.Properties.html#3427" class="Function">isEquivalence</a>
<a id="3801" class="Symbol">;</a> <a id="3803" href="Relation.Binary.Structures.html#2331" class="Field">reflexive</a> <a id="3817" class="Symbol">=</a> <a id="3819" href="Function.Base.html#615" class="Function">id</a>
<a id="3824" class="Symbol">;</a> <a id="3826" href="Relation.Binary.Structures.html#2361" class="Field">trans</a> <a id="3840" class="Symbol">=</a> <a id="3842" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a>
<a id="3850" class="Symbol">}</a>
<a id="3853" class="Comment">------------------------------------------------------------------------</a>
<a id="3926" class="Comment">-- Bundles for equality as a binary relation</a>
<a id="setoid"></a><a id="3972" href="Relation.Binary.PropositionalEquality.Properties.html#3972" class="Function">setoid</a> <a id="3979" class="Symbol">:</a> <a id="3981" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3985" href="Relation.Binary.PropositionalEquality.Properties.html#697" class="Generalizable">a</a> <a id="3987" class="Symbol"></a> <a id="3989" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="3996" class="Symbol">_</a> <a id="3998" class="Symbol">_</a>
<a id="4000" href="Relation.Binary.PropositionalEquality.Properties.html#3972" class="Function">setoid</a> <a id="4007" href="Relation.Binary.PropositionalEquality.Properties.html#4007" class="Bound">A</a> <a id="4009" class="Symbol">=</a> <a id="4011" class="Keyword">record</a>
<a id="4020" class="Symbol">{</a> <a id="4022" href="Relation.Binary.Bundles.html#1072" class="Field">Carrier</a> <a id="4036" class="Symbol">=</a> <a id="4038" href="Relation.Binary.PropositionalEquality.Properties.html#4007" class="Bound">A</a>
<a id="4042" class="Symbol">;</a> <a id="4044" href="Relation.Binary.Bundles.html#1098" class="Field Operator">_≈_</a> <a id="4058" class="Symbol">=</a> <a id="4060" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a>
<a id="4066" class="Symbol">;</a> <a id="4068" href="Relation.Binary.Bundles.html#1132" class="Field">isEquivalence</a> <a id="4082" class="Symbol">=</a> <a id="4084" href="Relation.Binary.PropositionalEquality.Properties.html#3427" class="Function">isEquivalence</a>
<a id="4100" class="Symbol">}</a>
<a id="decSetoid"></a><a id="4103" href="Relation.Binary.PropositionalEquality.Properties.html#4103" class="Function">decSetoid</a> <a id="4113" class="Symbol">:</a> <a id="4115" href="Relation.Binary.Definitions.html#4575" class="Function">Decidable</a> <a id="4125" class="Symbol">{</a><a id="4126" class="Argument">A</a> <a id="4128" class="Symbol">=</a> <a id="4130" href="Relation.Binary.PropositionalEquality.Properties.html#713" class="Generalizable">A</a><a id="4131" class="Symbol">}</a> <a id="4133" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a> <a id="4137" class="Symbol"></a> <a id="4139" href="Relation.Binary.Bundles.html#1391" class="Record">DecSetoid</a> <a id="4149" class="Symbol">_</a> <a id="4151" class="Symbol">_</a>
<a id="4153" href="Relation.Binary.PropositionalEquality.Properties.html#4103" class="Function">decSetoid</a> <a id="4163" href="Relation.Binary.PropositionalEquality.Properties.html#4163" class="Bound Operator">_≟_</a> <a id="4167" class="Symbol">=</a> <a id="4169" class="Keyword">record</a>
<a id="4178" class="Symbol">{</a> <a id="4180" href="Relation.Binary.Bundles.html#1486" class="Field Operator">_≈_</a> <a id="4197" class="Symbol">=</a> <a id="4199" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a>
<a id="4205" class="Symbol">;</a> <a id="4207" href="Relation.Binary.Bundles.html#1523" class="Field">isDecEquivalence</a> <a id="4224" class="Symbol">=</a> <a id="4226" href="Relation.Binary.PropositionalEquality.Properties.html#3548" class="Function">isDecEquivalence</a> <a id="4243" href="Relation.Binary.PropositionalEquality.Properties.html#4163" class="Bound Operator">_≟_</a>
<a id="4249" class="Symbol">}</a>
<a id="preorder"></a><a id="4252" href="Relation.Binary.PropositionalEquality.Properties.html#4252" class="Function">preorder</a> <a id="4261" class="Symbol">:</a> <a id="4263" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4267" href="Relation.Binary.PropositionalEquality.Properties.html#697" class="Generalizable">a</a> <a id="4269" class="Symbol"></a> <a id="4271" href="Relation.Binary.Bundles.html#1920" class="Record">Preorder</a> <a id="4280" class="Symbol">_</a> <a id="4282" class="Symbol">_</a> <a id="4284" class="Symbol">_</a>
<a id="4286" href="Relation.Binary.PropositionalEquality.Properties.html#4252" class="Function">preorder</a> <a id="4295" href="Relation.Binary.PropositionalEquality.Properties.html#4295" class="Bound">A</a> <a id="4297" class="Symbol">=</a> <a id="4299" class="Keyword">record</a>
<a id="4308" class="Symbol">{</a> <a id="4310" href="Relation.Binary.Bundles.html#1999" class="Field">Carrier</a> <a id="4321" class="Symbol">=</a> <a id="4323" href="Relation.Binary.PropositionalEquality.Properties.html#4295" class="Bound">A</a>
<a id="4327" class="Symbol">;</a> <a id="4329" href="Relation.Binary.Bundles.html#2022" class="Field Operator">_≈_</a> <a id="4340" class="Symbol">=</a> <a id="4342" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a>
<a id="4348" class="Symbol">;</a> <a id="4350" href="Relation.Binary.Bundles.html#2083" class="Field Operator">__</a> <a id="4361" class="Symbol">=</a> <a id="4363" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a>
<a id="4369" class="Symbol">;</a> <a id="4371" href="Relation.Binary.Bundles.html#2133" class="Field">isPreorder</a> <a id="4382" class="Symbol">=</a> <a id="4384" href="Relation.Binary.PropositionalEquality.Properties.html#3705" class="Function">isPreorder</a>
<a id="4397" class="Symbol">}</a>
</pre></body></html>

View File

@ -0,0 +1,148 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Relation.Binary.PropositionalEquality</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Propositional (intensional) equality</a>
<a id="146" class="Comment">------------------------------------------------------------------------</a>
<a id="220" class="Symbol">{-#</a> <a id="224" class="Keyword">OPTIONS</a> <a id="232" class="Pragma">--without-K</a> <a id="244" class="Pragma">--safe</a> <a id="251" class="Symbol">#-}</a>
<a id="256" class="Keyword">module</a> <a id="263" href="Relation.Binary.PropositionalEquality.html" class="Module">Relation.Binary.PropositionalEquality</a> <a id="301" class="Keyword">where</a>
<a id="308" class="Keyword">import</a> <a id="315" href="Axiom.Extensionality.Propositional.html" class="Module">Axiom.Extensionality.Propositional</a> <a id="350" class="Symbol">as</a> <a id="353" class="Module">Ext</a>
<a id="357" class="Keyword">open</a> <a id="362" class="Keyword">import</a> <a id="369" href="Axiom.UniquenessOfIdentityProofs.html" class="Module">Axiom.UniquenessOfIdentityProofs</a>
<a id="402" class="Keyword">open</a> <a id="407" class="Keyword">import</a> <a id="414" href="Function.Base.html" class="Module">Function.Base</a> <a id="428" class="Keyword">using</a> <a id="434" class="Symbol">(</a><a id="435" href="Function.Base.html#615" class="Function">id</a><a id="437" class="Symbol">;</a> <a id="439" href="Function.Base.html#1031" class="Function Operator">_∘_</a><a id="442" class="Symbol">)</a>
<a id="444" class="Keyword">open</a> <a id="449" class="Keyword">import</a> <a id="456" href="Function.Equality.html" class="Module">Function.Equality</a> <a id="474" class="Keyword">using</a> <a id="480" class="Symbol">(</a><a id="481" href="Function.Equality.html#889" class="Record">Π</a><a id="482" class="Symbol">;</a> <a id="484" href="Function.Equality.html#1218" class="Function Operator">_⟶_</a><a id="487" class="Symbol">;</a> <a id="489" href="Function.Equality.html#2978" class="Function">≡-setoid</a><a id="497" class="Symbol">)</a>
<a id="499" class="Keyword">open</a> <a id="504" class="Keyword">import</a> <a id="511" href="Level.html" class="Module">Level</a> <a id="517" class="Keyword">using</a> <a id="523" class="Symbol">(</a><a id="524" href="Agda.Primitive.html#597" class="Postulate">Level</a><a id="529" class="Symbol">;</a> <a id="531" href="Agda.Primitive.html#810" class="Primitive Operator">_⊔_</a><a id="534" class="Symbol">)</a>
<a id="536" class="Keyword">open</a> <a id="541" class="Keyword">import</a> <a id="548" href="Data.Product.html" class="Module">Data.Product</a> <a id="561" class="Keyword">using</a> <a id="567" class="Symbol">(</a><a id="568" href="Data.Product.html#1369" class="Function"></a><a id="569" class="Symbol">)</a>
<a id="572" class="Keyword">open</a> <a id="577" class="Keyword">import</a> <a id="584" href="Relation.Nullary.html" class="Module">Relation.Nullary</a> <a id="601" class="Keyword">using</a> <a id="607" class="Symbol">(</a><a id="608" href="Relation.Nullary.html#1648" class="InductiveConstructor">yes</a> <a id="612" class="Symbol">;</a> <a id="614" href="Relation.Nullary.html#1685" class="InductiveConstructor">no</a><a id="616" class="Symbol">)</a>
<a id="618" class="Keyword">open</a> <a id="623" class="Keyword">import</a> <a id="630" href="Relation.Nullary.Decidable.Core.html" class="Module">Relation.Nullary.Decidable.Core</a>
<a id="662" class="Keyword">open</a> <a id="667" class="Keyword">import</a> <a id="674" href="Relation.Binary.html" class="Module">Relation.Binary</a>
<a id="690" class="Keyword">open</a> <a id="695" class="Keyword">import</a> <a id="702" href="Relation.Binary.Indexed.Heterogeneous.html" class="Module">Relation.Binary.Indexed.Heterogeneous</a>
<a id="742" class="Keyword">using</a> <a id="748" class="Symbol">(</a><a id="749" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#789" class="Record">IndexedSetoid</a><a id="762" class="Symbol">)</a>
<a id="764" class="Keyword">import</a> <a id="771" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html" class="Module">Relation.Binary.Indexed.Heterogeneous.Construct.Trivial</a>
<a id="829" class="Symbol">as</a> <a id="832" class="Module">Trivial</a>
<a id="841" class="Keyword">private</a>
<a id="851" class="Keyword">variable</a>
<a id="864" href="Relation.Binary.PropositionalEquality.html#864" class="Generalizable">a</a> <a id="866" href="Relation.Binary.PropositionalEquality.html#866" class="Generalizable">b</a> <a id="868" href="Relation.Binary.PropositionalEquality.html#868" class="Generalizable">c</a> <a id="870" href="Relation.Binary.PropositionalEquality.html#870" class="Generalizable"></a> <a id="872" href="Relation.Binary.PropositionalEquality.html#872" class="Generalizable">p</a> <a id="874" class="Symbol">:</a> <a id="876" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="886" href="Relation.Binary.PropositionalEquality.html#886" class="Generalizable">A</a> <a id="888" class="Symbol">:</a> <a id="890" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="894" href="Relation.Binary.PropositionalEquality.html#864" class="Generalizable">a</a>
<a id="900" href="Relation.Binary.PropositionalEquality.html#900" class="Generalizable">B</a> <a id="902" class="Symbol">:</a> <a id="904" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="908" href="Relation.Binary.PropositionalEquality.html#866" class="Generalizable">b</a>
<a id="914" href="Relation.Binary.PropositionalEquality.html#914" class="Generalizable">C</a> <a id="916" class="Symbol">:</a> <a id="918" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="922" href="Relation.Binary.PropositionalEquality.html#868" class="Generalizable">c</a>
<a id="925" class="Comment">------------------------------------------------------------------------</a>
<a id="998" class="Comment">-- Re-export contents modules that make up the parts</a>
<a id="1052" class="Keyword">open</a> <a id="1057" class="Keyword">import</a> <a id="1064" href="Relation.Binary.PropositionalEquality.Core.html" class="Module">Relation.Binary.PropositionalEquality.Core</a> <a id="1107" class="Keyword">public</a>
<a id="1114" class="Keyword">open</a> <a id="1119" class="Keyword">import</a> <a id="1126" href="Relation.Binary.PropositionalEquality.Properties.html" class="Module">Relation.Binary.PropositionalEquality.Properties</a> <a id="1175" class="Keyword">public</a>
<a id="1182" class="Keyword">open</a> <a id="1187" class="Keyword">import</a> <a id="1194" href="Relation.Binary.PropositionalEquality.Algebra.html" class="Module">Relation.Binary.PropositionalEquality.Algebra</a> <a id="1240" class="Keyword">public</a>
<a id="1248" class="Comment">------------------------------------------------------------------------</a>
<a id="1321" class="Comment">-- Pointwise equality</a>
<a id="1344" class="Keyword">infix</a> <a id="1350" class="Number">4</a> <a id="1352" href="Relation.Binary.PropositionalEquality.html#1471" class="Function Operator">_≗_</a>
<a id="_→-setoid_"></a><a id="1357" href="Relation.Binary.PropositionalEquality.html#1357" class="Function Operator">_→-setoid_</a> <a id="1368" class="Symbol">:</a> <a id="1370" class="Symbol"></a> <a id="1372" class="Symbol">(</a><a id="1373" href="Relation.Binary.PropositionalEquality.html#1373" class="Bound">A</a> <a id="1375" class="Symbol">:</a> <a id="1377" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1381" href="Relation.Binary.PropositionalEquality.html#864" class="Generalizable">a</a><a id="1382" class="Symbol">)</a> <a id="1384" class="Symbol">(</a><a id="1385" href="Relation.Binary.PropositionalEquality.html#1385" class="Bound">B</a> <a id="1387" class="Symbol">:</a> <a id="1389" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1393" href="Relation.Binary.PropositionalEquality.html#866" class="Generalizable">b</a><a id="1394" class="Symbol">)</a> <a id="1396" class="Symbol"></a> <a id="1398" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="1405" class="Symbol">_</a> <a id="1407" class="Symbol">_</a>
<a id="1409" href="Relation.Binary.PropositionalEquality.html#1409" class="Bound">A</a> <a id="1411" href="Relation.Binary.PropositionalEquality.html#1357" class="Function Operator">→-setoid</a> <a id="1420" href="Relation.Binary.PropositionalEquality.html#1420" class="Bound">B</a> <a id="1422" class="Symbol">=</a> <a id="1424" href="Function.Equality.html#2978" class="Function">≡-setoid</a> <a id="1433" href="Relation.Binary.PropositionalEquality.html#1409" class="Bound">A</a> <a id="1435" class="Symbol">(</a><a id="1436" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1370" class="Function">Trivial.indexedSetoid</a> <a id="1458" class="Symbol">(</a><a id="1459" href="Relation.Binary.PropositionalEquality.Properties.html#3972" class="Function">setoid</a> <a id="1466" href="Relation.Binary.PropositionalEquality.html#1420" class="Bound">B</a><a id="1467" class="Symbol">))</a>
<a id="_≗_"></a><a id="1471" href="Relation.Binary.PropositionalEquality.html#1471" class="Function Operator">_≗_</a> <a id="1475" class="Symbol">:</a> <a id="1477" class="Symbol">(</a><a id="1478" href="Relation.Binary.PropositionalEquality.html#1478" class="Bound">f</a> <a id="1480" href="Relation.Binary.PropositionalEquality.html#1480" class="Bound">g</a> <a id="1482" class="Symbol">:</a> <a id="1484" href="Relation.Binary.PropositionalEquality.html#886" class="Generalizable">A</a> <a id="1486" class="Symbol"></a> <a id="1488" href="Relation.Binary.PropositionalEquality.html#900" class="Generalizable">B</a><a id="1489" class="Symbol">)</a> <a id="1491" class="Symbol"></a> <a id="1493" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1497" class="Symbol">_</a>
<a id="1499" href="Relation.Binary.PropositionalEquality.html#1471" class="Function Operator">_≗_</a> <a id="1503" class="Symbol">{</a><a id="1504" class="Argument">A</a> <a id="1506" class="Symbol">=</a> <a id="1508" href="Relation.Binary.PropositionalEquality.html#1508" class="Bound">A</a><a id="1509" class="Symbol">}</a> <a id="1511" class="Symbol">{</a><a id="1512" class="Argument">B</a> <a id="1514" class="Symbol">=</a> <a id="1516" href="Relation.Binary.PropositionalEquality.html#1516" class="Bound">B</a><a id="1517" class="Symbol">}</a> <a id="1519" class="Symbol">=</a> <a id="1521" href="Relation.Binary.Bundles.html#1098" class="Field Operator">Setoid._≈_</a> <a id="1532" class="Symbol">(</a><a id="1533" href="Relation.Binary.PropositionalEquality.html#1508" class="Bound">A</a> <a id="1535" href="Relation.Binary.PropositionalEquality.html#1357" class="Function Operator">→-setoid</a> <a id="1544" href="Relation.Binary.PropositionalEquality.html#1516" class="Bound">B</a><a id="1545" class="Symbol">)</a>
<a id=":→-to-Π"></a><a id="1548" href="Relation.Binary.PropositionalEquality.html#1548" class="Function">:→-to-Π</a> <a id="1556" class="Symbol">:</a> <a id="1558" class="Symbol"></a> <a id="1560" class="Symbol">{</a><a id="1561" href="Relation.Binary.PropositionalEquality.html#1561" class="Bound">A</a> <a id="1563" class="Symbol">:</a> <a id="1565" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1569" href="Relation.Binary.PropositionalEquality.html#864" class="Generalizable">a</a><a id="1570" class="Symbol">}</a> <a id="1572" class="Symbol">{</a><a id="1573" href="Relation.Binary.PropositionalEquality.html#1573" class="Bound">B</a> <a id="1575" class="Symbol">:</a> <a id="1577" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#789" class="Record">IndexedSetoid</a> <a id="1591" href="Relation.Binary.PropositionalEquality.html#1561" class="Bound">A</a> <a id="1593" href="Relation.Binary.PropositionalEquality.html#866" class="Generalizable">b</a> <a id="1595" href="Relation.Binary.PropositionalEquality.html#870" class="Generalizable"></a><a id="1596" class="Symbol">}</a> <a id="1598" class="Symbol"></a>
<a id="1610" class="Symbol">((</a><a id="1612" href="Relation.Binary.PropositionalEquality.html#1612" class="Bound">x</a> <a id="1614" class="Symbol">:</a> <a id="1616" href="Relation.Binary.PropositionalEquality.html#1561" class="Bound">A</a><a id="1617" class="Symbol">)</a> <a id="1619" class="Symbol"></a> <a id="1621" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#879" class="Field">IndexedSetoid.Carrier</a> <a id="1643" href="Relation.Binary.PropositionalEquality.html#1573" class="Bound">B</a> <a id="1645" href="Relation.Binary.PropositionalEquality.html#1612" class="Bound">x</a><a id="1646" class="Symbol">)</a> <a id="1648" class="Symbol"></a> <a id="1650" href="Function.Equality.html#889" class="Record">Π</a> <a id="1652" class="Symbol">(</a><a id="1653" href="Relation.Binary.PropositionalEquality.Properties.html#3972" class="Function">setoid</a> <a id="1660" href="Relation.Binary.PropositionalEquality.html#1561" class="Bound">A</a><a id="1661" class="Symbol">)</a> <a id="1663" href="Relation.Binary.PropositionalEquality.html#1573" class="Bound">B</a>
<a id="1665" href="Relation.Binary.PropositionalEquality.html#1548" class="Function">:→-to-Π</a> <a id="1673" class="Symbol">{</a><a id="1674" class="Argument">B</a> <a id="1676" class="Symbol">=</a> <a id="1678" href="Relation.Binary.PropositionalEquality.html#1678" class="Bound">B</a><a id="1679" class="Symbol">}</a> <a id="1681" href="Relation.Binary.PropositionalEquality.html#1681" class="Bound">f</a> <a id="1683" class="Symbol">=</a> <a id="1685" class="Keyword">record</a>
<a id="1694" class="Symbol">{</a> <a id="1696" href="Function.Equality.html#1064" class="Field Operator">_⟨$⟩_</a> <a id="1702" class="Symbol">=</a> <a id="1704" href="Relation.Binary.PropositionalEquality.html#1681" class="Bound">f</a>
<a id="1708" class="Symbol">;</a> <a id="1710" href="Function.Equality.html#1131" class="Field">cong</a> <a id="1716" class="Symbol">=</a> <a id="1718" class="Symbol">λ</a> <a id="1720" class="Symbol">{</a> <a id="1722" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1727" class="Symbol"></a> <a id="1729" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#909" class="Function">IndexedSetoid.refl</a> <a id="1748" href="Relation.Binary.PropositionalEquality.html#1678" class="Bound">B</a> <a id="1750" class="Symbol">}</a>
<a id="1754" class="Symbol">}</a>
<a id="1758" class="Keyword">where</a> <a id="1764" class="Keyword">open</a> <a id="1769" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#789" class="Module">IndexedSetoid</a> <a id="1783" href="Relation.Binary.PropositionalEquality.html#1678" class="Bound">B</a> <a id="1785" class="Keyword">using</a> <a id="1791" class="Symbol">(</a><a id="1792" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#909" class="Field Operator">_≈_</a><a id="1795" class="Symbol">)</a>
<a id="→-to-⟶"></a><a id="1798" href="Relation.Binary.PropositionalEquality.html#1798" class="Function">→-to-⟶</a> <a id="1805" class="Symbol">:</a> <a id="1807" class="Symbol"></a> <a id="1809" class="Symbol">{</a><a id="1810" href="Relation.Binary.PropositionalEquality.html#1810" class="Bound">A</a> <a id="1812" class="Symbol">:</a> <a id="1814" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1818" href="Relation.Binary.PropositionalEquality.html#864" class="Generalizable">a</a><a id="1819" class="Symbol">}</a> <a id="1821" class="Symbol">{</a><a id="1822" href="Relation.Binary.PropositionalEquality.html#1822" class="Bound">B</a> <a id="1824" class="Symbol">:</a> <a id="1826" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="1833" href="Relation.Binary.PropositionalEquality.html#866" class="Generalizable">b</a> <a id="1835" href="Relation.Binary.PropositionalEquality.html#870" class="Generalizable"></a><a id="1836" class="Symbol">}</a> <a id="1838" class="Symbol"></a>
<a id="1849" class="Symbol">(</a><a id="1850" href="Relation.Binary.PropositionalEquality.html#1810" class="Bound">A</a> <a id="1852" class="Symbol"></a> <a id="1854" href="Relation.Binary.Bundles.html#1072" class="Field">Setoid.Carrier</a> <a id="1869" href="Relation.Binary.PropositionalEquality.html#1822" class="Bound">B</a><a id="1870" class="Symbol">)</a> <a id="1872" class="Symbol"></a> <a id="1874" href="Relation.Binary.PropositionalEquality.Properties.html#3972" class="Function">setoid</a> <a id="1881" href="Relation.Binary.PropositionalEquality.html#1810" class="Bound">A</a> <a id="1883" href="Function.Equality.html#1218" class="Function Operator"></a> <a id="1885" href="Relation.Binary.PropositionalEquality.html#1822" class="Bound">B</a>
<a id="1887" href="Relation.Binary.PropositionalEquality.html#1798" class="Function">→-to-⟶</a> <a id="1894" class="Symbol">=</a> <a id="1896" href="Relation.Binary.PropositionalEquality.html#1548" class="Function">:→-to-Π</a>
<a id="1905" class="Comment">------------------------------------------------------------------------</a>
<a id="1978" class="Comment">-- Inspect</a>
<a id="1990" class="Comment">-- Inspect can be used when you want to pattern match on the result r</a>
<a id="2060" class="Comment">-- of some expression e, and you also need to &quot;remember&quot; that r ≡ e.</a>
<a id="2130" class="Comment">-- See README.Inspect for an explanation of how/why to use this.</a>
<a id="2196" class="Keyword">record</a> <a id="Reveal_·_is_"></a><a id="2203" href="Relation.Binary.PropositionalEquality.html#2203" class="Record Operator">Reveal_·_is_</a> <a id="2216" class="Symbol">{</a><a id="2217" href="Relation.Binary.PropositionalEquality.html#2217" class="Bound">A</a> <a id="2219" class="Symbol">:</a> <a id="2221" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2225" href="Relation.Binary.PropositionalEquality.html#864" class="Generalizable">a</a><a id="2226" class="Symbol">}</a> <a id="2228" class="Symbol">{</a><a id="2229" href="Relation.Binary.PropositionalEquality.html#2229" class="Bound">B</a> <a id="2231" class="Symbol">:</a> <a id="2233" href="Relation.Binary.PropositionalEquality.html#2217" class="Bound">A</a> <a id="2235" class="Symbol"></a> <a id="2237" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2241" href="Relation.Binary.PropositionalEquality.html#866" class="Generalizable">b</a><a id="2242" class="Symbol">}</a>
<a id="2264" class="Symbol">(</a><a id="2265" href="Relation.Binary.PropositionalEquality.html#2265" class="Bound">f</a> <a id="2267" class="Symbol">:</a> <a id="2269" class="Symbol">(</a><a id="2270" href="Relation.Binary.PropositionalEquality.html#2270" class="Bound">x</a> <a id="2272" class="Symbol">:</a> <a id="2274" href="Relation.Binary.PropositionalEquality.html#2217" class="Bound">A</a><a id="2275" class="Symbol">)</a> <a id="2277" class="Symbol"></a> <a id="2279" href="Relation.Binary.PropositionalEquality.html#2229" class="Bound">B</a> <a id="2281" href="Relation.Binary.PropositionalEquality.html#2270" class="Bound">x</a><a id="2282" class="Symbol">)</a> <a id="2284" class="Symbol">(</a><a id="2285" href="Relation.Binary.PropositionalEquality.html#2285" class="Bound">x</a> <a id="2287" class="Symbol">:</a> <a id="2289" href="Relation.Binary.PropositionalEquality.html#2217" class="Bound">A</a><a id="2290" class="Symbol">)</a> <a id="2292" class="Symbol">(</a><a id="2293" href="Relation.Binary.PropositionalEquality.html#2293" class="Bound">y</a> <a id="2295" class="Symbol">:</a> <a id="2297" href="Relation.Binary.PropositionalEquality.html#2229" class="Bound">B</a> <a id="2299" href="Relation.Binary.PropositionalEquality.html#2285" class="Bound">x</a><a id="2300" class="Symbol">)</a> <a id="2302" class="Symbol">:</a>
<a id="2324" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2328" class="Symbol">(</a><a id="2329" href="Relation.Binary.PropositionalEquality.html#2225" class="Bound">a</a> <a id="2331" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2333" href="Relation.Binary.PropositionalEquality.html#2241" class="Bound">b</a><a id="2334" class="Symbol">)</a> <a id="2336" class="Keyword">where</a>
<a id="2344" class="Keyword">constructor</a> <a id="[_]"></a><a id="2356" href="Relation.Binary.PropositionalEquality.html#2356" class="InductiveConstructor Operator">[_]</a>
<a id="2362" class="Keyword">field</a> <a id="Reveal_·_is_.eq"></a><a id="2368" href="Relation.Binary.PropositionalEquality.html#2368" class="Field">eq</a> <a id="2371" class="Symbol">:</a> <a id="2373" href="Relation.Binary.PropositionalEquality.html#2265" class="Bound">f</a> <a id="2375" href="Relation.Binary.PropositionalEquality.html#2285" class="Bound">x</a> <a id="2377" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2379" href="Relation.Binary.PropositionalEquality.html#2293" class="Bound">y</a>
<a id="inspect"></a><a id="2382" href="Relation.Binary.PropositionalEquality.html#2382" class="Function">inspect</a> <a id="2390" class="Symbol">:</a> <a id="2392" class="Symbol"></a> <a id="2394" class="Symbol">{</a><a id="2395" href="Relation.Binary.PropositionalEquality.html#2395" class="Bound">A</a> <a id="2397" class="Symbol">:</a> <a id="2399" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2403" href="Relation.Binary.PropositionalEquality.html#864" class="Generalizable">a</a><a id="2404" class="Symbol">}</a> <a id="2406" class="Symbol">{</a><a id="2407" href="Relation.Binary.PropositionalEquality.html#2407" class="Bound">B</a> <a id="2409" class="Symbol">:</a> <a id="2411" href="Relation.Binary.PropositionalEquality.html#2395" class="Bound">A</a> <a id="2413" class="Symbol"></a> <a id="2415" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2419" href="Relation.Binary.PropositionalEquality.html#866" class="Generalizable">b</a><a id="2420" class="Symbol">}</a>
<a id="2432" class="Symbol">(</a><a id="2433" href="Relation.Binary.PropositionalEquality.html#2433" class="Bound">f</a> <a id="2435" class="Symbol">:</a> <a id="2437" class="Symbol">(</a><a id="2438" href="Relation.Binary.PropositionalEquality.html#2438" class="Bound">x</a> <a id="2440" class="Symbol">:</a> <a id="2442" href="Relation.Binary.PropositionalEquality.html#2395" class="Bound">A</a><a id="2443" class="Symbol">)</a> <a id="2445" class="Symbol"></a> <a id="2447" href="Relation.Binary.PropositionalEquality.html#2407" class="Bound">B</a> <a id="2449" href="Relation.Binary.PropositionalEquality.html#2438" class="Bound">x</a><a id="2450" class="Symbol">)</a> <a id="2452" class="Symbol">(</a><a id="2453" href="Relation.Binary.PropositionalEquality.html#2453" class="Bound">x</a> <a id="2455" class="Symbol">:</a> <a id="2457" href="Relation.Binary.PropositionalEquality.html#2395" class="Bound">A</a><a id="2458" class="Symbol">)</a> <a id="2460" class="Symbol"></a> <a id="2462" href="Relation.Binary.PropositionalEquality.html#2203" class="Record Operator">Reveal</a> <a id="2469" href="Relation.Binary.PropositionalEquality.html#2433" class="Bound">f</a> <a id="2471" href="Relation.Binary.PropositionalEquality.html#2203" class="Record Operator">·</a> <a id="2473" href="Relation.Binary.PropositionalEquality.html#2453" class="Bound">x</a> <a id="2475" href="Relation.Binary.PropositionalEquality.html#2203" class="Record Operator">is</a> <a id="2478" href="Relation.Binary.PropositionalEquality.html#2433" class="Bound">f</a> <a id="2480" href="Relation.Binary.PropositionalEquality.html#2453" class="Bound">x</a>
<a id="2482" href="Relation.Binary.PropositionalEquality.html#2382" class="Function">inspect</a> <a id="2490" href="Relation.Binary.PropositionalEquality.html#2490" class="Bound">f</a> <a id="2492" href="Relation.Binary.PropositionalEquality.html#2492" class="Bound">x</a> <a id="2494" class="Symbol">=</a> <a id="2496" href="Relation.Binary.PropositionalEquality.html#2356" class="InductiveConstructor Operator">[</a> <a id="2498" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="2503" href="Relation.Binary.PropositionalEquality.html#2356" class="InductiveConstructor Operator">]</a>
<a id="2506" class="Comment">------------------------------------------------------------------------</a>
<a id="2579" class="Comment">-- Propositionality</a>
<a id="isPropositional"></a><a id="2600" href="Relation.Binary.PropositionalEquality.html#2600" class="Function">isPropositional</a> <a id="2616" class="Symbol">:</a> <a id="2618" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2622" href="Relation.Binary.PropositionalEquality.html#864" class="Generalizable">a</a> <a id="2624" class="Symbol"></a> <a id="2626" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2630" href="Relation.Binary.PropositionalEquality.html#864" class="Generalizable">a</a>
<a id="2632" href="Relation.Binary.PropositionalEquality.html#2600" class="Function">isPropositional</a> <a id="2648" href="Relation.Binary.PropositionalEquality.html#2648" class="Bound">A</a> <a id="2650" class="Symbol">=</a> <a id="2652" class="Symbol">(</a><a id="2653" href="Relation.Binary.PropositionalEquality.html#2653" class="Bound">a</a> <a id="2655" href="Relation.Binary.PropositionalEquality.html#2655" class="Bound">b</a> <a id="2657" class="Symbol">:</a> <a id="2659" href="Relation.Binary.PropositionalEquality.html#2648" class="Bound">A</a><a id="2660" class="Symbol">)</a> <a id="2662" class="Symbol"></a> <a id="2664" href="Relation.Binary.PropositionalEquality.html#2653" class="Bound">a</a> <a id="2666" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2668" href="Relation.Binary.PropositionalEquality.html#2655" class="Bound">b</a>
<a id="2671" class="Comment">------------------------------------------------------------------------</a>
<a id="2744" class="Comment">-- More complex rearrangement lemmas</a>
<a id="2782" class="Comment">-- A lemma that is very similar to Lemma 2.4.3 from the HoTT book.</a>
<a id="naturality"></a><a id="2850" href="Relation.Binary.PropositionalEquality.html#2850" class="Function">naturality</a> <a id="2861" class="Symbol">:</a> <a id="2863" class="Symbol"></a> <a id="2865" class="Symbol">{</a><a id="2866" href="Relation.Binary.PropositionalEquality.html#2866" class="Bound">x</a> <a id="2868" href="Relation.Binary.PropositionalEquality.html#2868" class="Bound">y</a><a id="2869" class="Symbol">}</a> <a id="2871" class="Symbol">{</a><a id="2872" href="Relation.Binary.PropositionalEquality.html#2872" class="Bound">x≡y</a> <a id="2876" class="Symbol">:</a> <a id="2878" href="Relation.Binary.PropositionalEquality.html#2866" class="Bound">x</a> <a id="2880" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2882" href="Relation.Binary.PropositionalEquality.html#2868" class="Bound">y</a><a id="2883" class="Symbol">}</a> <a id="2885" class="Symbol">{</a><a id="2886" href="Relation.Binary.PropositionalEquality.html#2886" class="Bound">f</a> <a id="2888" href="Relation.Binary.PropositionalEquality.html#2888" class="Bound">g</a> <a id="2890" class="Symbol">:</a> <a id="2892" href="Relation.Binary.PropositionalEquality.html#886" class="Generalizable">A</a> <a id="2894" class="Symbol"></a> <a id="2896" href="Relation.Binary.PropositionalEquality.html#900" class="Generalizable">B</a><a id="2897" class="Symbol">}</a>
<a id="2912" class="Symbol">(</a><a id="2913" href="Relation.Binary.PropositionalEquality.html#2913" class="Bound">f≡g</a> <a id="2917" class="Symbol">:</a> <a id="2919" class="Symbol"></a> <a id="2921" href="Relation.Binary.PropositionalEquality.html#2921" class="Bound">x</a> <a id="2923" class="Symbol"></a> <a id="2925" href="Relation.Binary.PropositionalEquality.html#2886" class="Bound">f</a> <a id="2927" href="Relation.Binary.PropositionalEquality.html#2921" class="Bound">x</a> <a id="2929" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2931" href="Relation.Binary.PropositionalEquality.html#2888" class="Bound">g</a> <a id="2933" href="Relation.Binary.PropositionalEquality.html#2921" class="Bound">x</a><a id="2934" class="Symbol">)</a> <a id="2936" class="Symbol"></a>
<a id="2951" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="2957" class="Symbol">(</a><a id="2958" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="2963" href="Relation.Binary.PropositionalEquality.html#2886" class="Bound">f</a> <a id="2965" href="Relation.Binary.PropositionalEquality.html#2872" class="Bound">x≡y</a><a id="2968" class="Symbol">)</a> <a id="2970" class="Symbol">(</a><a id="2971" href="Relation.Binary.PropositionalEquality.html#2913" class="Bound">f≡g</a> <a id="2975" href="Relation.Binary.PropositionalEquality.html#2868" class="Bound">y</a><a id="2976" class="Symbol">)</a> <a id="2978" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2980" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="2986" class="Symbol">(</a><a id="2987" href="Relation.Binary.PropositionalEquality.html#2913" class="Bound">f≡g</a> <a id="2991" href="Relation.Binary.PropositionalEquality.html#2866" class="Bound">x</a><a id="2992" class="Symbol">)</a> <a id="2994" class="Symbol">(</a><a id="2995" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="3000" href="Relation.Binary.PropositionalEquality.html#2888" class="Bound">g</a> <a id="3002" href="Relation.Binary.PropositionalEquality.html#2872" class="Bound">x≡y</a><a id="3005" class="Symbol">)</a>
<a id="3007" href="Relation.Binary.PropositionalEquality.html#2850" class="Function">naturality</a> <a id="3018" class="Symbol">{</a><a id="3019" class="Argument">x</a> <a id="3021" class="Symbol">=</a> <a id="3023" href="Relation.Binary.PropositionalEquality.html#3023" class="Bound">x</a><a id="3024" class="Symbol">}</a> <a id="3026" class="Symbol">{</a><a id="3027" class="Argument">x≡y</a> <a id="3031" class="Symbol">=</a> <a id="3033" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a><a id="3037" class="Symbol">}</a> <a id="3039" href="Relation.Binary.PropositionalEquality.html#3039" class="Bound">f≡g</a> <a id="3043" class="Symbol">=</a>
<a id="3047" href="Relation.Binary.PropositionalEquality.html#3039" class="Bound">f≡g</a> <a id="3051" href="Relation.Binary.PropositionalEquality.html#3023" class="Bound">x</a> <a id="3067" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function">≡⟨</a> <a id="3070" href="Relation.Binary.PropositionalEquality.Core.html#1684" class="Function">sym</a> <a id="3074" class="Symbol">(</a><a id="3075" href="Relation.Binary.PropositionalEquality.Properties.html#843" class="Function">trans-reflʳ</a> <a id="3087" class="Symbol">_)</a> <a id="3090" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function"></a>
<a id="3094" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="3100" class="Symbol">(</a><a id="3101" href="Relation.Binary.PropositionalEquality.html#3039" class="Bound">f≡g</a> <a id="3105" href="Relation.Binary.PropositionalEquality.html#3023" class="Bound">x</a><a id="3106" class="Symbol">)</a> <a id="3108" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="3114" href="Relation.Binary.PropositionalEquality.Core.html#3105" class="Function Operator"></a>
<a id="3118" class="Keyword">where</a> <a id="3124" class="Keyword">open</a> <a id="3129" href="Relation.Binary.PropositionalEquality.Core.html#2708" class="Module">≡-Reasoning</a>
<a id="3142" class="Comment">-- A lemma that is very similar to Corollary 2.4.4 from the HoTT book.</a>
<a id="cong-≡id"></a><a id="3214" href="Relation.Binary.PropositionalEquality.html#3214" class="Function">cong-≡id</a> <a id="3223" class="Symbol">:</a> <a id="3225" class="Symbol"></a> <a id="3227" class="Symbol">{</a><a id="3228" href="Relation.Binary.PropositionalEquality.html#3228" class="Bound">f</a> <a id="3230" class="Symbol">:</a> <a id="3232" href="Relation.Binary.PropositionalEquality.html#886" class="Generalizable">A</a> <a id="3234" class="Symbol"></a> <a id="3236" href="Relation.Binary.PropositionalEquality.html#886" class="Generalizable">A</a><a id="3237" class="Symbol">}</a> <a id="3239" class="Symbol">{</a><a id="3240" href="Relation.Binary.PropositionalEquality.html#3240" class="Bound">x</a> <a id="3242" class="Symbol">:</a> <a id="3244" href="Relation.Binary.PropositionalEquality.html#886" class="Generalizable">A</a><a id="3245" class="Symbol">}</a> <a id="3247" class="Symbol">(</a><a id="3248" href="Relation.Binary.PropositionalEquality.html#3248" class="Bound">f≡id</a> <a id="3253" class="Symbol">:</a> <a id="3255" class="Symbol"></a> <a id="3257" href="Relation.Binary.PropositionalEquality.html#3257" class="Bound">x</a> <a id="3259" class="Symbol"></a> <a id="3261" href="Relation.Binary.PropositionalEquality.html#3228" class="Bound">f</a> <a id="3263" href="Relation.Binary.PropositionalEquality.html#3257" class="Bound">x</a> <a id="3265" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="3267" href="Relation.Binary.PropositionalEquality.html#3257" class="Bound">x</a><a id="3268" class="Symbol">)</a> <a id="3270" class="Symbol"></a>
<a id="3283" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="3288" href="Relation.Binary.PropositionalEquality.html#3228" class="Bound">f</a> <a id="3290" class="Symbol">(</a><a id="3291" href="Relation.Binary.PropositionalEquality.html#3248" class="Bound">f≡id</a> <a id="3296" href="Relation.Binary.PropositionalEquality.html#3240" class="Bound">x</a><a id="3297" class="Symbol">)</a> <a id="3299" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="3301" href="Relation.Binary.PropositionalEquality.html#3248" class="Bound">f≡id</a> <a id="3306" class="Symbol">(</a><a id="3307" href="Relation.Binary.PropositionalEquality.html#3228" class="Bound">f</a> <a id="3309" href="Relation.Binary.PropositionalEquality.html#3240" class="Bound">x</a><a id="3310" class="Symbol">)</a>
<a id="3312" href="Relation.Binary.PropositionalEquality.html#3214" class="Function">cong-≡id</a> <a id="3321" class="Symbol">{</a><a id="3322" class="Argument">f</a> <a id="3324" class="Symbol">=</a> <a id="3326" href="Relation.Binary.PropositionalEquality.html#3326" class="Bound">f</a><a id="3327" class="Symbol">}</a> <a id="3329" class="Symbol">{</a><a id="3330" href="Relation.Binary.PropositionalEquality.html#3330" class="Bound">x</a><a id="3331" class="Symbol">}</a> <a id="3333" href="Relation.Binary.PropositionalEquality.html#3333" class="Bound">f≡id</a> <a id="3338" class="Symbol">=</a>
<a id="3342" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="3347" href="Relation.Binary.PropositionalEquality.html#3326" class="Bound">f</a> <a id="3349" href="Relation.Binary.PropositionalEquality.html#4110" class="Function">fx≡x</a> <a id="3389" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function">≡⟨</a> <a id="3392" href="Relation.Binary.PropositionalEquality.Core.html#1684" class="Function">sym</a> <a id="3396" class="Symbol">(</a><a id="3397" href="Relation.Binary.PropositionalEquality.Properties.html#843" class="Function">trans-reflʳ</a> <a id="3409" class="Symbol">_)</a> <a id="3412" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function"></a>
<a id="3416" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="3422" class="Symbol">(</a><a id="3423" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="3428" href="Relation.Binary.PropositionalEquality.html#3326" class="Bound">f</a> <a id="3430" href="Relation.Binary.PropositionalEquality.html#4110" class="Function">fx≡x</a><a id="3434" class="Symbol">)</a> <a id="3436" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="3463" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function">≡⟨</a> <a id="3466" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="3471" class="Symbol">(</a><a id="3472" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="3478" class="Symbol">_)</a> <a id="3481" class="Symbol">(</a><a id="3482" href="Relation.Binary.PropositionalEquality.Core.html#1684" class="Function">sym</a> <a id="3486" class="Symbol">(</a><a id="3487" href="Relation.Binary.PropositionalEquality.Properties.html#1148" class="Function">trans-symʳ</a> <a id="3498" href="Relation.Binary.PropositionalEquality.html#4110" class="Function">fx≡x</a><a id="3502" class="Symbol">))</a> <a id="3505" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function"></a>
<a id="3509" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="3515" class="Symbol">(</a><a id="3516" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="3521" href="Relation.Binary.PropositionalEquality.html#3326" class="Bound">f</a> <a id="3523" href="Relation.Binary.PropositionalEquality.html#4110" class="Function">fx≡x</a><a id="3527" class="Symbol">)</a> <a id="3529" class="Symbol">(</a><a id="3530" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="3536" href="Relation.Binary.PropositionalEquality.html#4110" class="Function">fx≡x</a> <a id="3541" class="Symbol">(</a><a id="3542" href="Relation.Binary.PropositionalEquality.Core.html#1684" class="Function">sym</a> <a id="3546" href="Relation.Binary.PropositionalEquality.html#4110" class="Function">fx≡x</a><a id="3550" class="Symbol">))</a> <a id="3556" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function">≡⟨</a> <a id="3559" href="Relation.Binary.PropositionalEquality.Core.html#1684" class="Function">sym</a> <a id="3563" class="Symbol">(</a><a id="3564" href="Relation.Binary.PropositionalEquality.Properties.html#925" class="Function">trans-assoc</a> <a id="3576" class="Symbol">(</a><a id="3577" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="3582" href="Relation.Binary.PropositionalEquality.html#3326" class="Bound">f</a> <a id="3584" href="Relation.Binary.PropositionalEquality.html#4110" class="Function">fx≡x</a><a id="3588" class="Symbol">))</a> <a id="3591" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function"></a>
<a id="3595" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="3601" class="Symbol">(</a><a id="3602" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="3608" class="Symbol">(</a><a id="3609" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="3614" href="Relation.Binary.PropositionalEquality.html#3326" class="Bound">f</a> <a id="3616" href="Relation.Binary.PropositionalEquality.html#4110" class="Function">fx≡x</a><a id="3620" class="Symbol">)</a> <a id="3622" href="Relation.Binary.PropositionalEquality.html#4110" class="Function">fx≡x</a><a id="3626" class="Symbol">)</a> <a id="3628" class="Symbol">(</a><a id="3629" href="Relation.Binary.PropositionalEquality.Core.html#1684" class="Function">sym</a> <a id="3633" href="Relation.Binary.PropositionalEquality.html#4110" class="Function">fx≡x</a><a id="3637" class="Symbol">)</a> <a id="3642" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function">≡⟨</a> <a id="3645" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="3650" class="Symbol"></a> <a id="3653" href="Relation.Binary.PropositionalEquality.html#3653" class="Bound">p</a> <a id="3655" class="Symbol"></a> <a id="3657" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="3663" href="Relation.Binary.PropositionalEquality.html#3653" class="Bound">p</a> <a id="3665" class="Symbol">(</a><a id="3666" href="Relation.Binary.PropositionalEquality.Core.html#1684" class="Function">sym</a> <a id="3670" class="Symbol">_))</a> <a id="3674" class="Symbol">(</a><a id="3675" href="Relation.Binary.PropositionalEquality.html#2850" class="Function">naturality</a> <a id="3686" href="Relation.Binary.PropositionalEquality.html#3333" class="Bound">f≡id</a><a id="3690" class="Symbol">)</a> <a id="3692" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function"></a>
<a id="3696" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="3702" class="Symbol">(</a><a id="3703" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="3709" href="Relation.Binary.PropositionalEquality.html#4125" class="Function">f²x≡x</a> <a id="3715" class="Symbol">(</a><a id="3716" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="3721" href="Function.Base.html#615" class="Function">id</a> <a id="3724" href="Relation.Binary.PropositionalEquality.html#4110" class="Function">fx≡x</a><a id="3728" class="Symbol">))</a> <a id="3731" class="Symbol">(</a><a id="3732" href="Relation.Binary.PropositionalEquality.Core.html#1684" class="Function">sym</a> <a id="3736" href="Relation.Binary.PropositionalEquality.html#4110" class="Function">fx≡x</a><a id="3740" class="Symbol">)</a> <a id="3743" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function">≡⟨</a> <a id="3746" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="3751" class="Symbol"></a> <a id="3754" href="Relation.Binary.PropositionalEquality.html#3754" class="Bound">p</a> <a id="3756" class="Symbol"></a> <a id="3758" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="3764" class="Symbol">(</a><a id="3765" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="3771" href="Relation.Binary.PropositionalEquality.html#4125" class="Function">f²x≡x</a> <a id="3777" href="Relation.Binary.PropositionalEquality.html#3754" class="Bound">p</a><a id="3778" class="Symbol">)</a> <a id="3780" class="Symbol">(</a><a id="3781" href="Relation.Binary.PropositionalEquality.Core.html#1684" class="Function">sym</a> <a id="3785" href="Relation.Binary.PropositionalEquality.html#4110" class="Function">fx≡x</a><a id="3789" class="Symbol">))</a> <a id="3792" class="Symbol">(</a><a id="3793" href="Relation.Binary.PropositionalEquality.Properties.html#1565" class="Function">cong-id</a> <a id="3801" class="Symbol">_)</a> <a id="3804" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function"></a>
<a id="3808" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="3814" class="Symbol">(</a><a id="3815" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="3821" href="Relation.Binary.PropositionalEquality.html#4125" class="Function">f²x≡x</a> <a id="3827" href="Relation.Binary.PropositionalEquality.html#4110" class="Function">fx≡x</a><a id="3831" class="Symbol">)</a> <a id="3833" class="Symbol">(</a><a id="3834" href="Relation.Binary.PropositionalEquality.Core.html#1684" class="Function">sym</a> <a id="3838" href="Relation.Binary.PropositionalEquality.html#4110" class="Function">fx≡x</a><a id="3842" class="Symbol">)</a> <a id="3855" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function">≡⟨</a> <a id="3858" href="Relation.Binary.PropositionalEquality.Properties.html#925" class="Function">trans-assoc</a> <a id="3870" href="Relation.Binary.PropositionalEquality.html#4125" class="Function">f²x≡x</a> <a id="3876" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function"></a>
<a id="3880" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="3886" href="Relation.Binary.PropositionalEquality.html#4125" class="Function">f²x≡x</a> <a id="3892" class="Symbol">(</a><a id="3893" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="3899" href="Relation.Binary.PropositionalEquality.html#4110" class="Function">fx≡x</a> <a id="3904" class="Symbol">(</a><a id="3905" href="Relation.Binary.PropositionalEquality.Core.html#1684" class="Function">sym</a> <a id="3909" href="Relation.Binary.PropositionalEquality.html#4110" class="Function">fx≡x</a><a id="3913" class="Symbol">))</a> <a id="3927" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function">≡⟨</a> <a id="3930" href="Relation.Binary.PropositionalEquality.Core.html#1130" class="Function">cong</a> <a id="3935" class="Symbol">(</a><a id="3936" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="3942" class="Symbol">_)</a> <a id="3945" class="Symbol">(</a><a id="3946" href="Relation.Binary.PropositionalEquality.Properties.html#1148" class="Function">trans-symʳ</a> <a id="3957" href="Relation.Binary.PropositionalEquality.html#4110" class="Function">fx≡x</a><a id="3961" class="Symbol">)</a> <a id="3963" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function"></a>
<a id="3967" href="Relation.Binary.PropositionalEquality.Core.html#1729" class="Function">trans</a> <a id="3973" href="Relation.Binary.PropositionalEquality.html#4125" class="Function">f²x≡x</a> <a id="3979" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="4014" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function">≡⟨</a> <a id="4017" href="Relation.Binary.PropositionalEquality.Properties.html#843" class="Function">trans-reflʳ</a> <a id="4029" class="Symbol">_</a> <a id="4031" href="Relation.Binary.PropositionalEquality.Core.html#2923" class="Function"></a>
<a id="4035" href="Relation.Binary.PropositionalEquality.html#3333" class="Bound">f≡id</a> <a id="4040" class="Symbol">(</a><a id="4041" href="Relation.Binary.PropositionalEquality.html#3326" class="Bound">f</a> <a id="4043" href="Relation.Binary.PropositionalEquality.html#3330" class="Bound">x</a><a id="4044" class="Symbol">)</a> <a id="4082" href="Relation.Binary.PropositionalEquality.Core.html#3105" class="Function Operator"></a>
<a id="4086" class="Keyword">where</a> <a id="4092" class="Keyword">open</a> <a id="4097" href="Relation.Binary.PropositionalEquality.Core.html#2708" class="Module">≡-Reasoning</a><a id="4108" class="Symbol">;</a> <a id="4110" href="Relation.Binary.PropositionalEquality.html#4110" class="Function">fx≡x</a> <a id="4115" class="Symbol">=</a> <a id="4117" href="Relation.Binary.PropositionalEquality.html#3333" class="Bound">f≡id</a> <a id="4122" href="Relation.Binary.PropositionalEquality.html#3330" class="Bound">x</a><a id="4123" class="Symbol">;</a> <a id="4125" href="Relation.Binary.PropositionalEquality.html#4125" class="Function">f²x≡x</a> <a id="4131" class="Symbol">=</a> <a id="4133" href="Relation.Binary.PropositionalEquality.html#3333" class="Bound">f≡id</a> <a id="4138" class="Symbol">(</a><a id="4139" href="Relation.Binary.PropositionalEquality.html#3326" class="Bound">f</a> <a id="4141" href="Relation.Binary.PropositionalEquality.html#3330" class="Bound">x</a><a id="4142" class="Symbol">)</a>
<a id="4145" class="Keyword">module</a> <a id="4152" href="Relation.Binary.PropositionalEquality.html#4152" class="Module">_</a> <a id="4154" class="Symbol">(</a><a id="4155" href="Relation.Binary.PropositionalEquality.html#4155" class="Bound Operator">_≟_</a> <a id="4159" class="Symbol">:</a> <a id="4161" href="Relation.Binary.Definitions.html#4575" class="Function">Decidable</a> <a id="4171" class="Symbol">{</a><a id="4172" class="Argument">A</a> <a id="4174" class="Symbol">=</a> <a id="4176" href="Relation.Binary.PropositionalEquality.html#886" class="Generalizable">A</a><a id="4177" class="Symbol">}</a> <a id="4179" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a><a id="4182" class="Symbol">)</a> <a id="4184" class="Symbol">{</a><a id="4185" href="Relation.Binary.PropositionalEquality.html#4185" class="Bound">x</a> <a id="4187" href="Relation.Binary.PropositionalEquality.html#4187" class="Bound">y</a> <a id="4189" class="Symbol">:</a> <a id="4191" href="Relation.Binary.PropositionalEquality.html#886" class="Generalizable">A</a><a id="4192" class="Symbol">}</a> <a id="4194" class="Keyword">where</a>
<a id="4203" href="Relation.Binary.PropositionalEquality.html#4203" class="Function">≡-≟-identity</a> <a id="4216" class="Symbol">:</a> <a id="4218" class="Symbol">(</a><a id="4219" href="Relation.Binary.PropositionalEquality.html#4219" class="Bound">eq</a> <a id="4222" class="Symbol">:</a> <a id="4224" href="Relation.Binary.PropositionalEquality.html#4185" class="Bound">x</a> <a id="4226" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="4228" href="Relation.Binary.PropositionalEquality.html#4187" class="Bound">y</a><a id="4229" class="Symbol">)</a> <a id="4231" class="Symbol"></a> <a id="4233" href="Relation.Binary.PropositionalEquality.html#4185" class="Bound">x</a> <a id="4235" href="Relation.Binary.PropositionalEquality.html#4155" class="Bound Operator"></a> <a id="4237" href="Relation.Binary.PropositionalEquality.html#4187" class="Bound">y</a> <a id="4239" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="4241" href="Relation.Nullary.html#1648" class="InductiveConstructor">yes</a> <a id="4245" href="Relation.Binary.PropositionalEquality.html#4219" class="Bound">eq</a>
<a id="4250" href="Relation.Binary.PropositionalEquality.html#4203" class="Function">≡-≟-identity</a> <a id="4263" href="Relation.Binary.PropositionalEquality.html#4263" class="Bound">eq</a> <a id="4266" class="Symbol">=</a> <a id="4268" href="Relation.Nullary.Decidable.Core.html#3413" class="Function">dec-yes-irr</a> <a id="4280" class="Symbol">(</a><a id="4281" href="Relation.Binary.PropositionalEquality.html#4185" class="Bound">x</a> <a id="4283" href="Relation.Binary.PropositionalEquality.html#4155" class="Bound Operator"></a> <a id="4285" href="Relation.Binary.PropositionalEquality.html#4187" class="Bound">y</a><a id="4286" class="Symbol">)</a> <a id="4288" class="Symbol">(</a><a id="4289" href="Axiom.UniquenessOfIdentityProofs.html#2688" class="Function">Decidable⇒UIP.≡-irrelevant</a> <a id="4316" href="Relation.Binary.PropositionalEquality.html#4155" class="Bound Operator">_≟_</a><a id="4319" class="Symbol">)</a> <a id="4321" href="Relation.Binary.PropositionalEquality.html#4263" class="Bound">eq</a>
<a id="4327" href="Relation.Binary.PropositionalEquality.html#4327" class="Function">≢-≟-identity</a> <a id="4340" class="Symbol">:</a> <a id="4342" href="Relation.Binary.PropositionalEquality.html#4185" class="Bound">x</a> <a id="4344" href="Relation.Binary.PropositionalEquality.Core.html#830" class="Function Operator"></a> <a id="4346" href="Relation.Binary.PropositionalEquality.html#4187" class="Bound">y</a> <a id="4348" class="Symbol"></a> <a id="4350" href="Data.Product.html#1369" class="Function"></a> <a id="4352" class="Symbol">λ</a> <a id="4354" href="Relation.Binary.PropositionalEquality.html#4354" class="Bound">¬eq</a> <a id="4358" class="Symbol"></a> <a id="4360" href="Relation.Binary.PropositionalEquality.html#4185" class="Bound">x</a> <a id="4362" href="Relation.Binary.PropositionalEquality.html#4155" class="Bound Operator"></a> <a id="4364" href="Relation.Binary.PropositionalEquality.html#4187" class="Bound">y</a> <a id="4366" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="4368" href="Relation.Nullary.html#1685" class="InductiveConstructor">no</a> <a id="4371" href="Relation.Binary.PropositionalEquality.html#4354" class="Bound">¬eq</a>
<a id="4377" href="Relation.Binary.PropositionalEquality.html#4327" class="Function">≢-≟-identity</a> <a id="4390" href="Relation.Binary.PropositionalEquality.html#4390" class="Bound">¬eq</a> <a id="4394" class="Symbol">=</a> <a id="4396" href="Relation.Nullary.Decidable.Core.html#3287" class="Function">dec-no</a> <a id="4403" class="Symbol">(</a><a id="4404" href="Relation.Binary.PropositionalEquality.html#4185" class="Bound">x</a> <a id="4406" href="Relation.Binary.PropositionalEquality.html#4155" class="Bound Operator"></a> <a id="4408" href="Relation.Binary.PropositionalEquality.html#4187" class="Bound">y</a><a id="4409" class="Symbol">)</a> <a id="4411" href="Relation.Binary.PropositionalEquality.html#4390" class="Bound">¬eq</a>
<a id="4416" class="Comment">------------------------------------------------------------------------</a>
<a id="4489" class="Comment">-- DEPRECATED NAMES</a>
<a id="4509" class="Comment">------------------------------------------------------------------------</a>
<a id="4582" class="Comment">-- Please use the new names as continuing support for the old names is</a>
<a id="4653" class="Comment">-- not guaranteed.</a>
<a id="4673" class="Comment">-- Version 1.0</a>
<a id="Extensionality"></a><a id="4689" href="Relation.Binary.PropositionalEquality.html#4689" class="Function">Extensionality</a> <a id="4704" class="Symbol">=</a> <a id="4706" href="Axiom.Extensionality.Propositional.html#741" class="Function">Ext.Extensionality</a>
<a id="4725" class="Symbol">{-#</a> <a id="4729" class="Keyword">WARNING_ON_USAGE</a> <a id="4746" class="Pragma">Extensionality</a>
<a id="4761" class="String">&quot;Warning: Extensionality was deprecated in v1.0.
Please use Extensionality from `Axiom.Extensionality.Propositional` instead.&quot;</a>
<a id="4888" class="Symbol">#-}</a>
<a id="extensionality-for-lower-levels"></a><a id="4892" href="Relation.Binary.PropositionalEquality.html#4892" class="Function">extensionality-for-lower-levels</a> <a id="4924" class="Symbol">=</a> <a id="4926" href="Axiom.Extensionality.Propositional.html#1304" class="Function">Ext.lower-extensionality</a>
<a id="4951" class="Symbol">{-#</a> <a id="4955" class="Keyword">WARNING_ON_USAGE</a> <a id="4972" class="Pragma">extensionality-for-lower-levels</a>
<a id="5004" class="String">&quot;Warning: extensionality-for-lower-levels was deprecated in v1.0.
Please use lower-extensionality from `Axiom.Extensionality.Propositional` instead.&quot;</a>
<a id="5154" class="Symbol">#-}</a>
<a id="∀-extensionality"></a><a id="5158" href="Relation.Binary.PropositionalEquality.html#5158" class="Function">∀-extensionality</a> <a id="5175" class="Symbol">=</a> <a id="5177" href="Axiom.Extensionality.Propositional.html#1664" class="Function">Ext.∀-extensionality</a>
<a id="5198" class="Symbol">{-#</a> <a id="5202" class="Keyword">WARNING_ON_USAGE</a> <a id="5219" class="Pragma">∀-extensionality</a>
<a id="5236" class="String">&quot;Warning: ∀-extensionality was deprecated in v1.0.
Please use ∀-extensionality from `Axiom.Extensionality.Propositional` instead.&quot;</a>
<a id="5367" class="Symbol">#-}</a>
</pre></body></html>

View File

@ -0,0 +1,90 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Relation.Binary.Reasoning.Base.Single</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- The basic code for equational reasoning with a single relation</a>
<a id="172" class="Comment">------------------------------------------------------------------------</a>
<a id="246" class="Symbol">{-#</a> <a id="250" class="Keyword">OPTIONS</a> <a id="258" class="Pragma">--without-K</a> <a id="270" class="Pragma">--safe</a> <a id="277" class="Symbol">#-}</a>
<a id="282" class="Keyword">open</a> <a id="287" class="Keyword">import</a> <a id="294" href="Relation.Binary.html" class="Module">Relation.Binary</a>
<a id="311" class="Keyword">module</a> <a id="318" href="Relation.Binary.Reasoning.Base.Single.html" class="Module">Relation.Binary.Reasoning.Base.Single</a>
<a id="358" class="Symbol">{</a><a id="359" href="Relation.Binary.Reasoning.Base.Single.html#359" class="Bound">a</a> <a id="361" href="Relation.Binary.Reasoning.Base.Single.html#361" class="Bound"></a><a id="362" class="Symbol">}</a> <a id="364" class="Symbol">{</a><a id="365" href="Relation.Binary.Reasoning.Base.Single.html#365" class="Bound">A</a> <a id="367" class="Symbol">:</a> <a id="369" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="373" href="Relation.Binary.Reasoning.Base.Single.html#359" class="Bound">a</a><a id="374" class="Symbol">}</a> <a id="376" class="Symbol">(</a><a id="377" href="Relation.Binary.Reasoning.Base.Single.html#377" class="Bound Operator">__</a> <a id="381" class="Symbol">:</a> <a id="383" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="387" href="Relation.Binary.Reasoning.Base.Single.html#365" class="Bound">A</a> <a id="389" href="Relation.Binary.Reasoning.Base.Single.html#361" class="Bound"></a><a id="390" class="Symbol">)</a>
<a id="394" class="Symbol">(</a><a id="395" href="Relation.Binary.Reasoning.Base.Single.html#395" class="Bound">refl</a> <a id="400" class="Symbol">:</a> <a id="402" href="Relation.Binary.Definitions.html#1339" class="Function">Reflexive</a> <a id="412" href="Relation.Binary.Reasoning.Base.Single.html#377" class="Bound Operator">__</a><a id="415" class="Symbol">)</a> <a id="417" class="Symbol">(</a><a id="418" href="Relation.Binary.Reasoning.Base.Single.html#418" class="Bound">trans</a> <a id="424" class="Symbol">:</a> <a id="426" href="Relation.Binary.Definitions.html#1866" class="Function">Transitive</a> <a id="437" href="Relation.Binary.Reasoning.Base.Single.html#377" class="Bound Operator">__</a><a id="440" class="Symbol">)</a>
<a id="444" class="Keyword">where</a>
<a id="451" class="Comment">-- TODO: the following part is copied from Relation.Binary.Reasoning.Base.Partial</a>
<a id="533" class="Comment">-- in order to avoid larger refactors. We will refactor this part later</a>
<a id="605" class="Comment">-- so taht we use the same framework as Relation.Binary.Reasoning.Base.Partial.</a>
<a id="686" class="Keyword">open</a> <a id="691" class="Keyword">import</a> <a id="698" href="Level.html" class="Module">Level</a> <a id="704" class="Keyword">using</a> <a id="710" class="Symbol">(</a><a id="711" href="Agda.Primitive.html#810" class="Primitive Operator">_⊔_</a><a id="714" class="Symbol">)</a>
<a id="716" class="Keyword">open</a> <a id="721" class="Keyword">import</a> <a id="728" href="Relation.Binary.PropositionalEquality.Core.html" class="Module">Relation.Binary.PropositionalEquality.Core</a> <a id="771" class="Symbol">as</a> <a id="774" class="Module">P</a>
<a id="778" class="Keyword">using</a> <a id="784" class="Symbol">(</a><a id="785" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a><a id="788" class="Symbol">)</a>
<a id="791" class="Keyword">infix</a> <a id="798" class="Number">4</a> <a id="800" href="Relation.Binary.Reasoning.Base.Single.html#1053" class="Datatype Operator">_IsRelatedTo_</a>
<a id="815" class="Comment">------------------------------------------------------------------------</a>
<a id="888" class="Comment">-- Definition of &quot;related to&quot;</a>
<a id="919" class="Comment">-- This seemingly unnecessary type is used to make it possible to</a>
<a id="985" class="Comment">-- infer arguments even if the underlying equality evaluates.</a>
<a id="1048" class="Keyword">data</a> <a id="_IsRelatedTo_"></a><a id="1053" href="Relation.Binary.Reasoning.Base.Single.html#1053" class="Datatype Operator">_IsRelatedTo_</a> <a id="1067" class="Symbol">(</a><a id="1068" href="Relation.Binary.Reasoning.Base.Single.html#1068" class="Bound">x</a> <a id="1070" href="Relation.Binary.Reasoning.Base.Single.html#1070" class="Bound">y</a> <a id="1072" class="Symbol">:</a> <a id="1074" href="Relation.Binary.Reasoning.Base.Single.html#365" class="Bound">A</a><a id="1075" class="Symbol">)</a> <a id="1077" class="Symbol">:</a> <a id="1079" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1083" href="Relation.Binary.Reasoning.Base.Single.html#361" class="Bound"></a> <a id="1085" class="Keyword">where</a>
<a id="_IsRelatedTo_.relTo"></a><a id="1093" href="Relation.Binary.Reasoning.Base.Single.html#1093" class="InductiveConstructor">relTo</a> <a id="1099" class="Symbol">:</a> <a id="1101" class="Symbol">(</a><a id="1102" href="Relation.Binary.Reasoning.Base.Single.html#1102" class="Bound">xy</a> <a id="1106" class="Symbol">:</a> <a id="1108" href="Relation.Binary.Reasoning.Base.Single.html#1068" class="Bound">x</a> <a id="1110" href="Relation.Binary.Reasoning.Base.Single.html#377" class="Bound Operator"></a> <a id="1112" href="Relation.Binary.Reasoning.Base.Single.html#1070" class="Bound">y</a><a id="1113" class="Symbol">)</a> <a id="1115" class="Symbol"></a> <a id="1117" href="Relation.Binary.Reasoning.Base.Single.html#1068" class="Bound">x</a> <a id="1119" href="Relation.Binary.Reasoning.Base.Single.html#1053" class="Datatype Operator">IsRelatedTo</a> <a id="1131" href="Relation.Binary.Reasoning.Base.Single.html#1070" class="Bound">y</a>
<a id="1134" class="Comment">------------------------------------------------------------------------</a>
<a id="1207" class="Comment">-- Reasoning combinators</a>
<a id="1233" class="Comment">-- Note that the arguments to the `step`s are not provided in their</a>
<a id="1301" class="Comment">-- &quot;natural&quot; order and syntax declarations are later used to re-order</a>
<a id="1371" class="Comment">-- them. This is because the `step` ordering allows the type-checker to</a>
<a id="1443" class="Comment">-- better infer the middle argument `y` from the `_IsRelatedTo_`</a>
<a id="1508" class="Comment">-- argument (see issue 622).</a>
<a id="1537" class="Comment">--</a>
<a id="1540" class="Comment">-- This has two practical benefits. First it speeds up type-checking by</a>
<a id="1612" class="Comment">-- approximately a factor of 5. Secondly it allows the combinators to be</a>
<a id="1685" class="Comment">-- used with macros that use reflection, e.g. `Tactic.RingSolver`, where</a>
<a id="1758" class="Comment">-- they need to be able to extract `y` using reflection.</a>
<a id="1816" class="Keyword">infix</a> <a id="1823" class="Number">1</a> <a id="1825" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin_</a>
<a id="1832" class="Keyword">infixr</a> <a id="1839" class="Number">2</a> <a id="1841" href="Relation.Binary.Reasoning.Base.Single.html#2018" class="Function">step-</a> <a id="1848" href="Relation.Binary.Reasoning.Base.Single.html#2182" class="Function">step-≡</a> <a id="1855" href="Relation.Binary.Reasoning.Base.Single.html#2331" class="Function">step-≡˘</a>
<a id="1863" class="Keyword">infixr</a> <a id="1870" class="Number">2</a> <a id="1872" href="Relation.Binary.Reasoning.Base.Single.html#2470" class="Function Operator">_≡⟨⟩_</a>
<a id="1878" class="Keyword">infix</a> <a id="1885" class="Number">3</a> <a id="1887" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator">_∎</a>
<a id="1891" class="Comment">-- Beginning of a proof</a>
<a id="begin_"></a><a id="1916" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin_</a> <a id="1923" class="Symbol">:</a> <a id="1925" class="Symbol"></a> <a id="1927" class="Symbol">{</a><a id="1928" href="Relation.Binary.Reasoning.Base.Single.html#1928" class="Bound">x</a> <a id="1930" href="Relation.Binary.Reasoning.Base.Single.html#1930" class="Bound">y</a><a id="1931" class="Symbol">}</a> <a id="1933" class="Symbol"></a> <a id="1935" href="Relation.Binary.Reasoning.Base.Single.html#1928" class="Bound">x</a> <a id="1937" href="Relation.Binary.Reasoning.Base.Single.html#1053" class="Datatype Operator">IsRelatedTo</a> <a id="1949" href="Relation.Binary.Reasoning.Base.Single.html#1930" class="Bound">y</a> <a id="1951" class="Symbol"></a> <a id="1953" href="Relation.Binary.Reasoning.Base.Single.html#1928" class="Bound">x</a> <a id="1955" href="Relation.Binary.Reasoning.Base.Single.html#377" class="Bound Operator"></a> <a id="1957" href="Relation.Binary.Reasoning.Base.Single.html#1930" class="Bound">y</a>
<a id="1959" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a> <a id="1965" href="Relation.Binary.Reasoning.Base.Single.html#1093" class="InductiveConstructor">relTo</a> <a id="1971" href="Relation.Binary.Reasoning.Base.Single.html#1971" class="Bound">xy</a> <a id="1975" class="Symbol">=</a> <a id="1977" href="Relation.Binary.Reasoning.Base.Single.html#1971" class="Bound">xy</a>
<a id="1982" class="Comment">-- Standard step with the relation</a>
<a id="step-"></a><a id="2018" href="Relation.Binary.Reasoning.Base.Single.html#2018" class="Function">step-</a> <a id="2025" class="Symbol">:</a> <a id="2027" class="Symbol"></a> <a id="2029" href="Relation.Binary.Reasoning.Base.Single.html#2029" class="Bound">x</a> <a id="2031" class="Symbol">{</a><a id="2032" href="Relation.Binary.Reasoning.Base.Single.html#2032" class="Bound">y</a> <a id="2034" href="Relation.Binary.Reasoning.Base.Single.html#2034" class="Bound">z</a><a id="2035" class="Symbol">}</a> <a id="2037" class="Symbol"></a> <a id="2039" href="Relation.Binary.Reasoning.Base.Single.html#2032" class="Bound">y</a> <a id="2041" href="Relation.Binary.Reasoning.Base.Single.html#1053" class="Datatype Operator">IsRelatedTo</a> <a id="2053" href="Relation.Binary.Reasoning.Base.Single.html#2034" class="Bound">z</a> <a id="2055" class="Symbol"></a> <a id="2057" href="Relation.Binary.Reasoning.Base.Single.html#2029" class="Bound">x</a> <a id="2059" href="Relation.Binary.Reasoning.Base.Single.html#377" class="Bound Operator"></a> <a id="2061" href="Relation.Binary.Reasoning.Base.Single.html#2032" class="Bound">y</a> <a id="2063" class="Symbol"></a> <a id="2065" href="Relation.Binary.Reasoning.Base.Single.html#2029" class="Bound">x</a> <a id="2067" href="Relation.Binary.Reasoning.Base.Single.html#1053" class="Datatype Operator">IsRelatedTo</a> <a id="2079" href="Relation.Binary.Reasoning.Base.Single.html#2034" class="Bound">z</a>
<a id="2081" href="Relation.Binary.Reasoning.Base.Single.html#2018" class="Function">step-</a> <a id="2088" class="Symbol">_</a> <a id="2090" class="Symbol">(</a><a id="2091" href="Relation.Binary.Reasoning.Base.Single.html#1093" class="InductiveConstructor">relTo</a> <a id="2097" href="Relation.Binary.Reasoning.Base.Single.html#2097" class="Bound">yz</a><a id="2100" class="Symbol">)</a> <a id="2102" href="Relation.Binary.Reasoning.Base.Single.html#2102" class="Bound">xy</a> <a id="2106" class="Symbol">=</a> <a id="2108" href="Relation.Binary.Reasoning.Base.Single.html#1093" class="InductiveConstructor">relTo</a> <a id="2114" class="Symbol">(</a><a id="2115" href="Relation.Binary.Reasoning.Base.Single.html#418" class="Bound">trans</a> <a id="2121" href="Relation.Binary.Reasoning.Base.Single.html#2102" class="Bound">xy</a> <a id="2125" href="Relation.Binary.Reasoning.Base.Single.html#2097" class="Bound">yz</a><a id="2128" class="Symbol">)</a>
<a id="2131" class="Comment">-- Step with a non-trivial propositional equality</a>
<a id="step-≡"></a><a id="2182" href="Relation.Binary.Reasoning.Base.Single.html#2182" class="Function">step-≡</a> <a id="2189" class="Symbol">:</a> <a id="2191" class="Symbol"></a> <a id="2193" href="Relation.Binary.Reasoning.Base.Single.html#2193" class="Bound">x</a> <a id="2195" class="Symbol">{</a><a id="2196" href="Relation.Binary.Reasoning.Base.Single.html#2196" class="Bound">y</a> <a id="2198" href="Relation.Binary.Reasoning.Base.Single.html#2198" class="Bound">z</a><a id="2199" class="Symbol">}</a> <a id="2201" class="Symbol"></a> <a id="2203" href="Relation.Binary.Reasoning.Base.Single.html#2196" class="Bound">y</a> <a id="2205" href="Relation.Binary.Reasoning.Base.Single.html#1053" class="Datatype Operator">IsRelatedTo</a> <a id="2217" href="Relation.Binary.Reasoning.Base.Single.html#2198" class="Bound">z</a> <a id="2219" class="Symbol"></a> <a id="2221" href="Relation.Binary.Reasoning.Base.Single.html#2193" class="Bound">x</a> <a id="2223" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2225" href="Relation.Binary.Reasoning.Base.Single.html#2196" class="Bound">y</a> <a id="2227" class="Symbol"></a> <a id="2229" href="Relation.Binary.Reasoning.Base.Single.html#2193" class="Bound">x</a> <a id="2231" href="Relation.Binary.Reasoning.Base.Single.html#1053" class="Datatype Operator">IsRelatedTo</a> <a id="2243" href="Relation.Binary.Reasoning.Base.Single.html#2198" class="Bound">z</a>
<a id="2245" href="Relation.Binary.Reasoning.Base.Single.html#2182" class="Function">step-≡</a> <a id="2252" class="Symbol">_</a> <a id="2254" href="Relation.Binary.Reasoning.Base.Single.html#2254" class="Bound">xz</a> <a id="2258" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">P.refl</a> <a id="2265" class="Symbol">=</a> <a id="2267" href="Relation.Binary.Reasoning.Base.Single.html#2254" class="Bound">xz</a>
<a id="2272" class="Comment">-- Step with a flipped non-trivial propositional equality</a>
<a id="step-≡˘"></a><a id="2331" href="Relation.Binary.Reasoning.Base.Single.html#2331" class="Function">step-≡˘</a> <a id="2339" class="Symbol">:</a> <a id="2341" class="Symbol"></a> <a id="2343" href="Relation.Binary.Reasoning.Base.Single.html#2343" class="Bound">x</a> <a id="2345" class="Symbol">{</a><a id="2346" href="Relation.Binary.Reasoning.Base.Single.html#2346" class="Bound">y</a> <a id="2348" href="Relation.Binary.Reasoning.Base.Single.html#2348" class="Bound">z</a><a id="2349" class="Symbol">}</a> <a id="2351" class="Symbol"></a> <a id="2353" href="Relation.Binary.Reasoning.Base.Single.html#2346" class="Bound">y</a> <a id="2355" href="Relation.Binary.Reasoning.Base.Single.html#1053" class="Datatype Operator">IsRelatedTo</a> <a id="2367" href="Relation.Binary.Reasoning.Base.Single.html#2348" class="Bound">z</a> <a id="2369" class="Symbol"></a> <a id="2371" href="Relation.Binary.Reasoning.Base.Single.html#2346" class="Bound">y</a> <a id="2373" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2375" href="Relation.Binary.Reasoning.Base.Single.html#2343" class="Bound">x</a> <a id="2377" class="Symbol"></a> <a id="2379" href="Relation.Binary.Reasoning.Base.Single.html#2343" class="Bound">x</a> <a id="2381" href="Relation.Binary.Reasoning.Base.Single.html#1053" class="Datatype Operator">IsRelatedTo</a> <a id="2393" href="Relation.Binary.Reasoning.Base.Single.html#2348" class="Bound">z</a>
<a id="2395" href="Relation.Binary.Reasoning.Base.Single.html#2331" class="Function">step-≡˘</a> <a id="2403" class="Symbol">_</a> <a id="2405" href="Relation.Binary.Reasoning.Base.Single.html#2405" class="Bound">xz</a> <a id="2409" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">P.refl</a> <a id="2416" class="Symbol">=</a> <a id="2418" href="Relation.Binary.Reasoning.Base.Single.html#2405" class="Bound">xz</a>
<a id="2423" class="Comment">-- Step with a trivial propositional equality</a>
<a id="_≡⟨⟩_"></a><a id="2470" href="Relation.Binary.Reasoning.Base.Single.html#2470" class="Function Operator">_≡⟨⟩_</a> <a id="2476" class="Symbol">:</a> <a id="2478" class="Symbol"></a> <a id="2480" href="Relation.Binary.Reasoning.Base.Single.html#2480" class="Bound">x</a> <a id="2482" class="Symbol">{</a><a id="2483" href="Relation.Binary.Reasoning.Base.Single.html#2483" class="Bound">y</a><a id="2484" class="Symbol">}</a> <a id="2486" class="Symbol"></a> <a id="2488" href="Relation.Binary.Reasoning.Base.Single.html#2480" class="Bound">x</a> <a id="2490" href="Relation.Binary.Reasoning.Base.Single.html#1053" class="Datatype Operator">IsRelatedTo</a> <a id="2502" href="Relation.Binary.Reasoning.Base.Single.html#2483" class="Bound">y</a> <a id="2504" class="Symbol"></a> <a id="2506" href="Relation.Binary.Reasoning.Base.Single.html#2480" class="Bound">x</a> <a id="2508" href="Relation.Binary.Reasoning.Base.Single.html#1053" class="Datatype Operator">IsRelatedTo</a> <a id="2520" href="Relation.Binary.Reasoning.Base.Single.html#2483" class="Bound">y</a>
<a id="2522" class="Symbol">_</a> <a id="2524" href="Relation.Binary.Reasoning.Base.Single.html#2470" class="Function Operator">≡⟨⟩</a> <a id="2528" href="Relation.Binary.Reasoning.Base.Single.html#2528" class="Bound">xy</a> <a id="2532" class="Symbol">=</a> <a id="2534" href="Relation.Binary.Reasoning.Base.Single.html#2528" class="Bound">xy</a>
<a id="2539" class="Comment">-- Termination</a>
<a id="_∎"></a><a id="2555" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator">_∎</a> <a id="2558" class="Symbol">:</a> <a id="2560" class="Symbol"></a> <a id="2562" href="Relation.Binary.Reasoning.Base.Single.html#2562" class="Bound">x</a> <a id="2564" class="Symbol"></a> <a id="2566" href="Relation.Binary.Reasoning.Base.Single.html#2562" class="Bound">x</a> <a id="2568" href="Relation.Binary.Reasoning.Base.Single.html#1053" class="Datatype Operator">IsRelatedTo</a> <a id="2580" href="Relation.Binary.Reasoning.Base.Single.html#2562" class="Bound">x</a>
<a id="2582" href="Relation.Binary.Reasoning.Base.Single.html#2582" class="Bound">x</a> <a id="2584" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a> <a id="2586" class="Symbol">=</a> <a id="2588" href="Relation.Binary.Reasoning.Base.Single.html#1093" class="InductiveConstructor">relTo</a> <a id="2594" href="Relation.Binary.Reasoning.Base.Single.html#395" class="Bound">refl</a>
<a id="2600" class="Comment">-- Syntax declarations</a>
<a id="2624" class="Keyword">syntax</a> <a id="2631" href="Relation.Binary.Reasoning.Base.Single.html#2018" class="Function">step-</a> <a id="2639" class="Bound">x</a> <a id="2641" class="Bound">yz</a> <a id="2645" class="Bound">xy</a> <a id="2649" class="Symbol">=</a> <a id="2651" class="Bound">x</a> <a id="2653" class="Function">∼⟨</a> <a id="2657" class="Bound">xy</a> <a id="2661" class="Function"></a> <a id="2663" class="Bound">yz</a>
<a id="2667" class="Keyword">syntax</a> <a id="2674" href="Relation.Binary.Reasoning.Base.Single.html#2182" class="Function">step-≡</a> <a id="2682" class="Bound">x</a> <a id="2684" class="Bound">y≡z</a> <a id="2688" class="Bound">x≡y</a> <a id="2692" class="Symbol">=</a> <a id="2694" class="Bound">x</a> <a id="2696" class="Function">≡⟨</a> <a id="2700" class="Bound">x≡y</a> <a id="2704" class="Function"></a> <a id="2706" class="Bound">y≡z</a>
<a id="2710" class="Keyword">syntax</a> <a id="2717" href="Relation.Binary.Reasoning.Base.Single.html#2331" class="Function">step-≡˘</a> <a id="2725" class="Bound">x</a> <a id="2727" class="Bound">y≡z</a> <a id="2731" class="Bound">y≡x</a> <a id="2735" class="Symbol">=</a> <a id="2737" class="Bound">x</a> <a id="2739" class="Function">≡˘⟨</a> <a id="2743" class="Bound">y≡x</a> <a id="2747" class="Function"></a> <a id="2749" class="Bound">y≡z</a>
</pre></body></html>

View File

@ -0,0 +1,49 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Relation.Binary.Reasoning.Setoid</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Convenient syntax for reasoning with a setoid</a>
<a id="155" class="Comment">------------------------------------------------------------------------</a>
<a id="229" class="Comment">-- Example use:</a>
<a id="246" class="Comment">-- n*0≡0 : ∀ n → n * 0 ≡ 0</a>
<a id="273" class="Comment">-- n*0≡0 zero = refl</a>
<a id="297" class="Comment">-- n*0≡0 (suc n) = begin</a>
<a id="322" class="Comment">-- suc n * 0 ≈⟨ refl ⟩</a>
<a id="347" class="Comment">-- n * 0 + 0 ≈⟨ ... ⟩</a>
<a id="371" class="Comment">-- n * 0 ≈⟨ n*0≡0 n ⟩</a>
<a id="399" class="Comment">-- 0 ∎</a>
<a id="417" class="Comment">-- Module `≡-Reasoning` in `Relation.Binary.PropositionalEquality`</a>
<a id="484" class="Comment">-- is recommended for equational reasoning when the underlying equality is</a>
<a id="559" class="Comment">-- `_≡_`.</a>
<a id="570" class="Symbol">{-#</a> <a id="574" class="Keyword">OPTIONS</a> <a id="582" class="Pragma">--without-K</a> <a id="594" class="Pragma">--safe</a> <a id="601" class="Symbol">#-}</a>
<a id="606" class="Keyword">open</a> <a id="611" class="Keyword">import</a> <a id="618" href="Relation.Binary.html" class="Module">Relation.Binary</a>
<a id="635" class="Keyword">module</a> <a id="642" href="Relation.Binary.Reasoning.Setoid.html" class="Module">Relation.Binary.Reasoning.Setoid</a> <a id="675" class="Symbol">{</a><a id="676" href="Relation.Binary.Reasoning.Setoid.html#676" class="Bound">s₁</a> <a id="679" href="Relation.Binary.Reasoning.Setoid.html#679" class="Bound">s₂</a><a id="681" class="Symbol">}</a> <a id="683" class="Symbol">(</a><a id="684" href="Relation.Binary.Reasoning.Setoid.html#684" class="Bound">S</a> <a id="686" class="Symbol">:</a> <a id="688" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="695" href="Relation.Binary.Reasoning.Setoid.html#676" class="Bound">s₁</a> <a id="698" href="Relation.Binary.Reasoning.Setoid.html#679" class="Bound">s₂</a><a id="700" class="Symbol">)</a> <a id="702" class="Keyword">where</a>
<a id="709" class="Keyword">open</a> <a id="714" href="Relation.Binary.Bundles.html#1009" class="Module">Setoid</a> <a id="721" href="Relation.Binary.Reasoning.Setoid.html#684" class="Bound">S</a>
<a id="724" class="Comment">------------------------------------------------------------------------</a>
<a id="797" class="Comment">-- Reasoning combinators</a>
<a id="823" class="Comment">-- open import Relation.Binary.Reasoning.PartialSetoid partialSetoid public</a>
<a id="899" class="Keyword">open</a> <a id="904" class="Keyword">import</a> <a id="911" href="Relation.Binary.Reasoning.Base.Single.html" class="Module">Relation.Binary.Reasoning.Base.Single</a> <a id="949" href="Relation.Binary.Bundles.html#1098" class="Field Operator">_≈_</a> <a id="953" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="958" href="Relation.Binary.Structures.html#1620" class="Function">trans</a> as <a id="Base"></a><a id="967" href="Relation.Binary.Reasoning.Setoid.html#967" class="Module">Base</a> <a id="972" class="Keyword">public</a>
<a id="981" class="Keyword">hiding</a> <a id="988" class="Symbol">(</a><a id="989" href="Relation.Binary.Reasoning.Base.Single.html#2018" class="Function">step-</a><a id="995" class="Symbol">)</a>
<a id="998" class="Keyword">infixr</a> <a id="1005" class="Number">2</a> <a id="1007" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">step-≈</a> <a id="1014" href="Relation.Binary.Reasoning.Setoid.html#1153" class="Function">step-≈˘</a>
<a id="1023" class="Comment">-- A step using an equality</a>
<a id="step-≈"></a><a id="1052" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">step-≈</a> <a id="1059" class="Symbol">=</a> <a id="1061" href="Relation.Binary.Reasoning.Base.Single.html#2018" class="Function">Base.step-</a>
<a id="1073" class="Keyword">syntax</a> <a id="1080" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">step-≈</a> <a id="1087" class="Bound">x</a> <a id="1089" class="Bound">y≈z</a> <a id="1093" class="Bound">x≈y</a> <a id="1097" class="Symbol">=</a> <a id="1099" class="Bound">x</a> <a id="1101" class="Function">≈⟨</a> <a id="1104" class="Bound">x≈y</a> <a id="1108" class="Function"></a> <a id="1110" class="Bound">y≈z</a>
<a id="1115" class="Comment">-- A step using a symmetric equality</a>
<a id="step-≈˘"></a><a id="1153" href="Relation.Binary.Reasoning.Setoid.html#1153" class="Function">step-≈˘</a> <a id="1161" class="Symbol">:</a> <a id="1163" class="Symbol"></a> <a id="1165" href="Relation.Binary.Reasoning.Setoid.html#1165" class="Bound">x</a> <a id="1167" class="Symbol">{</a><a id="1168" href="Relation.Binary.Reasoning.Setoid.html#1168" class="Bound">y</a> <a id="1170" href="Relation.Binary.Reasoning.Setoid.html#1170" class="Bound">z</a><a id="1171" class="Symbol">}</a> <a id="1173" class="Symbol"></a> <a id="1175" href="Relation.Binary.Reasoning.Setoid.html#1168" class="Bound">y</a> <a id="1177" href="Relation.Binary.Reasoning.Base.Single.html#1053" class="Datatype Operator">IsRelatedTo</a> <a id="1189" href="Relation.Binary.Reasoning.Setoid.html#1170" class="Bound">z</a> <a id="1191" class="Symbol"></a> <a id="1193" href="Relation.Binary.Reasoning.Setoid.html#1168" class="Bound">y</a> <a id="1195" href="Relation.Binary.Bundles.html#1098" class="Field Operator"></a> <a id="1197" href="Relation.Binary.Reasoning.Setoid.html#1165" class="Bound">x</a> <a id="1199" class="Symbol"></a> <a id="1201" href="Relation.Binary.Reasoning.Setoid.html#1165" class="Bound">x</a> <a id="1203" href="Relation.Binary.Reasoning.Base.Single.html#1053" class="Datatype Operator">IsRelatedTo</a> <a id="1215" href="Relation.Binary.Reasoning.Setoid.html#1170" class="Bound">z</a>
<a id="1217" href="Relation.Binary.Reasoning.Setoid.html#1153" class="Function">step-≈˘</a> <a id="1225" href="Relation.Binary.Reasoning.Setoid.html#1225" class="Bound">x</a> <a id="1227" href="Relation.Binary.Reasoning.Setoid.html#1227" class="Bound">yz</a> <a id="1231" href="Relation.Binary.Reasoning.Setoid.html#1231" class="Bound">y≈x</a> <a id="1235" class="Symbol">=</a> <a id="1237" href="Relation.Binary.Reasoning.Setoid.html#1225" class="Bound">x</a> <a id="1239" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="1242" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="1246" href="Relation.Binary.Reasoning.Setoid.html#1231" class="Bound">y≈x</a> <a id="1250" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a> <a id="1252" href="Relation.Binary.Reasoning.Setoid.html#1227" class="Bound">yz</a>
<a id="1256" class="Keyword">syntax</a> <a id="1263" href="Relation.Binary.Reasoning.Setoid.html#1153" class="Function">step-≈˘</a> <a id="1271" class="Bound">x</a> <a id="1273" class="Bound">y≈z</a> <a id="1277" class="Bound">y≈x</a> <a id="1281" class="Symbol">=</a> <a id="1283" class="Bound">x</a> <a id="1285" class="Function">≈˘⟨</a> <a id="1289" class="Bound">y≈x</a> <a id="1293" class="Function"></a> <a id="1295" class="Bound">y≈z</a>
</pre></body></html>

View File

@ -0,0 +1,288 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Relation.Binary.Structures</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Structures for homogeneous binary relations</a>
<a id="153" class="Comment">------------------------------------------------------------------------</a>
<a id="227" class="Comment">-- The contents of this module should be accessed via `Relation.Binary`.</a>
<a id="301" class="Symbol">{-#</a> <a id="305" class="Keyword">OPTIONS</a> <a id="313" class="Pragma">--without-K</a> <a id="325" class="Pragma">--safe</a> <a id="332" class="Symbol">#-}</a>
<a id="337" class="Keyword">open</a> <a id="342" class="Keyword">import</a> <a id="349" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a>
<a id="371" class="Keyword">module</a> <a id="378" href="Relation.Binary.Structures.html" class="Module">Relation.Binary.Structures</a>
<a id="407" class="Symbol">{</a><a id="408" href="Relation.Binary.Structures.html#408" class="Bound">a</a> <a id="410" href="Relation.Binary.Structures.html#410" class="Bound"></a><a id="411" class="Symbol">}</a> <a id="413" class="Symbol">{</a><a id="414" href="Relation.Binary.Structures.html#414" class="Bound">A</a> <a id="416" class="Symbol">:</a> <a id="418" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="422" href="Relation.Binary.Structures.html#408" class="Bound">a</a><a id="423" class="Symbol">}</a> <a id="425" class="Comment">-- The underlying set</a>
<a id="449" class="Symbol">(</a><a id="450" href="Relation.Binary.Structures.html#450" class="Bound Operator">_≈_</a> <a id="454" class="Symbol">:</a> <a id="456" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="460" href="Relation.Binary.Structures.html#414" class="Bound">A</a> <a id="462" href="Relation.Binary.Structures.html#410" class="Bound"></a><a id="463" class="Symbol">)</a> <a id="467" class="Comment">-- The underlying equality relation</a>
<a id="505" class="Keyword">where</a>
<a id="512" class="Keyword">open</a> <a id="517" class="Keyword">import</a> <a id="524" href="Data.Product.html" class="Module">Data.Product</a> <a id="537" class="Keyword">using</a> <a id="543" class="Symbol">(</a><a id="544" href="Agda.Builtin.Sigma.html#252" class="Field">proj₁</a><a id="549" class="Symbol">;</a> <a id="551" href="Agda.Builtin.Sigma.html#264" class="Field">proj₂</a><a id="556" class="Symbol">;</a> <a id="558" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">_,_</a><a id="561" class="Symbol">)</a>
<a id="563" class="Keyword">open</a> <a id="568" class="Keyword">import</a> <a id="575" href="Level.html" class="Module">Level</a> <a id="581" class="Keyword">using</a> <a id="587" class="Symbol">(</a><a id="588" href="Agda.Primitive.html#597" class="Postulate">Level</a><a id="593" class="Symbol">;</a> <a id="595" href="Agda.Primitive.html#810" class="Primitive Operator">_⊔_</a><a id="598" class="Symbol">)</a>
<a id="600" class="Keyword">open</a> <a id="605" class="Keyword">import</a> <a id="612" href="Relation.Nullary.html" class="Module">Relation.Nullary</a> <a id="629" class="Keyword">using</a> <a id="635" class="Symbol">(</a><a id="636" href="Relation.Nullary.html#656" class="Function Operator">¬_</a><a id="638" class="Symbol">)</a>
<a id="640" class="Keyword">open</a> <a id="645" class="Keyword">import</a> <a id="652" href="Relation.Binary.PropositionalEquality.Core.html" class="Module">Relation.Binary.PropositionalEquality.Core</a> <a id="695" class="Symbol">as</a> <a id="698" class="Module">P</a> <a id="700" class="Keyword">using</a> <a id="706" class="Symbol">(</a><a id="707" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a><a id="710" class="Symbol">)</a>
<a id="712" class="Keyword">open</a> <a id="717" class="Keyword">import</a> <a id="724" href="Relation.Binary.Consequences.html" class="Module">Relation.Binary.Consequences</a>
<a id="753" class="Keyword">open</a> <a id="758" class="Keyword">import</a> <a id="765" href="Relation.Binary.Definitions.html" class="Module">Relation.Binary.Definitions</a>
<a id="794" class="Keyword">private</a>
<a id="804" class="Keyword">variable</a>
<a id="817" href="Relation.Binary.Structures.html#817" class="Generalizable">ℓ₂</a> <a id="820" class="Symbol">:</a> <a id="822" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="829" class="Comment">------------------------------------------------------------------------</a>
<a id="902" class="Comment">-- Equivalences</a>
<a id="918" class="Comment">------------------------------------------------------------------------</a>
<a id="991" class="Comment">-- Note all the following equivalences refer to the equality provided</a>
<a id="1061" class="Comment">-- as a module parameter at the top of this file.</a>
<a id="1112" class="Keyword">record</a> <a id="IsPartialEquivalence"></a><a id="1119" href="Relation.Binary.Structures.html#1119" class="Record">IsPartialEquivalence</a> <a id="1140" class="Symbol">:</a> <a id="1142" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1146" class="Symbol">(</a><a id="1147" href="Relation.Binary.Structures.html#408" class="Bound">a</a> <a id="1149" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1151" href="Relation.Binary.Structures.html#410" class="Bound"></a><a id="1152" class="Symbol">)</a> <a id="1154" class="Keyword">where</a>
<a id="1162" class="Keyword">field</a>
<a id="IsPartialEquivalence.sym"></a><a id="1172" href="Relation.Binary.Structures.html#1172" class="Field">sym</a> <a id="1178" class="Symbol">:</a> <a id="1180" href="Relation.Binary.Definitions.html#1498" class="Function">Symmetric</a> <a id="1190" href="Relation.Binary.Structures.html#450" class="Bound Operator">_≈_</a>
<a id="IsPartialEquivalence.trans"></a><a id="1198" href="Relation.Binary.Structures.html#1198" class="Field">trans</a> <a id="1204" class="Symbol">:</a> <a id="1206" href="Relation.Binary.Definitions.html#1866" class="Function">Transitive</a> <a id="1217" href="Relation.Binary.Structures.html#450" class="Bound Operator">_≈_</a>
<a id="1222" class="Comment">-- The preorders of this library are defined in terms of an underlying</a>
<a id="1293" class="Comment">-- equivalence relation, and hence equivalence relations are not</a>
<a id="1358" class="Comment">-- defined in terms of preorders.</a>
<a id="1393" class="Comment">-- To preserve backwards compatability, equivalence relations are</a>
<a id="1459" class="Comment">-- not defined in terms of their partial counterparts.</a>
<a id="1515" class="Keyword">record</a> <a id="IsEquivalence"></a><a id="1522" href="Relation.Binary.Structures.html#1522" class="Record">IsEquivalence</a> <a id="1536" class="Symbol">:</a> <a id="1538" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1542" class="Symbol">(</a><a id="1543" href="Relation.Binary.Structures.html#408" class="Bound">a</a> <a id="1545" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1547" href="Relation.Binary.Structures.html#410" class="Bound"></a><a id="1548" class="Symbol">)</a> <a id="1550" class="Keyword">where</a>
<a id="1558" class="Keyword">field</a>
<a id="IsEquivalence.refl"></a><a id="1568" href="Relation.Binary.Structures.html#1568" class="Field">refl</a> <a id="1574" class="Symbol">:</a> <a id="1576" href="Relation.Binary.Definitions.html#1339" class="Function">Reflexive</a> <a id="1586" href="Relation.Binary.Structures.html#450" class="Bound Operator">_≈_</a>
<a id="IsEquivalence.sym"></a><a id="1594" href="Relation.Binary.Structures.html#1594" class="Field">sym</a> <a id="1600" class="Symbol">:</a> <a id="1602" href="Relation.Binary.Definitions.html#1498" class="Function">Symmetric</a> <a id="1612" href="Relation.Binary.Structures.html#450" class="Bound Operator">_≈_</a>
<a id="IsEquivalence.trans"></a><a id="1620" href="Relation.Binary.Structures.html#1620" class="Field">trans</a> <a id="1626" class="Symbol">:</a> <a id="1628" href="Relation.Binary.Definitions.html#1866" class="Function">Transitive</a> <a id="1639" href="Relation.Binary.Structures.html#450" class="Bound Operator">_≈_</a>
<a id="IsEquivalence.reflexive"></a><a id="1646" href="Relation.Binary.Structures.html#1646" class="Function">reflexive</a> <a id="1656" class="Symbol">:</a> <a id="1658" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a> <a id="1662" href="Relation.Binary.Core.html#1254" class="Function Operator"></a> <a id="1664" href="Relation.Binary.Structures.html#450" class="Bound Operator">_≈_</a>
<a id="1670" href="Relation.Binary.Structures.html#1646" class="Function">reflexive</a> <a id="1680" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">P.refl</a> <a id="1687" class="Symbol">=</a> <a id="1689" href="Relation.Binary.Structures.html#1568" class="Field">refl</a>
<a id="IsEquivalence.isPartialEquivalence"></a><a id="1697" href="Relation.Binary.Structures.html#1697" class="Function">isPartialEquivalence</a> <a id="1718" class="Symbol">:</a> <a id="1720" href="Relation.Binary.Structures.html#1119" class="Record">IsPartialEquivalence</a>
<a id="1743" href="Relation.Binary.Structures.html#1697" class="Function">isPartialEquivalence</a> <a id="1764" class="Symbol">=</a> <a id="1766" class="Keyword">record</a>
<a id="1777" class="Symbol">{</a> <a id="1779" href="Relation.Binary.Structures.html#1172" class="Field">sym</a> <a id="1783" class="Symbol">=</a> <a id="1785" href="Relation.Binary.Structures.html#1594" class="Field">sym</a>
<a id="1793" class="Symbol">;</a> <a id="1795" href="Relation.Binary.Structures.html#1198" class="Field">trans</a> <a id="1801" class="Symbol">=</a> <a id="1803" href="Relation.Binary.Structures.html#1620" class="Field">trans</a>
<a id="1813" class="Symbol">}</a>
<a id="1817" class="Keyword">record</a> <a id="IsDecEquivalence"></a><a id="1824" href="Relation.Binary.Structures.html#1824" class="Record">IsDecEquivalence</a> <a id="1841" class="Symbol">:</a> <a id="1843" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1847" class="Symbol">(</a><a id="1848" href="Relation.Binary.Structures.html#408" class="Bound">a</a> <a id="1850" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1852" href="Relation.Binary.Structures.html#410" class="Bound"></a><a id="1853" class="Symbol">)</a> <a id="1855" class="Keyword">where</a>
<a id="1863" class="Keyword">infix</a> <a id="1869" class="Number">4</a> <a id="1871" href="Relation.Binary.Structures.html#1921" class="Field Operator">_≟_</a>
<a id="1877" class="Keyword">field</a>
<a id="IsDecEquivalence.isEquivalence"></a><a id="1887" href="Relation.Binary.Structures.html#1887" class="Field">isEquivalence</a> <a id="1901" class="Symbol">:</a> <a id="1903" href="Relation.Binary.Structures.html#1522" class="Record">IsEquivalence</a>
<a id="IsDecEquivalence._≟_"></a><a id="1921" href="Relation.Binary.Structures.html#1921" class="Field Operator">_≟_</a> <a id="1935" class="Symbol">:</a> <a id="1937" href="Relation.Binary.Definitions.html#4575" class="Function">Decidable</a> <a id="1947" href="Relation.Binary.Structures.html#450" class="Bound Operator">_≈_</a>
<a id="1954" class="Keyword">open</a> <a id="1959" href="Relation.Binary.Structures.html#1522" class="Module">IsEquivalence</a> <a id="1973" href="Relation.Binary.Structures.html#1887" class="Field">isEquivalence</a> <a id="1987" class="Keyword">public</a>
<a id="1996" class="Comment">------------------------------------------------------------------------</a>
<a id="2069" class="Comment">-- Preorders</a>
<a id="2082" class="Comment">------------------------------------------------------------------------</a>
<a id="2156" class="Keyword">record</a> <a id="IsPreorder"></a><a id="2163" href="Relation.Binary.Structures.html#2163" class="Record">IsPreorder</a> <a id="2174" class="Symbol">(</a><a id="2175" href="Relation.Binary.Structures.html#2175" class="Bound Operator">__</a> <a id="2179" class="Symbol">:</a> <a id="2181" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="2185" href="Relation.Binary.Structures.html#414" class="Bound">A</a> <a id="2187" href="Relation.Binary.Structures.html#817" class="Generalizable">ℓ₂</a><a id="2189" class="Symbol">)</a> <a id="2191" class="Symbol">:</a> <a id="2193" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2197" class="Symbol">(</a><a id="2198" href="Relation.Binary.Structures.html#408" class="Bound">a</a> <a id="2200" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2202" href="Relation.Binary.Structures.html#410" class="Bound"></a> <a id="2204" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2206" href="Relation.Binary.Structures.html#2187" class="Bound">ℓ₂</a><a id="2208" class="Symbol">)</a> <a id="2210" class="Keyword">where</a>
<a id="2218" class="Keyword">field</a>
<a id="IsPreorder.isEquivalence"></a><a id="2228" href="Relation.Binary.Structures.html#2228" class="Field">isEquivalence</a> <a id="2242" class="Symbol">:</a> <a id="2244" href="Relation.Binary.Structures.html#1522" class="Record">IsEquivalence</a>
<a id="2262" class="Comment">-- Reflexivity is expressed in terms of the underlying equality:</a>
<a id="IsPreorder.reflexive"></a><a id="2331" href="Relation.Binary.Structures.html#2331" class="Field">reflexive</a> <a id="2345" class="Symbol">:</a> <a id="2347" href="Relation.Binary.Structures.html#450" class="Bound Operator">_≈_</a> <a id="2351" href="Relation.Binary.Core.html#1254" class="Function Operator"></a> <a id="2353" href="Relation.Binary.Structures.html#2175" class="Bound Operator">__</a>
<a id="IsPreorder.trans"></a><a id="2361" href="Relation.Binary.Structures.html#2361" class="Field">trans</a> <a id="2375" class="Symbol">:</a> <a id="2377" href="Relation.Binary.Definitions.html#1866" class="Function">Transitive</a> <a id="2388" href="Relation.Binary.Structures.html#2175" class="Bound Operator">__</a>
<a id="2395" class="Keyword">module</a> <a id="IsPreorder.Eq"></a><a id="2402" href="Relation.Binary.Structures.html#2402" class="Module">Eq</a> <a id="2405" class="Symbol">=</a> <a id="2407" href="Relation.Binary.Structures.html#1522" class="Module">IsEquivalence</a> <a id="2421" href="Relation.Binary.Structures.html#2228" class="Field">isEquivalence</a>
<a id="IsPreorder.refl"></a><a id="2438" href="Relation.Binary.Structures.html#2438" class="Function">refl</a> <a id="2443" class="Symbol">:</a> <a id="2445" href="Relation.Binary.Definitions.html#1339" class="Function">Reflexive</a> <a id="2455" href="Relation.Binary.Structures.html#2175" class="Bound Operator">__</a>
<a id="2461" href="Relation.Binary.Structures.html#2438" class="Function">refl</a> <a id="2466" class="Symbol">=</a> <a id="2468" href="Relation.Binary.Structures.html#2331" class="Field">reflexive</a> <a id="2478" href="Relation.Binary.Structures.html#1568" class="Function">Eq.refl</a>
<a id="IsPreorder.-respˡ-≈"></a><a id="2489" href="Relation.Binary.Structures.html#2489" class="Function">-respˡ-≈</a> <a id="2499" class="Symbol">:</a> <a id="2501" href="Relation.Binary.Structures.html#2175" class="Bound Operator">__</a> <a id="2505" href="Relation.Binary.Definitions.html#3914" class="Function Operator">Respectsˡ</a> <a id="2515" href="Relation.Binary.Structures.html#450" class="Bound Operator">_≈_</a>
<a id="2521" href="Relation.Binary.Structures.html#2489" class="Function">-respˡ-≈</a> <a id="2531" href="Relation.Binary.Structures.html#2531" class="Bound">x≈y</a> <a id="2535" href="Relation.Binary.Structures.html#2535" class="Bound">xz</a> <a id="2539" class="Symbol">=</a> <a id="2541" href="Relation.Binary.Structures.html#2361" class="Field">trans</a> <a id="2547" class="Symbol">(</a><a id="2548" href="Relation.Binary.Structures.html#2331" class="Field">reflexive</a> <a id="2558" class="Symbol">(</a><a id="2559" href="Relation.Binary.Structures.html#1594" class="Function">Eq.sym</a> <a id="2566" href="Relation.Binary.Structures.html#2531" class="Bound">x≈y</a><a id="2569" class="Symbol">))</a> <a id="2572" href="Relation.Binary.Structures.html#2535" class="Bound">xz</a>
<a id="IsPreorder.-respʳ-≈"></a><a id="2579" href="Relation.Binary.Structures.html#2579" class="Function">-respʳ-≈</a> <a id="2589" class="Symbol">:</a> <a id="2591" href="Relation.Binary.Structures.html#2175" class="Bound Operator">__</a> <a id="2595" href="Relation.Binary.Definitions.html#3749" class="Function Operator">Respectsʳ</a> <a id="2605" href="Relation.Binary.Structures.html#450" class="Bound Operator">_≈_</a>
<a id="2611" href="Relation.Binary.Structures.html#2579" class="Function">-respʳ-≈</a> <a id="2621" href="Relation.Binary.Structures.html#2621" class="Bound">x≈y</a> <a id="2625" href="Relation.Binary.Structures.html#2625" class="Bound">zx</a> <a id="2629" class="Symbol">=</a> <a id="2631" href="Relation.Binary.Structures.html#2361" class="Field">trans</a> <a id="2637" href="Relation.Binary.Structures.html#2625" class="Bound">zx</a> <a id="2641" class="Symbol">(</a><a id="2642" href="Relation.Binary.Structures.html#2331" class="Field">reflexive</a> <a id="2652" href="Relation.Binary.Structures.html#2621" class="Bound">x≈y</a><a id="2655" class="Symbol">)</a>
<a id="IsPreorder.-resp-≈"></a><a id="2660" href="Relation.Binary.Structures.html#2660" class="Function">-resp-≈</a> <a id="2669" class="Symbol">:</a> <a id="2671" href="Relation.Binary.Structures.html#2175" class="Bound Operator">__</a> <a id="2675" href="Relation.Binary.Definitions.html#4077" class="Function Operator">Respects₂</a> <a id="2685" href="Relation.Binary.Structures.html#450" class="Bound Operator">_≈_</a>
<a id="2691" href="Relation.Binary.Structures.html#2660" class="Function">-resp-≈</a> <a id="2700" class="Symbol">=</a> <a id="2702" href="Relation.Binary.Structures.html#2579" class="Function">-respʳ-≈</a> <a id="2712" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="2714" href="Relation.Binary.Structures.html#2489" class="Function">-respˡ-≈</a>
<a id="2726" class="Keyword">record</a> <a id="IsTotalPreorder"></a><a id="2733" href="Relation.Binary.Structures.html#2733" class="Record">IsTotalPreorder</a> <a id="2749" class="Symbol">(</a><a id="2750" href="Relation.Binary.Structures.html#2750" class="Bound Operator">_≲_</a> <a id="2754" class="Symbol">:</a> <a id="2756" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="2760" href="Relation.Binary.Structures.html#414" class="Bound">A</a> <a id="2762" href="Relation.Binary.Structures.html#817" class="Generalizable">ℓ₂</a><a id="2764" class="Symbol">)</a> <a id="2766" class="Symbol">:</a> <a id="2768" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2772" class="Symbol">(</a><a id="2773" href="Relation.Binary.Structures.html#408" class="Bound">a</a> <a id="2775" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2777" href="Relation.Binary.Structures.html#410" class="Bound"></a> <a id="2779" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="2781" href="Relation.Binary.Structures.html#2762" class="Bound">ℓ₂</a><a id="2783" class="Symbol">)</a> <a id="2785" class="Keyword">where</a>
<a id="2793" class="Keyword">field</a>
<a id="IsTotalPreorder.isPreorder"></a><a id="2803" href="Relation.Binary.Structures.html#2803" class="Field">isPreorder</a> <a id="2814" class="Symbol">:</a> <a id="2816" href="Relation.Binary.Structures.html#2163" class="Record">IsPreorder</a> <a id="2827" href="Relation.Binary.Structures.html#2750" class="Bound Operator">_≲_</a>
<a id="IsTotalPreorder.total"></a><a id="2835" href="Relation.Binary.Structures.html#2835" class="Field">total</a> <a id="2846" class="Symbol">:</a> <a id="2848" href="Relation.Binary.Definitions.html#2584" class="Function">Total</a> <a id="2854" href="Relation.Binary.Structures.html#2750" class="Bound Operator">_≲_</a>
<a id="2861" class="Keyword">open</a> <a id="2866" href="Relation.Binary.Structures.html#2163" class="Module">IsPreorder</a> <a id="2877" href="Relation.Binary.Structures.html#2803" class="Field">isPreorder</a> <a id="2888" class="Keyword">public</a>
<a id="2899" class="Keyword">renaming</a>
<a id="2912" class="Symbol">(</a> <a id="2914" href="Relation.Binary.Structures.html#2489" class="Function">-respˡ-≈</a> <a id="2924" class="Symbol">to</a> <a id="2927" class="Function">≲-respˡ-≈</a>
<a id="2941" class="Symbol">;</a> <a id="2943" href="Relation.Binary.Structures.html#2579" class="Function">-respʳ-≈</a> <a id="2953" class="Symbol">to</a> <a id="2956" class="Function">≲-respʳ-≈</a>
<a id="2970" class="Symbol">;</a> <a id="2972" href="Relation.Binary.Structures.html#2660" class="Function">-resp-≈</a> <a id="2982" class="Symbol">to</a> <a id="2985" class="Function">≲-resp-≈</a>
<a id="2998" class="Symbol">)</a>
<a id="3002" class="Comment">------------------------------------------------------------------------</a>
<a id="3075" class="Comment">-- Partial orders</a>
<a id="3093" class="Comment">------------------------------------------------------------------------</a>
<a id="3167" class="Keyword">record</a> <a id="IsPartialOrder"></a><a id="3174" href="Relation.Binary.Structures.html#3174" class="Record">IsPartialOrder</a> <a id="3189" class="Symbol">(</a><a id="3190" href="Relation.Binary.Structures.html#3190" class="Bound Operator">_≤_</a> <a id="3194" class="Symbol">:</a> <a id="3196" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="3200" href="Relation.Binary.Structures.html#414" class="Bound">A</a> <a id="3202" href="Relation.Binary.Structures.html#817" class="Generalizable">ℓ₂</a><a id="3204" class="Symbol">)</a> <a id="3206" class="Symbol">:</a> <a id="3208" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3212" class="Symbol">(</a><a id="3213" href="Relation.Binary.Structures.html#408" class="Bound">a</a> <a id="3215" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="3217" href="Relation.Binary.Structures.html#410" class="Bound"></a> <a id="3219" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="3221" href="Relation.Binary.Structures.html#3202" class="Bound">ℓ₂</a><a id="3223" class="Symbol">)</a> <a id="3225" class="Keyword">where</a>
<a id="3233" class="Keyword">field</a>
<a id="IsPartialOrder.isPreorder"></a><a id="3243" href="Relation.Binary.Structures.html#3243" class="Field">isPreorder</a> <a id="3254" class="Symbol">:</a> <a id="3256" href="Relation.Binary.Structures.html#2163" class="Record">IsPreorder</a> <a id="3267" href="Relation.Binary.Structures.html#3190" class="Bound Operator">_≤_</a>
<a id="IsPartialOrder.antisym"></a><a id="3275" href="Relation.Binary.Structures.html#3275" class="Field">antisym</a> <a id="3286" class="Symbol">:</a> <a id="3288" href="Relation.Binary.Definitions.html#2082" class="Function">Antisymmetric</a> <a id="3302" href="Relation.Binary.Structures.html#450" class="Bound Operator">_≈_</a> <a id="3306" href="Relation.Binary.Structures.html#3190" class="Bound Operator">_≤_</a>
<a id="3313" class="Keyword">open</a> <a id="3318" href="Relation.Binary.Structures.html#2163" class="Module">IsPreorder</a> <a id="3329" href="Relation.Binary.Structures.html#3243" class="Field">isPreorder</a> <a id="3340" class="Keyword">public</a>
<a id="3351" class="Keyword">renaming</a>
<a id="3364" class="Symbol">(</a> <a id="3366" href="Relation.Binary.Structures.html#2489" class="Function">-respˡ-≈</a> <a id="3376" class="Symbol">to</a> <a id="3379" class="Function">≤-respˡ-≈</a>
<a id="3393" class="Symbol">;</a> <a id="3395" href="Relation.Binary.Structures.html#2579" class="Function">-respʳ-≈</a> <a id="3405" class="Symbol">to</a> <a id="3408" class="Function">≤-respʳ-≈</a>
<a id="3422" class="Symbol">;</a> <a id="3424" href="Relation.Binary.Structures.html#2660" class="Function">-resp-≈</a> <a id="3434" class="Symbol">to</a> <a id="3437" class="Function">≤-resp-≈</a>
<a id="3450" class="Symbol">)</a>
<a id="3454" class="Keyword">record</a> <a id="IsDecPartialOrder"></a><a id="3461" href="Relation.Binary.Structures.html#3461" class="Record">IsDecPartialOrder</a> <a id="3479" class="Symbol">(</a><a id="3480" href="Relation.Binary.Structures.html#3480" class="Bound Operator">_≤_</a> <a id="3484" class="Symbol">:</a> <a id="3486" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="3490" href="Relation.Binary.Structures.html#414" class="Bound">A</a> <a id="3492" href="Relation.Binary.Structures.html#817" class="Generalizable">ℓ₂</a><a id="3494" class="Symbol">)</a> <a id="3496" class="Symbol">:</a> <a id="3498" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3502" class="Symbol">(</a><a id="3503" href="Relation.Binary.Structures.html#408" class="Bound">a</a> <a id="3505" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="3507" href="Relation.Binary.Structures.html#410" class="Bound"></a> <a id="3509" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="3511" href="Relation.Binary.Structures.html#3492" class="Bound">ℓ₂</a><a id="3513" class="Symbol">)</a> <a id="3515" class="Keyword">where</a>
<a id="3523" class="Keyword">infix</a> <a id="3529" class="Number">4</a> <a id="3531" href="Relation.Binary.Structures.html#3592" class="Field Operator">_≟_</a> <a id="3535" href="Relation.Binary.Structures.html#3627" class="Field Operator">_≤?_</a>
<a id="3542" class="Keyword">field</a>
<a id="IsDecPartialOrder.isPartialOrder"></a><a id="3552" href="Relation.Binary.Structures.html#3552" class="Field">isPartialOrder</a> <a id="3567" class="Symbol">:</a> <a id="3569" href="Relation.Binary.Structures.html#3174" class="Record">IsPartialOrder</a> <a id="3584" href="Relation.Binary.Structures.html#3480" class="Bound Operator">_≤_</a>
<a id="IsDecPartialOrder._≟_"></a><a id="3592" href="Relation.Binary.Structures.html#3592" class="Field Operator">_≟_</a> <a id="3607" class="Symbol">:</a> <a id="3609" href="Relation.Binary.Definitions.html#4575" class="Function">Decidable</a> <a id="3619" href="Relation.Binary.Structures.html#450" class="Bound Operator">_≈_</a>
<a id="IsDecPartialOrder._≤?_"></a><a id="3627" href="Relation.Binary.Structures.html#3627" class="Field Operator">_≤?_</a> <a id="3642" class="Symbol">:</a> <a id="3644" href="Relation.Binary.Definitions.html#4575" class="Function">Decidable</a> <a id="3654" href="Relation.Binary.Structures.html#3480" class="Bound Operator">_≤_</a>
<a id="3661" class="Keyword">open</a> <a id="3666" href="Relation.Binary.Structures.html#3174" class="Module">IsPartialOrder</a> <a id="3681" href="Relation.Binary.Structures.html#3552" class="Field">isPartialOrder</a> <a id="3696" class="Keyword">public</a>
<a id="3707" class="Keyword">hiding</a> <a id="3714" class="Symbol">(</a><a id="3715" class="Keyword">module</a> <a id="3722" href="Relation.Binary.Structures.html#2402" class="Module">Eq</a><a id="3724" class="Symbol">)</a>
<a id="3729" class="Keyword">module</a> <a id="IsDecPartialOrder.Eq"></a><a id="3736" href="Relation.Binary.Structures.html#3736" class="Module">Eq</a> <a id="3739" class="Keyword">where</a>
<a id="IsDecPartialOrder.Eq.isDecEquivalence"></a><a id="3750" href="Relation.Binary.Structures.html#3750" class="Function">isDecEquivalence</a> <a id="3767" class="Symbol">:</a> <a id="3769" href="Relation.Binary.Structures.html#1824" class="Record">IsDecEquivalence</a>
<a id="3790" href="Relation.Binary.Structures.html#3750" class="Function">isDecEquivalence</a> <a id="3807" class="Symbol">=</a> <a id="3809" class="Keyword">record</a>
<a id="3822" class="Symbol">{</a> <a id="3824" href="Relation.Binary.Structures.html#1887" class="Field">isEquivalence</a> <a id="3838" class="Symbol">=</a> <a id="3840" href="Relation.Binary.Structures.html#2228" class="Function">isEquivalence</a>
<a id="3860" class="Symbol">;</a> <a id="3862" href="Relation.Binary.Structures.html#1921" class="Field Operator">_≟_</a> <a id="3876" class="Symbol">=</a> <a id="3878" href="Relation.Binary.Structures.html#3592" class="Field Operator">_≟_</a>
<a id="3888" class="Symbol">}</a>
<a id="3895" class="Keyword">open</a> <a id="3900" href="Relation.Binary.Structures.html#1824" class="Module">IsDecEquivalence</a> <a id="3917" href="Relation.Binary.Structures.html#3750" class="Function">isDecEquivalence</a> <a id="3934" class="Keyword">public</a>
<a id="3943" class="Keyword">record</a> <a id="IsStrictPartialOrder"></a><a id="3950" href="Relation.Binary.Structures.html#3950" class="Record">IsStrictPartialOrder</a> <a id="3971" class="Symbol">(</a><a id="3972" href="Relation.Binary.Structures.html#3972" class="Bound Operator">_&lt;_</a> <a id="3976" class="Symbol">:</a> <a id="3978" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="3982" href="Relation.Binary.Structures.html#414" class="Bound">A</a> <a id="3984" href="Relation.Binary.Structures.html#817" class="Generalizable">ℓ₂</a><a id="3986" class="Symbol">)</a> <a id="3988" class="Symbol">:</a> <a id="3990" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3994" class="Symbol">(</a><a id="3995" href="Relation.Binary.Structures.html#408" class="Bound">a</a> <a id="3997" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="3999" href="Relation.Binary.Structures.html#410" class="Bound"></a> <a id="4001" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="4003" href="Relation.Binary.Structures.html#3984" class="Bound">ℓ₂</a><a id="4005" class="Symbol">)</a> <a id="4007" class="Keyword">where</a>
<a id="4015" class="Keyword">field</a>
<a id="IsStrictPartialOrder.isEquivalence"></a><a id="4025" href="Relation.Binary.Structures.html#4025" class="Field">isEquivalence</a> <a id="4039" class="Symbol">:</a> <a id="4041" href="Relation.Binary.Structures.html#1522" class="Record">IsEquivalence</a>
<a id="IsStrictPartialOrder.irrefl"></a><a id="4059" href="Relation.Binary.Structures.html#4059" class="Field">irrefl</a> <a id="4073" class="Symbol">:</a> <a id="4075" href="Relation.Binary.Definitions.html#2241" class="Function">Irreflexive</a> <a id="4087" href="Relation.Binary.Structures.html#450" class="Bound Operator">_≈_</a> <a id="4091" href="Relation.Binary.Structures.html#3972" class="Bound Operator">_&lt;_</a>
<a id="IsStrictPartialOrder.trans"></a><a id="4099" href="Relation.Binary.Structures.html#4099" class="Field">trans</a> <a id="4113" class="Symbol">:</a> <a id="4115" href="Relation.Binary.Definitions.html#1866" class="Function">Transitive</a> <a id="4126" href="Relation.Binary.Structures.html#3972" class="Bound Operator">_&lt;_</a>
<a id="IsStrictPartialOrder.&lt;-resp-≈"></a><a id="4134" href="Relation.Binary.Structures.html#4134" class="Field">&lt;-resp-≈</a> <a id="4148" class="Symbol">:</a> <a id="4150" href="Relation.Binary.Structures.html#3972" class="Bound Operator">_&lt;_</a> <a id="4154" href="Relation.Binary.Definitions.html#4077" class="Function Operator">Respects₂</a> <a id="4164" href="Relation.Binary.Structures.html#450" class="Bound Operator">_≈_</a>
<a id="4171" class="Keyword">module</a> <a id="IsStrictPartialOrder.Eq"></a><a id="4178" href="Relation.Binary.Structures.html#4178" class="Module">Eq</a> <a id="4181" class="Symbol">=</a> <a id="4183" href="Relation.Binary.Structures.html#1522" class="Module">IsEquivalence</a> <a id="4197" href="Relation.Binary.Structures.html#4025" class="Field">isEquivalence</a>
<a id="IsStrictPartialOrder.asym"></a><a id="4214" href="Relation.Binary.Structures.html#4214" class="Function">asym</a> <a id="4219" class="Symbol">:</a> <a id="4221" href="Relation.Binary.Definitions.html#2353" class="Function">Asymmetric</a> <a id="4232" href="Relation.Binary.Structures.html#3972" class="Bound Operator">_&lt;_</a>
<a id="4238" href="Relation.Binary.Structures.html#4214" class="Function">asym</a> <a id="4243" class="Symbol">{</a><a id="4244" href="Relation.Binary.Structures.html#4244" class="Bound">x</a><a id="4245" class="Symbol">}</a> <a id="4247" class="Symbol">{</a><a id="4248" href="Relation.Binary.Structures.html#4248" class="Bound">y</a><a id="4249" class="Symbol">}</a> <a id="4251" class="Symbol">=</a> <a id="4253" href="Relation.Binary.Consequences.html#2918" class="Function">trans∧irr⇒asym</a> <a id="4268" href="Relation.Binary.Structures.html#1568" class="Function">Eq.refl</a> <a id="4276" href="Relation.Binary.Structures.html#4099" class="Field">trans</a> <a id="4282" href="Relation.Binary.Structures.html#4059" class="Field">irrefl</a> <a id="4289" class="Symbol">{</a><a id="4290" class="Argument">x</a> <a id="4292" class="Symbol">=</a> <a id="4294" href="Relation.Binary.Structures.html#4244" class="Bound">x</a><a id="4295" class="Symbol">}</a> <a id="4297" class="Symbol">{</a><a id="4298" href="Relation.Binary.Structures.html#4248" class="Bound">y</a><a id="4299" class="Symbol">}</a>
<a id="IsStrictPartialOrder.&lt;-respʳ-≈"></a><a id="4304" href="Relation.Binary.Structures.html#4304" class="Function">&lt;-respʳ-≈</a> <a id="4314" class="Symbol">:</a> <a id="4316" href="Relation.Binary.Structures.html#3972" class="Bound Operator">_&lt;_</a> <a id="4320" href="Relation.Binary.Definitions.html#3749" class="Function Operator">Respectsʳ</a> <a id="4330" href="Relation.Binary.Structures.html#450" class="Bound Operator">_≈_</a>
<a id="4336" href="Relation.Binary.Structures.html#4304" class="Function">&lt;-respʳ-≈</a> <a id="4346" class="Symbol">=</a> <a id="4348" href="Agda.Builtin.Sigma.html#252" class="Field">proj₁</a> <a id="4354" href="Relation.Binary.Structures.html#4134" class="Field">&lt;-resp-≈</a>
<a id="IsStrictPartialOrder.&lt;-respˡ-≈"></a><a id="4366" href="Relation.Binary.Structures.html#4366" class="Function">&lt;-respˡ-≈</a> <a id="4376" class="Symbol">:</a> <a id="4378" href="Relation.Binary.Structures.html#3972" class="Bound Operator">_&lt;_</a> <a id="4382" href="Relation.Binary.Definitions.html#3914" class="Function Operator">Respectsˡ</a> <a id="4392" href="Relation.Binary.Structures.html#450" class="Bound Operator">_≈_</a>
<a id="4398" href="Relation.Binary.Structures.html#4366" class="Function">&lt;-respˡ-≈</a> <a id="4408" class="Symbol">=</a> <a id="4410" href="Agda.Builtin.Sigma.html#264" class="Field">proj₂</a> <a id="4416" href="Relation.Binary.Structures.html#4134" class="Field">&lt;-resp-≈</a>
<a id="IsStrictPartialOrder.asymmetric"></a><a id="4428" href="Relation.Binary.Structures.html#4428" class="Function">asymmetric</a> <a id="4439" class="Symbol">=</a> <a id="4441" href="Relation.Binary.Structures.html#4214" class="Function">asym</a>
<a id="4448" class="Symbol">{-#</a> <a id="4452" class="Keyword">WARNING_ON_USAGE</a> <a id="4469" class="Pragma">asymmetric</a>
<a id="4482" class="String">&quot;Warning: asymmetric was deprecated in v0.16.
Please use asym instead.&quot;</a>
<a id="4558" class="Symbol">#-}</a>
<a id="4564" class="Keyword">record</a> <a id="IsDecStrictPartialOrder"></a><a id="4571" href="Relation.Binary.Structures.html#4571" class="Record">IsDecStrictPartialOrder</a> <a id="4595" class="Symbol">(</a><a id="4596" href="Relation.Binary.Structures.html#4596" class="Bound Operator">_&lt;_</a> <a id="4600" class="Symbol">:</a> <a id="4602" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="4606" href="Relation.Binary.Structures.html#414" class="Bound">A</a> <a id="4608" href="Relation.Binary.Structures.html#817" class="Generalizable">ℓ₂</a><a id="4610" class="Symbol">)</a> <a id="4612" class="Symbol">:</a> <a id="4614" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4618" class="Symbol">(</a><a id="4619" href="Relation.Binary.Structures.html#408" class="Bound">a</a> <a id="4621" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="4623" href="Relation.Binary.Structures.html#410" class="Bound"></a> <a id="4625" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="4627" href="Relation.Binary.Structures.html#4608" class="Bound">ℓ₂</a><a id="4629" class="Symbol">)</a> <a id="4631" class="Keyword">where</a>
<a id="4639" class="Keyword">infix</a> <a id="4645" class="Number">4</a> <a id="4647" href="Relation.Binary.Structures.html#4720" class="Field Operator">_≟_</a> <a id="4651" href="Relation.Binary.Structures.html#4761" class="Field Operator">_&lt;?_</a>
<a id="4658" class="Keyword">field</a>
<a id="IsDecStrictPartialOrder.isStrictPartialOrder"></a><a id="4668" href="Relation.Binary.Structures.html#4668" class="Field">isStrictPartialOrder</a> <a id="4689" class="Symbol">:</a> <a id="4691" href="Relation.Binary.Structures.html#3950" class="Record">IsStrictPartialOrder</a> <a id="4712" href="Relation.Binary.Structures.html#4596" class="Bound Operator">_&lt;_</a>
<a id="IsDecStrictPartialOrder._≟_"></a><a id="4720" href="Relation.Binary.Structures.html#4720" class="Field Operator">_≟_</a> <a id="4741" class="Symbol">:</a> <a id="4743" href="Relation.Binary.Definitions.html#4575" class="Function">Decidable</a> <a id="4753" href="Relation.Binary.Structures.html#450" class="Bound Operator">_≈_</a>
<a id="IsDecStrictPartialOrder._&lt;?_"></a><a id="4761" href="Relation.Binary.Structures.html#4761" class="Field Operator">_&lt;?_</a> <a id="4782" class="Symbol">:</a> <a id="4784" href="Relation.Binary.Definitions.html#4575" class="Function">Decidable</a> <a id="4794" href="Relation.Binary.Structures.html#4596" class="Bound Operator">_&lt;_</a>
<a id="4801" class="Keyword">private</a>
<a id="4813" class="Keyword">module</a> <a id="IsDecStrictPartialOrder.SPO"></a><a id="4820" href="Relation.Binary.Structures.html#4820" class="Module">SPO</a> <a id="4824" class="Symbol">=</a> <a id="4826" href="Relation.Binary.Structures.html#3950" class="Module">IsStrictPartialOrder</a> <a id="4847" href="Relation.Binary.Structures.html#4668" class="Field">isStrictPartialOrder</a>
<a id="4871" class="Keyword">open</a> <a id="4876" href="Relation.Binary.Structures.html#4820" class="Module">SPO</a> <a id="4880" class="Keyword">public</a> <a id="4887" class="Keyword">hiding</a> <a id="4894" class="Symbol">(</a><a id="4895" class="Keyword">module</a> <a id="4902" href="Relation.Binary.Structures.html#4178" class="Module">Eq</a><a id="4904" class="Symbol">)</a>
<a id="4909" class="Keyword">module</a> <a id="IsDecStrictPartialOrder.Eq"></a><a id="4916" href="Relation.Binary.Structures.html#4916" class="Module">Eq</a> <a id="4919" class="Keyword">where</a>
<a id="IsDecStrictPartialOrder.Eq.isDecEquivalence"></a><a id="4930" href="Relation.Binary.Structures.html#4930" class="Function">isDecEquivalence</a> <a id="4947" class="Symbol">:</a> <a id="4949" href="Relation.Binary.Structures.html#1824" class="Record">IsDecEquivalence</a>
<a id="4970" href="Relation.Binary.Structures.html#4930" class="Function">isDecEquivalence</a> <a id="4987" class="Symbol">=</a> <a id="4989" class="Keyword">record</a>
<a id="5002" class="Symbol">{</a> <a id="5004" href="Relation.Binary.Structures.html#1887" class="Field">isEquivalence</a> <a id="5018" class="Symbol">=</a> <a id="5020" href="Relation.Binary.Structures.html#4025" class="Function">SPO.isEquivalence</a>
<a id="5044" class="Symbol">;</a> <a id="5046" href="Relation.Binary.Structures.html#1921" class="Field Operator">_≟_</a> <a id="5060" class="Symbol">=</a> <a id="5062" href="Relation.Binary.Structures.html#4720" class="Field Operator">_≟_</a>
<a id="5072" class="Symbol">}</a>
<a id="5079" class="Keyword">open</a> <a id="5084" href="Relation.Binary.Structures.html#1824" class="Module">IsDecEquivalence</a> <a id="5101" href="Relation.Binary.Structures.html#4930" class="Function">isDecEquivalence</a> <a id="5118" class="Keyword">public</a>
<a id="5127" class="Comment">------------------------------------------------------------------------</a>
<a id="5200" class="Comment">-- Total orders</a>
<a id="5216" class="Comment">------------------------------------------------------------------------</a>
<a id="5290" class="Keyword">record</a> <a id="IsTotalOrder"></a><a id="5297" href="Relation.Binary.Structures.html#5297" class="Record">IsTotalOrder</a> <a id="5310" class="Symbol">(</a><a id="5311" href="Relation.Binary.Structures.html#5311" class="Bound Operator">_≤_</a> <a id="5315" class="Symbol">:</a> <a id="5317" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="5321" href="Relation.Binary.Structures.html#414" class="Bound">A</a> <a id="5323" href="Relation.Binary.Structures.html#817" class="Generalizable">ℓ₂</a><a id="5325" class="Symbol">)</a> <a id="5327" class="Symbol">:</a> <a id="5329" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="5333" class="Symbol">(</a><a id="5334" href="Relation.Binary.Structures.html#408" class="Bound">a</a> <a id="5336" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="5338" href="Relation.Binary.Structures.html#410" class="Bound"></a> <a id="5340" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="5342" href="Relation.Binary.Structures.html#5323" class="Bound">ℓ₂</a><a id="5344" class="Symbol">)</a> <a id="5346" class="Keyword">where</a>
<a id="5354" class="Keyword">field</a>
<a id="IsTotalOrder.isPartialOrder"></a><a id="5364" href="Relation.Binary.Structures.html#5364" class="Field">isPartialOrder</a> <a id="5379" class="Symbol">:</a> <a id="5381" href="Relation.Binary.Structures.html#3174" class="Record">IsPartialOrder</a> <a id="5396" href="Relation.Binary.Structures.html#5311" class="Bound Operator">_≤_</a>
<a id="IsTotalOrder.total"></a><a id="5404" href="Relation.Binary.Structures.html#5404" class="Field">total</a> <a id="5419" class="Symbol">:</a> <a id="5421" href="Relation.Binary.Definitions.html#2584" class="Function">Total</a> <a id="5427" href="Relation.Binary.Structures.html#5311" class="Bound Operator">_≤_</a>
<a id="5434" class="Keyword">open</a> <a id="5439" href="Relation.Binary.Structures.html#3174" class="Module">IsPartialOrder</a> <a id="5454" href="Relation.Binary.Structures.html#5364" class="Field">isPartialOrder</a> <a id="5469" class="Keyword">public</a>
<a id="IsTotalOrder.isTotalPreorder"></a><a id="5479" href="Relation.Binary.Structures.html#5479" class="Function">isTotalPreorder</a> <a id="5495" class="Symbol">:</a> <a id="5497" href="Relation.Binary.Structures.html#2733" class="Record">IsTotalPreorder</a> <a id="5513" href="Relation.Binary.Structures.html#5311" class="Bound Operator">_≤_</a>
<a id="5519" href="Relation.Binary.Structures.html#5479" class="Function">isTotalPreorder</a> <a id="5535" class="Symbol">=</a> <a id="5537" class="Keyword">record</a>
<a id="5548" class="Symbol">{</a> <a id="5550" href="Relation.Binary.Structures.html#2803" class="Field">isPreorder</a> <a id="5561" class="Symbol">=</a> <a id="5563" href="Relation.Binary.Structures.html#3243" class="Function">isPreorder</a>
<a id="5578" class="Symbol">;</a> <a id="5580" href="Relation.Binary.Structures.html#2835" class="Field">total</a> <a id="5591" class="Symbol">=</a> <a id="5593" href="Relation.Binary.Structures.html#5404" class="Field">total</a>
<a id="5603" class="Symbol">}</a>
<a id="5607" class="Keyword">record</a> <a id="IsDecTotalOrder"></a><a id="5614" href="Relation.Binary.Structures.html#5614" class="Record">IsDecTotalOrder</a> <a id="5630" class="Symbol">(</a><a id="5631" href="Relation.Binary.Structures.html#5631" class="Bound Operator">_≤_</a> <a id="5635" class="Symbol">:</a> <a id="5637" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="5641" href="Relation.Binary.Structures.html#414" class="Bound">A</a> <a id="5643" href="Relation.Binary.Structures.html#817" class="Generalizable">ℓ₂</a><a id="5645" class="Symbol">)</a> <a id="5647" class="Symbol">:</a> <a id="5649" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="5653" class="Symbol">(</a><a id="5654" href="Relation.Binary.Structures.html#408" class="Bound">a</a> <a id="5656" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="5658" href="Relation.Binary.Structures.html#410" class="Bound"></a> <a id="5660" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="5662" href="Relation.Binary.Structures.html#5643" class="Bound">ℓ₂</a><a id="5664" class="Symbol">)</a> <a id="5666" class="Keyword">where</a>
<a id="5674" class="Keyword">infix</a> <a id="5680" class="Number">4</a> <a id="5682" href="Relation.Binary.Structures.html#5739" class="Field Operator">_≟_</a> <a id="5686" href="Relation.Binary.Structures.html#5772" class="Field Operator">_≤?_</a>
<a id="5693" class="Keyword">field</a>
<a id="IsDecTotalOrder.isTotalOrder"></a><a id="5703" href="Relation.Binary.Structures.html#5703" class="Field">isTotalOrder</a> <a id="5716" class="Symbol">:</a> <a id="5718" href="Relation.Binary.Structures.html#5297" class="Record">IsTotalOrder</a> <a id="5731" href="Relation.Binary.Structures.html#5631" class="Bound Operator">_≤_</a>
<a id="IsDecTotalOrder._≟_"></a><a id="5739" href="Relation.Binary.Structures.html#5739" class="Field Operator">_≟_</a> <a id="5752" class="Symbol">:</a> <a id="5754" href="Relation.Binary.Definitions.html#4575" class="Function">Decidable</a> <a id="5764" href="Relation.Binary.Structures.html#450" class="Bound Operator">_≈_</a>
<a id="IsDecTotalOrder._≤?_"></a><a id="5772" href="Relation.Binary.Structures.html#5772" class="Field Operator">_≤?_</a> <a id="5785" class="Symbol">:</a> <a id="5787" href="Relation.Binary.Definitions.html#4575" class="Function">Decidable</a> <a id="5797" href="Relation.Binary.Structures.html#5631" class="Bound Operator">_≤_</a>
<a id="5804" class="Keyword">open</a> <a id="5809" href="Relation.Binary.Structures.html#5297" class="Module">IsTotalOrder</a> <a id="5822" href="Relation.Binary.Structures.html#5703" class="Field">isTotalOrder</a> <a id="5835" class="Keyword">public</a>
<a id="5846" class="Keyword">hiding</a> <a id="5853" class="Symbol">(</a><a id="5854" class="Keyword">module</a> <a id="5861" href="Relation.Binary.Structures.html#2402" class="Module">Eq</a><a id="5863" class="Symbol">)</a>
<a id="IsDecTotalOrder.isDecPartialOrder"></a><a id="5868" href="Relation.Binary.Structures.html#5868" class="Function">isDecPartialOrder</a> <a id="5886" class="Symbol">:</a> <a id="5888" href="Relation.Binary.Structures.html#3461" class="Record">IsDecPartialOrder</a> <a id="5906" href="Relation.Binary.Structures.html#5631" class="Bound Operator">_≤_</a>
<a id="5912" href="Relation.Binary.Structures.html#5868" class="Function">isDecPartialOrder</a> <a id="5930" class="Symbol">=</a> <a id="5932" class="Keyword">record</a>
<a id="5943" class="Symbol">{</a> <a id="5945" href="Relation.Binary.Structures.html#3552" class="Field">isPartialOrder</a> <a id="5960" class="Symbol">=</a> <a id="5962" href="Relation.Binary.Structures.html#5364" class="Function">isPartialOrder</a>
<a id="5981" class="Symbol">;</a> <a id="5983" href="Relation.Binary.Structures.html#3592" class="Field Operator">_≟_</a> <a id="5998" class="Symbol">=</a> <a id="6000" href="Relation.Binary.Structures.html#5739" class="Field Operator">_≟_</a>
<a id="6008" class="Symbol">;</a> <a id="6010" href="Relation.Binary.Structures.html#3627" class="Field Operator">_≤?_</a> <a id="6025" class="Symbol">=</a> <a id="6027" href="Relation.Binary.Structures.html#5772" class="Field Operator">_≤?_</a>
<a id="6036" class="Symbol">}</a>
<a id="6041" class="Keyword">module</a> <a id="IsDecTotalOrder.Eq"></a><a id="6048" href="Relation.Binary.Structures.html#6048" class="Module">Eq</a> <a id="6051" class="Keyword">where</a>
<a id="IsDecTotalOrder.Eq.isDecEquivalence"></a><a id="6062" href="Relation.Binary.Structures.html#6062" class="Function">isDecEquivalence</a> <a id="6079" class="Symbol">:</a> <a id="6081" href="Relation.Binary.Structures.html#1824" class="Record">IsDecEquivalence</a>
<a id="6102" href="Relation.Binary.Structures.html#6062" class="Function">isDecEquivalence</a> <a id="6119" class="Symbol">=</a> <a id="6121" class="Keyword">record</a>
<a id="6134" class="Symbol">{</a> <a id="6136" href="Relation.Binary.Structures.html#1887" class="Field">isEquivalence</a> <a id="6150" class="Symbol">=</a> <a id="6152" href="Relation.Binary.Structures.html#2228" class="Function">isEquivalence</a>
<a id="6172" class="Symbol">;</a> <a id="6174" href="Relation.Binary.Structures.html#1921" class="Field Operator">_≟_</a> <a id="6188" class="Symbol">=</a> <a id="6190" href="Relation.Binary.Structures.html#5739" class="Field Operator">_≟_</a>
<a id="6200" class="Symbol">}</a>
<a id="6207" class="Keyword">open</a> <a id="6212" href="Relation.Binary.Structures.html#1824" class="Module">IsDecEquivalence</a> <a id="6229" href="Relation.Binary.Structures.html#6062" class="Function">isDecEquivalence</a> <a id="6246" class="Keyword">public</a>
<a id="6255" class="Comment">-- Note that these orders are decidable. The current implementation</a>
<a id="6323" class="Comment">-- of `Trichotomous` subsumes irreflexivity and asymmetry. Any reasonable</a>
<a id="6397" class="Comment">-- definition capturing these three properties implies decidability</a>
<a id="6465" class="Comment">-- as `Trichotomous` necessarily separates out the equality case.</a>
<a id="6532" class="Keyword">record</a> <a id="IsStrictTotalOrder"></a><a id="6539" href="Relation.Binary.Structures.html#6539" class="Record">IsStrictTotalOrder</a> <a id="6558" class="Symbol">(</a><a id="6559" href="Relation.Binary.Structures.html#6559" class="Bound Operator">_&lt;_</a> <a id="6563" class="Symbol">:</a> <a id="6565" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="6569" href="Relation.Binary.Structures.html#414" class="Bound">A</a> <a id="6571" href="Relation.Binary.Structures.html#817" class="Generalizable">ℓ₂</a><a id="6573" class="Symbol">)</a> <a id="6575" class="Symbol">:</a> <a id="6577" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="6581" class="Symbol">(</a><a id="6582" href="Relation.Binary.Structures.html#408" class="Bound">a</a> <a id="6584" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="6586" href="Relation.Binary.Structures.html#410" class="Bound"></a> <a id="6588" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="6590" href="Relation.Binary.Structures.html#6571" class="Bound">ℓ₂</a><a id="6592" class="Symbol">)</a> <a id="6594" class="Keyword">where</a>
<a id="6602" class="Keyword">field</a>
<a id="IsStrictTotalOrder.isEquivalence"></a><a id="6612" href="Relation.Binary.Structures.html#6612" class="Field">isEquivalence</a> <a id="6626" class="Symbol">:</a> <a id="6628" href="Relation.Binary.Structures.html#1522" class="Record">IsEquivalence</a>
<a id="IsStrictTotalOrder.trans"></a><a id="6646" href="Relation.Binary.Structures.html#6646" class="Field">trans</a> <a id="6660" class="Symbol">:</a> <a id="6662" href="Relation.Binary.Definitions.html#1866" class="Function">Transitive</a> <a id="6673" href="Relation.Binary.Structures.html#6559" class="Bound Operator">_&lt;_</a>
<a id="IsStrictTotalOrder.compare"></a><a id="6681" href="Relation.Binary.Structures.html#6681" class="Field">compare</a> <a id="6695" class="Symbol">:</a> <a id="6697" href="Relation.Binary.Definitions.html#2955" class="Function">Trichotomous</a> <a id="6710" href="Relation.Binary.Structures.html#450" class="Bound Operator">_≈_</a> <a id="6714" href="Relation.Binary.Structures.html#6559" class="Bound Operator">_&lt;_</a>
<a id="6721" class="Keyword">infix</a> <a id="6727" class="Number">4</a> <a id="6729" href="Relation.Binary.Structures.html#6741" class="Function Operator">_≟_</a> <a id="6733" href="Relation.Binary.Structures.html#6789" class="Function Operator">_&lt;?_</a>
<a id="IsStrictTotalOrder._≟_"></a><a id="6741" href="Relation.Binary.Structures.html#6741" class="Function Operator">_≟_</a> <a id="6745" class="Symbol">:</a> <a id="6747" href="Relation.Binary.Definitions.html#4575" class="Function">Decidable</a> <a id="6757" href="Relation.Binary.Structures.html#450" class="Bound Operator">_≈_</a>
<a id="6763" href="Relation.Binary.Structures.html#6741" class="Function Operator">_≟_</a> <a id="6767" class="Symbol">=</a> <a id="6769" href="Relation.Binary.Consequences.html#4002" class="Function">tri⇒dec≈</a> <a id="6778" href="Relation.Binary.Structures.html#6681" class="Field">compare</a>
<a id="IsStrictTotalOrder._&lt;?_"></a><a id="6789" href="Relation.Binary.Structures.html#6789" class="Function Operator">_&lt;?_</a> <a id="6794" class="Symbol">:</a> <a id="6796" href="Relation.Binary.Definitions.html#4575" class="Function">Decidable</a> <a id="6806" href="Relation.Binary.Structures.html#6559" class="Bound Operator">_&lt;_</a>
<a id="6812" href="Relation.Binary.Structures.html#6789" class="Function Operator">_&lt;?_</a> <a id="6817" class="Symbol">=</a> <a id="6819" href="Relation.Binary.Consequences.html#4186" class="Function">tri⇒dec&lt;</a> <a id="6828" href="Relation.Binary.Structures.html#6681" class="Field">compare</a>
<a id="IsStrictTotalOrder.isDecEquivalence"></a><a id="6839" href="Relation.Binary.Structures.html#6839" class="Function">isDecEquivalence</a> <a id="6856" class="Symbol">:</a> <a id="6858" href="Relation.Binary.Structures.html#1824" class="Record">IsDecEquivalence</a>
<a id="6877" href="Relation.Binary.Structures.html#6839" class="Function">isDecEquivalence</a> <a id="6894" class="Symbol">=</a> <a id="6896" class="Keyword">record</a>
<a id="6907" class="Symbol">{</a> <a id="6909" href="Relation.Binary.Structures.html#1887" class="Field">isEquivalence</a> <a id="6923" class="Symbol">=</a> <a id="6925" href="Relation.Binary.Structures.html#6612" class="Field">isEquivalence</a>
<a id="6943" class="Symbol">;</a> <a id="6945" href="Relation.Binary.Structures.html#1921" class="Field Operator">_≟_</a> <a id="6959" class="Symbol">=</a> <a id="6961" href="Relation.Binary.Structures.html#6741" class="Function Operator">_≟_</a>
<a id="6969" class="Symbol">}</a>
<a id="6974" class="Keyword">module</a> <a id="IsStrictTotalOrder.Eq"></a><a id="6981" href="Relation.Binary.Structures.html#6981" class="Module">Eq</a> <a id="6984" class="Symbol">=</a> <a id="6986" href="Relation.Binary.Structures.html#1824" class="Module">IsDecEquivalence</a> <a id="7003" href="Relation.Binary.Structures.html#6839" class="Function">isDecEquivalence</a>
<a id="IsStrictTotalOrder.isStrictPartialOrder"></a><a id="7023" href="Relation.Binary.Structures.html#7023" class="Function">isStrictPartialOrder</a> <a id="7044" class="Symbol">:</a> <a id="7046" href="Relation.Binary.Structures.html#3950" class="Record">IsStrictPartialOrder</a> <a id="7067" href="Relation.Binary.Structures.html#6559" class="Bound Operator">_&lt;_</a>
<a id="7073" href="Relation.Binary.Structures.html#7023" class="Function">isStrictPartialOrder</a> <a id="7094" class="Symbol">=</a> <a id="7096" class="Keyword">record</a>
<a id="7107" class="Symbol">{</a> <a id="7109" href="Relation.Binary.Structures.html#4025" class="Field">isEquivalence</a> <a id="7123" class="Symbol">=</a> <a id="7125" href="Relation.Binary.Structures.html#6612" class="Field">isEquivalence</a>
<a id="7143" class="Symbol">;</a> <a id="7145" href="Relation.Binary.Structures.html#4059" class="Field">irrefl</a> <a id="7159" class="Symbol">=</a> <a id="7161" href="Relation.Binary.Consequences.html#3790" class="Function">tri⇒irr</a> <a id="7169" href="Relation.Binary.Structures.html#6681" class="Field">compare</a>
<a id="7181" class="Symbol">;</a> <a id="7183" href="Relation.Binary.Structures.html#4099" class="Field">trans</a> <a id="7197" class="Symbol">=</a> <a id="7199" href="Relation.Binary.Structures.html#6646" class="Field">trans</a>
<a id="7209" class="Symbol">;</a> <a id="7211" href="Relation.Binary.Structures.html#4134" class="Field">&lt;-resp-≈</a> <a id="7225" class="Symbol">=</a> <a id="7227" href="Relation.Binary.Consequences.html#5110" class="Function">trans∧tri⇒resp</a> <a id="7242" href="Relation.Binary.Structures.html#1594" class="Function">Eq.sym</a> <a id="7249" href="Relation.Binary.Structures.html#1620" class="Function">Eq.trans</a> <a id="7258" href="Relation.Binary.Structures.html#6646" class="Field">trans</a> <a id="7264" href="Relation.Binary.Structures.html#6681" class="Field">compare</a>
<a id="7276" class="Symbol">}</a>
<a id="IsStrictTotalOrder.isDecStrictPartialOrder"></a><a id="7281" href="Relation.Binary.Structures.html#7281" class="Function">isDecStrictPartialOrder</a> <a id="7305" class="Symbol">:</a> <a id="7307" href="Relation.Binary.Structures.html#4571" class="Record">IsDecStrictPartialOrder</a> <a id="7331" href="Relation.Binary.Structures.html#6559" class="Bound Operator">_&lt;_</a>
<a id="7337" href="Relation.Binary.Structures.html#7281" class="Function">isDecStrictPartialOrder</a> <a id="7361" class="Symbol">=</a> <a id="7363" class="Keyword">record</a>
<a id="7374" class="Symbol">{</a> <a id="7376" href="Relation.Binary.Structures.html#4668" class="Field">isStrictPartialOrder</a> <a id="7397" class="Symbol">=</a> <a id="7399" href="Relation.Binary.Structures.html#7023" class="Function">isStrictPartialOrder</a>
<a id="7424" class="Symbol">;</a> <a id="7426" href="Relation.Binary.Structures.html#4720" class="Field Operator">_≟_</a> <a id="7447" class="Symbol">=</a> <a id="7449" href="Relation.Binary.Structures.html#6741" class="Function Operator">_≟_</a>
<a id="7457" class="Symbol">;</a> <a id="7459" href="Relation.Binary.Structures.html#4761" class="Field Operator">_&lt;?_</a> <a id="7480" class="Symbol">=</a> <a id="7482" href="Relation.Binary.Structures.html#6789" class="Function Operator">_&lt;?_</a>
<a id="7491" class="Symbol">}</a>
<a id="7496" class="Keyword">open</a> <a id="7501" href="Relation.Binary.Structures.html#3950" class="Module">IsStrictPartialOrder</a> <a id="7522" href="Relation.Binary.Structures.html#7023" class="Function">isStrictPartialOrder</a> <a id="7543" class="Keyword">public</a>
<a id="7554" class="Keyword">using</a> <a id="7560" class="Symbol">(</a><a id="7561" href="Relation.Binary.Structures.html#4059" class="Field">irrefl</a><a id="7567" class="Symbol">;</a> <a id="7569" href="Relation.Binary.Structures.html#4214" class="Function">asym</a><a id="7573" class="Symbol">;</a> <a id="7575" href="Relation.Binary.Structures.html#4304" class="Function">&lt;-respʳ-≈</a><a id="7584" class="Symbol">;</a> <a id="7586" href="Relation.Binary.Structures.html#4366" class="Function">&lt;-respˡ-≈</a><a id="7595" class="Symbol">;</a> <a id="7597" href="Relation.Binary.Structures.html#4134" class="Field">&lt;-resp-≈</a><a id="7605" class="Symbol">)</a>
</pre></body></html>

19
misc/Relation.Binary.html Normal file
View File

@ -0,0 +1,19 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Relation.Binary</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Properties of homogeneous binary relations</a>
<a id="152" class="Comment">------------------------------------------------------------------------</a>
<a id="226" class="Symbol">{-#</a> <a id="230" class="Keyword">OPTIONS</a> <a id="238" class="Pragma">--without-K</a> <a id="250" class="Pragma">--safe</a> <a id="257" class="Symbol">#-}</a>
<a id="262" class="Keyword">module</a> <a id="269" href="Relation.Binary.html" class="Module">Relation.Binary</a> <a id="285" class="Keyword">where</a>
<a id="292" class="Comment">------------------------------------------------------------------------</a>
<a id="365" class="Comment">-- Re-export various components of the binary relation hierarchy</a>
<a id="431" class="Keyword">open</a> <a id="436" class="Keyword">import</a> <a id="443" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a> <a id="464" class="Keyword">public</a>
<a id="471" class="Keyword">open</a> <a id="476" class="Keyword">import</a> <a id="483" href="Relation.Binary.Definitions.html" class="Module">Relation.Binary.Definitions</a> <a id="511" class="Keyword">public</a>
<a id="518" class="Keyword">open</a> <a id="523" class="Keyword">import</a> <a id="530" href="Relation.Binary.Structures.html" class="Module">Relation.Binary.Structures</a> <a id="557" class="Keyword">public</a>
<a id="564" class="Keyword">open</a> <a id="569" class="Keyword">import</a> <a id="576" href="Relation.Binary.Bundles.html" class="Module">Relation.Binary.Bundles</a> <a id="600" class="Keyword">public</a>
</pre></body></html>

View File

@ -0,0 +1,132 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Relation.Nullary.Decidable.Core</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Operations on and properties of decidable relations</a>
<a id="161" class="Comment">--</a>
<a id="164" class="Comment">-- This file contains some core definitions which are re-exported by</a>
<a id="233" class="Comment">-- Relation.Nullary.Decidable</a>
<a id="263" class="Comment">------------------------------------------------------------------------</a>
<a id="337" class="Symbol">{-#</a> <a id="341" class="Keyword">OPTIONS</a> <a id="349" class="Pragma">--without-K</a> <a id="361" class="Pragma">--safe</a> <a id="368" class="Symbol">#-}</a>
<a id="373" class="Keyword">module</a> <a id="380" href="Relation.Nullary.Decidable.Core.html" class="Module">Relation.Nullary.Decidable.Core</a> <a id="412" class="Keyword">where</a>
<a id="419" class="Keyword">open</a> <a id="424" class="Keyword">import</a> <a id="431" href="Level.html" class="Module">Level</a> <a id="437" class="Keyword">using</a> <a id="443" class="Symbol">(</a><a id="444" href="Agda.Primitive.html#597" class="Postulate">Level</a><a id="449" class="Symbol">;</a> <a id="451" href="Level.html#400" class="Record">Lift</a><a id="455" class="Symbol">)</a>
<a id="457" class="Keyword">open</a> <a id="462" class="Keyword">import</a> <a id="469" href="Data.Bool.Base.html" class="Module">Data.Bool.Base</a> <a id="484" class="Keyword">using</a> <a id="490" class="Symbol">(</a><a id="491" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a><a id="495" class="Symbol">;</a> <a id="497" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a><a id="502" class="Symbol">;</a> <a id="504" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a><a id="508" class="Symbol">;</a> <a id="510" href="Data.Bool.Base.html#932" class="Function">not</a><a id="513" class="Symbol">;</a> <a id="515" href="Data.Bool.Base.html#1451" class="Function">T</a><a id="516" class="Symbol">)</a>
<a id="518" class="Keyword">open</a> <a id="523" class="Keyword">import</a> <a id="530" href="Data.Unit.Base.html" class="Module">Data.Unit.Base</a> <a id="545" class="Keyword">using</a> <a id="551" class="Symbol">(</a><a id="552" href="Agda.Builtin.Unit.html#164" class="Record"></a><a id="553" class="Symbol">)</a>
<a id="555" class="Keyword">open</a> <a id="560" class="Keyword">import</a> <a id="567" href="Data.Empty.html" class="Module">Data.Empty</a>
<a id="578" class="Keyword">open</a> <a id="583" class="Keyword">import</a> <a id="590" href="Data.Product.html" class="Module">Data.Product</a>
<a id="603" class="Keyword">open</a> <a id="608" class="Keyword">import</a> <a id="615" href="Function.Base.html" class="Module">Function.Base</a>
<a id="630" class="Keyword">open</a> <a id="635" class="Keyword">import</a> <a id="642" href="Agda.Builtin.Equality.html" class="Module">Agda.Builtin.Equality</a>
<a id="664" class="Keyword">open</a> <a id="669" class="Keyword">import</a> <a id="676" href="Relation.Nullary.Reflects.html" class="Module">Relation.Nullary.Reflects</a>
<a id="702" class="Keyword">open</a> <a id="707" class="Keyword">import</a> <a id="714" href="Relation.Nullary.html" class="Module">Relation.Nullary</a>
<a id="732" class="Keyword">private</a>
<a id="742" class="Keyword">variable</a>
<a id="755" href="Relation.Nullary.Decidable.Core.html#755" class="Generalizable">p</a> <a id="757" href="Relation.Nullary.Decidable.Core.html#757" class="Generalizable">q</a> <a id="759" class="Symbol">:</a> <a id="761" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="771" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a> <a id="773" class="Symbol">:</a> <a id="775" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="779" href="Relation.Nullary.Decidable.Core.html#755" class="Generalizable">p</a>
<a id="785" href="Relation.Nullary.Decidable.Core.html#785" class="Generalizable">Q</a> <a id="787" class="Symbol">:</a> <a id="789" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="793" href="Relation.Nullary.Decidable.Core.html#757" class="Generalizable">q</a>
<a id="796" class="Comment">-- `isYes` is a stricter version of `does`. The lack of computation means that</a>
<a id="875" class="Comment">-- we can recover the proposition `P` from `isYes P?` by unification. This is</a>
<a id="953" class="Comment">-- useful when we are using the decision procedure for proof automation.</a>
<a id="isYes"></a><a id="1027" href="Relation.Nullary.Decidable.Core.html#1027" class="Function">isYes</a> <a id="1033" class="Symbol">:</a> <a id="1035" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="1039" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a> <a id="1041" class="Symbol"></a> <a id="1043" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a>
<a id="1048" href="Relation.Nullary.Decidable.Core.html#1027" class="Function">isYes</a> <a id="1054" class="Symbol">(</a> <a id="1056" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="1061" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="1069" class="Symbol">_)</a> <a id="1072" class="Symbol">=</a> <a id="1074" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a>
<a id="1079" href="Relation.Nullary.Decidable.Core.html#1027" class="Function">isYes</a> <a id="1085" class="Symbol">(</a><a id="1086" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="1092" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="1100" class="Symbol">_)</a> <a id="1103" class="Symbol">=</a> <a id="1105" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a>
<a id="isYes≗does"></a><a id="1112" href="Relation.Nullary.Decidable.Core.html#1112" class="Function">isYes≗does</a> <a id="1123" class="Symbol">:</a> <a id="1125" class="Symbol">(</a><a id="1126" href="Relation.Nullary.Decidable.Core.html#1126" class="Bound">P?</a> <a id="1129" class="Symbol">:</a> <a id="1131" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="1135" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a><a id="1136" class="Symbol">)</a> <a id="1138" class="Symbol"></a> <a id="1140" href="Relation.Nullary.Decidable.Core.html#1027" class="Function">isYes</a> <a id="1146" href="Relation.Nullary.Decidable.Core.html#1126" class="Bound">P?</a> <a id="1149" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1151" href="Relation.Nullary.html#1581" class="Field">does</a> <a id="1156" href="Relation.Nullary.Decidable.Core.html#1126" class="Bound">P?</a>
<a id="1159" href="Relation.Nullary.Decidable.Core.html#1112" class="Function">isYes≗does</a> <a id="1170" class="Symbol">(</a> <a id="1172" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="1177" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="1185" class="Symbol">_)</a> <a id="1188" class="Symbol">=</a> <a id="1190" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="1195" href="Relation.Nullary.Decidable.Core.html#1112" class="Function">isYes≗does</a> <a id="1206" class="Symbol">(</a><a id="1207" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="1213" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="1221" class="Symbol">_)</a> <a id="1224" class="Symbol">=</a> <a id="1226" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="1232" class="Comment">-- The traditional name for isYes is ⌊_⌋, indicating the stripping of evidence.</a>
<a id="⌊_⌋"></a><a id="1312" href="Relation.Nullary.Decidable.Core.html#1312" class="Function Operator">⌊_⌋</a> <a id="1316" class="Symbol">=</a> <a id="1318" href="Relation.Nullary.Decidable.Core.html#1027" class="Function">isYes</a>
<a id="isNo"></a><a id="1325" href="Relation.Nullary.Decidable.Core.html#1325" class="Function">isNo</a> <a id="1330" class="Symbol">:</a> <a id="1332" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="1336" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a> <a id="1338" class="Symbol"></a> <a id="1340" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a>
<a id="1345" href="Relation.Nullary.Decidable.Core.html#1325" class="Function">isNo</a> <a id="1350" class="Symbol">=</a> <a id="1352" href="Data.Bool.Base.html#932" class="Function">not</a> <a id="1356" href="Function.Base.html#1031" class="Function Operator"></a> <a id="1358" href="Relation.Nullary.Decidable.Core.html#1027" class="Function">isYes</a>
<a id="True"></a><a id="1365" href="Relation.Nullary.Decidable.Core.html#1365" class="Function">True</a> <a id="1370" class="Symbol">:</a> <a id="1372" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="1376" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a> <a id="1378" class="Symbol"></a> <a id="1380" href="Agda.Primitive.html#326" class="Primitive">Set</a>
<a id="1384" href="Relation.Nullary.Decidable.Core.html#1365" class="Function">True</a> <a id="1389" href="Relation.Nullary.Decidable.Core.html#1389" class="Bound">Q</a> <a id="1391" class="Symbol">=</a> <a id="1393" href="Data.Bool.Base.html#1451" class="Function">T</a> <a id="1395" class="Symbol">(</a><a id="1396" href="Relation.Nullary.Decidable.Core.html#1027" class="Function">isYes</a> <a id="1402" href="Relation.Nullary.Decidable.Core.html#1389" class="Bound">Q</a><a id="1403" class="Symbol">)</a>
<a id="False"></a><a id="1406" href="Relation.Nullary.Decidable.Core.html#1406" class="Function">False</a> <a id="1412" class="Symbol">:</a> <a id="1414" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="1418" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a> <a id="1420" class="Symbol"></a> <a id="1422" href="Agda.Primitive.html#326" class="Primitive">Set</a>
<a id="1426" href="Relation.Nullary.Decidable.Core.html#1406" class="Function">False</a> <a id="1432" href="Relation.Nullary.Decidable.Core.html#1432" class="Bound">Q</a> <a id="1434" class="Symbol">=</a> <a id="1436" href="Data.Bool.Base.html#1451" class="Function">T</a> <a id="1438" class="Symbol">(</a><a id="1439" href="Relation.Nullary.Decidable.Core.html#1325" class="Function">isNo</a> <a id="1444" href="Relation.Nullary.Decidable.Core.html#1432" class="Bound">Q</a><a id="1445" class="Symbol">)</a>
<a id="1448" class="Comment">-- Gives a witness to the &quot;truth&quot;.</a>
<a id="toWitness"></a><a id="1484" href="Relation.Nullary.Decidable.Core.html#1484" class="Function">toWitness</a> <a id="1494" class="Symbol">:</a> <a id="1496" class="Symbol">{</a><a id="1497" href="Relation.Nullary.Decidable.Core.html#1497" class="Bound">Q</a> <a id="1499" class="Symbol">:</a> <a id="1501" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="1505" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a><a id="1506" class="Symbol">}</a> <a id="1508" class="Symbol"></a> <a id="1510" href="Relation.Nullary.Decidable.Core.html#1365" class="Function">True</a> <a id="1515" href="Relation.Nullary.Decidable.Core.html#1497" class="Bound">Q</a> <a id="1517" class="Symbol"></a> <a id="1519" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a>
<a id="1521" href="Relation.Nullary.Decidable.Core.html#1484" class="Function">toWitness</a> <a id="1531" class="Symbol">{</a><a id="1532" class="Argument">Q</a> <a id="1534" class="Symbol">=</a> <a id="1536" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="1542" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="1550" href="Relation.Nullary.Decidable.Core.html#1550" class="Bound">[p]</a><a id="1553" class="Symbol">}</a> <a id="1555" class="Symbol">_</a> <a id="1558" class="Symbol">=</a> <a id="1560" href="Relation.Nullary.Reflects.html#1031" class="Function">invert</a> <a id="1567" href="Relation.Nullary.Decidable.Core.html#1550" class="Bound">[p]</a>
<a id="1571" href="Relation.Nullary.Decidable.Core.html#1484" class="Function">toWitness</a> <a id="1581" class="Symbol">{</a><a id="1582" class="Argument">Q</a> <a id="1584" class="Symbol">=</a> <a id="1586" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="1592" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="1601" class="Symbol">_</a> <a id="1603" class="Symbol">}</a> <a id="1605" class="Symbol">()</a>
<a id="1609" class="Comment">-- Establishes a &quot;truth&quot;, given a witness.</a>
<a id="fromWitness"></a><a id="1653" href="Relation.Nullary.Decidable.Core.html#1653" class="Function">fromWitness</a> <a id="1665" class="Symbol">:</a> <a id="1667" class="Symbol">{</a><a id="1668" href="Relation.Nullary.Decidable.Core.html#1668" class="Bound">Q</a> <a id="1670" class="Symbol">:</a> <a id="1672" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="1676" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a><a id="1677" class="Symbol">}</a> <a id="1679" class="Symbol"></a> <a id="1681" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a> <a id="1683" class="Symbol"></a> <a id="1685" href="Relation.Nullary.Decidable.Core.html#1365" class="Function">True</a> <a id="1690" href="Relation.Nullary.Decidable.Core.html#1668" class="Bound">Q</a>
<a id="1692" href="Relation.Nullary.Decidable.Core.html#1653" class="Function">fromWitness</a> <a id="1704" class="Symbol">{</a><a id="1705" class="Argument">Q</a> <a id="1707" class="Symbol">=</a> <a id="1709" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="1715" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="1725" class="Symbol">_</a> <a id="1727" class="Symbol">}</a> <a id="1729" class="Symbol">=</a> <a id="1731" href="Function.Base.html#636" class="Function">const</a> <a id="1737" class="Symbol">_</a>
<a id="1739" href="Relation.Nullary.Decidable.Core.html#1653" class="Function">fromWitness</a> <a id="1751" class="Symbol">{</a><a id="1752" class="Argument">Q</a> <a id="1754" class="Symbol">=</a> <a id="1756" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="1762" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="1770" href="Relation.Nullary.Decidable.Core.html#1770" class="Bound">[¬p]</a><a id="1774" class="Symbol">}</a> <a id="1776" class="Symbol">=</a> <a id="1778" href="Relation.Nullary.Reflects.html#1031" class="Function">invert</a> <a id="1785" href="Relation.Nullary.Decidable.Core.html#1770" class="Bound">[¬p]</a>
<a id="1791" class="Comment">-- Variants for False.</a>
<a id="toWitnessFalse"></a><a id="1815" href="Relation.Nullary.Decidable.Core.html#1815" class="Function">toWitnessFalse</a> <a id="1830" class="Symbol">:</a> <a id="1832" class="Symbol">{</a><a id="1833" href="Relation.Nullary.Decidable.Core.html#1833" class="Bound">Q</a> <a id="1835" class="Symbol">:</a> <a id="1837" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="1841" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a><a id="1842" class="Symbol">}</a> <a id="1844" class="Symbol"></a> <a id="1846" href="Relation.Nullary.Decidable.Core.html#1406" class="Function">False</a> <a id="1852" href="Relation.Nullary.Decidable.Core.html#1833" class="Bound">Q</a> <a id="1854" class="Symbol"></a> <a id="1856" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="1858" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a>
<a id="1860" href="Relation.Nullary.Decidable.Core.html#1815" class="Function">toWitnessFalse</a> <a id="1875" class="Symbol">{</a><a id="1876" class="Argument">Q</a> <a id="1878" class="Symbol">=</a> <a id="1880" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="1886" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="1896" class="Symbol">_</a> <a id="1898" class="Symbol">}</a> <a id="1900" class="Symbol">()</a>
<a id="1903" href="Relation.Nullary.Decidable.Core.html#1815" class="Function">toWitnessFalse</a> <a id="1918" class="Symbol">{</a><a id="1919" class="Argument">Q</a> <a id="1921" class="Symbol">=</a> <a id="1923" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="1929" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="1937" href="Relation.Nullary.Decidable.Core.html#1937" class="Bound">[¬p]</a><a id="1941" class="Symbol">}</a> <a id="1943" class="Symbol">_</a> <a id="1946" class="Symbol">=</a> <a id="1948" href="Relation.Nullary.Reflects.html#1031" class="Function">invert</a> <a id="1955" href="Relation.Nullary.Decidable.Core.html#1937" class="Bound">[¬p]</a>
<a id="fromWitnessFalse"></a><a id="1961" href="Relation.Nullary.Decidable.Core.html#1961" class="Function">fromWitnessFalse</a> <a id="1978" class="Symbol">:</a> <a id="1980" class="Symbol">{</a><a id="1981" href="Relation.Nullary.Decidable.Core.html#1981" class="Bound">Q</a> <a id="1983" class="Symbol">:</a> <a id="1985" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="1989" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a><a id="1990" class="Symbol">}</a> <a id="1992" class="Symbol"></a> <a id="1994" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="1996" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a> <a id="1998" class="Symbol"></a> <a id="2000" href="Relation.Nullary.Decidable.Core.html#1406" class="Function">False</a> <a id="2006" href="Relation.Nullary.Decidable.Core.html#1981" class="Bound">Q</a>
<a id="2008" href="Relation.Nullary.Decidable.Core.html#1961" class="Function">fromWitnessFalse</a> <a id="2025" class="Symbol">{</a><a id="2026" class="Argument">Q</a> <a id="2028" class="Symbol">=</a> <a id="2030" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="2036" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="2044" href="Relation.Nullary.Decidable.Core.html#2044" class="Bound">[p]</a><a id="2047" class="Symbol">}</a> <a id="2049" class="Symbol">=</a> <a id="2051" href="Function.Base.html#1554" class="Function">flip</a> <a id="2056" href="Function.Base.html#1919" class="Function Operator">_$_</a> <a id="2060" class="Symbol">(</a><a id="2061" href="Relation.Nullary.Reflects.html#1031" class="Function">invert</a> <a id="2068" href="Relation.Nullary.Decidable.Core.html#2044" class="Bound">[p]</a><a id="2071" class="Symbol">)</a>
<a id="2073" href="Relation.Nullary.Decidable.Core.html#1961" class="Function">fromWitnessFalse</a> <a id="2090" class="Symbol">{</a><a id="2091" class="Argument">Q</a> <a id="2093" class="Symbol">=</a> <a id="2095" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="2101" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="2110" class="Symbol">_</a> <a id="2112" class="Symbol">}</a> <a id="2114" class="Symbol">=</a> <a id="2116" href="Function.Base.html#636" class="Function">const</a> <a id="2122" class="Symbol">_</a>
<a id="2125" class="Comment">-- If a decision procedure returns &quot;yes&quot;, then we can extract the</a>
<a id="2191" class="Comment">-- proof using from-yes.</a>
<a id="2217" class="Keyword">module</a> <a id="2224" href="Relation.Nullary.Decidable.Core.html#2224" class="Module">_</a> <a id="2226" class="Symbol">{</a><a id="2227" href="Relation.Nullary.Decidable.Core.html#2227" class="Bound">p</a><a id="2228" class="Symbol">}</a> <a id="2230" class="Symbol">{</a><a id="2231" href="Relation.Nullary.Decidable.Core.html#2231" class="Bound">P</a> <a id="2233" class="Symbol">:</a> <a id="2235" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2239" href="Relation.Nullary.Decidable.Core.html#2227" class="Bound">p</a><a id="2240" class="Symbol">}</a> <a id="2242" class="Keyword">where</a>
<a id="2251" href="Relation.Nullary.Decidable.Core.html#2251" class="Function">From-yes</a> <a id="2260" class="Symbol">:</a> <a id="2262" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="2266" href="Relation.Nullary.Decidable.Core.html#2231" class="Bound">P</a> <a id="2268" class="Symbol"></a> <a id="2270" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2274" href="Relation.Nullary.Decidable.Core.html#2227" class="Bound">p</a>
<a id="2278" href="Relation.Nullary.Decidable.Core.html#2251" class="Function">From-yes</a> <a id="2287" class="Symbol">(</a><a id="2288" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="2294" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="2302" class="Symbol">_)</a> <a id="2305" class="Symbol">=</a> <a id="2307" href="Relation.Nullary.Decidable.Core.html#2231" class="Bound">P</a>
<a id="2311" href="Relation.Nullary.Decidable.Core.html#2251" class="Function">From-yes</a> <a id="2320" class="Symbol">(</a><a id="2321" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="2327" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="2335" class="Symbol">_)</a> <a id="2338" class="Symbol">=</a> <a id="2340" href="Level.html#400" class="Record">Lift</a> <a id="2345" href="Relation.Nullary.Decidable.Core.html#2227" class="Bound">p</a> <a id="2347" href="Agda.Builtin.Unit.html#164" class="Record"></a>
<a id="2352" href="Relation.Nullary.Decidable.Core.html#2352" class="Function">from-yes</a> <a id="2361" class="Symbol">:</a> <a id="2363" class="Symbol">(</a><a id="2364" href="Relation.Nullary.Decidable.Core.html#2364" class="Bound">p</a> <a id="2366" class="Symbol">:</a> <a id="2368" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="2372" href="Relation.Nullary.Decidable.Core.html#2231" class="Bound">P</a><a id="2373" class="Symbol">)</a> <a id="2375" class="Symbol"></a> <a id="2377" href="Relation.Nullary.Decidable.Core.html#2251" class="Function">From-yes</a> <a id="2386" href="Relation.Nullary.Decidable.Core.html#2364" class="Bound">p</a>
<a id="2390" href="Relation.Nullary.Decidable.Core.html#2352" class="Function">from-yes</a> <a id="2399" class="Symbol">(</a><a id="2400" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="2406" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="2414" href="Relation.Nullary.Decidable.Core.html#2414" class="Bound">[p]</a><a id="2417" class="Symbol">)</a> <a id="2419" class="Symbol">=</a> <a id="2421" href="Relation.Nullary.Reflects.html#1031" class="Function">invert</a> <a id="2428" href="Relation.Nullary.Decidable.Core.html#2414" class="Bound">[p]</a>
<a id="2434" href="Relation.Nullary.Decidable.Core.html#2352" class="Function">from-yes</a> <a id="2443" class="Symbol">(</a><a id="2444" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="2450" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="2458" class="Symbol">_</a> <a id="2460" class="Symbol">)</a> <a id="2462" class="Symbol">=</a> <a id="2464" class="Symbol">_</a>
<a id="2467" class="Comment">-- If a decision procedure returns &quot;no&quot;, then we can extract the proof</a>
<a id="2538" class="Comment">-- using from-no.</a>
<a id="2559" href="Relation.Nullary.Decidable.Core.html#2559" class="Function">From-no</a> <a id="2567" class="Symbol">:</a> <a id="2569" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="2573" href="Relation.Nullary.Decidable.Core.html#2231" class="Bound">P</a> <a id="2575" class="Symbol"></a> <a id="2577" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2581" href="Relation.Nullary.Decidable.Core.html#2227" class="Bound">p</a>
<a id="2585" href="Relation.Nullary.Decidable.Core.html#2559" class="Function">From-no</a> <a id="2593" class="Symbol">(</a><a id="2594" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="2600" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="2608" class="Symbol">_)</a> <a id="2611" class="Symbol">=</a> <a id="2613" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="2615" href="Relation.Nullary.Decidable.Core.html#2231" class="Bound">P</a>
<a id="2619" href="Relation.Nullary.Decidable.Core.html#2559" class="Function">From-no</a> <a id="2627" class="Symbol">(</a><a id="2628" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="2634" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="2642" class="Symbol">_)</a> <a id="2645" class="Symbol">=</a> <a id="2647" href="Level.html#400" class="Record">Lift</a> <a id="2652" href="Relation.Nullary.Decidable.Core.html#2227" class="Bound">p</a> <a id="2654" href="Agda.Builtin.Unit.html#164" class="Record"></a>
<a id="2659" href="Relation.Nullary.Decidable.Core.html#2659" class="Function">from-no</a> <a id="2667" class="Symbol">:</a> <a id="2669" class="Symbol">(</a><a id="2670" href="Relation.Nullary.Decidable.Core.html#2670" class="Bound">p</a> <a id="2672" class="Symbol">:</a> <a id="2674" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="2678" href="Relation.Nullary.Decidable.Core.html#2231" class="Bound">P</a><a id="2679" class="Symbol">)</a> <a id="2681" class="Symbol"></a> <a id="2683" href="Relation.Nullary.Decidable.Core.html#2559" class="Function">From-no</a> <a id="2691" href="Relation.Nullary.Decidable.Core.html#2670" class="Bound">p</a>
<a id="2695" href="Relation.Nullary.Decidable.Core.html#2659" class="Function">from-no</a> <a id="2703" class="Symbol">(</a><a id="2704" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="2710" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="2718" href="Relation.Nullary.Decidable.Core.html#2718" class="Bound">[¬p]</a><a id="2722" class="Symbol">)</a> <a id="2724" class="Symbol">=</a> <a id="2726" href="Relation.Nullary.Reflects.html#1031" class="Function">invert</a> <a id="2733" href="Relation.Nullary.Decidable.Core.html#2718" class="Bound">[¬p]</a>
<a id="2740" href="Relation.Nullary.Decidable.Core.html#2659" class="Function">from-no</a> <a id="2748" class="Symbol">(</a><a id="2749" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="2755" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="2765" class="Symbol">_</a> <a id="2767" class="Symbol">)</a> <a id="2769" class="Symbol">=</a> <a id="2771" class="Symbol">_</a>
<a id="2774" class="Comment">------------------------------------------------------------------------</a>
<a id="2847" class="Comment">-- Result of decidability</a>
<a id="dec-true"></a><a id="2874" href="Relation.Nullary.Decidable.Core.html#2874" class="Function">dec-true</a> <a id="2883" class="Symbol">:</a> <a id="2885" class="Symbol">(</a><a id="2886" href="Relation.Nullary.Decidable.Core.html#2886" class="Bound">p?</a> <a id="2889" class="Symbol">:</a> <a id="2891" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="2895" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a><a id="2896" class="Symbol">)</a> <a id="2898" class="Symbol"></a> <a id="2900" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a> <a id="2902" class="Symbol"></a> <a id="2904" href="Relation.Nullary.html#1581" class="Field">does</a> <a id="2909" href="Relation.Nullary.Decidable.Core.html#2886" class="Bound">p?</a> <a id="2912" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2914" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a>
<a id="2919" href="Relation.Nullary.Decidable.Core.html#2874" class="Function">dec-true</a> <a id="2928" class="Symbol">(</a><a id="2929" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="2935" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="2945" class="Symbol">_</a> <a id="2947" class="Symbol">)</a> <a id="2949" href="Relation.Nullary.Decidable.Core.html#2949" class="Bound">p</a> <a id="2951" class="Symbol">=</a> <a id="2953" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="2958" href="Relation.Nullary.Decidable.Core.html#2874" class="Function">dec-true</a> <a id="2967" class="Symbol">(</a><a id="2968" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="2974" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="2982" href="Relation.Nullary.Decidable.Core.html#2982" class="Bound">[¬p]</a><a id="2986" class="Symbol">)</a> <a id="2988" href="Relation.Nullary.Decidable.Core.html#2988" class="Bound">p</a> <a id="2990" class="Symbol">=</a> <a id="2992" href="Data.Empty.html#628" class="Function">⊥-elim</a> <a id="2999" class="Symbol">(</a><a id="3000" href="Relation.Nullary.Reflects.html#1031" class="Function">invert</a> <a id="3007" href="Relation.Nullary.Decidable.Core.html#2982" class="Bound">[¬p]</a> <a id="3012" href="Relation.Nullary.Decidable.Core.html#2988" class="Bound">p</a><a id="3013" class="Symbol">)</a>
<a id="dec-false"></a><a id="3016" href="Relation.Nullary.Decidable.Core.html#3016" class="Function">dec-false</a> <a id="3026" class="Symbol">:</a> <a id="3028" class="Symbol">(</a><a id="3029" href="Relation.Nullary.Decidable.Core.html#3029" class="Bound">p?</a> <a id="3032" class="Symbol">:</a> <a id="3034" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="3038" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a><a id="3039" class="Symbol">)</a> <a id="3041" class="Symbol"></a> <a id="3043" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="3045" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a> <a id="3047" class="Symbol"></a> <a id="3049" href="Relation.Nullary.html#1581" class="Field">does</a> <a id="3054" href="Relation.Nullary.Decidable.Core.html#3029" class="Bound">p?</a> <a id="3057" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="3059" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a>
<a id="3065" href="Relation.Nullary.Decidable.Core.html#3016" class="Function">dec-false</a> <a id="3075" class="Symbol">(</a><a id="3076" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="3082" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="3091" class="Symbol">_</a> <a id="3093" class="Symbol">)</a> <a id="3095" href="Relation.Nullary.Decidable.Core.html#3095" class="Bound">¬p</a> <a id="3098" class="Symbol">=</a> <a id="3100" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="3105" href="Relation.Nullary.Decidable.Core.html#3016" class="Function">dec-false</a> <a id="3115" class="Symbol">(</a><a id="3116" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="3122" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="3130" href="Relation.Nullary.Decidable.Core.html#3130" class="Bound">[p]</a><a id="3133" class="Symbol">)</a> <a id="3135" href="Relation.Nullary.Decidable.Core.html#3135" class="Bound">¬p</a> <a id="3138" class="Symbol">=</a> <a id="3140" href="Data.Empty.html#628" class="Function">⊥-elim</a> <a id="3147" class="Symbol">(</a><a id="3148" href="Relation.Nullary.Decidable.Core.html#3135" class="Bound">¬p</a> <a id="3151" class="Symbol">(</a><a id="3152" href="Relation.Nullary.Reflects.html#1031" class="Function">invert</a> <a id="3159" href="Relation.Nullary.Decidable.Core.html#3130" class="Bound">[p]</a><a id="3162" class="Symbol">))</a>
<a id="dec-yes"></a><a id="3166" href="Relation.Nullary.Decidable.Core.html#3166" class="Function">dec-yes</a> <a id="3174" class="Symbol">:</a> <a id="3176" class="Symbol">(</a><a id="3177" href="Relation.Nullary.Decidable.Core.html#3177" class="Bound">p?</a> <a id="3180" class="Symbol">:</a> <a id="3182" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="3186" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a><a id="3187" class="Symbol">)</a> <a id="3189" class="Symbol"></a> <a id="3191" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a> <a id="3193" class="Symbol"></a> <a id="3195" href="Data.Product.html#1369" class="Function"></a> <a id="3197" class="Symbol">λ</a> <a id="3199" href="Relation.Nullary.Decidable.Core.html#3199" class="Bound">p</a> <a id="3202" class="Symbol"></a> <a id="3204" href="Relation.Nullary.Decidable.Core.html#3177" class="Bound">p?</a> <a id="3207" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="3209" href="Relation.Nullary.html#1648" class="InductiveConstructor">yes</a> <a id="3213" href="Relation.Nullary.Decidable.Core.html#3199" class="Bound">p</a>
<a id="3216" href="Relation.Nullary.Decidable.Core.html#3166" class="Function">dec-yes</a> <a id="3224" href="Relation.Nullary.Decidable.Core.html#3224" class="Bound">p?</a> <a id="3227" href="Relation.Nullary.Decidable.Core.html#3227" class="Bound">p</a> <a id="3229" class="Keyword">with</a> <a id="3234" href="Relation.Nullary.Decidable.Core.html#2874" class="Function">dec-true</a> <a id="3243" href="Relation.Nullary.Decidable.Core.html#3224" class="Bound">p?</a> <a id="3246" href="Relation.Nullary.Decidable.Core.html#3227" class="Bound">p</a>
<a id="3248" href="Relation.Nullary.Decidable.Core.html#3166" class="Function">dec-yes</a> <a id="3256" class="Symbol">(</a><a id="3257" href="Relation.Nullary.html#1648" class="InductiveConstructor">yes</a> <a id="3261" href="Relation.Nullary.Decidable.Core.html#3261" class="Bound">p</a><a id="3263" class="Symbol">)</a> <a id="3265" href="Relation.Nullary.Decidable.Core.html#3265" class="Bound">p</a> <a id="3267" class="Symbol">|</a> <a id="3269" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="3274" class="Symbol">=</a> <a id="3276" href="Relation.Nullary.Decidable.Core.html#3261" class="Bound">p</a> <a id="3279" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="3281" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="dec-no"></a><a id="3287" href="Relation.Nullary.Decidable.Core.html#3287" class="Function">dec-no</a> <a id="3294" class="Symbol">:</a> <a id="3296" class="Symbol">(</a><a id="3297" href="Relation.Nullary.Decidable.Core.html#3297" class="Bound">p?</a> <a id="3300" class="Symbol">:</a> <a id="3302" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="3306" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a><a id="3307" class="Symbol">)</a> <a id="3309" class="Symbol"></a> <a id="3311" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="3313" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a> <a id="3315" class="Symbol"></a> <a id="3317" href="Data.Product.html#1369" class="Function"></a> <a id="3319" class="Symbol">λ</a> <a id="3321" href="Relation.Nullary.Decidable.Core.html#3321" class="Bound">¬p</a> <a id="3325" class="Symbol"></a> <a id="3327" href="Relation.Nullary.Decidable.Core.html#3297" class="Bound">p?</a> <a id="3330" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="3332" href="Relation.Nullary.html#1685" class="InductiveConstructor">no</a> <a id="3335" href="Relation.Nullary.Decidable.Core.html#3321" class="Bound">¬p</a>
<a id="3339" href="Relation.Nullary.Decidable.Core.html#3287" class="Function">dec-no</a> <a id="3346" href="Relation.Nullary.Decidable.Core.html#3346" class="Bound">p?</a> <a id="3349" href="Relation.Nullary.Decidable.Core.html#3349" class="Bound">¬p</a> <a id="3352" class="Keyword">with</a> <a id="3357" href="Relation.Nullary.Decidable.Core.html#3016" class="Function">dec-false</a> <a id="3367" href="Relation.Nullary.Decidable.Core.html#3346" class="Bound">p?</a> <a id="3370" href="Relation.Nullary.Decidable.Core.html#3349" class="Bound">¬p</a>
<a id="3373" href="Relation.Nullary.Decidable.Core.html#3287" class="Function">dec-no</a> <a id="3380" class="Symbol">(</a><a id="3381" href="Relation.Nullary.html#1685" class="InductiveConstructor">no</a> <a id="3384" href="Relation.Nullary.Decidable.Core.html#3384" class="Bound">¬p</a><a id="3387" class="Symbol">)</a> <a id="3389" href="Relation.Nullary.Decidable.Core.html#3389" class="Bound">¬p</a> <a id="3392" class="Symbol">|</a> <a id="3394" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="3399" class="Symbol">=</a> <a id="3401" href="Relation.Nullary.Decidable.Core.html#3384" class="Bound">¬p</a> <a id="3405" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="3407" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="dec-yes-irr"></a><a id="3413" href="Relation.Nullary.Decidable.Core.html#3413" class="Function">dec-yes-irr</a> <a id="3425" class="Symbol">:</a> <a id="3427" class="Symbol">(</a><a id="3428" href="Relation.Nullary.Decidable.Core.html#3428" class="Bound">p?</a> <a id="3431" class="Symbol">:</a> <a id="3433" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="3437" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a><a id="3438" class="Symbol">)</a> <a id="3440" class="Symbol"></a> <a id="3442" href="Relation.Nullary.html#2040" class="Function">Irrelevant</a> <a id="3453" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a> <a id="3455" class="Symbol"></a> <a id="3457" class="Symbol">(</a><a id="3458" href="Relation.Nullary.Decidable.Core.html#3458" class="Bound">p</a> <a id="3460" class="Symbol">:</a> <a id="3462" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a><a id="3463" class="Symbol">)</a> <a id="3465" class="Symbol"></a> <a id="3467" href="Relation.Nullary.Decidable.Core.html#3428" class="Bound">p?</a> <a id="3470" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="3472" href="Relation.Nullary.html#1648" class="InductiveConstructor">yes</a> <a id="3476" href="Relation.Nullary.Decidable.Core.html#3458" class="Bound">p</a>
<a id="3478" href="Relation.Nullary.Decidable.Core.html#3413" class="Function">dec-yes-irr</a> <a id="3490" href="Relation.Nullary.Decidable.Core.html#3490" class="Bound">p?</a> <a id="3493" href="Relation.Nullary.Decidable.Core.html#3493" class="Bound">irr</a> <a id="3497" href="Relation.Nullary.Decidable.Core.html#3497" class="Bound">p</a> <a id="3499" class="Keyword">with</a> <a id="3504" href="Relation.Nullary.Decidable.Core.html#3166" class="Function">dec-yes</a> <a id="3512" href="Relation.Nullary.Decidable.Core.html#3490" class="Bound">p?</a> <a id="3515" href="Relation.Nullary.Decidable.Core.html#3497" class="Bound">p</a>
<a id="3517" class="Symbol">...</a> <a id="3521" class="Symbol">|</a> <a id="3523" href="Relation.Nullary.Decidable.Core.html#3523" class="Bound">p</a> <a id="3526" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="3528" href="Relation.Nullary.Decidable.Core.html#3528" class="Bound">eq</a> <a id="3531" class="Keyword">rewrite</a> <a id="3539" class="Bound">irr</a> <a id="3543" class="Bound">p</a> <a id="3545" href="Relation.Nullary.Decidable.Core.html#3523" class="Bound">p</a> <a id="3548" class="Symbol">=</a> <a id="3550" href="Relation.Nullary.Decidable.Core.html#3528" class="Bound">eq</a>
<a id="3554" class="Comment">------------------------------------------------------------------------</a>
<a id="3627" class="Comment">-- Maps</a>
<a id="map"></a><a id="3636" href="Relation.Nullary.Decidable.Core.html#3636" class="Function">map</a> <a id="3641" class="Symbol">:</a> <a id="3643" class="Symbol">(</a><a id="3644" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a> <a id="3646" class="Symbol"></a> <a id="3648" href="Relation.Nullary.Decidable.Core.html#785" class="Generalizable">Q</a><a id="3649" class="Symbol">)</a> <a id="3651" class="Symbol"></a> <a id="3653" class="Symbol">(</a><a id="3654" href="Relation.Nullary.Decidable.Core.html#785" class="Generalizable">Q</a> <a id="3656" class="Symbol"></a> <a id="3658" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a><a id="3659" class="Symbol">)</a> <a id="3661" class="Symbol"></a> <a id="3663" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="3667" href="Relation.Nullary.Decidable.Core.html#771" class="Generalizable">P</a> <a id="3669" class="Symbol"></a> <a id="3671" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="3675" href="Relation.Nullary.Decidable.Core.html#785" class="Generalizable">Q</a>
<a id="3677" href="Relation.Nullary.html#1581" class="Field">does</a> <a id="3683" class="Symbol">(</a><a id="3684" href="Relation.Nullary.Decidable.Core.html#3636" class="Function">map</a> <a id="3689" href="Relation.Nullary.Decidable.Core.html#3689" class="Bound">P→Q</a> <a id="3693" href="Relation.Nullary.Decidable.Core.html#3693" class="Bound">Q→P</a> <a id="3697" href="Relation.Nullary.Decidable.Core.html#3697" class="Bound">p?</a><a id="3699" class="Symbol">)</a> <a id="3719" class="Symbol">=</a> <a id="3721" href="Relation.Nullary.html#1581" class="Field">does</a> <a id="3726" href="Relation.Nullary.Decidable.Core.html#3697" class="Bound">p?</a>
<a id="3729" href="Relation.Nullary.html#1598" class="Field">proof</a> <a id="3735" class="Symbol">(</a><a id="3736" href="Relation.Nullary.Decidable.Core.html#3636" class="Function">map</a> <a id="3741" href="Relation.Nullary.Decidable.Core.html#3741" class="Bound">P→Q</a> <a id="3745" href="Relation.Nullary.Decidable.Core.html#3745" class="Bound">Q→P</a> <a id="3749" class="Symbol">(</a><a id="3750" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="3756" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="3765" href="Relation.Nullary.Decidable.Core.html#3765" class="Bound">[p]</a><a id="3768" class="Symbol">))</a> <a id="3771" class="Symbol">=</a> <a id="3773" href="Relation.Nullary.html#902" class="InductiveConstructor">ofʸ</a> <a id="3777" class="Symbol">(</a><a id="3778" href="Relation.Nullary.Decidable.Core.html#3741" class="Bound">P→Q</a> <a id="3782" class="Symbol">(</a><a id="3783" href="Relation.Nullary.Reflects.html#1031" class="Function">invert</a> <a id="3790" href="Relation.Nullary.Decidable.Core.html#3765" class="Bound">[p]</a><a id="3793" class="Symbol">))</a>
<a id="3796" href="Relation.Nullary.html#1598" class="Field">proof</a> <a id="3802" class="Symbol">(</a><a id="3803" href="Relation.Nullary.Decidable.Core.html#3636" class="Function">map</a> <a id="3808" href="Relation.Nullary.Decidable.Core.html#3808" class="Bound">P→Q</a> <a id="3812" href="Relation.Nullary.Decidable.Core.html#3812" class="Bound">Q→P</a> <a id="3816" class="Symbol">(</a><a id="3817" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="3823" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="3831" href="Relation.Nullary.Decidable.Core.html#3831" class="Bound">[¬p]</a><a id="3835" class="Symbol">))</a> <a id="3838" class="Symbol">=</a> <a id="3840" href="Relation.Nullary.html#939" class="InductiveConstructor">ofⁿ</a> <a id="3844" class="Symbol">(</a><a id="3845" href="Relation.Nullary.Reflects.html#1031" class="Function">invert</a> <a id="3852" href="Relation.Nullary.Decidable.Core.html#3831" class="Bound">[¬p]</a> <a id="3857" href="Function.Base.html#1031" class="Function Operator"></a> <a id="3859" href="Relation.Nullary.Decidable.Core.html#3812" class="Bound">Q→P</a><a id="3862" class="Symbol">)</a>
</pre></body></html>

View File

@ -0,0 +1,53 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Relation.Nullary.Reflects</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Properties of the `Reflects` construct</a>
<a id="148" class="Comment">------------------------------------------------------------------------</a>
<a id="222" class="Symbol">{-#</a> <a id="226" class="Keyword">OPTIONS</a> <a id="234" class="Pragma">--without-K</a> <a id="246" class="Pragma">--safe</a> <a id="253" class="Symbol">#-}</a>
<a id="258" class="Keyword">module</a> <a id="265" href="Relation.Nullary.Reflects.html" class="Module">Relation.Nullary.Reflects</a> <a id="291" class="Keyword">where</a>
<a id="298" class="Keyword">open</a> <a id="303" class="Keyword">import</a> <a id="310" href="Agda.Builtin.Equality.html" class="Module">Agda.Builtin.Equality</a>
<a id="332" class="Keyword">open</a> <a id="337" class="Keyword">import</a> <a id="344" href="Data.Bool.Base.html" class="Module">Data.Bool.Base</a>
<a id="359" class="Keyword">open</a> <a id="364" class="Keyword">import</a> <a id="371" href="Data.Empty.html" class="Module">Data.Empty</a>
<a id="382" class="Keyword">open</a> <a id="387" class="Keyword">import</a> <a id="394" href="Level.html" class="Module">Level</a>
<a id="400" class="Keyword">open</a> <a id="405" class="Keyword">import</a> <a id="412" href="Relation.Nullary.html" class="Module">Relation.Nullary</a>
<a id="430" class="Keyword">private</a>
<a id="440" class="Keyword">variable</a>
<a id="453" href="Relation.Nullary.Reflects.html#453" class="Generalizable">p</a> <a id="455" class="Symbol">:</a> <a id="457" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="467" href="Relation.Nullary.Reflects.html#467" class="Generalizable">P</a> <a id="469" class="Symbol">:</a> <a id="471" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="475" href="Relation.Nullary.Reflects.html#453" class="Generalizable">p</a>
<a id="478" class="Comment">------------------------------------------------------------------------</a>
<a id="551" class="Comment">-- `Reflects P b` is equivalent to `if b then P else ¬ P`.</a>
<a id="611" class="Comment">-- These lemmas are intended to be used mostly when `b` is a value, so</a>
<a id="682" class="Comment">-- that the `if` expressions have already been evaluated away.</a>
<a id="745" class="Comment">-- In this case, `of` works like the relevant constructor (`ofⁿ` or</a>
<a id="813" class="Comment">-- `ofʸ`), and `invert` strips off the constructor to just give either</a>
<a id="884" class="Comment">-- the proof of `P` or the proof of `¬ P`.</a>
<a id="of"></a><a id="928" href="Relation.Nullary.Reflects.html#928" class="Function">of</a> <a id="931" class="Symbol">:</a> <a id="933" class="Symbol"></a> <a id="935" class="Symbol">{</a><a id="936" href="Relation.Nullary.Reflects.html#936" class="Bound">b</a><a id="937" class="Symbol">}</a> <a id="939" class="Symbol"></a> <a id="941" href="Data.Bool.Base.html#1283" class="Function Operator">if</a> <a id="944" href="Relation.Nullary.Reflects.html#936" class="Bound">b</a> <a id="946" href="Data.Bool.Base.html#1283" class="Function Operator">then</a> <a id="951" href="Relation.Nullary.Reflects.html#467" class="Generalizable">P</a> <a id="953" href="Data.Bool.Base.html#1283" class="Function Operator">else</a> <a id="958" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="960" href="Relation.Nullary.Reflects.html#467" class="Generalizable">P</a> <a id="962" class="Symbol"></a> <a id="964" href="Relation.Nullary.html#854" class="Datatype">Reflects</a> <a id="973" href="Relation.Nullary.Reflects.html#467" class="Generalizable">P</a> <a id="975" href="Relation.Nullary.Reflects.html#936" class="Bound">b</a>
<a id="977" href="Relation.Nullary.Reflects.html#928" class="Function">of</a> <a id="980" class="Symbol">{</a><a id="981" class="Argument">b</a> <a id="983" class="Symbol">=</a> <a id="985" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a><a id="990" class="Symbol">}</a> <a id="992" href="Relation.Nullary.Reflects.html#992" class="Bound">¬p</a> <a id="995" class="Symbol">=</a> <a id="997" href="Relation.Nullary.html#939" class="InductiveConstructor">ofⁿ</a> <a id="1001" href="Relation.Nullary.Reflects.html#992" class="Bound">¬p</a>
<a id="1004" href="Relation.Nullary.Reflects.html#928" class="Function">of</a> <a id="1007" class="Symbol">{</a><a id="1008" class="Argument">b</a> <a id="1010" class="Symbol">=</a> <a id="1012" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="1017" class="Symbol">}</a> <a id="1020" href="Relation.Nullary.Reflects.html#1020" class="Bound">p</a> <a id="1022" class="Symbol">=</a> <a id="1024" href="Relation.Nullary.html#902" class="InductiveConstructor">ofʸ</a> <a id="1028" href="Relation.Nullary.Reflects.html#1020" class="Bound">p</a>
<a id="invert"></a><a id="1031" href="Relation.Nullary.Reflects.html#1031" class="Function">invert</a> <a id="1038" class="Symbol">:</a> <a id="1040" class="Symbol"></a> <a id="1042" class="Symbol">{</a><a id="1043" href="Relation.Nullary.Reflects.html#1043" class="Bound">b</a><a id="1044" class="Symbol">}</a> <a id="1046" class="Symbol"></a> <a id="1048" href="Relation.Nullary.html#854" class="Datatype">Reflects</a> <a id="1057" href="Relation.Nullary.Reflects.html#467" class="Generalizable">P</a> <a id="1059" href="Relation.Nullary.Reflects.html#1043" class="Bound">b</a> <a id="1061" class="Symbol"></a> <a id="1063" href="Data.Bool.Base.html#1283" class="Function Operator">if</a> <a id="1066" href="Relation.Nullary.Reflects.html#1043" class="Bound">b</a> <a id="1068" href="Data.Bool.Base.html#1283" class="Function Operator">then</a> <a id="1073" href="Relation.Nullary.Reflects.html#467" class="Generalizable">P</a> <a id="1075" href="Data.Bool.Base.html#1283" class="Function Operator">else</a> <a id="1080" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="1082" href="Relation.Nullary.Reflects.html#467" class="Generalizable">P</a>
<a id="1084" href="Relation.Nullary.Reflects.html#1031" class="Function">invert</a> <a id="1091" class="Symbol">(</a><a id="1092" href="Relation.Nullary.html#902" class="InductiveConstructor">ofʸ</a> <a id="1097" href="Relation.Nullary.Reflects.html#1097" class="Bound">p</a><a id="1098" class="Symbol">)</a> <a id="1100" class="Symbol">=</a> <a id="1102" href="Relation.Nullary.Reflects.html#1097" class="Bound">p</a>
<a id="1104" href="Relation.Nullary.Reflects.html#1031" class="Function">invert</a> <a id="1111" class="Symbol">(</a><a id="1112" href="Relation.Nullary.html#939" class="InductiveConstructor">ofⁿ</a> <a id="1116" href="Relation.Nullary.Reflects.html#1116" class="Bound">¬p</a><a id="1118" class="Symbol">)</a> <a id="1120" class="Symbol">=</a> <a id="1122" href="Relation.Nullary.Reflects.html#1116" class="Bound">¬p</a>
<a id="1126" class="Comment">------------------------------------------------------------------------</a>
<a id="1199" class="Comment">-- Other lemmas</a>
<a id="fromEquivalence"></a><a id="1216" href="Relation.Nullary.Reflects.html#1216" class="Function">fromEquivalence</a> <a id="1232" class="Symbol">:</a> <a id="1234" class="Symbol"></a> <a id="1236" class="Symbol">{</a><a id="1237" href="Relation.Nullary.Reflects.html#1237" class="Bound">b</a><a id="1238" class="Symbol">}</a> <a id="1240" class="Symbol"></a> <a id="1242" class="Symbol">(</a><a id="1243" href="Data.Bool.Base.html#1451" class="Function">T</a> <a id="1245" href="Relation.Nullary.Reflects.html#1237" class="Bound">b</a> <a id="1247" class="Symbol"></a> <a id="1249" href="Relation.Nullary.Reflects.html#467" class="Generalizable">P</a><a id="1250" class="Symbol">)</a> <a id="1252" class="Symbol"></a> <a id="1254" class="Symbol">(</a><a id="1255" href="Relation.Nullary.Reflects.html#467" class="Generalizable">P</a> <a id="1257" class="Symbol"></a> <a id="1259" href="Data.Bool.Base.html#1451" class="Function">T</a> <a id="1261" href="Relation.Nullary.Reflects.html#1237" class="Bound">b</a><a id="1262" class="Symbol">)</a> <a id="1264" class="Symbol"></a> <a id="1266" href="Relation.Nullary.html#854" class="Datatype">Reflects</a> <a id="1275" href="Relation.Nullary.Reflects.html#467" class="Generalizable">P</a> <a id="1277" href="Relation.Nullary.Reflects.html#1237" class="Bound">b</a>
<a id="1279" href="Relation.Nullary.Reflects.html#1216" class="Function">fromEquivalence</a> <a id="1295" class="Symbol">{</a><a id="1296" class="Argument">b</a> <a id="1298" class="Symbol">=</a> <a id="1300" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a><a id="1304" class="Symbol">}</a> <a id="1307" href="Relation.Nullary.Reflects.html#1307" class="Bound">sound</a> <a id="1313" href="Relation.Nullary.Reflects.html#1313" class="Bound">complete</a> <a id="1322" class="Symbol">=</a> <a id="1324" href="Relation.Nullary.html#902" class="InductiveConstructor">ofʸ</a> <a id="1328" class="Symbol">(</a><a id="1329" href="Relation.Nullary.Reflects.html#1307" class="Bound">sound</a> <a id="1335" class="Symbol">_)</a>
<a id="1338" href="Relation.Nullary.Reflects.html#1216" class="Function">fromEquivalence</a> <a id="1354" class="Symbol">{</a><a id="1355" class="Argument">b</a> <a id="1357" class="Symbol">=</a> <a id="1359" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a><a id="1364" class="Symbol">}</a> <a id="1366" href="Relation.Nullary.Reflects.html#1366" class="Bound">sound</a> <a id="1372" href="Relation.Nullary.Reflects.html#1372" class="Bound">complete</a> <a id="1381" class="Symbol">=</a> <a id="1383" href="Relation.Nullary.html#939" class="InductiveConstructor">ofⁿ</a> <a id="1387" href="Relation.Nullary.Reflects.html#1372" class="Bound">complete</a>
<a id="1397" class="Comment">-- `Reflects` is deterministic.</a>
<a id="det"></a><a id="1429" href="Relation.Nullary.Reflects.html#1429" class="Function">det</a> <a id="1433" class="Symbol">:</a> <a id="1435" class="Symbol"></a> <a id="1437" class="Symbol">{</a><a id="1438" href="Relation.Nullary.Reflects.html#1438" class="Bound">b</a> <a id="1440" href="Relation.Nullary.Reflects.html#1440" class="Bound">b</a><a id="1442" class="Symbol">}</a> <a id="1444" class="Symbol"></a> <a id="1446" href="Relation.Nullary.html#854" class="Datatype">Reflects</a> <a id="1455" href="Relation.Nullary.Reflects.html#467" class="Generalizable">P</a> <a id="1457" href="Relation.Nullary.Reflects.html#1438" class="Bound">b</a> <a id="1459" class="Symbol"></a> <a id="1461" href="Relation.Nullary.html#854" class="Datatype">Reflects</a> <a id="1470" href="Relation.Nullary.Reflects.html#467" class="Generalizable">P</a> <a id="1472" href="Relation.Nullary.Reflects.html#1440" class="Bound">b</a> <a id="1475" class="Symbol"></a> <a id="1477" href="Relation.Nullary.Reflects.html#1438" class="Bound">b</a> <a id="1479" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1481" href="Relation.Nullary.Reflects.html#1440" class="Bound">b</a>
<a id="1484" href="Relation.Nullary.Reflects.html#1429" class="Function">det</a> <a id="1488" class="Symbol">(</a><a id="1489" href="Relation.Nullary.html#902" class="InductiveConstructor">ofʸ</a> <a id="1494" href="Relation.Nullary.Reflects.html#1494" class="Bound">p</a><a id="1495" class="Symbol">)</a> <a id="1497" class="Symbol">(</a><a id="1498" href="Relation.Nullary.html#902" class="InductiveConstructor">ofʸ</a> <a id="1503" href="Relation.Nullary.Reflects.html#1503" class="Bound">p</a><a id="1505" class="Symbol">)</a> <a id="1507" class="Symbol">=</a> <a id="1509" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="1514" href="Relation.Nullary.Reflects.html#1429" class="Function">det</a> <a id="1518" class="Symbol">(</a><a id="1519" href="Relation.Nullary.html#902" class="InductiveConstructor">ofʸ</a> <a id="1524" href="Relation.Nullary.Reflects.html#1524" class="Bound">p</a><a id="1525" class="Symbol">)</a> <a id="1527" class="Symbol">(</a><a id="1528" href="Relation.Nullary.html#939" class="InductiveConstructor">ofⁿ</a> <a id="1532" href="Relation.Nullary.Reflects.html#1532" class="Bound">¬p</a><a id="1535" class="Symbol">)</a> <a id="1537" class="Symbol">=</a> <a id="1539" href="Data.Empty.html#628" class="Function">⊥-elim</a> <a id="1546" class="Symbol">(</a><a id="1547" href="Relation.Nullary.Reflects.html#1532" class="Bound">¬p</a> <a id="1551" href="Relation.Nullary.Reflects.html#1524" class="Bound">p</a><a id="1552" class="Symbol">)</a>
<a id="1554" href="Relation.Nullary.Reflects.html#1429" class="Function">det</a> <a id="1558" class="Symbol">(</a><a id="1559" href="Relation.Nullary.html#939" class="InductiveConstructor">ofⁿ</a> <a id="1563" href="Relation.Nullary.Reflects.html#1563" class="Bound">¬p</a><a id="1565" class="Symbol">)</a> <a id="1567" class="Symbol">(</a><a id="1568" href="Relation.Nullary.html#902" class="InductiveConstructor">ofʸ</a> <a id="1573" href="Relation.Nullary.Reflects.html#1573" class="Bound">p</a><a id="1575" class="Symbol">)</a> <a id="1577" class="Symbol">=</a> <a id="1579" href="Data.Empty.html#628" class="Function">⊥-elim</a> <a id="1586" class="Symbol">(</a><a id="1587" href="Relation.Nullary.Reflects.html#1563" class="Bound">¬p</a> <a id="1590" href="Relation.Nullary.Reflects.html#1573" class="Bound">p</a><a id="1592" class="Symbol">)</a>
<a id="1594" href="Relation.Nullary.Reflects.html#1429" class="Function">det</a> <a id="1598" class="Symbol">(</a><a id="1599" href="Relation.Nullary.html#939" class="InductiveConstructor">ofⁿ</a> <a id="1603" href="Relation.Nullary.Reflects.html#1603" class="Bound">¬p</a><a id="1605" class="Symbol">)</a> <a id="1607" class="Symbol">(</a><a id="1608" href="Relation.Nullary.html#939" class="InductiveConstructor">ofⁿ</a> <a id="1612" href="Relation.Nullary.Reflects.html#1612" class="Bound">¬p</a><a id="1615" class="Symbol">)</a> <a id="1617" class="Symbol">=</a> <a id="1619" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
</pre></body></html>

View File

@ -0,0 +1,72 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Relation.Nullary</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Operations on nullary relations (like negation and decidability)</a>
<a id="174" class="Comment">------------------------------------------------------------------------</a>
<a id="248" class="Comment">-- Some operations on/properties of nullary relations, i.e. sets.</a>
<a id="315" class="Symbol">{-#</a> <a id="319" class="Keyword">OPTIONS</a> <a id="327" class="Pragma">--without-K</a> <a id="339" class="Pragma">--safe</a> <a id="346" class="Symbol">#-}</a>
<a id="351" class="Keyword">module</a> <a id="358" href="Relation.Nullary.html" class="Module">Relation.Nullary</a> <a id="375" class="Keyword">where</a>
<a id="382" class="Keyword">open</a> <a id="387" class="Keyword">import</a> <a id="394" href="Agda.Builtin.Equality.html" class="Module">Agda.Builtin.Equality</a>
<a id="416" class="Keyword">open</a> <a id="421" class="Keyword">import</a> <a id="428" href="Agda.Builtin.Bool.html" class="Module">Agda.Builtin.Bool</a>
<a id="447" class="Keyword">open</a> <a id="452" class="Keyword">import</a> <a id="459" href="Data.Empty.html" class="Module">Data.Empty</a> <a id="470" class="Keyword">hiding</a> <a id="477" class="Symbol">(</a><a id="478" href="Data.Empty.html#628" class="Function">⊥-elim</a><a id="484" class="Symbol">)</a>
<a id="486" class="Keyword">open</a> <a id="491" class="Keyword">import</a> <a id="498" href="Data.Empty.Irrelevant.html" class="Module">Data.Empty.Irrelevant</a>
<a id="520" class="Keyword">open</a> <a id="525" class="Keyword">import</a> <a id="532" href="Level.html" class="Module">Level</a>
<a id="539" class="Comment">------------------------------------------------------------------------</a>
<a id="612" class="Comment">-- Negation.</a>
<a id="626" class="Keyword">infix</a> <a id="632" class="Number">3</a> <a id="634" href="Relation.Nullary.html#656" class="Function Operator">¬_</a>
<a id="637" class="Keyword">infix</a> <a id="643" class="Number">2</a> <a id="645" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">_because_</a>
<a id="¬_"></a><a id="656" href="Relation.Nullary.html#656" class="Function Operator">¬_</a> <a id="659" class="Symbol">:</a> <a id="661" class="Symbol"></a> <a id="663" class="Symbol">{</a><a id="664" href="Relation.Nullary.html#664" class="Bound"></a><a id="665" class="Symbol">}</a> <a id="667" class="Symbol"></a> <a id="669" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="673" href="Relation.Nullary.html#664" class="Bound"></a> <a id="675" class="Symbol"></a> <a id="677" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="681" href="Relation.Nullary.html#664" class="Bound"></a>
<a id="683" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="685" href="Relation.Nullary.html#685" class="Bound">P</a> <a id="687" class="Symbol">=</a> <a id="689" href="Relation.Nullary.html#685" class="Bound">P</a> <a id="691" class="Symbol"></a> <a id="693" href="Data.Empty.html#526" class="Datatype"></a>
<a id="696" class="Comment">------------------------------------------------------------------------</a>
<a id="769" class="Comment">-- `Reflects` idiom.</a>
<a id="791" class="Comment">-- The truth value of P is reflected by a boolean value.</a>
<a id="849" class="Keyword">data</a> <a id="Reflects"></a><a id="854" href="Relation.Nullary.html#854" class="Datatype">Reflects</a> <a id="863" class="Symbol">{</a><a id="864" href="Relation.Nullary.html#864" class="Bound">p</a><a id="865" class="Symbol">}</a> <a id="867" class="Symbol">(</a><a id="868" href="Relation.Nullary.html#868" class="Bound">P</a> <a id="870" class="Symbol">:</a> <a id="872" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="876" href="Relation.Nullary.html#864" class="Bound">p</a><a id="877" class="Symbol">)</a> <a id="879" class="Symbol">:</a> <a id="881" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a> <a id="886" class="Symbol"></a> <a id="888" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="892" href="Relation.Nullary.html#864" class="Bound">p</a> <a id="894" class="Keyword">where</a>
<a id="Reflects.ofʸ"></a><a id="902" href="Relation.Nullary.html#902" class="InductiveConstructor">ofʸ</a> <a id="906" class="Symbol">:</a> <a id="908" class="Symbol">(</a> <a id="910" href="Relation.Nullary.html#910" class="Bound">p</a> <a id="912" class="Symbol">:</a> <a id="916" href="Relation.Nullary.html#868" class="Bound">P</a><a id="917" class="Symbol">)</a> <a id="919" class="Symbol"></a> <a id="921" href="Relation.Nullary.html#854" class="Datatype">Reflects</a> <a id="930" href="Relation.Nullary.html#868" class="Bound">P</a> <a id="932" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a>
<a id="Reflects.ofⁿ"></a><a id="939" href="Relation.Nullary.html#939" class="InductiveConstructor">ofⁿ</a> <a id="943" class="Symbol">:</a> <a id="945" class="Symbol">(</a><a id="946" href="Relation.Nullary.html#946" class="Bound">¬p</a> <a id="949" class="Symbol">:</a> <a id="951" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="953" href="Relation.Nullary.html#868" class="Bound">P</a><a id="954" class="Symbol">)</a> <a id="956" class="Symbol"></a> <a id="958" href="Relation.Nullary.html#854" class="Datatype">Reflects</a> <a id="967" href="Relation.Nullary.html#868" class="Bound">P</a> <a id="969" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a>
<a id="976" class="Comment">------------------------------------------------------------------------</a>
<a id="1049" class="Comment">-- Decidability.</a>
<a id="1067" class="Comment">-- Decidability proofs have two parts: the `does` term which contains</a>
<a id="1137" class="Comment">-- the boolean result and the `proof` term which contains a proof that</a>
<a id="1208" class="Comment">-- reflects the boolean result. This definition allows the boolean</a>
<a id="1275" class="Comment">-- part of the decision procedure to compute independently from the</a>
<a id="1343" class="Comment">-- proof. This leads to better computational behaviour when we only care</a>
<a id="1416" class="Comment">-- about the result and not the proof. See README.Decidability for</a>
<a id="1483" class="Comment">-- further details.</a>
<a id="1504" class="Keyword">record</a> <a id="Dec"></a><a id="1511" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="1515" class="Symbol">{</a><a id="1516" href="Relation.Nullary.html#1516" class="Bound">p</a><a id="1517" class="Symbol">}</a> <a id="1519" class="Symbol">(</a><a id="1520" href="Relation.Nullary.html#1520" class="Bound">P</a> <a id="1522" class="Symbol">:</a> <a id="1524" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1528" href="Relation.Nullary.html#1516" class="Bound">p</a><a id="1529" class="Symbol">)</a> <a id="1531" class="Symbol">:</a> <a id="1533" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1537" href="Relation.Nullary.html#1516" class="Bound">p</a> <a id="1539" class="Keyword">where</a>
<a id="1547" class="Keyword">constructor</a> <a id="_because_"></a><a id="1559" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">_because_</a>
<a id="1571" class="Keyword">field</a>
<a id="Dec.does"></a><a id="1581" href="Relation.Nullary.html#1581" class="Field">does</a> <a id="1587" class="Symbol">:</a> <a id="1589" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a>
<a id="Dec.proof"></a><a id="1598" href="Relation.Nullary.html#1598" class="Field">proof</a> <a id="1604" class="Symbol">:</a> <a id="1606" href="Relation.Nullary.html#854" class="Datatype">Reflects</a> <a id="1615" href="Relation.Nullary.html#1520" class="Bound">P</a> <a id="1617" href="Relation.Nullary.html#1581" class="Field">does</a>
<a id="1623" class="Keyword">open</a> <a id="1628" href="Relation.Nullary.html#1511" class="Module">Dec</a> <a id="1632" class="Keyword">public</a>
<a id="1640" class="Keyword">pattern</a> <a id="yes"></a><a id="1648" href="Relation.Nullary.html#1648" class="InductiveConstructor">yes</a> <a id="1652" href="Relation.Nullary.html#1675" class="Bound">p</a> <a id="1654" class="Symbol">=</a> <a id="1657" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="1662" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="1670" href="Relation.Nullary.html#902" class="InductiveConstructor">ofʸ</a> <a id="1675" href="Relation.Nullary.html#1675" class="Bound">p</a>
<a id="1677" class="Keyword">pattern</a> <a id="no"></a><a id="1685" href="Relation.Nullary.html#1685" class="InductiveConstructor">no</a> <a id="1688" href="Relation.Nullary.html#1711" class="Bound">¬p</a> <a id="1691" class="Symbol">=</a> <a id="1693" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="1699" href="Relation.Nullary.html#1559" class="InductiveConstructor Operator">because</a> <a id="1707" href="Relation.Nullary.html#939" class="InductiveConstructor">ofⁿ</a> <a id="1711" href="Relation.Nullary.html#1711" class="Bound">¬p</a>
<a id="1715" class="Comment">-- Given an irrelevant proof of a decidable type, a proof can</a>
<a id="1777" class="Comment">-- be recomputed and subsequently used in relevant contexts.</a>
<a id="recompute"></a><a id="1838" href="Relation.Nullary.html#1838" class="Function">recompute</a> <a id="1848" class="Symbol">:</a> <a id="1850" class="Symbol"></a> <a id="1852" class="Symbol">{</a><a id="1853" href="Relation.Nullary.html#1853" class="Bound">a</a><a id="1854" class="Symbol">}</a> <a id="1856" class="Symbol">{</a><a id="1857" href="Relation.Nullary.html#1857" class="Bound">A</a> <a id="1859" class="Symbol">:</a> <a id="1861" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1865" href="Relation.Nullary.html#1853" class="Bound">a</a><a id="1866" class="Symbol">}</a> <a id="1868" class="Symbol"></a> <a id="1870" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="1874" href="Relation.Nullary.html#1857" class="Bound">A</a> <a id="1876" class="Symbol"></a> <a id="1878" class="Symbol">.</a><a id="1879" href="Relation.Nullary.html#1857" class="Bound">A</a> <a id="1881" class="Symbol"></a> <a id="1883" href="Relation.Nullary.html#1857" class="Bound">A</a>
<a id="1885" href="Relation.Nullary.html#1838" class="Function">recompute</a> <a id="1895" class="Symbol">(</a><a id="1896" href="Relation.Nullary.html#1648" class="InductiveConstructor">yes</a> <a id="1900" href="Relation.Nullary.html#1900" class="Bound">x</a><a id="1901" class="Symbol">)</a> <a id="1903" class="Symbol">_</a> <a id="1905" class="Symbol">=</a> <a id="1907" href="Relation.Nullary.html#1900" class="Bound">x</a>
<a id="1909" href="Relation.Nullary.html#1838" class="Function">recompute</a> <a id="1919" class="Symbol">(</a><a id="1920" href="Relation.Nullary.html#1685" class="InductiveConstructor">no</a> <a id="1923" href="Relation.Nullary.html#1923" class="Bound">¬p</a><a id="1925" class="Symbol">)</a> <a id="1927" href="Relation.Nullary.html#1927" class="Bound">x</a> <a id="1929" class="Symbol">=</a> <a id="1931" href="Data.Empty.Irrelevant.html#327" class="Function">⊥-elim</a> <a id="1938" class="Symbol">(</a><a id="1939" href="Relation.Nullary.html#1923" class="Bound">¬p</a> <a id="1942" href="Relation.Nullary.html#1927" class="Bound">x</a><a id="1943" class="Symbol">)</a>
<a id="1946" class="Comment">------------------------------------------------------------------------</a>
<a id="2019" class="Comment">-- Irrelevant types</a>
<a id="Irrelevant"></a><a id="2040" href="Relation.Nullary.html#2040" class="Function">Irrelevant</a> <a id="2051" class="Symbol">:</a> <a id="2053" class="Symbol"></a> <a id="2055" class="Symbol">{</a><a id="2056" href="Relation.Nullary.html#2056" class="Bound">p</a><a id="2057" class="Symbol">}</a> <a id="2059" class="Symbol"></a> <a id="2061" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2065" href="Relation.Nullary.html#2056" class="Bound">p</a> <a id="2067" class="Symbol"></a> <a id="2069" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2073" href="Relation.Nullary.html#2056" class="Bound">p</a>
<a id="2075" href="Relation.Nullary.html#2040" class="Function">Irrelevant</a> <a id="2086" href="Relation.Nullary.html#2086" class="Bound">P</a> <a id="2088" class="Symbol">=</a> <a id="2090" class="Symbol"></a> <a id="2092" class="Symbol">(</a><a id="2093" href="Relation.Nullary.html#2093" class="Bound">p₁</a> <a id="2096" href="Relation.Nullary.html#2096" class="Bound">p₂</a> <a id="2099" class="Symbol">:</a> <a id="2101" href="Relation.Nullary.html#2086" class="Bound">P</a><a id="2102" class="Symbol">)</a> <a id="2104" class="Symbol"></a> <a id="2106" href="Relation.Nullary.html#2093" class="Bound">p₁</a> <a id="2109" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="2111" href="Relation.Nullary.html#2096" class="Bound">p₂</a>
</pre></body></html>

299
misc/Relation.Unary.html Normal file
View File

@ -0,0 +1,299 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Relation.Unary</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Unary relations</a>
<a id="125" class="Comment">------------------------------------------------------------------------</a>
<a id="199" class="Symbol">{-#</a> <a id="203" class="Keyword">OPTIONS</a> <a id="211" class="Pragma">--without-K</a> <a id="223" class="Pragma">--safe</a> <a id="230" class="Symbol">#-}</a>
<a id="235" class="Keyword">module</a> <a id="242" href="Relation.Unary.html" class="Module">Relation.Unary</a> <a id="257" class="Keyword">where</a>
<a id="264" class="Keyword">open</a> <a id="269" class="Keyword">import</a> <a id="276" href="Data.Empty.html" class="Module">Data.Empty</a>
<a id="287" class="Keyword">open</a> <a id="292" class="Keyword">import</a> <a id="299" href="Data.Unit.Base.html" class="Module">Data.Unit.Base</a> <a id="314" class="Keyword">using</a> <a id="320" class="Symbol">(</a><a id="321" href="Agda.Builtin.Unit.html#164" class="Record"></a><a id="322" class="Symbol">)</a>
<a id="324" class="Keyword">open</a> <a id="329" class="Keyword">import</a> <a id="336" href="Data.Product.html" class="Module">Data.Product</a>
<a id="349" class="Keyword">open</a> <a id="354" class="Keyword">import</a> <a id="361" href="Data.Sum.Base.html" class="Module">Data.Sum.Base</a> <a id="375" class="Keyword">using</a> <a id="381" class="Symbol">(</a><a id="382" href="Data.Sum.Base.html#734" class="Datatype Operator">_⊎_</a><a id="385" class="Symbol">;</a> <a id="387" href="Data.Sum.Base.html#920" class="Function Operator">[_,_]</a><a id="392" class="Symbol">)</a>
<a id="394" class="Keyword">open</a> <a id="399" class="Keyword">import</a> <a id="406" href="Function.Base.html" class="Module">Function.Base</a>
<a id="420" class="Keyword">open</a> <a id="425" class="Keyword">import</a> <a id="432" href="Level.html" class="Module">Level</a>
<a id="438" class="Keyword">open</a> <a id="443" class="Keyword">import</a> <a id="450" href="Relation.Nullary.html" class="Module">Relation.Nullary</a> <a id="467" class="Keyword">hiding</a> <a id="474" class="Symbol">(</a><a id="475" href="Relation.Nullary.html#2040" class="Function">Irrelevant</a><a id="485" class="Symbol">)</a>
<a id="487" class="Keyword">open</a> <a id="492" class="Keyword">import</a> <a id="499" href="Relation.Nullary.Decidable.Core.html" class="Module">Relation.Nullary.Decidable.Core</a> <a id="531" class="Keyword">using</a> <a id="537" class="Symbol">(</a><a id="538" href="Relation.Nullary.Decidable.Core.html#1365" class="Function">True</a><a id="542" class="Symbol">)</a>
<a id="544" class="Keyword">open</a> <a id="549" class="Keyword">import</a> <a id="556" href="Relation.Binary.PropositionalEquality.Core.html" class="Module">Relation.Binary.PropositionalEquality.Core</a> <a id="599" class="Keyword">using</a> <a id="605" class="Symbol">(</a><a id="606" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a><a id="609" class="Symbol">)</a>
<a id="612" class="Keyword">private</a>
<a id="622" class="Keyword">variable</a>
<a id="635" href="Relation.Unary.html#635" class="Generalizable">a</a> <a id="637" href="Relation.Unary.html#637" class="Generalizable">b</a> <a id="639" href="Relation.Unary.html#639" class="Generalizable">c</a> <a id="641" href="Relation.Unary.html#641" class="Generalizable"></a> <a id="643" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="646" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="649" class="Symbol">:</a> <a id="651" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="661" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="663" class="Symbol">:</a> <a id="665" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="669" href="Relation.Unary.html#635" class="Generalizable">a</a>
<a id="675" href="Relation.Unary.html#675" class="Generalizable">B</a> <a id="677" class="Symbol">:</a> <a id="679" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="683" href="Relation.Unary.html#637" class="Generalizable">b</a>
<a id="689" href="Relation.Unary.html#689" class="Generalizable">C</a> <a id="691" class="Symbol">:</a> <a id="693" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="697" href="Relation.Unary.html#639" class="Generalizable">c</a>
<a id="700" class="Comment">------------------------------------------------------------------------</a>
<a id="773" class="Comment">-- Definition</a>
<a id="788" class="Comment">-- Unary relations are known as predicates and `Pred A ` can be viewed</a>
<a id="860" class="Comment">-- as some property that elements of type A might satisfy.</a>
<a id="920" class="Comment">-- Consequently `P : Pred A ` can also be seen as a subset of A</a>
<a id="985" class="Comment">-- containing all the elements of A that satisfy property P. This view</a>
<a id="1056" class="Comment">-- informs much of the notation used below.</a>
<a id="Pred"></a><a id="1101" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="1106" class="Symbol">:</a> <a id="1108" class="Symbol"></a> <a id="1110" class="Symbol">{</a><a id="1111" href="Relation.Unary.html#1111" class="Bound">a</a><a id="1112" class="Symbol">}</a> <a id="1114" class="Symbol"></a> <a id="1116" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1120" href="Relation.Unary.html#1111" class="Bound">a</a> <a id="1122" class="Symbol"></a> <a id="1124" class="Symbol">(</a><a id="1125" href="Relation.Unary.html#1125" class="Bound"></a> <a id="1127" class="Symbol">:</a> <a id="1129" href="Agda.Primitive.html#597" class="Postulate">Level</a><a id="1134" class="Symbol">)</a> <a id="1136" class="Symbol"></a> <a id="1138" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1142" class="Symbol">(</a><a id="1143" href="Relation.Unary.html#1111" class="Bound">a</a> <a id="1145" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1147" href="Agda.Primitive.html#780" class="Primitive">suc</a> <a id="1151" href="Relation.Unary.html#1125" class="Bound"></a><a id="1152" class="Symbol">)</a>
<a id="1154" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="1159" href="Relation.Unary.html#1159" class="Bound">A</a> <a id="1161" href="Relation.Unary.html#1161" class="Bound"></a> <a id="1163" class="Symbol">=</a> <a id="1165" href="Relation.Unary.html#1159" class="Bound">A</a> <a id="1167" class="Symbol"></a> <a id="1169" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1173" href="Relation.Unary.html#1161" class="Bound"></a>
<a id="1176" class="Comment">------------------------------------------------------------------------</a>
<a id="1249" class="Comment">-- Special sets</a>
<a id="1266" class="Comment">-- The empty set.</a>
<a id="∅"></a><a id="1285" href="Relation.Unary.html#1285" class="Function"></a> <a id="1287" class="Symbol">:</a> <a id="1289" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="1294" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="1296" href="Level.html#512" class="Function">0</a>
<a id="1299" href="Relation.Unary.html#1285" class="Function"></a> <a id="1301" class="Symbol">=</a> <a id="1303" class="Symbol">λ</a> <a id="1305" href="Relation.Unary.html#1305" class="Bound">_</a> <a id="1307" class="Symbol"></a> <a id="1309" href="Data.Empty.html#526" class="Datatype"></a>
<a id="1312" class="Comment">-- The singleton set.</a>
<a id="_"></a><a id="1335" href="Relation.Unary.html#1335" class="Function Operator">_</a> <a id="1339" class="Symbol">:</a> <a id="1341" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="1343" class="Symbol"></a> <a id="1345" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="1350" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="1352" class="Symbol">_</a>
<a id="1354" href="Relation.Unary.html#1335" class="Function Operator"></a> <a id="1356" href="Relation.Unary.html#1356" class="Bound">x</a> <a id="1358" href="Relation.Unary.html#1335" class="Function Operator"></a> <a id="1360" class="Symbol">=</a> <a id="1362" href="Relation.Unary.html#1356" class="Bound">x</a> <a id="1364" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">≡_</a>
<a id="1368" class="Comment">-- The universal set.</a>
<a id="U"></a><a id="1391" href="Relation.Unary.html#1391" class="Function">U</a> <a id="1393" class="Symbol">:</a> <a id="1395" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="1400" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="1402" href="Level.html#512" class="Function">0</a>
<a id="1405" href="Relation.Unary.html#1391" class="Function">U</a> <a id="1407" class="Symbol">=</a> <a id="1409" class="Symbol">λ</a> <a id="1411" href="Relation.Unary.html#1411" class="Bound">_</a> <a id="1413" class="Symbol"></a> <a id="1415" href="Agda.Builtin.Unit.html#164" class="Record"></a>
<a id="1418" class="Comment">------------------------------------------------------------------------</a>
<a id="1491" class="Comment">-- Membership</a>
<a id="1506" class="Keyword">infix</a> <a id="1512" class="Number">4</a> <a id="1514" href="Relation.Unary.html#1523" class="Function Operator">_∈_</a> <a id="1518" href="Relation.Unary.html#1563" class="Function Operator">_∉_</a>
<a id="_∈_"></a><a id="1523" href="Relation.Unary.html#1523" class="Function Operator">_∈_</a> <a id="1527" class="Symbol">:</a> <a id="1529" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="1531" class="Symbol"></a> <a id="1533" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="1538" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="1540" href="Relation.Unary.html#641" class="Generalizable"></a> <a id="1542" class="Symbol"></a> <a id="1544" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1548" class="Symbol">_</a>
<a id="1550" href="Relation.Unary.html#1550" class="Bound">x</a> <a id="1552" href="Relation.Unary.html#1523" class="Function Operator"></a> <a id="1554" href="Relation.Unary.html#1554" class="Bound">P</a> <a id="1556" class="Symbol">=</a> <a id="1558" href="Relation.Unary.html#1554" class="Bound">P</a> <a id="1560" href="Relation.Unary.html#1550" class="Bound">x</a>
<a id="_∉_"></a><a id="1563" href="Relation.Unary.html#1563" class="Function Operator">_∉_</a> <a id="1567" class="Symbol">:</a> <a id="1569" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="1571" class="Symbol"></a> <a id="1573" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="1578" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="1580" href="Relation.Unary.html#641" class="Generalizable"></a> <a id="1582" class="Symbol"></a> <a id="1584" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1588" class="Symbol">_</a>
<a id="1590" href="Relation.Unary.html#1590" class="Bound">x</a> <a id="1592" href="Relation.Unary.html#1563" class="Function Operator"></a> <a id="1594" href="Relation.Unary.html#1594" class="Bound">P</a> <a id="1596" class="Symbol">=</a> <a id="1598" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="1600" href="Relation.Unary.html#1590" class="Bound">x</a> <a id="1602" href="Relation.Unary.html#1523" class="Function Operator"></a> <a id="1604" href="Relation.Unary.html#1594" class="Bound">P</a>
<a id="1607" class="Comment">------------------------------------------------------------------------</a>
<a id="1680" class="Comment">-- Subset relations</a>
<a id="1701" class="Keyword">infix</a> <a id="1707" class="Number">4</a> <a id="1709" href="Relation.Unary.html#1742" class="Function Operator">_⊆_</a> <a id="1713" href="Relation.Unary.html#1809" class="Function Operator">_⊇_</a> <a id="1717" href="Relation.Unary.html#1860" class="Function Operator">_⊈_</a> <a id="1721" href="Relation.Unary.html#1915" class="Function Operator">_⊉_</a> <a id="1725" href="Relation.Unary.html#1970" class="Function Operator">_⊂_</a> <a id="1729" href="Relation.Unary.html#2029" class="Function Operator">_⊃_</a> <a id="1733" href="Relation.Unary.html#2080" class="Function Operator">_⊄_</a> <a id="1737" href="Relation.Unary.html#2135" class="Function Operator">_⊅_</a>
<a id="_⊆_"></a><a id="1742" href="Relation.Unary.html#1742" class="Function Operator">_⊆_</a> <a id="1746" class="Symbol">:</a> <a id="1748" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="1753" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="1755" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="1758" class="Symbol"></a> <a id="1760" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="1765" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="1767" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="1770" class="Symbol"></a> <a id="1772" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1776" class="Symbol">_</a>
<a id="1778" href="Relation.Unary.html#1778" class="Bound">P</a> <a id="1780" href="Relation.Unary.html#1742" class="Function Operator"></a> <a id="1782" href="Relation.Unary.html#1782" class="Bound">Q</a> <a id="1784" class="Symbol">=</a> <a id="1786" class="Symbol"></a> <a id="1788" class="Symbol">{</a><a id="1789" href="Relation.Unary.html#1789" class="Bound">x</a><a id="1790" class="Symbol">}</a> <a id="1792" class="Symbol"></a> <a id="1794" href="Relation.Unary.html#1789" class="Bound">x</a> <a id="1796" href="Relation.Unary.html#1523" class="Function Operator"></a> <a id="1798" href="Relation.Unary.html#1778" class="Bound">P</a> <a id="1800" class="Symbol"></a> <a id="1802" href="Relation.Unary.html#1789" class="Bound">x</a> <a id="1804" href="Relation.Unary.html#1523" class="Function Operator"></a> <a id="1806" href="Relation.Unary.html#1782" class="Bound">Q</a>
<a id="_⊇_"></a><a id="1809" href="Relation.Unary.html#1809" class="Function Operator">_⊇_</a> <a id="1813" class="Symbol">:</a> <a id="1815" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="1820" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="1822" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="1825" class="Symbol"></a> <a id="1827" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="1832" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="1834" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="1837" class="Symbol"></a> <a id="1839" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1843" class="Symbol">_</a>
<a id="1845" href="Relation.Unary.html#1845" class="Bound">P</a> <a id="1847" href="Relation.Unary.html#1809" class="Function Operator"></a> <a id="1849" href="Relation.Unary.html#1849" class="Bound">Q</a> <a id="1851" class="Symbol">=</a> <a id="1853" href="Relation.Unary.html#1849" class="Bound">Q</a> <a id="1855" href="Relation.Unary.html#1742" class="Function Operator"></a> <a id="1857" href="Relation.Unary.html#1845" class="Bound">P</a>
<a id="_⊈_"></a><a id="1860" href="Relation.Unary.html#1860" class="Function Operator">_⊈_</a> <a id="1864" class="Symbol">:</a> <a id="1866" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="1871" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="1873" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="1876" class="Symbol"></a> <a id="1878" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="1883" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="1885" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="1888" class="Symbol"></a> <a id="1890" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1894" class="Symbol">_</a>
<a id="1896" href="Relation.Unary.html#1896" class="Bound">P</a> <a id="1898" href="Relation.Unary.html#1860" class="Function Operator"></a> <a id="1900" href="Relation.Unary.html#1900" class="Bound">Q</a> <a id="1902" class="Symbol">=</a> <a id="1904" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="1906" class="Symbol">(</a><a id="1907" href="Relation.Unary.html#1896" class="Bound">P</a> <a id="1909" href="Relation.Unary.html#1742" class="Function Operator"></a> <a id="1911" href="Relation.Unary.html#1900" class="Bound">Q</a><a id="1912" class="Symbol">)</a>
<a id="_⊉_"></a><a id="1915" href="Relation.Unary.html#1915" class="Function Operator">_⊉_</a> <a id="1919" class="Symbol">:</a> <a id="1921" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="1926" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="1928" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="1931" class="Symbol"></a> <a id="1933" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="1938" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="1940" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="1943" class="Symbol"></a> <a id="1945" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1949" class="Symbol">_</a>
<a id="1951" href="Relation.Unary.html#1951" class="Bound">P</a> <a id="1953" href="Relation.Unary.html#1915" class="Function Operator"></a> <a id="1955" href="Relation.Unary.html#1955" class="Bound">Q</a> <a id="1957" class="Symbol">=</a> <a id="1959" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="1961" class="Symbol">(</a><a id="1962" href="Relation.Unary.html#1951" class="Bound">P</a> <a id="1964" href="Relation.Unary.html#1809" class="Function Operator"></a> <a id="1966" href="Relation.Unary.html#1955" class="Bound">Q</a><a id="1967" class="Symbol">)</a>
<a id="_⊂_"></a><a id="1970" href="Relation.Unary.html#1970" class="Function Operator">_⊂_</a> <a id="1974" class="Symbol">:</a> <a id="1976" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="1981" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="1983" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="1986" class="Symbol"></a> <a id="1988" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="1993" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="1995" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="1998" class="Symbol"></a> <a id="2000" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2004" class="Symbol">_</a>
<a id="2006" href="Relation.Unary.html#2006" class="Bound">P</a> <a id="2008" href="Relation.Unary.html#1970" class="Function Operator"></a> <a id="2010" href="Relation.Unary.html#2010" class="Bound">Q</a> <a id="2012" class="Symbol">=</a> <a id="2014" href="Relation.Unary.html#2006" class="Bound">P</a> <a id="2016" href="Relation.Unary.html#1742" class="Function Operator"></a> <a id="2018" href="Relation.Unary.html#2010" class="Bound">Q</a> <a id="2020" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="2022" href="Relation.Unary.html#2010" class="Bound">Q</a> <a id="2024" href="Relation.Unary.html#1860" class="Function Operator"></a> <a id="2026" href="Relation.Unary.html#2006" class="Bound">P</a>
<a id="_⊃_"></a><a id="2029" href="Relation.Unary.html#2029" class="Function Operator">_⊃_</a> <a id="2033" class="Symbol">:</a> <a id="2035" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="2040" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="2042" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="2045" class="Symbol"></a> <a id="2047" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="2052" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="2054" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="2057" class="Symbol"></a> <a id="2059" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2063" class="Symbol">_</a>
<a id="2065" href="Relation.Unary.html#2065" class="Bound">P</a> <a id="2067" href="Relation.Unary.html#2029" class="Function Operator"></a> <a id="2069" href="Relation.Unary.html#2069" class="Bound">Q</a> <a id="2071" class="Symbol">=</a> <a id="2073" href="Relation.Unary.html#2069" class="Bound">Q</a> <a id="2075" href="Relation.Unary.html#1970" class="Function Operator"></a> <a id="2077" href="Relation.Unary.html#2065" class="Bound">P</a>
<a id="_⊄_"></a><a id="2080" href="Relation.Unary.html#2080" class="Function Operator">_⊄_</a> <a id="2084" class="Symbol">:</a> <a id="2086" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="2091" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="2093" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="2096" class="Symbol"></a> <a id="2098" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="2103" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="2105" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="2108" class="Symbol"></a> <a id="2110" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2114" class="Symbol">_</a>
<a id="2116" href="Relation.Unary.html#2116" class="Bound">P</a> <a id="2118" href="Relation.Unary.html#2080" class="Function Operator"></a> <a id="2120" href="Relation.Unary.html#2120" class="Bound">Q</a> <a id="2122" class="Symbol">=</a> <a id="2124" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="2126" class="Symbol">(</a><a id="2127" href="Relation.Unary.html#2116" class="Bound">P</a> <a id="2129" href="Relation.Unary.html#1970" class="Function Operator"></a> <a id="2131" href="Relation.Unary.html#2120" class="Bound">Q</a><a id="2132" class="Symbol">)</a>
<a id="_⊅_"></a><a id="2135" href="Relation.Unary.html#2135" class="Function Operator">_⊅_</a> <a id="2139" class="Symbol">:</a> <a id="2141" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="2146" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="2148" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="2151" class="Symbol"></a> <a id="2153" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="2158" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="2160" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="2163" class="Symbol"></a> <a id="2165" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2169" class="Symbol">_</a>
<a id="2171" href="Relation.Unary.html#2171" class="Bound">P</a> <a id="2173" href="Relation.Unary.html#2135" class="Function Operator"></a> <a id="2175" href="Relation.Unary.html#2175" class="Bound">Q</a> <a id="2177" class="Symbol">=</a> <a id="2179" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="2181" class="Symbol">(</a><a id="2182" href="Relation.Unary.html#2171" class="Bound">P</a> <a id="2184" href="Relation.Unary.html#2029" class="Function Operator"></a> <a id="2186" href="Relation.Unary.html#2175" class="Bound">Q</a><a id="2187" class="Symbol">)</a>
<a id="2190" class="Comment">-- The following primed variants of _⊆_ can be used when &#39;x&#39; can&#39;t</a>
<a id="2257" class="Comment">-- be inferred from &#39;x ∈ P&#39;.</a>
<a id="2287" class="Keyword">infix</a> <a id="2293" class="Number">4</a> <a id="2295" href="Relation.Unary.html#2336" class="Function Operator">_⊆_</a> <a id="2300" href="Relation.Unary.html#2403" class="Function Operator">_⊇_</a> <a id="2305" href="Relation.Unary.html#2457" class="Function Operator">_⊈_</a> <a id="2310" href="Relation.Unary.html#2515" class="Function Operator">_⊉_</a> <a id="2315" href="Relation.Unary.html#2573" class="Function Operator">_⊂_</a> <a id="2320" href="Relation.Unary.html#2636" class="Function Operator">_⊃_</a> <a id="2325" href="Relation.Unary.html#2690" class="Function Operator">_⊄_</a> <a id="2330" href="Relation.Unary.html#2748" class="Function Operator">_⊅_</a>
<a id="_⊆_"></a><a id="2336" href="Relation.Unary.html#2336" class="Function Operator">_⊆_</a> <a id="2341" class="Symbol">:</a> <a id="2343" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="2348" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="2350" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="2353" class="Symbol"></a> <a id="2355" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="2360" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="2362" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="2365" class="Symbol"></a> <a id="2367" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2371" class="Symbol">_</a>
<a id="2373" href="Relation.Unary.html#2373" class="Bound">P</a> <a id="2375" href="Relation.Unary.html#2336" class="Function Operator">⊆′</a> <a id="2378" href="Relation.Unary.html#2378" class="Bound">Q</a> <a id="2380" class="Symbol">=</a> <a id="2382" class="Symbol"></a> <a id="2384" href="Relation.Unary.html#2384" class="Bound">x</a> <a id="2386" class="Symbol"></a> <a id="2388" href="Relation.Unary.html#2384" class="Bound">x</a> <a id="2390" href="Relation.Unary.html#1523" class="Function Operator"></a> <a id="2392" href="Relation.Unary.html#2373" class="Bound">P</a> <a id="2394" class="Symbol"></a> <a id="2396" href="Relation.Unary.html#2384" class="Bound">x</a> <a id="2398" href="Relation.Unary.html#1523" class="Function Operator"></a> <a id="2400" href="Relation.Unary.html#2378" class="Bound">Q</a>
<a id="_⊇_"></a><a id="2403" href="Relation.Unary.html#2403" class="Function Operator">_⊇_</a> <a id="2408" class="Symbol">:</a> <a id="2410" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="2415" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="2417" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="2420" class="Symbol"></a> <a id="2422" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="2427" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="2429" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="2432" class="Symbol"></a> <a id="2434" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2438" class="Symbol">_</a>
<a id="2440" href="Relation.Unary.html#2440" class="Bound">Q</a> <a id="2442" href="Relation.Unary.html#2403" class="Function Operator">⊇′</a> <a id="2445" href="Relation.Unary.html#2445" class="Bound">P</a> <a id="2447" class="Symbol">=</a> <a id="2449" href="Relation.Unary.html#2445" class="Bound">P</a> <a id="2451" href="Relation.Unary.html#2336" class="Function Operator">⊆′</a> <a id="2454" href="Relation.Unary.html#2440" class="Bound">Q</a>
<a id="_⊈_"></a><a id="2457" href="Relation.Unary.html#2457" class="Function Operator">_⊈_</a> <a id="2462" class="Symbol">:</a> <a id="2464" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="2469" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="2471" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="2474" class="Symbol"></a> <a id="2476" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="2481" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="2483" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="2486" class="Symbol"></a> <a id="2488" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2492" class="Symbol">_</a>
<a id="2494" href="Relation.Unary.html#2494" class="Bound">P</a> <a id="2496" href="Relation.Unary.html#2457" class="Function Operator">⊈′</a> <a id="2499" href="Relation.Unary.html#2499" class="Bound">Q</a> <a id="2501" class="Symbol">=</a> <a id="2503" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="2505" class="Symbol">(</a><a id="2506" href="Relation.Unary.html#2494" class="Bound">P</a> <a id="2508" href="Relation.Unary.html#2336" class="Function Operator">⊆′</a> <a id="2511" href="Relation.Unary.html#2499" class="Bound">Q</a><a id="2512" class="Symbol">)</a>
<a id="_⊉_"></a><a id="2515" href="Relation.Unary.html#2515" class="Function Operator">_⊉_</a> <a id="2520" class="Symbol">:</a> <a id="2522" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="2527" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="2529" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="2532" class="Symbol"></a> <a id="2534" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="2539" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="2541" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="2544" class="Symbol"></a> <a id="2546" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2550" class="Symbol">_</a>
<a id="2552" href="Relation.Unary.html#2552" class="Bound">P</a> <a id="2554" href="Relation.Unary.html#2515" class="Function Operator">⊉′</a> <a id="2557" href="Relation.Unary.html#2557" class="Bound">Q</a> <a id="2559" class="Symbol">=</a> <a id="2561" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="2563" class="Symbol">(</a><a id="2564" href="Relation.Unary.html#2552" class="Bound">P</a> <a id="2566" href="Relation.Unary.html#2403" class="Function Operator">⊇′</a> <a id="2569" href="Relation.Unary.html#2557" class="Bound">Q</a><a id="2570" class="Symbol">)</a>
<a id="_⊂_"></a><a id="2573" href="Relation.Unary.html#2573" class="Function Operator">_⊂_</a> <a id="2578" class="Symbol">:</a> <a id="2580" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="2585" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="2587" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="2590" class="Symbol"></a> <a id="2592" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="2597" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="2599" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="2602" class="Symbol"></a> <a id="2604" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2608" class="Symbol">_</a>
<a id="2610" href="Relation.Unary.html#2610" class="Bound">P</a> <a id="2612" href="Relation.Unary.html#2573" class="Function Operator">⊂′</a> <a id="2615" href="Relation.Unary.html#2615" class="Bound">Q</a> <a id="2617" class="Symbol">=</a> <a id="2619" href="Relation.Unary.html#2610" class="Bound">P</a> <a id="2621" href="Relation.Unary.html#2336" class="Function Operator">⊆′</a> <a id="2624" href="Relation.Unary.html#2615" class="Bound">Q</a> <a id="2626" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="2628" href="Relation.Unary.html#2615" class="Bound">Q</a> <a id="2630" href="Relation.Unary.html#2457" class="Function Operator">⊈′</a> <a id="2633" href="Relation.Unary.html#2610" class="Bound">P</a>
<a id="_⊃_"></a><a id="2636" href="Relation.Unary.html#2636" class="Function Operator">_⊃_</a> <a id="2641" class="Symbol">:</a> <a id="2643" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="2648" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="2650" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="2653" class="Symbol"></a> <a id="2655" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="2660" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="2662" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="2665" class="Symbol"></a> <a id="2667" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2671" class="Symbol">_</a>
<a id="2673" href="Relation.Unary.html#2673" class="Bound">P</a> <a id="2675" href="Relation.Unary.html#2636" class="Function Operator">⊃′</a> <a id="2678" href="Relation.Unary.html#2678" class="Bound">Q</a> <a id="2680" class="Symbol">=</a> <a id="2682" href="Relation.Unary.html#2678" class="Bound">Q</a> <a id="2684" href="Relation.Unary.html#2573" class="Function Operator">⊂′</a> <a id="2687" href="Relation.Unary.html#2673" class="Bound">P</a>
<a id="_⊄_"></a><a id="2690" href="Relation.Unary.html#2690" class="Function Operator">_⊄_</a> <a id="2695" class="Symbol">:</a> <a id="2697" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="2702" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="2704" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="2707" class="Symbol"></a> <a id="2709" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="2714" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="2716" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="2719" class="Symbol"></a> <a id="2721" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2725" class="Symbol">_</a>
<a id="2727" href="Relation.Unary.html#2727" class="Bound">P</a> <a id="2729" href="Relation.Unary.html#2690" class="Function Operator">⊄′</a> <a id="2732" href="Relation.Unary.html#2732" class="Bound">Q</a> <a id="2734" class="Symbol">=</a> <a id="2736" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="2738" class="Symbol">(</a><a id="2739" href="Relation.Unary.html#2727" class="Bound">P</a> <a id="2741" href="Relation.Unary.html#2573" class="Function Operator">⊂′</a> <a id="2744" href="Relation.Unary.html#2732" class="Bound">Q</a><a id="2745" class="Symbol">)</a>
<a id="_⊅_"></a><a id="2748" href="Relation.Unary.html#2748" class="Function Operator">_⊅_</a> <a id="2753" class="Symbol">:</a> <a id="2755" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="2760" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="2762" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="2765" class="Symbol"></a> <a id="2767" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="2772" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="2774" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="2777" class="Symbol"></a> <a id="2779" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="2783" class="Symbol">_</a>
<a id="2785" href="Relation.Unary.html#2785" class="Bound">P</a> <a id="2787" href="Relation.Unary.html#2748" class="Function Operator">⊅′</a> <a id="2790" href="Relation.Unary.html#2790" class="Bound">Q</a> <a id="2792" class="Symbol">=</a> <a id="2794" href="Relation.Nullary.html#656" class="Function Operator">¬</a> <a id="2796" class="Symbol">(</a><a id="2797" href="Relation.Unary.html#2785" class="Bound">P</a> <a id="2799" href="Relation.Unary.html#2636" class="Function Operator">⊃′</a> <a id="2802" href="Relation.Unary.html#2790" class="Bound">Q</a><a id="2803" class="Symbol">)</a>
<a id="2806" class="Comment">------------------------------------------------------------------------</a>
<a id="2879" class="Comment">-- Properties of sets</a>
<a id="2902" class="Keyword">infix</a> <a id="2908" class="Number">10</a> <a id="2911" href="Relation.Unary.html#3085" class="Function">Satisfiable</a> <a id="2923" href="Relation.Unary.html#3221" class="Function">Universal</a> <a id="2933" href="Relation.Unary.html#3359" class="Function">IUniversal</a>
<a id="2945" class="Comment">-- Emptiness - no element satisfies P.</a>
<a id="Empty"></a><a id="2985" href="Relation.Unary.html#2985" class="Function">Empty</a> <a id="2991" class="Symbol">:</a> <a id="2993" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="2998" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="3000" href="Relation.Unary.html#641" class="Generalizable"></a> <a id="3002" class="Symbol"></a> <a id="3004" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3008" class="Symbol">_</a>
<a id="3010" href="Relation.Unary.html#2985" class="Function">Empty</a> <a id="3016" href="Relation.Unary.html#3016" class="Bound">P</a> <a id="3018" class="Symbol">=</a> <a id="3020" class="Symbol"></a> <a id="3022" href="Relation.Unary.html#3022" class="Bound">x</a> <a id="3024" class="Symbol"></a> <a id="3026" href="Relation.Unary.html#3022" class="Bound">x</a> <a id="3028" href="Relation.Unary.html#1563" class="Function Operator"></a> <a id="3030" href="Relation.Unary.html#3016" class="Bound">P</a>
<a id="3033" class="Comment">-- Satisfiable - at least one element satisfies P.</a>
<a id="Satisfiable"></a><a id="3085" href="Relation.Unary.html#3085" class="Function">Satisfiable</a> <a id="3097" class="Symbol">:</a> <a id="3099" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="3104" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="3106" href="Relation.Unary.html#641" class="Generalizable"></a> <a id="3108" class="Symbol"></a> <a id="3110" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3114" class="Symbol">_</a>
<a id="3116" href="Relation.Unary.html#3085" class="Function">Satisfiable</a> <a id="3128" href="Relation.Unary.html#3128" class="Bound">P</a> <a id="3130" class="Symbol">=</a> <a id="3132" href="Data.Product.html#1369" class="Function"></a> <a id="3134" class="Symbol">λ</a> <a id="3136" href="Relation.Unary.html#3136" class="Bound">x</a> <a id="3138" class="Symbol"></a> <a id="3140" href="Relation.Unary.html#3136" class="Bound">x</a> <a id="3142" href="Relation.Unary.html#1523" class="Function Operator"></a> <a id="3144" href="Relation.Unary.html#3128" class="Bound">P</a>
<a id="3147" class="Keyword">syntax</a> <a id="3154" href="Relation.Unary.html#3085" class="Function">Satisfiable</a> <a id="3166" class="Bound">P</a> <a id="3168" class="Symbol">=</a> <a id="3170" class="Function">∃⟨</a> <a id="3173" class="Bound">P</a> <a id="3175" class="Function"></a>
<a id="3178" class="Comment">-- Universality - all elements satisfy P.</a>
<a id="Universal"></a><a id="3221" href="Relation.Unary.html#3221" class="Function">Universal</a> <a id="3231" class="Symbol">:</a> <a id="3233" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="3238" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="3240" href="Relation.Unary.html#641" class="Generalizable"></a> <a id="3242" class="Symbol"></a> <a id="3244" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3248" class="Symbol">_</a>
<a id="3250" href="Relation.Unary.html#3221" class="Function">Universal</a> <a id="3260" href="Relation.Unary.html#3260" class="Bound">P</a> <a id="3262" class="Symbol">=</a> <a id="3264" class="Symbol"></a> <a id="3266" href="Relation.Unary.html#3266" class="Bound">x</a> <a id="3268" class="Symbol"></a> <a id="3270" href="Relation.Unary.html#3266" class="Bound">x</a> <a id="3272" href="Relation.Unary.html#1523" class="Function Operator"></a> <a id="3274" href="Relation.Unary.html#3260" class="Bound">P</a>
<a id="3277" class="Keyword">syntax</a> <a id="3284" href="Relation.Unary.html#3221" class="Function">Universal</a> <a id="3295" class="Bound">P</a> <a id="3297" class="Symbol">=</a> <a id="3299" class="Function">Π[</a> <a id="3302" class="Bound">P</a> <a id="3304" class="Function">]</a>
<a id="3307" class="Comment">-- Implicit universality - all elements satisfy P.</a>
<a id="IUniversal"></a><a id="3359" href="Relation.Unary.html#3359" class="Function">IUniversal</a> <a id="3370" class="Symbol">:</a> <a id="3372" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="3377" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="3379" href="Relation.Unary.html#641" class="Generalizable"></a> <a id="3381" class="Symbol"></a> <a id="3383" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3387" class="Symbol">_</a>
<a id="3389" href="Relation.Unary.html#3359" class="Function">IUniversal</a> <a id="3400" href="Relation.Unary.html#3400" class="Bound">P</a> <a id="3402" class="Symbol">=</a> <a id="3404" class="Symbol"></a> <a id="3406" class="Symbol">{</a><a id="3407" href="Relation.Unary.html#3407" class="Bound">x</a><a id="3408" class="Symbol">}</a> <a id="3410" class="Symbol"></a> <a id="3412" href="Relation.Unary.html#3407" class="Bound">x</a> <a id="3414" href="Relation.Unary.html#1523" class="Function Operator"></a> <a id="3416" href="Relation.Unary.html#3400" class="Bound">P</a>
<a id="3419" class="Keyword">syntax</a> <a id="3426" href="Relation.Unary.html#3359" class="Function">IUniversal</a> <a id="3437" class="Bound">P</a> <a id="3439" class="Symbol">=</a> <a id="3441" class="Function">∀[</a> <a id="3444" class="Bound">P</a> <a id="3446" class="Function">]</a>
<a id="3449" class="Comment">-- Decidability - it is possible to determine if an arbitrary element</a>
<a id="3519" class="Comment">-- satisfies P.</a>
<a id="Decidable"></a><a id="3536" href="Relation.Unary.html#3536" class="Function">Decidable</a> <a id="3546" class="Symbol">:</a> <a id="3548" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="3553" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="3555" href="Relation.Unary.html#641" class="Generalizable"></a> <a id="3557" class="Symbol"></a> <a id="3559" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3563" class="Symbol">_</a>
<a id="3565" href="Relation.Unary.html#3536" class="Function">Decidable</a> <a id="3575" href="Relation.Unary.html#3575" class="Bound">P</a> <a id="3577" class="Symbol">=</a> <a id="3579" class="Symbol"></a> <a id="3581" href="Relation.Unary.html#3581" class="Bound">x</a> <a id="3583" class="Symbol"></a> <a id="3585" href="Relation.Nullary.html#1511" class="Record">Dec</a> <a id="3589" class="Symbol">(</a><a id="3590" href="Relation.Unary.html#3575" class="Bound">P</a> <a id="3592" href="Relation.Unary.html#3581" class="Bound">x</a><a id="3593" class="Symbol">)</a>
<a id="3596" class="Comment">-- Erasure: A decidable predicate gives rise to another one, more</a>
<a id="3662" class="Comment">-- amenable to η-expansion</a>
<a id="⌊_⌋"></a><a id="3690" href="Relation.Unary.html#3690" class="Function Operator">⌊_⌋</a> <a id="3694" class="Symbol">:</a> <a id="3696" class="Symbol">{</a><a id="3697" href="Relation.Unary.html#3697" class="Bound">P</a> <a id="3699" class="Symbol">:</a> <a id="3701" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="3706" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="3708" href="Relation.Unary.html#641" class="Generalizable"></a><a id="3709" class="Symbol">}</a> <a id="3711" class="Symbol"></a> <a id="3713" href="Relation.Unary.html#3536" class="Function">Decidable</a> <a id="3723" href="Relation.Unary.html#3697" class="Bound">P</a> <a id="3725" class="Symbol"></a> <a id="3727" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="3732" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="3734" href="Relation.Unary.html#641" class="Generalizable"></a>
<a id="3736" href="Relation.Unary.html#3690" class="Function Operator"></a> <a id="3738" href="Relation.Unary.html#3738" class="Bound">P?</a> <a id="3741" href="Relation.Unary.html#3690" class="Function Operator"></a> <a id="3743" href="Relation.Unary.html#3743" class="Bound">a</a> <a id="3745" class="Symbol">=</a> <a id="3747" href="Level.html#400" class="Record">Lift</a> <a id="3752" class="Symbol">_</a> <a id="3754" class="Symbol">(</a><a id="3755" href="Relation.Nullary.Decidable.Core.html#1365" class="Function">True</a> <a id="3760" class="Symbol">(</a><a id="3761" href="Relation.Unary.html#3738" class="Bound">P?</a> <a id="3764" href="Relation.Unary.html#3743" class="Bound">a</a><a id="3765" class="Symbol">))</a>
<a id="3769" class="Comment">-- Irrelevance - any two proofs that an element satifies P are</a>
<a id="3832" class="Comment">-- indistinguishable.</a>
<a id="Irrelevant"></a><a id="3855" href="Relation.Unary.html#3855" class="Function">Irrelevant</a> <a id="3866" class="Symbol">:</a> <a id="3868" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="3873" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="3875" href="Relation.Unary.html#641" class="Generalizable"></a> <a id="3877" class="Symbol"></a> <a id="3879" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="3883" class="Symbol">_</a>
<a id="3885" href="Relation.Unary.html#3855" class="Function">Irrelevant</a> <a id="3896" href="Relation.Unary.html#3896" class="Bound">P</a> <a id="3898" class="Symbol">=</a> <a id="3900" class="Symbol"></a> <a id="3902" class="Symbol">{</a><a id="3903" href="Relation.Unary.html#3903" class="Bound">x</a><a id="3904" class="Symbol">}</a> <a id="3906" class="Symbol">(</a><a id="3907" href="Relation.Unary.html#3907" class="Bound">a</a> <a id="3909" class="Symbol">:</a> <a id="3911" href="Relation.Unary.html#3896" class="Bound">P</a> <a id="3913" href="Relation.Unary.html#3903" class="Bound">x</a><a id="3914" class="Symbol">)</a> <a id="3916" class="Symbol">(</a><a id="3917" href="Relation.Unary.html#3917" class="Bound">b</a> <a id="3919" class="Symbol">:</a> <a id="3921" href="Relation.Unary.html#3896" class="Bound">P</a> <a id="3923" href="Relation.Unary.html#3903" class="Bound">x</a><a id="3924" class="Symbol">)</a> <a id="3926" class="Symbol"></a> <a id="3928" href="Relation.Unary.html#3907" class="Bound">a</a> <a id="3930" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="3932" href="Relation.Unary.html#3917" class="Bound">b</a>
<a id="3935" class="Comment">-- Recomputability - we can rebuild a relevant proof given an</a>
<a id="3997" class="Comment">-- irrelevant one.</a>
<a id="Recomputable"></a><a id="4017" href="Relation.Unary.html#4017" class="Function">Recomputable</a> <a id="4030" class="Symbol">:</a> <a id="4032" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="4037" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="4039" href="Relation.Unary.html#641" class="Generalizable"></a> <a id="4041" class="Symbol"></a> <a id="4043" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4047" class="Symbol">_</a>
<a id="4049" href="Relation.Unary.html#4017" class="Function">Recomputable</a> <a id="4062" href="Relation.Unary.html#4062" class="Bound">P</a> <a id="4064" class="Symbol">=</a> <a id="4066" class="Symbol"></a> <a id="4068" class="Symbol">{</a><a id="4069" href="Relation.Unary.html#4069" class="Bound">x</a><a id="4070" class="Symbol">}</a> <a id="4072" class="Symbol"></a> <a id="4074" class="Symbol">.(</a><a id="4076" href="Relation.Unary.html#4062" class="Bound">P</a> <a id="4078" href="Relation.Unary.html#4069" class="Bound">x</a><a id="4079" class="Symbol">)</a> <a id="4081" class="Symbol"></a> <a id="4083" href="Relation.Unary.html#4062" class="Bound">P</a> <a id="4085" href="Relation.Unary.html#4069" class="Bound">x</a>
<a id="4088" class="Comment">------------------------------------------------------------------------</a>
<a id="4161" class="Comment">-- Operations on sets</a>
<a id="4184" class="Keyword">infix</a> <a id="4190" class="Number">10</a> <a id="4193" href="Relation.Unary.html#4593" class="Function"></a> <a id="4195" href="Relation.Unary.html#4741" class="Function"></a>
<a id="4197" class="Keyword">infixr</a> <a id="4204" class="Number">9</a> <a id="4206" href="Relation.Unary.html#4999" class="Function Operator">_⊢_</a>
<a id="4210" class="Keyword">infixr</a> <a id="4217" class="Number">8</a> <a id="4219" href="Relation.Unary.html#4338" class="Function Operator">_⇒_</a>
<a id="4223" class="Keyword">infixr</a> <a id="4230" class="Number">7</a> <a id="4232" href="Relation.Unary.html#4503" class="Function Operator">_∩_</a>
<a id="4236" class="Keyword">infixr</a> <a id="4243" class="Number">6</a> <a id="4245" href="Relation.Unary.html#4417" class="Function Operator">__</a>
<a id="4249" class="Keyword">infix</a> <a id="4255" class="Number">4</a> <a id="4257" href="Relation.Unary.html#4920" class="Function Operator">_≬_</a>
<a id="4262" class="Comment">-- Complement.</a>
<a id="∁"></a><a id="4278" href="Relation.Unary.html#4278" class="Function"></a> <a id="4280" class="Symbol">:</a> <a id="4282" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="4287" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="4289" href="Relation.Unary.html#641" class="Generalizable"></a> <a id="4291" class="Symbol"></a> <a id="4293" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="4298" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="4300" href="Relation.Unary.html#641" class="Generalizable"></a>
<a id="4302" href="Relation.Unary.html#4278" class="Function"></a> <a id="4304" href="Relation.Unary.html#4304" class="Bound">P</a> <a id="4306" class="Symbol">=</a> <a id="4308" class="Symbol">λ</a> <a id="4310" href="Relation.Unary.html#4310" class="Bound">x</a> <a id="4312" class="Symbol"></a> <a id="4314" href="Relation.Unary.html#4310" class="Bound">x</a> <a id="4316" href="Relation.Unary.html#1563" class="Function Operator"></a> <a id="4318" href="Relation.Unary.html#4304" class="Bound">P</a>
<a id="4321" class="Comment">-- Implication.</a>
<a id="_⇒_"></a><a id="4338" href="Relation.Unary.html#4338" class="Function Operator">_⇒_</a> <a id="4342" class="Symbol">:</a> <a id="4344" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="4349" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="4351" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="4354" class="Symbol"></a> <a id="4356" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="4361" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="4363" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="4366" class="Symbol"></a> <a id="4368" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="4373" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="4375" class="Symbol">_</a>
<a id="4377" href="Relation.Unary.html#4377" class="Bound">P</a> <a id="4379" href="Relation.Unary.html#4338" class="Function Operator"></a> <a id="4381" href="Relation.Unary.html#4381" class="Bound">Q</a> <a id="4383" class="Symbol">=</a> <a id="4385" class="Symbol">λ</a> <a id="4387" href="Relation.Unary.html#4387" class="Bound">x</a> <a id="4389" class="Symbol"></a> <a id="4391" href="Relation.Unary.html#4387" class="Bound">x</a> <a id="4393" href="Relation.Unary.html#1523" class="Function Operator"></a> <a id="4395" href="Relation.Unary.html#4377" class="Bound">P</a> <a id="4397" class="Symbol"></a> <a id="4399" href="Relation.Unary.html#4387" class="Bound">x</a> <a id="4401" href="Relation.Unary.html#1523" class="Function Operator"></a> <a id="4403" href="Relation.Unary.html#4381" class="Bound">Q</a>
<a id="4406" class="Comment">-- Union.</a>
<a id="__"></a><a id="4417" href="Relation.Unary.html#4417" class="Function Operator">__</a> <a id="4421" class="Symbol">:</a> <a id="4423" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="4428" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="4430" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="4433" class="Symbol"></a> <a id="4435" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="4440" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="4442" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="4445" class="Symbol"></a> <a id="4447" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="4452" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="4454" class="Symbol">_</a>
<a id="4456" href="Relation.Unary.html#4456" class="Bound">P</a> <a id="4458" href="Relation.Unary.html#4417" class="Function Operator"></a> <a id="4460" href="Relation.Unary.html#4460" class="Bound">Q</a> <a id="4462" class="Symbol">=</a> <a id="4464" class="Symbol">λ</a> <a id="4466" href="Relation.Unary.html#4466" class="Bound">x</a> <a id="4468" class="Symbol"></a> <a id="4470" href="Relation.Unary.html#4466" class="Bound">x</a> <a id="4472" href="Relation.Unary.html#1523" class="Function Operator"></a> <a id="4474" href="Relation.Unary.html#4456" class="Bound">P</a> <a id="4476" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="4478" href="Relation.Unary.html#4466" class="Bound">x</a> <a id="4480" href="Relation.Unary.html#1523" class="Function Operator"></a> <a id="4482" href="Relation.Unary.html#4460" class="Bound">Q</a>
<a id="4485" class="Comment">-- Intersection.</a>
<a id="_∩_"></a><a id="4503" href="Relation.Unary.html#4503" class="Function Operator">_∩_</a> <a id="4507" class="Symbol">:</a> <a id="4509" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="4514" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="4516" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="4519" class="Symbol"></a> <a id="4521" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="4526" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="4528" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="4531" class="Symbol"></a> <a id="4533" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="4538" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="4540" class="Symbol">_</a>
<a id="4542" href="Relation.Unary.html#4542" class="Bound">P</a> <a id="4544" href="Relation.Unary.html#4503" class="Function Operator"></a> <a id="4546" href="Relation.Unary.html#4546" class="Bound">Q</a> <a id="4548" class="Symbol">=</a> <a id="4550" class="Symbol">λ</a> <a id="4552" href="Relation.Unary.html#4552" class="Bound">x</a> <a id="4554" class="Symbol"></a> <a id="4556" href="Relation.Unary.html#4552" class="Bound">x</a> <a id="4558" href="Relation.Unary.html#1523" class="Function Operator"></a> <a id="4560" href="Relation.Unary.html#4542" class="Bound">P</a> <a id="4562" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="4564" href="Relation.Unary.html#4552" class="Bound">x</a> <a id="4566" href="Relation.Unary.html#1523" class="Function Operator"></a> <a id="4568" href="Relation.Unary.html#4546" class="Bound">Q</a>
<a id="4571" class="Comment">-- Infinitary union.</a>
<a id=""></a><a id="4593" href="Relation.Unary.html#4593" class="Function"></a> <a id="4595" class="Symbol">:</a> <a id="4597" class="Symbol"></a> <a id="4599" class="Symbol">{</a><a id="4600" href="Relation.Unary.html#4600" class="Bound">i</a><a id="4601" class="Symbol">}</a> <a id="4603" class="Symbol">(</a><a id="4604" href="Relation.Unary.html#4604" class="Bound">I</a> <a id="4606" class="Symbol">:</a> <a id="4608" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4612" href="Relation.Unary.html#4600" class="Bound">i</a><a id="4613" class="Symbol">)</a> <a id="4615" class="Symbol"></a> <a id="4617" class="Symbol">(</a><a id="4618" href="Relation.Unary.html#4604" class="Bound">I</a> <a id="4620" class="Symbol"></a> <a id="4622" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="4627" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="4629" href="Relation.Unary.html#641" class="Generalizable"></a><a id="4630" class="Symbol">)</a> <a id="4632" class="Symbol"></a> <a id="4634" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="4639" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="4641" class="Symbol">_</a>
<a id="4643" href="Relation.Unary.html#4593" class="Function"></a> <a id="4645" href="Relation.Unary.html#4645" class="Bound">I</a> <a id="4647" href="Relation.Unary.html#4647" class="Bound">P</a> <a id="4649" class="Symbol">=</a> <a id="4651" class="Symbol">λ</a> <a id="4653" href="Relation.Unary.html#4653" class="Bound">x</a> <a id="4655" class="Symbol"></a> <a id="4657" href="Data.Product.html#916" class="Function">Σ[</a> <a id="4660" href="Relation.Unary.html#4660" class="Bound">i</a> <a id="4662" href="Data.Product.html#916" class="Function"></a> <a id="4664" href="Relation.Unary.html#4645" class="Bound">I</a> <a id="4666" href="Data.Product.html#916" class="Function">]</a> <a id="4668" href="Relation.Unary.html#4647" class="Bound">P</a> <a id="4670" href="Relation.Unary.html#4660" class="Bound">i</a> <a id="4672" href="Relation.Unary.html#4653" class="Bound">x</a>
<a id="4675" class="Keyword">syntax</a> <a id="4682" href="Relation.Unary.html#4593" class="Function"></a> <a id="4684" class="Bound">I</a> <a id="4686" class="Symbol"></a> <a id="4689" class="Bound">i</a> <a id="4691" class="Symbol"></a> <a id="4693" class="Bound">P</a><a id="4694" class="Symbol">)</a> <a id="4696" class="Symbol">=</a> <a id="4698" class="Function">[</a> <a id="4701" class="Bound">i</a> <a id="4703" class="Function"></a> <a id="4705" class="Bound">I</a> <a id="4707" class="Function">]</a> <a id="4709" class="Bound">P</a>
<a id="4712" class="Comment">-- Infinitary intersection.</a>
<a id="⋂"></a><a id="4741" href="Relation.Unary.html#4741" class="Function"></a> <a id="4743" class="Symbol">:</a> <a id="4745" class="Symbol"></a> <a id="4747" class="Symbol">{</a><a id="4748" href="Relation.Unary.html#4748" class="Bound">i</a><a id="4749" class="Symbol">}</a> <a id="4751" class="Symbol">(</a><a id="4752" href="Relation.Unary.html#4752" class="Bound">I</a> <a id="4754" class="Symbol">:</a> <a id="4756" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4760" href="Relation.Unary.html#4748" class="Bound">i</a><a id="4761" class="Symbol">)</a> <a id="4763" class="Symbol"></a> <a id="4765" class="Symbol">(</a><a id="4766" href="Relation.Unary.html#4752" class="Bound">I</a> <a id="4768" class="Symbol"></a> <a id="4770" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="4775" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="4777" href="Relation.Unary.html#641" class="Generalizable"></a><a id="4778" class="Symbol">)</a> <a id="4780" class="Symbol"></a> <a id="4782" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="4787" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="4789" class="Symbol">_</a>
<a id="4791" href="Relation.Unary.html#4741" class="Function"></a> <a id="4793" href="Relation.Unary.html#4793" class="Bound">I</a> <a id="4795" href="Relation.Unary.html#4795" class="Bound">P</a> <a id="4797" class="Symbol">=</a> <a id="4799" class="Symbol">λ</a> <a id="4801" href="Relation.Unary.html#4801" class="Bound">x</a> <a id="4803" class="Symbol"></a> <a id="4805" class="Symbol">(</a><a id="4806" href="Relation.Unary.html#4806" class="Bound">i</a> <a id="4808" class="Symbol">:</a> <a id="4810" href="Relation.Unary.html#4793" class="Bound">I</a><a id="4811" class="Symbol">)</a> <a id="4813" class="Symbol"></a> <a id="4815" href="Relation.Unary.html#4795" class="Bound">P</a> <a id="4817" href="Relation.Unary.html#4806" class="Bound">i</a> <a id="4819" href="Relation.Unary.html#4801" class="Bound">x</a>
<a id="4822" class="Keyword">syntax</a> <a id="4829" href="Relation.Unary.html#4741" class="Function"></a> <a id="4831" class="Bound">I</a> <a id="4833" class="Symbol"></a> <a id="4836" class="Bound">i</a> <a id="4838" class="Symbol"></a> <a id="4840" class="Bound">P</a><a id="4841" class="Symbol">)</a> <a id="4843" class="Symbol">=</a> <a id="4845" class="Function">⋂[</a> <a id="4848" class="Bound">i</a> <a id="4850" class="Function"></a> <a id="4852" class="Bound">I</a> <a id="4854" class="Function">]</a> <a id="4856" class="Bound">P</a>
<a id="4859" class="Comment">-- Positive version of non-disjointness, dual to inclusion.</a>
<a id="_≬_"></a><a id="4920" href="Relation.Unary.html#4920" class="Function Operator">_≬_</a> <a id="4924" class="Symbol">:</a> <a id="4926" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="4931" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="4933" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="4936" class="Symbol"></a> <a id="4938" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="4943" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="4945" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="4948" class="Symbol"></a> <a id="4950" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="4954" class="Symbol">_</a>
<a id="4956" href="Relation.Unary.html#4956" class="Bound">P</a> <a id="4958" href="Relation.Unary.html#4920" class="Function Operator"></a> <a id="4960" href="Relation.Unary.html#4960" class="Bound">Q</a> <a id="4962" class="Symbol">=</a> <a id="4964" href="Data.Product.html#1369" class="Function"></a> <a id="4966" class="Symbol">λ</a> <a id="4968" href="Relation.Unary.html#4968" class="Bound">x</a> <a id="4970" class="Symbol"></a> <a id="4972" href="Relation.Unary.html#4968" class="Bound">x</a> <a id="4974" href="Relation.Unary.html#1523" class="Function Operator"></a> <a id="4976" href="Relation.Unary.html#4956" class="Bound">P</a> <a id="4978" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="4980" href="Relation.Unary.html#4968" class="Bound">x</a> <a id="4982" href="Relation.Unary.html#1523" class="Function Operator"></a> <a id="4984" href="Relation.Unary.html#4960" class="Bound">Q</a>
<a id="4987" class="Comment">-- Update.</a>
<a id="_⊢_"></a><a id="4999" href="Relation.Unary.html#4999" class="Function Operator">_⊢_</a> <a id="5003" class="Symbol">:</a> <a id="5005" class="Symbol">(</a><a id="5006" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="5008" class="Symbol"></a> <a id="5010" href="Relation.Unary.html#675" class="Generalizable">B</a><a id="5011" class="Symbol">)</a> <a id="5013" class="Symbol"></a> <a id="5015" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="5020" href="Relation.Unary.html#675" class="Generalizable">B</a> <a id="5022" href="Relation.Unary.html#641" class="Generalizable"></a> <a id="5024" class="Symbol"></a> <a id="5026" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="5031" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="5033" href="Relation.Unary.html#641" class="Generalizable"></a>
<a id="5035" href="Relation.Unary.html#5035" class="Bound">f</a> <a id="5037" href="Relation.Unary.html#4999" class="Function Operator"></a> <a id="5039" href="Relation.Unary.html#5039" class="Bound">P</a> <a id="5041" class="Symbol">=</a> <a id="5043" class="Symbol">λ</a> <a id="5045" href="Relation.Unary.html#5045" class="Bound">x</a> <a id="5047" class="Symbol"></a> <a id="5049" href="Relation.Unary.html#5039" class="Bound">P</a> <a id="5051" class="Symbol">(</a><a id="5052" href="Relation.Unary.html#5035" class="Bound">f</a> <a id="5054" href="Relation.Unary.html#5045" class="Bound">x</a><a id="5055" class="Symbol">)</a>
<a id="5058" class="Comment">------------------------------------------------------------------------</a>
<a id="5131" class="Comment">-- Predicate combinators</a>
<a id="5157" class="Comment">-- These differ from the set operations above, as the carrier set of the</a>
<a id="5230" class="Comment">-- resulting predicates are not the same as the carrier set of the</a>
<a id="5297" class="Comment">-- component predicates.</a>
<a id="5323" class="Keyword">infixr</a> <a id="5331" class="Number">2</a> <a id="5333" href="Relation.Unary.html#5466" class="Function Operator">_⟨×⟩_</a>
<a id="5339" class="Keyword">infixr</a> <a id="5347" class="Number">2</a> <a id="5349" href="Relation.Unary.html#5667" class="Function Operator">_⟨⊙⟩_</a>
<a id="5355" class="Keyword">infixr</a> <a id="5363" class="Number">1</a> <a id="5365" href="Relation.Unary.html#5574" class="Function Operator">_⟨⊎⟩_</a>
<a id="5371" class="Keyword">infixr</a> <a id="5379" class="Number">0</a> <a id="5381" href="Relation.Unary.html#5766" class="Function Operator">_⟨→⟩_</a>
<a id="5387" class="Keyword">infixl</a> <a id="5395" class="Number">9</a> <a id="5397" href="Relation.Unary.html#5851" class="Function Operator">_⟨·⟩_</a>
<a id="5403" class="Keyword">infix</a> <a id="5410" class="Number">10</a> <a id="5413" href="Relation.Unary.html#5983" class="Function Operator">_~</a>
<a id="5416" class="Keyword">infixr</a> <a id="5424" class="Number">9</a> <a id="5426" href="Relation.Unary.html#6053" class="Function Operator">_⟨∘⟩_</a>
<a id="5432" class="Keyword">infixr</a> <a id="5440" class="Number">2</a> <a id="5442" href="Relation.Unary.html#6186" class="Function Operator">_//_</a> <a id="5447" href="Relation.Unary.html#6306" class="Function Operator">_\\_</a>
<a id="5453" class="Comment">-- Product.</a>
<a id="_⟨×⟩_"></a><a id="5466" href="Relation.Unary.html#5466" class="Function Operator">_⟨×⟩_</a> <a id="5472" class="Symbol">:</a> <a id="5474" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="5479" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="5481" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="5484" class="Symbol"></a> <a id="5486" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="5491" href="Relation.Unary.html#675" class="Generalizable">B</a> <a id="5493" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="5496" class="Symbol"></a> <a id="5498" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="5503" class="Symbol">(</a><a id="5504" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="5506" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="5508" href="Relation.Unary.html#675" class="Generalizable">B</a><a id="5509" class="Symbol">)</a> <a id="5511" class="Symbol">_</a>
<a id="5513" class="Symbol">(</a><a id="5514" href="Relation.Unary.html#5514" class="Bound">P</a> <a id="5516" href="Relation.Unary.html#5466" class="Function Operator">⟨×⟩</a> <a id="5520" href="Relation.Unary.html#5520" class="Bound">Q</a><a id="5521" class="Symbol">)</a> <a id="5523" class="Symbol">(</a><a id="5524" href="Relation.Unary.html#5524" class="Bound">x</a> <a id="5526" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="5528" href="Relation.Unary.html#5528" class="Bound">y</a><a id="5529" class="Symbol">)</a> <a id="5531" class="Symbol">=</a> <a id="5533" href="Relation.Unary.html#5524" class="Bound">x</a> <a id="5535" href="Relation.Unary.html#1523" class="Function Operator"></a> <a id="5537" href="Relation.Unary.html#5514" class="Bound">P</a> <a id="5539" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="5541" href="Relation.Unary.html#5528" class="Bound">y</a> <a id="5543" href="Relation.Unary.html#1523" class="Function Operator"></a> <a id="5545" href="Relation.Unary.html#5520" class="Bound">Q</a>
<a id="5548" class="Comment">-- Sum over one element.</a>
<a id="_⟨⊎⟩_"></a><a id="5574" href="Relation.Unary.html#5574" class="Function Operator">_⟨⊎⟩_</a> <a id="5580" class="Symbol">:</a> <a id="5582" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="5587" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="5589" href="Relation.Unary.html#641" class="Generalizable"></a> <a id="5591" class="Symbol"></a> <a id="5593" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="5598" href="Relation.Unary.html#675" class="Generalizable">B</a> <a id="5600" href="Relation.Unary.html#641" class="Generalizable"></a> <a id="5602" class="Symbol"></a> <a id="5604" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="5609" class="Symbol">(</a><a id="5610" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="5612" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="5614" href="Relation.Unary.html#675" class="Generalizable">B</a><a id="5615" class="Symbol">)</a> <a id="5617" class="Symbol">_</a>
<a id="5619" href="Relation.Unary.html#5619" class="Bound">P</a> <a id="5621" href="Relation.Unary.html#5574" class="Function Operator">⟨⊎⟩</a> <a id="5625" href="Relation.Unary.html#5625" class="Bound">Q</a> <a id="5627" class="Symbol">=</a> <a id="5629" href="Data.Sum.Base.html#920" class="Function Operator">[</a> <a id="5631" href="Relation.Unary.html#5619" class="Bound">P</a> <a id="5633" href="Data.Sum.Base.html#920" class="Function Operator">,</a> <a id="5635" href="Relation.Unary.html#5625" class="Bound">Q</a> <a id="5637" href="Data.Sum.Base.html#920" class="Function Operator">]</a>
<a id="5640" class="Comment">-- Sum over two elements.</a>
<a id="_⟨⊙⟩_"></a><a id="5667" href="Relation.Unary.html#5667" class="Function Operator">_⟨⊙⟩_</a> <a id="5673" class="Symbol">:</a> <a id="5675" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="5680" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="5682" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="5685" class="Symbol"></a> <a id="5687" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="5692" href="Relation.Unary.html#675" class="Generalizable">B</a> <a id="5694" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="5697" class="Symbol"></a> <a id="5699" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="5704" class="Symbol">(</a><a id="5705" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="5707" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="5709" href="Relation.Unary.html#675" class="Generalizable">B</a><a id="5710" class="Symbol">)</a> <a id="5712" class="Symbol">_</a>
<a id="5714" class="Symbol">(</a><a id="5715" href="Relation.Unary.html#5715" class="Bound">P</a> <a id="5717" href="Relation.Unary.html#5667" class="Function Operator">⟨⊙⟩</a> <a id="5721" href="Relation.Unary.html#5721" class="Bound">Q</a><a id="5722" class="Symbol">)</a> <a id="5724" class="Symbol">(</a><a id="5725" href="Relation.Unary.html#5725" class="Bound">x</a> <a id="5727" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="5729" href="Relation.Unary.html#5729" class="Bound">y</a><a id="5730" class="Symbol">)</a> <a id="5732" class="Symbol">=</a> <a id="5734" href="Relation.Unary.html#5725" class="Bound">x</a> <a id="5736" href="Relation.Unary.html#1523" class="Function Operator"></a> <a id="5738" href="Relation.Unary.html#5715" class="Bound">P</a> <a id="5740" href="Data.Sum.Base.html#734" class="Datatype Operator"></a> <a id="5742" href="Relation.Unary.html#5729" class="Bound">y</a> <a id="5744" href="Relation.Unary.html#1523" class="Function Operator"></a> <a id="5746" href="Relation.Unary.html#5721" class="Bound">Q</a>
<a id="5749" class="Comment">-- Implication.</a>
<a id="_⟨→⟩_"></a><a id="5766" href="Relation.Unary.html#5766" class="Function Operator">_⟨→⟩_</a> <a id="5772" class="Symbol">:</a> <a id="5774" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="5779" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="5781" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="5784" class="Symbol"></a> <a id="5786" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="5791" href="Relation.Unary.html#675" class="Generalizable">B</a> <a id="5793" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="5796" class="Symbol"></a> <a id="5798" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="5803" class="Symbol">(</a><a id="5804" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="5806" class="Symbol"></a> <a id="5808" href="Relation.Unary.html#675" class="Generalizable">B</a><a id="5809" class="Symbol">)</a> <a id="5811" class="Symbol">_</a>
<a id="5813" class="Symbol">(</a><a id="5814" href="Relation.Unary.html#5814" class="Bound">P</a> <a id="5816" href="Relation.Unary.html#5766" class="Function Operator">⟨→⟩</a> <a id="5820" href="Relation.Unary.html#5820" class="Bound">Q</a><a id="5821" class="Symbol">)</a> <a id="5823" href="Relation.Unary.html#5823" class="Bound">f</a> <a id="5825" class="Symbol">=</a> <a id="5827" href="Relation.Unary.html#5814" class="Bound">P</a> <a id="5829" href="Relation.Unary.html#1742" class="Function Operator"></a> <a id="5831" href="Relation.Unary.html#5820" class="Bound">Q</a> <a id="5833" href="Function.Base.html#1031" class="Function Operator"></a> <a id="5835" href="Relation.Unary.html#5823" class="Bound">f</a>
<a id="5838" class="Comment">-- Product.</a>
<a id="_⟨·⟩_"></a><a id="5851" href="Relation.Unary.html#5851" class="Function Operator">_⟨·⟩_</a> <a id="5857" class="Symbol">:</a> <a id="5859" class="Symbol">(</a><a id="5860" href="Relation.Unary.html#5860" class="Bound">P</a> <a id="5862" class="Symbol">:</a> <a id="5864" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="5869" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="5871" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a><a id="5873" class="Symbol">)</a> <a id="5875" class="Symbol">(</a><a id="5876" href="Relation.Unary.html#5876" class="Bound">Q</a> <a id="5878" class="Symbol">:</a> <a id="5880" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="5885" href="Relation.Unary.html#675" class="Generalizable">B</a> <a id="5887" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a><a id="5889" class="Symbol">)</a> <a id="5891" class="Symbol"></a>
<a id="5901" class="Symbol">(</a><a id="5902" href="Relation.Unary.html#5860" class="Bound">P</a> <a id="5904" href="Relation.Unary.html#5466" class="Function Operator">⟨×⟩</a> <a id="5908" class="Symbol">(</a><a id="5909" href="Relation.Unary.html#5860" class="Bound">P</a> <a id="5911" href="Relation.Unary.html#5766" class="Function Operator">⟨→⟩</a> <a id="5915" href="Relation.Unary.html#5876" class="Bound">Q</a><a id="5916" class="Symbol">))</a> <a id="5919" href="Relation.Unary.html#1742" class="Function Operator"></a> <a id="5921" href="Relation.Unary.html#5876" class="Bound">Q</a> <a id="5923" href="Function.Base.html#1031" class="Function Operator"></a> <a id="5925" href="Data.Product.html#3422" class="Function">uncurry</a> <a id="5933" class="Symbol">(</a><a id="5934" href="Function.Base.html#1554" class="Function">flip</a> <a id="5939" href="Function.Base.html#1919" class="Function Operator">_$_</a><a id="5942" class="Symbol">)</a>
<a id="5944" class="Symbol">(</a><a id="5945" href="Relation.Unary.html#5945" class="Bound">P</a> <a id="5947" href="Relation.Unary.html#5851" class="Function Operator">⟨·⟩</a> <a id="5951" href="Relation.Unary.html#5951" class="Bound">Q</a><a id="5952" class="Symbol">)</a> <a id="5954" class="Symbol">(</a><a id="5955" href="Relation.Unary.html#5955" class="Bound">p</a> <a id="5957" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="5959" href="Relation.Unary.html#5959" class="Bound">f</a><a id="5960" class="Symbol">)</a> <a id="5962" class="Symbol">=</a> <a id="5964" href="Relation.Unary.html#5959" class="Bound">f</a> <a id="5966" href="Relation.Unary.html#5955" class="Bound">p</a>
<a id="5969" class="Comment">-- Converse.</a>
<a id="_~"></a><a id="5983" href="Relation.Unary.html#5983" class="Function Operator">_~</a> <a id="5986" class="Symbol">:</a> <a id="5988" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="5993" class="Symbol">(</a><a id="5994" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="5996" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="5998" href="Relation.Unary.html#675" class="Generalizable">B</a><a id="5999" class="Symbol">)</a> <a id="6001" href="Relation.Unary.html#641" class="Generalizable"></a> <a id="6003" class="Symbol"></a> <a id="6005" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="6010" class="Symbol">(</a><a id="6011" href="Relation.Unary.html#675" class="Generalizable">B</a> <a id="6013" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="6015" href="Relation.Unary.html#661" class="Generalizable">A</a><a id="6016" class="Symbol">)</a> <a id="6018" href="Relation.Unary.html#641" class="Generalizable"></a>
<a id="6020" href="Relation.Unary.html#6020" class="Bound">P</a> <a id="6022" href="Relation.Unary.html#5983" class="Function Operator">~</a> <a id="6024" class="Symbol">=</a> <a id="6026" href="Relation.Unary.html#6020" class="Bound">P</a> <a id="6028" href="Function.Base.html#1031" class="Function Operator"></a> <a id="6030" href="Data.Product.html#5317" class="Function">swap</a>
<a id="6036" class="Comment">-- Composition.</a>
<a id="_⟨∘⟩_"></a><a id="6053" href="Relation.Unary.html#6053" class="Function Operator">_⟨∘⟩_</a> <a id="6059" class="Symbol">:</a> <a id="6061" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="6066" class="Symbol">(</a><a id="6067" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="6069" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="6071" href="Relation.Unary.html#675" class="Generalizable">B</a><a id="6072" class="Symbol">)</a> <a id="6074" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="6077" class="Symbol"></a> <a id="6079" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="6084" class="Symbol">(</a><a id="6085" href="Relation.Unary.html#675" class="Generalizable">B</a> <a id="6087" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="6089" href="Relation.Unary.html#689" class="Generalizable">C</a><a id="6090" class="Symbol">)</a> <a id="6092" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="6095" class="Symbol"></a> <a id="6097" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="6102" class="Symbol">(</a><a id="6103" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="6105" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="6107" href="Relation.Unary.html#689" class="Generalizable">C</a><a id="6108" class="Symbol">)</a> <a id="6110" class="Symbol">_</a>
<a id="6112" class="Symbol">(</a><a id="6113" href="Relation.Unary.html#6113" class="Bound">P</a> <a id="6115" href="Relation.Unary.html#6053" class="Function Operator">⟨∘⟩</a> <a id="6119" href="Relation.Unary.html#6119" class="Bound">Q</a><a id="6120" class="Symbol">)</a> <a id="6122" class="Symbol">(</a><a id="6123" href="Relation.Unary.html#6123" class="Bound">x</a> <a id="6125" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="6127" href="Relation.Unary.html#6127" class="Bound">z</a><a id="6128" class="Symbol">)</a> <a id="6130" class="Symbol">=</a> <a id="6132" href="Data.Product.html#1369" class="Function"></a> <a id="6134" class="Symbol">λ</a> <a id="6136" href="Relation.Unary.html#6136" class="Bound">y</a> <a id="6138" class="Symbol"></a> <a id="6140" class="Symbol">(</a><a id="6141" href="Relation.Unary.html#6123" class="Bound">x</a> <a id="6143" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="6145" href="Relation.Unary.html#6136" class="Bound">y</a><a id="6146" class="Symbol">)</a> <a id="6148" href="Relation.Unary.html#1523" class="Function Operator"></a> <a id="6150" href="Relation.Unary.html#6113" class="Bound">P</a> <a id="6152" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="6154" class="Symbol">(</a><a id="6155" href="Relation.Unary.html#6136" class="Bound">y</a> <a id="6157" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="6159" href="Relation.Unary.html#6127" class="Bound">z</a><a id="6160" class="Symbol">)</a> <a id="6162" href="Relation.Unary.html#1523" class="Function Operator"></a> <a id="6164" href="Relation.Unary.html#6119" class="Bound">Q</a>
<a id="6167" class="Comment">-- Post-division.</a>
<a id="_//_"></a><a id="6186" href="Relation.Unary.html#6186" class="Function Operator">_//_</a> <a id="6191" class="Symbol">:</a> <a id="6193" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="6198" class="Symbol">(</a><a id="6199" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="6201" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="6203" href="Relation.Unary.html#689" class="Generalizable">C</a><a id="6204" class="Symbol">)</a> <a id="6206" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="6209" class="Symbol"></a> <a id="6211" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="6216" class="Symbol">(</a><a id="6217" href="Relation.Unary.html#675" class="Generalizable">B</a> <a id="6219" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="6221" href="Relation.Unary.html#689" class="Generalizable">C</a><a id="6222" class="Symbol">)</a> <a id="6224" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="6227" class="Symbol"></a> <a id="6229" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="6234" class="Symbol">(</a><a id="6235" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="6237" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="6239" href="Relation.Unary.html#675" class="Generalizable">B</a><a id="6240" class="Symbol">)</a> <a id="6242" class="Symbol">_</a>
<a id="6244" class="Symbol">(</a><a id="6245" href="Relation.Unary.html#6245" class="Bound">P</a> <a id="6247" href="Relation.Unary.html#6186" class="Function Operator">//</a> <a id="6250" href="Relation.Unary.html#6250" class="Bound">Q</a><a id="6251" class="Symbol">)</a> <a id="6253" class="Symbol">(</a><a id="6254" href="Relation.Unary.html#6254" class="Bound">x</a> <a id="6256" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="6258" href="Relation.Unary.html#6258" class="Bound">y</a><a id="6259" class="Symbol">)</a> <a id="6261" class="Symbol">=</a> <a id="6263" href="Relation.Unary.html#6250" class="Bound">Q</a> <a id="6265" href="Function.Base.html#1031" class="Function Operator"></a> <a id="6267" class="Symbol">(</a><a id="6268" href="Relation.Unary.html#6258" class="Bound">y</a> <a id="6270" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,_</a><a id="6272" class="Symbol">)</a> <a id="6274" href="Relation.Unary.html#1742" class="Function Operator"></a> <a id="6276" href="Relation.Unary.html#6245" class="Bound">P</a> <a id="6278" href="Function.Base.html#1031" class="Function Operator"></a> <a id="6280" class="Symbol">(</a><a id="6281" href="Relation.Unary.html#6254" class="Bound">x</a> <a id="6283" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,_</a><a id="6285" class="Symbol">)</a>
<a id="6288" class="Comment">-- Pre-division.</a>
<a id="_\\_"></a><a id="6306" href="Relation.Unary.html#6306" class="Function Operator">_\\_</a> <a id="6311" class="Symbol">:</a> <a id="6313" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="6318" class="Symbol">(</a><a id="6319" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="6321" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="6323" href="Relation.Unary.html#689" class="Generalizable">C</a><a id="6324" class="Symbol">)</a> <a id="6326" href="Relation.Unary.html#643" class="Generalizable">ℓ₁</a> <a id="6329" class="Symbol"></a> <a id="6331" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="6336" class="Symbol">(</a><a id="6337" href="Relation.Unary.html#661" class="Generalizable">A</a> <a id="6339" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="6341" href="Relation.Unary.html#675" class="Generalizable">B</a><a id="6342" class="Symbol">)</a> <a id="6344" href="Relation.Unary.html#646" class="Generalizable">ℓ₂</a> <a id="6347" class="Symbol"></a> <a id="6349" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="6354" class="Symbol">(</a><a id="6355" href="Relation.Unary.html#675" class="Generalizable">B</a> <a id="6357" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="6359" href="Relation.Unary.html#689" class="Generalizable">C</a><a id="6360" class="Symbol">)</a> <a id="6362" class="Symbol">_</a>
<a id="6364" href="Relation.Unary.html#6364" class="Bound">P</a> <a id="6366" href="Relation.Unary.html#6306" class="Function Operator">\\</a> <a id="6369" href="Relation.Unary.html#6369" class="Bound">Q</a> <a id="6371" class="Symbol">=</a> <a id="6373" class="Symbol">(</a><a id="6374" href="Relation.Unary.html#6364" class="Bound">P</a> <a id="6376" href="Relation.Unary.html#5983" class="Function Operator">~</a> <a id="6378" href="Relation.Unary.html#6186" class="Function Operator">//</a> <a id="6381" href="Relation.Unary.html#6369" class="Bound">Q</a> <a id="6383" href="Relation.Unary.html#5983" class="Function Operator">~</a><a id="6384" class="Symbol">)</a> <a id="6386" href="Relation.Unary.html#5983" class="Function Operator">~</a>
</pre></body></html>

33
misc/Strict.html Normal file
View File

@ -0,0 +1,33 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Strict</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Strictness combinators</a>
<a id="132" class="Comment">------------------------------------------------------------------------</a>
<a id="206" class="Symbol">{-#</a> <a id="210" class="Keyword">OPTIONS</a> <a id="218" class="Pragma">--without-K</a> <a id="230" class="Pragma">--safe</a> <a id="237" class="Symbol">#-}</a>
<a id="242" class="Keyword">module</a> <a id="249" href="Strict.html" class="Module">Strict</a> <a id="256" class="Keyword">where</a>
<a id="263" class="Keyword">open</a> <a id="268" class="Keyword">import</a> <a id="275" href="Level.html" class="Module">Level</a>
<a id="281" class="Keyword">open</a> <a id="286" class="Keyword">import</a> <a id="293" href="Agda.Builtin.Equality.html" class="Module">Agda.Builtin.Equality</a>
<a id="316" class="Keyword">open</a> <a id="321" class="Keyword">import</a> <a id="328" href="Agda.Builtin.Strict.html" class="Module">Agda.Builtin.Strict</a>
<a id="353" class="Keyword">renaming</a> <a id="362" class="Symbol">(</a> <a id="364" href="Agda.Builtin.Strict.html#179" class="Primitive">primForce</a> <a id="374" class="Symbol">to</a> <a id="377" class="Primitive">force</a>
<a id="397" class="Symbol">;</a> <a id="399" href="Agda.Builtin.Strict.html#262" class="Primitive">primForceLemma</a> <a id="414" class="Symbol">to</a> <a id="417" class="Primitive">force-≡</a><a id="424" class="Symbol">)</a> <a id="426" class="Keyword">public</a>
<a id="434" class="Comment">-- Derived combinators</a>
<a id="457" class="Keyword">module</a> <a id="464" href="Strict.html#464" class="Module">_</a> <a id="466" class="Symbol">{</a><a id="467" href="Strict.html#467" class="Bound"></a> <a id="469" href="Strict.html#469" class="Bound"></a> <a id="472" class="Symbol">:</a> <a id="474" href="Agda.Primitive.html#597" class="Postulate">Level</a><a id="479" class="Symbol">}</a> <a id="481" class="Symbol">{</a><a id="482" href="Strict.html#482" class="Bound">A</a> <a id="484" class="Symbol">:</a> <a id="486" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="490" href="Strict.html#467" class="Bound"></a><a id="491" class="Symbol">}</a> <a id="493" class="Symbol">{</a><a id="494" href="Strict.html#494" class="Bound">B</a> <a id="496" class="Symbol">:</a> <a id="498" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="502" href="Strict.html#469" class="Bound"></a><a id="504" class="Symbol">}</a> <a id="506" class="Keyword">where</a>
<a id="515" href="Strict.html#515" class="Function">force</a> <a id="522" class="Symbol">:</a> <a id="524" href="Strict.html#482" class="Bound">A</a> <a id="526" class="Symbol"></a> <a id="528" class="Symbol">(</a><a id="529" href="Strict.html#482" class="Bound">A</a> <a id="531" class="Symbol"></a> <a id="533" href="Strict.html#494" class="Bound">B</a><a id="534" class="Symbol">)</a> <a id="536" class="Symbol"></a> <a id="538" href="Strict.html#494" class="Bound">B</a>
<a id="542" href="Strict.html#515" class="Function">force</a> <a id="549" class="Symbol">=</a> <a id="551" href="Strict.html#377" class="Primitive">force</a>
<a id="560" href="Strict.html#560" class="Function">force-≡</a> <a id="569" class="Symbol">:</a> <a id="571" class="Symbol">(</a><a id="572" href="Strict.html#572" class="Bound">a</a> <a id="574" class="Symbol">:</a> <a id="576" href="Strict.html#482" class="Bound">A</a><a id="577" class="Symbol">)</a> <a id="579" class="Symbol">(</a><a id="580" href="Strict.html#580" class="Bound">f</a> <a id="582" class="Symbol">:</a> <a id="584" href="Strict.html#482" class="Bound">A</a> <a id="586" class="Symbol"></a> <a id="588" href="Strict.html#494" class="Bound">B</a><a id="589" class="Symbol">)</a> <a id="591" class="Symbol"></a> <a id="593" href="Strict.html#515" class="Function">force</a> <a id="600" href="Strict.html#572" class="Bound">a</a> <a id="602" href="Strict.html#580" class="Bound">f</a> <a id="604" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="606" href="Strict.html#580" class="Bound">f</a> <a id="608" href="Strict.html#572" class="Bound">a</a>
<a id="612" href="Strict.html#560" class="Function">force-≡</a> <a id="621" class="Symbol">=</a> <a id="623" href="Strict.html#417" class="Primitive">force-≡</a>
<a id="634" href="Strict.html#634" class="Function">seq</a> <a id="638" class="Symbol">:</a> <a id="640" href="Strict.html#482" class="Bound">A</a> <a id="642" class="Symbol"></a> <a id="644" href="Strict.html#494" class="Bound">B</a> <a id="646" class="Symbol"></a> <a id="648" href="Strict.html#494" class="Bound">B</a>
<a id="652" href="Strict.html#634" class="Function">seq</a> <a id="656" href="Strict.html#656" class="Bound">a</a> <a id="658" href="Strict.html#658" class="Bound">b</a> <a id="660" class="Symbol">=</a> <a id="662" href="Strict.html#377" class="Primitive">force</a> <a id="668" href="Strict.html#656" class="Bound">a</a> <a id="670" class="Symbol"></a> <a id="673" href="Strict.html#673" class="Bound">_</a> <a id="675" class="Symbol"></a> <a id="677" href="Strict.html#658" class="Bound">b</a><a id="678" class="Symbol">)</a>
<a id="683" href="Strict.html#683" class="Function">seq-≡</a> <a id="689" class="Symbol">:</a> <a id="691" class="Symbol">(</a><a id="692" href="Strict.html#692" class="Bound">a</a> <a id="694" class="Symbol">:</a> <a id="696" href="Strict.html#482" class="Bound">A</a><a id="697" class="Symbol">)</a> <a id="699" class="Symbol">(</a><a id="700" href="Strict.html#700" class="Bound">b</a> <a id="702" class="Symbol">:</a> <a id="704" href="Strict.html#494" class="Bound">B</a><a id="705" class="Symbol">)</a> <a id="707" class="Symbol"></a> <a id="709" href="Strict.html#634" class="Function">seq</a> <a id="713" href="Strict.html#692" class="Bound">a</a> <a id="715" href="Strict.html#700" class="Bound">b</a> <a id="717" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="719" href="Strict.html#700" class="Bound">b</a>
<a id="723" href="Strict.html#683" class="Function">seq-≡</a> <a id="729" href="Strict.html#729" class="Bound">a</a> <a id="731" href="Strict.html#731" class="Bound">b</a> <a id="733" class="Symbol">=</a> <a id="735" href="Strict.html#417" class="Primitive">force-≡</a> <a id="743" href="Strict.html#729" class="Bound">a</a> <a id="745" class="Symbol"></a> <a id="748" href="Strict.html#748" class="Bound">_</a> <a id="750" class="Symbol"></a> <a id="752" href="Strict.html#731" class="Bound">b</a><a id="753" class="Symbol">)</a>
</pre></body></html>

111
misc/wlpo.html Normal file
View File

@ -0,0 +1,111 @@
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>wlpo</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">--safe</a> <a id="20" class="Pragma">--without-K</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="Agda.Primitive.html" class="Module">Agda.Primitive</a> <a id="64" class="Keyword">renaming</a> <a id="73" class="Symbol">(</a><a id="74" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="78" class="Symbol">to</a> <a id="81" class="Primitive">𝒰</a><a id="82" class="Symbol">)</a>
<a id="84" class="Keyword">open</a> <a id="89" class="Keyword">import</a> <a id="96" href="Agda.Builtin.Nat.html" class="Module">Agda.Builtin.Nat</a> <a id="113" class="Keyword">renaming</a> <a id="122" class="Symbol">(</a><a id="123" href="Agda.Builtin.Nat.html#192" class="Datatype">Nat</a> <a id="127" class="Symbol">to</a> <a id="130" class="Datatype"></a><a id="131" class="Symbol">)</a> <a id="133" class="Keyword">hiding</a> <a id="140" class="Symbol">(</a><a id="141" href="Agda.Builtin.Nat.html#325" class="Primitive Operator">_+_</a><a id="144" class="Symbol">)</a>
<a id="146" class="Keyword">open</a> <a id="151" class="Keyword">import</a> <a id="158" href="Agda.Builtin.Bool.html" class="Module">Agda.Builtin.Bool</a> <a id="176" class="Keyword">renaming</a> <a id="185" class="Symbol">(</a><a id="186" href="Agda.Builtin.Bool.html#163" class="Datatype">Bool</a> <a id="191" class="Symbol">to</a> <a id="194" class="Datatype">𝟚</a><a id="195" class="Symbol">;</a> <a id="197" href="Agda.Builtin.Bool.html#182" class="InductiveConstructor">false</a> <a id="203" class="Symbol">to</a> <a id="206" class="InductiveConstructor">𝟘</a><a id="207" class="Symbol">;</a> <a id="209" href="Agda.Builtin.Bool.html#188" class="InductiveConstructor">true</a> <a id="214" class="Symbol">to</a> <a id="217" class="InductiveConstructor">𝟙</a><a id="218" class="Symbol">)</a>
<a id="220" class="Keyword">open</a> <a id="225" class="Keyword">import</a> <a id="232" href="Agda.Builtin.Equality.html" class="Module">Agda.Builtin.Equality</a> <a id="254" class="Keyword">using</a> <a id="260" class="Symbol">(</a><a id="261" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡_</a><a id="264" class="Symbol">;</a> <a id="266" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a><a id="270" class="Symbol">)</a>
<a id="272" class="Keyword">open</a> <a id="277" class="Keyword">import</a> <a id="284" href="Function.html" class="Module">Function</a> <a id="293" class="Keyword">using</a> <a id="299" class="Symbol">(</a><a id="300" href="Function.Base.html#1031" class="Function Operator">_∘_</a><a id="303" class="Symbol">;</a> <a id="305" href="Function.Base.html#636" class="Function">const</a><a id="310" class="Symbol">)</a>
<a id="313" class="Comment">{- Variables -}</a>
<a id="329" class="Keyword">variable</a>
<a id="340" href="wlpo.html#340" class="Generalizable"></a> <a id="342" class="Symbol">:</a> <a id="344" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="352" href="wlpo.html#352" class="Generalizable"></a> <a id="354" class="Symbol">:</a> <a id="356" href="Agda.Primitive.html#597" class="Postulate">Level</a>
<a id="364" href="wlpo.html#364" class="Generalizable">A</a> <a id="366" class="Symbol">:</a> <a id="368" href="wlpo.html#81" class="Primitive">𝒰</a> <a id="370" href="wlpo.html#340" class="Generalizable"></a>
<a id="374" href="wlpo.html#374" class="Generalizable">B</a> <a id="376" class="Symbol">:</a> <a id="378" href="wlpo.html#81" class="Primitive">𝒰</a> <a id="380" href="wlpo.html#340" class="Generalizable"></a>
<a id="384" href="wlpo.html#384" class="Generalizable">C</a> <a id="386" class="Symbol">:</a> <a id="388" href="wlpo.html#81" class="Primitive">𝒰</a> <a id="390" href="wlpo.html#340" class="Generalizable"></a>
<a id="393" class="Comment">{- Types -}</a>
<a id="406" class="Keyword">data</a> <a id="⊥"></a><a id="411" href="wlpo.html#411" class="Datatype"></a> <a id="413" class="Symbol">:</a> <a id="415" href="wlpo.html#81" class="Primitive">𝒰₀</a> <a id="418" class="Keyword">where</a>
<a id="425" class="Keyword">infixr</a> <a id="432" class="Number">8</a> <a id="434" href="wlpo.html#437" class="Function Operator">¬_</a>
<a id="¬_"></a><a id="437" href="wlpo.html#437" class="Function Operator">¬_</a> <a id="440" class="Symbol">:</a> <a id="442" href="wlpo.html#81" class="Primitive">𝒰</a> <a id="444" href="wlpo.html#340" class="Generalizable"></a> <a id="446" class="Symbol"></a> <a id="448" href="wlpo.html#81" class="Primitive">𝒰</a> <a id="450" href="wlpo.html#340" class="Generalizable"></a>
<a id="452" href="wlpo.html#437" class="Function Operator">¬</a> <a id="454" href="wlpo.html#454" class="Bound">p</a> <a id="456" class="Symbol">=</a> <a id="458" href="wlpo.html#454" class="Bound">p</a> <a id="460" class="Symbol"></a> <a id="462" href="wlpo.html#411" class="Datatype"></a>
<a id="465" class="Keyword">infixr</a> <a id="472" class="Number">2</a> <a id="474" href="wlpo.html#483" class="Datatype Operator">_+_</a>
<a id="478" class="Keyword">data</a> <a id="_+_"></a><a id="483" href="wlpo.html#483" class="Datatype Operator">_+_</a> <a id="487" class="Symbol">(</a><a id="488" href="wlpo.html#488" class="Bound">A</a> <a id="490" class="Symbol">:</a> <a id="492" href="wlpo.html#81" class="Primitive">𝒰</a> <a id="494" href="wlpo.html#340" class="Generalizable"></a><a id="495" class="Symbol">)</a> <a id="497" class="Symbol">(</a><a id="498" href="wlpo.html#498" class="Bound">B</a> <a id="500" class="Symbol">:</a> <a id="502" href="wlpo.html#81" class="Primitive">𝒰</a> <a id="504" href="wlpo.html#352" class="Generalizable"></a><a id="505" class="Symbol">)</a> <a id="507" class="Symbol">:</a> <a id="509" href="wlpo.html#81" class="Primitive">𝒰</a> <a id="511" class="Symbol">(</a><a id="512" href="wlpo.html#494" class="Bound"></a> <a id="514" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="516" href="wlpo.html#504" class="Bound"></a><a id="517" class="Symbol">)</a> <a id="519" class="Keyword">where</a>
<a id="_+_.inl"></a><a id="527" href="wlpo.html#527" class="InductiveConstructor">inl</a> <a id="531" class="Symbol">:</a> <a id="533" href="wlpo.html#488" class="Bound">A</a> <a id="535" class="Symbol"></a> <a id="537" href="wlpo.html#488" class="Bound">A</a> <a id="539" href="wlpo.html#483" class="Datatype Operator">+</a> <a id="541" href="wlpo.html#498" class="Bound">B</a>
<a id="_+_.inr"></a><a id="545" href="wlpo.html#545" class="InductiveConstructor">inr</a> <a id="549" class="Symbol">:</a> <a id="551" href="wlpo.html#498" class="Bound">B</a> <a id="553" class="Symbol"></a> <a id="555" href="wlpo.html#488" class="Bound">A</a> <a id="557" href="wlpo.html#483" class="Datatype Operator">+</a> <a id="559" href="wlpo.html#498" class="Bound">B</a>
<a id="binary-sequence"></a><a id="562" href="wlpo.html#562" class="Function">binary-sequence</a> <a id="578" class="Symbol">:</a> <a id="580" href="wlpo.html#81" class="Primitive">𝒰₀</a>
<a id="583" href="wlpo.html#562" class="Function">binary-sequence</a> <a id="599" class="Symbol">=</a> <a id="601" href="wlpo.html#130" class="Datatype"></a> <a id="603" class="Symbol"></a> <a id="605" href="wlpo.html#194" class="Datatype">𝟚</a>
<a id="all-zeros"></a><a id="610" href="wlpo.html#610" class="Function">all-zeros</a> <a id="620" class="Symbol">:</a> <a id="622" href="wlpo.html#562" class="Function">binary-sequence</a> <a id="638" class="Symbol"></a> <a id="640" href="wlpo.html#81" class="Primitive">𝒰₀</a>
<a id="643" href="wlpo.html#610" class="Function">all-zeros</a> <a id="653" href="wlpo.html#653" class="Bound">α</a> <a id="655" class="Symbol">=</a> <a id="657" class="Symbol">(</a><a id="658" href="wlpo.html#658" class="Bound">n</a> <a id="660" class="Symbol">:</a> <a id="662" href="wlpo.html#130" class="Datatype"></a><a id="663" class="Symbol">)</a> <a id="665" class="Symbol"></a> <a id="667" href="wlpo.html#653" class="Bound">α</a> <a id="669" href="wlpo.html#658" class="Bound">n</a> <a id="671" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="673" href="wlpo.html#206" class="InductiveConstructor">𝟘</a>
<a id="has-WLPO"></a><a id="676" href="wlpo.html#676" class="Function">has-WLPO</a> <a id="685" class="Symbol">:</a> <a id="687" href="wlpo.html#562" class="Function">binary-sequence</a> <a id="703" class="Symbol"></a> <a id="705" href="wlpo.html#81" class="Primitive">𝒰₀</a>
<a id="708" href="wlpo.html#676" class="Function">has-WLPO</a> <a id="717" href="wlpo.html#717" class="Bound">α</a> <a id="719" class="Symbol">=</a> <a id="721" href="wlpo.html#610" class="Function">all-zeros</a> <a id="731" href="wlpo.html#717" class="Bound">α</a> <a id="733" href="wlpo.html#483" class="Datatype Operator">+</a> <a id="735" href="wlpo.html#437" class="Function Operator">¬</a> <a id="737" class="Symbol">(</a><a id="738" href="wlpo.html#610" class="Function">all-zeros</a> <a id="748" href="wlpo.html#717" class="Bound">α</a><a id="749" class="Symbol">)</a>
<a id="WLPO"></a><a id="755" href="wlpo.html#755" class="Function">WLPO</a> <a id="760" class="Symbol">:</a> <a id="762" href="wlpo.html#81" class="Primitive">𝒰₀</a>
<a id="765" href="wlpo.html#755" class="Function">WLPO</a> <a id="770" class="Symbol">=</a> <a id="772" class="Symbol">(</a><a id="773" href="wlpo.html#773" class="Bound">α</a> <a id="775" class="Symbol">:</a> <a id="777" href="wlpo.html#562" class="Function">binary-sequence</a><a id="792" class="Symbol">)</a> <a id="794" class="Symbol"></a> <a id="796" href="wlpo.html#676" class="Function">has-WLPO</a> <a id="805" href="wlpo.html#773" class="Bound">α</a>
<a id="at-most-one-one"></a><a id="811" href="wlpo.html#811" class="Function">at-most-one-one</a> <a id="827" class="Symbol">:</a> <a id="829" href="wlpo.html#562" class="Function">binary-sequence</a> <a id="845" class="Symbol"></a> <a id="847" href="wlpo.html#81" class="Primitive">𝒰₀</a>
<a id="850" href="wlpo.html#811" class="Function">at-most-one-one</a> <a id="866" href="wlpo.html#866" class="Bound">α</a> <a id="868" class="Symbol">=</a> <a id="870" class="Symbol">(</a><a id="871" href="wlpo.html#871" class="Bound">a</a> <a id="873" href="wlpo.html#873" class="Bound">b</a> <a id="875" class="Symbol">:</a> <a id="877" href="wlpo.html#130" class="Datatype"></a><a id="878" class="Symbol">)</a> <a id="880" class="Symbol"></a> <a id="882" href="wlpo.html#866" class="Bound">α</a> <a id="884" href="wlpo.html#871" class="Bound">a</a> <a id="886" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="888" href="wlpo.html#217" class="InductiveConstructor">𝟙</a> <a id="890" class="Symbol"></a> <a id="892" href="wlpo.html#866" class="Bound">α</a> <a id="894" href="wlpo.html#873" class="Bound">b</a> <a id="896" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="898" href="wlpo.html#217" class="InductiveConstructor">𝟙</a> <a id="900" class="Symbol"></a> <a id="902" href="wlpo.html#871" class="Bound">a</a> <a id="904" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="906" href="wlpo.html#873" class="Bound">b</a>
<a id="909" class="Comment">-- needed for LLPO</a>
<a id="dup"></a><a id="928" href="wlpo.html#928" class="Function">dup</a> <a id="932" class="Symbol">:</a> <a id="934" href="wlpo.html#130" class="Datatype"></a> <a id="936" class="Symbol"></a> <a id="938" href="wlpo.html#130" class="Datatype"></a>
<a id="940" href="wlpo.html#928" class="Function">dup</a> <a id="944" class="Number">0</a> <a id="946" class="Symbol">=</a> <a id="948" class="Number">0</a>
<a id="950" href="wlpo.html#928" class="Function">dup</a> <a id="954" class="Symbol">(</a><a id="955" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="959" href="wlpo.html#959" class="Bound">n</a><a id="960" class="Symbol">)</a> <a id="962" class="Symbol">=</a> <a id="964" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="968" class="Symbol">(</a><a id="969" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="973" class="Symbol">(</a><a id="974" href="wlpo.html#928" class="Function">dup</a> <a id="978" href="wlpo.html#959" class="Bound">n</a><a id="979" class="Symbol">))</a>
<a id="evens"></a><a id="983" href="wlpo.html#983" class="Function">evens</a> <a id="989" class="Symbol">:</a> <a id="991" href="wlpo.html#130" class="Datatype"></a> <a id="993" class="Symbol"></a> <a id="995" href="wlpo.html#130" class="Datatype"></a>
<a id="997" href="wlpo.html#983" class="Function">evens</a> <a id="1003" class="Symbol">=</a> <a id="1005" href="wlpo.html#928" class="Function">dup</a>
<a id="odds"></a><a id="1010" href="wlpo.html#1010" class="Function">odds</a> <a id="1015" class="Symbol">:</a> <a id="1017" href="wlpo.html#130" class="Datatype"></a> <a id="1019" class="Symbol"></a> <a id="1021" href="wlpo.html#130" class="Datatype"></a>
<a id="1023" href="wlpo.html#1010" class="Function">odds</a> <a id="1028" class="Symbol">=</a> <a id="1030" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="1034" href="Function.Base.html#1031" class="Function Operator"></a> <a id="1036" href="wlpo.html#928" class="Function">dup</a>
<a id="LLPO"></a><a id="1041" href="wlpo.html#1041" class="Function">LLPO</a> <a id="1046" class="Symbol">:</a> <a id="1048" href="wlpo.html#81" class="Primitive">𝒰₀</a>
<a id="1051" href="wlpo.html#1041" class="Function">LLPO</a> <a id="1056" class="Symbol">=</a> <a id="1058" class="Symbol">(</a><a id="1059" href="wlpo.html#1059" class="Bound">α</a> <a id="1061" class="Symbol">:</a> <a id="1063" href="wlpo.html#562" class="Function">binary-sequence</a><a id="1078" class="Symbol">)</a> <a id="1080" class="Symbol"></a> <a id="1082" href="wlpo.html#811" class="Function">at-most-one-one</a> <a id="1098" href="wlpo.html#1059" class="Bound">α</a> <a id="1100" class="Symbol"></a> <a id="1102" href="wlpo.html#610" class="Function">all-zeros</a> <a id="1112" class="Symbol">(</a><a id="1113" href="wlpo.html#1059" class="Bound">α</a> <a id="1115" href="Function.Base.html#1031" class="Function Operator"></a> <a id="1117" href="wlpo.html#983" class="Function">evens</a><a id="1122" class="Symbol">)</a> <a id="1124" href="wlpo.html#483" class="Datatype Operator">+</a> <a id="1126" href="wlpo.html#610" class="Function">all-zeros</a> <a id="1136" class="Symbol">(</a><a id="1137" href="wlpo.html#1059" class="Bound">α</a> <a id="1139" href="Function.Base.html#1031" class="Function Operator"></a> <a id="1141" href="wlpo.html#1010" class="Function">odds</a><a id="1145" class="Symbol">)</a>
<a id="1148" class="Comment">{- Eliminators -}</a>
<a id="⊥-elim"></a><a id="1166" href="wlpo.html#1166" class="Function">⊥-elim</a> <a id="1173" class="Symbol">:</a> <a id="1175" href="wlpo.html#411" class="Datatype"></a> <a id="1177" class="Symbol"></a> <a id="1179" href="wlpo.html#364" class="Generalizable">A</a>
<a id="1181" href="wlpo.html#1166" class="Function">⊥-elim</a> <a id="1188" class="Symbol">()</a>
<a id="+-elim"></a><a id="1192" href="wlpo.html#1192" class="Function">+-elim</a> <a id="1199" class="Symbol">:</a> <a id="1201" href="wlpo.html#364" class="Generalizable">A</a> <a id="1203" href="wlpo.html#483" class="Datatype Operator">+</a> <a id="1205" href="wlpo.html#374" class="Generalizable">B</a> <a id="1207" class="Symbol"></a> <a id="1209" class="Symbol">(</a><a id="1210" href="wlpo.html#364" class="Generalizable">A</a> <a id="1212" class="Symbol"></a> <a id="1214" href="wlpo.html#384" class="Generalizable">C</a><a id="1215" class="Symbol">)</a> <a id="1217" class="Symbol"></a> <a id="1219" class="Symbol">(</a><a id="1220" href="wlpo.html#374" class="Generalizable">B</a> <a id="1222" class="Symbol"></a> <a id="1224" href="wlpo.html#384" class="Generalizable">C</a><a id="1225" class="Symbol">)</a> <a id="1227" class="Symbol"></a> <a id="1229" href="wlpo.html#384" class="Generalizable">C</a>
<a id="1231" href="wlpo.html#1192" class="Function">+-elim</a> <a id="1238" class="Symbol">(</a><a id="1239" href="wlpo.html#527" class="InductiveConstructor">inl</a> <a id="1243" href="wlpo.html#1243" class="Bound">a</a><a id="1244" class="Symbol">)</a> <a id="1246" href="wlpo.html#1246" class="Bound">f</a> <a id="1248" class="Symbol">_</a> <a id="1250" class="Symbol">=</a> <a id="1252" href="wlpo.html#1246" class="Bound">f</a> <a id="1254" href="wlpo.html#1243" class="Bound">a</a>
<a id="1256" href="wlpo.html#1192" class="Function">+-elim</a> <a id="1263" class="Symbol">(</a><a id="1264" href="wlpo.html#545" class="InductiveConstructor">inr</a> <a id="1268" href="wlpo.html#1268" class="Bound">b</a><a id="1269" class="Symbol">)</a> <a id="1271" class="Symbol">_</a> <a id="1273" href="wlpo.html#1273" class="Bound">g</a> <a id="1275" class="Symbol">=</a> <a id="1277" href="wlpo.html#1273" class="Bound">g</a> <a id="1279" href="wlpo.html#1268" class="Bound">b</a>
<a id="1282" class="Comment">-- A bit funky, but comes in handy</a>
<a id="𝟚-elim"></a><a id="1317" href="wlpo.html#1317" class="Function">𝟚-elim</a> <a id="1324" class="Symbol">:</a> <a id="1326" class="Symbol">(</a><a id="1327" href="wlpo.html#1327" class="Bound">C</a> <a id="1329" class="Symbol">:</a> <a id="1331" href="wlpo.html#194" class="Datatype">𝟚</a> <a id="1333" class="Symbol"></a> <a id="1335" href="wlpo.html#81" class="Primitive">𝒰</a> <a id="1337" href="wlpo.html#340" class="Generalizable"></a><a id="1338" class="Symbol">)</a> <a id="1340" class="Symbol"></a> <a id="1342" class="Symbol">(</a><a id="1343" href="wlpo.html#1343" class="Bound">b</a> <a id="1345" class="Symbol">:</a> <a id="1347" href="wlpo.html#194" class="Datatype">𝟚</a><a id="1348" class="Symbol">)</a> <a id="1350" class="Symbol"></a> <a id="1352" class="Symbol">(</a><a id="1353" href="wlpo.html#1343" class="Bound">b</a> <a id="1355" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1357" href="wlpo.html#206" class="InductiveConstructor">𝟘</a> <a id="1359" class="Symbol"></a> <a id="1361" href="wlpo.html#1327" class="Bound">C</a> <a id="1363" href="wlpo.html#206" class="InductiveConstructor">𝟘</a><a id="1364" class="Symbol">)</a> <a id="1366" class="Symbol"></a> <a id="1368" class="Symbol">(</a><a id="1369" href="wlpo.html#1343" class="Bound">b</a> <a id="1371" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1373" href="wlpo.html#217" class="InductiveConstructor">𝟙</a> <a id="1375" class="Symbol"></a> <a id="1377" href="wlpo.html#1327" class="Bound">C</a> <a id="1379" href="wlpo.html#217" class="InductiveConstructor">𝟙</a><a id="1380" class="Symbol">)</a> <a id="1382" class="Symbol"></a> <a id="1384" href="wlpo.html#1327" class="Bound">C</a> <a id="1386" href="wlpo.html#1343" class="Bound">b</a>
<a id="1388" href="wlpo.html#1317" class="Function">𝟚-elim</a> <a id="1395" class="Symbol">_</a> <a id="1397" href="wlpo.html#206" class="InductiveConstructor">𝟘</a> <a id="1399" href="wlpo.html#1399" class="Bound">z</a> <a id="1401" class="Symbol">_</a> <a id="1403" class="Symbol">=</a> <a id="1405" href="wlpo.html#1399" class="Bound">z</a> <a id="1407" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="1412" href="wlpo.html#1317" class="Function">𝟚-elim</a> <a id="1419" class="Symbol">_</a> <a id="1421" href="wlpo.html#217" class="InductiveConstructor">𝟙</a> <a id="1423" class="Symbol">_</a> <a id="1425" href="wlpo.html#1425" class="Bound">o</a> <a id="1427" class="Symbol">=</a> <a id="1429" href="wlpo.html#1425" class="Bound">o</a> <a id="1431" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="1437" class="Comment">{- Lemmas -}</a>
<a id="1451" class="Comment">-- I think this is a bit ugly, but it works and I&#39;m tired</a>
<a id="e≢o"></a><a id="1509" href="wlpo.html#1509" class="Function">e≢o</a> <a id="1513" class="Symbol">:</a> <a id="1515" class="Symbol">{</a><a id="1516" href="wlpo.html#1516" class="Bound">n</a> <a id="1518" href="wlpo.html#1518" class="Bound">m</a> <a id="1520" class="Symbol">:</a> <a id="1522" href="wlpo.html#130" class="Datatype"></a><a id="1523" class="Symbol">}</a> <a id="1525" class="Symbol"></a> <a id="1527" href="wlpo.html#437" class="Function Operator">¬</a> <a id="1529" class="Symbol">(</a><a id="1530" href="wlpo.html#983" class="Function">evens</a> <a id="1536" href="wlpo.html#1516" class="Bound">n</a> <a id="1538" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1540" href="wlpo.html#1010" class="Function">odds</a> <a id="1545" href="wlpo.html#1518" class="Bound">m</a><a id="1546" class="Symbol">)</a>
<a id="1548" href="wlpo.html#1509" class="Function">e≢o</a> <a id="1552" class="Symbol">{</a><a id="1553" href="Agda.Builtin.Nat.html#210" class="InductiveConstructor">zero</a><a id="1557" class="Symbol">}</a> <a id="1559" class="Symbol">{</a><a id="1560" href="Agda.Builtin.Nat.html#210" class="InductiveConstructor">zero</a><a id="1564" class="Symbol">}</a> <a id="1566" class="Symbol">()</a>
<a id="1569" href="wlpo.html#1509" class="Function">e≢o</a> <a id="1573" class="Symbol">{</a><a id="1574" href="Agda.Builtin.Nat.html#210" class="InductiveConstructor">zero</a><a id="1578" class="Symbol">}</a> <a id="1580" class="Symbol">{</a><a id="1581" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="1585" href="wlpo.html#1585" class="Bound">m</a><a id="1586" class="Symbol">}</a> <a id="1588" class="Symbol">()</a>
<a id="1591" href="wlpo.html#1509" class="Function">e≢o</a> <a id="1595" class="Symbol">{</a><a id="1596" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="1600" href="wlpo.html#1600" class="Bound">n</a><a id="1601" class="Symbol">}</a> <a id="1603" class="Symbol">{</a><a id="1604" href="Agda.Builtin.Nat.html#210" class="InductiveConstructor">zero</a><a id="1608" class="Symbol">}</a> <a id="1610" class="Symbol">()</a>
<a id="1613" href="wlpo.html#1509" class="Function">e≢o</a> <a id="1617" class="Symbol">{</a><a id="1618" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="1622" href="wlpo.html#1622" class="Bound">n</a><a id="1623" class="Symbol">}</a> <a id="1625" class="Symbol">{</a><a id="1626" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="1630" href="wlpo.html#1630" class="Bound">m</a><a id="1631" class="Symbol">}</a> <a id="1633" href="wlpo.html#1633" class="Bound">p</a> <a id="1635" class="Symbol">=</a> <a id="1637" href="wlpo.html#1509" class="Function">e≢o</a> <a id="1641" class="Symbol">{</a><a id="1642" href="wlpo.html#1622" class="Bound">n</a><a id="1643" class="Symbol">}</a> <a id="1645" class="Symbol">{</a><a id="1646" href="wlpo.html#1630" class="Bound">m</a><a id="1647" class="Symbol">}</a> <a id="1649" class="Symbol">(</a><a id="1650" href="wlpo.html#1916" class="Function">ds</a> <a id="1653" class="Symbol">(</a><a id="1654" href="wlpo.html#1829" class="Function">tr</a> <a id="1657" class="Symbol">(</a><a id="1658" href="wlpo.html#1687" class="Function">he</a> <a id="1661" href="wlpo.html#1622" class="Bound">n</a><a id="1662" class="Symbol">)</a> <a id="1664" class="Symbol">(</a><a id="1665" href="wlpo.html#1759" class="Function">ho</a> <a id="1668" href="wlpo.html#1630" class="Bound">m</a><a id="1669" class="Symbol">)</a> <a id="1671" href="wlpo.html#1633" class="Bound">p</a><a id="1672" class="Symbol">))</a>
<a id="1677" class="Keyword">where</a>
<a id="1687" href="wlpo.html#1687" class="Function">he</a> <a id="1690" class="Symbol">:</a> <a id="1692" class="Symbol">(</a><a id="1693" href="wlpo.html#1693" class="Bound">q</a> <a id="1695" class="Symbol">:</a> <a id="1697" href="wlpo.html#130" class="Datatype"></a><a id="1698" class="Symbol">)</a> <a id="1700" class="Symbol"></a> <a id="1702" href="wlpo.html#983" class="Function">evens</a> <a id="1708" class="Symbol">(</a><a id="1709" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="1713" href="wlpo.html#1693" class="Bound">q</a><a id="1714" class="Symbol">)</a> <a id="1716" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1718" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="1722" class="Symbol">(</a><a id="1723" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="1727" class="Symbol">(</a><a id="1728" href="wlpo.html#983" class="Function">evens</a> <a id="1734" href="wlpo.html#1693" class="Bound">q</a><a id="1735" class="Symbol">))</a>
<a id="1742" href="wlpo.html#1687" class="Function">he</a> <a id="1745" class="Symbol">_</a> <a id="1747" class="Symbol">=</a> <a id="1749" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="1759" href="wlpo.html#1759" class="Function">ho</a> <a id="1762" class="Symbol">:</a> <a id="1764" class="Symbol">(</a><a id="1765" href="wlpo.html#1765" class="Bound">q</a> <a id="1767" class="Symbol">:</a> <a id="1769" href="wlpo.html#130" class="Datatype"></a><a id="1770" class="Symbol">)</a> <a id="1772" class="Symbol"></a> <a id="1774" href="wlpo.html#1010" class="Function">odds</a> <a id="1779" class="Symbol">(</a><a id="1780" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="1784" href="wlpo.html#1765" class="Bound">q</a><a id="1785" class="Symbol">)</a> <a id="1787" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1789" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="1793" class="Symbol">(</a><a id="1794" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="1798" class="Symbol">(</a><a id="1799" href="wlpo.html#1010" class="Function">odds</a> <a id="1804" href="wlpo.html#1765" class="Bound">q</a><a id="1805" class="Symbol">))</a>
<a id="1812" href="wlpo.html#1759" class="Function">ho</a> <a id="1815" class="Symbol">_</a> <a id="1817" class="Symbol">=</a> <a id="1819" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="1829" href="wlpo.html#1829" class="Function">tr</a> <a id="1832" class="Symbol">:</a> <a id="1834" class="Symbol"></a> <a id="1836" class="Symbol">{</a><a id="1837" href="wlpo.html#1837" class="Bound">a</a> <a id="1839" href="wlpo.html#1839" class="Bound">b</a> <a id="1841" href="wlpo.html#1841" class="Bound">c</a> <a id="1843" href="wlpo.html#1843" class="Bound">d</a> <a id="1845" class="Symbol">:</a> <a id="1847" href="wlpo.html#130" class="Datatype"></a><a id="1848" class="Symbol">}</a> <a id="1850" class="Symbol"></a> <a id="1852" href="wlpo.html#1837" class="Bound">a</a> <a id="1854" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1856" href="wlpo.html#1839" class="Bound">b</a> <a id="1858" class="Symbol"></a> <a id="1860" href="wlpo.html#1841" class="Bound">c</a> <a id="1862" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1864" href="wlpo.html#1843" class="Bound">d</a> <a id="1866" class="Symbol"></a> <a id="1868" href="wlpo.html#1837" class="Bound">a</a> <a id="1870" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1872" href="wlpo.html#1841" class="Bound">c</a> <a id="1874" class="Symbol"></a> <a id="1876" href="wlpo.html#1839" class="Bound">b</a> <a id="1878" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1880" href="wlpo.html#1843" class="Bound">d</a>
<a id="1886" href="wlpo.html#1829" class="Function">tr</a> <a id="1889" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1894" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1899" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="1904" class="Symbol">=</a> <a id="1906" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="1916" href="wlpo.html#1916" class="Function">ds</a> <a id="1919" class="Symbol">:</a> <a id="1921" class="Symbol"></a> <a id="1923" class="Symbol">{</a><a id="1924" href="wlpo.html#1924" class="Bound">q</a> <a id="1926" href="wlpo.html#1926" class="Bound">r</a> <a id="1928" class="Symbol">:</a> <a id="1930" href="wlpo.html#130" class="Datatype"></a><a id="1931" class="Symbol">}</a> <a id="1933" class="Symbol"></a> <a id="1935" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="1939" class="Symbol">(</a><a id="1940" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="1944" href="wlpo.html#1924" class="Bound">q</a><a id="1945" class="Symbol">)</a> <a id="1947" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1949" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="1953" class="Symbol">(</a><a id="1954" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="1958" href="wlpo.html#1926" class="Bound">r</a><a id="1959" class="Symbol">)</a> <a id="1961" class="Symbol"></a> <a id="1963" href="wlpo.html#1924" class="Bound">q</a> <a id="1965" href="Agda.Builtin.Equality.html#151" class="Datatype Operator"></a> <a id="1967" href="wlpo.html#1926" class="Bound">r</a>
<a id="1973" href="wlpo.html#1916" class="Function">ds</a> <a id="1976" class="Symbol">{</a><a id="1977" href="Agda.Builtin.Nat.html#210" class="InductiveConstructor">zero</a><a id="1981" class="Symbol">}</a> <a id="1983" class="Symbol">{</a><a id="1984" href="Agda.Builtin.Nat.html#210" class="InductiveConstructor">zero</a><a id="1988" class="Symbol">}</a> <a id="1990" class="Symbol">_</a> <a id="1992" class="Symbol">=</a> <a id="1994" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="2003" href="wlpo.html#1916" class="Function">ds</a> <a id="2006" class="Symbol">{</a><a id="2007" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="2011" href="wlpo.html#2011" class="Bound">q</a><a id="2012" class="Symbol">}</a> <a id="2014" class="Symbol">{</a><a id="2015" href="Agda.Builtin.Nat.html#223" class="InductiveConstructor">suc</a> <a id="2019" href="wlpo.html#2019" class="Bound">r</a><a id="2020" class="Symbol">}</a> <a id="2022" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a> <a id="2027" class="Symbol">=</a> <a id="2029" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a>
<a id="lemma"></a><a id="2036" href="wlpo.html#2036" class="Function">lemma</a> <a id="2042" class="Symbol">:</a> <a id="2044" class="Symbol">(</a><a id="2045" href="wlpo.html#2045" class="Bound">α</a> <a id="2047" class="Symbol">:</a> <a id="2049" href="wlpo.html#562" class="Function">binary-sequence</a><a id="2064" class="Symbol">)</a> <a id="2066" class="Symbol"></a> <a id="2068" href="wlpo.html#811" class="Function">at-most-one-one</a> <a id="2084" href="wlpo.html#2045" class="Bound">α</a> <a id="2086" class="Symbol"></a> <a id="2088" href="wlpo.html#437" class="Function Operator">¬</a> <a id="2090" href="wlpo.html#610" class="Function">all-zeros</a> <a id="2100" class="Symbol">(</a><a id="2101" href="wlpo.html#2045" class="Bound">α</a> <a id="2103" href="Function.Base.html#1031" class="Function Operator"></a> <a id="2105" href="wlpo.html#983" class="Function">evens</a><a id="2110" class="Symbol">)</a> <a id="2112" class="Symbol"></a> <a id="2114" href="wlpo.html#610" class="Function">all-zeros</a> <a id="2124" class="Symbol">(</a><a id="2125" href="wlpo.html#2045" class="Bound">α</a> <a id="2127" href="Function.Base.html#1031" class="Function Operator"></a> <a id="2129" href="wlpo.html#1010" class="Function">odds</a><a id="2133" class="Symbol">)</a>
<a id="2135" href="wlpo.html#2036" class="Function">lemma</a> <a id="2141" href="wlpo.html#2141" class="Bound">α</a> <a id="2143" href="wlpo.html#2143" class="Bound">am11</a> <a id="2148" href="wlpo.html#2148" class="Bound">na0e</a> <a id="2153" href="wlpo.html#2153" class="Bound">i</a> <a id="2155" class="Symbol">=</a> <a id="2157" href="wlpo.html#1317" class="Function">𝟚-elim</a> <a id="2164" class="Symbol">(</a><a id="2165" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡</a> <a id="2168" href="wlpo.html#206" class="InductiveConstructor">𝟘</a><a id="2169" class="Symbol">)</a> <a id="2171" class="Symbol">((</a><a id="2173" href="wlpo.html#2141" class="Bound">α</a> <a id="2175" href="Function.Base.html#1031" class="Function Operator"></a> <a id="2177" href="wlpo.html#1010" class="Function">odds</a><a id="2181" class="Symbol">)</a> <a id="2183" href="wlpo.html#2153" class="Bound">i</a><a id="2184" class="Symbol">)</a>
<a id="2215" class="Symbol">(</a><a id="2216" href="Function.Base.html#636" class="Function">const</a> <a id="2222" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a><a id="2226" class="Symbol">)</a>
<a id="2257" class="Symbol"></a> <a id="2260" href="wlpo.html#2260" class="Bound">p₁</a> <a id="2263" class="Symbol"></a> <a id="2265" href="wlpo.html#1166" class="Function">⊥-elim</a> <a id="2272" class="Symbol">(</a><a id="2273" href="wlpo.html#2148" class="Bound">na0e</a> <a id="2278" class="Symbol"></a> <a id="2281" href="wlpo.html#2281" class="Bound">j</a> <a id="2283" class="Symbol"></a> <a id="2285" href="wlpo.html#1317" class="Function">𝟚-elim</a> <a id="2292" class="Symbol">(</a><a id="2293" href="Agda.Builtin.Equality.html#151" class="Datatype Operator">_≡</a> <a id="2296" href="wlpo.html#206" class="InductiveConstructor">𝟘</a><a id="2297" class="Symbol">)</a> <a id="2299" class="Symbol">((</a><a id="2301" href="wlpo.html#2141" class="Bound">α</a> <a id="2303" href="Function.Base.html#1031" class="Function Operator"></a> <a id="2305" href="wlpo.html#983" class="Function">evens</a><a id="2310" class="Symbol">)</a> <a id="2312" href="wlpo.html#2281" class="Bound">j</a><a id="2313" class="Symbol">)</a>
<a id="2379" class="Symbol">(</a><a id="2380" href="Function.Base.html#636" class="Function">const</a> <a id="2386" href="Agda.Builtin.Equality.html#208" class="InductiveConstructor">refl</a><a id="2390" class="Symbol">)</a>
<a id="2456" class="Symbol"></a> <a id="2459" href="wlpo.html#2459" class="Bound">p₂</a> <a id="2462" class="Symbol"></a> <a id="2464" href="wlpo.html#1166" class="Function">⊥-elim</a> <a id="2471" class="Symbol">(</a><a id="2472" href="wlpo.html#1509" class="Function">e≢o</a> <a id="2476" class="Symbol">(</a><a id="2477" href="wlpo.html#2143" class="Bound">am11</a> <a id="2482" class="Symbol">(</a><a id="2483" href="wlpo.html#983" class="Function">evens</a> <a id="2489" href="wlpo.html#2281" class="Bound">j</a><a id="2490" class="Symbol">)</a> <a id="2492" class="Symbol">(</a><a id="2493" href="wlpo.html#1010" class="Function">odds</a> <a id="2498" href="wlpo.html#2153" class="Bound">i</a><a id="2499" class="Symbol">)</a> <a id="2501" href="wlpo.html#2459" class="Bound">p₂</a> <a id="2504" href="wlpo.html#2260" class="Bound">p₁</a><a id="2506" class="Symbol">))))))</a>
<a id="2515" class="Comment">{- The main dish -}</a>
<a id="WLPO→LLPO"></a><a id="2535" href="wlpo.html#2535" class="Function">WLPO→LLPO</a> <a id="2545" class="Symbol">:</a> <a id="2547" href="wlpo.html#755" class="Function">WLPO</a> <a id="2552" class="Symbol"></a> <a id="2554" href="wlpo.html#1041" class="Function">LLPO</a>
<a id="2559" href="wlpo.html#2535" class="Function">WLPO→LLPO</a> <a id="2569" href="wlpo.html#2569" class="Bound">wlpo</a> <a id="2574" href="wlpo.html#2574" class="Bound">α</a> <a id="2576" href="wlpo.html#2576" class="Bound">am11</a> <a id="2581" class="Symbol">=</a> <a id="2583" href="wlpo.html#1192" class="Function">+-elim</a> <a id="2590" class="Symbol">(</a><a id="2591" href="wlpo.html#2569" class="Bound">wlpo</a> <a id="2596" class="Symbol">(</a><a id="2597" href="wlpo.html#2574" class="Bound">α</a> <a id="2599" href="Function.Base.html#1031" class="Function Operator"></a> <a id="2601" href="wlpo.html#983" class="Function">evens</a><a id="2606" class="Symbol">))</a>
<a id="2639" href="wlpo.html#527" class="InductiveConstructor">inl</a>
<a id="2673" class="Symbol"></a> <a id="2676" href="wlpo.html#2676" class="Bound">na0e</a> <a id="2681" class="Symbol"></a> <a id="2683" href="wlpo.html#1192" class="Function">+-elim</a> <a id="2690" class="Symbol">(</a><a id="2691" href="wlpo.html#2569" class="Bound">wlpo</a> <a id="2696" class="Symbol">(</a><a id="2697" href="wlpo.html#2574" class="Bound">α</a> <a id="2699" href="Function.Base.html#1031" class="Function Operator"></a> <a id="2701" href="wlpo.html#1010" class="Function">odds</a><a id="2705" class="Symbol">))</a>
<a id="2755" href="wlpo.html#545" class="InductiveConstructor">inr</a>
<a id="2806" class="Symbol"></a> <a id="2809" href="wlpo.html#2809" class="Bound">na0o</a> <a id="2814" class="Symbol"></a> <a id="2816" href="wlpo.html#1166" class="Function">⊥-elim</a> <a id="2823" class="Symbol">(</a><a id="2824" href="wlpo.html#2809" class="Bound">na0o</a> <a id="2829" class="Symbol">(</a><a id="2830" href="wlpo.html#2036" class="Function">lemma</a> <a id="2836" href="wlpo.html#2574" class="Bound">α</a> <a id="2838" href="wlpo.html#2576" class="Bound">am11</a> <a id="2843" href="wlpo.html#2676" class="Bound">na0e</a><a id="2847" class="Symbol">))))</a>
</pre></body></html>