mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
288 lines
59 KiB
HTML
288 lines
59 KiB
HTML
|
<!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">--cubical-compatible</a> <a id="334" class="Pragma">--safe</a> <a id="341" class="Symbol">#-}</a>
|
|||
|
|
|||
|
<a id="346" class="Keyword">open</a> <a id="351" class="Keyword">import</a> <a id="358" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a>
|
|||
|
|
|||
|
<a id="380" class="Keyword">module</a> <a id="387" href="Relation.Binary.Structures.html" class="Module">Relation.Binary.Structures</a>
|
|||
|
<a id="416" class="Symbol">{</a><a id="417" href="Relation.Binary.Structures.html#417" class="Bound">a</a> <a id="419" href="Relation.Binary.Structures.html#419" class="Bound">ℓ</a><a id="420" class="Symbol">}</a> <a id="422" class="Symbol">{</a><a id="423" href="Relation.Binary.Structures.html#423" class="Bound">A</a> <a id="425" class="Symbol">:</a> <a id="427" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="431" href="Relation.Binary.Structures.html#417" class="Bound">a</a><a id="432" class="Symbol">}</a> <a id="434" class="Comment">-- The underlying set</a>
|
|||
|
<a id="458" class="Symbol">(</a><a id="459" href="Relation.Binary.Structures.html#459" class="Bound Operator">_≈_</a> <a id="463" class="Symbol">:</a> <a id="465" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="469" href="Relation.Binary.Structures.html#423" class="Bound">A</a> <a id="471" href="Relation.Binary.Structures.html#419" class="Bound">ℓ</a><a id="472" class="Symbol">)</a> <a id="476" class="Comment">-- The underlying equality relation</a>
|
|||
|
<a id="514" class="Keyword">where</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="Keyword">using</a> <a id="552" class="Symbol">(</a><a id="553" href="Agda.Builtin.Sigma.html#234" class="Field">proj₁</a><a id="558" class="Symbol">;</a> <a id="560" href="Agda.Builtin.Sigma.html#246" class="Field">proj₂</a><a id="565" class="Symbol">;</a> <a id="567" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">_,_</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="Level.html" class="Module">Level</a> <a id="590" class="Keyword">using</a> <a id="596" class="Symbol">(</a><a id="597" href="Agda.Primitive.html#591" class="Postulate">Level</a><a id="602" class="Symbol">;</a> <a id="604" href="Agda.Primitive.html#804" class="Primitive Operator">_⊔_</a><a id="607" class="Symbol">)</a>
|
|||
|
<a id="609" class="Keyword">open</a> <a id="614" class="Keyword">import</a> <a id="621" href="Relation.Nullary.html" class="Module">Relation.Nullary</a> <a id="638" class="Keyword">using</a> <a id="644" class="Symbol">(</a><a id="645" href="Relation.Nullary.html#665" class="Function Operator">¬_</a><a id="647" class="Symbol">)</a>
|
|||
|
<a id="649" class="Keyword">open</a> <a id="654" class="Keyword">import</a> <a id="661" href="Relation.Binary.PropositionalEquality.Core.html" class="Module">Relation.Binary.PropositionalEquality.Core</a> <a id="704" class="Symbol">as</a> <a id="707" class="Module">P</a> <a id="709" class="Keyword">using</a> <a id="715" class="Symbol">(</a><a id="716" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a><a id="719" class="Symbol">)</a>
|
|||
|
<a id="721" class="Keyword">open</a> <a id="726" class="Keyword">import</a> <a id="733" href="Relation.Binary.Consequences.html" class="Module">Relation.Binary.Consequences</a>
|
|||
|
<a id="762" class="Keyword">open</a> <a id="767" class="Keyword">import</a> <a id="774" href="Relation.Binary.Definitions.html" class="Module">Relation.Binary.Definitions</a>
|
|||
|
|
|||
|
<a id="803" class="Keyword">private</a>
|
|||
|
<a id="813" class="Keyword">variable</a>
|
|||
|
<a id="826" href="Relation.Binary.Structures.html#826" class="Generalizable">ℓ₂</a> <a id="829" class="Symbol">:</a> <a id="831" href="Agda.Primitive.html#591" class="Postulate">Level</a>
|
|||
|
|
|||
|
<a id="838" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="911" class="Comment">-- Equivalences</a>
|
|||
|
<a id="927" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="1000" class="Comment">-- Note all the following equivalences refer to the equality provided</a>
|
|||
|
<a id="1070" class="Comment">-- as a module parameter at the top of this file.</a>
|
|||
|
|
|||
|
<a id="1121" class="Keyword">record</a> <a id="IsPartialEquivalence"></a><a id="1128" href="Relation.Binary.Structures.html#1128" class="Record">IsPartialEquivalence</a> <a id="1149" class="Symbol">:</a> <a id="1151" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1155" class="Symbol">(</a><a id="1156" href="Relation.Binary.Structures.html#417" class="Bound">a</a> <a id="1158" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1160" href="Relation.Binary.Structures.html#419" class="Bound">ℓ</a><a id="1161" class="Symbol">)</a> <a id="1163" class="Keyword">where</a>
|
|||
|
<a id="1171" class="Keyword">field</a>
|
|||
|
<a id="IsPartialEquivalence.sym"></a><a id="1181" href="Relation.Binary.Structures.html#1181" class="Field">sym</a> <a id="1187" class="Symbol">:</a> <a id="1189" href="Relation.Binary.Definitions.html#1507" class="Function">Symmetric</a> <a id="1199" href="Relation.Binary.Structures.html#459" class="Bound Operator">_≈_</a>
|
|||
|
<a id="IsPartialEquivalence.trans"></a><a id="1207" href="Relation.Binary.Structures.html#1207" class="Field">trans</a> <a id="1213" class="Symbol">:</a> <a id="1215" href="Relation.Binary.Definitions.html#1875" class="Function">Transitive</a> <a id="1226" href="Relation.Binary.Structures.html#459" class="Bound Operator">_≈_</a>
|
|||
|
|
|||
|
<a id="1231" class="Comment">-- The preorders of this library are defined in terms of an underlying</a>
|
|||
|
<a id="1302" class="Comment">-- equivalence relation, and hence equivalence relations are not</a>
|
|||
|
<a id="1367" class="Comment">-- defined in terms of preorders.</a>
|
|||
|
|
|||
|
<a id="1402" class="Comment">-- To preserve backwards compatability, equivalence relations are</a>
|
|||
|
<a id="1468" class="Comment">-- not defined in terms of their partial counterparts.</a>
|
|||
|
|
|||
|
<a id="1524" class="Keyword">record</a> <a id="IsEquivalence"></a><a id="1531" href="Relation.Binary.Structures.html#1531" class="Record">IsEquivalence</a> <a id="1545" class="Symbol">:</a> <a id="1547" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1551" class="Symbol">(</a><a id="1552" href="Relation.Binary.Structures.html#417" class="Bound">a</a> <a id="1554" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1556" href="Relation.Binary.Structures.html#419" class="Bound">ℓ</a><a id="1557" class="Symbol">)</a> <a id="1559" class="Keyword">where</a>
|
|||
|
<a id="1567" class="Keyword">field</a>
|
|||
|
<a id="IsEquivalence.refl"></a><a id="1577" href="Relation.Binary.Structures.html#1577" class="Field">refl</a> <a id="1583" class="Symbol">:</a> <a id="1585" href="Relation.Binary.Definitions.html#1348" class="Function">Reflexive</a> <a id="1595" href="Relation.Binary.Structures.html#459" class="Bound Operator">_≈_</a>
|
|||
|
<a id="IsEquivalence.sym"></a><a id="1603" href="Relation.Binary.Structures.html#1603" class="Field">sym</a> <a id="1609" class="Symbol">:</a> <a id="1611" href="Relation.Binary.Definitions.html#1507" class="Function">Symmetric</a> <a id="1621" href="Relation.Binary.Structures.html#459" class="Bound Operator">_≈_</a>
|
|||
|
<a id="IsEquivalence.trans"></a><a id="1629" href="Relation.Binary.Structures.html#1629" class="Field">trans</a> <a id="1635" class="Symbol">:</a> <a id="1637" href="Relation.Binary.Definitions.html#1875" class="Function">Transitive</a> <a id="1648" href="Relation.Binary.Structures.html#459" class="Bound Operator">_≈_</a>
|
|||
|
|
|||
|
<a id="IsEquivalence.reflexive"></a><a id="1655" href="Relation.Binary.Structures.html#1655" class="Function">reflexive</a> <a id="1665" class="Symbol">:</a> <a id="1667" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a> <a id="1671" href="Relation.Binary.Core.html#1263" class="Function Operator">⇒</a> <a id="1673" href="Relation.Binary.Structures.html#459" class="Bound Operator">_≈_</a>
|
|||
|
<a id="1679" href="Relation.Binary.Structures.html#1655" class="Function">reflexive</a> <a id="1689" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">P.refl</a> <a id="1696" class="Symbol">=</a> <a id="1698" href="Relation.Binary.Structures.html#1577" class="Field">refl</a>
|
|||
|
|
|||
|
<a id="IsEquivalence.isPartialEquivalence"></a><a id="1706" href="Relation.Binary.Structures.html#1706" class="Function">isPartialEquivalence</a> <a id="1727" class="Symbol">:</a> <a id="1729" href="Relation.Binary.Structures.html#1128" class="Record">IsPartialEquivalence</a>
|
|||
|
<a id="1752" href="Relation.Binary.Structures.html#1706" class="Function">isPartialEquivalence</a> <a id="1773" class="Symbol">=</a> <a id="1775" class="Keyword">record</a>
|
|||
|
<a id="1786" class="Symbol">{</a> <a id="1788" href="Relation.Binary.Structures.html#1181" class="Field">sym</a> <a id="1792" class="Symbol">=</a> <a id="1794" href="Relation.Binary.Structures.html#1603" class="Field">sym</a>
|
|||
|
<a id="1802" class="Symbol">;</a> <a id="1804" href="Relation.Binary.Structures.html#1207" class="Field">trans</a> <a id="1810" class="Symbol">=</a> <a id="1812" href="Relation.Binary.Structures.html#1629" class="Field">trans</a>
|
|||
|
<a id="1822" class="Symbol">}</a>
|
|||
|
|
|||
|
|
|||
|
<a id="1826" class="Keyword">record</a> <a id="IsDecEquivalence"></a><a id="1833" href="Relation.Binary.Structures.html#1833" class="Record">IsDecEquivalence</a> <a id="1850" class="Symbol">:</a> <a id="1852" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1856" class="Symbol">(</a><a id="1857" href="Relation.Binary.Structures.html#417" class="Bound">a</a> <a id="1859" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1861" href="Relation.Binary.Structures.html#419" class="Bound">ℓ</a><a id="1862" class="Symbol">)</a> <a id="1864" class="Keyword">where</a>
|
|||
|
<a id="1872" class="Keyword">infix</a> <a id="1878" class="Number">4</a> <a id="1880" href="Relation.Binary.Structures.html#1930" class="Field Operator">_≟_</a>
|
|||
|
<a id="1886" class="Keyword">field</a>
|
|||
|
<a id="IsDecEquivalence.isEquivalence"></a><a id="1896" href="Relation.Binary.Structures.html#1896" class="Field">isEquivalence</a> <a id="1910" class="Symbol">:</a> <a id="1912" href="Relation.Binary.Structures.html#1531" class="Record">IsEquivalence</a>
|
|||
|
<a id="IsDecEquivalence._≟_"></a><a id="1930" href="Relation.Binary.Structures.html#1930" class="Field Operator">_≟_</a> <a id="1944" class="Symbol">:</a> <a id="1946" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="1956" href="Relation.Binary.Structures.html#459" class="Bound Operator">_≈_</a>
|
|||
|
|
|||
|
<a id="1963" class="Keyword">open</a> <a id="1968" href="Relation.Binary.Structures.html#1531" class="Module">IsEquivalence</a> <a id="1982" href="Relation.Binary.Structures.html#1896" class="Field">isEquivalence</a> <a id="1996" class="Keyword">public</a>
|
|||
|
|
|||
|
|
|||
|
<a id="2005" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="2078" class="Comment">-- Preorders</a>
|
|||
|
<a id="2091" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
|
|||
|
<a id="2165" class="Keyword">record</a> <a id="IsPreorder"></a><a id="2172" href="Relation.Binary.Structures.html#2172" class="Record">IsPreorder</a> <a id="2183" class="Symbol">(</a><a id="2184" href="Relation.Binary.Structures.html#2184" class="Bound Operator">_∼_</a> <a id="2188" class="Symbol">:</a> <a id="2190" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="2194" href="Relation.Binary.Structures.html#423" class="Bound">A</a> <a id="2196" href="Relation.Binary.Structures.html#826" class="Generalizable">ℓ₂</a><a id="2198" class="Symbol">)</a> <a id="2200" class="Symbol">:</a> <a id="2202" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2206" class="Symbol">(</a><a id="2207" href="Relation.Binary.Structures.html#417" class="Bound">a</a> <a id="2209" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="2211" href="Relation.Binary.Structures.html#419" class="Bound">ℓ</a> <a id="2213" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="2215" href="Relation.Binary.Structures.html#2196" class="Bound">ℓ₂</a><a id="2217" class="Symbol">)</a> <a id="2219" class="Keyword">where</a>
|
|||
|
<a id="2227" class="Keyword">field</a>
|
|||
|
<a id="IsPreorder.isEquivalence"></a><a id="2237" href="Relation.Binary.Structures.html#2237" class="Field">isEquivalence</a> <a id="2251" class="Symbol">:</a> <a id="2253" href="Relation.Binary.Structures.html#1531" class="Record">IsEquivalence</a>
|
|||
|
<a id="2271" class="Comment">-- Reflexivity is expressed in terms of the underlying equality:</a>
|
|||
|
<a id="IsPreorder.reflexive"></a><a id="2340" href="Relation.Binary.Structures.html#2340" class="Field">reflexive</a> <a id="2354" class="Symbol">:</a> <a id="2356" href="Relation.Binary.Structures.html#459" class="Bound Operator">_≈_</a> <a id="2360" href="Relation.Binary.Core.html#1263" class="Function Operator">⇒</a> <a id="2362" href="Relation.Binary.Structures.html#2184" class="Bound Operator">_∼_</a>
|
|||
|
<a id="IsPreorder.trans"></a><a id="2370" href="Relation.Binary.Structures.html#2370" class="Field">trans</a> <a id="2384" class="Symbol">:</a> <a id="2386" href="Relation.Binary.Definitions.html#1875" class="Function">Transitive</a> <a id="2397" href="Relation.Binary.Structures.html#2184" class="Bound Operator">_∼_</a>
|
|||
|
|
|||
|
<a id="2404" class="Keyword">module</a> <a id="IsPreorder.Eq"></a><a id="2411" href="Relation.Binary.Structures.html#2411" class="Module">Eq</a> <a id="2414" class="Symbol">=</a> <a id="2416" href="Relation.Binary.Structures.html#1531" class="Module">IsEquivalence</a> <a id="2430" href="Relation.Binary.Structures.html#2237" class="Field">isEquivalence</a>
|
|||
|
|
|||
|
<a id="IsPreorder.refl"></a><a id="2447" href="Relation.Binary.Structures.html#2447" class="Function">refl</a> <a id="2452" class="Symbol">:</a> <a id="2454" href="Relation.Binary.Definitions.html#1348" class="Function">Reflexive</a> <a id="2464" href="Relation.Binary.Structures.html#2184" class="Bound Operator">_∼_</a>
|
|||
|
<a id="2470" href="Relation.Binary.Structures.html#2447" class="Function">refl</a> <a id="2475" class="Symbol">=</a> <a id="2477" href="Relation.Binary.Structures.html#2340" class="Field">reflexive</a> <a id="2487" href="Relation.Binary.Structures.html#1577" class="Function">Eq.refl</a>
|
|||
|
|
|||
|
<a id="IsPreorder.∼-respˡ-≈"></a><a id="2498" href="Relation.Binary.Structures.html#2498" class="Function">∼-respˡ-≈</a> <a id="2508" class="Symbol">:</a> <a id="2510" href="Relation.Binary.Structures.html#2184" class="Bound Operator">_∼_</a> <a id="2514" href="Relation.Binary.Definitions.html#3923" class="Function Operator">Respectsˡ</a> <a id="2524" href="Relation.Binary.Structures.html#459" class="Bound Operator">_≈_</a>
|
|||
|
<a id="2530" href="Relation.Binary.Structures.html#2498" class="Function">∼-respˡ-≈</a> <a id="2540" href="Relation.Binary.Structures.html#2540" class="Bound">x≈y</a> <a id="2544" href="Relation.Binary.Structures.html#2544" class="Bound">x∼z</a> <a id="2548" class="Symbol">=</a> <a id="2550" href="Relation.Binary.Structures.html#2370" class="Field">trans</a> <a id="2556" class="Symbol">(</a><a id="2557" href="Relation.Binary.Structures.html#2340" class="Field">reflexive</a> <a id="2567" class="Symbol">(</a><a id="2568" href="Relation.Binary.Structures.html#1603" class="Function">Eq.sym</a> <a id="2575" href="Relation.Binary.Structures.html#2540" class="Bound">x≈y</a><a id="2578" class="Symbol">))</a> <a id="2581" href="Relation.Binary.Structures.html#2544" class="Bound">x∼z</a>
|
|||
|
|
|||
|
<a id="IsPreorder.∼-respʳ-≈"></a><a id="2588" href="Relation.Binary.Structures.html#2588" class="Function">∼-respʳ-≈</a> <a id="2598" class="Symbol">:</a> <a id="2600" href="Relation.Binary.Structures.html#2184" class="Bound Operator">_∼_</a> <a id="2604" href="Relation.Binary.Definitions.html#3758" class="Function Operator">Respectsʳ</a> <a id="2614" href="Relation.Binary.Structures.html#459" class="Bound Operator">_≈_</a>
|
|||
|
<a id="2620" href="Relation.Binary.Structures.html#2588" class="Function">∼-respʳ-≈</a> <a id="2630" href="Relation.Binary.Structures.html#2630" class="Bound">x≈y</a> <a id="2634" href="Relation.Binary.Structures.html#2634" class="Bound">z∼x</a> <a id="2638" class="Symbol">=</a> <a id="2640" href="Relation.Binary.Structures.html#2370" class="Field">trans</a> <a id="2646" href="Relation.Binary.Structures.html#2634" class="Bound">z∼x</a> <a id="2650" class="Symbol">(</a><a id="2651" href="Relation.Binary.Structures.html#2340" class="Field">reflexive</a> <a id="2661" href="Relation.Binary.Structures.html#2630" class="Bound">x≈y</a><a id="2664" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="IsPreorder.∼-resp-≈"></a><a id="2669" href="Relation.Binary.Structures.html#2669" class="Function">∼-resp-≈</a> <a id="2678" class="Symbol">:</a> <a id="2680" href="Relation.Binary.Structures.html#2184" class="Bound Operator">_∼_</a> <a id="2684" href="Relation.Binary.Definitions.html#4086" class="Function Operator">Respects₂</a> <a id="2694" href="Relation.Binary.Structures.html#459" class="Bound Operator">_≈_</a>
|
|||
|
<a id="2700" href="Relation.Binary.Structures.html#2669" class="Function">∼-resp-≈</a> <a id="2709" class="Symbol">=</a> <a id="2711" href="Relation.Binary.Structures.html#2588" class="Function">∼-respʳ-≈</a> <a id="2721" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="2723" href="Relation.Binary.Structures.html#2498" class="Function">∼-respˡ-≈</a>
|
|||
|
|
|||
|
|
|||
|
<a id="2735" class="Keyword">record</a> <a id="IsTotalPreorder"></a><a id="2742" href="Relation.Binary.Structures.html#2742" class="Record">IsTotalPreorder</a> <a id="2758" class="Symbol">(</a><a id="2759" href="Relation.Binary.Structures.html#2759" class="Bound Operator">_≲_</a> <a id="2763" class="Symbol">:</a> <a id="2765" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="2769" href="Relation.Binary.Structures.html#423" class="Bound">A</a> <a id="2771" href="Relation.Binary.Structures.html#826" class="Generalizable">ℓ₂</a><a id="2773" class="Symbol">)</a> <a id="2775" class="Symbol">:</a> <a id="2777" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2781" class="Symbol">(</a><a id="2782" href="Relation.Binary.Structures.html#417" class="Bound">a</a> <a id="2784" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="2786" href="Relation.Binary.Structures.html#419" class="Bound">ℓ</a> <a id="2788" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="2790" href="Relation.Binary.Structures.html#2771" class="Bound">ℓ₂</a><a id="2792" class="Symbol">)</a> <a id="2794" class="Keyword">where</a>
|
|||
|
<a id="2802" class="Keyword">field</a>
|
|||
|
<a id="IsTotalPreorder.isPreorder"></a><a id="2812" href="Relation.Binary.Structures.html#2812" class="Field">isPreorder</a> <a id="2823" class="Symbol">:</a> <a id="2825" href="Relation.Binary.Structures.html#2172" class="Record">IsPreorder</a> <a id="2836" href="Relation.Binary.Structures.html#2759" class="Bound Operator">_≲_</a>
|
|||
|
<a id="IsTotalPreorder.total"></a><a id="2844" href="Relation.Binary.Structures.html#2844" class="Field">total</a> <a id="2855" class="Symbol">:</a> <a id="2857" href="Relation.Binary.Definitions.html#2593" class="Function">Total</a> <a id="2863" href="Relation.Binary.Structures.html#2759" class="Bound Operator">_≲_</a>
|
|||
|
|
|||
|
<a id="2870" class="Keyword">open</a> <a id="2875" href="Relation.Binary.Structures.html#2172" class="Module">IsPreorder</a> <a id="2886" href="Relation.Binary.Structures.html#2812" class="Field">isPreorder</a> <a id="2897" class="Keyword">public</a>
|
|||
|
<a id="2908" class="Keyword">renaming</a>
|
|||
|
<a id="2921" class="Symbol">(</a> <a id="2923" href="Relation.Binary.Structures.html#2498" class="Function">∼-respˡ-≈</a> <a id="2933" class="Symbol">to</a> <a id="2936" class="Function">≲-respˡ-≈</a>
|
|||
|
<a id="2950" class="Symbol">;</a> <a id="2952" href="Relation.Binary.Structures.html#2588" class="Function">∼-respʳ-≈</a> <a id="2962" class="Symbol">to</a> <a id="2965" class="Function">≲-respʳ-≈</a>
|
|||
|
<a id="2979" class="Symbol">;</a> <a id="2981" href="Relation.Binary.Structures.html#2669" class="Function">∼-resp-≈</a> <a id="2991" class="Symbol">to</a> <a id="2994" class="Function">≲-resp-≈</a>
|
|||
|
<a id="3007" class="Symbol">)</a>
|
|||
|
|
|||
|
|
|||
|
<a id="3011" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="3084" class="Comment">-- Partial orders</a>
|
|||
|
<a id="3102" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
|
|||
|
<a id="3176" class="Keyword">record</a> <a id="IsPartialOrder"></a><a id="3183" href="Relation.Binary.Structures.html#3183" class="Record">IsPartialOrder</a> <a id="3198" class="Symbol">(</a><a id="3199" href="Relation.Binary.Structures.html#3199" class="Bound Operator">_≤_</a> <a id="3203" class="Symbol">:</a> <a id="3205" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="3209" href="Relation.Binary.Structures.html#423" class="Bound">A</a> <a id="3211" href="Relation.Binary.Structures.html#826" class="Generalizable">ℓ₂</a><a id="3213" class="Symbol">)</a> <a id="3215" class="Symbol">:</a> <a id="3217" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3221" class="Symbol">(</a><a id="3222" href="Relation.Binary.Structures.html#417" class="Bound">a</a> <a id="3224" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="3226" href="Relation.Binary.Structures.html#419" class="Bound">ℓ</a> <a id="3228" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="3230" href="Relation.Binary.Structures.html#3211" class="Bound">ℓ₂</a><a id="3232" class="Symbol">)</a> <a id="3234" class="Keyword">where</a>
|
|||
|
<a id="3242" class="Keyword">field</a>
|
|||
|
<a id="IsPartialOrder.isPreorder"></a><a id="3252" href="Relation.Binary.Structures.html#3252" class="Field">isPreorder</a> <a id="3263" class="Symbol">:</a> <a id="3265" href="Relation.Binary.Structures.html#2172" class="Record">IsPreorder</a> <a id="3276" href="Relation.Binary.Structures.html#3199" class="Bound Operator">_≤_</a>
|
|||
|
<a id="IsPartialOrder.antisym"></a><a id="3284" href="Relation.Binary.Structures.html#3284" class="Field">antisym</a> <a id="3295" class="Symbol">:</a> <a id="3297" href="Relation.Binary.Definitions.html#2091" class="Function">Antisymmetric</a> <a id="3311" href="Relation.Binary.Structures.html#459" class="Bound Operator">_≈_</a> <a id="3315" href="Relation.Binary.Structures.html#3199" class="Bound Operator">_≤_</a>
|
|||
|
|
|||
|
<a id="3322" class="Keyword">open</a> <a id="3327" href="Relation.Binary.Structures.html#2172" class="Module">IsPreorder</a> <a id="3338" href="Relation.Binary.Structures.html#3252" class="Field">isPreorder</a> <a id="3349" class="Keyword">public</a>
|
|||
|
<a id="3360" class="Keyword">renaming</a>
|
|||
|
<a id="3373" class="Symbol">(</a> <a id="3375" href="Relation.Binary.Structures.html#2498" class="Function">∼-respˡ-≈</a> <a id="3385" class="Symbol">to</a> <a id="3388" class="Function">≤-respˡ-≈</a>
|
|||
|
<a id="3402" class="Symbol">;</a> <a id="3404" href="Relation.Binary.Structures.html#2588" class="Function">∼-respʳ-≈</a> <a id="3414" class="Symbol">to</a> <a id="3417" class="Function">≤-respʳ-≈</a>
|
|||
|
<a id="3431" class="Symbol">;</a> <a id="3433" href="Relation.Binary.Structures.html#2669" class="Function">∼-resp-≈</a> <a id="3443" class="Symbol">to</a> <a id="3446" class="Function">≤-resp-≈</a>
|
|||
|
<a id="3459" class="Symbol">)</a>
|
|||
|
|
|||
|
|
|||
|
<a id="3463" class="Keyword">record</a> <a id="IsDecPartialOrder"></a><a id="3470" href="Relation.Binary.Structures.html#3470" class="Record">IsDecPartialOrder</a> <a id="3488" class="Symbol">(</a><a id="3489" href="Relation.Binary.Structures.html#3489" class="Bound Operator">_≤_</a> <a id="3493" class="Symbol">:</a> <a id="3495" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="3499" href="Relation.Binary.Structures.html#423" class="Bound">A</a> <a id="3501" href="Relation.Binary.Structures.html#826" class="Generalizable">ℓ₂</a><a id="3503" class="Symbol">)</a> <a id="3505" class="Symbol">:</a> <a id="3507" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3511" class="Symbol">(</a><a id="3512" href="Relation.Binary.Structures.html#417" class="Bound">a</a> <a id="3514" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="3516" href="Relation.Binary.Structures.html#419" class="Bound">ℓ</a> <a id="3518" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="3520" href="Relation.Binary.Structures.html#3501" class="Bound">ℓ₂</a><a id="3522" class="Symbol">)</a> <a id="3524" class="Keyword">where</a>
|
|||
|
<a id="3532" class="Keyword">infix</a> <a id="3538" class="Number">4</a> <a id="3540" href="Relation.Binary.Structures.html#3601" class="Field Operator">_≟_</a> <a id="3544" href="Relation.Binary.Structures.html#3636" class="Field Operator">_≤?_</a>
|
|||
|
<a id="3551" class="Keyword">field</a>
|
|||
|
<a id="IsDecPartialOrder.isPartialOrder"></a><a id="3561" href="Relation.Binary.Structures.html#3561" class="Field">isPartialOrder</a> <a id="3576" class="Symbol">:</a> <a id="3578" href="Relation.Binary.Structures.html#3183" class="Record">IsPartialOrder</a> <a id="3593" href="Relation.Binary.Structures.html#3489" class="Bound Operator">_≤_</a>
|
|||
|
<a id="IsDecPartialOrder._≟_"></a><a id="3601" href="Relation.Binary.Structures.html#3601" class="Field Operator">_≟_</a> <a id="3616" class="Symbol">:</a> <a id="3618" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="3628" href="Relation.Binary.Structures.html#459" class="Bound Operator">_≈_</a>
|
|||
|
<a id="IsDecPartialOrder._≤?_"></a><a id="3636" href="Relation.Binary.Structures.html#3636" class="Field Operator">_≤?_</a> <a id="3651" class="Symbol">:</a> <a id="3653" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="3663" href="Relation.Binary.Structures.html#3489" class="Bound Operator">_≤_</a>
|
|||
|
|
|||
|
<a id="3670" class="Keyword">open</a> <a id="3675" href="Relation.Binary.Structures.html#3183" class="Module">IsPartialOrder</a> <a id="3690" href="Relation.Binary.Structures.html#3561" class="Field">isPartialOrder</a> <a id="3705" class="Keyword">public</a>
|
|||
|
<a id="3716" class="Keyword">hiding</a> <a id="3723" class="Symbol">(</a><a id="3724" class="Keyword">module</a> <a id="3731" href="Relation.Binary.Structures.html#2411" class="Module">Eq</a><a id="3733" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="3738" class="Keyword">module</a> <a id="IsDecPartialOrder.Eq"></a><a id="3745" href="Relation.Binary.Structures.html#3745" class="Module">Eq</a> <a id="3748" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="IsDecPartialOrder.Eq.isDecEquivalence"></a><a id="3759" href="Relation.Binary.Structures.html#3759" class="Function">isDecEquivalence</a> <a id="3776" class="Symbol">:</a> <a id="3778" href="Relation.Binary.Structures.html#1833" class="Record">IsDecEquivalence</a>
|
|||
|
<a id="3799" href="Relation.Binary.Structures.html#3759" class="Function">isDecEquivalence</a> <a id="3816" class="Symbol">=</a> <a id="3818" class="Keyword">record</a>
|
|||
|
<a id="3831" class="Symbol">{</a> <a id="3833" href="Relation.Binary.Structures.html#1896" class="Field">isEquivalence</a> <a id="3847" class="Symbol">=</a> <a id="3849" href="Relation.Binary.Structures.html#2237" class="Function">isEquivalence</a>
|
|||
|
<a id="3869" class="Symbol">;</a> <a id="3871" href="Relation.Binary.Structures.html#1930" class="Field Operator">_≟_</a> <a id="3885" class="Symbol">=</a> <a id="3887" href="Relation.Binary.Structures.html#3601" class="Field Operator">_≟_</a>
|
|||
|
<a id="3897" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="3904" class="Keyword">open</a> <a id="3909" href="Relation.Binary.Structures.html#1833" class="Module">IsDecEquivalence</a> <a id="3926" href="Relation.Binary.Structures.html#3759" class="Function">isDecEquivalence</a> <a id="3943" class="Keyword">public</a>
|
|||
|
|
|||
|
|
|||
|
<a id="3952" class="Keyword">record</a> <a id="IsStrictPartialOrder"></a><a id="3959" href="Relation.Binary.Structures.html#3959" class="Record">IsStrictPartialOrder</a> <a id="3980" class="Symbol">(</a><a id="3981" href="Relation.Binary.Structures.html#3981" class="Bound Operator">_<_</a> <a id="3985" class="Symbol">:</a> <a id="3987" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="3991" href="Relation.Binary.Structures.html#423" class="Bound">A</a> <a id="3993" href="Relation.Binary.Structures.html#826" class="Generalizable">ℓ₂</a><a id="3995" class="Symbol">)</a> <a id="3997" class="Symbol">:</a> <a id="3999" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="4003" class="Symbol">(</a><a id="4004" href="Relation.Binary.Structures.html#417" class="Bound">a</a> <a id="4006" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="4008" href="Relation.Binary.Structures.html#419" class="Bound">ℓ</a> <a id="4010" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="4012" href="Relation.Binary.Structures.html#3993" class="Bound">ℓ₂</a><a id="4014" class="Symbol">)</a> <a id="4016" class="Keyword">where</a>
|
|||
|
<a id="4024" class="Keyword">field</a>
|
|||
|
<a id="IsStrictPartialOrder.isEquivalence"></a><a id="4034" href="Relation.Binary.Structures.html#4034" class="Field">isEquivalence</a> <a id="4048" class="Symbol">:</a> <a id="4050" href="Relation.Binary.Structures.html#1531" class="Record">IsEquivalence</a>
|
|||
|
<a id="IsStrictPartialOrder.irrefl"></a><a id="4068" href="Relation.Binary.Structures.html#4068" class="Field">irrefl</a> <a id="4082" class="Symbol">:</a> <a id="4084" href="Relation.Binary.Definitions.html#2250" class="Function">Irreflexive</a> <a id="4096" href="Relation.Binary.Structures.html#459" class="Bound Operator">_≈_</a> <a id="4100" href="Relation.Binary.Structures.html#3981" class="Bound Operator">_<_</a>
|
|||
|
<a id="IsStrictPartialOrder.trans"></a><a id="4108" href="Relation.Binary.Structures.html#4108" class="Field">trans</a> <a id="4122" class="Symbol">:</a> <a id="4124" href="Relation.Binary.Definitions.html#1875" class="Function">Transitive</a> <a id="4135" href="Relation.Binary.Structures.html#3981" class="Bound Operator">_<_</a>
|
|||
|
<a id="IsStrictPartialOrder.<-resp-≈"></a><a id="4143" href="Relation.Binary.Structures.html#4143" class="Field"><-resp-≈</a> <a id="4157" class="Symbol">:</a> <a id="4159" href="Relation.Binary.Structures.html#3981" class="Bound Operator">_<_</a> <a id="4163" href="Relation.Binary.Definitions.html#4086" class="Function Operator">Respects₂</a> <a id="4173" href="Relation.Binary.Structures.html#459" class="Bound Operator">_≈_</a>
|
|||
|
|
|||
|
<a id="4180" class="Keyword">module</a> <a id="IsStrictPartialOrder.Eq"></a><a id="4187" href="Relation.Binary.Structures.html#4187" class="Module">Eq</a> <a id="4190" class="Symbol">=</a> <a id="4192" href="Relation.Binary.Structures.html#1531" class="Module">IsEquivalence</a> <a id="4206" href="Relation.Binary.Structures.html#4034" class="Field">isEquivalence</a>
|
|||
|
|
|||
|
<a id="IsStrictPartialOrder.asym"></a><a id="4223" href="Relation.Binary.Structures.html#4223" class="Function">asym</a> <a id="4228" class="Symbol">:</a> <a id="4230" href="Relation.Binary.Definitions.html#2362" class="Function">Asymmetric</a> <a id="4241" href="Relation.Binary.Structures.html#3981" class="Bound Operator">_<_</a>
|
|||
|
<a id="4247" href="Relation.Binary.Structures.html#4223" class="Function">asym</a> <a id="4252" class="Symbol">{</a><a id="4253" href="Relation.Binary.Structures.html#4253" class="Bound">x</a><a id="4254" class="Symbol">}</a> <a id="4256" class="Symbol">{</a><a id="4257" href="Relation.Binary.Structures.html#4257" class="Bound">y</a><a id="4258" class="Symbol">}</a> <a id="4260" class="Symbol">=</a> <a id="4262" href="Relation.Binary.Consequences.html#2927" class="Function">trans∧irr⇒asym</a> <a id="4277" href="Relation.Binary.Structures.html#1577" class="Function">Eq.refl</a> <a id="4285" href="Relation.Binary.Structures.html#4108" class="Field">trans</a> <a id="4291" href="Relation.Binary.Structures.html#4068" class="Field">irrefl</a> <a id="4298" class="Symbol">{</a><a id="4299" class="Argument">x</a> <a id="4301" class="Symbol">=</a> <a id="4303" href="Relation.Binary.Structures.html#4253" class="Bound">x</a><a id="4304" class="Symbol">}</a> <a id="4306" class="Symbol">{</a><a id="4307" href="Relation.Binary.Structures.html#4257" class="Bound">y</a><a id="4308" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="IsStrictPartialOrder.<-respʳ-≈"></a><a id="4313" href="Relation.Binary.Structures.html#4313" class="Function"><-respʳ-≈</a> <a id="4323" class="Symbol">:</a> <a id="4325" href="Relation.Binary.Structures.html#3981" class="Bound Operator">_<_</a> <a id="4329" href="Relation.Binary.Definitions.html#3758" class="Function Operator">Respectsʳ</a> <a id="4339" href="Relation.Binary.Structures.html#459" class="Bound Operator">_≈_</a>
|
|||
|
<a id="4345" href="Relation.Binary.Structures.html#4313" class="Function"><-respʳ-≈</a> <a id="4355" class="Symbol">=</a> <a id="4357" href="Agda.Builtin.Sigma.html#234" class="Field">proj₁</a> <a id="4363" href="Relation.Binary.Structures.html#4143" class="Field"><-resp-≈</a>
|
|||
|
|
|||
|
<a id="IsStrictPartialOrder.<-respˡ-≈"></a><a id="4375" href="Relation.Binary.Structures.html#4375" class="Function"><-respˡ-≈</a> <a id="4385" class="Symbol">:</a> <a id="4387" href="Relation.Binary.Structures.html#3981" class="Bound Operator">_<_</a> <a id="4391" href="Relation.Binary.Definitions.html#3923" class="Function Operator">Respectsˡ</a> <a id="4401" href="Relation.Binary.Structures.html#459" class="Bound Operator">_≈_</a>
|
|||
|
<a id="4407" href="Relation.Binary.Structures.html#4375" class="Function"><-respˡ-≈</a> <a id="4417" class="Symbol">=</a> <a id="4419" href="Agda.Builtin.Sigma.html#246" class="Field">proj₂</a> <a id="4425" href="Relation.Binary.Structures.html#4143" class="Field"><-resp-≈</a>
|
|||
|
|
|||
|
<a id="IsStrictPartialOrder.asymmetric"></a><a id="4437" href="Relation.Binary.Structures.html#4437" class="Function">asymmetric</a> <a id="4448" class="Symbol">=</a> <a id="4450" href="Relation.Binary.Structures.html#4223" class="Function">asym</a>
|
|||
|
<a id="4457" class="Symbol">{-#</a> <a id="4461" class="Keyword">WARNING_ON_USAGE</a> <a id="4478" class="Pragma">asymmetric</a>
|
|||
|
<a id="4491" class="String">"Warning: asymmetric was deprecated in v0.16.
|
|||
|
Please use asym instead."</a>
|
|||
|
<a id="4567" class="Symbol">#-}</a>
|
|||
|
|
|||
|
|
|||
|
<a id="4573" class="Keyword">record</a> <a id="IsDecStrictPartialOrder"></a><a id="4580" href="Relation.Binary.Structures.html#4580" class="Record">IsDecStrictPartialOrder</a> <a id="4604" class="Symbol">(</a><a id="4605" href="Relation.Binary.Structures.html#4605" class="Bound Operator">_<_</a> <a id="4609" class="Symbol">:</a> <a id="4611" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="4615" href="Relation.Binary.Structures.html#423" class="Bound">A</a> <a id="4617" href="Relation.Binary.Structures.html#826" class="Generalizable">ℓ₂</a><a id="4619" class="Symbol">)</a> <a id="4621" class="Symbol">:</a> <a id="4623" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="4627" class="Symbol">(</a><a id="4628" href="Relation.Binary.Structures.html#417" class="Bound">a</a> <a id="4630" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="4632" href="Relation.Binary.Structures.html#419" class="Bound">ℓ</a> <a id="4634" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="4636" href="Relation.Binary.Structures.html#4617" class="Bound">ℓ₂</a><a id="4638" class="Symbol">)</a> <a id="4640" class="Keyword">where</a>
|
|||
|
<a id="4648" class="Keyword">infix</a> <a id="4654" class="Number">4</a> <a id="4656" href="Relation.Binary.Structures.html#4729" class="Field Operator">_≟_</a> <a id="4660" href="Relation.Binary.Structures.html#4770" class="Field Operator">_<?_</a>
|
|||
|
<a id="4667" class="Keyword">field</a>
|
|||
|
<a id="IsDecStrictPartialOrder.isStrictPartialOrder"></a><a id="4677" href="Relation.Binary.Structures.html#4677" class="Field">isStrictPartialOrder</a> <a id="4698" class="Symbol">:</a> <a id="4700" href="Relation.Binary.Structures.html#3959" class="Record">IsStrictPartialOrder</a> <a id="4721" href="Relation.Binary.Structures.html#4605" class="Bound Operator">_<_</a>
|
|||
|
<a id="IsDecStrictPartialOrder._≟_"></a><a id="4729" href="Relation.Binary.Structures.html#4729" class="Field Operator">_≟_</a> <a id="4750" class="Symbol">:</a> <a id="4752" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="4762" href="Relation.Binary.Structures.html#459" class="Bound Operator">_≈_</a>
|
|||
|
<a id="IsDecStrictPartialOrder._<?_"></a><a id="4770" href="Relation.Binary.Structures.html#4770" class="Field Operator">_<?_</a> <a id="4791" class="Symbol">:</a> <a id="4793" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="4803" href="Relation.Binary.Structures.html#4605" class="Bound Operator">_<_</a>
|
|||
|
|
|||
|
<a id="4810" class="Keyword">private</a>
|
|||
|
<a id="4822" class="Keyword">module</a> <a id="IsDecStrictPartialOrder.SPO"></a><a id="4829" href="Relation.Binary.Structures.html#4829" class="Module">SPO</a> <a id="4833" class="Symbol">=</a> <a id="4835" href="Relation.Binary.Structures.html#3959" class="Module">IsStrictPartialOrder</a> <a id="4856" href="Relation.Binary.Structures.html#4677" class="Field">isStrictPartialOrder</a>
|
|||
|
|
|||
|
<a id="4880" class="Keyword">open</a> <a id="4885" href="Relation.Binary.Structures.html#4829" class="Module">SPO</a> <a id="4889" class="Keyword">public</a> <a id="4896" class="Keyword">hiding</a> <a id="4903" class="Symbol">(</a><a id="4904" class="Keyword">module</a> <a id="4911" href="Relation.Binary.Structures.html#4187" class="Module">Eq</a><a id="4913" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="4918" class="Keyword">module</a> <a id="IsDecStrictPartialOrder.Eq"></a><a id="4925" href="Relation.Binary.Structures.html#4925" class="Module">Eq</a> <a id="4928" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="IsDecStrictPartialOrder.Eq.isDecEquivalence"></a><a id="4939" href="Relation.Binary.Structures.html#4939" class="Function">isDecEquivalence</a> <a id="4956" class="Symbol">:</a> <a id="4958" href="Relation.Binary.Structures.html#1833" class="Record">IsDecEquivalence</a>
|
|||
|
<a id="4979" href="Relation.Binary.Structures.html#4939" class="Function">isDecEquivalence</a> <a id="4996" class="Symbol">=</a> <a id="4998" class="Keyword">record</a>
|
|||
|
<a id="5011" class="Symbol">{</a> <a id="5013" href="Relation.Binary.Structures.html#1896" class="Field">isEquivalence</a> <a id="5027" class="Symbol">=</a> <a id="5029" href="Relation.Binary.Structures.html#4034" class="Function">SPO.isEquivalence</a>
|
|||
|
<a id="5053" class="Symbol">;</a> <a id="5055" href="Relation.Binary.Structures.html#1930" class="Field Operator">_≟_</a> <a id="5069" class="Symbol">=</a> <a id="5071" href="Relation.Binary.Structures.html#4729" class="Field Operator">_≟_</a>
|
|||
|
<a id="5081" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="5088" class="Keyword">open</a> <a id="5093" href="Relation.Binary.Structures.html#1833" class="Module">IsDecEquivalence</a> <a id="5110" href="Relation.Binary.Structures.html#4939" class="Function">isDecEquivalence</a> <a id="5127" class="Keyword">public</a>
|
|||
|
|
|||
|
|
|||
|
<a id="5136" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="5209" class="Comment">-- Total orders</a>
|
|||
|
<a id="5225" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
|
|||
|
<a id="5299" class="Keyword">record</a> <a id="IsTotalOrder"></a><a id="5306" href="Relation.Binary.Structures.html#5306" class="Record">IsTotalOrder</a> <a id="5319" class="Symbol">(</a><a id="5320" href="Relation.Binary.Structures.html#5320" class="Bound Operator">_≤_</a> <a id="5324" class="Symbol">:</a> <a id="5326" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="5330" href="Relation.Binary.Structures.html#423" class="Bound">A</a> <a id="5332" href="Relation.Binary.Structures.html#826" class="Generalizable">ℓ₂</a><a id="5334" class="Symbol">)</a> <a id="5336" class="Symbol">:</a> <a id="5338" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="5342" class="Symbol">(</a><a id="5343" href="Relation.Binary.Structures.html#417" class="Bound">a</a> <a id="5345" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="5347" href="Relation.Binary.Structures.html#419" class="Bound">ℓ</a> <a id="5349" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="5351" href="Relation.Binary.Structures.html#5332" class="Bound">ℓ₂</a><a id="5353" class="Symbol">)</a> <a id="5355" class="Keyword">where</a>
|
|||
|
<a id="5363" class="Keyword">field</a>
|
|||
|
<a id="IsTotalOrder.isPartialOrder"></a><a id="5373" href="Relation.Binary.Structures.html#5373" class="Field">isPartialOrder</a> <a id="5388" class="Symbol">:</a> <a id="5390" href="Relation.Binary.Structures.html#3183" class="Record">IsPartialOrder</a> <a id="5405" href="Relation.Binary.Structures.html#5320" class="Bound Operator">_≤_</a>
|
|||
|
<a id="IsTotalOrder.total"></a><a id="5413" href="Relation.Binary.Structures.html#5413" class="Field">total</a> <a id="5428" class="Symbol">:</a> <a id="5430" href="Relation.Binary.Definitions.html#2593" class="Function">Total</a> <a id="5436" href="Relation.Binary.Structures.html#5320" class="Bound Operator">_≤_</a>
|
|||
|
|
|||
|
<a id="5443" class="Keyword">open</a> <a id="5448" href="Relation.Binary.Structures.html#3183" class="Module">IsPartialOrder</a> <a id="5463" href="Relation.Binary.Structures.html#5373" class="Field">isPartialOrder</a> <a id="5478" class="Keyword">public</a>
|
|||
|
|
|||
|
<a id="IsTotalOrder.isTotalPreorder"></a><a id="5488" href="Relation.Binary.Structures.html#5488" class="Function">isTotalPreorder</a> <a id="5504" class="Symbol">:</a> <a id="5506" href="Relation.Binary.Structures.html#2742" class="Record">IsTotalPreorder</a> <a id="5522" href="Relation.Binary.Structures.html#5320" class="Bound Operator">_≤_</a>
|
|||
|
<a id="5528" href="Relation.Binary.Structures.html#5488" class="Function">isTotalPreorder</a> <a id="5544" class="Symbol">=</a> <a id="5546" class="Keyword">record</a>
|
|||
|
<a id="5557" class="Symbol">{</a> <a id="5559" href="Relation.Binary.Structures.html#2812" class="Field">isPreorder</a> <a id="5570" class="Symbol">=</a> <a id="5572" href="Relation.Binary.Structures.html#3252" class="Function">isPreorder</a>
|
|||
|
<a id="5587" class="Symbol">;</a> <a id="5589" href="Relation.Binary.Structures.html#2844" class="Field">total</a> <a id="5600" class="Symbol">=</a> <a id="5602" href="Relation.Binary.Structures.html#5413" class="Field">total</a>
|
|||
|
<a id="5612" class="Symbol">}</a>
|
|||
|
|
|||
|
|
|||
|
<a id="5616" class="Keyword">record</a> <a id="IsDecTotalOrder"></a><a id="5623" href="Relation.Binary.Structures.html#5623" class="Record">IsDecTotalOrder</a> <a id="5639" class="Symbol">(</a><a id="5640" href="Relation.Binary.Structures.html#5640" class="Bound Operator">_≤_</a> <a id="5644" class="Symbol">:</a> <a id="5646" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="5650" href="Relation.Binary.Structures.html#423" class="Bound">A</a> <a id="5652" href="Relation.Binary.Structures.html#826" class="Generalizable">ℓ₂</a><a id="5654" class="Symbol">)</a> <a id="5656" class="Symbol">:</a> <a id="5658" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="5662" class="Symbol">(</a><a id="5663" href="Relation.Binary.Structures.html#417" class="Bound">a</a> <a id="5665" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="5667" href="Relation.Binary.Structures.html#419" class="Bound">ℓ</a> <a id="5669" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="5671" href="Relation.Binary.Structures.html#5652" class="Bound">ℓ₂</a><a id="5673" class="Symbol">)</a> <a id="5675" class="Keyword">where</a>
|
|||
|
<a id="5683" class="Keyword">infix</a> <a id="5689" class="Number">4</a> <a id="5691" href="Relation.Binary.Structures.html#5748" class="Field Operator">_≟_</a> <a id="5695" href="Relation.Binary.Structures.html#5781" class="Field Operator">_≤?_</a>
|
|||
|
<a id="5702" class="Keyword">field</a>
|
|||
|
<a id="IsDecTotalOrder.isTotalOrder"></a><a id="5712" href="Relation.Binary.Structures.html#5712" class="Field">isTotalOrder</a> <a id="5725" class="Symbol">:</a> <a id="5727" href="Relation.Binary.Structures.html#5306" class="Record">IsTotalOrder</a> <a id="5740" href="Relation.Binary.Structures.html#5640" class="Bound Operator">_≤_</a>
|
|||
|
<a id="IsDecTotalOrder._≟_"></a><a id="5748" href="Relation.Binary.Structures.html#5748" class="Field Operator">_≟_</a> <a id="5761" class="Symbol">:</a> <a id="5763" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="5773" href="Relation.Binary.Structures.html#459" class="Bound Operator">_≈_</a>
|
|||
|
<a id="IsDecTotalOrder._≤?_"></a><a id="5781" href="Relation.Binary.Structures.html#5781" class="Field Operator">_≤?_</a> <a id="5794" class="Symbol">:</a> <a id="5796" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="5806" href="Relation.Binary.Structures.html#5640" class="Bound Operator">_≤_</a>
|
|||
|
|
|||
|
<a id="5813" class="Keyword">open</a> <a id="5818" href="Relation.Binary.Structures.html#5306" class="Module">IsTotalOrder</a> <a id="5831" href="Relation.Binary.Structures.html#5712" class="Field">isTotalOrder</a> <a id="5844" class="Keyword">public</a>
|
|||
|
<a id="5855" class="Keyword">hiding</a> <a id="5862" class="Symbol">(</a><a id="5863" class="Keyword">module</a> <a id="5870" href="Relation.Binary.Structures.html#2411" class="Module">Eq</a><a id="5872" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="IsDecTotalOrder.isDecPartialOrder"></a><a id="5877" href="Relation.Binary.Structures.html#5877" class="Function">isDecPartialOrder</a> <a id="5895" class="Symbol">:</a> <a id="5897" href="Relation.Binary.Structures.html#3470" class="Record">IsDecPartialOrder</a> <a id="5915" href="Relation.Binary.Structures.html#5640" class="Bound Operator">_≤_</a>
|
|||
|
<a id="5921" href="Relation.Binary.Structures.html#5877" class="Function">isDecPartialOrder</a> <a id="5939" class="Symbol">=</a> <a id="5941" class="Keyword">record</a>
|
|||
|
<a id="5952" class="Symbol">{</a> <a id="5954" href="Relation.Binary.Structures.html#3561" class="Field">isPartialOrder</a> <a id="5969" class="Symbol">=</a> <a id="5971" href="Relation.Binary.Structures.html#5373" class="Function">isPartialOrder</a>
|
|||
|
<a id="5990" class="Symbol">;</a> <a id="5992" href="Relation.Binary.Structures.html#3601" class="Field Operator">_≟_</a> <a id="6007" class="Symbol">=</a> <a id="6009" href="Relation.Binary.Structures.html#5748" class="Field Operator">_≟_</a>
|
|||
|
<a id="6017" class="Symbol">;</a> <a id="6019" href="Relation.Binary.Structures.html#3636" class="Field Operator">_≤?_</a> <a id="6034" class="Symbol">=</a> <a id="6036" href="Relation.Binary.Structures.html#5781" class="Field Operator">_≤?_</a>
|
|||
|
<a id="6045" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="6050" class="Keyword">module</a> <a id="IsDecTotalOrder.Eq"></a><a id="6057" href="Relation.Binary.Structures.html#6057" class="Module">Eq</a> <a id="6060" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="IsDecTotalOrder.Eq.isDecEquivalence"></a><a id="6071" href="Relation.Binary.Structures.html#6071" class="Function">isDecEquivalence</a> <a id="6088" class="Symbol">:</a> <a id="6090" href="Relation.Binary.Structures.html#1833" class="Record">IsDecEquivalence</a>
|
|||
|
<a id="6111" href="Relation.Binary.Structures.html#6071" class="Function">isDecEquivalence</a> <a id="6128" class="Symbol">=</a> <a id="6130" class="Keyword">record</a>
|
|||
|
<a id="6143" class="Symbol">{</a> <a id="6145" href="Relation.Binary.Structures.html#1896" class="Field">isEquivalence</a> <a id="6159" class="Symbol">=</a> <a id="6161" href="Relation.Binary.Structures.html#2237" class="Function">isEquivalence</a>
|
|||
|
<a id="6181" class="Symbol">;</a> <a id="6183" href="Relation.Binary.Structures.html#1930" class="Field Operator">_≟_</a> <a id="6197" class="Symbol">=</a> <a id="6199" href="Relation.Binary.Structures.html#5748" class="Field Operator">_≟_</a>
|
|||
|
<a id="6209" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="6216" class="Keyword">open</a> <a id="6221" href="Relation.Binary.Structures.html#1833" class="Module">IsDecEquivalence</a> <a id="6238" href="Relation.Binary.Structures.html#6071" class="Function">isDecEquivalence</a> <a id="6255" class="Keyword">public</a>
|
|||
|
|
|||
|
|
|||
|
<a id="6264" class="Comment">-- Note that these orders are decidable. The current implementation</a>
|
|||
|
<a id="6332" class="Comment">-- of `Trichotomous` subsumes irreflexivity and asymmetry. Any reasonable</a>
|
|||
|
<a id="6406" class="Comment">-- definition capturing these three properties implies decidability</a>
|
|||
|
<a id="6474" class="Comment">-- as `Trichotomous` necessarily separates out the equality case.</a>
|
|||
|
|
|||
|
<a id="6541" class="Keyword">record</a> <a id="IsStrictTotalOrder"></a><a id="6548" href="Relation.Binary.Structures.html#6548" class="Record">IsStrictTotalOrder</a> <a id="6567" class="Symbol">(</a><a id="6568" href="Relation.Binary.Structures.html#6568" class="Bound Operator">_<_</a> <a id="6572" class="Symbol">:</a> <a id="6574" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="6578" href="Relation.Binary.Structures.html#423" class="Bound">A</a> <a id="6580" href="Relation.Binary.Structures.html#826" class="Generalizable">ℓ₂</a><a id="6582" class="Symbol">)</a> <a id="6584" class="Symbol">:</a> <a id="6586" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="6590" class="Symbol">(</a><a id="6591" href="Relation.Binary.Structures.html#417" class="Bound">a</a> <a id="6593" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="6595" href="Relation.Binary.Structures.html#419" class="Bound">ℓ</a> <a id="6597" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="6599" href="Relation.Binary.Structures.html#6580" class="Bound">ℓ₂</a><a id="6601" class="Symbol">)</a> <a id="6603" class="Keyword">where</a>
|
|||
|
<a id="6611" class="Keyword">field</a>
|
|||
|
<a id="IsStrictTotalOrder.isEquivalence"></a><a id="6621" href="Relation.Binary.Structures.html#6621" class="Field">isEquivalence</a> <a id="6635" class="Symbol">:</a> <a id="6637" href="Relation.Binary.Structures.html#1531" class="Record">IsEquivalence</a>
|
|||
|
<a id="IsStrictTotalOrder.trans"></a><a id="6655" href="Relation.Binary.Structures.html#6655" class="Field">trans</a> <a id="6669" class="Symbol">:</a> <a id="6671" href="Relation.Binary.Definitions.html#1875" class="Function">Transitive</a> <a id="6682" href="Relation.Binary.Structures.html#6568" class="Bound Operator">_<_</a>
|
|||
|
<a id="IsStrictTotalOrder.compare"></a><a id="6690" href="Relation.Binary.Structures.html#6690" class="Field">compare</a> <a id="6704" class="Symbol">:</a> <a id="6706" href="Relation.Binary.Definitions.html#2964" class="Function">Trichotomous</a> <a id="6719" href="Relation.Binary.Structures.html#459" class="Bound Operator">_≈_</a> <a id="6723" href="Relation.Binary.Structures.html#6568" class="Bound Operator">_<_</a>
|
|||
|
|
|||
|
<a id="6730" class="Keyword">infix</a> <a id="6736" class="Number">4</a> <a id="6738" href="Relation.Binary.Structures.html#6750" class="Function Operator">_≟_</a> <a id="6742" href="Relation.Binary.Structures.html#6798" class="Function Operator">_<?_</a>
|
|||
|
|
|||
|
<a id="IsStrictTotalOrder._≟_"></a><a id="6750" href="Relation.Binary.Structures.html#6750" class="Function Operator">_≟_</a> <a id="6754" class="Symbol">:</a> <a id="6756" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="6766" href="Relation.Binary.Structures.html#459" class="Bound Operator">_≈_</a>
|
|||
|
<a id="6772" href="Relation.Binary.Structures.html#6750" class="Function Operator">_≟_</a> <a id="6776" class="Symbol">=</a> <a id="6778" href="Relation.Binary.Consequences.html#4011" class="Function">tri⇒dec≈</a> <a id="6787" href="Relation.Binary.Structures.html#6690" class="Field">compare</a>
|
|||
|
|
|||
|
<a id="IsStrictTotalOrder._<?_"></a><a id="6798" href="Relation.Binary.Structures.html#6798" class="Function Operator">_<?_</a> <a id="6803" class="Symbol">:</a> <a id="6805" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="6815" href="Relation.Binary.Structures.html#6568" class="Bound Operator">_<_</a>
|
|||
|
<a id="6821" href="Relation.Binary.Structures.html#6798" class="Function Operator">_<?_</a> <a id="6826" class="Symbol">=</a> <a id="6828" href="Relation.Binary.Consequences.html#4195" class="Function">tri⇒dec<</a> <a id="6837" href="Relation.Binary.Structures.html#6690" class="Field">compare</a>
|
|||
|
|
|||
|
<a id="IsStrictTotalOrder.isDecEquivalence"></a><a id="6848" href="Relation.Binary.Structures.html#6848" class="Function">isDecEquivalence</a> <a id="6865" class="Symbol">:</a> <a id="6867" href="Relation.Binary.Structures.html#1833" class="Record">IsDecEquivalence</a>
|
|||
|
<a id="6886" href="Relation.Binary.Structures.html#6848" class="Function">isDecEquivalence</a> <a id="6903" class="Symbol">=</a> <a id="6905" class="Keyword">record</a>
|
|||
|
<a id="6916" class="Symbol">{</a> <a id="6918" href="Relation.Binary.Structures.html#1896" class="Field">isEquivalence</a> <a id="6932" class="Symbol">=</a> <a id="6934" href="Relation.Binary.Structures.html#6621" class="Field">isEquivalence</a>
|
|||
|
<a id="6952" class="Symbol">;</a> <a id="6954" href="Relation.Binary.Structures.html#1930" class="Field Operator">_≟_</a> <a id="6968" class="Symbol">=</a> <a id="6970" href="Relation.Binary.Structures.html#6750" class="Function Operator">_≟_</a>
|
|||
|
<a id="6978" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="6983" class="Keyword">module</a> <a id="IsStrictTotalOrder.Eq"></a><a id="6990" href="Relation.Binary.Structures.html#6990" class="Module">Eq</a> <a id="6993" class="Symbol">=</a> <a id="6995" href="Relation.Binary.Structures.html#1833" class="Module">IsDecEquivalence</a> <a id="7012" href="Relation.Binary.Structures.html#6848" class="Function">isDecEquivalence</a>
|
|||
|
|
|||
|
<a id="IsStrictTotalOrder.isStrictPartialOrder"></a><a id="7032" href="Relation.Binary.Structures.html#7032" class="Function">isStrictPartialOrder</a> <a id="7053" class="Symbol">:</a> <a id="7055" href="Relation.Binary.Structures.html#3959" class="Record">IsStrictPartialOrder</a> <a id="7076" href="Relation.Binary.Structures.html#6568" class="Bound Operator">_<_</a>
|
|||
|
<a id="7082" href="Relation.Binary.Structures.html#7032" class="Function">isStrictPartialOrder</a> <a id="7103" class="Symbol">=</a> <a id="7105" class="Keyword">record</a>
|
|||
|
<a id="7116" class="Symbol">{</a> <a id="7118" href="Relation.Binary.Structures.html#4034" class="Field">isEquivalence</a> <a id="7132" class="Symbol">=</a> <a id="7134" href="Relation.Binary.Structures.html#6621" class="Field">isEquivalence</a>
|
|||
|
<a id="7152" class="Symbol">;</a> <a id="7154" href="Relation.Binary.Structures.html#4068" class="Field">irrefl</a> <a id="7168" class="Symbol">=</a> <a id="7170" href="Relation.Binary.Consequences.html#3799" class="Function">tri⇒irr</a> <a id="7178" href="Relation.Binary.Structures.html#6690" class="Field">compare</a>
|
|||
|
<a id="7190" class="Symbol">;</a> <a id="7192" href="Relation.Binary.Structures.html#4108" class="Field">trans</a> <a id="7206" class="Symbol">=</a> <a id="7208" href="Relation.Binary.Structures.html#6655" class="Field">trans</a>
|
|||
|
<a id="7218" class="Symbol">;</a> <a id="7220" href="Relation.Binary.Structures.html#4143" class="Field"><-resp-≈</a> <a id="7234" class="Symbol">=</a> <a id="7236" href="Relation.Binary.Consequences.html#5119" class="Function">trans∧tri⇒resp</a> <a id="7251" href="Relation.Binary.Structures.html#1603" class="Function">Eq.sym</a> <a id="7258" href="Relation.Binary.Structures.html#1629" class="Function">Eq.trans</a> <a id="7267" href="Relation.Binary.Structures.html#6655" class="Field">trans</a> <a id="7273" href="Relation.Binary.Structures.html#6690" class="Field">compare</a>
|
|||
|
<a id="7285" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="IsStrictTotalOrder.isDecStrictPartialOrder"></a><a id="7290" href="Relation.Binary.Structures.html#7290" class="Function">isDecStrictPartialOrder</a> <a id="7314" class="Symbol">:</a> <a id="7316" href="Relation.Binary.Structures.html#4580" class="Record">IsDecStrictPartialOrder</a> <a id="7340" href="Relation.Binary.Structures.html#6568" class="Bound Operator">_<_</a>
|
|||
|
<a id="7346" href="Relation.Binary.Structures.html#7290" class="Function">isDecStrictPartialOrder</a> <a id="7370" class="Symbol">=</a> <a id="7372" class="Keyword">record</a>
|
|||
|
<a id="7383" class="Symbol">{</a> <a id="7385" href="Relation.Binary.Structures.html#4677" class="Field">isStrictPartialOrder</a> <a id="7406" class="Symbol">=</a> <a id="7408" href="Relation.Binary.Structures.html#7032" class="Function">isStrictPartialOrder</a>
|
|||
|
<a id="7433" class="Symbol">;</a> <a id="7435" href="Relation.Binary.Structures.html#4729" class="Field Operator">_≟_</a> <a id="7456" class="Symbol">=</a> <a id="7458" href="Relation.Binary.Structures.html#6750" class="Function Operator">_≟_</a>
|
|||
|
<a id="7466" class="Symbol">;</a> <a id="7468" href="Relation.Binary.Structures.html#4770" class="Field Operator">_<?_</a> <a id="7489" class="Symbol">=</a> <a id="7491" href="Relation.Binary.Structures.html#6798" class="Function Operator">_<?_</a>
|
|||
|
<a id="7500" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="7505" class="Keyword">open</a> <a id="7510" href="Relation.Binary.Structures.html#3959" class="Module">IsStrictPartialOrder</a> <a id="7531" href="Relation.Binary.Structures.html#7032" class="Function">isStrictPartialOrder</a> <a id="7552" class="Keyword">public</a>
|
|||
|
<a id="7563" class="Keyword">using</a> <a id="7569" class="Symbol">(</a><a id="7570" href="Relation.Binary.Structures.html#4068" class="Field">irrefl</a><a id="7576" class="Symbol">;</a> <a id="7578" href="Relation.Binary.Structures.html#4223" class="Function">asym</a><a id="7582" class="Symbol">;</a> <a id="7584" href="Relation.Binary.Structures.html#4313" class="Function"><-respʳ-≈</a><a id="7593" class="Symbol">;</a> <a id="7595" href="Relation.Binary.Structures.html#4375" class="Function"><-respˡ-≈</a><a id="7604" class="Symbol">;</a> <a id="7606" href="Relation.Binary.Structures.html#4143" class="Field"><-resp-≈</a><a id="7614" class="Symbol">)</a>
|
|||
|
</pre></body></html>
|