bsc-leon-vatthauer/agda/bsc-thesis/Relation.Binary.Construct.NaturalOrder.Left.html
2024-02-09 17:53:52 +01:00

193 lines
No EOL
80 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Relation.Binary.Construct.NaturalOrder.Left</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">-- Conversion of binary operators to binary relations via the left</a>
<a id="173" class="Comment">-- natural order.</a>
<a id="191" class="Comment">------------------------------------------------------------------------</a>
<a id="265" class="Symbol">{-#</a> <a id="269" class="Keyword">OPTIONS</a> <a id="277" class="Pragma">--cubical-compatible</a> <a id="298" class="Pragma">--safe</a> <a id="305" class="Symbol">#-}</a>
<a id="310" class="Keyword">open</a> <a id="315" class="Keyword">import</a> <a id="322" href="Algebra.Core.html" class="Module">Algebra.Core</a>
<a id="335" class="Keyword">open</a> <a id="340" class="Keyword">import</a> <a id="347" href="Data.Product.Base.html" class="Module">Data.Product.Base</a> <a id="365" class="Keyword">using</a> <a id="371" class="Symbol">(</a><a id="372" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">_,_</a><a id="375" class="Symbol">;</a> <a id="377" href="Data.Product.Base.html#1618" class="Function Operator">_×_</a><a id="380" class="Symbol">)</a>
<a id="382" class="Keyword">open</a> <a id="387" class="Keyword">import</a> <a id="394" href="Data.Sum.Base.html" class="Module">Data.Sum.Base</a> <a id="408" class="Keyword">using</a> <a id="414" class="Symbol">(</a><a id="415" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a><a id="419" class="Symbol">;</a> <a id="421" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a><a id="425" class="Symbol">)</a>
<a id="427" class="Keyword">open</a> <a id="432" class="Keyword">import</a> <a id="439" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a> <a id="460" class="Keyword">using</a> <a id="466" class="Symbol">(</a><a id="467" href="Relation.Binary.Core.html#896" class="Function">Rel</a><a id="470" class="Symbol">;</a> <a id="472" href="Relation.Binary.Core.html#1268" class="Function Operator">_⇒_</a><a id="475" class="Symbol">)</a>
<a id="477" class="Keyword">open</a> <a id="482" class="Keyword">import</a> <a id="489" href="Relation.Binary.Bundles.html" class="Module">Relation.Binary.Bundles</a>
<a id="515" class="Keyword">using</a> <a id="521" class="Symbol">(</a><a id="522" href="Relation.Binary.Bundles.html#2121" class="Record">Preorder</a><a id="530" class="Symbol">;</a> <a id="532" href="Relation.Binary.Bundles.html#3530" class="Record">Poset</a><a id="537" class="Symbol">;</a> <a id="539" href="Relation.Binary.Bundles.html#4140" class="Record">DecPoset</a><a id="547" class="Symbol">;</a> <a id="549" href="Relation.Binary.Bundles.html#6458" class="Record">TotalOrder</a><a id="559" class="Symbol">;</a> <a id="561" href="Relation.Binary.Bundles.html#7041" class="Record">DecTotalOrder</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.Structures.html" class="Module">Relation.Binary.Structures</a>
<a id="617" class="Keyword">using</a> <a id="623" class="Symbol">(</a><a id="624" href="Relation.Binary.Structures.html#1550" class="Record">IsEquivalence</a><a id="637" class="Symbol">;</a> <a id="639" href="Relation.Binary.Structures.html#2191" class="Record">IsPreorder</a><a id="649" class="Symbol">;</a> <a id="651" href="Relation.Binary.Structures.html#3522" class="Record">IsPartialOrder</a><a id="665" class="Symbol">;</a> <a id="667" href="Relation.Binary.Structures.html#3809" class="Record">IsDecPartialOrder</a><a id="684" class="Symbol">;</a> <a id="686" href="Relation.Binary.Structures.html#5508" class="Record">IsTotalOrder</a><a id="698" class="Symbol">;</a> <a id="700" href="Relation.Binary.Structures.html#5825" class="Record">IsDecTotalOrder</a><a id="715" class="Symbol">)</a>
<a id="717" class="Keyword">open</a> <a id="722" class="Keyword">import</a> <a id="729" href="Relation.Binary.Definitions.html" class="Module">Relation.Binary.Definitions</a>
<a id="759" class="Keyword">using</a> <a id="765" class="Symbol">(</a><a id="766" href="Relation.Binary.Definitions.html#1587" class="Function">Symmetric</a><a id="775" class="Symbol">;</a> <a id="777" href="Relation.Binary.Definitions.html#2103" class="Function">Transitive</a><a id="787" class="Symbol">;</a> <a id="789" href="Relation.Binary.Definitions.html#1428" class="Function">Reflexive</a><a id="798" class="Symbol">;</a> <a id="800" href="Relation.Binary.Definitions.html#2319" class="Function">Antisymmetric</a><a id="813" class="Symbol">;</a> <a id="815" href="Relation.Binary.Definitions.html#2910" class="Function">Total</a><a id="820" class="Symbol">;</a> <a id="822" href="Relation.Binary.Definitions.html#5335" class="Function Operator">_Respectsʳ_</a><a id="833" class="Symbol">;</a> <a id="835" href="Relation.Binary.Definitions.html#5500" class="Function Operator">_Respectsˡ_</a><a id="846" class="Symbol">;</a> <a id="848" href="Relation.Binary.Definitions.html#5663" class="Function Operator">_Respects₂_</a><a id="859" class="Symbol">;</a> <a id="861" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a><a id="870" class="Symbol">)</a>
<a id="872" class="Keyword">open</a> <a id="877" class="Keyword">import</a> <a id="884" href="Relation.Nullary.Negation.html" class="Module">Relation.Nullary.Negation</a> <a id="910" class="Keyword">using</a> <a id="916" class="Symbol">(</a><a id="917" href="Relation.Nullary.Negation.Core.html#698" class="Function Operator">¬_</a><a id="919" class="Symbol">)</a>
<a id="921" class="Keyword">import</a> <a id="928" href="Relation.Binary.Reasoning.Setoid.html" class="Module">Relation.Binary.Reasoning.Setoid</a> <a id="961" class="Symbol">as</a> <a id="964" class="Module">EqReasoning</a>
<a id="976" class="Keyword">open</a> <a id="981" class="Keyword">import</a> <a id="988" href="Relation.Binary.Lattice.html" class="Module">Relation.Binary.Lattice</a> <a id="1012" class="Keyword">using</a> <a id="1018" class="Symbol">(</a><a id="1019" href="Relation.Binary.Lattice.Definitions.html#890" class="Function">Infimum</a><a id="1026" class="Symbol">)</a>
<a id="1029" class="Keyword">module</a> <a id="1036" href="Relation.Binary.Construct.NaturalOrder.Left.html" class="Module">Relation.Binary.Construct.NaturalOrder.Left</a>
<a id="1082" class="Symbol">{</a><a id="1083" href="Relation.Binary.Construct.NaturalOrder.Left.html#1083" class="Bound">a</a> <a id="1085" href="Relation.Binary.Construct.NaturalOrder.Left.html#1085" class="Bound"></a><a id="1086" class="Symbol">}</a> <a id="1088" class="Symbol">{</a><a id="1089" href="Relation.Binary.Construct.NaturalOrder.Left.html#1089" class="Bound">A</a> <a id="1091" class="Symbol">:</a> <a id="1093" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1097" href="Relation.Binary.Construct.NaturalOrder.Left.html#1083" class="Bound">a</a><a id="1098" class="Symbol">}</a> <a id="1100" class="Symbol">(</a><a id="1101" href="Relation.Binary.Construct.NaturalOrder.Left.html#1101" class="Bound Operator">_≈_</a> <a id="1105" class="Symbol">:</a> <a id="1107" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="1111" href="Relation.Binary.Construct.NaturalOrder.Left.html#1089" class="Bound">A</a> <a id="1113" href="Relation.Binary.Construct.NaturalOrder.Left.html#1085" class="Bound"></a><a id="1114" class="Symbol">)</a> <a id="1116" class="Symbol">(</a><a id="1117" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a> <a id="1121" class="Symbol">:</a> <a id="1123" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="1127" href="Relation.Binary.Construct.NaturalOrder.Left.html#1089" class="Bound">A</a><a id="1128" class="Symbol">)</a> <a id="1130" class="Keyword">where</a>
<a id="1137" class="Keyword">open</a> <a id="1142" class="Keyword">import</a> <a id="1149" href="Algebra.Definitions.html" class="Module">Algebra.Definitions</a> <a id="1169" href="Relation.Binary.Construct.NaturalOrder.Left.html#1101" class="Bound Operator">_≈_</a>
<a id="1173" class="Keyword">open</a> <a id="1178" class="Keyword">import</a> <a id="1185" href="Algebra.Structures.html" class="Module">Algebra.Structures</a> <a id="1204" href="Relation.Binary.Construct.NaturalOrder.Left.html#1101" class="Bound Operator">_≈_</a>
<a id="1208" class="Keyword">open</a> <a id="1213" class="Keyword">import</a> <a id="1220" href="Algebra.Lattice.Structures.html" class="Module">Algebra.Lattice.Structures</a> <a id="1247" href="Relation.Binary.Construct.NaturalOrder.Left.html#1101" class="Bound Operator">_≈_</a>
<a id="1252" class="Comment">------------------------------------------------------------------------</a>
<a id="1325" class="Comment">-- Definition</a>
<a id="1340" class="Keyword">infix</a> <a id="1346" class="Number">4</a> <a id="1348" href="Relation.Binary.Construct.NaturalOrder.Left.html#1353" class="Function Operator">_≤_</a>
<a id="_≤_"></a><a id="1353" href="Relation.Binary.Construct.NaturalOrder.Left.html#1353" class="Function Operator">_≤_</a> <a id="1357" class="Symbol">:</a> <a id="1359" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="1363" href="Relation.Binary.Construct.NaturalOrder.Left.html#1089" class="Bound">A</a> <a id="1365" href="Relation.Binary.Construct.NaturalOrder.Left.html#1085" class="Bound"></a>
<a id="1367" href="Relation.Binary.Construct.NaturalOrder.Left.html#1367" class="Bound">x</a> <a id="1369" href="Relation.Binary.Construct.NaturalOrder.Left.html#1353" class="Function Operator"></a> <a id="1371" href="Relation.Binary.Construct.NaturalOrder.Left.html#1371" class="Bound">y</a> <a id="1373" class="Symbol">=</a> <a id="1375" href="Relation.Binary.Construct.NaturalOrder.Left.html#1367" class="Bound">x</a> <a id="1377" href="Relation.Binary.Construct.NaturalOrder.Left.html#1101" class="Bound Operator"></a> <a id="1379" class="Symbol">(</a><a id="1380" href="Relation.Binary.Construct.NaturalOrder.Left.html#1367" class="Bound">x</a> <a id="1382" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="1384" href="Relation.Binary.Construct.NaturalOrder.Left.html#1371" class="Bound">y</a><a id="1385" class="Symbol">)</a>
<a id="1388" class="Comment">------------------------------------------------------------------------</a>
<a id="1461" class="Comment">-- Relational properties</a>
<a id="reflexive"></a><a id="1487" href="Relation.Binary.Construct.NaturalOrder.Left.html#1487" class="Function">reflexive</a> <a id="1497" class="Symbol">:</a> <a id="1499" href="Algebra.Structures.html#1225" class="Record">IsMagma</a> <a id="1507" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a> <a id="1511" class="Symbol"></a> <a id="1513" href="Algebra.Definitions.html#3706" class="Function">Idempotent</a> <a id="1524" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a> <a id="1528" class="Symbol"></a> <a id="1530" href="Relation.Binary.Construct.NaturalOrder.Left.html#1101" class="Bound Operator">_≈_</a> <a id="1534" href="Relation.Binary.Core.html#1268" class="Function Operator"></a> <a id="1536" href="Relation.Binary.Construct.NaturalOrder.Left.html#1353" class="Function Operator">_≤_</a>
<a id="1540" href="Relation.Binary.Construct.NaturalOrder.Left.html#1487" class="Function">reflexive</a> <a id="1550" href="Relation.Binary.Construct.NaturalOrder.Left.html#1550" class="Bound">magma</a> <a id="1556" href="Relation.Binary.Construct.NaturalOrder.Left.html#1556" class="Bound">idem</a> <a id="1561" class="Symbol">{</a><a id="1562" href="Relation.Binary.Construct.NaturalOrder.Left.html#1562" class="Bound">x</a><a id="1563" class="Symbol">}</a> <a id="1565" class="Symbol">{</a><a id="1566" href="Relation.Binary.Construct.NaturalOrder.Left.html#1566" class="Bound">y</a><a id="1567" class="Symbol">}</a> <a id="1569" href="Relation.Binary.Construct.NaturalOrder.Left.html#1569" class="Bound">x≈y</a> <a id="1573" class="Symbol">=</a> <a id="1575" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="1583" href="Relation.Binary.Construct.NaturalOrder.Left.html#1562" class="Bound">x</a> <a id="1589" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="1592" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="1596" class="Symbol">(</a><a id="1597" href="Relation.Binary.Construct.NaturalOrder.Left.html#1556" class="Bound">idem</a> <a id="1602" href="Relation.Binary.Construct.NaturalOrder.Left.html#1562" class="Bound">x</a><a id="1603" class="Symbol">)</a> <a id="1605" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="1609" href="Relation.Binary.Construct.NaturalOrder.Left.html#1562" class="Bound">x</a> <a id="1611" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="1613" href="Relation.Binary.Construct.NaturalOrder.Left.html#1562" class="Bound">x</a> <a id="1615" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="1618" href="Algebra.Structures.html#1315" class="Function">∙-cong</a> <a id="1625" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="1630" href="Relation.Binary.Construct.NaturalOrder.Left.html#1569" class="Bound">x≈y</a> <a id="1634" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="1638" href="Relation.Binary.Construct.NaturalOrder.Left.html#1562" class="Bound">x</a> <a id="1640" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="1642" href="Relation.Binary.Construct.NaturalOrder.Left.html#1566" class="Bound">y</a> <a id="1644" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="1648" class="Keyword">where</a> <a id="1654" class="Keyword">open</a> <a id="1659" href="Algebra.Structures.html#1225" class="Module">IsMagma</a> <a id="1667" href="Relation.Binary.Construct.NaturalOrder.Left.html#1550" class="Bound">magma</a><a id="1672" class="Symbol">;</a> <a id="1674" class="Keyword">open</a> <a id="1679" href="Relation.Binary.Reasoning.Setoid.html" class="Module">EqReasoning</a> <a id="1691" href="Algebra.Structures.html#1390" class="Function">setoid</a>
<a id="refl"></a><a id="1699" href="Relation.Binary.Construct.NaturalOrder.Left.html#1699" class="Function">refl</a> <a id="1704" class="Symbol">:</a> <a id="1706" href="Relation.Binary.Definitions.html#1587" class="Function">Symmetric</a> <a id="1716" href="Relation.Binary.Construct.NaturalOrder.Left.html#1101" class="Bound Operator">_≈_</a> <a id="1720" class="Symbol"></a> <a id="1722" href="Algebra.Definitions.html#3706" class="Function">Idempotent</a> <a id="1733" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a> <a id="1737" class="Symbol"></a> <a id="1739" href="Relation.Binary.Definitions.html#1428" class="Function">Reflexive</a> <a id="1749" href="Relation.Binary.Construct.NaturalOrder.Left.html#1353" class="Function Operator">_≤_</a>
<a id="1753" href="Relation.Binary.Construct.NaturalOrder.Left.html#1699" class="Function">refl</a> <a id="1758" href="Relation.Binary.Construct.NaturalOrder.Left.html#1758" class="Bound">sym</a> <a id="1762" href="Relation.Binary.Construct.NaturalOrder.Left.html#1762" class="Bound">idem</a> <a id="1767" class="Symbol">{</a><a id="1768" href="Relation.Binary.Construct.NaturalOrder.Left.html#1768" class="Bound">x</a><a id="1769" class="Symbol">}</a> <a id="1771" class="Symbol">=</a> <a id="1773" href="Relation.Binary.Construct.NaturalOrder.Left.html#1758" class="Bound">sym</a> <a id="1777" class="Symbol">(</a><a id="1778" href="Relation.Binary.Construct.NaturalOrder.Left.html#1762" class="Bound">idem</a> <a id="1783" href="Relation.Binary.Construct.NaturalOrder.Left.html#1768" class="Bound">x</a><a id="1784" class="Symbol">)</a>
<a id="antisym"></a><a id="1787" href="Relation.Binary.Construct.NaturalOrder.Left.html#1787" class="Function">antisym</a> <a id="1795" class="Symbol">:</a> <a id="1797" href="Relation.Binary.Structures.html#1550" class="Record">IsEquivalence</a> <a id="1811" href="Relation.Binary.Construct.NaturalOrder.Left.html#1101" class="Bound Operator">_≈_</a> <a id="1815" class="Symbol"></a> <a id="1817" href="Algebra.Definitions.html#1635" class="Function">Commutative</a> <a id="1829" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a> <a id="1833" class="Symbol"></a> <a id="1835" href="Relation.Binary.Definitions.html#2319" class="Function">Antisymmetric</a> <a id="1849" href="Relation.Binary.Construct.NaturalOrder.Left.html#1101" class="Bound Operator">_≈_</a> <a id="1853" href="Relation.Binary.Construct.NaturalOrder.Left.html#1353" class="Function Operator">_≤_</a>
<a id="1857" href="Relation.Binary.Construct.NaturalOrder.Left.html#1787" class="Function">antisym</a> <a id="1865" href="Relation.Binary.Construct.NaturalOrder.Left.html#1865" class="Bound">isEq</a> <a id="1870" href="Relation.Binary.Construct.NaturalOrder.Left.html#1870" class="Bound">comm</a> <a id="1875" class="Symbol">{</a><a id="1876" href="Relation.Binary.Construct.NaturalOrder.Left.html#1876" class="Bound">x</a><a id="1877" class="Symbol">}</a> <a id="1879" class="Symbol">{</a><a id="1880" href="Relation.Binary.Construct.NaturalOrder.Left.html#1880" class="Bound">y</a><a id="1881" class="Symbol">}</a> <a id="1883" href="Relation.Binary.Construct.NaturalOrder.Left.html#1883" class="Bound">x≤y</a> <a id="1887" href="Relation.Binary.Construct.NaturalOrder.Left.html#1887" class="Bound">y≤x</a> <a id="1891" class="Symbol">=</a> <a id="1893" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="1901" href="Relation.Binary.Construct.NaturalOrder.Left.html#1876" class="Bound">x</a> <a id="1907" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="1910" href="Relation.Binary.Construct.NaturalOrder.Left.html#1883" class="Bound">x≤y</a> <a id="1914" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="1918" href="Relation.Binary.Construct.NaturalOrder.Left.html#1876" class="Bound">x</a> <a id="1920" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="1922" href="Relation.Binary.Construct.NaturalOrder.Left.html#1880" class="Bound">y</a> <a id="1924" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="1927" href="Relation.Binary.Construct.NaturalOrder.Left.html#1870" class="Bound">comm</a> <a id="1932" href="Relation.Binary.Construct.NaturalOrder.Left.html#1876" class="Bound">x</a> <a id="1934" href="Relation.Binary.Construct.NaturalOrder.Left.html#1880" class="Bound">y</a> <a id="1936" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="1940" href="Relation.Binary.Construct.NaturalOrder.Left.html#1880" class="Bound">y</a> <a id="1942" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="1944" href="Relation.Binary.Construct.NaturalOrder.Left.html#1876" class="Bound">x</a> <a id="1946" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="1949" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="1953" href="Relation.Binary.Construct.NaturalOrder.Left.html#1887" class="Bound">y≤x</a> <a id="1957" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="1961" href="Relation.Binary.Construct.NaturalOrder.Left.html#1880" class="Bound">y</a> <a id="1967" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="1971" class="Keyword">where</a> <a id="1977" class="Keyword">open</a> <a id="1982" href="Relation.Binary.Structures.html#1550" class="Module">IsEquivalence</a> <a id="1996" href="Relation.Binary.Construct.NaturalOrder.Left.html#1865" class="Bound">isEq</a><a id="2000" class="Symbol">;</a> <a id="2002" class="Keyword">open</a> <a id="2007" href="Relation.Binary.Reasoning.Setoid.html" class="Module">EqReasoning</a> <a id="2019" class="Symbol">(</a><a id="2020" class="Keyword">record</a> <a id="2027" class="Symbol">{</a> <a id="2029" href="Relation.Binary.Bundles.html#1203" class="Field">isEquivalence</a> <a id="2043" class="Symbol">=</a> <a id="2045" href="Relation.Binary.Construct.NaturalOrder.Left.html#1865" class="Bound">isEq</a> <a id="2050" class="Symbol">})</a>
<a id="total"></a><a id="2054" href="Relation.Binary.Construct.NaturalOrder.Left.html#2054" class="Function">total</a> <a id="2060" class="Symbol">:</a> <a id="2062" href="Relation.Binary.Definitions.html#1587" class="Function">Symmetric</a> <a id="2072" href="Relation.Binary.Construct.NaturalOrder.Left.html#1101" class="Bound Operator">_≈_</a> <a id="2076" class="Symbol"></a> <a id="2078" href="Relation.Binary.Definitions.html#2103" class="Function">Transitive</a> <a id="2089" href="Relation.Binary.Construct.NaturalOrder.Left.html#1101" class="Bound Operator">_≈_</a> <a id="2093" class="Symbol"></a> <a id="2095" href="Algebra.Definitions.html#3841" class="Function">Selective</a> <a id="2105" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a> <a id="2109" class="Symbol"></a> <a id="2111" href="Algebra.Definitions.html#1635" class="Function">Commutative</a> <a id="2123" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a> <a id="2127" class="Symbol"></a> <a id="2129" href="Relation.Binary.Definitions.html#2910" class="Function">Total</a> <a id="2135" href="Relation.Binary.Construct.NaturalOrder.Left.html#1353" class="Function Operator">_≤_</a>
<a id="2139" href="Relation.Binary.Construct.NaturalOrder.Left.html#2054" class="Function">total</a> <a id="2145" href="Relation.Binary.Construct.NaturalOrder.Left.html#2145" class="Bound">sym</a> <a id="2149" href="Relation.Binary.Construct.NaturalOrder.Left.html#2149" class="Bound">trans</a> <a id="2155" href="Relation.Binary.Construct.NaturalOrder.Left.html#2155" class="Bound">sel</a> <a id="2159" href="Relation.Binary.Construct.NaturalOrder.Left.html#2159" class="Bound">comm</a> <a id="2164" href="Relation.Binary.Construct.NaturalOrder.Left.html#2164" class="Bound">x</a> <a id="2166" href="Relation.Binary.Construct.NaturalOrder.Left.html#2166" class="Bound">y</a> <a id="2168" class="Keyword">with</a> <a id="2173" href="Relation.Binary.Construct.NaturalOrder.Left.html#2155" class="Bound">sel</a> <a id="2177" href="Relation.Binary.Construct.NaturalOrder.Left.html#2164" class="Bound">x</a> <a id="2179" href="Relation.Binary.Construct.NaturalOrder.Left.html#2166" class="Bound">y</a>
<a id="2181" class="Symbol">...</a> <a id="2185" class="Symbol">|</a> <a id="2187" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a> <a id="2192" href="Relation.Binary.Construct.NaturalOrder.Left.html#2192" class="Bound">x∙y≈x</a> <a id="2198" class="Symbol">=</a> <a id="2200" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a> <a id="2205" class="Symbol">(</a><a id="2206" class="Bound">sym</a> <a id="2210" href="Relation.Binary.Construct.NaturalOrder.Left.html#2192" class="Bound">x∙y≈x</a><a id="2215" class="Symbol">)</a>
<a id="2217" class="Symbol">...</a> <a id="2221" class="Symbol">|</a> <a id="2223" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a> <a id="2228" href="Relation.Binary.Construct.NaturalOrder.Left.html#2228" class="Bound">x∙y≈y</a> <a id="2234" class="Symbol">=</a> <a id="2236" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a> <a id="2241" class="Symbol">(</a><a id="2242" class="Bound">sym</a> <a id="2246" class="Symbol">(</a><a id="2247" class="Bound">trans</a> <a id="2253" class="Symbol">(</a><a id="2254" class="Bound">comm</a> <a id="2259" class="Bound">y</a> <a id="2261" class="Bound">x</a><a id="2262" class="Symbol">)</a> <a id="2264" href="Relation.Binary.Construct.NaturalOrder.Left.html#2228" class="Bound">x∙y≈y</a><a id="2269" class="Symbol">))</a>
<a id="trans"></a><a id="2273" href="Relation.Binary.Construct.NaturalOrder.Left.html#2273" class="Function">trans</a> <a id="2279" class="Symbol">:</a> <a id="2281" href="Algebra.Structures.html#2897" class="Record">IsSemigroup</a> <a id="2293" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a> <a id="2297" class="Symbol"></a> <a id="2299" href="Relation.Binary.Definitions.html#2103" class="Function">Transitive</a> <a id="2310" href="Relation.Binary.Construct.NaturalOrder.Left.html#1353" class="Function Operator">_≤_</a>
<a id="2314" href="Relation.Binary.Construct.NaturalOrder.Left.html#2273" class="Function">trans</a> <a id="2320" href="Relation.Binary.Construct.NaturalOrder.Left.html#2320" class="Bound">semi</a> <a id="2325" class="Symbol">{</a><a id="2326" href="Relation.Binary.Construct.NaturalOrder.Left.html#2326" class="Bound">x</a><a id="2327" class="Symbol">}</a> <a id="2329" class="Symbol">{</a><a id="2330" href="Relation.Binary.Construct.NaturalOrder.Left.html#2330" class="Bound">y</a><a id="2331" class="Symbol">}</a> <a id="2333" class="Symbol">{</a><a id="2334" href="Relation.Binary.Construct.NaturalOrder.Left.html#2334" class="Bound">z</a><a id="2335" class="Symbol">}</a> <a id="2337" href="Relation.Binary.Construct.NaturalOrder.Left.html#2337" class="Bound">x≤y</a> <a id="2341" href="Relation.Binary.Construct.NaturalOrder.Left.html#2341" class="Bound">y≤z</a> <a id="2345" class="Symbol">=</a> <a id="2347" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="2355" href="Relation.Binary.Construct.NaturalOrder.Left.html#2326" class="Bound">x</a> <a id="2367" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2370" href="Relation.Binary.Construct.NaturalOrder.Left.html#2337" class="Bound">x≤y</a> <a id="2374" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2378" href="Relation.Binary.Construct.NaturalOrder.Left.html#2326" class="Bound">x</a> <a id="2380" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="2382" href="Relation.Binary.Construct.NaturalOrder.Left.html#2330" class="Bound">y</a> <a id="2390" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2393" href="Algebra.Structures.html#1315" class="Function">∙-cong</a> <a id="2400" href="Relation.Binary.Structures.html#1596" class="Function">S.refl</a> <a id="2407" href="Relation.Binary.Construct.NaturalOrder.Left.html#2341" class="Bound">y≤z</a> <a id="2411" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2415" href="Relation.Binary.Construct.NaturalOrder.Left.html#2326" class="Bound">x</a> <a id="2417" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="2419" class="Symbol">(</a><a id="2420" href="Relation.Binary.Construct.NaturalOrder.Left.html#2330" class="Bound">y</a> <a id="2422" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="2424" href="Relation.Binary.Construct.NaturalOrder.Left.html#2334" class="Bound">z</a><a id="2425" class="Symbol">)</a> <a id="2427" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2430" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="2434" class="Symbol">(</a><a id="2435" href="Algebra.Structures.html#2977" class="Function">assoc</a> <a id="2441" href="Relation.Binary.Construct.NaturalOrder.Left.html#2326" class="Bound">x</a> <a id="2443" href="Relation.Binary.Construct.NaturalOrder.Left.html#2330" class="Bound">y</a> <a id="2445" href="Relation.Binary.Construct.NaturalOrder.Left.html#2334" class="Bound">z</a><a id="2446" class="Symbol">)</a> <a id="2448" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2452" class="Symbol">(</a><a id="2453" href="Relation.Binary.Construct.NaturalOrder.Left.html#2326" class="Bound">x</a> <a id="2455" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="2457" href="Relation.Binary.Construct.NaturalOrder.Left.html#2330" class="Bound">y</a><a id="2458" class="Symbol">)</a> <a id="2460" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="2462" href="Relation.Binary.Construct.NaturalOrder.Left.html#2334" class="Bound">z</a> <a id="2464" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2467" href="Algebra.Structures.html#1315" class="Function">∙-cong</a> <a id="2474" class="Symbol">(</a><a id="2475" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="2479" href="Relation.Binary.Construct.NaturalOrder.Left.html#2337" class="Bound">x≤y</a><a id="2482" class="Symbol">)</a> <a id="2484" href="Relation.Binary.Structures.html#1596" class="Function">S.refl</a> <a id="2491" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2495" href="Relation.Binary.Construct.NaturalOrder.Left.html#2326" class="Bound">x</a> <a id="2497" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="2499" href="Relation.Binary.Construct.NaturalOrder.Left.html#2334" class="Bound">z</a> <a id="2507" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="2511" class="Keyword">where</a> <a id="2517" class="Keyword">open</a> <a id="2522" class="Keyword">module</a> <a id="2529" href="Relation.Binary.Construct.NaturalOrder.Left.html#2529" class="Module">S</a> <a id="2531" class="Symbol">=</a> <a id="2533" href="Algebra.Structures.html#2897" class="Module">IsSemigroup</a> <a id="2545" href="Relation.Binary.Construct.NaturalOrder.Left.html#2320" class="Bound">semi</a><a id="2549" class="Symbol">;</a> <a id="2551" class="Keyword">open</a> <a id="2556" href="Relation.Binary.Reasoning.Setoid.html" class="Module">EqReasoning</a> <a id="2568" href="Algebra.Structures.html#1390" class="Function">S.setoid</a>
<a id="respʳ"></a><a id="2578" href="Relation.Binary.Construct.NaturalOrder.Left.html#2578" class="Function">respʳ</a> <a id="2584" class="Symbol">:</a> <a id="2586" href="Algebra.Structures.html#1225" class="Record">IsMagma</a> <a id="2594" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a> <a id="2598" class="Symbol"></a> <a id="2600" href="Relation.Binary.Construct.NaturalOrder.Left.html#1353" class="Function Operator">_≤_</a> <a id="2604" href="Relation.Binary.Definitions.html#5335" class="Function Operator">Respectsʳ</a> <a id="2614" href="Relation.Binary.Construct.NaturalOrder.Left.html#1101" class="Bound Operator">_≈_</a>
<a id="2618" href="Relation.Binary.Construct.NaturalOrder.Left.html#2578" class="Function">respʳ</a> <a id="2624" href="Relation.Binary.Construct.NaturalOrder.Left.html#2624" class="Bound">magma</a> <a id="2630" class="Symbol">{</a><a id="2631" href="Relation.Binary.Construct.NaturalOrder.Left.html#2631" class="Bound">x</a><a id="2632" class="Symbol">}</a> <a id="2634" class="Symbol">{</a><a id="2635" href="Relation.Binary.Construct.NaturalOrder.Left.html#2635" class="Bound">y</a><a id="2636" class="Symbol">}</a> <a id="2638" class="Symbol">{</a><a id="2639" href="Relation.Binary.Construct.NaturalOrder.Left.html#2639" class="Bound">z</a><a id="2640" class="Symbol">}</a> <a id="2642" href="Relation.Binary.Construct.NaturalOrder.Left.html#2642" class="Bound">y≈z</a> <a id="2646" href="Relation.Binary.Construct.NaturalOrder.Left.html#2646" class="Bound">x≤y</a> <a id="2650" class="Symbol">=</a> <a id="2652" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="2660" href="Relation.Binary.Construct.NaturalOrder.Left.html#2631" class="Bound">x</a> <a id="2666" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2669" href="Relation.Binary.Construct.NaturalOrder.Left.html#2646" class="Bound">x≤y</a> <a id="2673" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2677" href="Relation.Binary.Construct.NaturalOrder.Left.html#2631" class="Bound">x</a> <a id="2679" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="2681" href="Relation.Binary.Construct.NaturalOrder.Left.html#2635" class="Bound">y</a> <a id="2683" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2686" href="Algebra.Structures.html#1315" class="Function">∙-cong</a> <a id="2693" href="Relation.Binary.Structures.html#1596" class="Function">M.refl</a> <a id="2700" href="Relation.Binary.Construct.NaturalOrder.Left.html#2642" class="Bound">y≈z</a> <a id="2704" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2708" href="Relation.Binary.Construct.NaturalOrder.Left.html#2631" class="Bound">x</a> <a id="2710" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="2712" href="Relation.Binary.Construct.NaturalOrder.Left.html#2639" class="Bound">z</a> <a id="2714" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="2718" class="Keyword">where</a> <a id="2724" class="Keyword">open</a> <a id="2729" class="Keyword">module</a> <a id="2736" href="Relation.Binary.Construct.NaturalOrder.Left.html#2736" class="Module">M</a> <a id="2738" class="Symbol">=</a> <a id="2740" href="Algebra.Structures.html#1225" class="Module">IsMagma</a> <a id="2748" href="Relation.Binary.Construct.NaturalOrder.Left.html#2624" class="Bound">magma</a><a id="2753" class="Symbol">;</a> <a id="2755" class="Keyword">open</a> <a id="2760" href="Relation.Binary.Reasoning.Setoid.html" class="Module">EqReasoning</a> <a id="2772" href="Algebra.Structures.html#1390" class="Function">M.setoid</a>
<a id="respˡ"></a><a id="2782" href="Relation.Binary.Construct.NaturalOrder.Left.html#2782" class="Function">respˡ</a> <a id="2788" class="Symbol">:</a> <a id="2790" href="Algebra.Structures.html#1225" class="Record">IsMagma</a> <a id="2798" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a> <a id="2802" class="Symbol"></a> <a id="2804" href="Relation.Binary.Construct.NaturalOrder.Left.html#1353" class="Function Operator">_≤_</a> <a id="2808" href="Relation.Binary.Definitions.html#5500" class="Function Operator">Respectsˡ</a> <a id="2818" href="Relation.Binary.Construct.NaturalOrder.Left.html#1101" class="Bound Operator">_≈_</a>
<a id="2822" href="Relation.Binary.Construct.NaturalOrder.Left.html#2782" class="Function">respˡ</a> <a id="2828" href="Relation.Binary.Construct.NaturalOrder.Left.html#2828" class="Bound">magma</a> <a id="2834" class="Symbol">{</a><a id="2835" href="Relation.Binary.Construct.NaturalOrder.Left.html#2835" class="Bound">x</a><a id="2836" class="Symbol">}</a> <a id="2838" class="Symbol">{</a><a id="2839" href="Relation.Binary.Construct.NaturalOrder.Left.html#2839" class="Bound">y</a><a id="2840" class="Symbol">}</a> <a id="2842" class="Symbol">{</a><a id="2843" href="Relation.Binary.Construct.NaturalOrder.Left.html#2843" class="Bound">z</a><a id="2844" class="Symbol">}</a> <a id="2846" href="Relation.Binary.Construct.NaturalOrder.Left.html#2846" class="Bound">y≈z</a> <a id="2850" href="Relation.Binary.Construct.NaturalOrder.Left.html#2850" class="Bound">y≤x</a> <a id="2854" class="Symbol">=</a> <a id="2856" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="2864" href="Relation.Binary.Construct.NaturalOrder.Left.html#2843" class="Bound">z</a> <a id="2870" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2873" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="2877" href="Relation.Binary.Construct.NaturalOrder.Left.html#2846" class="Bound">y≈z</a> <a id="2881" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2885" href="Relation.Binary.Construct.NaturalOrder.Left.html#2839" class="Bound">y</a> <a id="2891" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2894" href="Relation.Binary.Construct.NaturalOrder.Left.html#2850" class="Bound">y≤x</a> <a id="2898" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2902" href="Relation.Binary.Construct.NaturalOrder.Left.html#2839" class="Bound">y</a> <a id="2904" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="2906" href="Relation.Binary.Construct.NaturalOrder.Left.html#2835" class="Bound">x</a> <a id="2908" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2911" href="Algebra.Structures.html#1315" class="Function">∙-cong</a> <a id="2918" href="Relation.Binary.Construct.NaturalOrder.Left.html#2846" class="Bound">y≈z</a> <a id="2922" href="Relation.Binary.Structures.html#1596" class="Function">M.refl</a> <a id="2929" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2933" href="Relation.Binary.Construct.NaturalOrder.Left.html#2843" class="Bound">z</a> <a id="2935" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="2937" href="Relation.Binary.Construct.NaturalOrder.Left.html#2835" class="Bound">x</a> <a id="2939" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="2943" class="Keyword">where</a> <a id="2949" class="Keyword">open</a> <a id="2954" class="Keyword">module</a> <a id="2961" href="Relation.Binary.Construct.NaturalOrder.Left.html#2961" class="Module">M</a> <a id="2963" class="Symbol">=</a> <a id="2965" href="Algebra.Structures.html#1225" class="Module">IsMagma</a> <a id="2973" href="Relation.Binary.Construct.NaturalOrder.Left.html#2828" class="Bound">magma</a><a id="2978" class="Symbol">;</a> <a id="2980" class="Keyword">open</a> <a id="2985" href="Relation.Binary.Reasoning.Setoid.html" class="Module">EqReasoning</a> <a id="2997" href="Algebra.Structures.html#1390" class="Function">M.setoid</a>
<a id="resp₂"></a><a id="3007" href="Relation.Binary.Construct.NaturalOrder.Left.html#3007" class="Function">resp₂</a> <a id="3013" class="Symbol">:</a> <a id="3015" href="Algebra.Structures.html#1225" class="Record">IsMagma</a> <a id="3023" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a> <a id="3027" class="Symbol"></a> <a id="3030" href="Relation.Binary.Construct.NaturalOrder.Left.html#1353" class="Function Operator">_≤_</a> <a id="3034" href="Relation.Binary.Definitions.html#5663" class="Function Operator">Respects₂</a> <a id="3044" href="Relation.Binary.Construct.NaturalOrder.Left.html#1101" class="Bound Operator">_≈_</a>
<a id="3048" href="Relation.Binary.Construct.NaturalOrder.Left.html#3007" class="Function">resp₂</a> <a id="3054" href="Relation.Binary.Construct.NaturalOrder.Left.html#3054" class="Bound">magma</a> <a id="3060" class="Symbol">=</a> <a id="3062" href="Relation.Binary.Construct.NaturalOrder.Left.html#2578" class="Function">respʳ</a> <a id="3068" href="Relation.Binary.Construct.NaturalOrder.Left.html#3054" class="Bound">magma</a> <a id="3074" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="3076" href="Relation.Binary.Construct.NaturalOrder.Left.html#2782" class="Function">respˡ</a> <a id="3082" href="Relation.Binary.Construct.NaturalOrder.Left.html#3054" class="Bound">magma</a>
<a id="dec"></a><a id="3089" href="Relation.Binary.Construct.NaturalOrder.Left.html#3089" class="Function">dec</a> <a id="3093" class="Symbol">:</a> <a id="3095" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="3105" href="Relation.Binary.Construct.NaturalOrder.Left.html#1101" class="Bound Operator">_≈_</a> <a id="3109" class="Symbol"></a> <a id="3111" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="3121" href="Relation.Binary.Construct.NaturalOrder.Left.html#1353" class="Function Operator">_≤_</a>
<a id="3125" href="Relation.Binary.Construct.NaturalOrder.Left.html#3089" class="Function">dec</a> <a id="3129" href="Relation.Binary.Construct.NaturalOrder.Left.html#3129" class="Bound Operator">_≟_</a> <a id="3133" href="Relation.Binary.Construct.NaturalOrder.Left.html#3133" class="Bound">x</a> <a id="3135" href="Relation.Binary.Construct.NaturalOrder.Left.html#3135" class="Bound">y</a> <a id="3137" class="Symbol">=</a> <a id="3139" href="Relation.Binary.Construct.NaturalOrder.Left.html#3133" class="Bound">x</a> <a id="3141" href="Relation.Binary.Construct.NaturalOrder.Left.html#3129" class="Bound Operator"></a> <a id="3143" class="Symbol">(</a><a id="3144" href="Relation.Binary.Construct.NaturalOrder.Left.html#3133" class="Bound">x</a> <a id="3146" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="3148" href="Relation.Binary.Construct.NaturalOrder.Left.html#3135" class="Bound">y</a><a id="3149" class="Symbol">)</a>
<a id="3152" class="Keyword">module</a> <a id="3159" href="Relation.Binary.Construct.NaturalOrder.Left.html#3159" class="Module">_</a> <a id="3161" class="Symbol">(</a><a id="3162" href="Relation.Binary.Construct.NaturalOrder.Left.html#3162" class="Bound">semi</a> <a id="3167" class="Symbol">:</a> <a id="3169" href="Algebra.Lattice.Structures.html#1160" class="Record">IsSemilattice</a> <a id="3183" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a><a id="3186" class="Symbol">)</a> <a id="3188" class="Keyword">where</a>
<a id="3197" class="Keyword">private</a> <a id="3205" class="Keyword">open</a> <a id="3210" class="Keyword">module</a> <a id="3217" href="Relation.Binary.Construct.NaturalOrder.Left.html#3217" class="Module">S</a> <a id="3219" class="Symbol">=</a> <a id="3221" href="Algebra.Lattice.Structures.html#1160" class="Module">IsSemilattice</a> <a id="3235" href="Relation.Binary.Construct.NaturalOrder.Left.html#3162" class="Bound">semi</a>
<a id="3242" class="Keyword">open</a> <a id="3247" href="Relation.Binary.Reasoning.Setoid.html" class="Module">EqReasoning</a> <a id="3259" href="Algebra.Structures.html#1390" class="Function">setoid</a>
<a id="3269" href="Relation.Binary.Construct.NaturalOrder.Left.html#3269" class="Function">x∙y≤x</a> <a id="3275" class="Symbol">:</a> <a id="3277" class="Symbol"></a> <a id="3279" href="Relation.Binary.Construct.NaturalOrder.Left.html#3279" class="Bound">x</a> <a id="3281" href="Relation.Binary.Construct.NaturalOrder.Left.html#3281" class="Bound">y</a> <a id="3283" class="Symbol"></a> <a id="3285" class="Symbol">(</a><a id="3286" href="Relation.Binary.Construct.NaturalOrder.Left.html#3279" class="Bound">x</a> <a id="3288" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="3290" href="Relation.Binary.Construct.NaturalOrder.Left.html#3281" class="Bound">y</a><a id="3291" class="Symbol">)</a> <a id="3293" href="Relation.Binary.Construct.NaturalOrder.Left.html#1353" class="Function Operator"></a> <a id="3295" href="Relation.Binary.Construct.NaturalOrder.Left.html#3279" class="Bound">x</a>
<a id="3299" href="Relation.Binary.Construct.NaturalOrder.Left.html#3269" class="Function">x∙y≤x</a> <a id="3305" href="Relation.Binary.Construct.NaturalOrder.Left.html#3305" class="Bound">x</a> <a id="3307" href="Relation.Binary.Construct.NaturalOrder.Left.html#3307" class="Bound">y</a> <a id="3309" class="Symbol">=</a> <a id="3311" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="3321" href="Relation.Binary.Construct.NaturalOrder.Left.html#3305" class="Bound">x</a> <a id="3323" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="3325" href="Relation.Binary.Construct.NaturalOrder.Left.html#3307" class="Bound">y</a> <a id="3333" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="3336" href="Algebra.Structures.html#1315" class="Function">∙-cong</a> <a id="3343" class="Symbol">(</a><a id="3344" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="3348" class="Symbol">(</a><a id="3349" href="Algebra.Structures.html#3124" class="Function">idem</a> <a id="3354" href="Relation.Binary.Construct.NaturalOrder.Left.html#3305" class="Bound">x</a><a id="3355" class="Symbol">))</a> <a id="3358" href="Relation.Binary.Structures.html#1596" class="Function">S.refl</a> <a id="3365" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="3371" class="Symbol">(</a><a id="3372" href="Relation.Binary.Construct.NaturalOrder.Left.html#3305" class="Bound">x</a> <a id="3374" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="3376" href="Relation.Binary.Construct.NaturalOrder.Left.html#3305" class="Bound">x</a><a id="3377" class="Symbol">)</a> <a id="3379" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="3381" href="Relation.Binary.Construct.NaturalOrder.Left.html#3307" class="Bound">y</a> <a id="3383" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="3386" href="Algebra.Structures.html#2977" class="Function">assoc</a> <a id="3392" href="Relation.Binary.Construct.NaturalOrder.Left.html#3305" class="Bound">x</a> <a id="3394" href="Relation.Binary.Construct.NaturalOrder.Left.html#3305" class="Bound">x</a> <a id="3396" href="Relation.Binary.Construct.NaturalOrder.Left.html#3307" class="Bound">y</a> <a id="3398" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="3404" href="Relation.Binary.Construct.NaturalOrder.Left.html#3305" class="Bound">x</a> <a id="3406" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="3408" class="Symbol">(</a><a id="3409" href="Relation.Binary.Construct.NaturalOrder.Left.html#3305" class="Bound">x</a> <a id="3411" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="3413" href="Relation.Binary.Construct.NaturalOrder.Left.html#3307" class="Bound">y</a><a id="3414" class="Symbol">)</a> <a id="3416" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="3419" href="Algebra.Lattice.Structures.html#1240" class="Field">comm</a> <a id="3424" href="Relation.Binary.Construct.NaturalOrder.Left.html#3305" class="Bound">x</a> <a id="3426" class="Symbol">(</a><a id="3427" href="Relation.Binary.Construct.NaturalOrder.Left.html#3305" class="Bound">x</a> <a id="3429" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="3431" href="Relation.Binary.Construct.NaturalOrder.Left.html#3307" class="Bound">y</a><a id="3432" class="Symbol">)</a> <a id="3434" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="3440" class="Symbol">(</a><a id="3441" href="Relation.Binary.Construct.NaturalOrder.Left.html#3305" class="Bound">x</a> <a id="3443" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="3445" href="Relation.Binary.Construct.NaturalOrder.Left.html#3307" class="Bound">y</a><a id="3446" class="Symbol">)</a> <a id="3448" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="3450" href="Relation.Binary.Construct.NaturalOrder.Left.html#3305" class="Bound">x</a> <a id="3452" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="3457" href="Relation.Binary.Construct.NaturalOrder.Left.html#3457" class="Function">x∙y≤y</a> <a id="3463" class="Symbol">:</a> <a id="3465" class="Symbol"></a> <a id="3467" href="Relation.Binary.Construct.NaturalOrder.Left.html#3467" class="Bound">x</a> <a id="3469" href="Relation.Binary.Construct.NaturalOrder.Left.html#3469" class="Bound">y</a> <a id="3471" class="Symbol"></a> <a id="3473" class="Symbol">(</a><a id="3474" href="Relation.Binary.Construct.NaturalOrder.Left.html#3467" class="Bound">x</a> <a id="3476" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="3478" href="Relation.Binary.Construct.NaturalOrder.Left.html#3469" class="Bound">y</a><a id="3479" class="Symbol">)</a> <a id="3481" href="Relation.Binary.Construct.NaturalOrder.Left.html#1353" class="Function Operator"></a> <a id="3483" href="Relation.Binary.Construct.NaturalOrder.Left.html#3469" class="Bound">y</a>
<a id="3487" href="Relation.Binary.Construct.NaturalOrder.Left.html#3457" class="Function">x∙y≤y</a> <a id="3493" href="Relation.Binary.Construct.NaturalOrder.Left.html#3493" class="Bound">x</a> <a id="3495" href="Relation.Binary.Construct.NaturalOrder.Left.html#3495" class="Bound">y</a> <a id="3497" class="Symbol">=</a> <a id="3499" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="3509" href="Relation.Binary.Construct.NaturalOrder.Left.html#3493" class="Bound">x</a> <a id="3511" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="3513" href="Relation.Binary.Construct.NaturalOrder.Left.html#3495" class="Bound">y</a> <a id="3522" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="3525" href="Algebra.Structures.html#1315" class="Function">∙-cong</a> <a id="3532" href="Relation.Binary.Structures.html#1596" class="Function">S.refl</a> <a id="3539" class="Symbol">(</a><a id="3540" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="3544" class="Symbol">(</a><a id="3545" href="Algebra.Structures.html#3124" class="Function">idem</a> <a id="3550" href="Relation.Binary.Construct.NaturalOrder.Left.html#3495" class="Bound">y</a><a id="3551" class="Symbol">))</a> <a id="3554" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="3560" href="Relation.Binary.Construct.NaturalOrder.Left.html#3493" class="Bound">x</a> <a id="3562" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="3564" class="Symbol">(</a><a id="3565" href="Relation.Binary.Construct.NaturalOrder.Left.html#3495" class="Bound">y</a> <a id="3567" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="3569" href="Relation.Binary.Construct.NaturalOrder.Left.html#3495" class="Bound">y</a><a id="3570" class="Symbol">)</a> <a id="3573" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="3576" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="3580" class="Symbol">(</a><a id="3581" href="Algebra.Structures.html#2977" class="Function">assoc</a> <a id="3587" href="Relation.Binary.Construct.NaturalOrder.Left.html#3493" class="Bound">x</a> <a id="3589" href="Relation.Binary.Construct.NaturalOrder.Left.html#3495" class="Bound">y</a> <a id="3591" href="Relation.Binary.Construct.NaturalOrder.Left.html#3495" class="Bound">y</a><a id="3592" class="Symbol">)</a> <a id="3594" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="3600" class="Symbol">(</a><a id="3601" href="Relation.Binary.Construct.NaturalOrder.Left.html#3493" class="Bound">x</a> <a id="3603" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="3605" href="Relation.Binary.Construct.NaturalOrder.Left.html#3495" class="Bound">y</a><a id="3606" class="Symbol">)</a> <a id="3608" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="3610" href="Relation.Binary.Construct.NaturalOrder.Left.html#3495" class="Bound">y</a> <a id="3613" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="3618" href="Relation.Binary.Construct.NaturalOrder.Left.html#3618" class="Function">∙-presʳ-≤</a> <a id="3628" class="Symbol">:</a> <a id="3630" class="Symbol"></a> <a id="3632" class="Symbol">{</a><a id="3633" href="Relation.Binary.Construct.NaturalOrder.Left.html#3633" class="Bound">x</a> <a id="3635" href="Relation.Binary.Construct.NaturalOrder.Left.html#3635" class="Bound">y</a><a id="3636" class="Symbol">}</a> <a id="3638" href="Relation.Binary.Construct.NaturalOrder.Left.html#3638" class="Bound">z</a> <a id="3640" class="Symbol"></a> <a id="3642" href="Relation.Binary.Construct.NaturalOrder.Left.html#3638" class="Bound">z</a> <a id="3644" href="Relation.Binary.Construct.NaturalOrder.Left.html#1353" class="Function Operator"></a> <a id="3646" href="Relation.Binary.Construct.NaturalOrder.Left.html#3633" class="Bound">x</a> <a id="3648" class="Symbol"></a> <a id="3650" href="Relation.Binary.Construct.NaturalOrder.Left.html#3638" class="Bound">z</a> <a id="3652" href="Relation.Binary.Construct.NaturalOrder.Left.html#1353" class="Function Operator"></a> <a id="3654" href="Relation.Binary.Construct.NaturalOrder.Left.html#3635" class="Bound">y</a> <a id="3656" class="Symbol"></a> <a id="3658" href="Relation.Binary.Construct.NaturalOrder.Left.html#3638" class="Bound">z</a> <a id="3660" href="Relation.Binary.Construct.NaturalOrder.Left.html#1353" class="Function Operator"></a> <a id="3662" class="Symbol">(</a><a id="3663" href="Relation.Binary.Construct.NaturalOrder.Left.html#3633" class="Bound">x</a> <a id="3665" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="3667" href="Relation.Binary.Construct.NaturalOrder.Left.html#3635" class="Bound">y</a><a id="3668" class="Symbol">)</a>
<a id="3672" href="Relation.Binary.Construct.NaturalOrder.Left.html#3618" class="Function">∙-presʳ-≤</a> <a id="3682" class="Symbol">{</a><a id="3683" href="Relation.Binary.Construct.NaturalOrder.Left.html#3683" class="Bound">x</a><a id="3684" class="Symbol">}</a> <a id="3686" class="Symbol">{</a><a id="3687" href="Relation.Binary.Construct.NaturalOrder.Left.html#3687" class="Bound">y</a><a id="3688" class="Symbol">}</a> <a id="3690" href="Relation.Binary.Construct.NaturalOrder.Left.html#3690" class="Bound">z</a> <a id="3692" href="Relation.Binary.Construct.NaturalOrder.Left.html#3692" class="Bound">z≤x</a> <a id="3696" href="Relation.Binary.Construct.NaturalOrder.Left.html#3696" class="Bound">z≤y</a> <a id="3700" class="Symbol">=</a> <a id="3702" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="3712" href="Relation.Binary.Construct.NaturalOrder.Left.html#3690" class="Bound">z</a> <a id="3725" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="3728" href="Relation.Binary.Construct.NaturalOrder.Left.html#3696" class="Bound">z≤y</a> <a id="3732" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="3738" href="Relation.Binary.Construct.NaturalOrder.Left.html#3690" class="Bound">z</a> <a id="3740" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="3742" href="Relation.Binary.Construct.NaturalOrder.Left.html#3687" class="Bound">y</a> <a id="3751" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="3754" href="Algebra.Structures.html#1315" class="Function">∙-cong</a> <a id="3761" href="Relation.Binary.Construct.NaturalOrder.Left.html#3692" class="Bound">z≤x</a> <a id="3765" href="Relation.Binary.Structures.html#1596" class="Function">S.refl</a> <a id="3772" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="3778" class="Symbol">(</a><a id="3779" href="Relation.Binary.Construct.NaturalOrder.Left.html#3690" class="Bound">z</a> <a id="3781" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="3783" href="Relation.Binary.Construct.NaturalOrder.Left.html#3683" class="Bound">x</a><a id="3784" class="Symbol">)</a> <a id="3786" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="3788" href="Relation.Binary.Construct.NaturalOrder.Left.html#3687" class="Bound">y</a> <a id="3791" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="3794" href="Algebra.Structures.html#2977" class="Function">assoc</a> <a id="3800" href="Relation.Binary.Construct.NaturalOrder.Left.html#3690" class="Bound">z</a> <a id="3802" href="Relation.Binary.Construct.NaturalOrder.Left.html#3683" class="Bound">x</a> <a id="3804" href="Relation.Binary.Construct.NaturalOrder.Left.html#3687" class="Bound">y</a> <a id="3806" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="3812" href="Relation.Binary.Construct.NaturalOrder.Left.html#3690" class="Bound">z</a> <a id="3814" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="3816" class="Symbol">(</a><a id="3817" href="Relation.Binary.Construct.NaturalOrder.Left.html#3683" class="Bound">x</a> <a id="3819" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator"></a> <a id="3821" href="Relation.Binary.Construct.NaturalOrder.Left.html#3687" class="Bound">y</a><a id="3822" class="Symbol">)</a> <a id="3825" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="3830" href="Relation.Binary.Construct.NaturalOrder.Left.html#3830" class="Function">infimum</a> <a id="3838" class="Symbol">:</a> <a id="3840" href="Relation.Binary.Lattice.Definitions.html#890" class="Function">Infimum</a> <a id="3848" href="Relation.Binary.Construct.NaturalOrder.Left.html#1353" class="Function Operator">_≤_</a> <a id="3852" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a>
<a id="3858" href="Relation.Binary.Construct.NaturalOrder.Left.html#3830" class="Function">infimum</a> <a id="3866" href="Relation.Binary.Construct.NaturalOrder.Left.html#3866" class="Bound">x</a> <a id="3868" href="Relation.Binary.Construct.NaturalOrder.Left.html#3868" class="Bound">y</a> <a id="3870" class="Symbol">=</a> <a id="3872" href="Relation.Binary.Construct.NaturalOrder.Left.html#3269" class="Function">x∙y≤x</a> <a id="3878" href="Relation.Binary.Construct.NaturalOrder.Left.html#3866" class="Bound">x</a> <a id="3880" href="Relation.Binary.Construct.NaturalOrder.Left.html#3868" class="Bound">y</a> <a id="3882" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="3884" href="Relation.Binary.Construct.NaturalOrder.Left.html#3457" class="Function">x∙y≤y</a> <a id="3890" href="Relation.Binary.Construct.NaturalOrder.Left.html#3866" class="Bound">x</a> <a id="3892" href="Relation.Binary.Construct.NaturalOrder.Left.html#3868" class="Bound">y</a> <a id="3894" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="3896" href="Relation.Binary.Construct.NaturalOrder.Left.html#3618" class="Function">∙-presʳ-≤</a>
<a id="3907" class="Comment">------------------------------------------------------------------------</a>
<a id="3980" class="Comment">-- Structures</a>
<a id="isPreorder"></a><a id="3995" href="Relation.Binary.Construct.NaturalOrder.Left.html#3995" class="Function">isPreorder</a> <a id="4006" class="Symbol">:</a> <a id="4008" href="Algebra.Structures.html#3041" class="Record">IsBand</a> <a id="4015" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a> <a id="4019" class="Symbol"></a> <a id="4021" href="Relation.Binary.Structures.html#2191" class="Record">IsPreorder</a> <a id="4032" href="Relation.Binary.Construct.NaturalOrder.Left.html#1101" class="Bound Operator">_≈_</a> <a id="4036" href="Relation.Binary.Construct.NaturalOrder.Left.html#1353" class="Function Operator">_≤_</a>
<a id="4040" href="Relation.Binary.Construct.NaturalOrder.Left.html#3995" class="Function">isPreorder</a> <a id="4051" href="Relation.Binary.Construct.NaturalOrder.Left.html#4051" class="Bound">band</a> <a id="4056" class="Symbol">=</a> <a id="4058" class="Keyword">record</a>
<a id="4067" class="Symbol">{</a> <a id="4069" href="Relation.Binary.Structures.html#2256" class="Field">isEquivalence</a> <a id="4083" class="Symbol">=</a> <a id="4085" href="Algebra.Structures.html#1277" class="Function">isEquivalence</a>
<a id="4101" class="Symbol">;</a> <a id="4103" href="Relation.Binary.Structures.html#2359" class="Field">reflexive</a> <a id="4117" class="Symbol">=</a> <a id="4119" href="Relation.Binary.Construct.NaturalOrder.Left.html#1487" class="Function">reflexive</a> <a id="4129" href="Algebra.Structures.html#2953" class="Function">isMagma</a> <a id="4137" href="Algebra.Structures.html#3124" class="Field">idem</a>
<a id="4144" class="Symbol">;</a> <a id="4146" href="Relation.Binary.Structures.html#2389" class="Field">trans</a> <a id="4160" class="Symbol">=</a> <a id="4162" href="Relation.Binary.Construct.NaturalOrder.Left.html#2273" class="Function">trans</a> <a id="4168" href="Algebra.Structures.html#3092" class="Field">isSemigroup</a>
<a id="4182" class="Symbol">}</a>
<a id="4186" class="Keyword">where</a> <a id="4192" class="Keyword">open</a> <a id="4197" href="Algebra.Structures.html#3041" class="Module">IsBand</a> <a id="4204" href="Relation.Binary.Construct.NaturalOrder.Left.html#4051" class="Bound">band</a> <a id="4209" class="Keyword">hiding</a> <a id="4216" class="Symbol">(</a><a id="4217" href="Relation.Binary.Structures.html#1674" class="Function">reflexive</a><a id="4226" class="Symbol">;</a> <a id="4228" href="Relation.Binary.Structures.html#1648" class="Function">trans</a><a id="4233" class="Symbol">)</a>
<a id="isPartialOrder"></a><a id="4236" href="Relation.Binary.Construct.NaturalOrder.Left.html#4236" class="Function">isPartialOrder</a> <a id="4251" class="Symbol">:</a> <a id="4253" href="Algebra.Lattice.Structures.html#1160" class="Record">IsSemilattice</a> <a id="4267" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a> <a id="4271" class="Symbol"></a> <a id="4273" href="Relation.Binary.Structures.html#3522" class="Record">IsPartialOrder</a> <a id="4288" href="Relation.Binary.Construct.NaturalOrder.Left.html#1101" class="Bound Operator">_≈_</a> <a id="4292" href="Relation.Binary.Construct.NaturalOrder.Left.html#1353" class="Function Operator">_≤_</a>
<a id="4296" href="Relation.Binary.Construct.NaturalOrder.Left.html#4236" class="Function">isPartialOrder</a> <a id="4311" href="Relation.Binary.Construct.NaturalOrder.Left.html#4311" class="Bound">semilattice</a> <a id="4323" class="Symbol">=</a> <a id="4325" class="Keyword">record</a>
<a id="4334" class="Symbol">{</a> <a id="4336" href="Relation.Binary.Structures.html#3591" class="Field">isPreorder</a> <a id="4347" class="Symbol">=</a> <a id="4349" href="Relation.Binary.Construct.NaturalOrder.Left.html#3995" class="Function">isPreorder</a> <a id="4360" href="Algebra.Lattice.Structures.html#1218" class="Field">isBand</a>
<a id="4369" class="Symbol">;</a> <a id="4371" href="Relation.Binary.Structures.html#3623" class="Field">antisym</a> <a id="4382" class="Symbol">=</a> <a id="4384" href="Relation.Binary.Construct.NaturalOrder.Left.html#1787" class="Function">antisym</a> <a id="4392" href="Algebra.Structures.html#1277" class="Function">isEquivalence</a> <a id="4406" href="Algebra.Lattice.Structures.html#1240" class="Field">comm</a>
<a id="4413" class="Symbol">}</a>
<a id="4417" class="Keyword">where</a> <a id="4423" class="Keyword">open</a> <a id="4428" href="Algebra.Lattice.Structures.html#1160" class="Module">IsSemilattice</a> <a id="4442" href="Relation.Binary.Construct.NaturalOrder.Left.html#4311" class="Bound">semilattice</a>
<a id="isDecPartialOrder"></a><a id="4455" href="Relation.Binary.Construct.NaturalOrder.Left.html#4455" class="Function">isDecPartialOrder</a> <a id="4473" class="Symbol">:</a> <a id="4475" href="Algebra.Lattice.Structures.html#1160" class="Record">IsSemilattice</a> <a id="4489" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a> <a id="4493" class="Symbol"></a> <a id="4495" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="4505" href="Relation.Binary.Construct.NaturalOrder.Left.html#1101" class="Bound Operator">_≈_</a> <a id="4509" class="Symbol"></a>
<a id="4531" href="Relation.Binary.Structures.html#3809" class="Record">IsDecPartialOrder</a> <a id="4549" href="Relation.Binary.Construct.NaturalOrder.Left.html#1101" class="Bound Operator">_≈_</a> <a id="4553" href="Relation.Binary.Construct.NaturalOrder.Left.html#1353" class="Function Operator">_≤_</a>
<a id="4557" href="Relation.Binary.Construct.NaturalOrder.Left.html#4455" class="Function">isDecPartialOrder</a> <a id="4575" href="Relation.Binary.Construct.NaturalOrder.Left.html#4575" class="Bound">semilattice</a> <a id="4587" href="Relation.Binary.Construct.NaturalOrder.Left.html#4587" class="Bound Operator">_≟_</a> <a id="4591" class="Symbol">=</a> <a id="4593" class="Keyword">record</a>
<a id="4602" class="Symbol">{</a> <a id="4604" href="Relation.Binary.Structures.html#3900" class="Field">isPartialOrder</a> <a id="4619" class="Symbol">=</a> <a id="4621" href="Relation.Binary.Construct.NaturalOrder.Left.html#4236" class="Function">isPartialOrder</a> <a id="4636" href="Relation.Binary.Construct.NaturalOrder.Left.html#4575" class="Bound">semilattice</a>
<a id="4650" class="Symbol">;</a> <a id="4652" href="Relation.Binary.Structures.html#3940" class="Field Operator">_≟_</a> <a id="4667" class="Symbol">=</a> <a id="4669" href="Relation.Binary.Construct.NaturalOrder.Left.html#4587" class="Bound Operator">_≟_</a>
<a id="4675" class="Symbol">;</a> <a id="4677" href="Relation.Binary.Structures.html#3975" class="Field Operator">_≤?_</a> <a id="4692" class="Symbol">=</a> <a id="4694" href="Relation.Binary.Construct.NaturalOrder.Left.html#3089" class="Function">dec</a> <a id="4698" href="Relation.Binary.Construct.NaturalOrder.Left.html#4587" class="Bound Operator">_≟_</a>
<a id="4704" class="Symbol">}</a>
<a id="isTotalOrder"></a><a id="4707" href="Relation.Binary.Construct.NaturalOrder.Left.html#4707" class="Function">isTotalOrder</a> <a id="4720" class="Symbol">:</a> <a id="4722" href="Algebra.Lattice.Structures.html#1160" class="Record">IsSemilattice</a> <a id="4736" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a> <a id="4740" class="Symbol"></a> <a id="4742" href="Algebra.Definitions.html#3841" class="Function">Selective</a> <a id="4752" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a> <a id="4756" class="Symbol"></a> <a id="4758" href="Relation.Binary.Structures.html#5508" class="Record">IsTotalOrder</a> <a id="4771" href="Relation.Binary.Construct.NaturalOrder.Left.html#1101" class="Bound Operator">_≈_</a> <a id="4775" href="Relation.Binary.Construct.NaturalOrder.Left.html#1353" class="Function Operator">_≤_</a>
<a id="4779" href="Relation.Binary.Construct.NaturalOrder.Left.html#4707" class="Function">isTotalOrder</a> <a id="4792" href="Relation.Binary.Construct.NaturalOrder.Left.html#4792" class="Bound">latt</a> <a id="4797" href="Relation.Binary.Construct.NaturalOrder.Left.html#4797" class="Bound">sel</a> <a id="4802" class="Symbol">=</a> <a id="4804" class="Keyword">record</a>
<a id="4813" class="Symbol">{</a> <a id="4815" href="Relation.Binary.Structures.html#5575" class="Field">isPartialOrder</a> <a id="4830" class="Symbol">=</a> <a id="4832" href="Relation.Binary.Construct.NaturalOrder.Left.html#4236" class="Function">isPartialOrder</a> <a id="4847" href="Relation.Binary.Construct.NaturalOrder.Left.html#4792" class="Bound">latt</a>
<a id="4854" class="Symbol">;</a> <a id="4856" href="Relation.Binary.Structures.html#5615" class="Field">total</a> <a id="4871" class="Symbol">=</a> <a id="4873" href="Relation.Binary.Construct.NaturalOrder.Left.html#2054" class="Function">total</a> <a id="4879" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="4883" href="Relation.Binary.Structures.html#1648" class="Function">S.trans</a> <a id="4891" href="Relation.Binary.Construct.NaturalOrder.Left.html#4797" class="Bound">sel</a> <a id="4895" href="Algebra.Lattice.Structures.html#1240" class="Function">comm</a>
<a id="4902" class="Symbol">}</a>
<a id="4906" class="Keyword">where</a> <a id="4912" class="Keyword">open</a> <a id="4917" class="Keyword">module</a> <a id="4924" href="Relation.Binary.Construct.NaturalOrder.Left.html#4924" class="Module">S</a> <a id="4926" class="Symbol">=</a> <a id="4928" href="Algebra.Lattice.Structures.html#1160" class="Module">IsSemilattice</a> <a id="4942" href="Relation.Binary.Construct.NaturalOrder.Left.html#4792" class="Bound">latt</a>
<a id="isDecTotalOrder"></a><a id="4948" href="Relation.Binary.Construct.NaturalOrder.Left.html#4948" class="Function">isDecTotalOrder</a> <a id="4964" class="Symbol">:</a> <a id="4966" href="Algebra.Lattice.Structures.html#1160" class="Record">IsSemilattice</a> <a id="4980" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a> <a id="4984" class="Symbol"></a> <a id="4986" href="Algebra.Definitions.html#3841" class="Function">Selective</a> <a id="4996" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a> <a id="5000" class="Symbol"></a>
<a id="5020" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="5030" href="Relation.Binary.Construct.NaturalOrder.Left.html#1101" class="Bound Operator">_≈_</a> <a id="5034" class="Symbol"></a> <a id="5036" href="Relation.Binary.Structures.html#5825" class="Record">IsDecTotalOrder</a> <a id="5052" href="Relation.Binary.Construct.NaturalOrder.Left.html#1101" class="Bound Operator">_≈_</a> <a id="5056" href="Relation.Binary.Construct.NaturalOrder.Left.html#1353" class="Function Operator">_≤_</a>
<a id="5060" href="Relation.Binary.Construct.NaturalOrder.Left.html#4948" class="Function">isDecTotalOrder</a> <a id="5076" href="Relation.Binary.Construct.NaturalOrder.Left.html#5076" class="Bound">latt</a> <a id="5081" href="Relation.Binary.Construct.NaturalOrder.Left.html#5081" class="Bound">sel</a> <a id="5085" href="Relation.Binary.Construct.NaturalOrder.Left.html#5085" class="Bound Operator">_≟_</a> <a id="5089" class="Symbol">=</a> <a id="5091" class="Keyword">record</a>
<a id="5100" class="Symbol">{</a> <a id="5102" href="Relation.Binary.Structures.html#5914" class="Field">isTotalOrder</a> <a id="5115" class="Symbol">=</a> <a id="5117" href="Relation.Binary.Construct.NaturalOrder.Left.html#4707" class="Function">isTotalOrder</a> <a id="5130" href="Relation.Binary.Construct.NaturalOrder.Left.html#5076" class="Bound">latt</a> <a id="5135" href="Relation.Binary.Construct.NaturalOrder.Left.html#5081" class="Bound">sel</a>
<a id="5141" class="Symbol">;</a> <a id="5143" href="Relation.Binary.Structures.html#5950" class="Field Operator">_≟_</a> <a id="5156" class="Symbol">=</a> <a id="5158" href="Relation.Binary.Construct.NaturalOrder.Left.html#5085" class="Bound Operator">_≟_</a>
<a id="5164" class="Symbol">;</a> <a id="5166" href="Relation.Binary.Structures.html#5983" class="Field Operator">_≤?_</a> <a id="5179" class="Symbol">=</a> <a id="5181" href="Relation.Binary.Construct.NaturalOrder.Left.html#3089" class="Function">dec</a> <a id="5185" href="Relation.Binary.Construct.NaturalOrder.Left.html#5085" class="Bound Operator">_≟_</a>
<a id="5191" class="Symbol">}</a>
<a id="5194" class="Comment">------------------------------------------------------------------------</a>
<a id="5267" class="Comment">-- Bundles</a>
<a id="preorder"></a><a id="5279" href="Relation.Binary.Construct.NaturalOrder.Left.html#5279" class="Function">preorder</a> <a id="5288" class="Symbol">:</a> <a id="5290" href="Algebra.Structures.html#3041" class="Record">IsBand</a> <a id="5297" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a> <a id="5301" class="Symbol"></a> <a id="5303" href="Relation.Binary.Bundles.html#2121" class="Record">Preorder</a> <a id="5312" href="Relation.Binary.Construct.NaturalOrder.Left.html#1083" class="Bound">a</a> <a id="5314" href="Relation.Binary.Construct.NaturalOrder.Left.html#1085" class="Bound"></a> <a id="5316" href="Relation.Binary.Construct.NaturalOrder.Left.html#1085" class="Bound"></a>
<a id="5318" href="Relation.Binary.Construct.NaturalOrder.Left.html#5279" class="Function">preorder</a> <a id="5327" href="Relation.Binary.Construct.NaturalOrder.Left.html#5327" class="Bound">band</a> <a id="5332" class="Symbol">=</a> <a id="5334" class="Keyword">record</a>
<a id="5343" class="Symbol">{</a> <a id="5345" href="Relation.Binary.Bundles.html#2334" class="Field">isPreorder</a> <a id="5356" class="Symbol">=</a> <a id="5358" href="Relation.Binary.Construct.NaturalOrder.Left.html#3995" class="Function">isPreorder</a> <a id="5369" href="Relation.Binary.Construct.NaturalOrder.Left.html#5327" class="Bound">band</a>
<a id="5376" class="Symbol">}</a>
<a id="poset"></a><a id="5379" href="Relation.Binary.Construct.NaturalOrder.Left.html#5379" class="Function">poset</a> <a id="5385" class="Symbol">:</a> <a id="5387" href="Algebra.Lattice.Structures.html#1160" class="Record">IsSemilattice</a> <a id="5401" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a> <a id="5405" class="Symbol"></a> <a id="5407" href="Relation.Binary.Bundles.html#3530" class="Record">Poset</a> <a id="5413" href="Relation.Binary.Construct.NaturalOrder.Left.html#1083" class="Bound">a</a> <a id="5415" href="Relation.Binary.Construct.NaturalOrder.Left.html#1085" class="Bound"></a> <a id="5417" href="Relation.Binary.Construct.NaturalOrder.Left.html#1085" class="Bound"></a>
<a id="5419" href="Relation.Binary.Construct.NaturalOrder.Left.html#5379" class="Function">poset</a> <a id="5425" href="Relation.Binary.Construct.NaturalOrder.Left.html#5425" class="Bound">latt</a> <a id="5430" class="Symbol">=</a> <a id="5432" class="Keyword">record</a>
<a id="5441" class="Symbol">{</a> <a id="5443" href="Relation.Binary.Bundles.html#3705" class="Field">isPartialOrder</a> <a id="5458" class="Symbol">=</a> <a id="5460" href="Relation.Binary.Construct.NaturalOrder.Left.html#4236" class="Function">isPartialOrder</a> <a id="5475" href="Relation.Binary.Construct.NaturalOrder.Left.html#5425" class="Bound">latt</a>
<a id="5482" class="Symbol">}</a>
<a id="decPoset"></a><a id="5485" href="Relation.Binary.Construct.NaturalOrder.Left.html#5485" class="Function">decPoset</a> <a id="5494" class="Symbol">:</a> <a id="5496" href="Algebra.Lattice.Structures.html#1160" class="Record">IsSemilattice</a> <a id="5510" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a> <a id="5514" class="Symbol"></a> <a id="5516" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="5526" href="Relation.Binary.Construct.NaturalOrder.Left.html#1101" class="Bound Operator">_≈_</a> <a id="5530" class="Symbol"></a> <a id="5532" href="Relation.Binary.Bundles.html#4140" class="Record">DecPoset</a> <a id="5541" href="Relation.Binary.Construct.NaturalOrder.Left.html#1083" class="Bound">a</a> <a id="5543" href="Relation.Binary.Construct.NaturalOrder.Left.html#1085" class="Bound"></a> <a id="5545" href="Relation.Binary.Construct.NaturalOrder.Left.html#1085" class="Bound"></a>
<a id="5547" href="Relation.Binary.Construct.NaturalOrder.Left.html#5485" class="Function">decPoset</a> <a id="5556" href="Relation.Binary.Construct.NaturalOrder.Left.html#5556" class="Bound">latt</a> <a id="5561" href="Relation.Binary.Construct.NaturalOrder.Left.html#5561" class="Bound">dec</a> <a id="5565" class="Symbol">=</a> <a id="5567" class="Keyword">record</a>
<a id="5576" class="Symbol">{</a> <a id="5578" href="Relation.Binary.Bundles.html#4327" class="Field">isDecPartialOrder</a> <a id="5596" class="Symbol">=</a> <a id="5598" href="Relation.Binary.Construct.NaturalOrder.Left.html#4455" class="Function">isDecPartialOrder</a> <a id="5616" href="Relation.Binary.Construct.NaturalOrder.Left.html#5556" class="Bound">latt</a> <a id="5621" href="Relation.Binary.Construct.NaturalOrder.Left.html#5561" class="Bound">dec</a>
<a id="5627" class="Symbol">}</a>
<a id="totalOrder"></a><a id="5630" href="Relation.Binary.Construct.NaturalOrder.Left.html#5630" class="Function">totalOrder</a> <a id="5641" class="Symbol">:</a> <a id="5643" href="Algebra.Lattice.Structures.html#1160" class="Record">IsSemilattice</a> <a id="5657" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a> <a id="5661" class="Symbol"></a> <a id="5663" href="Algebra.Definitions.html#3841" class="Function">Selective</a> <a id="5673" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a> <a id="5677" class="Symbol"></a> <a id="5679" href="Relation.Binary.Bundles.html#6458" class="Record">TotalOrder</a> <a id="5690" href="Relation.Binary.Construct.NaturalOrder.Left.html#1083" class="Bound">a</a> <a id="5692" href="Relation.Binary.Construct.NaturalOrder.Left.html#1085" class="Bound"></a> <a id="5694" href="Relation.Binary.Construct.NaturalOrder.Left.html#1085" class="Bound"></a>
<a id="5696" href="Relation.Binary.Construct.NaturalOrder.Left.html#5630" class="Function">totalOrder</a> <a id="5707" href="Relation.Binary.Construct.NaturalOrder.Left.html#5707" class="Bound">latt</a> <a id="5712" href="Relation.Binary.Construct.NaturalOrder.Left.html#5712" class="Bound">sel</a> <a id="5716" class="Symbol">=</a> <a id="5718" class="Keyword">record</a>
<a id="5727" class="Symbol">{</a> <a id="5729" href="Relation.Binary.Bundles.html#6632" class="Field">isTotalOrder</a> <a id="5742" class="Symbol">=</a> <a id="5744" href="Relation.Binary.Construct.NaturalOrder.Left.html#4707" class="Function">isTotalOrder</a> <a id="5757" href="Relation.Binary.Construct.NaturalOrder.Left.html#5707" class="Bound">latt</a> <a id="5762" href="Relation.Binary.Construct.NaturalOrder.Left.html#5712" class="Bound">sel</a>
<a id="5768" class="Symbol">}</a>
<a id="decTotalOrder"></a><a id="5771" href="Relation.Binary.Construct.NaturalOrder.Left.html#5771" class="Function">decTotalOrder</a> <a id="5785" class="Symbol">:</a> <a id="5787" href="Algebra.Lattice.Structures.html#1160" class="Record">IsSemilattice</a> <a id="5801" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a> <a id="5805" class="Symbol"></a> <a id="5807" href="Algebra.Definitions.html#3841" class="Function">Selective</a> <a id="5817" href="Relation.Binary.Construct.NaturalOrder.Left.html#1117" class="Bound Operator">_∙_</a> <a id="5821" class="Symbol"></a>
<a id="5839" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="5849" href="Relation.Binary.Construct.NaturalOrder.Left.html#1101" class="Bound Operator">_≈_</a> <a id="5853" class="Symbol"></a> <a id="5855" href="Relation.Binary.Bundles.html#7041" class="Record">DecTotalOrder</a> <a id="5869" href="Relation.Binary.Construct.NaturalOrder.Left.html#1083" class="Bound">a</a> <a id="5871" href="Relation.Binary.Construct.NaturalOrder.Left.html#1085" class="Bound"></a> <a id="5873" href="Relation.Binary.Construct.NaturalOrder.Left.html#1085" class="Bound"></a>
<a id="5875" href="Relation.Binary.Construct.NaturalOrder.Left.html#5771" class="Function">decTotalOrder</a> <a id="5889" href="Relation.Binary.Construct.NaturalOrder.Left.html#5889" class="Bound">latt</a> <a id="5894" href="Relation.Binary.Construct.NaturalOrder.Left.html#5894" class="Bound">sel</a> <a id="5898" href="Relation.Binary.Construct.NaturalOrder.Left.html#5898" class="Bound">dec</a> <a id="5902" class="Symbol">=</a> <a id="5904" class="Keyword">record</a>
<a id="5913" class="Symbol">{</a> <a id="5915" href="Relation.Binary.Bundles.html#7227" class="Field">isDecTotalOrder</a> <a id="5931" class="Symbol">=</a> <a id="5933" href="Relation.Binary.Construct.NaturalOrder.Left.html#4948" class="Function">isDecTotalOrder</a> <a id="5949" href="Relation.Binary.Construct.NaturalOrder.Left.html#5889" class="Bound">latt</a> <a id="5954" href="Relation.Binary.Construct.NaturalOrder.Left.html#5894" class="Bound">sel</a> <a id="5958" href="Relation.Binary.Construct.NaturalOrder.Left.html#5898" class="Bound">dec</a>
<a id="5964" class="Symbol">}</a>
</pre></body></html>