bsc-leon-vatthauer/agda/bsc-thesis/Data.Nat.Properties.html
2024-02-09 17:53:52 +01:00

2370 lines
No EOL
904 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>Data.Nat.Properties</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- A bunch of properties about natural number operations</a>
<a id="163" class="Comment">------------------------------------------------------------------------</a>
<a id="237" class="Comment">-- See README.Data.Nat for some examples showing how this module can be</a>
<a id="309" class="Comment">-- used.</a>
<a id="319" class="Symbol">{-#</a> <a id="323" class="Keyword">OPTIONS</a> <a id="331" class="Pragma">--cubical-compatible</a> <a id="352" class="Pragma">--safe</a> <a id="359" class="Symbol">#-}</a>
<a id="364" class="Keyword">module</a> <a id="371" href="Data.Nat.Properties.html" class="Module">Data.Nat.Properties</a> <a id="391" class="Keyword">where</a>
<a id="398" class="Keyword">open</a> <a id="403" class="Keyword">import</a> <a id="410" href="Axiom.UniquenessOfIdentityProofs.html" class="Module">Axiom.UniquenessOfIdentityProofs</a>
<a id="443" class="Keyword">open</a> <a id="448" class="Keyword">import</a> <a id="455" href="Algebra.Bundles.html" class="Module">Algebra.Bundles</a>
<a id="471" class="Keyword">open</a> <a id="476" class="Keyword">import</a> <a id="483" href="Algebra.Morphism.html" class="Module">Algebra.Morphism</a>
<a id="500" class="Keyword">open</a> <a id="505" class="Keyword">import</a> <a id="512" href="Algebra.Consequences.Propositional.html" class="Module">Algebra.Consequences.Propositional</a>
<a id="547" class="Keyword">open</a> <a id="552" class="Keyword">import</a> <a id="559" href="Algebra.Construct.NaturalChoice.Base.html" class="Module">Algebra.Construct.NaturalChoice.Base</a>
<a id="596" class="Keyword">import</a> <a id="603" href="Algebra.Construct.NaturalChoice.MinMaxOp.html" class="Module">Algebra.Construct.NaturalChoice.MinMaxOp</a> <a id="644" class="Symbol">as</a> <a id="647" class="Module">MinMaxOp</a>
<a id="656" class="Keyword">import</a> <a id="663" href="Algebra.Lattice.Construct.NaturalChoice.MinMaxOp.html" class="Module">Algebra.Lattice.Construct.NaturalChoice.MinMaxOp</a> <a id="712" class="Symbol">as</a> <a id="715" class="Module">LatticeMinMaxOp</a>
<a id="731" class="Keyword">import</a> <a id="738" href="Algebra.Properties.CommutativeSemigroup.html" class="Module">Algebra.Properties.CommutativeSemigroup</a> <a id="778" class="Symbol">as</a> <a id="781" class="Module">CommSemigroupProperties</a>
<a id="805" class="Keyword">open</a> <a id="810" class="Keyword">import</a> <a id="817" href="Data.Bool.Base.html" class="Module">Data.Bool.Base</a> <a id="832" class="Keyword">using</a> <a id="838" class="Symbol">(</a><a id="839" href="Agda.Builtin.Bool.html#173" class="Datatype">Bool</a><a id="843" class="Symbol">;</a> <a id="845" href="Agda.Builtin.Bool.html#192" class="InductiveConstructor">false</a><a id="850" class="Symbol">;</a> <a id="852" href="Agda.Builtin.Bool.html#198" class="InductiveConstructor">true</a><a id="856" class="Symbol">;</a> <a id="858" href="Data.Bool.Base.html#1348" class="Function">T</a><a id="859" class="Symbol">)</a>
<a id="861" class="Keyword">open</a> <a id="866" class="Keyword">import</a> <a id="873" href="Data.Bool.Properties.html" class="Module">Data.Bool.Properties</a> <a id="894" class="Keyword">using</a> <a id="900" class="Symbol">(</a><a id="901" href="Relation.Nullary.Decidable.Core.html#2465" class="Function">T?</a><a id="903" class="Symbol">)</a>
<a id="905" class="Keyword">open</a> <a id="910" class="Keyword">import</a> <a id="917" href="Data.Nat.Base.html" class="Module">Data.Nat.Base</a>
<a id="931" class="Keyword">open</a> <a id="936" class="Keyword">import</a> <a id="943" href="Data.Product.Base.html" class="Module">Data.Product.Base</a> <a id="961" class="Keyword">using</a> <a id="967" class="Symbol">(</a><a id="968" href="Data.Product.Base.html#852" class="Function"></a><a id="969" class="Symbol">;</a> <a id="971" href="Data.Product.Base.html#1618" class="Function Operator">_×_</a><a id="974" class="Symbol">;</a> <a id="976" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">_,_</a><a id="979" class="Symbol">)</a>
<a id="981" class="Keyword">open</a> <a id="986" class="Keyword">import</a> <a id="993" href="Data.Sum.Base.html" class="Module">Data.Sum.Base</a> <a id="1007" class="Symbol">as</a> <a id="1010" class="Module">Sum</a>
<a id="1014" class="Keyword">open</a> <a id="1019" class="Keyword">import</a> <a id="1026" href="Data.Unit.html" class="Module">Data.Unit</a> <a id="1036" class="Keyword">using</a> <a id="1042" class="Symbol">(</a><a id="1043" href="Agda.Builtin.Unit.html#212" class="InductiveConstructor">tt</a><a id="1045" class="Symbol">)</a>
<a id="1047" class="Keyword">open</a> <a id="1052" class="Keyword">import</a> <a id="1059" href="Function.Base.html" class="Module">Function.Base</a>
<a id="1073" class="Keyword">open</a> <a id="1078" class="Keyword">import</a> <a id="1085" href="Function.Bundles.html" class="Module">Function.Bundles</a> <a id="1102" class="Keyword">using</a> <a id="1108" class="Symbol">(</a><a id="1109" href="Function.Bundles.html#11819" class="Function Operator">_↣_</a><a id="1112" class="Symbol">)</a>
<a id="1114" class="Keyword">open</a> <a id="1119" class="Keyword">import</a> <a id="1126" href="Function.Metric.Nat.html" class="Module">Function.Metric.Nat</a>
<a id="1146" class="Keyword">open</a> <a id="1151" class="Keyword">import</a> <a id="1158" href="Level.html" class="Module">Level</a> <a id="1164" class="Keyword">using</a> <a id="1170" class="Symbol">(</a><a id="1171" href="Level.html#521" class="Function">0</a><a id="1173" class="Symbol">)</a>
<a id="1175" class="Keyword">open</a> <a id="1180" class="Keyword">import</a> <a id="1187" href="Relation.Unary.html" class="Module">Relation.Unary</a> <a id="1202" class="Symbol">as</a> <a id="1205" class="Module">U</a> <a id="1207" class="Keyword">using</a> <a id="1213" class="Symbol">(</a><a id="1214" href="Relation.Unary.html#1232" class="Function">Pred</a><a id="1218" class="Symbol">)</a>
<a id="1220" class="Keyword">open</a> <a id="1225" class="Keyword">import</a> <a id="1232" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a>
<a id="1255" class="Keyword">using</a> <a id="1261" class="Symbol">(</a><a id="1262" href="Relation.Binary.Core.html#1268" class="Function Operator">_⇒_</a><a id="1265" class="Symbol">;</a> <a id="1267" href="Relation.Binary.Core.html#1577" class="Function Operator">_Preserves_⟶_</a><a id="1280" class="Symbol">;</a> <a id="1282" href="Relation.Binary.Core.html#1703" class="Function Operator">_Preserves₂_⟶_⟶_</a><a id="1298" class="Symbol">)</a>
<a id="1300" class="Keyword">open</a> <a id="1305" class="Keyword">import</a> <a id="1312" href="Relation.Binary.html" class="Module">Relation.Binary</a>
<a id="1328" class="Keyword">open</a> <a id="1333" class="Keyword">import</a> <a id="1340" href="Relation.Binary.Consequences.html" class="Module">Relation.Binary.Consequences</a> <a id="1369" class="Keyword">using</a> <a id="1375" class="Symbol">(</a><a id="1376" href="Relation.Binary.Consequences.html#7360" class="Function">flip-Connex</a><a id="1387" class="Symbol">)</a>
<a id="1389" class="Keyword">open</a> <a id="1394" class="Keyword">import</a> <a id="1401" href="Relation.Binary.PropositionalEquality.html" class="Module">Relation.Binary.PropositionalEquality</a>
<a id="1439" class="Keyword">open</a> <a id="1444" class="Keyword">import</a> <a id="1451" href="Relation.Nullary.html" class="Module">Relation.Nullary</a> <a id="1468" class="Keyword">hiding</a> <a id="1475" class="Symbol">(</a><a id="1476" href="Relation.Nullary.html#755" class="Function">Irrelevant</a><a id="1486" class="Symbol">)</a>
<a id="1488" class="Keyword">open</a> <a id="1493" class="Keyword">import</a> <a id="1500" href="Relation.Nullary.Decidable.html" class="Module">Relation.Nullary.Decidable</a> <a id="1527" class="Keyword">using</a> <a id="1533" class="Symbol">(</a><a id="1534" href="Relation.Nullary.Decidable.Core.html#3468" class="Function">True</a><a id="1538" class="Symbol">;</a> <a id="1540" href="Relation.Nullary.Decidable.html#1471" class="Function">via-injection</a><a id="1553" class="Symbol">;</a> <a id="1555" href="Relation.Nullary.Decidable.Core.html#4901" class="Function">map</a><a id="1559" class="Symbol">)</a>
<a id="1561" class="Keyword">open</a> <a id="1566" class="Keyword">import</a> <a id="1573" href="Relation.Nullary.Negation.Core.html" class="Module">Relation.Nullary.Negation.Core</a> <a id="1604" class="Keyword">using</a> <a id="1610" class="Symbol">(</a><a id="1611" href="Relation.Nullary.Negation.Core.html#698" class="Function Operator">¬_</a><a id="1613" class="Symbol">;</a> <a id="1615" href="Relation.Nullary.Negation.Core.html#1226" class="Function">contradiction</a><a id="1628" class="Symbol">)</a>
<a id="1630" class="Keyword">open</a> <a id="1635" class="Keyword">import</a> <a id="1642" href="Relation.Nullary.Reflects.html" class="Module">Relation.Nullary.Reflects</a> <a id="1668" class="Keyword">using</a> <a id="1674" class="Symbol">(</a><a id="1675" href="Relation.Nullary.Reflects.html#2947" class="Function">fromEquivalence</a><a id="1690" class="Symbol">)</a>
<a id="1693" class="Keyword">open</a> <a id="1698" class="Keyword">import</a> <a id="1705" href="Algebra.Definitions.html" class="Module">Algebra.Definitions</a> <a id="1725" class="Symbol">{</a><a id="1726" class="Argument">A</a> <a id="1728" class="Symbol">=</a> <a id="1730" href="Agda.Builtin.Nat.html#203" class="Datatype"></a><a id="1731" class="Symbol">}</a> <a id="1733" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a>
<a id="1739" class="Keyword">hiding</a> <a id="1746" class="Symbol">(</a><a id="1747" href="Algebra.Definitions.html#4214" class="Function">LeftCancellative</a><a id="1763" class="Symbol">;</a> <a id="1765" href="Algebra.Definitions.html#4307" class="Function">RightCancellative</a><a id="1782" class="Symbol">;</a> <a id="1784" href="Algebra.Definitions.html#4402" class="Function">Cancellative</a><a id="1796" class="Symbol">)</a>
<a id="1798" class="Keyword">open</a> <a id="1803" class="Keyword">import</a> <a id="1810" href="Algebra.Definitions.html" class="Module">Algebra.Definitions</a>
<a id="1832" class="Keyword">using</a> <a id="1838" class="Symbol">(</a><a id="1839" href="Algebra.Definitions.html#4214" class="Function">LeftCancellative</a><a id="1855" class="Symbol">;</a> <a id="1857" href="Algebra.Definitions.html#4307" class="Function">RightCancellative</a><a id="1874" class="Symbol">;</a> <a id="1876" href="Algebra.Definitions.html#4402" class="Function">Cancellative</a><a id="1888" class="Symbol">)</a>
<a id="1890" class="Keyword">open</a> <a id="1895" class="Keyword">import</a> <a id="1902" href="Algebra.Structures.html" class="Module">Algebra.Structures</a> <a id="1921" class="Symbol">{</a><a id="1922" class="Argument">A</a> <a id="1924" class="Symbol">=</a> <a id="1926" href="Agda.Builtin.Nat.html#203" class="Datatype"></a><a id="1927" class="Symbol">}</a> <a id="1929" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a>
<a id="1935" class="Keyword">private</a>
<a id="1945" class="Keyword">variable</a>
<a id="1958" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="1960" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="1962" href="Data.Nat.Properties.html#1962" class="Generalizable">o</a> <a id="1964" href="Data.Nat.Properties.html#1964" class="Generalizable">k</a> <a id="1966" class="Symbol">:</a> <a id="1968" href="Agda.Builtin.Nat.html#203" class="Datatype"></a>
<a id="1972" class="Comment">------------------------------------------------------------------------</a>
<a id="2045" class="Comment">-- Properties of NonZero</a>
<a id="2070" class="Comment">------------------------------------------------------------------------</a>
<a id="nonZero?"></a><a id="2144" href="Data.Nat.Properties.html#2144" class="Function">nonZero?</a> <a id="2153" class="Symbol">:</a> <a id="2155" href="Relation.Unary.html#3806" class="Function">U.Decidable</a> <a id="2167" href="Data.Nat.Base.html#3260" class="Record">NonZero</a>
<a id="2175" href="Data.Nat.Properties.html#2144" class="Function">nonZero?</a> <a id="2184" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="2192" class="Symbol">=</a> <a id="2194" href="Relation.Nullary.Decidable.Core.html#1655" class="InductiveConstructor">no</a> <a id="2197" href="Data.Nat.Base.html#3300" class="Field">NonZero.nonZero</a>
<a id="2213" href="Data.Nat.Properties.html#2144" class="Function">nonZero?</a> <a id="2222" class="Symbol">(</a><a id="2223" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="2227" href="Data.Nat.Properties.html#2227" class="Bound">n</a><a id="2228" class="Symbol">)</a> <a id="2230" class="Symbol">=</a> <a id="2232" href="Relation.Nullary.Decidable.Core.html#1618" class="InductiveConstructor">yes</a> <a id="2236" class="Symbol">_</a>
<a id="2239" class="Comment">------------------------------------------------------------------------</a>
<a id="2312" class="Comment">-- Properties of NonTrivial</a>
<a id="2340" class="Comment">------------------------------------------------------------------------</a>
<a id="nonTrivial?"></a><a id="2414" href="Data.Nat.Properties.html#2414" class="Function">nonTrivial?</a> <a id="2426" class="Symbol">:</a> <a id="2428" href="Relation.Unary.html#3806" class="Function">U.Decidable</a> <a id="2440" href="Data.Nat.Base.html#3795" class="Record">NonTrivial</a>
<a id="2451" href="Data.Nat.Properties.html#2414" class="Function">nonTrivial?</a> <a id="2463" class="Number">0</a> <a id="2470" class="Symbol">=</a> <a id="2472" href="Relation.Nullary.Decidable.Core.html#1655" class="InductiveConstructor">no</a> <a id="2475" class="Symbol">λ()</a>
<a id="2479" href="Data.Nat.Properties.html#2414" class="Function">nonTrivial?</a> <a id="2491" class="Number">1</a> <a id="2498" class="Symbol">=</a> <a id="2500" href="Relation.Nullary.Decidable.Core.html#1655" class="InductiveConstructor">no</a> <a id="2503" class="Symbol">λ()</a>
<a id="2507" href="Data.Nat.Properties.html#2414" class="Function">nonTrivial?</a> <a id="2519" class="Symbol">(</a><a id="2520" href="Data.Nat.Base.html#1095" class="InductiveConstructor">2+</a> <a id="2523" href="Data.Nat.Properties.html#2523" class="Bound">n</a><a id="2524" class="Symbol">)</a> <a id="2526" class="Symbol">=</a> <a id="2528" href="Relation.Nullary.Decidable.Core.html#1618" class="InductiveConstructor">yes</a> <a id="2532" class="Symbol">_</a>
<a id="2535" class="Comment">------------------------------------------------------------------------</a>
<a id="2608" class="Comment">-- Properties of _≡_</a>
<a id="2629" class="Comment">------------------------------------------------------------------------</a>
<a id="suc-injective"></a><a id="2703" href="Data.Nat.Properties.html#2703" class="Function">suc-injective</a> <a id="2717" class="Symbol">:</a> <a id="2719" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="2723" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="2725" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="2727" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="2731" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="2733" class="Symbol"></a> <a id="2735" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="2737" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="2739" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="2741" href="Data.Nat.Properties.html#2703" class="Function">suc-injective</a> <a id="2755" class="Symbol">=</a> <a id="2757" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="2762" href="Data.Nat.Base.html#5266" class="Function">pred</a>
<a id="≡ᵇ⇒≡"></a><a id="2768" href="Data.Nat.Properties.html#2768" class="Function">≡ᵇ⇒≡</a> <a id="2773" class="Symbol">:</a> <a id="2775" class="Symbol"></a> <a id="2777" href="Data.Nat.Properties.html#2777" class="Bound">m</a> <a id="2779" href="Data.Nat.Properties.html#2779" class="Bound">n</a> <a id="2781" class="Symbol"></a> <a id="2783" href="Data.Bool.Base.html#1348" class="Function">T</a> <a id="2785" class="Symbol">(</a><a id="2786" href="Data.Nat.Properties.html#2777" class="Bound">m</a> <a id="2788" href="Data.Nat.Base.html#1283" class="Primitive Operator">≡ᵇ</a> <a id="2791" href="Data.Nat.Properties.html#2779" class="Bound">n</a><a id="2792" class="Symbol">)</a> <a id="2794" class="Symbol"></a> <a id="2796" href="Data.Nat.Properties.html#2777" class="Bound">m</a> <a id="2798" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="2800" href="Data.Nat.Properties.html#2779" class="Bound">n</a>
<a id="2802" href="Data.Nat.Properties.html#2768" class="Function">≡ᵇ⇒≡</a> <a id="2807" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="2815" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="2823" class="Symbol">_</a> <a id="2826" class="Symbol">=</a> <a id="2828" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="2833" href="Data.Nat.Properties.html#2768" class="Function">≡ᵇ⇒≡</a> <a id="2838" class="Symbol">(</a><a id="2839" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="2843" href="Data.Nat.Properties.html#2843" class="Bound">m</a><a id="2844" class="Symbol">)</a> <a id="2846" class="Symbol">(</a><a id="2847" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="2851" href="Data.Nat.Properties.html#2851" class="Bound">n</a><a id="2852" class="Symbol">)</a> <a id="2854" href="Data.Nat.Properties.html#2854" class="Bound">eq</a> <a id="2857" class="Symbol">=</a> <a id="2859" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="2864" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="2868" class="Symbol">(</a><a id="2869" href="Data.Nat.Properties.html#2768" class="Function">≡ᵇ⇒≡</a> <a id="2874" href="Data.Nat.Properties.html#2843" class="Bound">m</a> <a id="2876" href="Data.Nat.Properties.html#2851" class="Bound">n</a> <a id="2878" href="Data.Nat.Properties.html#2854" class="Bound">eq</a><a id="2880" class="Symbol">)</a>
<a id="≡⇒≡ᵇ"></a><a id="2883" href="Data.Nat.Properties.html#2883" class="Function">≡⇒≡ᵇ</a> <a id="2888" class="Symbol">:</a> <a id="2890" class="Symbol"></a> <a id="2892" href="Data.Nat.Properties.html#2892" class="Bound">m</a> <a id="2894" href="Data.Nat.Properties.html#2894" class="Bound">n</a> <a id="2896" class="Symbol"></a> <a id="2898" href="Data.Nat.Properties.html#2892" class="Bound">m</a> <a id="2900" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="2902" href="Data.Nat.Properties.html#2894" class="Bound">n</a> <a id="2904" class="Symbol"></a> <a id="2906" href="Data.Bool.Base.html#1348" class="Function">T</a> <a id="2908" class="Symbol">(</a><a id="2909" href="Data.Nat.Properties.html#2892" class="Bound">m</a> <a id="2911" href="Data.Nat.Base.html#1283" class="Primitive Operator">≡ᵇ</a> <a id="2914" href="Data.Nat.Properties.html#2894" class="Bound">n</a><a id="2915" class="Symbol">)</a>
<a id="2917" href="Data.Nat.Properties.html#2883" class="Function">≡⇒≡ᵇ</a> <a id="2922" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="2930" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="2938" href="Data.Nat.Properties.html#2938" class="Bound">eq</a> <a id="2941" class="Symbol">=</a> <a id="2943" class="Symbol">_</a>
<a id="2945" href="Data.Nat.Properties.html#2883" class="Function">≡⇒≡ᵇ</a> <a id="2950" class="Symbol">(</a><a id="2951" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="2955" href="Data.Nat.Properties.html#2955" class="Bound">m</a><a id="2956" class="Symbol">)</a> <a id="2958" class="Symbol">(</a><a id="2959" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="2963" href="Data.Nat.Properties.html#2963" class="Bound">n</a><a id="2964" class="Symbol">)</a> <a id="2966" href="Data.Nat.Properties.html#2966" class="Bound">eq</a> <a id="2969" class="Symbol">=</a> <a id="2971" href="Data.Nat.Properties.html#2883" class="Function">≡⇒≡ᵇ</a> <a id="2976" href="Data.Nat.Properties.html#2955" class="Bound">m</a> <a id="2978" href="Data.Nat.Properties.html#2963" class="Bound">n</a> <a id="2980" class="Symbol">(</a><a id="2981" href="Data.Nat.Properties.html#2703" class="Function">suc-injective</a> <a id="2995" href="Data.Nat.Properties.html#2966" class="Bound">eq</a><a id="2997" class="Symbol">)</a>
<a id="3000" class="Comment">-- NB: we use the builtin function `_≡ᵇ_` here so that the function</a>
<a id="3068" class="Comment">-- quickly decides whether to return `yes` or `no`. It still takes</a>
<a id="3135" class="Comment">-- a linear amount of time to generate the proof if it is inspected.</a>
<a id="3204" class="Comment">-- We expect the main benefit to be visible in compiled code as the</a>
<a id="3272" class="Comment">-- backend erases proofs.</a>
<a id="3299" class="Keyword">infix</a> <a id="3305" class="Number">4</a> <a id="3307" href="Data.Nat.Properties.html#3311" class="Function Operator">_≟_</a>
<a id="_≟_"></a><a id="3311" href="Data.Nat.Properties.html#3311" class="Function Operator">_≟_</a> <a id="3315" class="Symbol">:</a> <a id="3317" href="Relation.Binary.Definitions.html#6469" class="Function">DecidableEquality</a> <a id="3335" href="Agda.Builtin.Nat.html#203" class="Datatype"></a>
<a id="3337" href="Data.Nat.Properties.html#3337" class="Bound">m</a> <a id="3339" href="Data.Nat.Properties.html#3311" class="Function Operator"></a> <a id="3341" href="Data.Nat.Properties.html#3341" class="Bound">n</a> <a id="3343" class="Symbol">=</a> <a id="3345" href="Relation.Nullary.Decidable.Core.html#4901" class="Function">map</a> <a id="3350" class="Symbol">(</a><a id="3351" href="Data.Nat.Properties.html#2768" class="Function">≡ᵇ⇒≡</a> <a id="3356" href="Data.Nat.Properties.html#3337" class="Bound">m</a> <a id="3358" href="Data.Nat.Properties.html#3341" class="Bound">n</a><a id="3359" class="Symbol">)</a> <a id="3361" class="Symbol">(</a><a id="3362" href="Data.Nat.Properties.html#2883" class="Function">≡⇒≡ᵇ</a> <a id="3367" href="Data.Nat.Properties.html#3337" class="Bound">m</a> <a id="3369" href="Data.Nat.Properties.html#3341" class="Bound">n</a><a id="3370" class="Symbol">)</a> <a id="3372" class="Symbol">(</a><a id="3373" href="Relation.Nullary.Decidable.Core.html#2465" class="Function">T?</a> <a id="3376" class="Symbol">(</a><a id="3377" href="Data.Nat.Properties.html#3337" class="Bound">m</a> <a id="3379" href="Data.Nat.Base.html#1283" class="Primitive Operator">≡ᵇ</a> <a id="3382" href="Data.Nat.Properties.html#3341" class="Bound">n</a><a id="3383" class="Symbol">))</a>
<a id="≡-irrelevant"></a><a id="3387" href="Data.Nat.Properties.html#3387" class="Function">≡-irrelevant</a> <a id="3400" class="Symbol">:</a> <a id="3402" href="Relation.Binary.Definitions.html#6651" class="Function">Irrelevant</a> <a id="3413" class="Symbol">{</a><a id="3414" class="Argument">A</a> <a id="3416" class="Symbol">=</a> <a id="3418" href="Agda.Builtin.Nat.html#203" class="Datatype"></a><a id="3419" class="Symbol">}</a> <a id="3421" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a>
<a id="3425" href="Data.Nat.Properties.html#3387" class="Function">≡-irrelevant</a> <a id="3438" class="Symbol">=</a> <a id="3440" href="Axiom.UniquenessOfIdentityProofs.html#2697" class="Function">Decidable⇒UIP.≡-irrelevant</a> <a id="3467" href="Data.Nat.Properties.html#3311" class="Function Operator">_≟_</a>
<a id="≟-diag"></a><a id="3472" href="Data.Nat.Properties.html#3472" class="Function">≟-diag</a> <a id="3479" class="Symbol">:</a> <a id="3481" class="Symbol">(</a><a id="3482" href="Data.Nat.Properties.html#3482" class="Bound">eq</a> <a id="3485" class="Symbol">:</a> <a id="3487" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="3489" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="3491" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a><a id="3492" class="Symbol">)</a> <a id="3494" class="Symbol"></a> <a id="3496" class="Symbol">(</a><a id="3497" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="3499" href="Data.Nat.Properties.html#3311" class="Function Operator"></a> <a id="3501" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a><a id="3502" class="Symbol">)</a> <a id="3504" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="3506" href="Relation.Nullary.Decidable.Core.html#1618" class="InductiveConstructor">yes</a> <a id="3510" href="Data.Nat.Properties.html#3482" class="Bound">eq</a>
<a id="3513" href="Data.Nat.Properties.html#3472" class="Function">≟-diag</a> <a id="3520" class="Symbol">=</a> <a id="3522" href="Relation.Binary.PropositionalEquality.html#3553" class="Function">≡-≟-identity</a> <a id="3535" href="Data.Nat.Properties.html#3311" class="Function Operator">_≟_</a>
<a id="≡-isDecEquivalence"></a><a id="3540" href="Data.Nat.Properties.html#3540" class="Function">≡-isDecEquivalence</a> <a id="3559" class="Symbol">:</a> <a id="3561" href="Relation.Binary.Structures.html#1852" class="Record">IsDecEquivalence</a> <a id="3578" class="Symbol">(</a><a id="3579" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a> <a id="3583" class="Symbol">{</a><a id="3584" class="Argument">A</a> <a id="3586" class="Symbol">=</a> <a id="3588" href="Agda.Builtin.Nat.html#203" class="Datatype"></a><a id="3589" class="Symbol">})</a>
<a id="3592" href="Data.Nat.Properties.html#3540" class="Function">≡-isDecEquivalence</a> <a id="3611" class="Symbol">=</a> <a id="3613" class="Keyword">record</a>
<a id="3622" class="Symbol">{</a> <a id="3624" href="Relation.Binary.Structures.html#1915" class="Field">isEquivalence</a> <a id="3638" class="Symbol">=</a> <a id="3640" href="Relation.Binary.PropositionalEquality.Properties.html#5422" class="Function">isEquivalence</a>
<a id="3656" class="Symbol">;</a> <a id="3658" href="Relation.Binary.Structures.html#1949" class="Field Operator">_≟_</a> <a id="3672" class="Symbol">=</a> <a id="3674" href="Data.Nat.Properties.html#3311" class="Function Operator">_≟_</a>
<a id="3680" class="Symbol">}</a>
<a id="≡-decSetoid"></a><a id="3683" href="Data.Nat.Properties.html#3683" class="Function">≡-decSetoid</a> <a id="3695" class="Symbol">:</a> <a id="3697" href="Relation.Binary.Bundles.html#1548" class="Record">DecSetoid</a> <a id="3707" href="Level.html#521" class="Function">0</a> <a id="3710" href="Level.html#521" class="Function">0</a>
<a id="3713" href="Data.Nat.Properties.html#3683" class="Function">≡-decSetoid</a> <a id="3725" class="Symbol">=</a> <a id="3727" class="Keyword">record</a>
<a id="3736" class="Symbol">{</a> <a id="3738" href="Relation.Binary.Bundles.html#1614" class="Field">Carrier</a> <a id="3755" class="Symbol">=</a> <a id="3757" href="Agda.Builtin.Nat.html#203" class="Datatype"></a>
<a id="3761" class="Symbol">;</a> <a id="3763" href="Relation.Binary.Bundles.html#1643" class="Field Operator">_≈_</a> <a id="3780" class="Symbol">=</a> <a id="3782" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a>
<a id="3788" class="Symbol">;</a> <a id="3790" href="Relation.Binary.Bundles.html#1680" class="Field">isDecEquivalence</a> <a id="3807" class="Symbol">=</a> <a id="3809" href="Data.Nat.Properties.html#3540" class="Function">≡-isDecEquivalence</a>
<a id="3830" class="Symbol">}</a>
<a id="0≢1+n"></a><a id="3833" href="Data.Nat.Properties.html#3833" class="Function">0≢1+n</a> <a id="3839" class="Symbol">:</a> <a id="3841" class="Number">0</a> <a id="3843" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Function Operator"></a> <a id="3845" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="3849" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="3851" href="Data.Nat.Properties.html#3833" class="Function">0≢1+n</a> <a id="3857" class="Symbol">()</a>
<a id="1+n≢0"></a><a id="3861" href="Data.Nat.Properties.html#3861" class="Function">1+n≢0</a> <a id="3867" class="Symbol">:</a> <a id="3869" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="3873" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="3875" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Function Operator"></a> <a id="3877" class="Number">0</a>
<a id="3879" href="Data.Nat.Properties.html#3861" class="Function">1+n≢0</a> <a id="3885" class="Symbol">()</a>
<a id="1+n≢n"></a><a id="3889" href="Data.Nat.Properties.html#3889" class="Function">1+n≢n</a> <a id="3895" class="Symbol">:</a> <a id="3897" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="3901" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="3903" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Function Operator"></a> <a id="3905" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="3907" href="Data.Nat.Properties.html#3889" class="Function">1+n≢n</a> <a id="3913" class="Symbol">{</a><a id="3914" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="3918" href="Data.Nat.Properties.html#3918" class="Bound">n</a><a id="3919" class="Symbol">}</a> <a id="3921" class="Symbol">=</a> <a id="3923" href="Data.Nat.Properties.html#3889" class="Function">1+n≢n</a> <a id="3929" href="Function.Base.html#1115" class="Function Operator"></a> <a id="3931" href="Data.Nat.Properties.html#2703" class="Function">suc-injective</a>
<a id="3946" class="Comment">------------------------------------------------------------------------</a>
<a id="4019" class="Comment">-- Properties of _&lt;ᵇ_</a>
<a id="4041" class="Comment">------------------------------------------------------------------------</a>
<a id="&lt;ᵇ⇒&lt;"></a><a id="4115" href="Data.Nat.Properties.html#4115" class="Function">&lt;ᵇ⇒&lt;</a> <a id="4120" class="Symbol">:</a> <a id="4122" class="Symbol"></a> <a id="4124" href="Data.Nat.Properties.html#4124" class="Bound">m</a> <a id="4126" href="Data.Nat.Properties.html#4126" class="Bound">n</a> <a id="4128" class="Symbol"></a> <a id="4130" href="Data.Bool.Base.html#1348" class="Function">T</a> <a id="4132" class="Symbol">(</a><a id="4133" href="Data.Nat.Properties.html#4124" class="Bound">m</a> <a id="4135" href="Data.Nat.Base.html#1457" class="Primitive Operator">&lt;</a> <a id="4138" href="Data.Nat.Properties.html#4126" class="Bound">n</a><a id="4139" class="Symbol">)</a> <a id="4141" class="Symbol"></a> <a id="4143" href="Data.Nat.Properties.html#4124" class="Bound">m</a> <a id="4145" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="4147" href="Data.Nat.Properties.html#4126" class="Bound">n</a>
<a id="4149" href="Data.Nat.Properties.html#4115" class="Function">&lt;ᵇ⇒&lt;</a> <a id="4154" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="4162" class="Symbol">(</a><a id="4163" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="4167" href="Data.Nat.Properties.html#4167" class="Bound">n</a><a id="4168" class="Symbol">)</a> <a id="4170" href="Data.Nat.Properties.html#4170" class="Bound">m&lt;n</a> <a id="4174" class="Symbol">=</a> <a id="4176" href="Data.Nat.Base.html#1873" class="InductiveConstructor">z&lt;s</a>
<a id="4180" href="Data.Nat.Properties.html#4115" class="Function">&lt;ᵇ⇒&lt;</a> <a id="4185" class="Symbol">(</a><a id="4186" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="4190" href="Data.Nat.Properties.html#4190" class="Bound">m</a><a id="4191" class="Symbol">)</a> <a id="4193" class="Symbol">(</a><a id="4194" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="4198" href="Data.Nat.Properties.html#4198" class="Bound">n</a><a id="4199" class="Symbol">)</a> <a id="4201" href="Data.Nat.Properties.html#4201" class="Bound">m&lt;n</a> <a id="4205" class="Symbol">=</a> <a id="4207" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a> <a id="4211" class="Symbol">(</a><a id="4212" href="Data.Nat.Properties.html#4115" class="Function">&lt;ᵇ⇒&lt;</a> <a id="4217" href="Data.Nat.Properties.html#4190" class="Bound">m</a> <a id="4219" href="Data.Nat.Properties.html#4198" class="Bound">n</a> <a id="4221" href="Data.Nat.Properties.html#4201" class="Bound">m&lt;n</a><a id="4224" class="Symbol">)</a>
<a id="&lt;⇒&lt;ᵇ"></a><a id="4227" href="Data.Nat.Properties.html#4227" class="Function">&lt;&lt;</a> <a id="4232" class="Symbol">:</a> <a id="4234" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="4236" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="4238" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="4240" class="Symbol"></a> <a id="4242" href="Data.Bool.Base.html#1348" class="Function">T</a> <a id="4244" class="Symbol">(</a><a id="4245" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="4247" href="Data.Nat.Base.html#1457" class="Primitive Operator">&lt;</a> <a id="4250" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a><a id="4251" class="Symbol">)</a>
<a id="4253" href="Data.Nat.Properties.html#4227" class="Function">&lt;&lt;</a> <a id="4258" href="Data.Nat.Base.html#1873" class="InductiveConstructor">z&lt;s</a> <a id="4276" class="Symbol">=</a> <a id="4278" href="Agda.Builtin.Unit.html#212" class="InductiveConstructor">tt</a>
<a id="4281" href="Data.Nat.Properties.html#4227" class="Function">&lt;&lt;</a> <a id="4286" class="Symbol">(</a><a id="4287" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a> <a id="4291" href="Data.Nat.Properties.html#4291" class="Bound">m&lt;n</a><a id="4294" class="Symbol">@(</a><a id="4296" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="4300" class="Symbol">_))</a> <a id="4304" class="Symbol">=</a> <a id="4306" href="Data.Nat.Properties.html#4227" class="Function">&lt;&lt;</a> <a id="4311" href="Data.Nat.Properties.html#4291" class="Bound">m&lt;n</a>
<a id="&lt;ᵇ-reflects-&lt;"></a><a id="4316" href="Data.Nat.Properties.html#4316" class="Function">&lt;ᵇ-reflects-&lt;</a> <a id="4330" class="Symbol">:</a> <a id="4332" class="Symbol"></a> <a id="4334" href="Data.Nat.Properties.html#4334" class="Bound">m</a> <a id="4336" href="Data.Nat.Properties.html#4336" class="Bound">n</a> <a id="4338" class="Symbol"></a> <a id="4340" href="Relation.Nullary.Reflects.html#938" class="Datatype">Reflects</a> <a id="4349" class="Symbol">(</a><a id="4350" href="Data.Nat.Properties.html#4334" class="Bound">m</a> <a id="4352" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="4354" href="Data.Nat.Properties.html#4336" class="Bound">n</a><a id="4355" class="Symbol">)</a> <a id="4357" class="Symbol">(</a><a id="4358" href="Data.Nat.Properties.html#4334" class="Bound">m</a> <a id="4360" href="Data.Nat.Base.html#1457" class="Primitive Operator">&lt;</a> <a id="4363" href="Data.Nat.Properties.html#4336" class="Bound">n</a><a id="4364" class="Symbol">)</a>
<a id="4366" href="Data.Nat.Properties.html#4316" class="Function">&lt;ᵇ-reflects-&lt;</a> <a id="4380" href="Data.Nat.Properties.html#4380" class="Bound">m</a> <a id="4382" href="Data.Nat.Properties.html#4382" class="Bound">n</a> <a id="4384" class="Symbol">=</a> <a id="4386" href="Relation.Nullary.Reflects.html#2947" class="Function">fromEquivalence</a> <a id="4402" class="Symbol">(</a><a id="4403" href="Data.Nat.Properties.html#4115" class="Function">&lt;ᵇ⇒&lt;</a> <a id="4408" href="Data.Nat.Properties.html#4380" class="Bound">m</a> <a id="4410" href="Data.Nat.Properties.html#4382" class="Bound">n</a><a id="4411" class="Symbol">)</a> <a id="4413" href="Data.Nat.Properties.html#4227" class="Function">&lt;&lt;</a>
<a id="4419" class="Comment">------------------------------------------------------------------------</a>
<a id="4492" class="Comment">-- Properties of _≤ᵇ_</a>
<a id="4514" class="Comment">------------------------------------------------------------------------</a>
<a id="≤ᵇ⇒≤"></a><a id="4588" href="Data.Nat.Properties.html#4588" class="Function">≤ᵇ⇒≤</a> <a id="4593" class="Symbol">:</a> <a id="4595" class="Symbol"></a> <a id="4597" href="Data.Nat.Properties.html#4597" class="Bound">m</a> <a id="4599" href="Data.Nat.Properties.html#4599" class="Bound">n</a> <a id="4601" class="Symbol"></a> <a id="4603" href="Data.Bool.Base.html#1348" class="Function">T</a> <a id="4605" class="Symbol">(</a><a id="4606" href="Data.Nat.Properties.html#4597" class="Bound">m</a> <a id="4608" href="Data.Nat.Base.html#1477" class="Function Operator">≤ᵇ</a> <a id="4611" href="Data.Nat.Properties.html#4599" class="Bound">n</a><a id="4612" class="Symbol">)</a> <a id="4614" class="Symbol"></a> <a id="4616" href="Data.Nat.Properties.html#4597" class="Bound">m</a> <a id="4618" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="4620" href="Data.Nat.Properties.html#4599" class="Bound">n</a>
<a id="4622" href="Data.Nat.Properties.html#4588" class="Function">≤ᵇ⇒≤</a> <a id="4627" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="4635" href="Data.Nat.Properties.html#4635" class="Bound">n</a> <a id="4637" href="Data.Nat.Properties.html#4637" class="Bound">m≤n</a> <a id="4641" class="Symbol">=</a> <a id="4643" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="4647" href="Data.Nat.Properties.html#4588" class="Function">≤ᵇ⇒≤</a> <a id="4652" class="Symbol">(</a><a id="4653" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="4657" href="Data.Nat.Properties.html#4657" class="Bound">m</a><a id="4658" class="Symbol">)</a> <a id="4660" href="Data.Nat.Properties.html#4660" class="Bound">n</a> <a id="4662" href="Data.Nat.Properties.html#4662" class="Bound">m≤n</a> <a id="4666" class="Symbol">=</a> <a id="4668" href="Data.Nat.Properties.html#4115" class="Function">&lt;ᵇ⇒&lt;</a> <a id="4673" href="Data.Nat.Properties.html#4657" class="Bound">m</a> <a id="4675" href="Data.Nat.Properties.html#4660" class="Bound">n</a> <a id="4677" href="Data.Nat.Properties.html#4662" class="Bound">m≤n</a>
<a id="≤⇒≤ᵇ"></a><a id="4682" href="Data.Nat.Properties.html#4682" class="Function">≤⇒≤ᵇ</a> <a id="4687" class="Symbol">:</a> <a id="4689" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="4691" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="4693" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="4695" class="Symbol"></a> <a id="4697" href="Data.Bool.Base.html#1348" class="Function">T</a> <a id="4699" class="Symbol">(</a><a id="4700" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="4702" href="Data.Nat.Base.html#1477" class="Function Operator">≤ᵇ</a> <a id="4705" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a><a id="4706" class="Symbol">)</a>
<a id="4708" href="Data.Nat.Properties.html#4682" class="Function">≤⇒≤ᵇ</a> <a id="4713" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="4725" class="Symbol">=</a> <a id="4727" href="Agda.Builtin.Unit.html#212" class="InductiveConstructor">tt</a>
<a id="4730" href="Data.Nat.Properties.html#4682" class="Function">≤⇒≤ᵇ</a> <a id="4735" href="Data.Nat.Properties.html#4735" class="Bound">m≤n</a><a id="4738" class="Symbol">@(</a><a id="4740" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="4744" class="Symbol">_)</a> <a id="4747" class="Symbol">=</a> <a id="4749" href="Data.Nat.Properties.html#4227" class="Function">&lt;&lt;</a> <a id="4754" href="Data.Nat.Properties.html#4735" class="Bound">m≤n</a>
<a id="≤ᵇ-reflects-≤"></a><a id="4759" href="Data.Nat.Properties.html#4759" class="Function">≤ᵇ-reflects-≤</a> <a id="4773" class="Symbol">:</a> <a id="4775" class="Symbol"></a> <a id="4777" href="Data.Nat.Properties.html#4777" class="Bound">m</a> <a id="4779" href="Data.Nat.Properties.html#4779" class="Bound">n</a> <a id="4781" class="Symbol"></a> <a id="4783" href="Relation.Nullary.Reflects.html#938" class="Datatype">Reflects</a> <a id="4792" class="Symbol">(</a><a id="4793" href="Data.Nat.Properties.html#4777" class="Bound">m</a> <a id="4795" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="4797" href="Data.Nat.Properties.html#4779" class="Bound">n</a><a id="4798" class="Symbol">)</a> <a id="4800" class="Symbol">(</a><a id="4801" href="Data.Nat.Properties.html#4777" class="Bound">m</a> <a id="4803" href="Data.Nat.Base.html#1477" class="Function Operator">≤ᵇ</a> <a id="4806" href="Data.Nat.Properties.html#4779" class="Bound">n</a><a id="4807" class="Symbol">)</a>
<a id="4809" href="Data.Nat.Properties.html#4759" class="Function">≤ᵇ-reflects-≤</a> <a id="4823" href="Data.Nat.Properties.html#4823" class="Bound">m</a> <a id="4825" href="Data.Nat.Properties.html#4825" class="Bound">n</a> <a id="4827" class="Symbol">=</a> <a id="4829" href="Relation.Nullary.Reflects.html#2947" class="Function">fromEquivalence</a> <a id="4845" class="Symbol">(</a><a id="4846" href="Data.Nat.Properties.html#4588" class="Function">≤ᵇ⇒≤</a> <a id="4851" href="Data.Nat.Properties.html#4823" class="Bound">m</a> <a id="4853" href="Data.Nat.Properties.html#4825" class="Bound">n</a><a id="4854" class="Symbol">)</a> <a id="4856" href="Data.Nat.Properties.html#4682" class="Function">≤⇒≤ᵇ</a>
<a id="4862" class="Comment">------------------------------------------------------------------------</a>
<a id="4935" class="Comment">-- Properties of _≤_</a>
<a id="4956" class="Comment">------------------------------------------------------------------------</a>
<a id="5030" class="Comment">------------------------------------------------------------------------</a>
<a id="5103" class="Comment">-- Relational properties of _≤_</a>
<a id="≤-reflexive"></a><a id="5136" href="Data.Nat.Properties.html#5136" class="Function">≤-reflexive</a> <a id="5148" class="Symbol">:</a> <a id="5150" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a> <a id="5154" href="Relation.Binary.Core.html#1268" class="Function Operator"></a> <a id="5156" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="5160" href="Data.Nat.Properties.html#5136" class="Function">≤-reflexive</a> <a id="5172" class="Symbol">{</a><a id="5173" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="5177" class="Symbol">}</a> <a id="5180" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a> <a id="5185" class="Symbol">=</a> <a id="5187" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="5191" href="Data.Nat.Properties.html#5136" class="Function">≤-reflexive</a> <a id="5203" class="Symbol">{</a><a id="5204" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="5208" href="Data.Nat.Properties.html#5208" class="Bound">m</a><a id="5209" class="Symbol">}</a> <a id="5211" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a> <a id="5216" class="Symbol">=</a> <a id="5218" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="5222" class="Symbol">(</a><a id="5223" href="Data.Nat.Properties.html#5136" class="Function">≤-reflexive</a> <a id="5235" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a><a id="5239" class="Symbol">)</a>
<a id="≤-refl"></a><a id="5242" href="Data.Nat.Properties.html#5242" class="Function">≤-refl</a> <a id="5249" class="Symbol">:</a> <a id="5251" href="Relation.Binary.Definitions.html#1428" class="Function">Reflexive</a> <a id="5261" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="5265" href="Data.Nat.Properties.html#5242" class="Function">≤-refl</a> <a id="5272" class="Symbol">=</a> <a id="5274" href="Data.Nat.Properties.html#5136" class="Function">≤-reflexive</a> <a id="5286" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="≤-antisym"></a><a id="5292" href="Data.Nat.Properties.html#5292" class="Function">≤-antisym</a> <a id="5302" class="Symbol">:</a> <a id="5304" href="Relation.Binary.Definitions.html#2319" class="Function">Antisymmetric</a> <a id="5318" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a> <a id="5322" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="5326" href="Data.Nat.Properties.html#5292" class="Function">≤-antisym</a> <a id="5336" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="5346" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="5356" class="Symbol">=</a> <a id="5358" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="5363" href="Data.Nat.Properties.html#5292" class="Function">≤-antisym</a> <a id="5373" class="Symbol">(</a><a id="5374" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="5378" href="Data.Nat.Properties.html#5378" class="Bound">m≤n</a><a id="5381" class="Symbol">)</a> <a id="5383" class="Symbol">(</a><a id="5384" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="5388" href="Data.Nat.Properties.html#5388" class="Bound">n≤m</a><a id="5391" class="Symbol">)</a> <a id="5393" class="Symbol">=</a> <a id="5395" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="5400" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="5404" class="Symbol">(</a><a id="5405" href="Data.Nat.Properties.html#5292" class="Function">≤-antisym</a> <a id="5415" href="Data.Nat.Properties.html#5378" class="Bound">m≤n</a> <a id="5419" href="Data.Nat.Properties.html#5388" class="Bound">n≤m</a><a id="5422" class="Symbol">)</a>
<a id="≤-trans"></a><a id="5425" href="Data.Nat.Properties.html#5425" class="Function">≤-trans</a> <a id="5433" class="Symbol">:</a> <a id="5435" href="Relation.Binary.Definitions.html#2103" class="Function">Transitive</a> <a id="5446" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="5450" href="Data.Nat.Properties.html#5425" class="Function">≤-trans</a> <a id="5458" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="5468" class="Symbol">_</a> <a id="5478" class="Symbol">=</a> <a id="5480" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="5484" href="Data.Nat.Properties.html#5425" class="Function">≤-trans</a> <a id="5492" class="Symbol">(</a><a id="5493" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="5497" href="Data.Nat.Properties.html#5497" class="Bound">m≤n</a><a id="5500" class="Symbol">)</a> <a id="5502" class="Symbol">(</a><a id="5503" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="5507" href="Data.Nat.Properties.html#5507" class="Bound">n≤o</a><a id="5510" class="Symbol">)</a> <a id="5512" class="Symbol">=</a> <a id="5514" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="5518" class="Symbol">(</a><a id="5519" href="Data.Nat.Properties.html#5425" class="Function">≤-trans</a> <a id="5527" href="Data.Nat.Properties.html#5497" class="Bound">m≤n</a> <a id="5531" href="Data.Nat.Properties.html#5507" class="Bound">n≤o</a><a id="5534" class="Symbol">)</a>
<a id="≤-total"></a><a id="5537" href="Data.Nat.Properties.html#5537" class="Function">≤-total</a> <a id="5545" class="Symbol">:</a> <a id="5547" href="Relation.Binary.Definitions.html#2910" class="Function">Total</a> <a id="5553" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="5557" href="Data.Nat.Properties.html#5537" class="Function">≤-total</a> <a id="5565" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="5573" class="Symbol">_</a> <a id="5581" class="Symbol">=</a> <a id="5583" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a> <a id="5588" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="5592" href="Data.Nat.Properties.html#5537" class="CatchallClause Function">≤-total</a><a id="5599" class="CatchallClause"> </a><a id="5600" class="CatchallClause Symbol">_</a><a id="5601" class="CatchallClause"> </a><a id="5608" href="Agda.Builtin.Nat.html#221" class="CatchallClause InductiveConstructor">zero</a> <a id="5616" class="Symbol">=</a> <a id="5618" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a> <a id="5623" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="5627" href="Data.Nat.Properties.html#5537" class="Function">≤-total</a> <a id="5635" class="Symbol">(</a><a id="5636" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="5640" href="Data.Nat.Properties.html#5640" class="Bound">m</a><a id="5641" class="Symbol">)</a> <a id="5643" class="Symbol">(</a><a id="5644" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="5648" href="Data.Nat.Properties.html#5648" class="Bound">n</a><a id="5649" class="Symbol">)</a> <a id="5651" class="Symbol">=</a> <a id="5653" href="Data.Sum.Base.html#1253" class="Function">Sum.map</a> <a id="5661" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="5665" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="5669" class="Symbol">(</a><a id="5670" href="Data.Nat.Properties.html#5537" class="Function">≤-total</a> <a id="5678" href="Data.Nat.Properties.html#5640" class="Bound">m</a> <a id="5680" href="Data.Nat.Properties.html#5648" class="Bound">n</a><a id="5681" class="Symbol">)</a>
<a id="≤-irrelevant"></a><a id="5684" href="Data.Nat.Properties.html#5684" class="Function">≤-irrelevant</a> <a id="5697" class="Symbol">:</a> <a id="5699" href="Relation.Binary.Definitions.html#6651" class="Function">Irrelevant</a> <a id="5710" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="5714" href="Data.Nat.Properties.html#5684" class="Function">≤-irrelevant</a> <a id="5727" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="5738" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="5749" class="Symbol">=</a> <a id="5751" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="5756" href="Data.Nat.Properties.html#5684" class="Function">≤-irrelevant</a> <a id="5769" class="Symbol">(</a><a id="5770" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="5774" href="Data.Nat.Properties.html#5774" class="Bound">m≤n₁</a><a id="5778" class="Symbol">)</a> <a id="5780" class="Symbol">(</a><a id="5781" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="5785" href="Data.Nat.Properties.html#5785" class="Bound">m≤n₂</a><a id="5789" class="Symbol">)</a> <a id="5791" class="Symbol">=</a> <a id="5793" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="5798" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="5802" class="Symbol">(</a><a id="5803" href="Data.Nat.Properties.html#5684" class="Function">≤-irrelevant</a> <a id="5816" href="Data.Nat.Properties.html#5774" class="Bound">m≤n₁</a> <a id="5821" href="Data.Nat.Properties.html#5785" class="Bound">m≤n₂</a><a id="5825" class="Symbol">)</a>
<a id="5828" class="Comment">-- NB: we use the builtin function `_&lt;ᵇ_` here so that the function</a>
<a id="5896" class="Comment">-- quickly decides whether to return `yes` or `no`. It still takes</a>
<a id="5963" class="Comment">-- a linear amount of time to generate the proof if it is inspected.</a>
<a id="6032" class="Comment">-- We expect the main benefit to be visible in compiled code as the</a>
<a id="6100" class="Comment">-- backend erases proofs.</a>
<a id="6127" class="Keyword">infix</a> <a id="6133" class="Number">4</a> <a id="6135" href="Data.Nat.Properties.html#6146" class="Function Operator">_≤?_</a> <a id="6140" href="Data.Nat.Properties.html#6212" class="Function Operator">_≥?_</a>
<a id="_≤?_"></a><a id="6146" href="Data.Nat.Properties.html#6146" class="Function Operator">_≤?_</a> <a id="6151" class="Symbol">:</a> <a id="6153" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="6163" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="6167" href="Data.Nat.Properties.html#6167" class="Bound">m</a> <a id="6169" href="Data.Nat.Properties.html#6146" class="Function Operator">≤?</a> <a id="6172" href="Data.Nat.Properties.html#6172" class="Bound">n</a> <a id="6174" class="Symbol">=</a> <a id="6176" href="Relation.Nullary.Decidable.Core.html#4901" class="Function">map</a> <a id="6181" class="Symbol">(</a><a id="6182" href="Data.Nat.Properties.html#4588" class="Function">≤ᵇ⇒≤</a> <a id="6187" href="Data.Nat.Properties.html#6167" class="Bound">m</a> <a id="6189" href="Data.Nat.Properties.html#6172" class="Bound">n</a><a id="6190" class="Symbol">)</a> <a id="6192" href="Data.Nat.Properties.html#4682" class="Function">≤⇒≤ᵇ</a> <a id="6197" class="Symbol">(</a><a id="6198" href="Relation.Nullary.Decidable.Core.html#2465" class="Function">T?</a> <a id="6201" class="Symbol">(</a><a id="6202" href="Data.Nat.Properties.html#6167" class="Bound">m</a> <a id="6204" href="Data.Nat.Base.html#1477" class="Function Operator">≤ᵇ</a> <a id="6207" href="Data.Nat.Properties.html#6172" class="Bound">n</a><a id="6208" class="Symbol">))</a>
<a id="_≥?_"></a><a id="6212" href="Data.Nat.Properties.html#6212" class="Function Operator">_≥?_</a> <a id="6217" class="Symbol">:</a> <a id="6219" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="6229" href="Data.Nat.Base.html#2259" class="Function Operator">_≥_</a>
<a id="6233" href="Data.Nat.Properties.html#6212" class="Function Operator">_≥?_</a> <a id="6238" class="Symbol">=</a> <a id="6240" href="Function.Base.html#1638" class="Function">flip</a> <a id="6245" href="Data.Nat.Properties.html#6146" class="Function Operator">_≤?_</a>
<a id="6251" class="Comment">------------------------------------------------------------------------</a>
<a id="6324" class="Comment">-- Structures</a>
<a id="≤-isPreorder"></a><a id="6339" href="Data.Nat.Properties.html#6339" class="Function">≤-isPreorder</a> <a id="6352" class="Symbol">:</a> <a id="6354" href="Relation.Binary.Structures.html#2191" class="Record">IsPreorder</a> <a id="6365" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a> <a id="6369" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="6373" href="Data.Nat.Properties.html#6339" class="Function">≤-isPreorder</a> <a id="6386" class="Symbol">=</a> <a id="6388" class="Keyword">record</a>
<a id="6397" class="Symbol">{</a> <a id="6399" href="Relation.Binary.Structures.html#2256" class="Field">isEquivalence</a> <a id="6413" class="Symbol">=</a> <a id="6415" href="Relation.Binary.PropositionalEquality.Properties.html#5422" class="Function">isEquivalence</a>
<a id="6431" class="Symbol">;</a> <a id="6433" href="Relation.Binary.Structures.html#2359" class="Field">reflexive</a> <a id="6447" class="Symbol">=</a> <a id="6449" href="Data.Nat.Properties.html#5136" class="Function">≤-reflexive</a>
<a id="6463" class="Symbol">;</a> <a id="6465" href="Relation.Binary.Structures.html#2389" class="Field">trans</a> <a id="6479" class="Symbol">=</a> <a id="6481" href="Data.Nat.Properties.html#5425" class="Function">≤-trans</a>
<a id="6491" class="Symbol">}</a>
<a id="≤-isTotalPreorder"></a><a id="6494" href="Data.Nat.Properties.html#6494" class="Function">≤-isTotalPreorder</a> <a id="6512" class="Symbol">:</a> <a id="6514" href="Relation.Binary.Structures.html#3186" class="Record">IsTotalPreorder</a> <a id="6530" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a> <a id="6534" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="6538" href="Data.Nat.Properties.html#6494" class="Function">≤-isTotalPreorder</a> <a id="6556" class="Symbol">=</a> <a id="6558" class="Keyword">record</a>
<a id="6567" class="Symbol">{</a> <a id="6569" href="Relation.Binary.Structures.html#3256" class="Field">isPreorder</a> <a id="6580" class="Symbol">=</a> <a id="6582" href="Data.Nat.Properties.html#6339" class="Function">≤-isPreorder</a>
<a id="6597" class="Symbol">;</a> <a id="6599" href="Relation.Binary.Structures.html#3288" class="Field">total</a> <a id="6610" class="Symbol">=</a> <a id="6612" href="Data.Nat.Properties.html#5537" class="Function">≤-total</a>
<a id="6622" class="Symbol">}</a>
<a id="≤-isPartialOrder"></a><a id="6625" href="Data.Nat.Properties.html#6625" class="Function">≤-isPartialOrder</a> <a id="6642" class="Symbol">:</a> <a id="6644" href="Relation.Binary.Structures.html#3522" class="Record">IsPartialOrder</a> <a id="6659" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a> <a id="6663" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="6667" href="Data.Nat.Properties.html#6625" class="Function">≤-isPartialOrder</a> <a id="6684" class="Symbol">=</a> <a id="6686" class="Keyword">record</a>
<a id="6695" class="Symbol">{</a> <a id="6697" href="Relation.Binary.Structures.html#3591" class="Field">isPreorder</a> <a id="6708" class="Symbol">=</a> <a id="6710" href="Data.Nat.Properties.html#6339" class="Function">≤-isPreorder</a>
<a id="6725" class="Symbol">;</a> <a id="6727" href="Relation.Binary.Structures.html#3623" class="Field">antisym</a> <a id="6738" class="Symbol">=</a> <a id="6740" href="Data.Nat.Properties.html#5292" class="Function">≤-antisym</a>
<a id="6752" class="Symbol">}</a>
<a id="≤-isTotalOrder"></a><a id="6755" href="Data.Nat.Properties.html#6755" class="Function">≤-isTotalOrder</a> <a id="6770" class="Symbol">:</a> <a id="6772" href="Relation.Binary.Structures.html#5508" class="Record">IsTotalOrder</a> <a id="6785" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a> <a id="6789" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="6793" href="Data.Nat.Properties.html#6755" class="Function">≤-isTotalOrder</a> <a id="6808" class="Symbol">=</a> <a id="6810" class="Keyword">record</a>
<a id="6819" class="Symbol">{</a> <a id="6821" href="Relation.Binary.Structures.html#5575" class="Field">isPartialOrder</a> <a id="6836" class="Symbol">=</a> <a id="6838" href="Data.Nat.Properties.html#6625" class="Function">≤-isPartialOrder</a>
<a id="6857" class="Symbol">;</a> <a id="6859" href="Relation.Binary.Structures.html#5615" class="Field">total</a> <a id="6874" class="Symbol">=</a> <a id="6876" href="Data.Nat.Properties.html#5537" class="Function">≤-total</a>
<a id="6886" class="Symbol">}</a>
<a id="≤-isDecTotalOrder"></a><a id="6889" href="Data.Nat.Properties.html#6889" class="Function">≤-isDecTotalOrder</a> <a id="6907" class="Symbol">:</a> <a id="6909" href="Relation.Binary.Structures.html#5825" class="Record">IsDecTotalOrder</a> <a id="6925" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a> <a id="6929" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="6933" href="Data.Nat.Properties.html#6889" class="Function">≤-isDecTotalOrder</a> <a id="6951" class="Symbol">=</a> <a id="6953" class="Keyword">record</a>
<a id="6962" class="Symbol">{</a> <a id="6964" href="Relation.Binary.Structures.html#5914" class="Field">isTotalOrder</a> <a id="6977" class="Symbol">=</a> <a id="6979" href="Data.Nat.Properties.html#6755" class="Function">≤-isTotalOrder</a>
<a id="6996" class="Symbol">;</a> <a id="6998" href="Relation.Binary.Structures.html#5950" class="Field Operator">_≟_</a> <a id="7011" class="Symbol">=</a> <a id="7013" href="Data.Nat.Properties.html#3311" class="Function Operator">_≟_</a>
<a id="7019" class="Symbol">;</a> <a id="7021" href="Relation.Binary.Structures.html#5983" class="Field Operator">_≤?_</a> <a id="7034" class="Symbol">=</a> <a id="7036" href="Data.Nat.Properties.html#6146" class="Function Operator">_≤?_</a>
<a id="7043" class="Symbol">}</a>
<a id="7046" class="Comment">------------------------------------------------------------------------</a>
<a id="7119" class="Comment">-- Bundles</a>
<a id="≤-preorder"></a><a id="7131" href="Data.Nat.Properties.html#7131" class="Function">≤-preorder</a> <a id="7142" class="Symbol">:</a> <a id="7144" href="Relation.Binary.Bundles.html#2121" class="Record">Preorder</a> <a id="7153" href="Level.html#521" class="Function">0</a> <a id="7156" href="Level.html#521" class="Function">0</a> <a id="7159" href="Level.html#521" class="Function">0</a>
<a id="7162" href="Data.Nat.Properties.html#7131" class="Function">≤-preorder</a> <a id="7173" class="Symbol">=</a> <a id="7175" class="Keyword">record</a>
<a id="7184" class="Symbol">{</a> <a id="7186" href="Relation.Binary.Bundles.html#2334" class="Field">isPreorder</a> <a id="7197" class="Symbol">=</a> <a id="7199" href="Data.Nat.Properties.html#6339" class="Function">≤-isPreorder</a>
<a id="7214" class="Symbol">}</a>
<a id="≤-totalPreorder"></a><a id="7217" href="Data.Nat.Properties.html#7217" class="Function">≤-totalPreorder</a> <a id="7233" class="Symbol">:</a> <a id="7235" href="Relation.Binary.Bundles.html#2842" class="Record">TotalPreorder</a> <a id="7249" href="Level.html#521" class="Function">0</a> <a id="7252" href="Level.html#521" class="Function">0</a> <a id="7255" href="Level.html#521" class="Function">0</a>
<a id="7258" href="Data.Nat.Properties.html#7217" class="Function">≤-totalPreorder</a> <a id="7274" class="Symbol">=</a> <a id="7276" class="Keyword">record</a>
<a id="7285" class="Symbol">{</a> <a id="7287" href="Relation.Binary.Bundles.html#3075" class="Field">isTotalPreorder</a> <a id="7303" class="Symbol">=</a> <a id="7305" href="Data.Nat.Properties.html#6494" class="Function">≤-isTotalPreorder</a>
<a id="7325" class="Symbol">}</a>
<a id="≤-poset"></a><a id="7328" href="Data.Nat.Properties.html#7328" class="Function">≤-poset</a> <a id="7336" class="Symbol">:</a> <a id="7338" href="Relation.Binary.Bundles.html#3530" class="Record">Poset</a> <a id="7344" href="Level.html#521" class="Function">0</a> <a id="7347" href="Level.html#521" class="Function">0</a> <a id="7350" href="Level.html#521" class="Function">0</a>
<a id="7353" href="Data.Nat.Properties.html#7328" class="Function">≤-poset</a> <a id="7361" class="Symbol">=</a> <a id="7363" class="Keyword">record</a>
<a id="7372" class="Symbol">{</a> <a id="7374" href="Relation.Binary.Bundles.html#3705" class="Field">isPartialOrder</a> <a id="7389" class="Symbol">=</a> <a id="7391" href="Data.Nat.Properties.html#6625" class="Function">≤-isPartialOrder</a>
<a id="7410" class="Symbol">}</a>
<a id="≤-totalOrder"></a><a id="7413" href="Data.Nat.Properties.html#7413" class="Function">≤-totalOrder</a> <a id="7426" class="Symbol">:</a> <a id="7428" href="Relation.Binary.Bundles.html#6458" class="Record">TotalOrder</a> <a id="7439" href="Level.html#521" class="Function">0</a> <a id="7442" href="Level.html#521" class="Function">0</a> <a id="7445" href="Level.html#521" class="Function">0</a>
<a id="7448" href="Data.Nat.Properties.html#7413" class="Function">≤-totalOrder</a> <a id="7461" class="Symbol">=</a> <a id="7463" class="Keyword">record</a>
<a id="7472" class="Symbol">{</a> <a id="7474" href="Relation.Binary.Bundles.html#6632" class="Field">isTotalOrder</a> <a id="7487" class="Symbol">=</a> <a id="7489" href="Data.Nat.Properties.html#6755" class="Function">≤-isTotalOrder</a>
<a id="7506" class="Symbol">}</a>
<a id="≤-decTotalOrder"></a><a id="7509" href="Data.Nat.Properties.html#7509" class="Function">≤-decTotalOrder</a> <a id="7525" class="Symbol">:</a> <a id="7527" href="Relation.Binary.Bundles.html#7041" class="Record">DecTotalOrder</a> <a id="7541" href="Level.html#521" class="Function">0</a> <a id="7544" href="Level.html#521" class="Function">0</a> <a id="7547" href="Level.html#521" class="Function">0</a>
<a id="7550" href="Data.Nat.Properties.html#7509" class="Function">≤-decTotalOrder</a> <a id="7566" class="Symbol">=</a> <a id="7568" class="Keyword">record</a>
<a id="7577" class="Symbol">{</a> <a id="7579" href="Relation.Binary.Bundles.html#7227" class="Field">isDecTotalOrder</a> <a id="7595" class="Symbol">=</a> <a id="7597" href="Data.Nat.Properties.html#6889" class="Function">≤-isDecTotalOrder</a>
<a id="7617" class="Symbol">}</a>
<a id="7620" class="Comment">------------------------------------------------------------------------</a>
<a id="7693" class="Comment">-- Other properties of _≤_</a>
<a id="s≤s-injective"></a><a id="7721" href="Data.Nat.Properties.html#7721" class="Function">s≤s-injective</a> <a id="7735" class="Symbol">:</a> <a id="7737" class="Symbol">{</a><a id="7738" href="Data.Nat.Properties.html#7738" class="Bound">p</a> <a id="7740" href="Data.Nat.Properties.html#7740" class="Bound">q</a> <a id="7742" class="Symbol">:</a> <a id="7744" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="7746" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="7748" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a><a id="7749" class="Symbol">}</a> <a id="7751" class="Symbol"></a> <a id="7753" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="7757" href="Data.Nat.Properties.html#7738" class="Bound">p</a> <a id="7759" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="7761" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="7765" href="Data.Nat.Properties.html#7740" class="Bound">q</a> <a id="7767" class="Symbol"></a> <a id="7769" href="Data.Nat.Properties.html#7738" class="Bound">p</a> <a id="7771" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="7773" href="Data.Nat.Properties.html#7740" class="Bound">q</a>
<a id="7775" href="Data.Nat.Properties.html#7721" class="Function">s≤s-injective</a> <a id="7789" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a> <a id="7794" class="Symbol">=</a> <a id="7796" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="≤-pred"></a><a id="7802" href="Data.Nat.Properties.html#7802" class="Function">≤-pred</a> <a id="7809" class="Symbol">:</a> <a id="7811" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="7815" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="7817" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="7819" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="7823" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="7825" class="Symbol"></a> <a id="7827" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="7829" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="7831" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="7833" href="Data.Nat.Properties.html#7802" class="Function">≤-pred</a> <a id="7840" class="Symbol">=</a> <a id="7842" href="Data.Nat.Base.html#2022" class="Function">s≤s⁻¹</a>
<a id="m≤n⇒m≤1+n"></a><a id="7849" href="Data.Nat.Properties.html#7849" class="Function">m≤n⇒m≤1+n</a> <a id="7859" class="Symbol">:</a> <a id="7861" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="7863" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="7865" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="7867" class="Symbol"></a> <a id="7869" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="7871" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="7873" class="Number">1</a> <a id="7875" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="7877" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="7879" href="Data.Nat.Properties.html#7849" class="Function">m≤n⇒m≤1+n</a> <a id="7889" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="7899" class="Symbol">=</a> <a id="7901" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="7905" href="Data.Nat.Properties.html#7849" class="Function">m≤n⇒m≤1+n</a> <a id="7915" class="Symbol">(</a><a id="7916" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="7920" href="Data.Nat.Properties.html#7920" class="Bound">m≤n</a><a id="7923" class="Symbol">)</a> <a id="7925" class="Symbol">=</a> <a id="7927" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="7931" class="Symbol">(</a><a id="7932" href="Data.Nat.Properties.html#7849" class="Function">m≤n⇒m≤1+n</a> <a id="7942" href="Data.Nat.Properties.html#7920" class="Bound">m≤n</a><a id="7945" class="Symbol">)</a>
<a id="n≤1+n"></a><a id="7948" href="Data.Nat.Properties.html#7948" class="Function">n≤1+n</a> <a id="7954" class="Symbol">:</a> <a id="7956" class="Symbol"></a> <a id="7958" href="Data.Nat.Properties.html#7958" class="Bound">n</a> <a id="7960" class="Symbol"></a> <a id="7962" href="Data.Nat.Properties.html#7958" class="Bound">n</a> <a id="7964" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="7966" class="Number">1</a> <a id="7968" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="7970" href="Data.Nat.Properties.html#7958" class="Bound">n</a>
<a id="7972" href="Data.Nat.Properties.html#7948" class="Function">n≤1+n</a> <a id="7978" class="Symbol">_</a> <a id="7980" class="Symbol">=</a> <a id="7982" href="Data.Nat.Properties.html#7849" class="Function">m≤n⇒m≤1+n</a> <a id="7992" href="Data.Nat.Properties.html#5242" class="Function">≤-refl</a>
<a id="1+n≰n"></a><a id="8000" href="Data.Nat.Properties.html#8000" class="Function">1+n≰n</a> <a id="8006" class="Symbol">:</a> <a id="8008" class="Number">1</a> <a id="8010" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="8012" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="8014" href="Data.Nat.Base.html#2319" class="Function Operator"></a> <a id="8016" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="8018" href="Data.Nat.Properties.html#8000" class="Function">1+n≰n</a> <a id="8024" class="Symbol">(</a><a id="8025" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="8029" href="Data.Nat.Properties.html#8029" class="Bound">1+n≤n</a><a id="8034" class="Symbol">)</a> <a id="8036" class="Symbol">=</a> <a id="8038" href="Data.Nat.Properties.html#8000" class="Function">1+n≰n</a> <a id="8044" href="Data.Nat.Properties.html#8029" class="Bound">1+n≤n</a>
<a id="n≤0⇒n≡0"></a><a id="8051" href="Data.Nat.Properties.html#8051" class="Function">n≤0⇒n≡0</a> <a id="8059" class="Symbol">:</a> <a id="8061" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="8063" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="8065" class="Number">0</a> <a id="8067" class="Symbol"></a> <a id="8069" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="8071" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="8073" class="Number">0</a>
<a id="8075" href="Data.Nat.Properties.html#8051" class="Function">n≤0⇒n≡0</a> <a id="8083" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="8087" class="Symbol">=</a> <a id="8089" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="n≤1⇒n≡0n≡1"></a><a id="8095" href="Data.Nat.Properties.html#8095" class="Function">n≤1⇒n≡0n≡1</a> <a id="8107" class="Symbol">:</a> <a id="8109" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="8111" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="8113" class="Number">1</a> <a id="8115" class="Symbol"></a> <a id="8117" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="8119" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="8121" class="Number">0</a> <a id="8123" href="Data.Sum.Base.html#625" class="Datatype Operator"></a> <a id="8125" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="8127" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="8129" class="Number">1</a>
<a id="8131" href="Data.Nat.Properties.html#8095" class="Function">n≤1⇒n≡0n≡1</a> <a id="8143" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="8153" class="Symbol">=</a> <a id="8155" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a> <a id="8160" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="8165" href="Data.Nat.Properties.html#8095" class="Function">n≤1⇒n≡0n≡1</a> <a id="8177" class="Symbol">(</a><a id="8178" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="8182" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a><a id="8185" class="Symbol">)</a> <a id="8187" class="Symbol">=</a> <a id="8189" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a> <a id="8194" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="8200" class="Comment">------------------------------------------------------------------------</a>
<a id="8273" class="Comment">-- Properties of _&lt;_</a>
<a id="8294" class="Comment">------------------------------------------------------------------------</a>
<a id="8368" class="Comment">-- Relationships between the various relations</a>
<a id="&lt;⇒≤"></a><a id="8416" href="Data.Nat.Properties.html#8416" class="Function">&lt;⇒≤</a> <a id="8420" class="Symbol">:</a> <a id="8422" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="8426" href="Relation.Binary.Core.html#1268" class="Function Operator"></a> <a id="8428" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="8432" href="Data.Nat.Properties.html#8416" class="Function">&lt;⇒≤</a> <a id="8436" href="Data.Nat.Base.html#1873" class="InductiveConstructor">z&lt;s</a> <a id="8454" class="Symbol">=</a> <a id="8456" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="8460" href="Data.Nat.Properties.html#8416" class="Function">&lt;⇒≤</a> <a id="8464" class="Symbol">(</a><a id="8465" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a> <a id="8469" href="Data.Nat.Properties.html#8469" class="Bound">m&lt;n</a><a id="8472" class="Symbol">@(</a><a id="8474" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="8478" class="Symbol">_))</a> <a id="8482" class="Symbol">=</a> <a id="8484" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="8488" class="Symbol">(</a><a id="8489" href="Data.Nat.Properties.html#8416" class="Function">&lt;⇒≤</a> <a id="8493" href="Data.Nat.Properties.html#8469" class="Bound">m&lt;n</a><a id="8496" class="Symbol">)</a>
<a id="&lt;⇒≢"></a><a id="8499" href="Data.Nat.Properties.html#8499" class="Function">&lt;⇒≢</a> <a id="8503" class="Symbol">:</a> <a id="8505" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="8509" href="Relation.Binary.Core.html#1268" class="Function Operator"></a> <a id="8511" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Function Operator">_≢_</a>
<a id="8515" href="Data.Nat.Properties.html#8499" class="Function">&lt;⇒≢</a> <a id="8519" href="Data.Nat.Properties.html#8519" class="Bound">m&lt;n</a> <a id="8523" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a> <a id="8528" class="Symbol">=</a> <a id="8530" href="Data.Nat.Properties.html#8000" class="Function">1+n≰n</a> <a id="8536" href="Data.Nat.Properties.html#8519" class="Bound">m&lt;n</a>
<a id="&gt;⇒≢"></a><a id="8541" href="Data.Nat.Properties.html#8541" class="Function">&gt;⇒≢</a> <a id="8545" class="Symbol">:</a> <a id="8547" href="Data.Nat.Base.html#2289" class="Function Operator">_&gt;_</a> <a id="8551" href="Relation.Binary.Core.html#1268" class="Function Operator"></a> <a id="8553" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Function Operator">_≢_</a>
<a id="8557" href="Data.Nat.Properties.html#8541" class="Function">&gt;⇒≢</a> <a id="8561" class="Symbol">=</a> <a id="8563" href="Relation.Binary.PropositionalEquality.Core.html#2329" class="Function">≢-sym</a> <a id="8569" href="Function.Base.html#1115" class="Function Operator"></a> <a id="8571" href="Data.Nat.Properties.html#8499" class="Function">&lt;⇒≢</a>
<a id="≤⇒≯"></a><a id="8576" href="Data.Nat.Properties.html#8576" class="Function">≤⇒≯</a> <a id="8580" class="Symbol">:</a> <a id="8582" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="8586" href="Relation.Binary.Core.html#1268" class="Function Operator"></a> <a id="8588" href="Data.Nat.Base.html#2415" class="Function Operator">_≯_</a>
<a id="8592" href="Data.Nat.Properties.html#8576" class="Function">≤⇒≯</a> <a id="8596" class="Symbol">(</a><a id="8597" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="8601" href="Data.Nat.Properties.html#8601" class="Bound">m≤n</a><a id="8604" class="Symbol">)</a> <a id="8606" class="Symbol">(</a><a id="8607" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="8611" href="Data.Nat.Properties.html#8611" class="Bound">n≤m</a><a id="8614" class="Symbol">)</a> <a id="8616" class="Symbol">=</a> <a id="8618" href="Data.Nat.Properties.html#8576" class="Function">≤⇒≯</a> <a id="8622" href="Data.Nat.Properties.html#8601" class="Bound">m≤n</a> <a id="8626" href="Data.Nat.Properties.html#8611" class="Bound">n≤m</a>
<a id="&lt;⇒≱"></a><a id="8631" href="Data.Nat.Properties.html#8631" class="Function">&lt;⇒≱</a> <a id="8635" class="Symbol">:</a> <a id="8637" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="8641" href="Relation.Binary.Core.html#1268" class="Function Operator"></a> <a id="8643" href="Data.Nat.Base.html#2383" class="Function Operator">_≱_</a>
<a id="8647" href="Data.Nat.Properties.html#8631" class="Function">&lt;⇒≱</a> <a id="8651" class="Symbol">(</a><a id="8652" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="8656" href="Data.Nat.Properties.html#8656" class="Bound">m+1≤n</a><a id="8661" class="Symbol">)</a> <a id="8663" class="Symbol">(</a><a id="8664" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="8668" href="Data.Nat.Properties.html#8668" class="Bound">n≤m</a><a id="8671" class="Symbol">)</a> <a id="8673" class="Symbol">=</a> <a id="8675" href="Data.Nat.Properties.html#8631" class="Function">&lt;⇒≱</a> <a id="8679" href="Data.Nat.Properties.html#8656" class="Bound">m+1≤n</a> <a id="8685" href="Data.Nat.Properties.html#8668" class="Bound">n≤m</a>
<a id="&lt;⇒≯"></a><a id="8690" href="Data.Nat.Properties.html#8690" class="Function">&lt;⇒≯</a> <a id="8694" class="Symbol">:</a> <a id="8696" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="8700" href="Relation.Binary.Core.html#1268" class="Function Operator"></a> <a id="8702" href="Data.Nat.Base.html#2415" class="Function Operator">_≯_</a>
<a id="8706" href="Data.Nat.Properties.html#8690" class="Function">&lt;⇒≯</a> <a id="8710" class="Symbol">(</a><a id="8711" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="8715" href="Data.Nat.Properties.html#8715" class="Bound">m&lt;n</a><a id="8718" class="Symbol">)</a> <a id="8720" class="Symbol">(</a><a id="8721" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="8725" href="Data.Nat.Properties.html#8725" class="Bound">n&lt;m</a><a id="8728" class="Symbol">)</a> <a id="8730" class="Symbol">=</a> <a id="8732" href="Data.Nat.Properties.html#8690" class="Function">&lt;⇒≯</a> <a id="8736" href="Data.Nat.Properties.html#8715" class="Bound">m&lt;n</a> <a id="8740" href="Data.Nat.Properties.html#8725" class="Bound">n&lt;m</a>
<a id="≰⇒≮"></a><a id="8745" href="Data.Nat.Properties.html#8745" class="Function">≰⇒≮</a> <a id="8749" class="Symbol">:</a> <a id="8751" href="Data.Nat.Base.html#2319" class="Function Operator">_≰_</a> <a id="8755" href="Relation.Binary.Core.html#1268" class="Function Operator"></a> <a id="8757" href="Data.Nat.Base.html#2351" class="Function Operator">_≮_</a>
<a id="8761" href="Data.Nat.Properties.html#8745" class="Function">≰⇒≮</a> <a id="8765" href="Data.Nat.Properties.html#8765" class="Bound">m≰n</a> <a id="8769" href="Data.Nat.Properties.html#8769" class="Bound">1+m≤n</a> <a id="8775" class="Symbol">=</a> <a id="8777" href="Data.Nat.Properties.html#8765" class="Bound">m≰n</a> <a id="8781" class="Symbol">(</a><a id="8782" href="Data.Nat.Properties.html#8416" class="Function">&lt;⇒≤</a> <a id="8786" href="Data.Nat.Properties.html#8769" class="Bound">1+m≤n</a><a id="8791" class="Symbol">)</a>
<a id="≰⇒&gt;"></a><a id="8794" href="Data.Nat.Properties.html#8794" class="Function">≰⇒&gt;</a> <a id="8798" class="Symbol">:</a> <a id="8800" href="Data.Nat.Base.html#2319" class="Function Operator">_≰_</a> <a id="8804" href="Relation.Binary.Core.html#1268" class="Function Operator"></a> <a id="8806" href="Data.Nat.Base.html#2289" class="Function Operator">_&gt;_</a>
<a id="8810" href="Data.Nat.Properties.html#8794" class="Function">≰⇒&gt;</a> <a id="8814" class="Symbol">{</a><a id="8815" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="8819" class="Symbol">}</a> <a id="8830" href="Data.Nat.Properties.html#8830" class="Bound">z≰n</a> <a id="8834" class="Symbol">=</a> <a id="8836" href="Relation.Nullary.Negation.Core.html#1226" class="Function">contradiction</a> <a id="8850" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="8854" href="Data.Nat.Properties.html#8830" class="Bound">z≰n</a>
<a id="8858" href="Data.Nat.Properties.html#8794" class="Function">≰⇒&gt;</a> <a id="8862" class="Symbol">{</a><a id="8863" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="8867" href="Data.Nat.Properties.html#8867" class="Bound">m</a><a id="8868" class="Symbol">}</a> <a id="8870" class="Symbol">{</a><a id="8871" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="8875" class="Symbol">}</a> <a id="8878" class="Symbol">_</a> <a id="8882" class="Symbol">=</a> <a id="8884" href="Data.Nat.Base.html#1873" class="InductiveConstructor">z&lt;s</a>
<a id="8888" href="Data.Nat.Properties.html#8794" class="Function">≰⇒&gt;</a> <a id="8892" class="Symbol">{</a><a id="8893" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="8897" href="Data.Nat.Properties.html#8897" class="Bound">m</a><a id="8898" class="Symbol">}</a> <a id="8900" class="Symbol">{</a><a id="8901" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="8905" href="Data.Nat.Properties.html#8905" class="Bound">n</a><a id="8906" class="Symbol">}</a> <a id="8908" href="Data.Nat.Properties.html#8908" class="Bound">m≰n</a> <a id="8912" class="Symbol">=</a> <a id="8914" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a> <a id="8918" class="Symbol">(</a><a id="8919" href="Data.Nat.Properties.html#8794" class="Function">≰⇒&gt;</a> <a id="8923" class="Symbol">(</a><a id="8924" href="Data.Nat.Properties.html#8908" class="Bound">m≰n</a> <a id="8928" href="Function.Base.html#1115" class="Function Operator"></a> <a id="8930" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a><a id="8933" class="Symbol">))</a>
<a id="≰⇒≥"></a><a id="8937" href="Data.Nat.Properties.html#8937" class="Function">≰⇒≥</a> <a id="8941" class="Symbol">:</a> <a id="8943" href="Data.Nat.Base.html#2319" class="Function Operator">_≰_</a> <a id="8947" href="Relation.Binary.Core.html#1268" class="Function Operator"></a> <a id="8949" href="Data.Nat.Base.html#2259" class="Function Operator">_≥_</a>
<a id="8953" href="Data.Nat.Properties.html#8937" class="Function">≰⇒≥</a> <a id="8957" class="Symbol">=</a> <a id="8959" href="Data.Nat.Properties.html#8416" class="Function">&lt;⇒≤</a> <a id="8963" href="Function.Base.html#1115" class="Function Operator"></a> <a id="8965" href="Data.Nat.Properties.html#8794" class="Function">≰⇒&gt;</a>
<a id="≮⇒≥"></a><a id="8970" href="Data.Nat.Properties.html#8970" class="Function">≮⇒≥</a> <a id="8974" class="Symbol">:</a> <a id="8976" href="Data.Nat.Base.html#2351" class="Function Operator">_≮_</a> <a id="8980" href="Relation.Binary.Core.html#1268" class="Function Operator"></a> <a id="8982" href="Data.Nat.Base.html#2259" class="Function Operator">_≥_</a>
<a id="8986" href="Data.Nat.Properties.html#8970" class="Function">≮⇒≥</a> <a id="8990" class="Symbol">{_}</a> <a id="8998" class="Symbol">{</a><a id="8999" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="9003" class="Symbol">}</a> <a id="9006" class="Symbol">_</a> <a id="9014" class="Symbol">=</a> <a id="9016" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="9020" href="Data.Nat.Properties.html#8970" class="Function">≮⇒≥</a> <a id="9024" class="Symbol">{</a><a id="9025" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="9029" class="Symbol">}</a> <a id="9032" class="Symbol">{</a><a id="9033" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="9037" href="Data.Nat.Properties.html#9037" class="Bound">j</a><a id="9038" class="Symbol">}</a> <a id="9040" href="Data.Nat.Properties.html#9040" class="Bound">1≮j+1</a> <a id="9048" class="Symbol">=</a> <a id="9050" href="Relation.Nullary.Negation.Core.html#1226" class="Function">contradiction</a> <a id="9064" href="Data.Nat.Base.html#1873" class="InductiveConstructor">z&lt;s</a> <a id="9068" href="Data.Nat.Properties.html#9040" class="Bound">1≮j+1</a>
<a id="9074" href="Data.Nat.Properties.html#8970" class="Function">≮⇒≥</a> <a id="9078" class="Symbol">{</a><a id="9079" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="9083" href="Data.Nat.Properties.html#9083" class="Bound">i</a><a id="9084" class="Symbol">}</a> <a id="9086" class="Symbol">{</a><a id="9087" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="9091" href="Data.Nat.Properties.html#9091" class="Bound">j</a><a id="9092" class="Symbol">}</a> <a id="9094" href="Data.Nat.Properties.html#9094" class="Bound">i+1≮j+1</a> <a id="9102" class="Symbol">=</a> <a id="9104" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="9108" class="Symbol">(</a><a id="9109" href="Data.Nat.Properties.html#8970" class="Function">≮⇒≥</a> <a id="9113" class="Symbol">(</a><a id="9114" href="Data.Nat.Properties.html#9094" class="Bound">i+1≮j+1</a> <a id="9122" href="Function.Base.html#1115" class="Function Operator"></a> <a id="9124" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a><a id="9127" class="Symbol">))</a>
<a id="≤∧≢⇒&lt;"></a><a id="9131" href="Data.Nat.Properties.html#9131" class="Function">≤∧≢⇒&lt;</a> <a id="9137" class="Symbol">:</a> <a id="9139" class="Symbol"></a> <a id="9141" class="Symbol">{</a><a id="9142" href="Data.Nat.Properties.html#9142" class="Bound">m</a> <a id="9144" href="Data.Nat.Properties.html#9144" class="Bound">n</a><a id="9145" class="Symbol">}</a> <a id="9147" class="Symbol"></a> <a id="9149" href="Data.Nat.Properties.html#9142" class="Bound">m</a> <a id="9151" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="9153" href="Data.Nat.Properties.html#9144" class="Bound">n</a> <a id="9155" class="Symbol"></a> <a id="9157" href="Data.Nat.Properties.html#9142" class="Bound">m</a> <a id="9159" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Function Operator"></a> <a id="9161" href="Data.Nat.Properties.html#9144" class="Bound">n</a> <a id="9163" class="Symbol"></a> <a id="9165" href="Data.Nat.Properties.html#9142" class="Bound">m</a> <a id="9167" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="9169" href="Data.Nat.Properties.html#9144" class="Bound">n</a>
<a id="9171" href="Data.Nat.Properties.html#9131" class="Function">≤∧≢⇒&lt;</a> <a id="9177" class="Symbol">{_}</a> <a id="9181" class="Symbol">{</a><a id="9182" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="9186" class="Symbol">}</a> <a id="9189" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="9199" href="Data.Nat.Properties.html#9199" class="Bound">m≢n</a> <a id="9207" class="Symbol">=</a> <a id="9209" href="Relation.Nullary.Negation.Core.html#1226" class="Function">contradiction</a> <a id="9223" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a> <a id="9228" href="Data.Nat.Properties.html#9199" class="Bound">m≢n</a>
<a id="9232" href="Data.Nat.Properties.html#9131" class="Function">≤∧≢⇒&lt;</a> <a id="9238" class="Symbol">{_}</a> <a id="9242" class="Symbol">{</a><a id="9243" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="9247" href="Data.Nat.Properties.html#9247" class="Bound">n</a><a id="9248" class="Symbol">}</a> <a id="9250" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="9260" href="Data.Nat.Properties.html#9260" class="Bound">m≢n</a> <a id="9268" class="Symbol">=</a> <a id="9270" href="Data.Nat.Base.html#1873" class="InductiveConstructor">z&lt;s</a>
<a id="9274" href="Data.Nat.Properties.html#9131" class="Function">≤∧≢⇒&lt;</a> <a id="9280" class="Symbol">{_}</a> <a id="9284" class="Symbol">{</a><a id="9285" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="9289" href="Data.Nat.Properties.html#9289" class="Bound">n</a><a id="9290" class="Symbol">}</a> <a id="9292" class="Symbol">(</a><a id="9293" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="9297" href="Data.Nat.Properties.html#9297" class="Bound">m≤n</a><a id="9300" class="Symbol">)</a> <a id="9302" href="Data.Nat.Properties.html#9302" class="Bound">1+m≢1+n</a> <a id="9310" class="Symbol">=</a>
<a id="9314" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a> <a id="9318" class="Symbol">(</a><a id="9319" href="Data.Nat.Properties.html#9131" class="Function">≤∧≢⇒&lt;</a> <a id="9325" href="Data.Nat.Properties.html#9297" class="Bound">m≤n</a> <a id="9329" class="Symbol">(</a><a id="9330" href="Data.Nat.Properties.html#9302" class="Bound">1+m≢1+n</a> <a id="9338" href="Function.Base.html#1115" class="Function Operator"></a> <a id="9340" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="9345" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a><a id="9348" class="Symbol">))</a>
<a id="≤∧≮⇒≡"></a><a id="9352" href="Data.Nat.Properties.html#9352" class="Function">≤∧≮⇒≡</a> <a id="9358" class="Symbol">:</a> <a id="9360" class="Symbol"></a> <a id="9362" class="Symbol">{</a><a id="9363" href="Data.Nat.Properties.html#9363" class="Bound">m</a> <a id="9365" href="Data.Nat.Properties.html#9365" class="Bound">n</a><a id="9366" class="Symbol">}</a> <a id="9368" class="Symbol"></a> <a id="9370" href="Data.Nat.Properties.html#9363" class="Bound">m</a> <a id="9372" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="9374" href="Data.Nat.Properties.html#9365" class="Bound">n</a> <a id="9376" class="Symbol"></a> <a id="9378" href="Data.Nat.Properties.html#9363" class="Bound">m</a> <a id="9380" href="Data.Nat.Base.html#2351" class="Function Operator"></a> <a id="9382" href="Data.Nat.Properties.html#9365" class="Bound">n</a> <a id="9384" class="Symbol"></a> <a id="9386" href="Data.Nat.Properties.html#9363" class="Bound">m</a> <a id="9388" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="9390" href="Data.Nat.Properties.html#9365" class="Bound">n</a>
<a id="9392" href="Data.Nat.Properties.html#9352" class="Function">≤∧≮⇒≡</a> <a id="9398" href="Data.Nat.Properties.html#9398" class="Bound">m≤n</a> <a id="9402" href="Data.Nat.Properties.html#9402" class="Bound">m≮n</a> <a id="9406" class="Symbol">=</a> <a id="9408" href="Data.Nat.Properties.html#5292" class="Function">≤-antisym</a> <a id="9418" href="Data.Nat.Properties.html#9398" class="Bound">m≤n</a> <a id="9422" class="Symbol">(</a><a id="9423" href="Data.Nat.Properties.html#8970" class="Function">≮⇒≥</a> <a id="9427" href="Data.Nat.Properties.html#9402" class="Bound">m≮n</a><a id="9430" class="Symbol">)</a>
<a id="≤-&lt;-connex"></a><a id="9433" href="Data.Nat.Properties.html#9433" class="Function">≤-&lt;-connex</a> <a id="9444" class="Symbol">:</a> <a id="9446" href="Relation.Binary.Definitions.html#2819" class="Function">Connex</a> <a id="9453" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="9457" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a>
<a id="9461" href="Data.Nat.Properties.html#9433" class="Function">≤-&lt;-connex</a> <a id="9472" href="Data.Nat.Properties.html#9472" class="Bound">m</a> <a id="9474" href="Data.Nat.Properties.html#9474" class="Bound">n</a> <a id="9476" class="Keyword">with</a> <a id="9481" href="Data.Nat.Properties.html#9472" class="Bound">m</a> <a id="9483" href="Data.Nat.Properties.html#6146" class="Function Operator">≤?</a> <a id="9486" href="Data.Nat.Properties.html#9474" class="Bound">n</a>
<a id="9488" class="Symbol">...</a> <a id="9492" class="Symbol">|</a> <a id="9494" href="Relation.Nullary.Decidable.Core.html#1618" class="InductiveConstructor">yes</a> <a id="9498" href="Data.Nat.Properties.html#9498" class="Bound">m≤n</a> <a id="9502" class="Symbol">=</a> <a id="9504" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a> <a id="9509" href="Data.Nat.Properties.html#9498" class="Bound">m≤n</a>
<a id="9513" class="Symbol">...</a> <a id="9517" class="Symbol">|</a> <a id="9519" href="Relation.Nullary.Decidable.Core.html#1655" class="InductiveConstructor">no</a> <a id="9522" href="Data.Nat.Properties.html#9522" class="Bound">¬m≤n</a> <a id="9527" class="Symbol">=</a> <a id="9529" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a> <a id="9534" class="Symbol">(</a><a id="9535" href="Data.Nat.Properties.html#8794" class="Function">≰⇒&gt;</a> <a id="9539" href="Data.Nat.Properties.html#9522" class="Bound">¬m≤n</a><a id="9543" class="Symbol">)</a>
<a id="≥-&gt;-connex"></a><a id="9546" href="Data.Nat.Properties.html#9546" class="Function">≥-&gt;-connex</a> <a id="9557" class="Symbol">:</a> <a id="9559" href="Relation.Binary.Definitions.html#2819" class="Function">Connex</a> <a id="9566" href="Data.Nat.Base.html#2259" class="Function Operator">_≥_</a> <a id="9570" href="Data.Nat.Base.html#2289" class="Function Operator">_&gt;_</a>
<a id="9574" href="Data.Nat.Properties.html#9546" class="Function">≥-&gt;-connex</a> <a id="9585" class="Symbol">=</a> <a id="9587" href="Function.Base.html#1638" class="Function">flip</a> <a id="9592" href="Data.Nat.Properties.html#9433" class="Function">≤-&lt;-connex</a>
<a id="&lt;-≤-connex"></a><a id="9604" href="Data.Nat.Properties.html#9604" class="Function">&lt;-≤-connex</a> <a id="9615" class="Symbol">:</a> <a id="9617" href="Relation.Binary.Definitions.html#2819" class="Function">Connex</a> <a id="9624" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="9628" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="9632" href="Data.Nat.Properties.html#9604" class="Function">&lt;-≤-connex</a> <a id="9643" class="Symbol">=</a> <a id="9645" href="Relation.Binary.Consequences.html#7360" class="Function">flip-Connex</a> <a id="9657" href="Data.Nat.Properties.html#9433" class="Function">≤-&lt;-connex</a>
<a id="&gt;-≥-connex"></a><a id="9669" href="Data.Nat.Properties.html#9669" class="Function">&gt;-≥-connex</a> <a id="9680" class="Symbol">:</a> <a id="9682" href="Relation.Binary.Definitions.html#2819" class="Function">Connex</a> <a id="9689" href="Data.Nat.Base.html#2289" class="Function Operator">_&gt;_</a> <a id="9693" href="Data.Nat.Base.html#2259" class="Function Operator">_≥_</a>
<a id="9697" href="Data.Nat.Properties.html#9669" class="Function">&gt;-≥-connex</a> <a id="9708" class="Symbol">=</a> <a id="9710" href="Relation.Binary.Consequences.html#7360" class="Function">flip-Connex</a> <a id="9722" href="Data.Nat.Properties.html#9546" class="Function">≥-&gt;-connex</a>
<a id="9734" class="Comment">------------------------------------------------------------------------</a>
<a id="9807" class="Comment">-- Relational properties of _&lt;_</a>
<a id="&lt;-irrefl"></a><a id="9840" href="Data.Nat.Properties.html#9840" class="Function">&lt;-irrefl</a> <a id="9849" class="Symbol">:</a> <a id="9851" href="Relation.Binary.Definitions.html#2478" class="Function">Irreflexive</a> <a id="9863" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a> <a id="9867" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a>
<a id="9871" href="Data.Nat.Properties.html#9840" class="Function">&lt;-irrefl</a> <a id="9880" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a> <a id="9885" class="Symbol">(</a><a id="9886" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a> <a id="9890" href="Data.Nat.Properties.html#9890" class="Bound">n&lt;n</a><a id="9893" class="Symbol">)</a> <a id="9895" class="Symbol">=</a> <a id="9897" href="Data.Nat.Properties.html#9840" class="Function">&lt;-irrefl</a> <a id="9906" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a> <a id="9911" href="Data.Nat.Properties.html#9890" class="Bound">n&lt;n</a>
<a id="&lt;-asym"></a><a id="9916" href="Data.Nat.Properties.html#9916" class="Function">&lt;-asym</a> <a id="9923" class="Symbol">:</a> <a id="9925" href="Relation.Binary.Definitions.html#2590" class="Function">Asymmetric</a> <a id="9936" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a>
<a id="9940" href="Data.Nat.Properties.html#9916" class="Function">&lt;-asym</a> <a id="9947" class="Symbol">(</a><a id="9948" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a> <a id="9952" href="Data.Nat.Properties.html#9952" class="Bound">n&lt;m</a><a id="9955" class="Symbol">)</a> <a id="9957" class="Symbol">(</a><a id="9958" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a> <a id="9962" href="Data.Nat.Properties.html#9962" class="Bound">m&lt;n</a><a id="9965" class="Symbol">)</a> <a id="9967" class="Symbol">=</a> <a id="9969" href="Data.Nat.Properties.html#9916" class="Function">&lt;-asym</a> <a id="9976" href="Data.Nat.Properties.html#9952" class="Bound">n&lt;m</a> <a id="9980" href="Data.Nat.Properties.html#9962" class="Bound">m&lt;n</a>
<a id="&lt;-trans"></a><a id="9985" href="Data.Nat.Properties.html#9985" class="Function">&lt;-trans</a> <a id="9993" class="Symbol">:</a> <a id="9995" href="Relation.Binary.Definitions.html#2103" class="Function">Transitive</a> <a id="10006" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a>
<a id="10010" href="Data.Nat.Properties.html#9985" class="Function">&lt;-trans</a> <a id="10018" class="Symbol">(</a><a id="10019" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="10023" href="Data.Nat.Properties.html#10023" class="Bound">i≤j</a><a id="10026" class="Symbol">)</a> <a id="10028" class="Symbol">(</a><a id="10029" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="10033" href="Data.Nat.Properties.html#10033" class="Bound">j&lt;k</a><a id="10036" class="Symbol">)</a> <a id="10038" class="Symbol">=</a> <a id="10040" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="10044" class="Symbol">(</a><a id="10045" href="Data.Nat.Properties.html#5425" class="Function">≤-trans</a> <a id="10053" href="Data.Nat.Properties.html#10023" class="Bound">i≤j</a> <a id="10057" class="Symbol">(</a><a id="10058" href="Data.Nat.Properties.html#5425" class="Function">≤-trans</a> <a id="10066" class="Symbol">(</a><a id="10067" href="Data.Nat.Properties.html#7948" class="Function">n≤1+n</a> <a id="10073" class="Symbol">_)</a> <a id="10076" href="Data.Nat.Properties.html#10033" class="Bound">j&lt;k</a><a id="10079" class="Symbol">))</a>
<a id="≤-&lt;-trans"></a><a id="10083" href="Data.Nat.Properties.html#10083" class="Function">≤-&lt;-trans</a> <a id="10093" class="Symbol">:</a> <a id="10095" href="Relation.Binary.Definitions.html#1851" class="Function">LeftTrans</a> <a id="10105" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="10109" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a>
<a id="10113" href="Data.Nat.Properties.html#10083" class="Function">≤-&lt;-trans</a> <a id="10123" href="Data.Nat.Properties.html#10123" class="Bound">m≤n</a> <a id="10127" class="Symbol">(</a><a id="10128" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a> <a id="10132" href="Data.Nat.Properties.html#10132" class="Bound">n≤o</a><a id="10135" class="Symbol">)</a> <a id="10137" class="Symbol">=</a> <a id="10139" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="10143" class="Symbol">(</a><a id="10144" href="Data.Nat.Properties.html#5425" class="Function">≤-trans</a> <a id="10152" href="Data.Nat.Properties.html#10123" class="Bound">m≤n</a> <a id="10156" href="Data.Nat.Properties.html#10132" class="Bound">n≤o</a><a id="10159" class="Symbol">)</a>
<a id="&lt;-≤-trans"></a><a id="10162" href="Data.Nat.Properties.html#10162" class="Function">&lt;-≤-trans</a> <a id="10172" class="Symbol">:</a> <a id="10174" href="Relation.Binary.Definitions.html#1776" class="Function">RightTrans</a> <a id="10185" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="10189" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="10193" href="Data.Nat.Properties.html#10162" class="Function">&lt;-≤-trans</a> <a id="10203" class="Symbol">(</a><a id="10204" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a> <a id="10208" href="Data.Nat.Properties.html#10208" class="Bound">m≤n</a><a id="10211" class="Symbol">)</a> <a id="10213" class="Symbol">(</a><a id="10214" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="10218" href="Data.Nat.Properties.html#10218" class="Bound">n≤o</a><a id="10221" class="Symbol">)</a> <a id="10223" class="Symbol">=</a> <a id="10225" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="10229" class="Symbol">(</a><a id="10230" href="Data.Nat.Properties.html#5425" class="Function">≤-trans</a> <a id="10238" href="Data.Nat.Properties.html#10208" class="Bound">m≤n</a> <a id="10242" href="Data.Nat.Properties.html#10218" class="Bound">n≤o</a><a id="10245" class="Symbol">)</a>
<a id="10248" class="Comment">-- NB: we use the builtin function `_&lt;ᵇ_` here so that the function</a>
<a id="10316" class="Comment">-- quickly decides which constructor to return. It still takes a</a>
<a id="10381" class="Comment">-- linear amount of time to generate the proof if it is inspected.</a>
<a id="10448" class="Comment">-- We expect the main benefit to be visible in compiled code as the</a>
<a id="10516" class="Comment">-- backend erases proofs.</a>
<a id="&lt;-cmp"></a><a id="10543" href="Data.Nat.Properties.html#10543" class="Function">&lt;-cmp</a> <a id="10549" class="Symbol">:</a> <a id="10551" href="Relation.Binary.Definitions.html#3281" class="Function">Trichotomous</a> <a id="10564" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a> <a id="10568" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a>
<a id="10572" href="Data.Nat.Properties.html#10543" class="Function">&lt;-cmp</a> <a id="10578" href="Data.Nat.Properties.html#10578" class="Bound">m</a> <a id="10580" href="Data.Nat.Properties.html#10580" class="Bound">n</a> <a id="10582" class="Keyword">with</a> <a id="10587" href="Data.Nat.Properties.html#10578" class="Bound">m</a> <a id="10589" href="Data.Nat.Properties.html#3311" class="Function Operator"></a> <a id="10591" href="Data.Nat.Properties.html#10580" class="Bound">n</a> <a id="10593" class="Symbol">|</a> <a id="10595" href="Relation.Nullary.Decidable.Core.html#2465" class="Function">T?</a> <a id="10598" class="Symbol">(</a><a id="10599" href="Data.Nat.Properties.html#10578" class="Bound">m</a> <a id="10601" href="Data.Nat.Base.html#1457" class="Primitive Operator">&lt;</a> <a id="10604" href="Data.Nat.Properties.html#10580" class="Bound">n</a><a id="10605" class="Symbol">)</a>
<a id="10607" class="Symbol">...</a> <a id="10611" class="Symbol">|</a> <a id="10613" href="Relation.Nullary.Decidable.Core.html#1618" class="InductiveConstructor">yes</a> <a id="10617" href="Data.Nat.Properties.html#10617" class="Bound">m≡n</a> <a id="10621" class="Symbol">|</a> <a id="10623" class="Symbol">_</a> <a id="10631" class="Symbol">=</a> <a id="10633" href="Relation.Binary.Definitions.html#3158" class="InductiveConstructor">tri≈</a> <a id="10638" class="Symbol">(</a><a id="10639" href="Data.Nat.Properties.html#9840" class="Function">&lt;-irrefl</a> <a id="10648" href="Data.Nat.Properties.html#10617" class="Bound">m≡n</a><a id="10651" class="Symbol">)</a> <a id="10653" href="Data.Nat.Properties.html#10617" class="Bound">m≡n</a> <a id="10657" class="Symbol">(</a><a id="10658" href="Data.Nat.Properties.html#9840" class="Function">&lt;-irrefl</a> <a id="10667" class="Symbol">(</a><a id="10668" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="10672" href="Data.Nat.Properties.html#10617" class="Bound">m≡n</a><a id="10675" class="Symbol">))</a>
<a id="10678" class="Symbol">...</a> <a id="10682" class="Symbol">|</a> <a id="10684" href="Relation.Nullary.Decidable.Core.html#1655" class="InductiveConstructor">no</a> <a id="10688" href="Data.Nat.Properties.html#10688" class="Bound">m≢n</a> <a id="10692" class="Symbol">|</a> <a id="10694" href="Relation.Nullary.Decidable.Core.html#1618" class="InductiveConstructor">yes</a> <a id="10698" href="Data.Nat.Properties.html#10698" class="Bound">m&lt;n</a> <a id="10702" class="Symbol">=</a> <a id="10704" href="Relation.Binary.Definitions.html#3104" class="InductiveConstructor">tri&lt;</a> <a id="10709" class="Symbol">(</a><a id="10710" href="Data.Nat.Properties.html#4115" class="Function">&lt;ᵇ⇒&lt;</a> <a id="10715" class="Bound">m</a> <a id="10717" class="Bound">n</a> <a id="10719" href="Data.Nat.Properties.html#10698" class="Bound">m&lt;n</a><a id="10722" class="Symbol">)</a> <a id="10724" href="Data.Nat.Properties.html#10688" class="Bound">m≢n</a> <a id="10728" class="Symbol">(</a><a id="10729" href="Data.Nat.Properties.html#8690" class="Function">&lt;⇒≯</a> <a id="10733" class="Symbol">(</a><a id="10734" href="Data.Nat.Properties.html#4115" class="Function">&lt;ᵇ⇒&lt;</a> <a id="10739" class="Bound">m</a> <a id="10741" class="Bound">n</a> <a id="10743" href="Data.Nat.Properties.html#10698" class="Bound">m&lt;n</a><a id="10746" class="Symbol">))</a>
<a id="10749" class="Symbol">...</a> <a id="10753" class="Symbol">|</a> <a id="10755" href="Relation.Nullary.Decidable.Core.html#1655" class="InductiveConstructor">no</a> <a id="10759" href="Data.Nat.Properties.html#10759" class="Bound">m≢n</a> <a id="10763" class="Symbol">|</a> <a id="10765" href="Relation.Nullary.Decidable.Core.html#1655" class="InductiveConstructor">no</a> <a id="10769" href="Data.Nat.Properties.html#10769" class="Bound">m≮n</a> <a id="10773" class="Symbol">=</a> <a id="10775" href="Relation.Binary.Definitions.html#3212" class="InductiveConstructor">tri&gt;</a> <a id="10780" class="Symbol">(</a><a id="10781" href="Data.Nat.Properties.html#10769" class="Bound">m≮n</a> <a id="10785" href="Function.Base.html#1115" class="Function Operator"></a> <a id="10787" href="Data.Nat.Properties.html#4227" class="Function">&lt;&lt;</a><a id="10791" class="Symbol">)</a> <a id="10795" href="Data.Nat.Properties.html#10759" class="Bound">m≢n</a> <a id="10799" class="Symbol">(</a><a id="10800" href="Data.Nat.Properties.html#9131" class="Function">≤∧≢⇒&lt;</a> <a id="10806" class="Symbol">(</a><a id="10807" href="Data.Nat.Properties.html#8970" class="Function">≮⇒≥</a> <a id="10811" class="Symbol">(</a><a id="10812" href="Data.Nat.Properties.html#10769" class="Bound">m≮n</a> <a id="10816" href="Function.Base.html#1115" class="Function Operator"></a> <a id="10818" href="Data.Nat.Properties.html#4227" class="Function">&lt;&lt;</a><a id="10822" class="Symbol">))</a> <a id="10825" class="Symbol">(</a><a id="10826" href="Data.Nat.Properties.html#10759" class="Bound">m≢n</a> <a id="10830" href="Function.Base.html#1115" class="Function Operator"></a> <a id="10832" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a><a id="10835" class="Symbol">))</a>
<a id="10839" class="Keyword">infix</a> <a id="10845" class="Number">4</a> <a id="10847" href="Data.Nat.Properties.html#10858" class="Function Operator">_&lt;?_</a> <a id="10852" href="Data.Nat.Properties.html#10900" class="Function Operator">_&gt;?_</a>
<a id="_&lt;?_"></a><a id="10858" href="Data.Nat.Properties.html#10858" class="Function Operator">_&lt;?_</a> <a id="10863" class="Symbol">:</a> <a id="10865" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="10875" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a>
<a id="10879" href="Data.Nat.Properties.html#10879" class="Bound">m</a> <a id="10881" href="Data.Nat.Properties.html#10858" class="Function Operator">&lt;?</a> <a id="10884" href="Data.Nat.Properties.html#10884" class="Bound">n</a> <a id="10886" class="Symbol">=</a> <a id="10888" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="10892" href="Data.Nat.Properties.html#10879" class="Bound">m</a> <a id="10894" href="Data.Nat.Properties.html#6146" class="Function Operator">≤?</a> <a id="10897" href="Data.Nat.Properties.html#10884" class="Bound">n</a>
<a id="_&gt;?_"></a><a id="10900" href="Data.Nat.Properties.html#10900" class="Function Operator">_&gt;?_</a> <a id="10905" class="Symbol">:</a> <a id="10907" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="10917" href="Data.Nat.Base.html#2289" class="Function Operator">_&gt;_</a>
<a id="10921" href="Data.Nat.Properties.html#10900" class="Function Operator">_&gt;?_</a> <a id="10926" class="Symbol">=</a> <a id="10928" href="Function.Base.html#1638" class="Function">flip</a> <a id="10933" href="Data.Nat.Properties.html#10858" class="Function Operator">_&lt;?_</a>
<a id="&lt;-irrelevant"></a><a id="10939" href="Data.Nat.Properties.html#10939" class="Function">&lt;-irrelevant</a> <a id="10952" class="Symbol">:</a> <a id="10954" href="Relation.Binary.Definitions.html#6651" class="Function">Irrelevant</a> <a id="10965" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a>
<a id="10969" href="Data.Nat.Properties.html#10939" class="Function">&lt;-irrelevant</a> <a id="10982" class="Symbol">=</a> <a id="10984" href="Data.Nat.Properties.html#5684" class="Function">≤-irrelevant</a>
<a id="&lt;-resp₂-≡"></a><a id="10998" href="Data.Nat.Properties.html#10998" class="Function">&lt;-resp₂-≡</a> <a id="11008" class="Symbol">:</a> <a id="11010" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="11014" href="Relation.Binary.Definitions.html#5663" class="Function Operator">Respects₂</a> <a id="11024" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a>
<a id="11028" href="Data.Nat.Properties.html#10998" class="Function">&lt;-resp₂-≡</a> <a id="11038" class="Symbol">=</a> <a id="11040" href="Relation.Binary.PropositionalEquality.Core.html#1808" class="Function">subst</a> <a id="11046" class="Symbol">(_</a> <a id="11049" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;_</a><a id="11051" class="Symbol">)</a> <a id="11053" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="11055" href="Relation.Binary.PropositionalEquality.Core.html#1808" class="Function">subst</a> <a id="11061" class="Symbol">(</a><a id="11062" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;</a> <a id="11065" class="Symbol">_)</a>
<a id="11069" class="Comment">------------------------------------------------------------------------</a>
<a id="11142" class="Comment">-- Bundles</a>
<a id="&lt;-isStrictPartialOrder"></a><a id="11154" href="Data.Nat.Properties.html#11154" class="Function">&lt;-isStrictPartialOrder</a> <a id="11177" class="Symbol">:</a> <a id="11179" href="Relation.Binary.Structures.html#4298" class="Record">IsStrictPartialOrder</a> <a id="11200" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a> <a id="11204" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a>
<a id="11208" href="Data.Nat.Properties.html#11154" class="Function">&lt;-isStrictPartialOrder</a> <a id="11231" class="Symbol">=</a> <a id="11233" class="Keyword">record</a>
<a id="11242" class="Symbol">{</a> <a id="11244" href="Relation.Binary.Structures.html#4373" class="Field">isEquivalence</a> <a id="11258" class="Symbol">=</a> <a id="11260" href="Relation.Binary.PropositionalEquality.Properties.html#5422" class="Function">isEquivalence</a>
<a id="11276" class="Symbol">;</a> <a id="11278" href="Relation.Binary.Structures.html#4407" class="Field">irrefl</a> <a id="11292" class="Symbol">=</a> <a id="11294" href="Data.Nat.Properties.html#9840" class="Function">&lt;-irrefl</a>
<a id="11305" class="Symbol">;</a> <a id="11307" href="Relation.Binary.Structures.html#4447" class="Field">trans</a> <a id="11321" class="Symbol">=</a> <a id="11323" href="Data.Nat.Properties.html#9985" class="Function">&lt;-trans</a>
<a id="11333" class="Symbol">;</a> <a id="11335" href="Relation.Binary.Structures.html#4482" class="Field">&lt;-resp-≈</a> <a id="11349" class="Symbol">=</a> <a id="11351" href="Data.Nat.Properties.html#10998" class="Function">&lt;-resp₂-≡</a>
<a id="11363" class="Symbol">}</a>
<a id="&lt;-isStrictTotalOrder"></a><a id="11366" href="Data.Nat.Properties.html#11366" class="Function">&lt;-isStrictTotalOrder</a> <a id="11387" class="Symbol">:</a> <a id="11389" href="Relation.Binary.Structures.html#6732" class="Record">IsStrictTotalOrder</a> <a id="11408" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a> <a id="11412" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a>
<a id="11416" href="Data.Nat.Properties.html#11366" class="Function">&lt;-isStrictTotalOrder</a> <a id="11437" class="Symbol">=</a> <a id="11439" href="Relation.Binary.Structures.Biased.html#1147" class="Function">isStrictTotalOrderᶜ</a> <a id="11459" class="Keyword">record</a>
<a id="11468" class="Symbol">{</a> <a id="11470" href="Relation.Binary.Structures.Biased.html#1038" class="Field">isEquivalence</a> <a id="11484" class="Symbol">=</a> <a id="11486" href="Relation.Binary.PropositionalEquality.Properties.html#5422" class="Function">isEquivalence</a>
<a id="11502" class="Symbol">;</a> <a id="11504" href="Relation.Binary.Structures.Biased.html#1072" class="Field">trans</a> <a id="11518" class="Symbol">=</a> <a id="11520" href="Data.Nat.Properties.html#9985" class="Function">&lt;-trans</a>
<a id="11530" class="Symbol">;</a> <a id="11532" href="Relation.Binary.Structures.Biased.html#1107" class="Field">compare</a> <a id="11546" class="Symbol">=</a> <a id="11548" href="Data.Nat.Properties.html#10543" class="Function">&lt;-cmp</a>
<a id="11556" class="Symbol">}</a>
<a id="&lt;-strictPartialOrder"></a><a id="11559" href="Data.Nat.Properties.html#11559" class="Function">&lt;-strictPartialOrder</a> <a id="11580" class="Symbol">:</a> <a id="11582" href="Relation.Binary.Bundles.html#4839" class="Record">StrictPartialOrder</a> <a id="11601" href="Level.html#521" class="Function">0</a> <a id="11604" href="Level.html#521" class="Function">0</a> <a id="11607" href="Level.html#521" class="Function">0</a>
<a id="11610" href="Data.Nat.Properties.html#11559" class="Function">&lt;-strictPartialOrder</a> <a id="11631" class="Symbol">=</a> <a id="11633" class="Keyword">record</a>
<a id="11642" class="Symbol">{</a> <a id="11644" href="Relation.Binary.Bundles.html#5045" class="Field">isStrictPartialOrder</a> <a id="11665" class="Symbol">=</a> <a id="11667" href="Data.Nat.Properties.html#11154" class="Function">&lt;-isStrictPartialOrder</a>
<a id="11692" class="Symbol">}</a>
<a id="&lt;-strictTotalOrder"></a><a id="11695" href="Data.Nat.Properties.html#11695" class="Function">&lt;-strictTotalOrder</a> <a id="11714" class="Symbol">:</a> <a id="11716" href="Relation.Binary.Bundles.html#8031" class="Record">StrictTotalOrder</a> <a id="11733" href="Level.html#521" class="Function">0</a> <a id="11736" href="Level.html#521" class="Function">0</a> <a id="11739" href="Level.html#521" class="Function">0</a>
<a id="11742" href="Data.Nat.Properties.html#11695" class="Function">&lt;-strictTotalOrder</a> <a id="11761" class="Symbol">=</a> <a id="11763" class="Keyword">record</a>
<a id="11772" class="Symbol">{</a> <a id="11774" href="Relation.Binary.Bundles.html#8229" class="Field">isStrictTotalOrder</a> <a id="11793" class="Symbol">=</a> <a id="11795" href="Data.Nat.Properties.html#11366" class="Function">&lt;-isStrictTotalOrder</a>
<a id="11818" class="Symbol">}</a>
<a id="11821" class="Comment">------------------------------------------------------------------------</a>
<a id="11894" class="Comment">-- Other properties of _&lt;_</a>
<a id="s&lt;s-injective"></a><a id="11922" href="Data.Nat.Properties.html#11922" class="Function">s&lt;s-injective</a> <a id="11936" class="Symbol">:</a> <a id="11938" class="Symbol">{</a><a id="11939" href="Data.Nat.Properties.html#11939" class="Bound">p</a> <a id="11941" href="Data.Nat.Properties.html#11941" class="Bound">q</a> <a id="11943" class="Symbol">:</a> <a id="11945" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="11947" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="11949" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a><a id="11950" class="Symbol">}</a> <a id="11952" class="Symbol"></a> <a id="11954" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a> <a id="11958" href="Data.Nat.Properties.html#11939" class="Bound">p</a> <a id="11960" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="11962" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a> <a id="11966" href="Data.Nat.Properties.html#11941" class="Bound">q</a> <a id="11968" class="Symbol"></a> <a id="11970" href="Data.Nat.Properties.html#11939" class="Bound">p</a> <a id="11972" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="11974" href="Data.Nat.Properties.html#11941" class="Bound">q</a>
<a id="11976" href="Data.Nat.Properties.html#11922" class="Function">s&lt;s-injective</a> <a id="11990" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a> <a id="11995" class="Symbol">=</a> <a id="11997" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="&lt;-pred"></a><a id="12003" href="Data.Nat.Properties.html#12003" class="Function">&lt;-pred</a> <a id="12010" class="Symbol">:</a> <a id="12012" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="12016" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="12018" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="12020" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="12024" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="12026" class="Symbol"></a> <a id="12028" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="12030" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="12032" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="12034" href="Data.Nat.Properties.html#12003" class="Function">&lt;-pred</a> <a id="12041" class="Symbol">=</a> <a id="12043" href="Data.Nat.Base.html#2085" class="Function">s&lt;s⁻¹</a>
<a id="m&lt;n⇒m&lt;1+n"></a><a id="12050" href="Data.Nat.Properties.html#12050" class="Function">m&lt;n⇒m&lt;1+n</a> <a id="12060" class="Symbol">:</a> <a id="12062" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="12064" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="12066" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="12068" class="Symbol"></a> <a id="12070" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="12072" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="12074" class="Number">1</a> <a id="12076" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="12078" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="12080" href="Data.Nat.Properties.html#12050" class="Function">m&lt;n⇒m&lt;1+n</a> <a id="12090" href="Data.Nat.Base.html#1873" class="InductiveConstructor">z&lt;s</a> <a id="12108" class="Symbol">=</a> <a id="12110" href="Data.Nat.Base.html#1873" class="InductiveConstructor">z&lt;s</a>
<a id="12114" href="Data.Nat.Properties.html#12050" class="Function">m&lt;n⇒m&lt;1+n</a> <a id="12124" class="Symbol">(</a><a id="12125" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a> <a id="12129" href="Data.Nat.Properties.html#12129" class="Bound">m&lt;n</a><a id="12132" class="Symbol">@(</a><a id="12134" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="12138" class="Symbol">_))</a> <a id="12142" class="Symbol">=</a> <a id="12144" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a> <a id="12148" class="Symbol">(</a><a id="12149" href="Data.Nat.Properties.html#12050" class="Function">m&lt;n⇒m&lt;1+n</a> <a id="12159" href="Data.Nat.Properties.html#12129" class="Bound">m&lt;n</a><a id="12162" class="Symbol">)</a>
<a id="n≮0"></a><a id="12165" href="Data.Nat.Properties.html#12165" class="Function">n≮0</a> <a id="12169" class="Symbol">:</a> <a id="12171" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="12173" href="Data.Nat.Base.html#2351" class="Function Operator"></a> <a id="12175" class="Number">0</a>
<a id="12177" href="Data.Nat.Properties.html#12165" class="Function">n≮0</a> <a id="12181" class="Symbol">()</a>
<a id="n≮n"></a><a id="12185" href="Data.Nat.Properties.html#12185" class="Function">n≮n</a> <a id="12189" class="Symbol">:</a> <a id="12191" class="Symbol"></a> <a id="12193" href="Data.Nat.Properties.html#12193" class="Bound">n</a> <a id="12195" class="Symbol"></a> <a id="12197" href="Data.Nat.Properties.html#12193" class="Bound">n</a> <a id="12199" href="Data.Nat.Base.html#2351" class="Function Operator"></a> <a id="12201" href="Data.Nat.Properties.html#12193" class="Bound">n</a> <a id="12203" class="Comment">-- implicit?</a>
<a id="12216" href="Data.Nat.Properties.html#12185" class="Function">n≮n</a> <a id="12220" href="Data.Nat.Properties.html#12220" class="Bound">n</a> <a id="12222" class="Symbol">=</a> <a id="12224" href="Data.Nat.Properties.html#9840" class="Function">&lt;-irrefl</a> <a id="12233" class="Symbol">(</a><a id="12234" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a> <a id="12239" class="Symbol">{</a><a id="12240" class="Argument">x</a> <a id="12242" class="Symbol">=</a> <a id="12244" href="Data.Nat.Properties.html#12220" class="Bound">n</a><a id="12245" class="Symbol">})</a>
<a id="0&lt;1+n"></a><a id="12249" href="Data.Nat.Properties.html#12249" class="Function">0&lt;1+n</a> <a id="12255" class="Symbol">:</a> <a id="12257" class="Number">0</a> <a id="12259" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="12261" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="12265" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="12267" href="Data.Nat.Properties.html#12249" class="Function">0&lt;1+n</a> <a id="12273" class="Symbol">=</a> <a id="12275" href="Data.Nat.Base.html#1873" class="InductiveConstructor">z&lt;s</a>
<a id="n&lt;1+n"></a><a id="12280" href="Data.Nat.Properties.html#12280" class="Function">n&lt;1+n</a> <a id="12286" class="Symbol">:</a> <a id="12288" class="Symbol"></a> <a id="12290" href="Data.Nat.Properties.html#12290" class="Bound">n</a> <a id="12292" class="Symbol"></a> <a id="12294" href="Data.Nat.Properties.html#12290" class="Bound">n</a> <a id="12296" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="12298" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="12302" href="Data.Nat.Properties.html#12290" class="Bound">n</a>
<a id="12304" href="Data.Nat.Properties.html#12280" class="Function">n&lt;1+n</a> <a id="12310" href="Data.Nat.Properties.html#12310" class="Bound">n</a> <a id="12312" class="Symbol">=</a> <a id="12314" href="Data.Nat.Properties.html#5242" class="Function">≤-refl</a>
<a id="n&lt;1⇒n≡0"></a><a id="12322" href="Data.Nat.Properties.html#12322" class="Function">n&lt;1⇒n≡0</a> <a id="12330" class="Symbol">:</a> <a id="12332" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="12334" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="12336" class="Number">1</a> <a id="12338" class="Symbol"></a> <a id="12340" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="12342" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="12344" class="Number">0</a>
<a id="12346" href="Data.Nat.Properties.html#12322" class="Function">n&lt;1⇒n≡0</a> <a id="12354" class="Symbol">(</a><a id="12355" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="12359" href="Data.Nat.Properties.html#12359" class="Bound">n≤0</a><a id="12362" class="Symbol">)</a> <a id="12364" class="Symbol">=</a> <a id="12366" href="Data.Nat.Properties.html#8051" class="Function">n≤0⇒n≡0</a> <a id="12374" href="Data.Nat.Properties.html#12359" class="Bound">n≤0</a>
<a id="n&gt;0⇒n≢0"></a><a id="12379" href="Data.Nat.Properties.html#12379" class="Function">n&gt;0⇒n≢0</a> <a id="12387" class="Symbol">:</a> <a id="12389" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="12391" href="Data.Nat.Base.html#2289" class="Function Operator">&gt;</a> <a id="12393" class="Number">0</a> <a id="12395" class="Symbol"></a> <a id="12397" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="12399" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Function Operator"></a> <a id="12401" class="Number">0</a>
<a id="12403" href="Data.Nat.Properties.html#12379" class="Function">n&gt;0⇒n≢0</a> <a id="12411" class="Symbol">{</a><a id="12412" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="12416" href="Data.Nat.Properties.html#12416" class="Bound">n</a><a id="12417" class="Symbol">}</a> <a id="12419" class="Symbol">_</a> <a id="12421" class="Symbol">()</a>
<a id="n≢0⇒n&gt;0"></a><a id="12425" href="Data.Nat.Properties.html#12425" class="Function">n≢0⇒n&gt;0</a> <a id="12433" class="Symbol">:</a> <a id="12435" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="12437" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Function Operator"></a> <a id="12439" class="Number">0</a> <a id="12441" class="Symbol"></a> <a id="12443" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="12445" href="Data.Nat.Base.html#2289" class="Function Operator">&gt;</a> <a id="12447" class="Number">0</a>
<a id="12449" href="Data.Nat.Properties.html#12425" class="Function">n≢0⇒n&gt;0</a> <a id="12457" class="Symbol">{</a><a id="12458" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="12462" class="Symbol">}</a> <a id="12465" href="Data.Nat.Properties.html#12465" class="Bound">0≢0</a> <a id="12469" class="Symbol">=</a> <a id="12472" href="Relation.Nullary.Negation.Core.html#1226" class="Function">contradiction</a> <a id="12486" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a> <a id="12491" href="Data.Nat.Properties.html#12465" class="Bound">0≢0</a>
<a id="12495" href="Data.Nat.Properties.html#12425" class="Function">n≢0⇒n&gt;0</a> <a id="12503" class="Symbol">{</a><a id="12504" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="12508" href="Data.Nat.Properties.html#12508" class="Bound">n</a><a id="12509" class="Symbol">}</a> <a id="12511" class="Symbol">_</a> <a id="12515" class="Symbol">=</a> <a id="12518" href="Data.Nat.Properties.html#12249" class="Function">0&lt;1+n</a>
<a id="m&lt;n⇒0&lt;n"></a><a id="12525" href="Data.Nat.Properties.html#12525" class="Function">m&lt;n⇒0&lt;n</a> <a id="12533" class="Symbol">:</a> <a id="12535" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="12537" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="12539" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="12541" class="Symbol"></a> <a id="12543" class="Number">0</a> <a id="12545" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="12547" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="12549" href="Data.Nat.Properties.html#12525" class="Function">m&lt;n⇒0&lt;n</a> <a id="12557" class="Symbol">=</a> <a id="12559" href="Data.Nat.Properties.html#5425" class="Function">≤-trans</a> <a id="12567" href="Data.Nat.Properties.html#12249" class="Function">0&lt;1+n</a>
<a id="m&lt;n⇒n≢0"></a><a id="12574" href="Data.Nat.Properties.html#12574" class="Function">m&lt;n⇒n≢0</a> <a id="12582" class="Symbol">:</a> <a id="12584" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="12586" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="12588" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="12590" class="Symbol"></a> <a id="12592" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="12594" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Function Operator"></a> <a id="12596" class="Number">0</a>
<a id="12598" href="Data.Nat.Properties.html#12574" class="Function">m&lt;n⇒n≢0</a> <a id="12606" class="Symbol">(</a><a id="12607" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="12611" href="Data.Nat.Properties.html#12611" class="Bound">m≤n</a><a id="12614" class="Symbol">)</a> <a id="12616" class="Symbol">()</a>
<a id="m&lt;n⇒m≤1+n"></a><a id="12620" href="Data.Nat.Properties.html#12620" class="Function">m&lt;n⇒m≤1+n</a> <a id="12630" class="Symbol">:</a> <a id="12632" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="12634" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="12636" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="12638" class="Symbol"></a> <a id="12640" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="12642" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="12644" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="12648" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="12650" href="Data.Nat.Properties.html#12620" class="Function">m&lt;n⇒m≤1+n</a> <a id="12660" class="Symbol">=</a> <a id="12662" href="Data.Nat.Properties.html#7849" class="Function">m≤n⇒m≤1+n</a> <a id="12672" href="Function.Base.html#1115" class="Function Operator"></a> <a id="12674" href="Data.Nat.Properties.html#8416" class="Function">&lt;⇒≤</a>
<a id="m&lt;1+n⇒m&lt;nm≡n"></a><a id="12679" href="Data.Nat.Properties.html#12679" class="Function">m&lt;1+n⇒m&lt;nm≡n</a> <a id="12693" class="Symbol">:</a> <a id="12696" class="Symbol"></a> <a id="12698" class="Symbol">{</a><a id="12699" href="Data.Nat.Properties.html#12699" class="Bound">m</a> <a id="12701" href="Data.Nat.Properties.html#12701" class="Bound">n</a><a id="12702" class="Symbol">}</a> <a id="12704" class="Symbol"></a> <a id="12706" href="Data.Nat.Properties.html#12699" class="Bound">m</a> <a id="12708" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="12710" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="12714" href="Data.Nat.Properties.html#12701" class="Bound">n</a> <a id="12716" class="Symbol"></a> <a id="12718" href="Data.Nat.Properties.html#12699" class="Bound">m</a> <a id="12720" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="12722" href="Data.Nat.Properties.html#12701" class="Bound">n</a> <a id="12724" href="Data.Sum.Base.html#625" class="Datatype Operator"></a> <a id="12726" href="Data.Nat.Properties.html#12699" class="Bound">m</a> <a id="12728" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="12730" href="Data.Nat.Properties.html#12701" class="Bound">n</a>
<a id="12732" href="Data.Nat.Properties.html#12679" class="Function">m&lt;1+n⇒m&lt;nm≡n</a> <a id="12746" class="Symbol">{</a><a id="12747" class="Number">0</a><a id="12748" class="Symbol">}</a> <a id="12754" class="Symbol">{</a><a id="12755" class="Number">0</a><a id="12756" class="Symbol">}</a> <a id="12762" class="Symbol">_</a> <a id="12774" class="Symbol">=</a> <a id="12776" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a> <a id="12781" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="12786" href="Data.Nat.Properties.html#12679" class="Function">m&lt;1+n⇒m&lt;nm≡n</a> <a id="12800" class="Symbol">{</a><a id="12801" class="Number">0</a><a id="12802" class="Symbol">}</a> <a id="12808" class="Symbol">{</a><a id="12809" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="12813" href="Data.Nat.Properties.html#12813" class="Bound">n</a><a id="12814" class="Symbol">}</a> <a id="12816" class="Symbol">_</a> <a id="12828" class="Symbol">=</a> <a id="12830" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a> <a id="12835" href="Data.Nat.Properties.html#12249" class="Function">0&lt;1+n</a>
<a id="12841" href="Data.Nat.Properties.html#12679" class="Function">m&lt;1+n⇒m&lt;nm≡n</a> <a id="12855" class="Symbol">{</a><a id="12856" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="12860" href="Data.Nat.Properties.html#12860" class="Bound">m</a><a id="12861" class="Symbol">}</a> <a id="12863" class="Symbol">{</a><a id="12864" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="12868" href="Data.Nat.Properties.html#12868" class="Bound">n</a><a id="12869" class="Symbol">}</a> <a id="12871" class="Symbol">(</a><a id="12872" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a> <a id="12876" href="Data.Nat.Properties.html#12876" class="Bound">m&lt;1+n</a><a id="12881" class="Symbol">)</a> <a id="12883" class="Symbol">=</a> <a id="12885" href="Data.Sum.Base.html#1253" class="Function">Sum.map</a> <a id="12893" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a> <a id="12897" class="Symbol">(</a><a id="12898" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="12903" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a><a id="12906" class="Symbol">)</a> <a id="12908" class="Symbol">(</a><a id="12909" href="Data.Nat.Properties.html#12679" class="Function">m&lt;1+n⇒m&lt;nm≡n</a> <a id="12923" href="Data.Nat.Properties.html#12876" class="Bound">m&lt;1+n</a><a id="12928" class="Symbol">)</a>
<a id="m≤n⇒m&lt;nm≡n"></a><a id="12931" href="Data.Nat.Properties.html#12931" class="Function">m≤n⇒m&lt;nm≡n</a> <a id="12943" class="Symbol">:</a> <a id="12945" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="12947" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="12949" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="12951" class="Symbol"></a> <a id="12953" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="12955" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="12957" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="12959" href="Data.Sum.Base.html#625" class="Datatype Operator"></a> <a id="12961" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="12963" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="12965" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="12967" href="Data.Nat.Properties.html#12931" class="Function">m≤n⇒m&lt;nm≡n</a> <a id="12979" href="Data.Nat.Properties.html#12979" class="Bound">m≤n</a> <a id="12983" class="Symbol">=</a> <a id="12985" href="Data.Nat.Properties.html#12679" class="Function">m&lt;1+n⇒m&lt;nm≡n</a> <a id="12999" class="Symbol">(</a><a id="13000" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="13004" href="Data.Nat.Properties.html#12979" class="Bound">m≤n</a><a id="13007" class="Symbol">)</a>
<a id="m&lt;1+n⇒m≤n"></a><a id="13010" href="Data.Nat.Properties.html#13010" class="Function">m&lt;1+n⇒m≤n</a> <a id="13020" class="Symbol">:</a> <a id="13022" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="13024" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="13026" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="13030" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="13032" class="Symbol"></a> <a id="13034" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="13036" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="13038" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="13040" href="Data.Nat.Properties.html#13010" class="Function">m&lt;1+n⇒m≤n</a> <a id="13050" class="Symbol">(</a><a id="13051" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="13055" href="Data.Nat.Properties.html#13055" class="Bound">m≤n</a><a id="13058" class="Symbol">)</a> <a id="13060" class="Symbol">=</a> <a id="13062" href="Data.Nat.Properties.html#13055" class="Bound">m≤n</a>
<a id="∀[m≤n⇒m≢o]⇒n&lt;o"></a><a id="13067" href="Data.Nat.Properties.html#13067" class="Function">∀[m≤n⇒m≢o]⇒n&lt;o</a> <a id="13082" class="Symbol">:</a> <a id="13084" class="Symbol"></a> <a id="13086" href="Data.Nat.Properties.html#13086" class="Bound">n</a> <a id="13088" href="Data.Nat.Properties.html#13088" class="Bound">o</a> <a id="13090" class="Symbol"></a> <a id="13092" class="Symbol">(∀</a> <a id="13095" class="Symbol">{</a><a id="13096" href="Data.Nat.Properties.html#13096" class="Bound">m</a><a id="13097" class="Symbol">}</a> <a id="13099" class="Symbol"></a> <a id="13101" href="Data.Nat.Properties.html#13096" class="Bound">m</a> <a id="13103" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="13105" href="Data.Nat.Properties.html#13086" class="Bound">n</a> <a id="13107" class="Symbol"></a> <a id="13109" href="Data.Nat.Properties.html#13096" class="Bound">m</a> <a id="13111" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Function Operator"></a> <a id="13113" href="Data.Nat.Properties.html#13088" class="Bound">o</a><a id="13114" class="Symbol">)</a> <a id="13116" class="Symbol"></a> <a id="13118" href="Data.Nat.Properties.html#13086" class="Bound">n</a> <a id="13120" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="13122" href="Data.Nat.Properties.html#13088" class="Bound">o</a>
<a id="13124" href="Data.Nat.Properties.html#13067" class="Function">∀[m≤n⇒m≢o]⇒n&lt;o</a> <a id="13139" class="Symbol">_</a> <a id="13147" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="13155" href="Data.Nat.Properties.html#13155" class="Bound">m≤n⇒n≢0</a> <a id="13163" class="Symbol">=</a> <a id="13165" href="Relation.Nullary.Negation.Core.html#1226" class="Function">contradiction</a> <a id="13179" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a> <a id="13184" class="Symbol">(</a><a id="13185" href="Data.Nat.Properties.html#13155" class="Bound">m≤n⇒n≢0</a> <a id="13193" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a><a id="13196" class="Symbol">)</a>
<a id="13198" href="Data.Nat.Properties.html#13067" class="Function">∀[m≤n⇒m≢o]⇒n&lt;o</a> <a id="13213" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="13221" class="Symbol">(</a><a id="13222" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="13226" href="Data.Nat.Properties.html#13226" class="Bound">o</a><a id="13227" class="Symbol">)</a> <a id="13229" class="Symbol">_</a> <a id="13237" class="Symbol">=</a> <a id="13239" href="Data.Nat.Properties.html#12249" class="Function">0&lt;1+n</a>
<a id="13245" href="Data.Nat.Properties.html#13067" class="Function">∀[m≤n⇒m≢o]⇒n&lt;o</a> <a id="13260" class="Symbol">(</a><a id="13261" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="13265" href="Data.Nat.Properties.html#13265" class="Bound">n</a><a id="13266" class="Symbol">)</a> <a id="13268" class="Symbol">(</a><a id="13269" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="13273" href="Data.Nat.Properties.html#13273" class="Bound">o</a><a id="13274" class="Symbol">)</a> <a id="13276" href="Data.Nat.Properties.html#13276" class="Bound">m≤n⇒n≢o</a> <a id="13284" class="Symbol">=</a> <a id="13286" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="13290" class="Symbol">(</a><a id="13291" href="Data.Nat.Properties.html#13067" class="Function">∀[m≤n⇒m≢o]⇒n&lt;o</a> <a id="13306" href="Data.Nat.Properties.html#13265" class="Bound">n</a> <a id="13308" href="Data.Nat.Properties.html#13273" class="Bound">o</a> <a id="13310" href="Data.Nat.Properties.html#13325" class="Function">rec</a><a id="13313" class="Symbol">)</a>
<a id="13317" class="Keyword">where</a>
<a id="13325" href="Data.Nat.Properties.html#13325" class="Function">rec</a> <a id="13329" class="Symbol">:</a> <a id="13331" class="Symbol"></a> <a id="13333" class="Symbol">{</a><a id="13334" href="Data.Nat.Properties.html#13334" class="Bound">m</a><a id="13335" class="Symbol">}</a> <a id="13337" class="Symbol"></a> <a id="13339" href="Data.Nat.Properties.html#13334" class="Bound">m</a> <a id="13341" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="13343" href="Data.Nat.Properties.html#13265" class="Bound">n</a> <a id="13345" class="Symbol"></a> <a id="13347" href="Data.Nat.Properties.html#13334" class="Bound">m</a> <a id="13349" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Function Operator"></a> <a id="13351" href="Data.Nat.Properties.html#13273" class="Bound">o</a>
<a id="13355" href="Data.Nat.Properties.html#13325" class="Function">rec</a> <a id="13359" href="Data.Nat.Properties.html#13359" class="Bound">m≤n</a> <a id="13363" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a> <a id="13368" class="Symbol">=</a> <a id="13370" href="Data.Nat.Properties.html#13276" class="Bound">m≤n⇒n≢o</a> <a id="13378" class="Symbol">(</a><a id="13379" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="13383" href="Data.Nat.Properties.html#13359" class="Bound">m≤n</a><a id="13386" class="Symbol">)</a> <a id="13388" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="∀[m&lt;n⇒m≢o]⇒n≤o"></a><a id="13394" href="Data.Nat.Properties.html#13394" class="Function">∀[m&lt;n⇒m≢o]⇒n≤o</a> <a id="13409" class="Symbol">:</a> <a id="13411" class="Symbol"></a> <a id="13413" href="Data.Nat.Properties.html#13413" class="Bound">n</a> <a id="13415" href="Data.Nat.Properties.html#13415" class="Bound">o</a> <a id="13417" class="Symbol"></a> <a id="13419" class="Symbol">(∀</a> <a id="13422" class="Symbol">{</a><a id="13423" href="Data.Nat.Properties.html#13423" class="Bound">m</a><a id="13424" class="Symbol">}</a> <a id="13426" class="Symbol"></a> <a id="13428" href="Data.Nat.Properties.html#13423" class="Bound">m</a> <a id="13430" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="13432" href="Data.Nat.Properties.html#13413" class="Bound">n</a> <a id="13434" class="Symbol"></a> <a id="13436" href="Data.Nat.Properties.html#13423" class="Bound">m</a> <a id="13438" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Function Operator"></a> <a id="13440" href="Data.Nat.Properties.html#13415" class="Bound">o</a><a id="13441" class="Symbol">)</a> <a id="13443" class="Symbol"></a> <a id="13445" href="Data.Nat.Properties.html#13413" class="Bound">n</a> <a id="13447" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="13449" href="Data.Nat.Properties.html#13415" class="Bound">o</a>
<a id="13451" href="Data.Nat.Properties.html#13394" class="Function">∀[m&lt;n⇒m≢o]⇒n≤o</a> <a id="13466" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="13474" href="Data.Nat.Properties.html#13474" class="Bound">n</a> <a id="13482" class="Symbol">_</a> <a id="13490" class="Symbol">=</a> <a id="13492" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="13496" href="Data.Nat.Properties.html#13394" class="Function">∀[m&lt;n⇒m≢o]⇒n≤o</a> <a id="13511" class="Symbol">(</a><a id="13512" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="13516" href="Data.Nat.Properties.html#13516" class="Bound">n</a><a id="13517" class="Symbol">)</a> <a id="13519" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="13527" href="Data.Nat.Properties.html#13527" class="Bound">m&lt;n⇒m≢0</a> <a id="13535" class="Symbol">=</a> <a id="13537" href="Relation.Nullary.Negation.Core.html#1226" class="Function">contradiction</a> <a id="13551" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a> <a id="13556" class="Symbol">(</a><a id="13557" href="Data.Nat.Properties.html#13527" class="Bound">m&lt;n⇒m≢0</a> <a id="13565" href="Data.Nat.Properties.html#12249" class="Function">0&lt;1+n</a><a id="13570" class="Symbol">)</a>
<a id="13572" href="Data.Nat.Properties.html#13394" class="Function">∀[m&lt;n⇒m≢o]⇒n≤o</a> <a id="13587" class="Symbol">(</a><a id="13588" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="13592" href="Data.Nat.Properties.html#13592" class="Bound">n</a><a id="13593" class="Symbol">)</a> <a id="13595" class="Symbol">(</a><a id="13596" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="13600" href="Data.Nat.Properties.html#13600" class="Bound">o</a><a id="13601" class="Symbol">)</a> <a id="13603" href="Data.Nat.Properties.html#13603" class="Bound">m&lt;n⇒m≢o</a> <a id="13611" class="Symbol">=</a> <a id="13613" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="13617" class="Symbol">(</a><a id="13618" href="Data.Nat.Properties.html#13394" class="Function">∀[m&lt;n⇒m≢o]⇒n≤o</a> <a id="13633" href="Data.Nat.Properties.html#13592" class="Bound">n</a> <a id="13635" href="Data.Nat.Properties.html#13600" class="Bound">o</a> <a id="13637" href="Data.Nat.Properties.html#13652" class="Function">rec</a><a id="13640" class="Symbol">)</a>
<a id="13644" class="Keyword">where</a>
<a id="13652" href="Data.Nat.Properties.html#13652" class="Function">rec</a> <a id="13656" class="Symbol">:</a> <a id="13658" class="Symbol"></a> <a id="13660" class="Symbol">{</a><a id="13661" href="Data.Nat.Properties.html#13661" class="Bound">m</a><a id="13662" class="Symbol">}</a> <a id="13664" class="Symbol"></a> <a id="13666" href="Data.Nat.Properties.html#13661" class="Bound">m</a> <a id="13668" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="13670" href="Data.Nat.Properties.html#13592" class="Bound">n</a> <a id="13672" class="Symbol"></a> <a id="13674" href="Data.Nat.Properties.html#13661" class="Bound">m</a> <a id="13676" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Function Operator"></a> <a id="13678" href="Data.Nat.Properties.html#13600" class="Bound">o</a>
<a id="13682" href="Data.Nat.Properties.html#13652" class="Function">rec</a> <a id="13686" href="Data.Nat.Properties.html#13686" class="Bound">o&lt;n</a> <a id="13690" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a> <a id="13695" class="Symbol">=</a> <a id="13697" href="Data.Nat.Properties.html#13603" class="Bound">m&lt;n⇒m≢o</a> <a id="13705" class="Symbol">(</a><a id="13706" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a> <a id="13710" href="Data.Nat.Properties.html#13686" class="Bound">o&lt;n</a><a id="13713" class="Symbol">)</a> <a id="13715" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="13721" class="Comment">------------------------------------------------------------------------</a>
<a id="13794" class="Comment">-- A module for reasoning about the _≤_ and _&lt;_ relations</a>
<a id="13852" class="Comment">------------------------------------------------------------------------</a>
<a id="13926" class="Keyword">module</a> <a id="≤-Reasoning"></a><a id="13933" href="Data.Nat.Properties.html#13933" class="Module">≤-Reasoning</a> <a id="13945" class="Keyword">where</a>
<a id="13953" class="Keyword">open</a> <a id="13958" class="Keyword">import</a> <a id="13965" href="Relation.Binary.Reasoning.Base.Triple.html" class="Module">Relation.Binary.Reasoning.Base.Triple</a>
<a id="14007" href="Data.Nat.Properties.html#6339" class="Function">≤-isPreorder</a>
<a id="14024" href="Data.Nat.Properties.html#9916" class="Function">&lt;-asym</a>
<a id="14035" href="Data.Nat.Properties.html#9985" class="Function">&lt;-trans</a>
<a id="14047" class="Symbol">(</a><a id="14048" href="Relation.Binary.PropositionalEquality.Core.html#2157" class="Function">resp₂</a> <a id="14054" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a><a id="14057" class="Symbol">)</a>
<a id="14063" href="Data.Nat.Properties.html#8416" class="Function">&lt;⇒≤</a>
<a id="14071" href="Data.Nat.Properties.html#10162" class="Function">&lt;-≤-trans</a>
<a id="14085" href="Data.Nat.Properties.html#10083" class="Function">≤-&lt;-trans</a>
<a id="14099" class="Keyword">public</a>
<a id="14110" class="Keyword">hiding</a> <a id="14117" class="Symbol">(</a><a id="14118" href="Relation.Binary.Reasoning.Syntax.html#7249" class="Function">step-≈</a><a id="14124" class="Symbol">;</a> <a id="14126" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">step-≈˘</a><a id="14133" class="Symbol">;</a> <a id="14135" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">step-≈-⟩</a><a id="14143" class="Symbol">;</a> <a id="14145" href="Relation.Binary.Reasoning.Syntax.html#7074" class="Function">step-≈-⟨</a><a id="14153" class="Symbol">)</a>
<a id="14156" class="Keyword">open</a> <a id="14161" href="Data.Nat.Properties.html#13933" class="Module">≤-Reasoning</a>
<a id="14174" class="Comment">------------------------------------------------------------------------</a>
<a id="14247" class="Comment">-- Properties of _+_</a>
<a id="14268" class="Comment">------------------------------------------------------------------------</a>
<a id="+-suc"></a><a id="14342" href="Data.Nat.Properties.html#14342" class="Function">+-suc</a> <a id="14348" class="Symbol">:</a> <a id="14350" class="Symbol"></a> <a id="14352" href="Data.Nat.Properties.html#14352" class="Bound">m</a> <a id="14354" href="Data.Nat.Properties.html#14354" class="Bound">n</a> <a id="14356" class="Symbol"></a> <a id="14358" href="Data.Nat.Properties.html#14352" class="Bound">m</a> <a id="14360" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="14362" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="14366" href="Data.Nat.Properties.html#14354" class="Bound">n</a> <a id="14368" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="14370" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="14374" class="Symbol">(</a><a id="14375" href="Data.Nat.Properties.html#14352" class="Bound">m</a> <a id="14377" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="14379" href="Data.Nat.Properties.html#14354" class="Bound">n</a><a id="14380" class="Symbol">)</a>
<a id="14382" href="Data.Nat.Properties.html#14342" class="Function">+-suc</a> <a id="14388" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="14396" href="Data.Nat.Properties.html#14396" class="Bound">n</a> <a id="14398" class="Symbol">=</a> <a id="14400" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="14405" href="Data.Nat.Properties.html#14342" class="Function">+-suc</a> <a id="14411" class="Symbol">(</a><a id="14412" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="14416" href="Data.Nat.Properties.html#14416" class="Bound">m</a><a id="14417" class="Symbol">)</a> <a id="14419" href="Data.Nat.Properties.html#14419" class="Bound">n</a> <a id="14421" class="Symbol">=</a> <a id="14423" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="14428" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="14432" class="Symbol">(</a><a id="14433" href="Data.Nat.Properties.html#14342" class="Function">+-suc</a> <a id="14439" href="Data.Nat.Properties.html#14416" class="Bound">m</a> <a id="14441" href="Data.Nat.Properties.html#14419" class="Bound">n</a><a id="14442" class="Symbol">)</a>
<a id="14445" class="Comment">------------------------------------------------------------------------</a>
<a id="14518" class="Comment">-- Algebraic properties of _+_</a>
<a id="+-assoc"></a><a id="14550" href="Data.Nat.Properties.html#14550" class="Function">+-assoc</a> <a id="14558" class="Symbol">:</a> <a id="14560" href="Algebra.Definitions.html#1548" class="Function">Associative</a> <a id="14572" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a>
<a id="14576" href="Data.Nat.Properties.html#14550" class="Function">+-assoc</a> <a id="14584" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="14592" class="Symbol">_</a> <a id="14594" class="Symbol">_</a> <a id="14596" class="Symbol">=</a> <a id="14598" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="14603" href="Data.Nat.Properties.html#14550" class="Function">+-assoc</a> <a id="14611" class="Symbol">(</a><a id="14612" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="14616" href="Data.Nat.Properties.html#14616" class="Bound">m</a><a id="14617" class="Symbol">)</a> <a id="14619" href="Data.Nat.Properties.html#14619" class="Bound">n</a> <a id="14621" href="Data.Nat.Properties.html#14621" class="Bound">o</a> <a id="14623" class="Symbol">=</a> <a id="14625" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="14630" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="14634" class="Symbol">(</a><a id="14635" href="Data.Nat.Properties.html#14550" class="Function">+-assoc</a> <a id="14643" href="Data.Nat.Properties.html#14616" class="Bound">m</a> <a id="14645" href="Data.Nat.Properties.html#14619" class="Bound">n</a> <a id="14647" href="Data.Nat.Properties.html#14621" class="Bound">o</a><a id="14648" class="Symbol">)</a>
<a id="+-identityˡ"></a><a id="14651" href="Data.Nat.Properties.html#14651" class="Function">+-identityˡ</a> <a id="14663" class="Symbol">:</a> <a id="14665" href="Algebra.Definitions.html#1708" class="Function">LeftIdentity</a> <a id="14678" class="Number">0</a> <a id="14680" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a>
<a id="14684" href="Data.Nat.Properties.html#14651" class="Function">+-identityˡ</a> <a id="14696" class="Symbol">_</a> <a id="14698" class="Symbol">=</a> <a id="14700" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="+-identityʳ"></a><a id="14706" href="Data.Nat.Properties.html#14706" class="Function">+-identityʳ</a> <a id="14718" class="Symbol">:</a> <a id="14720" href="Algebra.Definitions.html#1781" class="Function">RightIdentity</a> <a id="14734" class="Number">0</a> <a id="14736" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a>
<a id="14740" href="Data.Nat.Properties.html#14706" class="Function">+-identityʳ</a> <a id="14752" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="14760" class="Symbol">=</a> <a id="14762" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="14767" href="Data.Nat.Properties.html#14706" class="Function">+-identityʳ</a> <a id="14779" class="Symbol">(</a><a id="14780" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="14784" href="Data.Nat.Properties.html#14784" class="Bound">n</a><a id="14785" class="Symbol">)</a> <a id="14787" class="Symbol">=</a> <a id="14789" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="14794" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="14798" class="Symbol">(</a><a id="14799" href="Data.Nat.Properties.html#14706" class="Function">+-identityʳ</a> <a id="14811" href="Data.Nat.Properties.html#14784" class="Bound">n</a><a id="14812" class="Symbol">)</a>
<a id="+-identity"></a><a id="14815" href="Data.Nat.Properties.html#14815" class="Function">+-identity</a> <a id="14826" class="Symbol">:</a> <a id="14828" href="Algebra.Definitions.html#1856" class="Function">Identity</a> <a id="14837" class="Number">0</a> <a id="14839" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a>
<a id="14843" href="Data.Nat.Properties.html#14815" class="Function">+-identity</a> <a id="14854" class="Symbol">=</a> <a id="14856" href="Data.Nat.Properties.html#14651" class="Function">+-identityˡ</a> <a id="14868" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="14870" href="Data.Nat.Properties.html#14706" class="Function">+-identityʳ</a>
<a id="+-comm"></a><a id="14883" href="Data.Nat.Properties.html#14883" class="Function">+-comm</a> <a id="14890" class="Symbol">:</a> <a id="14892" href="Algebra.Definitions.html#1635" class="Function">Commutative</a> <a id="14904" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a>
<a id="14908" href="Data.Nat.Properties.html#14883" class="Function">+-comm</a> <a id="14915" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="14923" href="Data.Nat.Properties.html#14923" class="Bound">n</a> <a id="14925" class="Symbol">=</a> <a id="14927" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="14931" class="Symbol">(</a><a id="14932" href="Data.Nat.Properties.html#14706" class="Function">+-identityʳ</a> <a id="14944" href="Data.Nat.Properties.html#14923" class="Bound">n</a><a id="14945" class="Symbol">)</a>
<a id="14947" href="Data.Nat.Properties.html#14883" class="Function">+-comm</a> <a id="14954" class="Symbol">(</a><a id="14955" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="14959" href="Data.Nat.Properties.html#14959" class="Bound">m</a><a id="14960" class="Symbol">)</a> <a id="14962" href="Data.Nat.Properties.html#14962" class="Bound">n</a> <a id="14964" class="Symbol">=</a> <a id="14966" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a>
<a id="14983" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="14987" href="Data.Nat.Properties.html#14959" class="Bound">m</a> <a id="14989" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="14991" href="Data.Nat.Properties.html#14962" class="Bound">n</a> <a id="14995" href="Relation.Binary.Reasoning.Syntax.html#11017" class="Function">≡⟨⟩</a>
<a id="15001" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="15005" class="Symbol">(</a><a id="15006" href="Data.Nat.Properties.html#14959" class="Bound">m</a> <a id="15008" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="15010" href="Data.Nat.Properties.html#14962" class="Bound">n</a><a id="15011" class="Symbol">)</a> <a id="15013" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="15016" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="15021" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="15025" class="Symbol">(</a><a id="15026" href="Data.Nat.Properties.html#14883" class="Function">+-comm</a> <a id="15033" href="Data.Nat.Properties.html#14959" class="Bound">m</a> <a id="15035" href="Data.Nat.Properties.html#14962" class="Bound">n</a><a id="15036" class="Symbol">)</a> <a id="15038" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="15042" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="15046" class="Symbol">(</a><a id="15047" href="Data.Nat.Properties.html#14962" class="Bound">n</a> <a id="15049" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="15051" href="Data.Nat.Properties.html#14959" class="Bound">m</a><a id="15052" class="Symbol">)</a> <a id="15054" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="15057" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="15061" class="Symbol">(</a><a id="15062" href="Data.Nat.Properties.html#14342" class="Function">+-suc</a> <a id="15068" href="Data.Nat.Properties.html#14962" class="Bound">n</a> <a id="15070" href="Data.Nat.Properties.html#14959" class="Bound">m</a><a id="15071" class="Symbol">)</a> <a id="15073" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="15077" href="Data.Nat.Properties.html#14962" class="Bound">n</a> <a id="15079" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="15081" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="15085" href="Data.Nat.Properties.html#14959" class="Bound">m</a> <a id="15089" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="+-cancelˡ-≡"></a><a id="15092" href="Data.Nat.Properties.html#15092" class="Function">+-cancelˡ-≡</a> <a id="15104" class="Symbol">:</a> <a id="15106" href="Algebra.Definitions.html#4214" class="Function">LeftCancellative</a> <a id="15123" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a> <a id="15127" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a>
<a id="15131" href="Data.Nat.Properties.html#15092" class="Function">+-cancelˡ-≡</a> <a id="15143" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="15151" class="Symbol">_</a> <a id="15153" class="Symbol">_</a> <a id="15155" href="Data.Nat.Properties.html#15155" class="Bound">eq</a> <a id="15158" class="Symbol">=</a> <a id="15160" href="Data.Nat.Properties.html#15155" class="Bound">eq</a>
<a id="15163" href="Data.Nat.Properties.html#15092" class="Function">+-cancelˡ-≡</a> <a id="15175" class="Symbol">(</a><a id="15176" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="15180" href="Data.Nat.Properties.html#15180" class="Bound">m</a><a id="15181" class="Symbol">)</a> <a id="15183" class="Symbol">_</a> <a id="15185" class="Symbol">_</a> <a id="15187" href="Data.Nat.Properties.html#15187" class="Bound">eq</a> <a id="15190" class="Symbol">=</a> <a id="15192" href="Data.Nat.Properties.html#15092" class="Function">+-cancelˡ-≡</a> <a id="15204" href="Data.Nat.Properties.html#15180" class="Bound">m</a> <a id="15206" class="Symbol">_</a> <a id="15208" class="Symbol">_</a> <a id="15210" class="Symbol">(</a><a id="15211" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="15216" href="Data.Nat.Base.html#5266" class="Function">pred</a> <a id="15221" href="Data.Nat.Properties.html#15187" class="Bound">eq</a><a id="15223" class="Symbol">)</a>
<a id="+-cancelʳ-≡"></a><a id="15226" href="Data.Nat.Properties.html#15226" class="Function">+-cancelʳ-≡</a> <a id="15238" class="Symbol">:</a> <a id="15240" href="Algebra.Definitions.html#4307" class="Function">RightCancellative</a> <a id="15258" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a> <a id="15262" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a>
<a id="15266" href="Data.Nat.Properties.html#15226" class="Function">+-cancelʳ-≡</a> <a id="15278" class="Symbol">=</a> <a id="15280" href="Algebra.Consequences.Setoid.html#13066" class="Function">comm+cancelˡ⇒cancelʳ</a> <a id="15301" href="Data.Nat.Properties.html#14883" class="Function">+-comm</a> <a id="15308" href="Data.Nat.Properties.html#15092" class="Function">+-cancelˡ-≡</a>
<a id="+-cancel-≡"></a><a id="15321" href="Data.Nat.Properties.html#15321" class="Function">+-cancel-≡</a> <a id="15332" class="Symbol">:</a> <a id="15334" href="Algebra.Definitions.html#4402" class="Function">Cancellative</a> <a id="15347" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a> <a id="15351" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a>
<a id="15355" href="Data.Nat.Properties.html#15321" class="Function">+-cancel-≡</a> <a id="15366" class="Symbol">=</a> <a id="15368" href="Data.Nat.Properties.html#15092" class="Function">+-cancelˡ-≡</a> <a id="15380" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="15382" href="Data.Nat.Properties.html#15226" class="Function">+-cancelʳ-≡</a>
<a id="15395" class="Comment">------------------------------------------------------------------------</a>
<a id="15468" class="Comment">-- Structures</a>
<a id="+-isMagma"></a><a id="15483" href="Data.Nat.Properties.html#15483" class="Function">+-isMagma</a> <a id="15493" class="Symbol">:</a> <a id="15495" href="Algebra.Structures.html#1225" class="Record">IsMagma</a> <a id="15503" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a>
<a id="15507" href="Data.Nat.Properties.html#15483" class="Function">+-isMagma</a> <a id="15517" class="Symbol">=</a> <a id="15519" class="Keyword">record</a>
<a id="15528" class="Symbol">{</a> <a id="15530" href="Algebra.Structures.html#1277" class="Field">isEquivalence</a> <a id="15544" class="Symbol">=</a> <a id="15546" href="Relation.Binary.PropositionalEquality.Properties.html#5422" class="Function">isEquivalence</a>
<a id="15562" class="Symbol">;</a> <a id="15564" href="Algebra.Structures.html#1315" class="Field">∙-cong</a> <a id="15578" class="Symbol">=</a> <a id="15580" href="Relation.Binary.PropositionalEquality.Core.html#1395" class="Function">cong₂</a> <a id="15586" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a>
<a id="15592" class="Symbol">}</a>
<a id="+-isSemigroup"></a><a id="15595" href="Data.Nat.Properties.html#15595" class="Function">+-isSemigroup</a> <a id="15609" class="Symbol">:</a> <a id="15611" href="Algebra.Structures.html#2897" class="Record">IsSemigroup</a> <a id="15623" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a>
<a id="15627" href="Data.Nat.Properties.html#15595" class="Function">+-isSemigroup</a> <a id="15641" class="Symbol">=</a> <a id="15643" class="Keyword">record</a>
<a id="15652" class="Symbol">{</a> <a id="15654" href="Algebra.Structures.html#2953" class="Field">isMagma</a> <a id="15662" class="Symbol">=</a> <a id="15664" href="Data.Nat.Properties.html#15483" class="Function">+-isMagma</a>
<a id="15676" class="Symbol">;</a> <a id="15678" href="Algebra.Structures.html#2977" class="Field">assoc</a> <a id="15686" class="Symbol">=</a> <a id="15688" href="Data.Nat.Properties.html#14550" class="Function">+-assoc</a>
<a id="15698" class="Symbol">}</a>
<a id="+-isCommutativeSemigroup"></a><a id="15701" href="Data.Nat.Properties.html#15701" class="Function">+-isCommutativeSemigroup</a> <a id="15726" class="Symbol">:</a> <a id="15728" href="Algebra.Structures.html#3199" class="Record">IsCommutativeSemigroup</a> <a id="15751" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a>
<a id="15755" href="Data.Nat.Properties.html#15701" class="Function">+-isCommutativeSemigroup</a> <a id="15780" class="Symbol">=</a> <a id="15782" class="Keyword">record</a>
<a id="15791" class="Symbol">{</a> <a id="15793" href="Algebra.Structures.html#3266" class="Field">isSemigroup</a> <a id="15805" class="Symbol">=</a> <a id="15807" href="Data.Nat.Properties.html#15595" class="Function">+-isSemigroup</a>
<a id="15823" class="Symbol">;</a> <a id="15825" href="Algebra.Structures.html#3298" class="Field">comm</a> <a id="15837" class="Symbol">=</a> <a id="15839" href="Data.Nat.Properties.html#14883" class="Function">+-comm</a>
<a id="15848" class="Symbol">}</a>
<a id="+-0-isMonoid"></a><a id="15851" href="Data.Nat.Properties.html#15851" class="Function">+-0-isMonoid</a> <a id="15864" class="Symbol">:</a> <a id="15866" href="Algebra.Structures.html#3974" class="Record">IsMonoid</a> <a id="15875" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a> <a id="15879" class="Number">0</a>
<a id="15881" href="Data.Nat.Properties.html#15851" class="Function">+-0-isMonoid</a> <a id="15894" class="Symbol">=</a> <a id="15896" class="Keyword">record</a>
<a id="15905" class="Symbol">{</a> <a id="15907" href="Algebra.Structures.html#4035" class="Field">isSemigroup</a> <a id="15919" class="Symbol">=</a> <a id="15921" href="Data.Nat.Properties.html#15595" class="Function">+-isSemigroup</a>
<a id="15937" class="Symbol">;</a> <a id="15939" href="Algebra.Structures.html#4067" class="Field">identity</a> <a id="15951" class="Symbol">=</a> <a id="15953" href="Data.Nat.Properties.html#14815" class="Function">+-identity</a>
<a id="15966" class="Symbol">}</a>
<a id="+-0-isCommutativeMonoid"></a><a id="15969" href="Data.Nat.Properties.html#15969" class="Function">+-0-isCommutativeMonoid</a> <a id="15993" class="Symbol">:</a> <a id="15995" href="Algebra.Structures.html#4384" class="Record">IsCommutativeMonoid</a> <a id="16015" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a> <a id="16019" class="Number">0</a>
<a id="16021" href="Data.Nat.Properties.html#15969" class="Function">+-0-isCommutativeMonoid</a> <a id="16045" class="Symbol">=</a> <a id="16047" class="Keyword">record</a>
<a id="16056" class="Symbol">{</a> <a id="16058" href="Algebra.Structures.html#4456" class="Field">isMonoid</a> <a id="16067" class="Symbol">=</a> <a id="16069" href="Data.Nat.Properties.html#15851" class="Function">+-0-isMonoid</a>
<a id="16084" class="Symbol">;</a> <a id="16086" href="Algebra.Structures.html#4484" class="Field">comm</a> <a id="16095" class="Symbol">=</a> <a id="16097" href="Data.Nat.Properties.html#14883" class="Function">+-comm</a>
<a id="16106" class="Symbol">}</a>
<a id="16109" class="Comment">------------------------------------------------------------------------</a>
<a id="16182" class="Comment">-- Bundles</a>
<a id="+-magma"></a><a id="16194" href="Data.Nat.Properties.html#16194" class="Function">+-magma</a> <a id="16202" class="Symbol">:</a> <a id="16204" href="Algebra.Bundles.html#1141" class="Record">Magma</a> <a id="16210" href="Level.html#521" class="Function">0</a> <a id="16213" href="Level.html#521" class="Function">0</a>
<a id="16216" href="Data.Nat.Properties.html#16194" class="Function">+-magma</a> <a id="16224" class="Symbol">=</a> <a id="16226" class="Keyword">record</a>
<a id="16235" class="Symbol">{</a> <a id="16237" href="Algebra.Bundles.html#1293" class="Field">isMagma</a> <a id="16245" class="Symbol">=</a> <a id="16247" href="Data.Nat.Properties.html#15483" class="Function">+-isMagma</a>
<a id="16259" class="Symbol">}</a>
<a id="+-semigroup"></a><a id="16262" href="Data.Nat.Properties.html#16262" class="Function">+-semigroup</a> <a id="16274" class="Symbol">:</a> <a id="16276" href="Algebra.Bundles.html#4139" class="Record">Semigroup</a> <a id="16286" href="Level.html#521" class="Function">0</a> <a id="16289" href="Level.html#521" class="Function">0</a>
<a id="16292" href="Data.Nat.Properties.html#16262" class="Function">+-semigroup</a> <a id="16304" class="Symbol">=</a> <a id="16306" class="Keyword">record</a>
<a id="16315" class="Symbol">{</a> <a id="16317" href="Algebra.Bundles.html#4307" class="Field">isSemigroup</a> <a id="16329" class="Symbol">=</a> <a id="16331" href="Data.Nat.Properties.html#15595" class="Function">+-isSemigroup</a>
<a id="16347" class="Symbol">}</a>
<a id="+-commutativeSemigroup"></a><a id="16350" href="Data.Nat.Properties.html#16350" class="Function">+-commutativeSemigroup</a> <a id="16373" class="Symbol">:</a> <a id="16375" href="Algebra.Bundles.html#4864" class="Record">CommutativeSemigroup</a> <a id="16396" href="Level.html#521" class="Function">0</a> <a id="16399" href="Level.html#521" class="Function">0</a>
<a id="16402" href="Data.Nat.Properties.html#16350" class="Function">+-commutativeSemigroup</a> <a id="16425" class="Symbol">=</a> <a id="16427" class="Keyword">record</a>
<a id="16436" class="Symbol">{</a> <a id="16438" href="Algebra.Bundles.html#5079" class="Field">isCommutativeSemigroup</a> <a id="16461" class="Symbol">=</a> <a id="16463" href="Data.Nat.Properties.html#15701" class="Function">+-isCommutativeSemigroup</a>
<a id="16490" class="Symbol">}</a>
<a id="+-0-monoid"></a><a id="16493" href="Data.Nat.Properties.html#16493" class="Function">+-0-monoid</a> <a id="16504" class="Symbol">:</a> <a id="16506" href="Algebra.Bundles.html#6051" class="Record">Monoid</a> <a id="16513" href="Level.html#521" class="Function">0</a> <a id="16516" href="Level.html#521" class="Function">0</a>
<a id="16519" href="Data.Nat.Properties.html#16493" class="Function">+-0-monoid</a> <a id="16530" class="Symbol">=</a> <a id="16532" class="Keyword">record</a>
<a id="16541" class="Symbol">{</a> <a id="16543" href="Algebra.Bundles.html#6230" class="Field">isMonoid</a> <a id="16552" class="Symbol">=</a> <a id="16554" href="Data.Nat.Properties.html#15851" class="Function">+-0-isMonoid</a>
<a id="16569" class="Symbol">}</a>
<a id="+-0-commutativeMonoid"></a><a id="16572" href="Data.Nat.Properties.html#16572" class="Function">+-0-commutativeMonoid</a> <a id="16594" class="Symbol">:</a> <a id="16596" href="Algebra.Bundles.html#6622" class="Record">CommutativeMonoid</a> <a id="16614" href="Level.html#521" class="Function">0</a> <a id="16617" href="Level.html#521" class="Function">0</a>
<a id="16620" href="Data.Nat.Properties.html#16572" class="Function">+-0-commutativeMonoid</a> <a id="16642" class="Symbol">=</a> <a id="16644" class="Keyword">record</a>
<a id="16653" class="Symbol">{</a> <a id="16655" href="Algebra.Bundles.html#6856" class="Field">isCommutativeMonoid</a> <a id="16675" class="Symbol">=</a> <a id="16677" href="Data.Nat.Properties.html#15969" class="Function">+-0-isCommutativeMonoid</a>
<a id="16703" class="Symbol">}</a>
<a id="∸-magma"></a><a id="16706" href="Data.Nat.Properties.html#16706" class="Function">∸-magma</a> <a id="16714" class="Symbol">:</a> <a id="16716" href="Algebra.Bundles.html#1141" class="Record">Magma</a> <a id="16722" href="Level.html#521" class="Function">0</a> <a id="16725" href="Level.html#521" class="Function">0</a>
<a id="16728" href="Data.Nat.Properties.html#16706" class="Function">∸-magma</a> <a id="16736" class="Symbol">=</a> <a id="16738" href="Relation.Binary.PropositionalEquality.Algebra.html#797" class="Function">magma</a> <a id="16744" href="Data.Nat.Base.html#4456" class="Primitive Operator">_∸_</a>
<a id="16750" class="Comment">------------------------------------------------------------------------</a>
<a id="16823" class="Comment">-- Other properties of _+_ and _≡_</a>
<a id="m≢1+m+n"></a><a id="16859" href="Data.Nat.Properties.html#16859" class="Function">m≢1+m+n</a> <a id="16867" class="Symbol">:</a> <a id="16869" class="Symbol"></a> <a id="16871" href="Data.Nat.Properties.html#16871" class="Bound">m</a> <a id="16873" class="Symbol">{</a><a id="16874" href="Data.Nat.Properties.html#16874" class="Bound">n</a><a id="16875" class="Symbol">}</a> <a id="16877" class="Symbol"></a> <a id="16879" href="Data.Nat.Properties.html#16871" class="Bound">m</a> <a id="16881" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Function Operator"></a> <a id="16883" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="16887" class="Symbol">(</a><a id="16888" href="Data.Nat.Properties.html#16871" class="Bound">m</a> <a id="16890" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="16892" href="Data.Nat.Properties.html#16874" class="Bound">n</a><a id="16893" class="Symbol">)</a>
<a id="16895" href="Data.Nat.Properties.html#16859" class="Function">m≢1+m+n</a> <a id="16903" class="Symbol">(</a><a id="16904" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="16908" href="Data.Nat.Properties.html#16908" class="Bound">m</a><a id="16909" class="Symbol">)</a> <a id="16911" href="Data.Nat.Properties.html#16911" class="Bound">eq</a> <a id="16914" class="Symbol">=</a> <a id="16916" href="Data.Nat.Properties.html#16859" class="Function">m≢1+m+n</a> <a id="16924" href="Data.Nat.Properties.html#16908" class="Bound">m</a> <a id="16926" class="Symbol">(</a><a id="16927" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="16932" href="Data.Nat.Base.html#5266" class="Function">pred</a> <a id="16937" href="Data.Nat.Properties.html#16911" class="Bound">eq</a><a id="16939" class="Symbol">)</a>
<a id="m≢1+n+m"></a><a id="16942" href="Data.Nat.Properties.html#16942" class="Function">m≢1+n+m</a> <a id="16950" class="Symbol">:</a> <a id="16952" class="Symbol"></a> <a id="16954" href="Data.Nat.Properties.html#16954" class="Bound">m</a> <a id="16956" class="Symbol">{</a><a id="16957" href="Data.Nat.Properties.html#16957" class="Bound">n</a><a id="16958" class="Symbol">}</a> <a id="16960" class="Symbol"></a> <a id="16962" href="Data.Nat.Properties.html#16954" class="Bound">m</a> <a id="16964" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Function Operator"></a> <a id="16966" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="16970" class="Symbol">(</a><a id="16971" href="Data.Nat.Properties.html#16957" class="Bound">n</a> <a id="16973" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="16975" href="Data.Nat.Properties.html#16954" class="Bound">m</a><a id="16976" class="Symbol">)</a>
<a id="16978" href="Data.Nat.Properties.html#16942" class="Function">m≢1+n+m</a> <a id="16986" href="Data.Nat.Properties.html#16986" class="Bound">m</a> <a id="16988" href="Data.Nat.Properties.html#16988" class="Bound">m≡1+n+m</a> <a id="16996" class="Symbol">=</a> <a id="16998" href="Data.Nat.Properties.html#16859" class="Function">m≢1+m+n</a> <a id="17006" href="Data.Nat.Properties.html#16986" class="Bound">m</a> <a id="17008" class="Symbol">(</a><a id="17009" href="Relation.Binary.PropositionalEquality.Core.html#1757" class="Function">trans</a> <a id="17015" href="Data.Nat.Properties.html#16988" class="Bound">m≡1+n+m</a> <a id="17023" class="Symbol">(</a><a id="17024" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="17029" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="17033" class="Symbol">(</a><a id="17034" href="Data.Nat.Properties.html#14883" class="Function">+-comm</a> <a id="17041" class="Symbol">_</a> <a id="17043" href="Data.Nat.Properties.html#16986" class="Bound">m</a><a id="17044" class="Symbol">)))</a>
<a id="m+1+n≢m"></a><a id="17049" href="Data.Nat.Properties.html#17049" class="Function">m+1+n≢m</a> <a id="17057" class="Symbol">:</a> <a id="17059" class="Symbol"></a> <a id="17061" href="Data.Nat.Properties.html#17061" class="Bound">m</a> <a id="17063" class="Symbol">{</a><a id="17064" href="Data.Nat.Properties.html#17064" class="Bound">n</a><a id="17065" class="Symbol">}</a> <a id="17067" class="Symbol"></a> <a id="17069" href="Data.Nat.Properties.html#17061" class="Bound">m</a> <a id="17071" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="17073" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="17077" href="Data.Nat.Properties.html#17064" class="Bound">n</a> <a id="17079" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Function Operator"></a> <a id="17081" href="Data.Nat.Properties.html#17061" class="Bound">m</a>
<a id="17083" href="Data.Nat.Properties.html#17049" class="Function">m+1+n≢m</a> <a id="17091" class="Symbol">(</a><a id="17092" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="17096" href="Data.Nat.Properties.html#17096" class="Bound">m</a><a id="17097" class="Symbol">)</a> <a id="17099" class="Symbol">=</a> <a id="17101" class="Symbol">(</a><a id="17102" href="Data.Nat.Properties.html#17049" class="Function">m+1+n≢m</a> <a id="17110" href="Data.Nat.Properties.html#17096" class="Bound">m</a><a id="17111" class="Symbol">)</a> <a id="17113" href="Function.Base.html#1115" class="Function Operator"></a> <a id="17115" href="Data.Nat.Properties.html#2703" class="Function">suc-injective</a>
<a id="m+1+n≢n"></a><a id="17130" href="Data.Nat.Properties.html#17130" class="Function">m+1+n≢n</a> <a id="17138" class="Symbol">:</a> <a id="17140" class="Symbol"></a> <a id="17142" href="Data.Nat.Properties.html#17142" class="Bound">m</a> <a id="17144" class="Symbol">{</a><a id="17145" href="Data.Nat.Properties.html#17145" class="Bound">n</a><a id="17146" class="Symbol">}</a> <a id="17148" class="Symbol"></a> <a id="17150" href="Data.Nat.Properties.html#17142" class="Bound">m</a> <a id="17152" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="17154" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="17158" href="Data.Nat.Properties.html#17145" class="Bound">n</a> <a id="17160" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Function Operator"></a> <a id="17162" href="Data.Nat.Properties.html#17145" class="Bound">n</a>
<a id="17164" href="Data.Nat.Properties.html#17130" class="Function">m+1+n≢n</a> <a id="17172" href="Data.Nat.Properties.html#17172" class="Bound">m</a> <a id="17174" class="Symbol">{</a><a id="17175" href="Data.Nat.Properties.html#17175" class="Bound">n</a><a id="17176" class="Symbol">}</a> <a id="17178" class="Keyword">rewrite</a> <a id="17186" href="Data.Nat.Properties.html#14342" class="Function">+-suc</a> <a id="17192" href="Data.Nat.Properties.html#17172" class="Bound">m</a> <a id="17194" href="Data.Nat.Properties.html#17175" class="Bound">n</a> <a id="17196" class="Symbol">=</a> <a id="17198" href="Relation.Binary.PropositionalEquality.Core.html#2329" class="Function">≢-sym</a> <a id="17204" class="Symbol">(</a><a id="17205" href="Data.Nat.Properties.html#16942" class="Function">m≢1+n+m</a> <a id="17213" href="Data.Nat.Properties.html#17175" class="Bound">n</a><a id="17214" class="Symbol">)</a>
<a id="m+1+n≢0"></a><a id="17217" href="Data.Nat.Properties.html#17217" class="Function">m+1+n≢0</a> <a id="17225" class="Symbol">:</a> <a id="17227" class="Symbol"></a> <a id="17229" href="Data.Nat.Properties.html#17229" class="Bound">m</a> <a id="17231" class="Symbol">{</a><a id="17232" href="Data.Nat.Properties.html#17232" class="Bound">n</a><a id="17233" class="Symbol">}</a> <a id="17235" class="Symbol"></a> <a id="17237" href="Data.Nat.Properties.html#17229" class="Bound">m</a> <a id="17239" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="17241" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="17245" href="Data.Nat.Properties.html#17232" class="Bound">n</a> <a id="17247" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Function Operator"></a> <a id="17249" class="Number">0</a>
<a id="17251" href="Data.Nat.Properties.html#17217" class="Function">m+1+n≢0</a> <a id="17259" href="Data.Nat.Properties.html#17259" class="Bound">m</a> <a id="17261" class="Symbol">{</a><a id="17262" href="Data.Nat.Properties.html#17262" class="Bound">n</a><a id="17263" class="Symbol">}</a> <a id="17265" class="Keyword">rewrite</a> <a id="17273" href="Data.Nat.Properties.html#14342" class="Function">+-suc</a> <a id="17279" href="Data.Nat.Properties.html#17259" class="Bound">m</a> <a id="17281" href="Data.Nat.Properties.html#17262" class="Bound">n</a> <a id="17283" class="Symbol">=</a> <a id="17285" class="Symbol">λ()</a>
<a id="m+n≡0⇒m≡0"></a><a id="17290" href="Data.Nat.Properties.html#17290" class="Function">m+n≡0⇒m≡0</a> <a id="17300" class="Symbol">:</a> <a id="17302" class="Symbol"></a> <a id="17304" href="Data.Nat.Properties.html#17304" class="Bound">m</a> <a id="17306" class="Symbol">{</a><a id="17307" href="Data.Nat.Properties.html#17307" class="Bound">n</a><a id="17308" class="Symbol">}</a> <a id="17310" class="Symbol"></a> <a id="17312" href="Data.Nat.Properties.html#17304" class="Bound">m</a> <a id="17314" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="17316" href="Data.Nat.Properties.html#17307" class="Bound">n</a> <a id="17318" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="17320" class="Number">0</a> <a id="17322" class="Symbol"></a> <a id="17324" href="Data.Nat.Properties.html#17304" class="Bound">m</a> <a id="17326" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="17328" class="Number">0</a>
<a id="17330" href="Data.Nat.Properties.html#17290" class="Function">m+n≡0⇒m≡0</a> <a id="17340" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="17345" href="Data.Nat.Properties.html#17345" class="Bound">eq</a> <a id="17348" class="Symbol">=</a> <a id="17350" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="m+n≡0⇒n≡0"></a><a id="17356" href="Data.Nat.Properties.html#17356" class="Function">m+n≡0⇒n≡0</a> <a id="17366" class="Symbol">:</a> <a id="17368" class="Symbol"></a> <a id="17370" href="Data.Nat.Properties.html#17370" class="Bound">m</a> <a id="17372" class="Symbol">{</a><a id="17373" href="Data.Nat.Properties.html#17373" class="Bound">n</a><a id="17374" class="Symbol">}</a> <a id="17376" class="Symbol"></a> <a id="17378" href="Data.Nat.Properties.html#17370" class="Bound">m</a> <a id="17380" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="17382" href="Data.Nat.Properties.html#17373" class="Bound">n</a> <a id="17384" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="17386" class="Number">0</a> <a id="17388" class="Symbol"></a> <a id="17390" href="Data.Nat.Properties.html#17373" class="Bound">n</a> <a id="17392" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="17394" class="Number">0</a>
<a id="17396" href="Data.Nat.Properties.html#17356" class="Function">m+n≡0⇒n≡0</a> <a id="17406" href="Data.Nat.Properties.html#17406" class="Bound">m</a> <a id="17408" class="Symbol">{</a><a id="17409" href="Data.Nat.Properties.html#17409" class="Bound">n</a><a id="17410" class="Symbol">}</a> <a id="17412" href="Data.Nat.Properties.html#17412" class="Bound">m+n≡0</a> <a id="17418" class="Symbol">=</a> <a id="17420" href="Data.Nat.Properties.html#17290" class="Function">m+n≡0⇒m≡0</a> <a id="17430" href="Data.Nat.Properties.html#17409" class="Bound">n</a> <a id="17432" class="Symbol">(</a><a id="17433" href="Relation.Binary.PropositionalEquality.Core.html#1757" class="Function">trans</a> <a id="17439" class="Symbol">(</a><a id="17440" href="Data.Nat.Properties.html#14883" class="Function">+-comm</a> <a id="17447" href="Data.Nat.Properties.html#17409" class="Bound">n</a> <a id="17449" href="Data.Nat.Properties.html#17406" class="Bound">m</a><a id="17450" class="Symbol">)</a> <a id="17452" class="Symbol">(</a><a id="17453" href="Data.Nat.Properties.html#17412" class="Bound">m+n≡0</a><a id="17458" class="Symbol">))</a>
<a id="17462" class="Comment">------------------------------------------------------------------------</a>
<a id="17535" class="Comment">-- Properties of _+_ and _≤_/_&lt;_</a>
<a id="+-cancelˡ-≤"></a><a id="17569" href="Data.Nat.Properties.html#17569" class="Function">+-cancelˡ-≤</a> <a id="17581" class="Symbol">:</a> <a id="17583" href="Algebra.Definitions.html#4214" class="Function">LeftCancellative</a> <a id="17600" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="17604" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a>
<a id="17608" href="Data.Nat.Properties.html#17569" class="Function">+-cancelˡ-≤</a> <a id="17620" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="17628" class="Symbol">_</a> <a id="17630" class="Symbol">_</a> <a id="17632" href="Data.Nat.Properties.html#17632" class="Bound">le</a> <a id="17641" class="Symbol">=</a> <a id="17643" href="Data.Nat.Properties.html#17632" class="Bound">le</a>
<a id="17646" href="Data.Nat.Properties.html#17569" class="Function">+-cancelˡ-≤</a> <a id="17658" class="Symbol">(</a><a id="17659" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="17663" href="Data.Nat.Properties.html#17663" class="Bound">m</a><a id="17664" class="Symbol">)</a> <a id="17666" class="Symbol">_</a> <a id="17668" class="Symbol">_</a> <a id="17670" class="Symbol">(</a><a id="17671" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="17675" href="Data.Nat.Properties.html#17675" class="Bound">le</a><a id="17677" class="Symbol">)</a> <a id="17679" class="Symbol">=</a> <a id="17681" href="Data.Nat.Properties.html#17569" class="Function">+-cancelˡ-≤</a> <a id="17693" href="Data.Nat.Properties.html#17663" class="Bound">m</a> <a id="17695" class="Symbol">_</a> <a id="17697" class="Symbol">_</a> <a id="17699" href="Data.Nat.Properties.html#17675" class="Bound">le</a>
<a id="+-cancelʳ-≤"></a><a id="17703" href="Data.Nat.Properties.html#17703" class="Function">+-cancelʳ-≤</a> <a id="17715" class="Symbol">:</a> <a id="17717" href="Algebra.Definitions.html#4307" class="Function">RightCancellative</a> <a id="17735" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="17739" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a>
<a id="17743" href="Data.Nat.Properties.html#17703" class="Function">+-cancelʳ-≤</a> <a id="17755" href="Data.Nat.Properties.html#17755" class="Bound">m</a> <a id="17757" href="Data.Nat.Properties.html#17757" class="Bound">n</a> <a id="17759" href="Data.Nat.Properties.html#17759" class="Bound">o</a> <a id="17761" href="Data.Nat.Properties.html#17761" class="Bound">le</a> <a id="17764" class="Symbol">=</a>
<a id="17768" href="Data.Nat.Properties.html#17569" class="Function">+-cancelˡ-≤</a> <a id="17780" href="Data.Nat.Properties.html#17755" class="Bound">m</a> <a id="17782" class="Symbol">_</a> <a id="17784" class="Symbol">_</a> <a id="17786" class="Symbol">(</a><a id="17787" href="Relation.Binary.PropositionalEquality.Core.html#1863" class="Function">subst₂</a> <a id="17794" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="17798" class="Symbol">(</a><a id="17799" href="Data.Nat.Properties.html#14883" class="Function">+-comm</a> <a id="17806" href="Data.Nat.Properties.html#17757" class="Bound">n</a> <a id="17808" href="Data.Nat.Properties.html#17755" class="Bound">m</a><a id="17809" class="Symbol">)</a> <a id="17811" class="Symbol">(</a><a id="17812" href="Data.Nat.Properties.html#14883" class="Function">+-comm</a> <a id="17819" href="Data.Nat.Properties.html#17759" class="Bound">o</a> <a id="17821" href="Data.Nat.Properties.html#17755" class="Bound">m</a><a id="17822" class="Symbol">)</a> <a id="17824" href="Data.Nat.Properties.html#17761" class="Bound">le</a><a id="17826" class="Symbol">)</a>
<a id="+-cancel-≤"></a><a id="17829" href="Data.Nat.Properties.html#17829" class="Function">+-cancel-≤</a> <a id="17840" class="Symbol">:</a> <a id="17842" href="Algebra.Definitions.html#4402" class="Function">Cancellative</a> <a id="17855" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="17859" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a>
<a id="17863" href="Data.Nat.Properties.html#17829" class="Function">+-cancel-≤</a> <a id="17874" class="Symbol">=</a> <a id="17876" href="Data.Nat.Properties.html#17569" class="Function">+-cancelˡ-≤</a> <a id="17888" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="17890" href="Data.Nat.Properties.html#17703" class="Function">+-cancelʳ-≤</a>
<a id="+-cancelˡ-&lt;"></a><a id="17903" href="Data.Nat.Properties.html#17903" class="Function">+-cancelˡ-&lt;</a> <a id="17915" class="Symbol">:</a> <a id="17917" href="Algebra.Definitions.html#4214" class="Function">LeftCancellative</a> <a id="17934" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="17938" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a>
<a id="17942" href="Data.Nat.Properties.html#17903" class="Function">+-cancelˡ-&lt;</a> <a id="17954" href="Data.Nat.Properties.html#17954" class="Bound">m</a> <a id="17956" href="Data.Nat.Properties.html#17956" class="Bound">n</a> <a id="17958" href="Data.Nat.Properties.html#17958" class="Bound">o</a> <a id="17960" class="Symbol">=</a> <a id="17962" href="Data.Nat.Properties.html#17569" class="Function">+-cancelˡ-≤</a> <a id="17974" href="Data.Nat.Properties.html#17954" class="Bound">m</a> <a id="17976" class="Symbol">(</a><a id="17977" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="17981" href="Data.Nat.Properties.html#17956" class="Bound">n</a><a id="17982" class="Symbol">)</a> <a id="17984" href="Data.Nat.Properties.html#17958" class="Bound">o</a> <a id="17986" href="Function.Base.html#1115" class="Function Operator"></a> <a id="17988" href="Relation.Binary.PropositionalEquality.Core.html#1808" class="Function">subst</a> <a id="17994" class="Symbol">(</a><a id="17995" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤</a> <a id="17998" href="Data.Nat.Properties.html#17954" class="Bound">m</a> <a id="18000" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="18002" href="Data.Nat.Properties.html#17958" class="Bound">o</a><a id="18003" class="Symbol">)</a> <a id="18005" class="Symbol">(</a><a id="18006" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="18010" class="Symbol">(</a><a id="18011" href="Data.Nat.Properties.html#14342" class="Function">+-suc</a> <a id="18017" href="Data.Nat.Properties.html#17954" class="Bound">m</a> <a id="18019" href="Data.Nat.Properties.html#17956" class="Bound">n</a><a id="18020" class="Symbol">))</a>
<a id="+-cancelʳ-&lt;"></a><a id="18024" href="Data.Nat.Properties.html#18024" class="Function">+-cancelʳ-&lt;</a> <a id="18036" class="Symbol">:</a> <a id="18038" href="Algebra.Definitions.html#4307" class="Function">RightCancellative</a> <a id="18056" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="18060" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a>
<a id="18064" href="Data.Nat.Properties.html#18024" class="Function">+-cancelʳ-&lt;</a> <a id="18076" href="Data.Nat.Properties.html#18076" class="Bound">m</a> <a id="18078" href="Data.Nat.Properties.html#18078" class="Bound">n</a> <a id="18080" href="Data.Nat.Properties.html#18080" class="Bound">o</a> <a id="18082" href="Data.Nat.Properties.html#18082" class="Bound">n+m&lt;o+m</a> <a id="18090" class="Symbol">=</a> <a id="18092" href="Data.Nat.Properties.html#17703" class="Function">+-cancelʳ-≤</a> <a id="18104" href="Data.Nat.Properties.html#18076" class="Bound">m</a> <a id="18106" class="Symbol">(</a><a id="18107" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="18111" href="Data.Nat.Properties.html#18078" class="Bound">n</a><a id="18112" class="Symbol">)</a> <a id="18114" href="Data.Nat.Properties.html#18080" class="Bound">o</a> <a id="18116" href="Data.Nat.Properties.html#18082" class="Bound">n+m&lt;o+m</a>
<a id="+-cancel-&lt;"></a><a id="18125" href="Data.Nat.Properties.html#18125" class="Function">+-cancel-&lt;</a> <a id="18136" class="Symbol">:</a> <a id="18138" href="Algebra.Definitions.html#4402" class="Function">Cancellative</a> <a id="18151" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="18155" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a>
<a id="18159" href="Data.Nat.Properties.html#18125" class="Function">+-cancel-&lt;</a> <a id="18170" class="Symbol">=</a> <a id="18172" href="Data.Nat.Properties.html#17903" class="Function">+-cancelˡ-&lt;</a> <a id="18184" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="18186" href="Data.Nat.Properties.html#18024" class="Function">+-cancelʳ-&lt;</a>
<a id="m≤n⇒m≤o+n"></a><a id="18199" href="Data.Nat.Properties.html#18199" class="Function">m≤n⇒m≤o+n</a> <a id="18209" class="Symbol">:</a> <a id="18211" class="Symbol"></a> <a id="18213" href="Data.Nat.Properties.html#18213" class="Bound">o</a> <a id="18215" class="Symbol"></a> <a id="18217" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="18219" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="18221" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="18223" class="Symbol"></a> <a id="18225" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="18227" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="18229" href="Data.Nat.Properties.html#18213" class="Bound">o</a> <a id="18231" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="18233" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="18235" href="Data.Nat.Properties.html#18199" class="Function">m≤n⇒m≤o+n</a> <a id="18245" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="18253" href="Data.Nat.Properties.html#18253" class="Bound">m≤n</a> <a id="18257" class="Symbol">=</a> <a id="18259" href="Data.Nat.Properties.html#18253" class="Bound">m≤n</a>
<a id="18263" href="Data.Nat.Properties.html#18199" class="Function">m≤n⇒m≤o+n</a> <a id="18273" class="Symbol">(</a><a id="18274" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="18278" href="Data.Nat.Properties.html#18278" class="Bound">o</a><a id="18279" class="Symbol">)</a> <a id="18281" href="Data.Nat.Properties.html#18281" class="Bound">m≤n</a> <a id="18285" class="Symbol">=</a> <a id="18287" href="Data.Nat.Properties.html#7849" class="Function">m≤n⇒m≤1+n</a> <a id="18297" class="Symbol">(</a><a id="18298" href="Data.Nat.Properties.html#18199" class="Function">m≤n⇒m≤o+n</a> <a id="18308" href="Data.Nat.Properties.html#18278" class="Bound">o</a> <a id="18310" href="Data.Nat.Properties.html#18281" class="Bound">m≤n</a><a id="18313" class="Symbol">)</a>
<a id="m≤n⇒m≤n+o"></a><a id="18316" href="Data.Nat.Properties.html#18316" class="Function">m≤n⇒m≤n+o</a> <a id="18326" class="Symbol">:</a> <a id="18328" class="Symbol"></a> <a id="18330" href="Data.Nat.Properties.html#18330" class="Bound">o</a> <a id="18332" class="Symbol"></a> <a id="18334" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="18336" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="18338" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="18340" class="Symbol"></a> <a id="18342" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="18344" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="18346" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="18348" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="18350" href="Data.Nat.Properties.html#18330" class="Bound">o</a>
<a id="18352" href="Data.Nat.Properties.html#18316" class="Function">m≤n⇒m≤n+o</a> <a id="18362" class="Symbol">{</a><a id="18363" href="Data.Nat.Properties.html#18363" class="Bound">m</a><a id="18364" class="Symbol">}</a> <a id="18366" href="Data.Nat.Properties.html#18366" class="Bound">o</a> <a id="18368" href="Data.Nat.Properties.html#18368" class="Bound">m≤n</a> <a id="18372" class="Symbol">=</a> <a id="18374" href="Relation.Binary.PropositionalEquality.Core.html#1808" class="Function">subst</a> <a id="18380" class="Symbol">(</a><a id="18381" href="Data.Nat.Properties.html#18363" class="Bound">m</a> <a id="18383" href="Data.Nat.Base.html#1691" class="Datatype Operator">≤_</a><a id="18385" class="Symbol">)</a> <a id="18387" class="Symbol">(</a><a id="18388" href="Data.Nat.Properties.html#14883" class="Function">+-comm</a> <a id="18395" href="Data.Nat.Properties.html#18366" class="Bound">o</a> <a id="18397" class="Symbol">_)</a> <a id="18400" class="Symbol">(</a><a id="18401" href="Data.Nat.Properties.html#18199" class="Function">m≤n⇒m≤o+n</a> <a id="18411" href="Data.Nat.Properties.html#18366" class="Bound">o</a> <a id="18413" href="Data.Nat.Properties.html#18368" class="Bound">m≤n</a><a id="18416" class="Symbol">)</a>
<a id="m≤m+n"></a><a id="18419" href="Data.Nat.Properties.html#18419" class="Function">m≤m+n</a> <a id="18425" class="Symbol">:</a> <a id="18427" class="Symbol"></a> <a id="18429" href="Data.Nat.Properties.html#18429" class="Bound">m</a> <a id="18431" href="Data.Nat.Properties.html#18431" class="Bound">n</a> <a id="18433" class="Symbol"></a> <a id="18435" href="Data.Nat.Properties.html#18429" class="Bound">m</a> <a id="18437" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="18439" href="Data.Nat.Properties.html#18429" class="Bound">m</a> <a id="18441" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="18443" href="Data.Nat.Properties.html#18431" class="Bound">n</a>
<a id="18445" href="Data.Nat.Properties.html#18419" class="Function">m≤m+n</a> <a id="18451" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="18459" href="Data.Nat.Properties.html#18459" class="Bound">n</a> <a id="18461" class="Symbol">=</a> <a id="18463" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="18467" href="Data.Nat.Properties.html#18419" class="Function">m≤m+n</a> <a id="18473" class="Symbol">(</a><a id="18474" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="18478" href="Data.Nat.Properties.html#18478" class="Bound">m</a><a id="18479" class="Symbol">)</a> <a id="18481" href="Data.Nat.Properties.html#18481" class="Bound">n</a> <a id="18483" class="Symbol">=</a> <a id="18485" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="18489" class="Symbol">(</a><a id="18490" href="Data.Nat.Properties.html#18419" class="Function">m≤m+n</a> <a id="18496" href="Data.Nat.Properties.html#18478" class="Bound">m</a> <a id="18498" href="Data.Nat.Properties.html#18481" class="Bound">n</a><a id="18499" class="Symbol">)</a>
<a id="m≤n+m"></a><a id="18502" href="Data.Nat.Properties.html#18502" class="Function">m≤n+m</a> <a id="18508" class="Symbol">:</a> <a id="18510" class="Symbol"></a> <a id="18512" href="Data.Nat.Properties.html#18512" class="Bound">m</a> <a id="18514" href="Data.Nat.Properties.html#18514" class="Bound">n</a> <a id="18516" class="Symbol"></a> <a id="18518" href="Data.Nat.Properties.html#18512" class="Bound">m</a> <a id="18520" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="18522" href="Data.Nat.Properties.html#18514" class="Bound">n</a> <a id="18524" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="18526" href="Data.Nat.Properties.html#18512" class="Bound">m</a>
<a id="18528" href="Data.Nat.Properties.html#18502" class="Function">m≤n+m</a> <a id="18534" href="Data.Nat.Properties.html#18534" class="Bound">m</a> <a id="18536" href="Data.Nat.Properties.html#18536" class="Bound">n</a> <a id="18538" class="Symbol">=</a> <a id="18540" href="Relation.Binary.PropositionalEquality.Core.html#1808" class="Function">subst</a> <a id="18546" class="Symbol">(</a><a id="18547" href="Data.Nat.Properties.html#18534" class="Bound">m</a> <a id="18549" href="Data.Nat.Base.html#1691" class="Datatype Operator">≤_</a><a id="18551" class="Symbol">)</a> <a id="18553" class="Symbol">(</a><a id="18554" href="Data.Nat.Properties.html#14883" class="Function">+-comm</a> <a id="18561" href="Data.Nat.Properties.html#18534" class="Bound">m</a> <a id="18563" href="Data.Nat.Properties.html#18536" class="Bound">n</a><a id="18564" class="Symbol">)</a> <a id="18566" class="Symbol">(</a><a id="18567" href="Data.Nat.Properties.html#18419" class="Function">m≤m+n</a> <a id="18573" href="Data.Nat.Properties.html#18534" class="Bound">m</a> <a id="18575" href="Data.Nat.Properties.html#18536" class="Bound">n</a><a id="18576" class="Symbol">)</a>
<a id="m+n≤o⇒m≤o"></a><a id="18579" href="Data.Nat.Properties.html#18579" class="Function">m+n≤o⇒m≤o</a> <a id="18589" class="Symbol">:</a> <a id="18591" class="Symbol"></a> <a id="18593" href="Data.Nat.Properties.html#18593" class="Bound">m</a> <a id="18595" class="Symbol">{</a><a id="18596" href="Data.Nat.Properties.html#18596" class="Bound">n</a> <a id="18598" href="Data.Nat.Properties.html#18598" class="Bound">o</a><a id="18599" class="Symbol">}</a> <a id="18601" class="Symbol"></a> <a id="18603" href="Data.Nat.Properties.html#18593" class="Bound">m</a> <a id="18605" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="18607" href="Data.Nat.Properties.html#18596" class="Bound">n</a> <a id="18609" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="18611" href="Data.Nat.Properties.html#18598" class="Bound">o</a> <a id="18613" class="Symbol"></a> <a id="18615" href="Data.Nat.Properties.html#18593" class="Bound">m</a> <a id="18617" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="18619" href="Data.Nat.Properties.html#18598" class="Bound">o</a>
<a id="18621" href="Data.Nat.Properties.html#18579" class="Function">m+n≤o⇒m≤o</a> <a id="18631" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="18639" href="Data.Nat.Properties.html#18639" class="Bound">m+n≤o</a> <a id="18651" class="Symbol">=</a> <a id="18653" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="18657" href="Data.Nat.Properties.html#18579" class="Function">m+n≤o⇒m≤o</a> <a id="18667" class="Symbol">(</a><a id="18668" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="18672" href="Data.Nat.Properties.html#18672" class="Bound">m</a><a id="18673" class="Symbol">)</a> <a id="18675" class="Symbol">(</a><a id="18676" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="18680" href="Data.Nat.Properties.html#18680" class="Bound">m+n≤o</a><a id="18685" class="Symbol">)</a> <a id="18687" class="Symbol">=</a> <a id="18689" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="18693" class="Symbol">(</a><a id="18694" href="Data.Nat.Properties.html#18579" class="Function">m+n≤o⇒m≤o</a> <a id="18704" href="Data.Nat.Properties.html#18672" class="Bound">m</a> <a id="18706" href="Data.Nat.Properties.html#18680" class="Bound">m+n≤o</a><a id="18711" class="Symbol">)</a>
<a id="m+n≤o⇒n≤o"></a><a id="18714" href="Data.Nat.Properties.html#18714" class="Function">m+n≤o⇒n≤o</a> <a id="18724" class="Symbol">:</a> <a id="18726" class="Symbol"></a> <a id="18728" href="Data.Nat.Properties.html#18728" class="Bound">m</a> <a id="18730" class="Symbol">{</a><a id="18731" href="Data.Nat.Properties.html#18731" class="Bound">n</a> <a id="18733" href="Data.Nat.Properties.html#18733" class="Bound">o</a><a id="18734" class="Symbol">}</a> <a id="18736" class="Symbol"></a> <a id="18738" href="Data.Nat.Properties.html#18728" class="Bound">m</a> <a id="18740" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="18742" href="Data.Nat.Properties.html#18731" class="Bound">n</a> <a id="18744" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="18746" href="Data.Nat.Properties.html#18733" class="Bound">o</a> <a id="18748" class="Symbol"></a> <a id="18750" href="Data.Nat.Properties.html#18731" class="Bound">n</a> <a id="18752" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="18754" href="Data.Nat.Properties.html#18733" class="Bound">o</a>
<a id="18756" href="Data.Nat.Properties.html#18714" class="Function">m+n≤o⇒n≤o</a> <a id="18766" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="18774" href="Data.Nat.Properties.html#18774" class="Bound">n≤o</a> <a id="18780" class="Symbol">=</a> <a id="18782" href="Data.Nat.Properties.html#18774" class="Bound">n≤o</a>
<a id="18786" href="Data.Nat.Properties.html#18714" class="Function">m+n≤o⇒n≤o</a> <a id="18796" class="Symbol">(</a><a id="18797" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="18801" href="Data.Nat.Properties.html#18801" class="Bound">m</a><a id="18802" class="Symbol">)</a> <a id="18804" href="Data.Nat.Properties.html#18804" class="Bound">m+n&lt;o</a> <a id="18810" class="Symbol">=</a> <a id="18812" href="Data.Nat.Properties.html#18714" class="Function">m+n≤o⇒n≤o</a> <a id="18822" href="Data.Nat.Properties.html#18801" class="Bound">m</a> <a id="18824" class="Symbol">(</a><a id="18825" href="Data.Nat.Properties.html#8416" class="Function">&lt;⇒≤</a> <a id="18829" href="Data.Nat.Properties.html#18804" class="Bound">m+n&lt;o</a><a id="18834" class="Symbol">)</a>
<a id="+-mono-≤"></a><a id="18837" href="Data.Nat.Properties.html#18837" class="Function">+-mono-≤</a> <a id="18846" class="Symbol">:</a> <a id="18848" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a> <a id="18852" href="Relation.Binary.Core.html#1703" class="Function Operator">Preserves₂</a> <a id="18863" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="18867" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="18869" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="18873" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="18875" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="18879" href="Data.Nat.Properties.html#18837" class="Function">+-mono-≤</a> <a id="18888" class="Symbol">{_}</a> <a id="18892" class="Symbol">{</a><a id="18893" href="Data.Nat.Properties.html#18893" class="Bound">m</a><a id="18894" class="Symbol">}</a> <a id="18896" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="18906" href="Data.Nat.Properties.html#18906" class="Bound">o≤p</a> <a id="18910" class="Symbol">=</a> <a id="18912" href="Data.Nat.Properties.html#5425" class="Function">≤-trans</a> <a id="18920" href="Data.Nat.Properties.html#18906" class="Bound">o≤p</a> <a id="18924" class="Symbol">(</a><a id="18925" href="Data.Nat.Properties.html#18502" class="Function">m≤n+m</a> <a id="18931" class="Symbol">_</a> <a id="18933" href="Data.Nat.Properties.html#18893" class="Bound">m</a><a id="18934" class="Symbol">)</a>
<a id="18936" href="Data.Nat.Properties.html#18837" class="Function">+-mono-≤</a> <a id="18945" class="Symbol">{_}</a> <a id="18949" class="Symbol">{_}</a> <a id="18953" class="Symbol">(</a><a id="18954" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="18958" href="Data.Nat.Properties.html#18958" class="Bound">m≤n</a><a id="18961" class="Symbol">)</a> <a id="18963" href="Data.Nat.Properties.html#18963" class="Bound">o≤p</a> <a id="18967" class="Symbol">=</a> <a id="18969" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="18973" class="Symbol">(</a><a id="18974" href="Data.Nat.Properties.html#18837" class="Function">+-mono-≤</a> <a id="18983" href="Data.Nat.Properties.html#18958" class="Bound">m≤n</a> <a id="18987" href="Data.Nat.Properties.html#18963" class="Bound">o≤p</a><a id="18990" class="Symbol">)</a>
<a id="+-monoˡ-≤"></a><a id="18993" href="Data.Nat.Properties.html#18993" class="Function">+-monoˡ-≤</a> <a id="19003" class="Symbol">:</a> <a id="19005" class="Symbol"></a> <a id="19007" href="Data.Nat.Properties.html#19007" class="Bound">n</a> <a id="19009" class="Symbol"></a> <a id="19011" class="Symbol">(</a><a id="19012" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+</a> <a id="19015" href="Data.Nat.Properties.html#19007" class="Bound">n</a><a id="19016" class="Symbol">)</a> <a id="19018" href="Relation.Binary.Core.html#1577" class="Function Operator">Preserves</a> <a id="19028" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="19032" href="Relation.Binary.Core.html#1577" class="Function Operator"></a> <a id="19034" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="19038" href="Data.Nat.Properties.html#18993" class="Function">+-monoˡ-≤</a> <a id="19048" href="Data.Nat.Properties.html#19048" class="Bound">n</a> <a id="19050" href="Data.Nat.Properties.html#19050" class="Bound">m≤o</a> <a id="19054" class="Symbol">=</a> <a id="19056" href="Data.Nat.Properties.html#18837" class="Function">+-mono-≤</a> <a id="19065" href="Data.Nat.Properties.html#19050" class="Bound">m≤o</a> <a id="19069" class="Symbol">(</a><a id="19070" href="Data.Nat.Properties.html#5242" class="Function">≤-refl</a> <a id="19077" class="Symbol">{</a><a id="19078" href="Data.Nat.Properties.html#19048" class="Bound">n</a><a id="19079" class="Symbol">})</a>
<a id="+-monoʳ-≤"></a><a id="19083" href="Data.Nat.Properties.html#19083" class="Function">+-monoʳ-≤</a> <a id="19093" class="Symbol">:</a> <a id="19095" class="Symbol"></a> <a id="19097" href="Data.Nat.Properties.html#19097" class="Bound">n</a> <a id="19099" class="Symbol"></a> <a id="19101" class="Symbol">(</a><a id="19102" href="Data.Nat.Properties.html#19097" class="Bound">n</a> <a id="19104" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+_</a><a id="19106" class="Symbol">)</a> <a id="19108" href="Relation.Binary.Core.html#1577" class="Function Operator">Preserves</a> <a id="19118" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="19122" href="Relation.Binary.Core.html#1577" class="Function Operator"></a> <a id="19124" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="19128" href="Data.Nat.Properties.html#19083" class="Function">+-monoʳ-≤</a> <a id="19138" href="Data.Nat.Properties.html#19138" class="Bound">n</a> <a id="19140" href="Data.Nat.Properties.html#19140" class="Bound">m≤o</a> <a id="19144" class="Symbol">=</a> <a id="19146" href="Data.Nat.Properties.html#18837" class="Function">+-mono-≤</a> <a id="19155" class="Symbol">(</a><a id="19156" href="Data.Nat.Properties.html#5242" class="Function">≤-refl</a> <a id="19163" class="Symbol">{</a><a id="19164" href="Data.Nat.Properties.html#19138" class="Bound">n</a><a id="19165" class="Symbol">})</a> <a id="19168" href="Data.Nat.Properties.html#19140" class="Bound">m≤o</a>
<a id="+-mono-&lt;-≤"></a><a id="19173" href="Data.Nat.Properties.html#19173" class="Function">+-mono-&lt;-≤</a> <a id="19184" class="Symbol">:</a> <a id="19186" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a> <a id="19190" href="Relation.Binary.Core.html#1703" class="Function Operator">Preserves₂</a> <a id="19201" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="19205" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="19207" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="19211" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="19213" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a>
<a id="19217" href="Data.Nat.Properties.html#19173" class="Function">+-mono-&lt;-≤</a> <a id="19228" class="Symbol">{_}</a> <a id="19232" class="Symbol">{</a><a id="19233" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="19237" href="Data.Nat.Properties.html#19237" class="Bound">n</a><a id="19238" class="Symbol">}</a> <a id="19240" href="Data.Nat.Base.html#1873" class="InductiveConstructor">z&lt;s</a> <a id="19258" href="Data.Nat.Properties.html#19258" class="Bound">o≤p</a> <a id="19262" class="Symbol">=</a> <a id="19264" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="19268" class="Symbol">(</a><a id="19269" href="Data.Nat.Properties.html#18199" class="Function">m≤n⇒m≤o+n</a> <a id="19279" href="Data.Nat.Properties.html#19237" class="Bound">n</a> <a id="19281" href="Data.Nat.Properties.html#19258" class="Bound">o≤p</a><a id="19284" class="Symbol">)</a>
<a id="19286" href="Data.Nat.Properties.html#19173" class="Function">+-mono-&lt;-≤</a> <a id="19297" class="Symbol">{_}</a> <a id="19301" class="Symbol">{_}</a> <a id="19309" class="Symbol">(</a><a id="19310" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a> <a id="19314" href="Data.Nat.Properties.html#19314" class="Bound">m&lt;n</a><a id="19317" class="Symbol">@(</a><a id="19319" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="19323" class="Symbol">_))</a> <a id="19327" href="Data.Nat.Properties.html#19327" class="Bound">o≤p</a> <a id="19331" class="Symbol">=</a> <a id="19333" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="19337" class="Symbol">(</a><a id="19338" href="Data.Nat.Properties.html#19173" class="Function">+-mono-&lt;-≤</a> <a id="19349" href="Data.Nat.Properties.html#19314" class="Bound">m&lt;n</a> <a id="19353" href="Data.Nat.Properties.html#19327" class="Bound">o≤p</a><a id="19356" class="Symbol">)</a>
<a id="+-mono-≤-&lt;"></a><a id="19359" href="Data.Nat.Properties.html#19359" class="Function">+-mono-≤-&lt;</a> <a id="19370" class="Symbol">:</a> <a id="19372" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a> <a id="19376" href="Relation.Binary.Core.html#1703" class="Function Operator">Preserves₂</a> <a id="19387" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="19391" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="19393" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="19397" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="19399" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a>
<a id="19403" href="Data.Nat.Properties.html#19359" class="Function">+-mono-≤-&lt;</a> <a id="19414" class="Symbol">{_}</a> <a id="19418" class="Symbol">{</a><a id="19419" href="Data.Nat.Properties.html#19419" class="Bound">n</a><a id="19420" class="Symbol">}</a> <a id="19422" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="19432" href="Data.Nat.Properties.html#19432" class="Bound">o&lt;p</a> <a id="19436" class="Symbol">=</a> <a id="19438" href="Data.Nat.Properties.html#5425" class="Function">≤-trans</a> <a id="19446" href="Data.Nat.Properties.html#19432" class="Bound">o&lt;p</a> <a id="19450" class="Symbol">(</a><a id="19451" href="Data.Nat.Properties.html#18502" class="Function">m≤n+m</a> <a id="19457" class="Symbol">_</a> <a id="19459" href="Data.Nat.Properties.html#19419" class="Bound">n</a><a id="19460" class="Symbol">)</a>
<a id="19462" href="Data.Nat.Properties.html#19359" class="Function">+-mono-≤-&lt;</a> <a id="19473" class="Symbol">{_}</a> <a id="19477" class="Symbol">{_}</a> <a id="19481" class="Symbol">(</a><a id="19482" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="19486" href="Data.Nat.Properties.html#19486" class="Bound">m≤n</a><a id="19489" class="Symbol">)</a> <a id="19491" href="Data.Nat.Properties.html#19491" class="Bound">o&lt;p</a> <a id="19495" class="Symbol">=</a> <a id="19497" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="19501" class="Symbol">(</a><a id="19502" href="Data.Nat.Properties.html#19359" class="Function">+-mono-≤-&lt;</a> <a id="19513" href="Data.Nat.Properties.html#19486" class="Bound">m≤n</a> <a id="19517" href="Data.Nat.Properties.html#19491" class="Bound">o&lt;p</a><a id="19520" class="Symbol">)</a>
<a id="+-mono-&lt;"></a><a id="19523" href="Data.Nat.Properties.html#19523" class="Function">+-mono-&lt;</a> <a id="19532" class="Symbol">:</a> <a id="19534" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a> <a id="19538" href="Relation.Binary.Core.html#1703" class="Function Operator">Preserves₂</a> <a id="19549" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="19553" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="19555" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="19559" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="19561" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a>
<a id="19565" href="Data.Nat.Properties.html#19523" class="Function">+-mono-&lt;</a> <a id="19574" href="Data.Nat.Properties.html#19574" class="Bound">m≤n</a> <a id="19578" class="Symbol">=</a> <a id="19580" href="Data.Nat.Properties.html#19359" class="Function">+-mono-≤-&lt;</a> <a id="19591" class="Symbol">(</a><a id="19592" href="Data.Nat.Properties.html#8416" class="Function">&lt;⇒≤</a> <a id="19596" href="Data.Nat.Properties.html#19574" class="Bound">m≤n</a><a id="19599" class="Symbol">)</a>
<a id="+-monoˡ-&lt;"></a><a id="19602" href="Data.Nat.Properties.html#19602" class="Function">+-monoˡ-&lt;</a> <a id="19612" class="Symbol">:</a> <a id="19614" class="Symbol"></a> <a id="19616" href="Data.Nat.Properties.html#19616" class="Bound">n</a> <a id="19618" class="Symbol"></a> <a id="19620" class="Symbol">(</a><a id="19621" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+</a> <a id="19624" href="Data.Nat.Properties.html#19616" class="Bound">n</a><a id="19625" class="Symbol">)</a> <a id="19627" href="Relation.Binary.Core.html#1577" class="Function Operator">Preserves</a> <a id="19637" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="19641" href="Relation.Binary.Core.html#1577" class="Function Operator"></a> <a id="19643" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a>
<a id="19647" href="Data.Nat.Properties.html#19602" class="Function">+-monoˡ-&lt;</a> <a id="19657" href="Data.Nat.Properties.html#19657" class="Bound">n</a> <a id="19659" class="Symbol">=</a> <a id="19661" href="Data.Nat.Properties.html#18993" class="Function">+-monoˡ-≤</a> <a id="19671" href="Data.Nat.Properties.html#19657" class="Bound">n</a>
<a id="+-monoʳ-&lt;"></a><a id="19674" href="Data.Nat.Properties.html#19674" class="Function">+-monoʳ-&lt;</a> <a id="19684" class="Symbol">:</a> <a id="19686" class="Symbol"></a> <a id="19688" href="Data.Nat.Properties.html#19688" class="Bound">n</a> <a id="19690" class="Symbol"></a> <a id="19692" class="Symbol">(</a><a id="19693" href="Data.Nat.Properties.html#19688" class="Bound">n</a> <a id="19695" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+_</a><a id="19697" class="Symbol">)</a> <a id="19699" href="Relation.Binary.Core.html#1577" class="Function Operator">Preserves</a> <a id="19709" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="19713" href="Relation.Binary.Core.html#1577" class="Function Operator"></a> <a id="19715" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a>
<a id="19719" href="Data.Nat.Properties.html#19674" class="Function">+-monoʳ-&lt;</a> <a id="19729" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="19737" href="Data.Nat.Properties.html#19737" class="Bound">m≤o</a> <a id="19741" class="Symbol">=</a> <a id="19743" href="Data.Nat.Properties.html#19737" class="Bound">m≤o</a>
<a id="19747" href="Data.Nat.Properties.html#19674" class="Function">+-monoʳ-&lt;</a> <a id="19757" class="Symbol">(</a><a id="19758" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="19762" href="Data.Nat.Properties.html#19762" class="Bound">n</a><a id="19763" class="Symbol">)</a> <a id="19765" href="Data.Nat.Properties.html#19765" class="Bound">m≤o</a> <a id="19769" class="Symbol">=</a> <a id="19771" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="19775" class="Symbol">(</a><a id="19776" href="Data.Nat.Properties.html#19674" class="Function">+-monoʳ-&lt;</a> <a id="19786" href="Data.Nat.Properties.html#19762" class="Bound">n</a> <a id="19788" href="Data.Nat.Properties.html#19765" class="Bound">m≤o</a><a id="19791" class="Symbol">)</a>
<a id="m+1+n≰m"></a><a id="19794" href="Data.Nat.Properties.html#19794" class="Function">m+1+n≰m</a> <a id="19802" class="Symbol">:</a> <a id="19804" class="Symbol"></a> <a id="19806" href="Data.Nat.Properties.html#19806" class="Bound">m</a> <a id="19808" class="Symbol">{</a><a id="19809" href="Data.Nat.Properties.html#19809" class="Bound">n</a><a id="19810" class="Symbol">}</a> <a id="19812" class="Symbol"></a> <a id="19814" href="Data.Nat.Properties.html#19806" class="Bound">m</a> <a id="19816" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="19818" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="19822" href="Data.Nat.Properties.html#19809" class="Bound">n</a> <a id="19824" href="Data.Nat.Base.html#2319" class="Function Operator"></a> <a id="19826" href="Data.Nat.Properties.html#19806" class="Bound">m</a>
<a id="19828" href="Data.Nat.Properties.html#19794" class="Function">m+1+n≰m</a> <a id="19836" class="Symbol">(</a><a id="19837" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="19841" href="Data.Nat.Properties.html#19841" class="Bound">m</a><a id="19842" class="Symbol">)</a> <a id="19844" href="Data.Nat.Properties.html#19844" class="Bound">m+1+n≤m</a> <a id="19852" class="Symbol">=</a> <a id="19854" href="Data.Nat.Properties.html#19794" class="Function">m+1+n≰m</a> <a id="19862" href="Data.Nat.Properties.html#19841" class="Bound">m</a> <a id="19864" class="Symbol">(</a><a id="19865" href="Data.Nat.Base.html#2022" class="Function">s≤s⁻¹</a> <a id="19871" href="Data.Nat.Properties.html#19844" class="Bound">m+1+n≤m</a><a id="19878" class="Symbol">)</a>
<a id="m&lt;m+n"></a><a id="19881" href="Data.Nat.Properties.html#19881" class="Function">m&lt;m+n</a> <a id="19887" class="Symbol">:</a> <a id="19889" class="Symbol"></a> <a id="19891" href="Data.Nat.Properties.html#19891" class="Bound">m</a> <a id="19893" class="Symbol">{</a><a id="19894" href="Data.Nat.Properties.html#19894" class="Bound">n</a><a id="19895" class="Symbol">}</a> <a id="19897" class="Symbol"></a> <a id="19899" href="Data.Nat.Properties.html#19894" class="Bound">n</a> <a id="19901" href="Data.Nat.Base.html#2289" class="Function Operator">&gt;</a> <a id="19903" class="Number">0</a> <a id="19905" class="Symbol"></a> <a id="19907" href="Data.Nat.Properties.html#19891" class="Bound">m</a> <a id="19909" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="19911" href="Data.Nat.Properties.html#19891" class="Bound">m</a> <a id="19913" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="19915" href="Data.Nat.Properties.html#19894" class="Bound">n</a>
<a id="19917" href="Data.Nat.Properties.html#19881" class="Function">m&lt;m+n</a> <a id="19923" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="19931" href="Data.Nat.Properties.html#19931" class="Bound">n&gt;0</a> <a id="19935" class="Symbol">=</a> <a id="19937" href="Data.Nat.Properties.html#19931" class="Bound">n&gt;0</a>
<a id="19941" href="Data.Nat.Properties.html#19881" class="Function">m&lt;m+n</a> <a id="19947" class="Symbol">(</a><a id="19948" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="19952" href="Data.Nat.Properties.html#19952" class="Bound">m</a><a id="19953" class="Symbol">)</a> <a id="19955" href="Data.Nat.Properties.html#19955" class="Bound">n&gt;0</a> <a id="19959" class="Symbol">=</a> <a id="19961" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a> <a id="19965" class="Symbol">(</a><a id="19966" href="Data.Nat.Properties.html#19881" class="Function">m&lt;m+n</a> <a id="19972" href="Data.Nat.Properties.html#19952" class="Bound">m</a> <a id="19974" href="Data.Nat.Properties.html#19955" class="Bound">n&gt;0</a><a id="19977" class="Symbol">)</a>
<a id="m&lt;n+m"></a><a id="19980" href="Data.Nat.Properties.html#19980" class="Function">m&lt;n+m</a> <a id="19986" class="Symbol">:</a> <a id="19988" class="Symbol"></a> <a id="19990" href="Data.Nat.Properties.html#19990" class="Bound">m</a> <a id="19992" class="Symbol">{</a><a id="19993" href="Data.Nat.Properties.html#19993" class="Bound">n</a><a id="19994" class="Symbol">}</a> <a id="19996" class="Symbol"></a> <a id="19998" href="Data.Nat.Properties.html#19993" class="Bound">n</a> <a id="20000" href="Data.Nat.Base.html#2289" class="Function Operator">&gt;</a> <a id="20002" class="Number">0</a> <a id="20004" class="Symbol"></a> <a id="20006" href="Data.Nat.Properties.html#19990" class="Bound">m</a> <a id="20008" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="20010" href="Data.Nat.Properties.html#19993" class="Bound">n</a> <a id="20012" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="20014" href="Data.Nat.Properties.html#19990" class="Bound">m</a>
<a id="20016" href="Data.Nat.Properties.html#19980" class="Function">m&lt;n+m</a> <a id="20022" href="Data.Nat.Properties.html#20022" class="Bound">m</a> <a id="20024" class="Symbol">{</a><a id="20025" href="Data.Nat.Properties.html#20025" class="Bound">n</a><a id="20026" class="Symbol">}</a> <a id="20028" href="Data.Nat.Properties.html#20028" class="Bound">n&gt;0</a> <a id="20032" class="Keyword">rewrite</a> <a id="20040" href="Data.Nat.Properties.html#14883" class="Function">+-comm</a> <a id="20047" href="Data.Nat.Properties.html#20025" class="Bound">n</a> <a id="20049" href="Data.Nat.Properties.html#20022" class="Bound">m</a> <a id="20051" class="Symbol">=</a> <a id="20053" href="Data.Nat.Properties.html#19881" class="Function">m&lt;m+n</a> <a id="20059" href="Data.Nat.Properties.html#20022" class="Bound">m</a> <a id="20061" href="Data.Nat.Properties.html#20028" class="Bound">n&gt;0</a>
<a id="m+n≮n"></a><a id="20066" href="Data.Nat.Properties.html#20066" class="Function">m+n≮n</a> <a id="20072" class="Symbol">:</a> <a id="20074" class="Symbol"></a> <a id="20076" href="Data.Nat.Properties.html#20076" class="Bound">m</a> <a id="20078" href="Data.Nat.Properties.html#20078" class="Bound">n</a> <a id="20080" class="Symbol"></a> <a id="20082" href="Data.Nat.Properties.html#20076" class="Bound">m</a> <a id="20084" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="20086" href="Data.Nat.Properties.html#20078" class="Bound">n</a> <a id="20088" href="Data.Nat.Base.html#2351" class="Function Operator"></a> <a id="20090" href="Data.Nat.Properties.html#20078" class="Bound">n</a>
<a id="20092" href="Data.Nat.Properties.html#20066" class="Function">m+n≮n</a> <a id="20098" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="20106" href="Data.Nat.Properties.html#20106" class="Bound">n</a> <a id="20123" class="Symbol">=</a> <a id="20125" href="Data.Nat.Properties.html#12185" class="Function">n≮n</a> <a id="20129" href="Data.Nat.Properties.html#20106" class="Bound">n</a>
<a id="20131" href="Data.Nat.Properties.html#20066" class="Function">m+n≮n</a> <a id="20137" class="Symbol">(</a><a id="20138" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="20142" href="Data.Nat.Properties.html#20142" class="Bound">m</a><a id="20143" class="Symbol">)</a> <a id="20145" href="Data.Nat.Properties.html#20145" class="Bound">n</a><a id="20146" class="Symbol">@(</a><a id="20148" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="20152" class="Symbol">_)</a> <a id="20155" href="Data.Nat.Properties.html#20155" class="Bound">sm+n&lt;n</a> <a id="20162" class="Symbol">=</a> <a id="20164" href="Data.Nat.Properties.html#20066" class="Function">m+n≮n</a> <a id="20170" href="Data.Nat.Properties.html#20142" class="Bound">m</a> <a id="20172" href="Data.Nat.Properties.html#20145" class="Bound">n</a> <a id="20174" class="Symbol">(</a><a id="20175" href="Data.Nat.Properties.html#12050" class="Function">m&lt;n⇒m&lt;1+n</a> <a id="20185" class="Symbol">(</a><a id="20186" href="Data.Nat.Base.html#2085" class="Function">s&lt;s⁻¹</a> <a id="20192" href="Data.Nat.Properties.html#20155" class="Bound">sm+n&lt;n</a><a id="20198" class="Symbol">))</a>
<a id="m+n≮m"></a><a id="20202" href="Data.Nat.Properties.html#20202" class="Function">m+n≮m</a> <a id="20208" class="Symbol">:</a> <a id="20210" class="Symbol"></a> <a id="20212" href="Data.Nat.Properties.html#20212" class="Bound">m</a> <a id="20214" href="Data.Nat.Properties.html#20214" class="Bound">n</a> <a id="20216" class="Symbol"></a> <a id="20218" href="Data.Nat.Properties.html#20212" class="Bound">m</a> <a id="20220" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="20222" href="Data.Nat.Properties.html#20214" class="Bound">n</a> <a id="20224" href="Data.Nat.Base.html#2351" class="Function Operator"></a> <a id="20226" href="Data.Nat.Properties.html#20212" class="Bound">m</a>
<a id="20228" href="Data.Nat.Properties.html#20202" class="Function">m+n≮m</a> <a id="20234" href="Data.Nat.Properties.html#20234" class="Bound">m</a> <a id="20236" href="Data.Nat.Properties.html#20236" class="Bound">n</a> <a id="20238" class="Symbol">=</a> <a id="20240" href="Relation.Binary.PropositionalEquality.Core.html#1808" class="Function">subst</a> <a id="20246" class="Symbol">(</a><a id="20247" href="Data.Nat.Base.html#2351" class="Function Operator">_≮</a> <a id="20250" href="Data.Nat.Properties.html#20234" class="Bound">m</a><a id="20251" class="Symbol">)</a> <a id="20253" class="Symbol">(</a><a id="20254" href="Data.Nat.Properties.html#14883" class="Function">+-comm</a> <a id="20261" href="Data.Nat.Properties.html#20236" class="Bound">n</a> <a id="20263" href="Data.Nat.Properties.html#20234" class="Bound">m</a><a id="20264" class="Symbol">)</a> <a id="20266" class="Symbol">(</a><a id="20267" href="Data.Nat.Properties.html#20066" class="Function">m+n≮n</a> <a id="20273" href="Data.Nat.Properties.html#20236" class="Bound">n</a> <a id="20275" href="Data.Nat.Properties.html#20234" class="Bound">m</a><a id="20276" class="Symbol">)</a>
<a id="20279" class="Comment">------------------------------------------------------------------------</a>
<a id="20352" class="Comment">-- Properties of _*_</a>
<a id="20373" class="Comment">------------------------------------------------------------------------</a>
<a id="*-suc"></a><a id="20447" href="Data.Nat.Properties.html#20447" class="Function">*-suc</a> <a id="20453" class="Symbol">:</a> <a id="20455" class="Symbol"></a> <a id="20457" href="Data.Nat.Properties.html#20457" class="Bound">m</a> <a id="20459" href="Data.Nat.Properties.html#20459" class="Bound">n</a> <a id="20461" class="Symbol"></a> <a id="20463" href="Data.Nat.Properties.html#20457" class="Bound">m</a> <a id="20465" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="20467" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="20471" href="Data.Nat.Properties.html#20459" class="Bound">n</a> <a id="20473" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="20475" href="Data.Nat.Properties.html#20457" class="Bound">m</a> <a id="20477" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="20479" href="Data.Nat.Properties.html#20457" class="Bound">m</a> <a id="20481" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="20483" href="Data.Nat.Properties.html#20459" class="Bound">n</a>
<a id="20485" href="Data.Nat.Properties.html#20447" class="Function">*-suc</a> <a id="20491" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="20499" href="Data.Nat.Properties.html#20499" class="Bound">n</a> <a id="20501" class="Symbol">=</a> <a id="20503" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="20508" href="Data.Nat.Properties.html#20447" class="Function">*-suc</a> <a id="20514" class="Symbol">(</a><a id="20515" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="20519" href="Data.Nat.Properties.html#20519" class="Bound">m</a><a id="20520" class="Symbol">)</a> <a id="20522" href="Data.Nat.Properties.html#20522" class="Bound">n</a> <a id="20524" class="Symbol">=</a> <a id="20526" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a>
<a id="20543" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="20547" href="Data.Nat.Properties.html#20519" class="Bound">m</a> <a id="20549" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="20551" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="20555" href="Data.Nat.Properties.html#20522" class="Bound">n</a> <a id="20565" href="Relation.Binary.Reasoning.Syntax.html#11017" class="Function">≡⟨⟩</a>
<a id="20571" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="20575" href="Data.Nat.Properties.html#20522" class="Bound">n</a> <a id="20577" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="20579" href="Data.Nat.Properties.html#20519" class="Bound">m</a> <a id="20581" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="20583" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="20587" href="Data.Nat.Properties.html#20522" class="Bound">n</a> <a id="20593" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="20596" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="20601" class="Symbol">(</a><a id="20602" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="20606" href="Data.Nat.Properties.html#20522" class="Bound">n</a> <a id="20608" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+_</a><a id="20610" class="Symbol">)</a> <a id="20612" class="Symbol">(</a><a id="20613" href="Data.Nat.Properties.html#20447" class="Function">*-suc</a> <a id="20619" href="Data.Nat.Properties.html#20519" class="Bound">m</a> <a id="20621" href="Data.Nat.Properties.html#20522" class="Bound">n</a><a id="20622" class="Symbol">)</a> <a id="20624" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="20628" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="20632" href="Data.Nat.Properties.html#20522" class="Bound">n</a> <a id="20634" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="20636" class="Symbol">(</a><a id="20637" href="Data.Nat.Properties.html#20519" class="Bound">m</a> <a id="20639" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="20641" href="Data.Nat.Properties.html#20519" class="Bound">m</a> <a id="20643" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="20645" href="Data.Nat.Properties.html#20522" class="Bound">n</a><a id="20646" class="Symbol">)</a> <a id="20650" href="Relation.Binary.Reasoning.Syntax.html#11017" class="Function">≡⟨⟩</a>
<a id="20656" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="20660" class="Symbol">(</a><a id="20661" href="Data.Nat.Properties.html#20522" class="Bound">n</a> <a id="20663" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="20665" class="Symbol">(</a><a id="20666" href="Data.Nat.Properties.html#20519" class="Bound">m</a> <a id="20668" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="20670" href="Data.Nat.Properties.html#20519" class="Bound">m</a> <a id="20672" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="20674" href="Data.Nat.Properties.html#20522" class="Bound">n</a><a id="20675" class="Symbol">))</a> <a id="20678" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="20681" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="20686" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="20690" class="Symbol">(</a><a id="20691" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="20695" class="Symbol">(</a><a id="20696" href="Data.Nat.Properties.html#14550" class="Function">+-assoc</a> <a id="20704" href="Data.Nat.Properties.html#20522" class="Bound">n</a> <a id="20706" href="Data.Nat.Properties.html#20519" class="Bound">m</a> <a id="20708" class="Symbol">(</a><a id="20709" href="Data.Nat.Properties.html#20519" class="Bound">m</a> <a id="20711" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="20713" href="Data.Nat.Properties.html#20522" class="Bound">n</a><a id="20714" class="Symbol">)))</a> <a id="20718" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="20722" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="20726" class="Symbol">(</a><a id="20727" href="Data.Nat.Properties.html#20522" class="Bound">n</a> <a id="20729" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="20731" href="Data.Nat.Properties.html#20519" class="Bound">m</a> <a id="20733" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="20735" href="Data.Nat.Properties.html#20519" class="Bound">m</a> <a id="20737" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="20739" href="Data.Nat.Properties.html#20522" class="Bound">n</a><a id="20740" class="Symbol">)</a> <a id="20744" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="20747" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="20752" class="Symbol"></a> <a id="20755" href="Data.Nat.Properties.html#20755" class="Bound">x</a> <a id="20757" class="Symbol"></a> <a id="20759" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="20763" class="Symbol">(</a><a id="20764" href="Data.Nat.Properties.html#20755" class="Bound">x</a> <a id="20766" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="20768" href="Data.Nat.Properties.html#20519" class="Bound">m</a> <a id="20770" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="20772" href="Data.Nat.Properties.html#20522" class="Bound">n</a><a id="20773" class="Symbol">))</a> <a id="20776" class="Symbol">(</a><a id="20777" href="Data.Nat.Properties.html#14883" class="Function">+-comm</a> <a id="20784" href="Data.Nat.Properties.html#20522" class="Bound">n</a> <a id="20786" href="Data.Nat.Properties.html#20519" class="Bound">m</a><a id="20787" class="Symbol">)</a> <a id="20789" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="20793" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="20797" class="Symbol">(</a><a id="20798" href="Data.Nat.Properties.html#20519" class="Bound">m</a> <a id="20800" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="20802" href="Data.Nat.Properties.html#20522" class="Bound">n</a> <a id="20804" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="20806" href="Data.Nat.Properties.html#20519" class="Bound">m</a> <a id="20808" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="20810" href="Data.Nat.Properties.html#20522" class="Bound">n</a><a id="20811" class="Symbol">)</a> <a id="20815" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="20818" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="20823" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="20827" class="Symbol">(</a><a id="20828" href="Data.Nat.Properties.html#14550" class="Function">+-assoc</a> <a id="20836" href="Data.Nat.Properties.html#20519" class="Bound">m</a> <a id="20838" href="Data.Nat.Properties.html#20522" class="Bound">n</a> <a id="20840" class="Symbol">(</a><a id="20841" href="Data.Nat.Properties.html#20519" class="Bound">m</a> <a id="20843" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="20845" href="Data.Nat.Properties.html#20522" class="Bound">n</a><a id="20846" class="Symbol">))</a> <a id="20849" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="20853" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="20857" class="Symbol">(</a><a id="20858" href="Data.Nat.Properties.html#20519" class="Bound">m</a> <a id="20860" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="20862" class="Symbol">(</a><a id="20863" href="Data.Nat.Properties.html#20522" class="Bound">n</a> <a id="20865" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="20867" href="Data.Nat.Properties.html#20519" class="Bound">m</a> <a id="20869" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="20871" href="Data.Nat.Properties.html#20522" class="Bound">n</a><a id="20872" class="Symbol">))</a> <a id="20875" href="Relation.Binary.Reasoning.Syntax.html#11017" class="Function">≡⟨⟩</a>
<a id="20881" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="20885" href="Data.Nat.Properties.html#20519" class="Bound">m</a> <a id="20887" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="20889" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="20893" href="Data.Nat.Properties.html#20519" class="Bound">m</a> <a id="20895" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="20897" href="Data.Nat.Properties.html#20522" class="Bound">n</a> <a id="20903" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="20906" class="Comment">------------------------------------------------------------------------</a>
<a id="20979" class="Comment">-- Algebraic properties of _*_</a>
<a id="*-identityˡ"></a><a id="21011" href="Data.Nat.Properties.html#21011" class="Function">*-identityˡ</a> <a id="21023" class="Symbol">:</a> <a id="21025" href="Algebra.Definitions.html#1708" class="Function">LeftIdentity</a> <a id="21038" class="Number">1</a> <a id="21040" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a>
<a id="21044" href="Data.Nat.Properties.html#21011" class="Function">*-identityˡ</a> <a id="21056" href="Data.Nat.Properties.html#21056" class="Bound">n</a> <a id="21058" class="Symbol">=</a> <a id="21060" href="Data.Nat.Properties.html#14706" class="Function">+-identityʳ</a> <a id="21072" href="Data.Nat.Properties.html#21056" class="Bound">n</a>
<a id="*-identityʳ"></a><a id="21075" href="Data.Nat.Properties.html#21075" class="Function">*-identityʳ</a> <a id="21087" class="Symbol">:</a> <a id="21089" href="Algebra.Definitions.html#1781" class="Function">RightIdentity</a> <a id="21103" class="Number">1</a> <a id="21105" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a>
<a id="21109" href="Data.Nat.Properties.html#21075" class="Function">*-identityʳ</a> <a id="21121" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="21129" class="Symbol">=</a> <a id="21131" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="21136" href="Data.Nat.Properties.html#21075" class="Function">*-identityʳ</a> <a id="21148" class="Symbol">(</a><a id="21149" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="21153" href="Data.Nat.Properties.html#21153" class="Bound">n</a><a id="21154" class="Symbol">)</a> <a id="21156" class="Symbol">=</a> <a id="21158" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="21163" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="21167" class="Symbol">(</a><a id="21168" href="Data.Nat.Properties.html#21075" class="Function">*-identityʳ</a> <a id="21180" href="Data.Nat.Properties.html#21153" class="Bound">n</a><a id="21181" class="Symbol">)</a>
<a id="*-identity"></a><a id="21184" href="Data.Nat.Properties.html#21184" class="Function">*-identity</a> <a id="21195" class="Symbol">:</a> <a id="21197" href="Algebra.Definitions.html#1856" class="Function">Identity</a> <a id="21206" class="Number">1</a> <a id="21208" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a>
<a id="21212" href="Data.Nat.Properties.html#21184" class="Function">*-identity</a> <a id="21223" class="Symbol">=</a> <a id="21225" href="Data.Nat.Properties.html#21011" class="Function">*-identityˡ</a> <a id="21237" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="21239" href="Data.Nat.Properties.html#21075" class="Function">*-identityʳ</a>
<a id="*-zeroˡ"></a><a id="21252" href="Data.Nat.Properties.html#21252" class="Function">*-zeroˡ</a> <a id="21260" class="Symbol">:</a> <a id="21262" href="Algebra.Definitions.html#1942" class="Function">LeftZero</a> <a id="21271" class="Number">0</a> <a id="21273" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a>
<a id="21277" href="Data.Nat.Properties.html#21252" class="Function">*-zeroˡ</a> <a id="21285" class="Symbol">_</a> <a id="21287" class="Symbol">=</a> <a id="21289" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="*-zeroʳ"></a><a id="21295" href="Data.Nat.Properties.html#21295" class="Function">*-zeroʳ</a> <a id="21303" class="Symbol">:</a> <a id="21305" href="Algebra.Definitions.html#2007" class="Function">RightZero</a> <a id="21315" class="Number">0</a> <a id="21317" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a>
<a id="21321" href="Data.Nat.Properties.html#21295" class="Function">*-zeroʳ</a> <a id="21329" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="21337" class="Symbol">=</a> <a id="21339" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="21344" href="Data.Nat.Properties.html#21295" class="Function">*-zeroʳ</a> <a id="21352" class="Symbol">(</a><a id="21353" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="21357" href="Data.Nat.Properties.html#21357" class="Bound">n</a><a id="21358" class="Symbol">)</a> <a id="21360" class="Symbol">=</a> <a id="21362" href="Data.Nat.Properties.html#21295" class="Function">*-zeroʳ</a> <a id="21370" href="Data.Nat.Properties.html#21357" class="Bound">n</a>
<a id="*-zero"></a><a id="21373" href="Data.Nat.Properties.html#21373" class="Function">*-zero</a> <a id="21380" class="Symbol">:</a> <a id="21382" href="Algebra.Definitions.html#2074" class="Function">Zero</a> <a id="21387" class="Number">0</a> <a id="21389" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a>
<a id="21393" href="Data.Nat.Properties.html#21373" class="Function">*-zero</a> <a id="21400" class="Symbol">=</a> <a id="21402" href="Data.Nat.Properties.html#21252" class="Function">*-zeroˡ</a> <a id="21410" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="21412" href="Data.Nat.Properties.html#21295" class="Function">*-zeroʳ</a>
<a id="*-comm"></a><a id="21421" href="Data.Nat.Properties.html#21421" class="Function">*-comm</a> <a id="21428" class="Symbol">:</a> <a id="21430" href="Algebra.Definitions.html#1635" class="Function">Commutative</a> <a id="21442" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a>
<a id="21446" href="Data.Nat.Properties.html#21421" class="Function">*-comm</a> <a id="21453" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="21461" href="Data.Nat.Properties.html#21461" class="Bound">n</a> <a id="21463" class="Symbol">=</a> <a id="21465" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="21469" class="Symbol">(</a><a id="21470" href="Data.Nat.Properties.html#21295" class="Function">*-zeroʳ</a> <a id="21478" href="Data.Nat.Properties.html#21461" class="Bound">n</a><a id="21479" class="Symbol">)</a>
<a id="21481" href="Data.Nat.Properties.html#21421" class="Function">*-comm</a> <a id="21488" class="Symbol">(</a><a id="21489" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="21493" href="Data.Nat.Properties.html#21493" class="Bound">m</a><a id="21494" class="Symbol">)</a> <a id="21496" href="Data.Nat.Properties.html#21496" class="Bound">n</a> <a id="21498" class="Symbol">=</a> <a id="21500" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a>
<a id="21517" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="21521" href="Data.Nat.Properties.html#21493" class="Bound">m</a> <a id="21523" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="21525" href="Data.Nat.Properties.html#21496" class="Bound">n</a> <a id="21528" href="Relation.Binary.Reasoning.Syntax.html#11017" class="Function">≡⟨⟩</a>
<a id="21534" href="Data.Nat.Properties.html#21496" class="Bound">n</a> <a id="21536" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="21538" href="Data.Nat.Properties.html#21493" class="Bound">m</a> <a id="21540" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="21542" href="Data.Nat.Properties.html#21496" class="Bound">n</a> <a id="21545" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="21548" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="21553" class="Symbol">(</a><a id="21554" href="Data.Nat.Properties.html#21496" class="Bound">n</a> <a id="21556" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+_</a><a id="21558" class="Symbol">)</a> <a id="21560" class="Symbol">(</a><a id="21561" href="Data.Nat.Properties.html#21421" class="Function">*-comm</a> <a id="21568" href="Data.Nat.Properties.html#21493" class="Bound">m</a> <a id="21570" href="Data.Nat.Properties.html#21496" class="Bound">n</a><a id="21571" class="Symbol">)</a> <a id="21573" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="21577" href="Data.Nat.Properties.html#21496" class="Bound">n</a> <a id="21579" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="21581" href="Data.Nat.Properties.html#21496" class="Bound">n</a> <a id="21583" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="21585" href="Data.Nat.Properties.html#21493" class="Bound">m</a> <a id="21588" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="21591" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="21595" class="Symbol">(</a><a id="21596" href="Data.Nat.Properties.html#20447" class="Function">*-suc</a> <a id="21602" href="Data.Nat.Properties.html#21496" class="Bound">n</a> <a id="21604" href="Data.Nat.Properties.html#21493" class="Bound">m</a><a id="21605" class="Symbol">)</a> <a id="21607" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="21611" href="Data.Nat.Properties.html#21496" class="Bound">n</a> <a id="21613" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="21615" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="21619" href="Data.Nat.Properties.html#21493" class="Bound">m</a> <a id="21622" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="*-distribʳ-+"></a><a id="21625" href="Data.Nat.Properties.html#21625" class="Function">*-distribʳ-+</a> <a id="21638" class="Symbol">:</a> <a id="21640" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a> <a id="21644" href="Algebra.Definitions.html#3274" class="Function Operator">DistributesOverʳ</a> <a id="21661" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a>
<a id="21665" href="Data.Nat.Properties.html#21625" class="Function">*-distribʳ-+</a> <a id="21678" href="Data.Nat.Properties.html#21678" class="Bound">m</a> <a id="21680" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="21688" href="Data.Nat.Properties.html#21688" class="Bound">o</a> <a id="21690" class="Symbol">=</a> <a id="21692" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="21697" href="Data.Nat.Properties.html#21625" class="Function">*-distribʳ-+</a> <a id="21710" href="Data.Nat.Properties.html#21710" class="Bound">m</a> <a id="21712" class="Symbol">(</a><a id="21713" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="21717" href="Data.Nat.Properties.html#21717" class="Bound">n</a><a id="21718" class="Symbol">)</a> <a id="21720" href="Data.Nat.Properties.html#21720" class="Bound">o</a> <a id="21722" class="Symbol">=</a> <a id="21724" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a>
<a id="21741" class="Symbol">(</a><a id="21742" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="21746" href="Data.Nat.Properties.html#21717" class="Bound">n</a> <a id="21748" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="21750" href="Data.Nat.Properties.html#21720" class="Bound">o</a><a id="21751" class="Symbol">)</a> <a id="21753" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="21755" href="Data.Nat.Properties.html#21710" class="Bound">m</a> <a id="21761" href="Relation.Binary.Reasoning.Syntax.html#11017" class="Function">≡⟨⟩</a>
<a id="21767" href="Data.Nat.Properties.html#21710" class="Bound">m</a> <a id="21769" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="21771" class="Symbol">(</a><a id="21772" href="Data.Nat.Properties.html#21717" class="Bound">n</a> <a id="21774" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="21776" href="Data.Nat.Properties.html#21720" class="Bound">o</a><a id="21777" class="Symbol">)</a> <a id="21779" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="21781" href="Data.Nat.Properties.html#21710" class="Bound">m</a> <a id="21787" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="21790" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="21795" class="Symbol">(</a><a id="21796" href="Data.Nat.Properties.html#21710" class="Bound">m</a> <a id="21798" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+_</a><a id="21800" class="Symbol">)</a> <a id="21802" class="Symbol">(</a><a id="21803" href="Data.Nat.Properties.html#21625" class="Function">*-distribʳ-+</a> <a id="21816" href="Data.Nat.Properties.html#21710" class="Bound">m</a> <a id="21818" href="Data.Nat.Properties.html#21717" class="Bound">n</a> <a id="21820" href="Data.Nat.Properties.html#21720" class="Bound">o</a><a id="21821" class="Symbol">)</a> <a id="21823" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="21827" href="Data.Nat.Properties.html#21710" class="Bound">m</a> <a id="21829" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="21831" class="Symbol">(</a><a id="21832" href="Data.Nat.Properties.html#21717" class="Bound">n</a> <a id="21834" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="21836" href="Data.Nat.Properties.html#21710" class="Bound">m</a> <a id="21838" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="21840" href="Data.Nat.Properties.html#21720" class="Bound">o</a> <a id="21842" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="21844" href="Data.Nat.Properties.html#21710" class="Bound">m</a><a id="21845" class="Symbol">)</a> <a id="21847" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="21850" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="21854" class="Symbol">(</a><a id="21855" href="Data.Nat.Properties.html#14550" class="Function">+-assoc</a> <a id="21863" href="Data.Nat.Properties.html#21710" class="Bound">m</a> <a id="21865" class="Symbol">(</a><a id="21866" href="Data.Nat.Properties.html#21717" class="Bound">n</a> <a id="21868" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="21870" href="Data.Nat.Properties.html#21710" class="Bound">m</a><a id="21871" class="Symbol">)</a> <a id="21873" class="Symbol">(</a><a id="21874" href="Data.Nat.Properties.html#21720" class="Bound">o</a> <a id="21876" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="21878" href="Data.Nat.Properties.html#21710" class="Bound">m</a><a id="21879" class="Symbol">))</a> <a id="21882" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="21886" href="Data.Nat.Properties.html#21710" class="Bound">m</a> <a id="21888" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="21890" href="Data.Nat.Properties.html#21717" class="Bound">n</a> <a id="21892" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="21894" href="Data.Nat.Properties.html#21710" class="Bound">m</a> <a id="21896" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="21898" href="Data.Nat.Properties.html#21720" class="Bound">o</a> <a id="21900" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="21902" href="Data.Nat.Properties.html#21710" class="Bound">m</a> <a id="21906" href="Relation.Binary.Reasoning.Syntax.html#11017" class="Function">≡⟨⟩</a>
<a id="21912" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="21916" href="Data.Nat.Properties.html#21717" class="Bound">n</a> <a id="21918" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="21920" href="Data.Nat.Properties.html#21710" class="Bound">m</a> <a id="21922" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="21924" href="Data.Nat.Properties.html#21720" class="Bound">o</a> <a id="21926" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="21928" href="Data.Nat.Properties.html#21710" class="Bound">m</a> <a id="21932" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="*-distribˡ-+"></a><a id="21935" href="Data.Nat.Properties.html#21935" class="Function">*-distribˡ-+</a> <a id="21948" class="Symbol">:</a> <a id="21950" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a> <a id="21954" href="Algebra.Definitions.html#3155" class="Function Operator">DistributesOverˡ</a> <a id="21971" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a>
<a id="21975" href="Data.Nat.Properties.html#21935" class="Function">*-distribˡ-+</a> <a id="21988" class="Symbol">=</a> <a id="21990" href="Algebra.Consequences.Propositional.html#3334" class="Function">comm∧distrʳ⇒distrˡ</a> <a id="22009" href="Data.Nat.Properties.html#21421" class="Function">*-comm</a> <a id="22016" href="Data.Nat.Properties.html#21625" class="Function">*-distribʳ-+</a>
<a id="*-distrib-+"></a><a id="22030" href="Data.Nat.Properties.html#22030" class="Function">*-distrib-+</a> <a id="22042" class="Symbol">:</a> <a id="22044" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a> <a id="22048" href="Algebra.Definitions.html#3393" class="Function Operator">DistributesOver</a> <a id="22064" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a>
<a id="22068" href="Data.Nat.Properties.html#22030" class="Function">*-distrib-+</a> <a id="22080" class="Symbol">=</a> <a id="22082" href="Data.Nat.Properties.html#21935" class="Function">*-distribˡ-+</a> <a id="22095" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="22097" href="Data.Nat.Properties.html#21625" class="Function">*-distribʳ-+</a>
<a id="*-assoc"></a><a id="22111" href="Data.Nat.Properties.html#22111" class="Function">*-assoc</a> <a id="22119" class="Symbol">:</a> <a id="22121" href="Algebra.Definitions.html#1548" class="Function">Associative</a> <a id="22133" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a>
<a id="22137" href="Data.Nat.Properties.html#22111" class="Function">*-assoc</a> <a id="22145" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="22153" href="Data.Nat.Properties.html#22153" class="Bound">n</a> <a id="22155" href="Data.Nat.Properties.html#22155" class="Bound">o</a> <a id="22157" class="Symbol">=</a> <a id="22159" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="22164" href="Data.Nat.Properties.html#22111" class="Function">*-assoc</a> <a id="22172" class="Symbol">(</a><a id="22173" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="22177" href="Data.Nat.Properties.html#22177" class="Bound">m</a><a id="22178" class="Symbol">)</a> <a id="22180" href="Data.Nat.Properties.html#22180" class="Bound">n</a> <a id="22182" href="Data.Nat.Properties.html#22182" class="Bound">o</a> <a id="22184" class="Symbol">=</a> <a id="22186" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a>
<a id="22203" class="Symbol">(</a><a id="22204" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="22208" href="Data.Nat.Properties.html#22177" class="Bound">m</a> <a id="22210" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="22212" href="Data.Nat.Properties.html#22180" class="Bound">n</a><a id="22213" class="Symbol">)</a> <a id="22215" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="22217" href="Data.Nat.Properties.html#22182" class="Bound">o</a> <a id="22223" href="Relation.Binary.Reasoning.Syntax.html#11017" class="Function">≡⟨⟩</a>
<a id="22229" class="Symbol">(</a><a id="22230" href="Data.Nat.Properties.html#22180" class="Bound">n</a> <a id="22232" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="22234" href="Data.Nat.Properties.html#22177" class="Bound">m</a> <a id="22236" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="22238" href="Data.Nat.Properties.html#22180" class="Bound">n</a><a id="22239" class="Symbol">)</a> <a id="22241" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="22243" href="Data.Nat.Properties.html#22182" class="Bound">o</a> <a id="22249" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="22252" href="Data.Nat.Properties.html#21625" class="Function">*-distribʳ-+</a> <a id="22265" href="Data.Nat.Properties.html#22182" class="Bound">o</a> <a id="22267" href="Data.Nat.Properties.html#22180" class="Bound">n</a> <a id="22269" class="Symbol">(</a><a id="22270" href="Data.Nat.Properties.html#22177" class="Bound">m</a> <a id="22272" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="22274" href="Data.Nat.Properties.html#22180" class="Bound">n</a><a id="22275" class="Symbol">)</a> <a id="22277" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="22281" href="Data.Nat.Properties.html#22180" class="Bound">n</a> <a id="22283" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="22285" href="Data.Nat.Properties.html#22182" class="Bound">o</a> <a id="22287" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="22289" class="Symbol">(</a><a id="22290" href="Data.Nat.Properties.html#22177" class="Bound">m</a> <a id="22292" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="22294" href="Data.Nat.Properties.html#22180" class="Bound">n</a><a id="22295" class="Symbol">)</a> <a id="22297" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="22299" href="Data.Nat.Properties.html#22182" class="Bound">o</a> <a id="22301" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="22304" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="22309" class="Symbol">(</a><a id="22310" href="Data.Nat.Properties.html#22180" class="Bound">n</a> <a id="22312" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="22314" href="Data.Nat.Properties.html#22182" class="Bound">o</a> <a id="22316" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+_</a><a id="22318" class="Symbol">)</a> <a id="22320" class="Symbol">(</a><a id="22321" href="Data.Nat.Properties.html#22111" class="Function">*-assoc</a> <a id="22329" href="Data.Nat.Properties.html#22177" class="Bound">m</a> <a id="22331" href="Data.Nat.Properties.html#22180" class="Bound">n</a> <a id="22333" href="Data.Nat.Properties.html#22182" class="Bound">o</a><a id="22334" class="Symbol">)</a> <a id="22336" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="22340" href="Data.Nat.Properties.html#22180" class="Bound">n</a> <a id="22342" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="22344" href="Data.Nat.Properties.html#22182" class="Bound">o</a> <a id="22346" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="22348" href="Data.Nat.Properties.html#22177" class="Bound">m</a> <a id="22350" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="22352" class="Symbol">(</a><a id="22353" href="Data.Nat.Properties.html#22180" class="Bound">n</a> <a id="22355" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="22357" href="Data.Nat.Properties.html#22182" class="Bound">o</a><a id="22358" class="Symbol">)</a> <a id="22360" href="Relation.Binary.Reasoning.Syntax.html#11017" class="Function">≡⟨⟩</a>
<a id="22366" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="22370" href="Data.Nat.Properties.html#22177" class="Bound">m</a> <a id="22372" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="22374" class="Symbol">(</a><a id="22375" href="Data.Nat.Properties.html#22180" class="Bound">n</a> <a id="22377" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="22379" href="Data.Nat.Properties.html#22182" class="Bound">o</a><a id="22380" class="Symbol">)</a> <a id="22386" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="22389" class="Comment">------------------------------------------------------------------------</a>
<a id="22462" class="Comment">-- Structures</a>
<a id="*-isMagma"></a><a id="22477" href="Data.Nat.Properties.html#22477" class="Function">*-isMagma</a> <a id="22487" class="Symbol">:</a> <a id="22489" href="Algebra.Structures.html#1225" class="Record">IsMagma</a> <a id="22497" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a>
<a id="22501" href="Data.Nat.Properties.html#22477" class="Function">*-isMagma</a> <a id="22511" class="Symbol">=</a> <a id="22513" class="Keyword">record</a>
<a id="22522" class="Symbol">{</a> <a id="22524" href="Algebra.Structures.html#1277" class="Field">isEquivalence</a> <a id="22538" class="Symbol">=</a> <a id="22540" href="Relation.Binary.PropositionalEquality.Properties.html#5422" class="Function">isEquivalence</a>
<a id="22556" class="Symbol">;</a> <a id="22558" href="Algebra.Structures.html#1315" class="Field">∙-cong</a> <a id="22572" class="Symbol">=</a> <a id="22574" href="Relation.Binary.PropositionalEquality.Core.html#1395" class="Function">cong₂</a> <a id="22580" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a>
<a id="22586" class="Symbol">}</a>
<a id="*-isSemigroup"></a><a id="22589" href="Data.Nat.Properties.html#22589" class="Function">*-isSemigroup</a> <a id="22603" class="Symbol">:</a> <a id="22605" href="Algebra.Structures.html#2897" class="Record">IsSemigroup</a> <a id="22617" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a>
<a id="22621" href="Data.Nat.Properties.html#22589" class="Function">*-isSemigroup</a> <a id="22635" class="Symbol">=</a> <a id="22637" class="Keyword">record</a>
<a id="22646" class="Symbol">{</a> <a id="22648" href="Algebra.Structures.html#2953" class="Field">isMagma</a> <a id="22656" class="Symbol">=</a> <a id="22658" href="Data.Nat.Properties.html#22477" class="Function">*-isMagma</a>
<a id="22670" class="Symbol">;</a> <a id="22672" href="Algebra.Structures.html#2977" class="Field">assoc</a> <a id="22680" class="Symbol">=</a> <a id="22682" href="Data.Nat.Properties.html#22111" class="Function">*-assoc</a>
<a id="22692" class="Symbol">}</a>
<a id="*-isCommutativeSemigroup"></a><a id="22695" href="Data.Nat.Properties.html#22695" class="Function">*-isCommutativeSemigroup</a> <a id="22720" class="Symbol">:</a> <a id="22722" href="Algebra.Structures.html#3199" class="Record">IsCommutativeSemigroup</a> <a id="22745" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a>
<a id="22749" href="Data.Nat.Properties.html#22695" class="Function">*-isCommutativeSemigroup</a> <a id="22774" class="Symbol">=</a> <a id="22776" class="Keyword">record</a>
<a id="22785" class="Symbol">{</a> <a id="22787" href="Algebra.Structures.html#3266" class="Field">isSemigroup</a> <a id="22799" class="Symbol">=</a> <a id="22801" href="Data.Nat.Properties.html#22589" class="Function">*-isSemigroup</a>
<a id="22817" class="Symbol">;</a> <a id="22819" href="Algebra.Structures.html#3298" class="Field">comm</a> <a id="22831" class="Symbol">=</a> <a id="22833" href="Data.Nat.Properties.html#21421" class="Function">*-comm</a>
<a id="22842" class="Symbol">}</a>
<a id="*-1-isMonoid"></a><a id="22845" href="Data.Nat.Properties.html#22845" class="Function">*-1-isMonoid</a> <a id="22858" class="Symbol">:</a> <a id="22860" href="Algebra.Structures.html#3974" class="Record">IsMonoid</a> <a id="22869" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a> <a id="22873" class="Number">1</a>
<a id="22875" href="Data.Nat.Properties.html#22845" class="Function">*-1-isMonoid</a> <a id="22888" class="Symbol">=</a> <a id="22890" class="Keyword">record</a>
<a id="22899" class="Symbol">{</a> <a id="22901" href="Algebra.Structures.html#4035" class="Field">isSemigroup</a> <a id="22913" class="Symbol">=</a> <a id="22915" href="Data.Nat.Properties.html#22589" class="Function">*-isSemigroup</a>
<a id="22931" class="Symbol">;</a> <a id="22933" href="Algebra.Structures.html#4067" class="Field">identity</a> <a id="22945" class="Symbol">=</a> <a id="22947" href="Data.Nat.Properties.html#21184" class="Function">*-identity</a>
<a id="22960" class="Symbol">}</a>
<a id="*-1-isCommutativeMonoid"></a><a id="22963" href="Data.Nat.Properties.html#22963" class="Function">*-1-isCommutativeMonoid</a> <a id="22987" class="Symbol">:</a> <a id="22989" href="Algebra.Structures.html#4384" class="Record">IsCommutativeMonoid</a> <a id="23009" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a> <a id="23013" class="Number">1</a>
<a id="23015" href="Data.Nat.Properties.html#22963" class="Function">*-1-isCommutativeMonoid</a> <a id="23039" class="Symbol">=</a> <a id="23041" class="Keyword">record</a>
<a id="23050" class="Symbol">{</a> <a id="23052" href="Algebra.Structures.html#4456" class="Field">isMonoid</a> <a id="23061" class="Symbol">=</a> <a id="23063" href="Data.Nat.Properties.html#22845" class="Function">*-1-isMonoid</a>
<a id="23078" class="Symbol">;</a> <a id="23080" href="Algebra.Structures.html#4484" class="Field">comm</a> <a id="23089" class="Symbol">=</a> <a id="23091" href="Data.Nat.Properties.html#21421" class="Function">*-comm</a>
<a id="23100" class="Symbol">}</a>
<a id="+-*-isSemiring"></a><a id="23103" href="Data.Nat.Properties.html#23103" class="Function">+-*-isSemiring</a> <a id="23118" class="Symbol">:</a> <a id="23120" href="Algebra.Structures.html#12731" class="Record">IsSemiring</a> <a id="23131" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a> <a id="23135" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a> <a id="23139" class="Number">0</a> <a id="23141" class="Number">1</a>
<a id="23143" href="Data.Nat.Properties.html#23103" class="Function">+-*-isSemiring</a> <a id="23158" class="Symbol">=</a> <a id="23160" class="Keyword">record</a>
<a id="23169" class="Symbol">{</a> <a id="23171" href="Algebra.Structures.html#12800" class="Field">isSemiringWithoutAnnihilatingZero</a> <a id="23205" class="Symbol">=</a> <a id="23207" class="Keyword">record</a>
<a id="23218" class="Symbol">{</a> <a id="23220" href="Algebra.Structures.html#11137" class="Field">+-isCommutativeMonoid</a> <a id="23242" class="Symbol">=</a> <a id="23244" href="Data.Nat.Properties.html#15969" class="Function">+-0-isCommutativeMonoid</a>
<a id="23272" class="Symbol">;</a> <a id="23274" href="Algebra.Structures.html#11190" class="Field">*-cong</a> <a id="23296" class="Symbol">=</a> <a id="23298" href="Relation.Binary.PropositionalEquality.Core.html#1395" class="Function">cong₂</a> <a id="23304" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a>
<a id="23312" class="Symbol">;</a> <a id="23314" href="Algebra.Structures.html#11231" class="Field">*-assoc</a> <a id="23336" class="Symbol">=</a> <a id="23338" href="Data.Nat.Properties.html#22111" class="Function">*-assoc</a>
<a id="23350" class="Symbol">;</a> <a id="23352" href="Algebra.Structures.html#11273" class="Field">*-identity</a> <a id="23374" class="Symbol">=</a> <a id="23376" href="Data.Nat.Properties.html#21184" class="Function">*-identity</a>
<a id="23391" class="Symbol">;</a> <a id="23393" href="Algebra.Structures.html#11315" class="Field">distrib</a> <a id="23415" class="Symbol">=</a> <a id="23417" href="Data.Nat.Properties.html#22030" class="Function">*-distrib-+</a>
<a id="23433" class="Symbol">}</a>
<a id="23437" class="Symbol">;</a> <a id="23439" href="Algebra.Structures.html#12890" class="Field">zero</a> <a id="23444" class="Symbol">=</a> <a id="23446" href="Data.Nat.Properties.html#21373" class="Function">*-zero</a>
<a id="23455" class="Symbol">}</a>
<a id="+-*-isCommutativeSemiring"></a><a id="23458" href="Data.Nat.Properties.html#23458" class="Function">+-*-isCommutativeSemiring</a> <a id="23484" class="Symbol">:</a> <a id="23486" href="Algebra.Structures.html#13418" class="Record">IsCommutativeSemiring</a> <a id="23508" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a> <a id="23512" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a> <a id="23516" class="Number">0</a> <a id="23518" class="Number">1</a>
<a id="23520" href="Data.Nat.Properties.html#23458" class="Function">+-*-isCommutativeSemiring</a> <a id="23546" class="Symbol">=</a> <a id="23548" class="Keyword">record</a>
<a id="23557" class="Symbol">{</a> <a id="23559" href="Algebra.Structures.html#13498" class="Field">isSemiring</a> <a id="23570" class="Symbol">=</a> <a id="23572" href="Data.Nat.Properties.html#23103" class="Function">+-*-isSemiring</a>
<a id="23589" class="Symbol">;</a> <a id="23591" href="Algebra.Structures.html#13536" class="Field">*-comm</a> <a id="23602" class="Symbol">=</a> <a id="23604" href="Data.Nat.Properties.html#21421" class="Function">*-comm</a>
<a id="23613" class="Symbol">}</a>
<a id="23616" class="Comment">------------------------------------------------------------------------</a>
<a id="23689" class="Comment">-- Bundles</a>
<a id="*-magma"></a><a id="23701" href="Data.Nat.Properties.html#23701" class="Function">*-magma</a> <a id="23709" class="Symbol">:</a> <a id="23711" href="Algebra.Bundles.html#1141" class="Record">Magma</a> <a id="23717" href="Level.html#521" class="Function">0</a> <a id="23720" href="Level.html#521" class="Function">0</a>
<a id="23723" href="Data.Nat.Properties.html#23701" class="Function">*-magma</a> <a id="23731" class="Symbol">=</a> <a id="23733" class="Keyword">record</a>
<a id="23742" class="Symbol">{</a> <a id="23744" href="Algebra.Bundles.html#1293" class="Field">isMagma</a> <a id="23752" class="Symbol">=</a> <a id="23754" href="Data.Nat.Properties.html#22477" class="Function">*-isMagma</a>
<a id="23766" class="Symbol">}</a>
<a id="*-semigroup"></a><a id="23769" href="Data.Nat.Properties.html#23769" class="Function">*-semigroup</a> <a id="23781" class="Symbol">:</a> <a id="23783" href="Algebra.Bundles.html#4139" class="Record">Semigroup</a> <a id="23793" href="Level.html#521" class="Function">0</a> <a id="23796" href="Level.html#521" class="Function">0</a>
<a id="23799" href="Data.Nat.Properties.html#23769" class="Function">*-semigroup</a> <a id="23811" class="Symbol">=</a> <a id="23813" class="Keyword">record</a>
<a id="23822" class="Symbol">{</a> <a id="23824" href="Algebra.Bundles.html#4307" class="Field">isSemigroup</a> <a id="23836" class="Symbol">=</a> <a id="23838" href="Data.Nat.Properties.html#22589" class="Function">*-isSemigroup</a>
<a id="23854" class="Symbol">}</a>
<a id="*-commutativeSemigroup"></a><a id="23857" href="Data.Nat.Properties.html#23857" class="Function">*-commutativeSemigroup</a> <a id="23880" class="Symbol">:</a> <a id="23882" href="Algebra.Bundles.html#4864" class="Record">CommutativeSemigroup</a> <a id="23903" href="Level.html#521" class="Function">0</a> <a id="23906" href="Level.html#521" class="Function">0</a>
<a id="23909" href="Data.Nat.Properties.html#23857" class="Function">*-commutativeSemigroup</a> <a id="23932" class="Symbol">=</a> <a id="23934" class="Keyword">record</a>
<a id="23943" class="Symbol">{</a> <a id="23945" href="Algebra.Bundles.html#5079" class="Field">isCommutativeSemigroup</a> <a id="23968" class="Symbol">=</a> <a id="23970" href="Data.Nat.Properties.html#22695" class="Function">*-isCommutativeSemigroup</a>
<a id="23997" class="Symbol">}</a>
<a id="*-1-monoid"></a><a id="24000" href="Data.Nat.Properties.html#24000" class="Function">*-1-monoid</a> <a id="24011" class="Symbol">:</a> <a id="24013" href="Algebra.Bundles.html#6051" class="Record">Monoid</a> <a id="24020" href="Level.html#521" class="Function">0</a> <a id="24023" href="Level.html#521" class="Function">0</a>
<a id="24026" href="Data.Nat.Properties.html#24000" class="Function">*-1-monoid</a> <a id="24037" class="Symbol">=</a> <a id="24039" class="Keyword">record</a>
<a id="24048" class="Symbol">{</a> <a id="24050" href="Algebra.Bundles.html#6230" class="Field">isMonoid</a> <a id="24059" class="Symbol">=</a> <a id="24061" href="Data.Nat.Properties.html#22845" class="Function">*-1-isMonoid</a>
<a id="24076" class="Symbol">}</a>
<a id="*-1-commutativeMonoid"></a><a id="24079" href="Data.Nat.Properties.html#24079" class="Function">*-1-commutativeMonoid</a> <a id="24101" class="Symbol">:</a> <a id="24103" href="Algebra.Bundles.html#6622" class="Record">CommutativeMonoid</a> <a id="24121" href="Level.html#521" class="Function">0</a> <a id="24124" href="Level.html#521" class="Function">0</a>
<a id="24127" href="Data.Nat.Properties.html#24079" class="Function">*-1-commutativeMonoid</a> <a id="24149" class="Symbol">=</a> <a id="24151" class="Keyword">record</a>
<a id="24160" class="Symbol">{</a> <a id="24162" href="Algebra.Bundles.html#6856" class="Field">isCommutativeMonoid</a> <a id="24182" class="Symbol">=</a> <a id="24184" href="Data.Nat.Properties.html#22963" class="Function">*-1-isCommutativeMonoid</a>
<a id="24210" class="Symbol">}</a>
<a id="+-*-semiring"></a><a id="24213" href="Data.Nat.Properties.html#24213" class="Function">+-*-semiring</a> <a id="24226" class="Symbol">:</a> <a id="24228" href="Algebra.Bundles.html#16346" class="Record">Semiring</a> <a id="24237" href="Level.html#521" class="Function">0</a> <a id="24240" href="Level.html#521" class="Function">0</a>
<a id="24243" href="Data.Nat.Properties.html#24213" class="Function">+-*-semiring</a> <a id="24256" class="Symbol">=</a> <a id="24258" class="Keyword">record</a>
<a id="24267" class="Symbol">{</a> <a id="24269" href="Algebra.Bundles.html#16604" class="Field">isSemiring</a> <a id="24280" class="Symbol">=</a> <a id="24282" href="Data.Nat.Properties.html#23103" class="Function">+-*-isSemiring</a>
<a id="24299" class="Symbol">}</a>
<a id="+-*-commutativeSemiring"></a><a id="24302" href="Data.Nat.Properties.html#24302" class="Function">+-*-commutativeSemiring</a> <a id="24326" class="Symbol">:</a> <a id="24328" href="Algebra.Bundles.html#17471" class="Record">CommutativeSemiring</a> <a id="24348" href="Level.html#521" class="Function">0</a> <a id="24351" href="Level.html#521" class="Function">0</a>
<a id="24354" href="Data.Nat.Properties.html#24302" class="Function">+-*-commutativeSemiring</a> <a id="24378" class="Symbol">=</a> <a id="24380" class="Keyword">record</a>
<a id="24389" class="Symbol">{</a> <a id="24391" href="Algebra.Bundles.html#17806" class="Field">isCommutativeSemiring</a> <a id="24413" class="Symbol">=</a> <a id="24415" href="Data.Nat.Properties.html#23458" class="Function">+-*-isCommutativeSemiring</a>
<a id="24443" class="Symbol">}</a>
<a id="24446" class="Comment">------------------------------------------------------------------------</a>
<a id="24519" class="Comment">-- Other properties of _*_ and _≡_</a>
<a id="*-cancelʳ-≡"></a><a id="24555" href="Data.Nat.Properties.html#24555" class="Function">*-cancelʳ-≡</a> <a id="24567" class="Symbol">:</a> <a id="24569" class="Symbol"></a> <a id="24571" href="Data.Nat.Properties.html#24571" class="Bound">m</a> <a id="24573" href="Data.Nat.Properties.html#24573" class="Bound">n</a> <a id="24575" href="Data.Nat.Properties.html#24575" class="Bound">o</a> <a id="24577" class="Symbol">.{{</a><a id="24580" href="Data.Nat.Properties.html#24580" class="Bound">_</a> <a id="24582" class="Symbol">:</a> <a id="24584" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="24592" href="Data.Nat.Properties.html#24575" class="Bound">o</a><a id="24593" class="Symbol">}}</a> <a id="24596" class="Symbol"></a> <a id="24598" href="Data.Nat.Properties.html#24571" class="Bound">m</a> <a id="24600" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="24602" href="Data.Nat.Properties.html#24575" class="Bound">o</a> <a id="24604" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="24606" href="Data.Nat.Properties.html#24573" class="Bound">n</a> <a id="24608" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="24610" href="Data.Nat.Properties.html#24575" class="Bound">o</a> <a id="24612" class="Symbol"></a> <a id="24614" href="Data.Nat.Properties.html#24571" class="Bound">m</a> <a id="24616" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="24618" href="Data.Nat.Properties.html#24573" class="Bound">n</a>
<a id="24620" href="Data.Nat.Properties.html#24555" class="Function">*-cancelʳ-≡</a> <a id="24632" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="24640" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="24648" class="Symbol">(</a><a id="24649" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="24653" href="Data.Nat.Properties.html#24653" class="Bound">o</a><a id="24654" class="Symbol">)</a> <a id="24656" href="Data.Nat.Properties.html#24656" class="Bound">eq</a> <a id="24659" class="Symbol">=</a> <a id="24661" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="24666" href="Data.Nat.Properties.html#24555" class="Function">*-cancelʳ-≡</a> <a id="24678" class="Symbol">(</a><a id="24679" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="24683" href="Data.Nat.Properties.html#24683" class="Bound">m</a><a id="24684" class="Symbol">)</a> <a id="24686" class="Symbol">(</a><a id="24687" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="24691" href="Data.Nat.Properties.html#24691" class="Bound">n</a><a id="24692" class="Symbol">)</a> <a id="24694" class="Symbol">(</a><a id="24695" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="24699" href="Data.Nat.Properties.html#24699" class="Bound">o</a><a id="24700" class="Symbol">)</a> <a id="24702" href="Data.Nat.Properties.html#24702" class="Bound">eq</a> <a id="24705" class="Symbol">=</a>
<a id="24709" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="24714" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="24718" class="Symbol">(</a><a id="24719" href="Data.Nat.Properties.html#24555" class="Function">*-cancelʳ-≡</a> <a id="24731" href="Data.Nat.Properties.html#24683" class="Bound">m</a> <a id="24733" href="Data.Nat.Properties.html#24691" class="Bound">n</a> <a id="24735" class="Symbol">(</a><a id="24736" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="24740" href="Data.Nat.Properties.html#24699" class="Bound">o</a><a id="24741" class="Symbol">)</a> <a id="24743" class="Symbol">(</a><a id="24744" href="Data.Nat.Properties.html#15092" class="Function">+-cancelˡ-≡</a> <a id="24756" class="Symbol">(</a><a id="24757" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="24761" href="Data.Nat.Properties.html#24699" class="Bound">o</a><a id="24762" class="Symbol">)</a> <a id="24764" class="Symbol">(</a><a id="24765" href="Data.Nat.Properties.html#24683" class="Bound">m</a> <a id="24767" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="24769" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="24773" href="Data.Nat.Properties.html#24699" class="Bound">o</a><a id="24774" class="Symbol">)</a> <a id="24776" class="Symbol">(</a><a id="24777" href="Data.Nat.Properties.html#24691" class="Bound">n</a> <a id="24779" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="24781" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="24785" href="Data.Nat.Properties.html#24699" class="Bound">o</a><a id="24786" class="Symbol">)</a> <a id="24788" href="Data.Nat.Properties.html#24702" class="Bound">eq</a><a id="24790" class="Symbol">))</a>
<a id="*-cancelˡ-≡"></a><a id="24794" href="Data.Nat.Properties.html#24794" class="Function">*-cancelˡ-≡</a> <a id="24806" class="Symbol">:</a> <a id="24808" class="Symbol"></a> <a id="24810" href="Data.Nat.Properties.html#24810" class="Bound">m</a> <a id="24812" href="Data.Nat.Properties.html#24812" class="Bound">n</a> <a id="24814" href="Data.Nat.Properties.html#24814" class="Bound">o</a> <a id="24816" class="Symbol">.{{</a><a id="24819" href="Data.Nat.Properties.html#24819" class="Bound">_</a> <a id="24821" class="Symbol">:</a> <a id="24823" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="24831" href="Data.Nat.Properties.html#24814" class="Bound">o</a><a id="24832" class="Symbol">}}</a> <a id="24835" class="Symbol"></a> <a id="24837" href="Data.Nat.Properties.html#24814" class="Bound">o</a> <a id="24839" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="24841" href="Data.Nat.Properties.html#24810" class="Bound">m</a> <a id="24843" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="24845" href="Data.Nat.Properties.html#24814" class="Bound">o</a> <a id="24847" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="24849" href="Data.Nat.Properties.html#24812" class="Bound">n</a> <a id="24851" class="Symbol"></a> <a id="24853" href="Data.Nat.Properties.html#24810" class="Bound">m</a> <a id="24855" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="24857" href="Data.Nat.Properties.html#24812" class="Bound">n</a>
<a id="24859" href="Data.Nat.Properties.html#24794" class="Function">*-cancelˡ-≡</a> <a id="24871" href="Data.Nat.Properties.html#24871" class="Bound">m</a> <a id="24873" href="Data.Nat.Properties.html#24873" class="Bound">n</a> <a id="24875" href="Data.Nat.Properties.html#24875" class="Bound">o</a> <a id="24877" class="Keyword">rewrite</a> <a id="24885" href="Data.Nat.Properties.html#21421" class="Function">*-comm</a> <a id="24892" href="Data.Nat.Properties.html#24875" class="Bound">o</a> <a id="24894" href="Data.Nat.Properties.html#24871" class="Bound">m</a> <a id="24896" class="Symbol">|</a> <a id="24898" href="Data.Nat.Properties.html#21421" class="Function">*-comm</a> <a id="24905" href="Data.Nat.Properties.html#24875" class="Bound">o</a> <a id="24907" href="Data.Nat.Properties.html#24873" class="Bound">n</a> <a id="24909" class="Symbol">=</a> <a id="24911" href="Data.Nat.Properties.html#24555" class="Function">*-cancelʳ-≡</a> <a id="24923" href="Data.Nat.Properties.html#24871" class="Bound">m</a> <a id="24925" href="Data.Nat.Properties.html#24873" class="Bound">n</a> <a id="24927" href="Data.Nat.Properties.html#24875" class="Bound">o</a>
<a id="m*n≡0⇒m≡0n≡0"></a><a id="24930" href="Data.Nat.Properties.html#24930" class="Function">m*n≡0⇒m≡0n≡0</a> <a id="24944" class="Symbol">:</a> <a id="24946" class="Symbol"></a> <a id="24948" href="Data.Nat.Properties.html#24948" class="Bound">m</a> <a id="24950" class="Symbol">{</a><a id="24951" href="Data.Nat.Properties.html#24951" class="Bound">n</a><a id="24952" class="Symbol">}</a> <a id="24954" class="Symbol"></a> <a id="24956" href="Data.Nat.Properties.html#24948" class="Bound">m</a> <a id="24958" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="24960" href="Data.Nat.Properties.html#24951" class="Bound">n</a> <a id="24962" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="24964" class="Number">0</a> <a id="24966" class="Symbol"></a> <a id="24968" href="Data.Nat.Properties.html#24948" class="Bound">m</a> <a id="24970" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="24972" class="Number">0</a> <a id="24974" href="Data.Sum.Base.html#625" class="Datatype Operator"></a> <a id="24976" href="Data.Nat.Properties.html#24951" class="Bound">n</a> <a id="24978" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="24980" class="Number">0</a>
<a id="24982" href="Data.Nat.Properties.html#24930" class="Function">m*n≡0⇒m≡0n≡0</a> <a id="24996" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="25004" class="Symbol">{</a><a id="25005" href="Data.Nat.Properties.html#25005" class="Bound">n</a><a id="25006" class="Symbol">}</a> <a id="25012" href="Data.Nat.Properties.html#25012" class="Bound">eq</a> <a id="25015" class="Symbol">=</a> <a id="25017" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a> <a id="25022" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="25027" href="Data.Nat.Properties.html#24930" class="Function">m*n≡0⇒m≡0n≡0</a> <a id="25041" class="Symbol">(</a><a id="25042" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="25046" href="Data.Nat.Properties.html#25046" class="Bound">m</a><a id="25047" class="Symbol">)</a> <a id="25049" class="Symbol">{</a><a id="25050" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="25054" class="Symbol">}</a> <a id="25057" href="Data.Nat.Properties.html#25057" class="Bound">eq</a> <a id="25060" class="Symbol">=</a> <a id="25062" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a> <a id="25067" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="m*n≢0"></a><a id="25073" href="Data.Nat.Properties.html#25073" class="Function">m*n≢0</a> <a id="25079" class="Symbol">:</a> <a id="25081" class="Symbol"></a> <a id="25083" href="Data.Nat.Properties.html#25083" class="Bound">m</a> <a id="25085" href="Data.Nat.Properties.html#25085" class="Bound">n</a> <a id="25087" class="Symbol"></a> <a id="25089" class="Symbol">.{{</a><a id="25092" href="Data.Nat.Properties.html#25092" class="Bound">_</a> <a id="25094" class="Symbol">:</a> <a id="25096" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="25104" href="Data.Nat.Properties.html#25083" class="Bound">m</a><a id="25105" class="Symbol">}}</a> <a id="25108" class="Symbol">.{{</a><a id="25111" href="Data.Nat.Properties.html#25111" class="Bound">_</a> <a id="25113" class="Symbol">:</a> <a id="25115" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="25123" href="Data.Nat.Properties.html#25085" class="Bound">n</a><a id="25124" class="Symbol">}}</a> <a id="25127" class="Symbol"></a> <a id="25129" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="25137" class="Symbol">(</a><a id="25138" href="Data.Nat.Properties.html#25083" class="Bound">m</a> <a id="25140" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="25142" href="Data.Nat.Properties.html#25085" class="Bound">n</a><a id="25143" class="Symbol">)</a>
<a id="25145" href="Data.Nat.Properties.html#25073" class="Function">m*n≢0</a> <a id="25151" class="Symbol">(</a><a id="25152" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="25156" href="Data.Nat.Properties.html#25156" class="Bound">m</a><a id="25157" class="Symbol">)</a> <a id="25159" class="Symbol">(</a><a id="25160" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="25164" href="Data.Nat.Properties.html#25164" class="Bound">n</a><a id="25165" class="Symbol">)</a> <a id="25167" class="Symbol">=</a> <a id="25169" class="Symbol">_</a>
<a id="m*n≢0⇒m≢0"></a><a id="25172" href="Data.Nat.Properties.html#25172" class="Function">m*n≢0⇒m≢0</a> <a id="25182" class="Symbol">:</a> <a id="25184" class="Symbol"></a> <a id="25186" href="Data.Nat.Properties.html#25186" class="Bound">m</a> <a id="25188" class="Symbol">{</a><a id="25189" href="Data.Nat.Properties.html#25189" class="Bound">n</a><a id="25190" class="Symbol">}</a> <a id="25192" class="Symbol"></a> <a id="25194" class="Symbol">.{{</a><a id="25197" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="25205" class="Symbol">(</a><a id="25206" href="Data.Nat.Properties.html#25186" class="Bound">m</a> <a id="25208" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="25210" href="Data.Nat.Properties.html#25189" class="Bound">n</a><a id="25211" class="Symbol">)}}</a> <a id="25215" class="Symbol"></a> <a id="25217" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="25225" href="Data.Nat.Properties.html#25186" class="Bound">m</a>
<a id="25227" href="Data.Nat.Properties.html#25172" class="Function">m*n≢0⇒m≢0</a> <a id="25237" class="Symbol">(</a><a id="25238" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="25242" class="Symbol">_)</a> <a id="25245" class="Symbol">=</a> <a id="25247" class="Symbol">_</a>
<a id="m*n≢0⇒n≢0"></a><a id="25250" href="Data.Nat.Properties.html#25250" class="Function">m*n≢0⇒n≢0</a> <a id="25260" class="Symbol">:</a> <a id="25262" class="Symbol"></a> <a id="25264" href="Data.Nat.Properties.html#25264" class="Bound">m</a> <a id="25266" class="Symbol">{</a><a id="25267" href="Data.Nat.Properties.html#25267" class="Bound">n</a><a id="25268" class="Symbol">}</a> <a id="25270" class="Symbol"></a> <a id="25272" class="Symbol">.{{</a><a id="25275" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="25283" class="Symbol">(</a><a id="25284" href="Data.Nat.Properties.html#25264" class="Bound">m</a> <a id="25286" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="25288" href="Data.Nat.Properties.html#25267" class="Bound">n</a><a id="25289" class="Symbol">)}}</a> <a id="25293" class="Symbol"></a> <a id="25295" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="25303" href="Data.Nat.Properties.html#25267" class="Bound">n</a>
<a id="25305" href="Data.Nat.Properties.html#25250" class="Function">m*n≢0⇒n≢0</a> <a id="25315" href="Data.Nat.Properties.html#25315" class="Bound">m</a> <a id="25317" class="Symbol">{</a><a id="25318" href="Data.Nat.Properties.html#25318" class="Bound">n</a><a id="25319" class="Symbol">}</a> <a id="25321" class="Keyword">rewrite</a> <a id="25329" href="Data.Nat.Properties.html#21421" class="Function">*-comm</a> <a id="25336" href="Data.Nat.Properties.html#25315" class="Bound">m</a> <a id="25338" href="Data.Nat.Properties.html#25318" class="Bound">n</a> <a id="25340" class="Symbol">=</a> <a id="25342" href="Data.Nat.Properties.html#25172" class="Function">m*n≢0⇒m≢0</a> <a id="25352" href="Data.Nat.Properties.html#25318" class="Bound">n</a> <a id="25354" class="Symbol">{</a><a id="25355" href="Data.Nat.Properties.html#25315" class="Bound">m</a><a id="25356" class="Symbol">}</a>
<a id="m*n≡0⇒m≡0"></a><a id="25359" href="Data.Nat.Properties.html#25359" class="Function">m*n≡0⇒m≡0</a> <a id="25369" class="Symbol">:</a> <a id="25371" class="Symbol"></a> <a id="25373" href="Data.Nat.Properties.html#25373" class="Bound">m</a> <a id="25375" href="Data.Nat.Properties.html#25375" class="Bound">n</a> <a id="25377" class="Symbol">.{{</a><a id="25380" href="Data.Nat.Properties.html#25380" class="Bound">_</a> <a id="25382" class="Symbol">:</a> <a id="25384" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="25392" href="Data.Nat.Properties.html#25375" class="Bound">n</a><a id="25393" class="Symbol">}}</a> <a id="25396" class="Symbol"></a> <a id="25398" href="Data.Nat.Properties.html#25373" class="Bound">m</a> <a id="25400" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="25402" href="Data.Nat.Properties.html#25375" class="Bound">n</a> <a id="25404" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="25406" class="Number">0</a> <a id="25408" class="Symbol"></a> <a id="25410" href="Data.Nat.Properties.html#25373" class="Bound">m</a> <a id="25412" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="25414" class="Number">0</a>
<a id="25416" href="Data.Nat.Properties.html#25359" class="Function">m*n≡0⇒m≡0</a> <a id="25426" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="25431" class="Symbol">(</a><a id="25432" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="25436" class="Symbol">_)</a> <a id="25439" href="Data.Nat.Properties.html#25439" class="Bound">eq</a> <a id="25442" class="Symbol">=</a> <a id="25444" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="m*n≡1⇒m≡1"></a><a id="25450" href="Data.Nat.Properties.html#25450" class="Function">m*n≡1⇒m≡1</a> <a id="25460" class="Symbol">:</a> <a id="25462" class="Symbol"></a> <a id="25464" href="Data.Nat.Properties.html#25464" class="Bound">m</a> <a id="25466" href="Data.Nat.Properties.html#25466" class="Bound">n</a> <a id="25468" class="Symbol"></a> <a id="25470" href="Data.Nat.Properties.html#25464" class="Bound">m</a> <a id="25472" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="25474" href="Data.Nat.Properties.html#25466" class="Bound">n</a> <a id="25476" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="25478" class="Number">1</a> <a id="25480" class="Symbol"></a> <a id="25482" href="Data.Nat.Properties.html#25464" class="Bound">m</a> <a id="25484" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="25486" class="Number">1</a>
<a id="25488" href="Data.Nat.Properties.html#25450" class="Function">m*n≡1⇒m≡1</a> <a id="25498" class="Symbol">(</a><a id="25499" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="25503" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="25507" class="Symbol">)</a> <a id="25512" href="Data.Nat.Properties.html#25512" class="Bound">n</a> <a id="25523" class="Symbol">_</a> <a id="25526" class="Symbol">=</a> <a id="25528" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="25533" href="Data.Nat.Properties.html#25450" class="Function">m*n≡1⇒m≡1</a> <a id="25543" class="Symbol">(</a><a id="25544" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="25548" class="Symbol">(</a><a id="25549" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="25553" href="Data.Nat.Properties.html#25553" class="Bound">m</a><a id="25554" class="Symbol">))</a> <a id="25557" class="Symbol">(</a><a id="25558" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="25562" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="25566" class="Symbol">)</a> <a id="25568" class="Symbol">()</a>
<a id="25571" href="Data.Nat.Properties.html#25450" class="Function">m*n≡1⇒m≡1</a> <a id="25581" class="Symbol">(</a><a id="25582" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="25586" class="Symbol">(</a><a id="25587" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="25591" href="Data.Nat.Properties.html#25591" class="Bound">m</a><a id="25592" class="Symbol">))</a> <a id="25595" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="25606" href="Data.Nat.Properties.html#25606" class="Bound">eq</a> <a id="25609" class="Symbol">=</a>
<a id="25613" href="Relation.Nullary.Negation.Core.html#1226" class="Function">contradiction</a> <a id="25627" class="Symbol">(</a><a id="25628" href="Relation.Binary.PropositionalEquality.Core.html#1757" class="Function">trans</a> <a id="25634" class="Symbol">(</a><a id="25635" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="25639" href="Function.Base.html#1974" class="Function Operator">$</a> <a id="25641" href="Data.Nat.Properties.html#21295" class="Function">*-zeroʳ</a> <a id="25649" href="Data.Nat.Properties.html#25591" class="Bound">m</a><a id="25650" class="Symbol">)</a> <a id="25652" href="Data.Nat.Properties.html#25606" class="Bound">eq</a><a id="25654" class="Symbol">)</a> <a id="25656" class="Symbol">λ()</a>
<a id="m*n≡1⇒n≡1"></a><a id="25661" href="Data.Nat.Properties.html#25661" class="Function">m*n≡1⇒n≡1</a> <a id="25671" class="Symbol">:</a> <a id="25673" class="Symbol"></a> <a id="25675" href="Data.Nat.Properties.html#25675" class="Bound">m</a> <a id="25677" href="Data.Nat.Properties.html#25677" class="Bound">n</a> <a id="25679" class="Symbol"></a> <a id="25681" href="Data.Nat.Properties.html#25675" class="Bound">m</a> <a id="25683" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="25685" href="Data.Nat.Properties.html#25677" class="Bound">n</a> <a id="25687" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="25689" class="Number">1</a> <a id="25691" class="Symbol"></a> <a id="25693" href="Data.Nat.Properties.html#25677" class="Bound">n</a> <a id="25695" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="25697" class="Number">1</a>
<a id="25699" href="Data.Nat.Properties.html#25661" class="Function">m*n≡1⇒n≡1</a> <a id="25709" href="Data.Nat.Properties.html#25709" class="Bound">m</a> <a id="25711" href="Data.Nat.Properties.html#25711" class="Bound">n</a> <a id="25713" href="Data.Nat.Properties.html#25713" class="Bound">eq</a> <a id="25716" class="Symbol">=</a> <a id="25718" href="Data.Nat.Properties.html#25450" class="Function">m*n≡1⇒m≡1</a> <a id="25728" href="Data.Nat.Properties.html#25711" class="Bound">n</a> <a id="25730" href="Data.Nat.Properties.html#25709" class="Bound">m</a> <a id="25732" class="Symbol">(</a><a id="25733" href="Relation.Binary.PropositionalEquality.Core.html#1757" class="Function">trans</a> <a id="25739" class="Symbol">(</a><a id="25740" href="Data.Nat.Properties.html#21421" class="Function">*-comm</a> <a id="25747" href="Data.Nat.Properties.html#25711" class="Bound">n</a> <a id="25749" href="Data.Nat.Properties.html#25709" class="Bound">m</a><a id="25750" class="Symbol">)</a> <a id="25752" href="Data.Nat.Properties.html#25713" class="Bound">eq</a><a id="25754" class="Symbol">)</a>
<a id="[m*n]*[o*p]≡[m*o]*[n*p]"></a><a id="25757" href="Data.Nat.Properties.html#25757" class="Function">[m*n]*[o*p]≡[m*o]*[n*p]</a> <a id="25781" class="Symbol">:</a> <a id="25783" class="Symbol"></a> <a id="25785" href="Data.Nat.Properties.html#25785" class="Bound">m</a> <a id="25787" href="Data.Nat.Properties.html#25787" class="Bound">n</a> <a id="25789" href="Data.Nat.Properties.html#25789" class="Bound">o</a> <a id="25791" href="Data.Nat.Properties.html#25791" class="Bound">p</a> <a id="25793" class="Symbol"></a> <a id="25795" class="Symbol">(</a><a id="25796" href="Data.Nat.Properties.html#25785" class="Bound">m</a> <a id="25798" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="25800" href="Data.Nat.Properties.html#25787" class="Bound">n</a><a id="25801" class="Symbol">)</a> <a id="25803" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="25805" class="Symbol">(</a><a id="25806" href="Data.Nat.Properties.html#25789" class="Bound">o</a> <a id="25808" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="25810" href="Data.Nat.Properties.html#25791" class="Bound">p</a><a id="25811" class="Symbol">)</a> <a id="25813" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="25815" class="Symbol">(</a><a id="25816" href="Data.Nat.Properties.html#25785" class="Bound">m</a> <a id="25818" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="25820" href="Data.Nat.Properties.html#25789" class="Bound">o</a><a id="25821" class="Symbol">)</a> <a id="25823" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="25825" class="Symbol">(</a><a id="25826" href="Data.Nat.Properties.html#25787" class="Bound">n</a> <a id="25828" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="25830" href="Data.Nat.Properties.html#25791" class="Bound">p</a><a id="25831" class="Symbol">)</a>
<a id="25833" href="Data.Nat.Properties.html#25757" class="Function">[m*n]*[o*p]≡[m*o]*[n*p]</a> <a id="25857" href="Data.Nat.Properties.html#25857" class="Bound">m</a> <a id="25859" href="Data.Nat.Properties.html#25859" class="Bound">n</a> <a id="25861" href="Data.Nat.Properties.html#25861" class="Bound">o</a> <a id="25863" href="Data.Nat.Properties.html#25863" class="Bound">p</a> <a id="25865" class="Symbol">=</a> <a id="25867" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a>
<a id="25884" class="Symbol">(</a><a id="25885" href="Data.Nat.Properties.html#25857" class="Bound">m</a> <a id="25887" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="25889" href="Data.Nat.Properties.html#25859" class="Bound">n</a><a id="25890" class="Symbol">)</a> <a id="25892" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="25894" class="Symbol">(</a><a id="25895" href="Data.Nat.Properties.html#25861" class="Bound">o</a> <a id="25897" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="25899" href="Data.Nat.Properties.html#25863" class="Bound">p</a><a id="25900" class="Symbol">)</a> <a id="25902" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="25906" href="Data.Nat.Properties.html#22111" class="Function">*-assoc</a> <a id="25914" href="Data.Nat.Properties.html#25857" class="Bound">m</a> <a id="25916" href="Data.Nat.Properties.html#25859" class="Bound">n</a> <a id="25918" class="Symbol">(</a><a id="25919" href="Data.Nat.Properties.html#25861" class="Bound">o</a> <a id="25921" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="25923" href="Data.Nat.Properties.html#25863" class="Bound">p</a><a id="25924" class="Symbol">)</a> <a id="25926" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="25930" href="Data.Nat.Properties.html#25857" class="Bound">m</a> <a id="25932" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="25934" class="Symbol">(</a><a id="25935" href="Data.Nat.Properties.html#25859" class="Bound">n</a> <a id="25937" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="25939" class="Symbol">(</a><a id="25940" href="Data.Nat.Properties.html#25861" class="Bound">o</a> <a id="25942" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="25944" href="Data.Nat.Properties.html#25863" class="Bound">p</a><a id="25945" class="Symbol">))</a> <a id="25948" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="25952" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="25957" class="Symbol">(</a><a id="25958" href="Data.Nat.Properties.html#25857" class="Bound">m</a> <a id="25960" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*_</a><a id="25962" class="Symbol">)</a> <a id="25964" class="Symbol">(</a><a id="25965" href="Algebra.Properties.CommutativeSemigroup.html#1424" class="Function">x∙yz≈y∙xz</a> <a id="25975" href="Data.Nat.Properties.html#25859" class="Bound">n</a> <a id="25977" href="Data.Nat.Properties.html#25861" class="Bound">o</a> <a id="25979" href="Data.Nat.Properties.html#25863" class="Bound">p</a><a id="25980" class="Symbol">)</a> <a id="25982" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="25986" href="Data.Nat.Properties.html#25857" class="Bound">m</a> <a id="25988" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="25990" class="Symbol">(</a><a id="25991" href="Data.Nat.Properties.html#25861" class="Bound">o</a> <a id="25993" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="25995" class="Symbol">(</a><a id="25996" href="Data.Nat.Properties.html#25859" class="Bound">n</a> <a id="25998" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="26000" href="Data.Nat.Properties.html#25863" class="Bound">p</a><a id="26001" class="Symbol">))</a> <a id="26004" href="Relation.Binary.Reasoning.Syntax.html#11078" class="Function">≡⟨</a> <a id="26007" href="Data.Nat.Properties.html#22111" class="Function">*-assoc</a> <a id="26015" href="Data.Nat.Properties.html#25857" class="Bound">m</a> <a id="26017" href="Data.Nat.Properties.html#25861" class="Bound">o</a> <a id="26019" class="Symbol">(</a><a id="26020" href="Data.Nat.Properties.html#25859" class="Bound">n</a> <a id="26022" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="26024" href="Data.Nat.Properties.html#25863" class="Bound">p</a><a id="26025" class="Symbol">)</a> <a id="26027" href="Relation.Binary.Reasoning.Syntax.html#11078" class="Function"></a>
<a id="26031" class="Symbol">(</a><a id="26032" href="Data.Nat.Properties.html#25857" class="Bound">m</a> <a id="26034" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="26036" href="Data.Nat.Properties.html#25861" class="Bound">o</a><a id="26037" class="Symbol">)</a> <a id="26039" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="26041" class="Symbol">(</a><a id="26042" href="Data.Nat.Properties.html#25859" class="Bound">n</a> <a id="26044" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="26046" href="Data.Nat.Properties.html#25863" class="Bound">p</a><a id="26047" class="Symbol">)</a> <a id="26049" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="26053" class="Keyword">where</a> <a id="26059" class="Keyword">open</a> <a id="26064" href="Algebra.Properties.CommutativeSemigroup.html" class="Module">CommSemigroupProperties</a> <a id="26088" href="Data.Nat.Properties.html#23857" class="Function">*-commutativeSemigroup</a>
<a id="m≢0∧n&gt;1⇒m*n&gt;1"></a><a id="26112" href="Data.Nat.Properties.html#26112" class="Function">m≢0∧n&gt;1⇒m*n&gt;1</a> <a id="26126" class="Symbol">:</a> <a id="26128" class="Symbol"></a> <a id="26130" href="Data.Nat.Properties.html#26130" class="Bound">m</a> <a id="26132" href="Data.Nat.Properties.html#26132" class="Bound">n</a> <a id="26134" class="Symbol">.{{</a><a id="26137" href="Data.Nat.Properties.html#26137" class="Bound">_</a> <a id="26139" class="Symbol">:</a> <a id="26141" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="26149" href="Data.Nat.Properties.html#26130" class="Bound">m</a><a id="26150" class="Symbol">}}</a> <a id="26153" class="Symbol">.{{</a><a id="26156" href="Data.Nat.Properties.html#26156" class="Bound">_</a> <a id="26158" class="Symbol">:</a> <a id="26160" href="Data.Nat.Base.html#3795" class="Record">NonTrivial</a> <a id="26171" href="Data.Nat.Properties.html#26132" class="Bound">n</a><a id="26172" class="Symbol">}}</a> <a id="26175" class="Symbol"></a> <a id="26177" href="Data.Nat.Base.html#3795" class="Record">NonTrivial</a> <a id="26188" class="Symbol">(</a><a id="26189" href="Data.Nat.Properties.html#26130" class="Bound">m</a> <a id="26191" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="26193" href="Data.Nat.Properties.html#26132" class="Bound">n</a><a id="26194" class="Symbol">)</a>
<a id="26196" href="Data.Nat.Properties.html#26112" class="Function">m≢0∧n&gt;1⇒m*n&gt;1</a> <a id="26210" class="Symbol">(</a><a id="26211" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="26215" href="Data.Nat.Properties.html#26215" class="Bound">m</a><a id="26216" class="Symbol">)</a> <a id="26218" class="Symbol">(</a><a id="26219" href="Data.Nat.Base.html#1095" class="InductiveConstructor">2+</a> <a id="26222" href="Data.Nat.Properties.html#26222" class="Bound">n</a><a id="26223" class="Symbol">)</a> <a id="26225" class="Symbol">=</a> <a id="26227" class="Symbol">_</a>
<a id="n≢0∧m&gt;1⇒m*n&gt;1"></a><a id="26230" href="Data.Nat.Properties.html#26230" class="Function">n≢0∧m&gt;1⇒m*n&gt;1</a> <a id="26244" class="Symbol">:</a> <a id="26246" class="Symbol"></a> <a id="26248" href="Data.Nat.Properties.html#26248" class="Bound">m</a> <a id="26250" href="Data.Nat.Properties.html#26250" class="Bound">n</a> <a id="26252" class="Symbol">.{{</a><a id="26255" href="Data.Nat.Properties.html#26255" class="Bound">_</a> <a id="26257" class="Symbol">:</a> <a id="26259" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="26267" href="Data.Nat.Properties.html#26250" class="Bound">n</a><a id="26268" class="Symbol">}}</a> <a id="26271" class="Symbol">.{{</a><a id="26274" href="Data.Nat.Properties.html#26274" class="Bound">_</a> <a id="26276" class="Symbol">:</a> <a id="26278" href="Data.Nat.Base.html#3795" class="Record">NonTrivial</a> <a id="26289" href="Data.Nat.Properties.html#26248" class="Bound">m</a><a id="26290" class="Symbol">}}</a> <a id="26293" class="Symbol"></a> <a id="26295" href="Data.Nat.Base.html#3795" class="Record">NonTrivial</a> <a id="26306" class="Symbol">(</a><a id="26307" href="Data.Nat.Properties.html#26248" class="Bound">m</a> <a id="26309" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="26311" href="Data.Nat.Properties.html#26250" class="Bound">n</a><a id="26312" class="Symbol">)</a>
<a id="26314" href="Data.Nat.Properties.html#26230" class="Function">n≢0∧m&gt;1⇒m*n&gt;1</a> <a id="26328" href="Data.Nat.Properties.html#26328" class="Bound">m</a> <a id="26330" href="Data.Nat.Properties.html#26330" class="Bound">n</a> <a id="26332" class="Keyword">rewrite</a> <a id="26340" href="Data.Nat.Properties.html#21421" class="Function">*-comm</a> <a id="26347" href="Data.Nat.Properties.html#26328" class="Bound">m</a> <a id="26349" href="Data.Nat.Properties.html#26330" class="Bound">n</a> <a id="26351" class="Symbol">=</a> <a id="26353" href="Data.Nat.Properties.html#26112" class="Function">m≢0∧n&gt;1⇒m*n&gt;1</a> <a id="26367" href="Data.Nat.Properties.html#26330" class="Bound">n</a> <a id="26369" href="Data.Nat.Properties.html#26328" class="Bound">m</a>
<a id="26372" class="Comment">------------------------------------------------------------------------</a>
<a id="26445" class="Comment">-- Other properties of _*_ and _≤_/_&lt;_</a>
<a id="*-cancelʳ-≤"></a><a id="26485" href="Data.Nat.Properties.html#26485" class="Function">*-cancelʳ-≤</a> <a id="26497" class="Symbol">:</a> <a id="26499" class="Symbol"></a> <a id="26501" href="Data.Nat.Properties.html#26501" class="Bound">m</a> <a id="26503" href="Data.Nat.Properties.html#26503" class="Bound">n</a> <a id="26505" href="Data.Nat.Properties.html#26505" class="Bound">o</a> <a id="26507" class="Symbol">.{{</a><a id="26510" href="Data.Nat.Properties.html#26510" class="Bound">_</a> <a id="26512" class="Symbol">:</a> <a id="26514" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="26522" href="Data.Nat.Properties.html#26505" class="Bound">o</a><a id="26523" class="Symbol">}}</a> <a id="26526" class="Symbol"></a> <a id="26528" href="Data.Nat.Properties.html#26501" class="Bound">m</a> <a id="26530" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="26532" href="Data.Nat.Properties.html#26505" class="Bound">o</a> <a id="26534" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="26536" href="Data.Nat.Properties.html#26503" class="Bound">n</a> <a id="26538" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="26540" href="Data.Nat.Properties.html#26505" class="Bound">o</a> <a id="26542" class="Symbol"></a> <a id="26544" href="Data.Nat.Properties.html#26501" class="Bound">m</a> <a id="26546" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="26548" href="Data.Nat.Properties.html#26503" class="Bound">n</a>
<a id="26550" href="Data.Nat.Properties.html#26485" class="Function">*-cancelʳ-≤</a> <a id="26562" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="26570" class="Symbol">_</a> <a id="26578" class="Symbol">(</a><a id="26579" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="26583" href="Data.Nat.Properties.html#26583" class="Bound">o</a><a id="26584" class="Symbol">)</a> <a id="26586" class="Symbol">_</a> <a id="26589" class="Symbol">=</a> <a id="26591" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="26595" href="Data.Nat.Properties.html#26485" class="Function">*-cancelʳ-≤</a> <a id="26607" class="Symbol">(</a><a id="26608" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="26612" href="Data.Nat.Properties.html#26612" class="Bound">m</a><a id="26613" class="Symbol">)</a> <a id="26615" class="Symbol">(</a><a id="26616" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="26620" href="Data.Nat.Properties.html#26620" class="Bound">n</a><a id="26621" class="Symbol">)</a> <a id="26623" class="Symbol">(</a><a id="26624" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="26628" href="Data.Nat.Properties.html#26628" class="Bound">o</a><a id="26629" class="Symbol">)</a> <a id="26631" href="Data.Nat.Properties.html#26631" class="Bound">le</a> <a id="26634" class="Symbol">=</a>
<a id="26638" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="26642" class="Symbol">(</a><a id="26643" href="Data.Nat.Properties.html#26485" class="Function">*-cancelʳ-≤</a> <a id="26655" href="Data.Nat.Properties.html#26612" class="Bound">m</a> <a id="26657" href="Data.Nat.Properties.html#26620" class="Bound">n</a> <a id="26659" class="Symbol">(</a><a id="26660" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="26664" href="Data.Nat.Properties.html#26628" class="Bound">o</a><a id="26665" class="Symbol">)</a> <a id="26667" class="Symbol">(</a><a id="26668" href="Data.Nat.Properties.html#17569" class="Function">+-cancelˡ-≤</a> <a id="26680" class="Symbol">_</a> <a id="26682" class="Symbol">_</a> <a id="26684" class="Symbol">_</a> <a id="26686" href="Data.Nat.Properties.html#26631" class="Bound">le</a><a id="26688" class="Symbol">))</a>
<a id="*-cancelˡ-≤"></a><a id="26692" href="Data.Nat.Properties.html#26692" class="Function">*-cancelˡ-≤</a> <a id="26704" class="Symbol">:</a> <a id="26706" class="Symbol"></a> <a id="26708" href="Data.Nat.Properties.html#26708" class="Bound">o</a> <a id="26710" class="Symbol">.{{</a><a id="26713" href="Data.Nat.Properties.html#26713" class="Bound">_</a> <a id="26715" class="Symbol">:</a> <a id="26717" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="26725" href="Data.Nat.Properties.html#26708" class="Bound">o</a><a id="26726" class="Symbol">}}</a> <a id="26729" class="Symbol"></a> <a id="26731" href="Data.Nat.Properties.html#26708" class="Bound">o</a> <a id="26733" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="26735" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="26737" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="26739" href="Data.Nat.Properties.html#26708" class="Bound">o</a> <a id="26741" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="26743" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="26745" class="Symbol"></a> <a id="26747" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="26749" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="26751" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="26753" href="Data.Nat.Properties.html#26692" class="Function">*-cancelˡ-≤</a> <a id="26765" class="Symbol">{</a><a id="26766" href="Data.Nat.Properties.html#26766" class="Bound">m</a><a id="26767" class="Symbol">}</a> <a id="26769" class="Symbol">{</a><a id="26770" href="Data.Nat.Properties.html#26770" class="Bound">n</a><a id="26771" class="Symbol">}</a> <a id="26773" href="Data.Nat.Properties.html#26773" class="Bound">o</a> <a id="26775" class="Keyword">rewrite</a> <a id="26783" href="Data.Nat.Properties.html#21421" class="Function">*-comm</a> <a id="26790" href="Data.Nat.Properties.html#26773" class="Bound">o</a> <a id="26792" href="Data.Nat.Properties.html#26766" class="Bound">m</a> <a id="26794" class="Symbol">|</a> <a id="26796" href="Data.Nat.Properties.html#21421" class="Function">*-comm</a> <a id="26803" href="Data.Nat.Properties.html#26773" class="Bound">o</a> <a id="26805" href="Data.Nat.Properties.html#26770" class="Bound">n</a> <a id="26807" class="Symbol">=</a> <a id="26809" href="Data.Nat.Properties.html#26485" class="Function">*-cancelʳ-≤</a> <a id="26821" href="Data.Nat.Properties.html#26766" class="Bound">m</a> <a id="26823" href="Data.Nat.Properties.html#26770" class="Bound">n</a> <a id="26825" href="Data.Nat.Properties.html#26773" class="Bound">o</a>
<a id="*-mono-≤"></a><a id="26828" href="Data.Nat.Properties.html#26828" class="Function">*-mono-≤</a> <a id="26837" class="Symbol">:</a> <a id="26839" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a> <a id="26843" href="Relation.Binary.Core.html#1703" class="Function Operator">Preserves₂</a> <a id="26854" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="26858" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="26860" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="26864" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="26866" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="26870" href="Data.Nat.Properties.html#26828" class="Function">*-mono-≤</a> <a id="26879" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="26889" class="Symbol">_</a> <a id="26893" class="Symbol">=</a> <a id="26895" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="26899" href="Data.Nat.Properties.html#26828" class="Function">*-mono-≤</a> <a id="26908" class="Symbol">(</a><a id="26909" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="26913" href="Data.Nat.Properties.html#26913" class="Bound">m≤n</a><a id="26916" class="Symbol">)</a> <a id="26918" href="Data.Nat.Properties.html#26918" class="Bound">u≤v</a> <a id="26922" class="Symbol">=</a> <a id="26924" href="Data.Nat.Properties.html#18837" class="Function">+-mono-≤</a> <a id="26933" href="Data.Nat.Properties.html#26918" class="Bound">u≤v</a> <a id="26937" class="Symbol">(</a><a id="26938" href="Data.Nat.Properties.html#26828" class="Function">*-mono-≤</a> <a id="26947" href="Data.Nat.Properties.html#26913" class="Bound">m≤n</a> <a id="26951" href="Data.Nat.Properties.html#26918" class="Bound">u≤v</a><a id="26954" class="Symbol">)</a>
<a id="*-monoˡ-≤"></a><a id="26957" href="Data.Nat.Properties.html#26957" class="Function">*-monoˡ-≤</a> <a id="26967" class="Symbol">:</a> <a id="26969" class="Symbol"></a> <a id="26971" href="Data.Nat.Properties.html#26971" class="Bound">n</a> <a id="26973" class="Symbol"></a> <a id="26975" class="Symbol">(</a><a id="26976" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*</a> <a id="26979" href="Data.Nat.Properties.html#26971" class="Bound">n</a><a id="26980" class="Symbol">)</a> <a id="26982" href="Relation.Binary.Core.html#1577" class="Function Operator">Preserves</a> <a id="26992" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="26996" href="Relation.Binary.Core.html#1577" class="Function Operator"></a> <a id="26998" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="27002" href="Data.Nat.Properties.html#26957" class="Function">*-monoˡ-≤</a> <a id="27012" href="Data.Nat.Properties.html#27012" class="Bound">n</a> <a id="27014" href="Data.Nat.Properties.html#27014" class="Bound">m≤o</a> <a id="27018" class="Symbol">=</a> <a id="27020" href="Data.Nat.Properties.html#26828" class="Function">*-mono-≤</a> <a id="27029" href="Data.Nat.Properties.html#27014" class="Bound">m≤o</a> <a id="27033" class="Symbol">(</a><a id="27034" href="Data.Nat.Properties.html#5242" class="Function">≤-refl</a> <a id="27041" class="Symbol">{</a><a id="27042" href="Data.Nat.Properties.html#27012" class="Bound">n</a><a id="27043" class="Symbol">})</a>
<a id="*-monoʳ-≤"></a><a id="27047" href="Data.Nat.Properties.html#27047" class="Function">*-monoʳ-≤</a> <a id="27057" class="Symbol">:</a> <a id="27059" class="Symbol"></a> <a id="27061" href="Data.Nat.Properties.html#27061" class="Bound">n</a> <a id="27063" class="Symbol"></a> <a id="27065" class="Symbol">(</a><a id="27066" href="Data.Nat.Properties.html#27061" class="Bound">n</a> <a id="27068" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*_</a><a id="27070" class="Symbol">)</a> <a id="27072" href="Relation.Binary.Core.html#1577" class="Function Operator">Preserves</a> <a id="27082" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="27086" href="Relation.Binary.Core.html#1577" class="Function Operator"></a> <a id="27088" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="27092" href="Data.Nat.Properties.html#27047" class="Function">*-monoʳ-≤</a> <a id="27102" href="Data.Nat.Properties.html#27102" class="Bound">n</a> <a id="27104" href="Data.Nat.Properties.html#27104" class="Bound">m≤o</a> <a id="27108" class="Symbol">=</a> <a id="27110" href="Data.Nat.Properties.html#26828" class="Function">*-mono-≤</a> <a id="27119" class="Symbol">(</a><a id="27120" href="Data.Nat.Properties.html#5242" class="Function">≤-refl</a> <a id="27127" class="Symbol">{</a><a id="27128" href="Data.Nat.Properties.html#27102" class="Bound">n</a><a id="27129" class="Symbol">})</a> <a id="27132" href="Data.Nat.Properties.html#27104" class="Bound">m≤o</a>
<a id="*-mono-&lt;"></a><a id="27137" href="Data.Nat.Properties.html#27137" class="Function">*-mono-&lt;</a> <a id="27146" class="Symbol">:</a> <a id="27148" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a> <a id="27152" href="Relation.Binary.Core.html#1703" class="Function Operator">Preserves₂</a> <a id="27163" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="27167" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="27169" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="27173" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="27175" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a>
<a id="27179" href="Data.Nat.Properties.html#27137" class="Function">*-mono-&lt;</a> <a id="27188" href="Data.Nat.Base.html#1873" class="InductiveConstructor">z&lt;s</a> <a id="27206" href="Data.Nat.Properties.html#27206" class="Bound">u&lt;v</a><a id="27209" class="Symbol">@(</a><a id="27211" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="27215" class="Symbol">_)</a> <a id="27218" class="Symbol">=</a> <a id="27220" href="Data.Nat.Properties.html#12249" class="Function">0&lt;1+n</a>
<a id="27226" href="Data.Nat.Properties.html#27137" class="Function">*-mono-&lt;</a> <a id="27235" class="Symbol">(</a><a id="27236" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a> <a id="27240" href="Data.Nat.Properties.html#27240" class="Bound">m&lt;n</a><a id="27243" class="Symbol">@(</a><a id="27245" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="27249" class="Symbol">_))</a> <a id="27253" href="Data.Nat.Properties.html#27253" class="Bound">u&lt;v</a><a id="27256" class="Symbol">@(</a><a id="27258" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="27262" class="Symbol">_)</a> <a id="27265" class="Symbol">=</a> <a id="27267" href="Data.Nat.Properties.html#19523" class="Function">+-mono-&lt;</a> <a id="27276" href="Data.Nat.Properties.html#27253" class="Bound">u&lt;v</a> <a id="27280" class="Symbol">(</a><a id="27281" href="Data.Nat.Properties.html#27137" class="Function">*-mono-&lt;</a> <a id="27290" href="Data.Nat.Properties.html#27240" class="Bound">m&lt;n</a> <a id="27294" href="Data.Nat.Properties.html#27253" class="Bound">u&lt;v</a><a id="27297" class="Symbol">)</a>
<a id="*-monoˡ-&lt;"></a><a id="27300" href="Data.Nat.Properties.html#27300" class="Function">*-monoˡ-&lt;</a> <a id="27310" class="Symbol">:</a> <a id="27312" class="Symbol"></a> <a id="27314" href="Data.Nat.Properties.html#27314" class="Bound">n</a> <a id="27316" class="Symbol">.{{</a><a id="27319" href="Data.Nat.Properties.html#27319" class="Bound">_</a> <a id="27321" class="Symbol">:</a> <a id="27323" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="27331" href="Data.Nat.Properties.html#27314" class="Bound">n</a><a id="27332" class="Symbol">}}</a> <a id="27335" class="Symbol"></a> <a id="27337" class="Symbol">(</a><a id="27338" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*</a> <a id="27341" href="Data.Nat.Properties.html#27314" class="Bound">n</a><a id="27342" class="Symbol">)</a> <a id="27344" href="Relation.Binary.Core.html#1577" class="Function Operator">Preserves</a> <a id="27354" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="27358" href="Relation.Binary.Core.html#1577" class="Function Operator"></a> <a id="27360" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a>
<a id="27364" href="Data.Nat.Properties.html#27300" class="Function">*-monoˡ-&lt;</a> <a id="27374" class="Symbol">(</a><a id="27375" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="27379" href="Data.Nat.Properties.html#27379" class="Bound">n</a><a id="27380" class="Symbol">)</a> <a id="27382" href="Data.Nat.Base.html#1873" class="InductiveConstructor">z&lt;s</a> <a id="27392" class="Symbol">=</a> <a id="27394" href="Data.Nat.Properties.html#12249" class="Function">0&lt;1+n</a>
<a id="27400" href="Data.Nat.Properties.html#27300" class="Function">*-monoˡ-&lt;</a> <a id="27410" class="Symbol">(</a><a id="27411" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="27415" href="Data.Nat.Properties.html#27415" class="Bound">n</a><a id="27416" class="Symbol">)</a> <a id="27418" class="Symbol">(</a><a id="27419" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a> <a id="27423" href="Data.Nat.Properties.html#27423" class="Bound">m&lt;o</a><a id="27426" class="Symbol">@(</a><a id="27428" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="27432" class="Symbol">_))</a> <a id="27436" class="Symbol">=</a>
<a id="27440" href="Data.Nat.Properties.html#19359" class="Function">+-mono-≤-&lt;</a> <a id="27451" class="Symbol">(</a><a id="27452" href="Data.Nat.Properties.html#5242" class="Function">≤-refl</a> <a id="27459" class="Symbol">{</a><a id="27460" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="27464" href="Data.Nat.Properties.html#27415" class="Bound">n</a><a id="27465" class="Symbol">})</a> <a id="27468" class="Symbol">(</a><a id="27469" href="Data.Nat.Properties.html#27300" class="Function">*-monoˡ-&lt;</a> <a id="27479" class="Symbol">(</a><a id="27480" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="27484" href="Data.Nat.Properties.html#27415" class="Bound">n</a><a id="27485" class="Symbol">)</a> <a id="27487" href="Data.Nat.Properties.html#27423" class="Bound">m&lt;o</a><a id="27490" class="Symbol">)</a>
<a id="*-monoʳ-&lt;"></a><a id="27493" href="Data.Nat.Properties.html#27493" class="Function">*-monoʳ-&lt;</a> <a id="27503" class="Symbol">:</a> <a id="27505" class="Symbol"></a> <a id="27507" href="Data.Nat.Properties.html#27507" class="Bound">n</a> <a id="27509" class="Symbol">.{{</a><a id="27512" href="Data.Nat.Properties.html#27512" class="Bound">_</a> <a id="27514" class="Symbol">:</a> <a id="27516" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="27524" href="Data.Nat.Properties.html#27507" class="Bound">n</a><a id="27525" class="Symbol">}}</a> <a id="27528" class="Symbol"></a> <a id="27530" class="Symbol">(</a><a id="27531" href="Data.Nat.Properties.html#27507" class="Bound">n</a> <a id="27533" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*_</a><a id="27535" class="Symbol">)</a> <a id="27537" href="Relation.Binary.Core.html#1577" class="Function Operator">Preserves</a> <a id="27547" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="27551" href="Relation.Binary.Core.html#1577" class="Function Operator"></a> <a id="27553" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a>
<a id="27557" href="Data.Nat.Properties.html#27493" class="Function">*-monoʳ-&lt;</a> <a id="27567" class="Symbol">(</a><a id="27568" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="27572" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="27576" class="Symbol">)</a> <a id="27583" href="Data.Nat.Properties.html#27583" class="Bound">m&lt;o</a><a id="27586" class="Symbol">@(</a><a id="27588" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="27592" class="Symbol">_)</a> <a id="27595" class="Symbol">=</a> <a id="27597" href="Data.Nat.Properties.html#18837" class="Function">+-mono-≤</a> <a id="27606" href="Data.Nat.Properties.html#27583" class="Bound">m&lt;o</a> <a id="27610" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="27614" href="Data.Nat.Properties.html#27493" class="Function">*-monoʳ-&lt;</a> <a id="27624" class="Symbol">(</a><a id="27625" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="27629" href="Data.Nat.Properties.html#27629" class="Bound">n</a><a id="27630" class="Symbol">@(</a><a id="27632" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="27636" class="Symbol">_))</a> <a id="27640" href="Data.Nat.Properties.html#27640" class="Bound">m&lt;o</a><a id="27643" class="Symbol">@(</a><a id="27645" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="27649" class="Symbol">_)</a> <a id="27652" class="Symbol">=</a>
<a id="27656" href="Data.Nat.Properties.html#18837" class="Function">+-mono-≤</a> <a id="27665" href="Data.Nat.Properties.html#27640" class="Bound">m&lt;o</a> <a id="27669" class="Symbol">(</a><a id="27670" href="Data.Nat.Properties.html#8416" class="Function">&lt;⇒≤</a> <a id="27674" class="Symbol">(</a><a id="27675" href="Data.Nat.Properties.html#27493" class="Function">*-monoʳ-&lt;</a> <a id="27685" href="Data.Nat.Properties.html#27629" class="Bound">n</a> <a id="27687" href="Data.Nat.Properties.html#27640" class="Bound">m&lt;o</a><a id="27690" class="Symbol">))</a>
<a id="m≤m*n"></a><a id="27694" href="Data.Nat.Properties.html#27694" class="Function">m≤m*n</a> <a id="27700" class="Symbol">:</a> <a id="27702" class="Symbol"></a> <a id="27704" href="Data.Nat.Properties.html#27704" class="Bound">m</a> <a id="27706" href="Data.Nat.Properties.html#27706" class="Bound">n</a> <a id="27708" class="Symbol">.{{</a><a id="27711" href="Data.Nat.Properties.html#27711" class="Bound">_</a> <a id="27713" class="Symbol">:</a> <a id="27715" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="27723" href="Data.Nat.Properties.html#27706" class="Bound">n</a><a id="27724" class="Symbol">}}</a> <a id="27727" class="Symbol"></a> <a id="27729" href="Data.Nat.Properties.html#27704" class="Bound">m</a> <a id="27731" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="27733" href="Data.Nat.Properties.html#27704" class="Bound">m</a> <a id="27735" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="27737" href="Data.Nat.Properties.html#27706" class="Bound">n</a>
<a id="27739" href="Data.Nat.Properties.html#27694" class="Function">m≤m*n</a> <a id="27745" href="Data.Nat.Properties.html#27745" class="Bound">m</a> <a id="27747" href="Data.Nat.Properties.html#27747" class="Bound">n</a><a id="27748" class="Symbol">@(</a><a id="27750" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="27754" class="Symbol">_)</a> <a id="27757" class="Symbol">=</a> <a id="27759" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="27767" href="Data.Nat.Properties.html#27745" class="Bound">m</a> <a id="27773" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="27776" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="27780" class="Symbol">(</a><a id="27781" href="Data.Nat.Properties.html#21075" class="Function">*-identityʳ</a> <a id="27793" href="Data.Nat.Properties.html#27745" class="Bound">m</a><a id="27794" class="Symbol">)</a> <a id="27796" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="27800" href="Data.Nat.Properties.html#27745" class="Bound">m</a> <a id="27802" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="27804" class="Number">1</a> <a id="27806" href="Relation.Binary.Reasoning.Syntax.html#5482" class="Function">≤⟨</a> <a id="27809" href="Data.Nat.Properties.html#27047" class="Function">*-monoʳ-≤</a> <a id="27819" href="Data.Nat.Properties.html#27745" class="Bound">m</a> <a id="27821" href="Data.Nat.Properties.html#12249" class="Function">0&lt;1+n</a> <a id="27827" href="Relation.Binary.Reasoning.Syntax.html#5482" class="Function"></a>
<a id="27831" href="Data.Nat.Properties.html#27745" class="Bound">m</a> <a id="27833" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="27835" href="Data.Nat.Properties.html#27747" class="Bound">n</a> <a id="27837" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="m≤n*m"></a><a id="27840" href="Data.Nat.Properties.html#27840" class="Function">m≤n*m</a> <a id="27846" class="Symbol">:</a> <a id="27848" class="Symbol"></a> <a id="27850" href="Data.Nat.Properties.html#27850" class="Bound">m</a> <a id="27852" href="Data.Nat.Properties.html#27852" class="Bound">n</a> <a id="27854" class="Symbol">.{{</a><a id="27857" href="Data.Nat.Properties.html#27857" class="Bound">_</a> <a id="27859" class="Symbol">:</a> <a id="27861" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="27869" href="Data.Nat.Properties.html#27852" class="Bound">n</a><a id="27870" class="Symbol">}}</a> <a id="27873" class="Symbol"></a> <a id="27875" href="Data.Nat.Properties.html#27850" class="Bound">m</a> <a id="27877" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="27879" href="Data.Nat.Properties.html#27852" class="Bound">n</a> <a id="27881" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="27883" href="Data.Nat.Properties.html#27850" class="Bound">m</a>
<a id="27885" href="Data.Nat.Properties.html#27840" class="Function">m≤n*m</a> <a id="27891" href="Data.Nat.Properties.html#27891" class="Bound">m</a> <a id="27893" href="Data.Nat.Properties.html#27893" class="Bound">n</a><a id="27894" class="Symbol">@(</a><a id="27896" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="27900" class="Symbol">_)</a> <a id="27903" class="Symbol">=</a> <a id="27905" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="27913" href="Data.Nat.Properties.html#27891" class="Bound">m</a> <a id="27919" href="Relation.Binary.Reasoning.Syntax.html#5482" class="Function">≤⟨</a> <a id="27922" href="Data.Nat.Properties.html#27694" class="Function">m≤m*n</a> <a id="27928" href="Data.Nat.Properties.html#27891" class="Bound">m</a> <a id="27930" href="Data.Nat.Properties.html#27893" class="Bound">n</a> <a id="27932" href="Relation.Binary.Reasoning.Syntax.html#5482" class="Function"></a>
<a id="27936" href="Data.Nat.Properties.html#27891" class="Bound">m</a> <a id="27938" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="27940" href="Data.Nat.Properties.html#27893" class="Bound">n</a> <a id="27942" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="27945" href="Data.Nat.Properties.html#21421" class="Function">*-comm</a> <a id="27952" href="Data.Nat.Properties.html#27891" class="Bound">m</a> <a id="27954" href="Data.Nat.Properties.html#27893" class="Bound">n</a> <a id="27956" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="27960" href="Data.Nat.Properties.html#27893" class="Bound">n</a> <a id="27962" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="27964" href="Data.Nat.Properties.html#27891" class="Bound">m</a> <a id="27966" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="m&lt;m*n"></a><a id="27969" href="Data.Nat.Properties.html#27969" class="Function">m&lt;m*n</a> <a id="27975" class="Symbol">:</a> <a id="27977" class="Symbol"></a> <a id="27979" href="Data.Nat.Properties.html#27979" class="Bound">m</a> <a id="27981" href="Data.Nat.Properties.html#27981" class="Bound">n</a> <a id="27983" class="Symbol">.{{</a><a id="27986" href="Data.Nat.Properties.html#27986" class="Bound">_</a> <a id="27988" class="Symbol">:</a> <a id="27990" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="27998" href="Data.Nat.Properties.html#27979" class="Bound">m</a><a id="27999" class="Symbol">}}</a> <a id="28002" class="Symbol"></a> <a id="28004" class="Number">1</a> <a id="28006" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="28008" href="Data.Nat.Properties.html#27981" class="Bound">n</a> <a id="28010" class="Symbol"></a> <a id="28012" href="Data.Nat.Properties.html#27979" class="Bound">m</a> <a id="28014" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="28016" href="Data.Nat.Properties.html#27979" class="Bound">m</a> <a id="28018" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="28020" href="Data.Nat.Properties.html#27981" class="Bound">n</a>
<a id="28022" href="Data.Nat.Properties.html#27969" class="Function">m&lt;m*n</a> <a id="28028" href="Data.Nat.Properties.html#28028" class="Bound">m</a><a id="28029" class="Symbol">@(</a><a id="28031" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="28035" href="Data.Nat.Properties.html#28035" class="Bound">m-1</a><a id="28038" class="Symbol">)</a> <a id="28040" href="Data.Nat.Properties.html#28040" class="Bound">n</a><a id="28041" class="Symbol">@(</a><a id="28043" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="28047" class="Symbol">(</a><a id="28048" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="28052" href="Data.Nat.Properties.html#28052" class="Bound">n-2</a><a id="28055" class="Symbol">))</a> <a id="28058" class="Symbol">(</a><a id="28059" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="28063" class="Symbol">(</a><a id="28064" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="28068" class="Symbol">_))</a> <a id="28072" class="Symbol">=</a> <a id="28074" href="Relation.Binary.Reasoning.Syntax.html#2946" class="Function Operator">begin-strict</a>
<a id="28089" href="Data.Nat.Properties.html#28028" class="Bound">m</a> <a id="28101" href="Relation.Binary.Reasoning.Syntax.html#5627" class="Function">&lt;</a> <a id="28104" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="28108" class="Symbol">(</a><a id="28109" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="28113" class="Symbol">(</a><a id="28114" href="Data.Nat.Properties.html#18502" class="Function">m≤n+m</a> <a id="28120" href="Data.Nat.Properties.html#28035" class="Bound">m-1</a> <a id="28124" href="Data.Nat.Properties.html#28052" class="Bound">n-2</a><a id="28127" class="Symbol">))</a> <a id="28130" href="Relation.Binary.Reasoning.Syntax.html#5627" class="Function"></a>
<a id="28134" href="Data.Nat.Properties.html#28040" class="Bound">n</a> <a id="28136" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="28138" href="Data.Nat.Properties.html#28035" class="Bound">m-1</a> <a id="28146" href="Relation.Binary.Reasoning.Syntax.html#5482" class="Function">≤⟨</a> <a id="28149" href="Data.Nat.Properties.html#19083" class="Function">+-monoʳ-≤</a> <a id="28159" href="Data.Nat.Properties.html#28040" class="Bound">n</a> <a id="28161" class="Symbol">(</a><a id="28162" href="Data.Nat.Properties.html#27694" class="Function">m≤m*n</a> <a id="28168" href="Data.Nat.Properties.html#28035" class="Bound">m-1</a> <a id="28172" href="Data.Nat.Properties.html#28040" class="Bound">n</a><a id="28173" class="Symbol">)</a> <a id="28175" href="Relation.Binary.Reasoning.Syntax.html#5482" class="Function"></a>
<a id="28179" href="Data.Nat.Properties.html#28040" class="Bound">n</a> <a id="28181" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="28183" href="Data.Nat.Properties.html#28035" class="Bound">m-1</a> <a id="28187" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="28189" href="Data.Nat.Properties.html#28040" class="Bound">n</a> <a id="28191" href="Relation.Binary.Reasoning.Syntax.html#11017" class="Function">≡⟨⟩</a>
<a id="28197" href="Data.Nat.Properties.html#28028" class="Bound">m</a> <a id="28199" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="28201" href="Data.Nat.Properties.html#28040" class="Bound">n</a> <a id="28209" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="m&lt;n⇒m&lt;n*o"></a><a id="28212" href="Data.Nat.Properties.html#28212" class="Function">m&lt;n⇒m&lt;n*o</a> <a id="28222" class="Symbol">:</a> <a id="28224" class="Symbol"></a> <a id="28226" href="Data.Nat.Properties.html#28226" class="Bound">o</a> <a id="28228" class="Symbol">.{{</a><a id="28231" href="Data.Nat.Properties.html#28231" class="Bound">_</a> <a id="28233" class="Symbol">:</a> <a id="28235" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="28243" href="Data.Nat.Properties.html#28226" class="Bound">o</a><a id="28244" class="Symbol">}}</a> <a id="28247" class="Symbol"></a> <a id="28249" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="28251" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="28253" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="28255" class="Symbol"></a> <a id="28257" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="28259" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="28261" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="28263" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="28265" href="Data.Nat.Properties.html#28226" class="Bound">o</a>
<a id="28267" href="Data.Nat.Properties.html#28212" class="Function">m&lt;n⇒m&lt;n*o</a> <a id="28277" class="Symbol">{</a><a id="28278" class="Argument">n</a> <a id="28280" class="Symbol">=</a> <a id="28282" href="Data.Nat.Properties.html#28282" class="Bound">n</a><a id="28283" class="Symbol">}</a> <a id="28285" href="Data.Nat.Properties.html#28285" class="Bound">o</a> <a id="28287" href="Data.Nat.Properties.html#28287" class="Bound">m&lt;n</a> <a id="28291" class="Symbol">=</a> <a id="28293" href="Data.Nat.Properties.html#10162" class="Function">&lt;-≤-trans</a> <a id="28303" href="Data.Nat.Properties.html#28287" class="Bound">m&lt;n</a> <a id="28307" class="Symbol">(</a><a id="28308" href="Data.Nat.Properties.html#27694" class="Function">m≤m*n</a> <a id="28314" href="Data.Nat.Properties.html#28282" class="Bound">n</a> <a id="28316" href="Data.Nat.Properties.html#28285" class="Bound">o</a><a id="28317" class="Symbol">)</a>
<a id="m&lt;n⇒m&lt;o*n"></a><a id="28320" href="Data.Nat.Properties.html#28320" class="Function">m&lt;n⇒m&lt;o*n</a> <a id="28330" class="Symbol">:</a> <a id="28332" class="Symbol"></a> <a id="28334" class="Symbol">{</a><a id="28335" href="Data.Nat.Properties.html#28335" class="Bound">m</a> <a id="28337" href="Data.Nat.Properties.html#28337" class="Bound">n</a><a id="28338" class="Symbol">}</a> <a id="28340" href="Data.Nat.Properties.html#28340" class="Bound">o</a> <a id="28342" class="Symbol">.{{</a><a id="28345" href="Data.Nat.Properties.html#28345" class="Bound">_</a> <a id="28347" class="Symbol">:</a> <a id="28349" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="28357" href="Data.Nat.Properties.html#28340" class="Bound">o</a><a id="28358" class="Symbol">}}</a> <a id="28361" class="Symbol"></a> <a id="28363" href="Data.Nat.Properties.html#28335" class="Bound">m</a> <a id="28365" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="28367" href="Data.Nat.Properties.html#28337" class="Bound">n</a> <a id="28369" class="Symbol"></a> <a id="28371" href="Data.Nat.Properties.html#28335" class="Bound">m</a> <a id="28373" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="28375" href="Data.Nat.Properties.html#28340" class="Bound">o</a> <a id="28377" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="28379" href="Data.Nat.Properties.html#28337" class="Bound">n</a>
<a id="28381" href="Data.Nat.Properties.html#28320" class="Function">m&lt;n⇒m&lt;o*n</a> <a id="28391" class="Symbol">{</a><a id="28392" href="Data.Nat.Properties.html#28392" class="Bound">m</a><a id="28393" class="Symbol">}</a> <a id="28395" class="Symbol">{</a><a id="28396" href="Data.Nat.Properties.html#28396" class="Bound">n</a><a id="28397" class="Symbol">}</a> <a id="28399" href="Data.Nat.Properties.html#28399" class="Bound">o</a> <a id="28401" href="Data.Nat.Properties.html#28401" class="Bound">m&lt;n</a> <a id="28405" class="Symbol">=</a> <a id="28407" href="Relation.Binary.Reasoning.Syntax.html#2946" class="Function Operator">begin-strict</a>
<a id="28422" href="Data.Nat.Properties.html#28392" class="Bound">m</a> <a id="28428" href="Relation.Binary.Reasoning.Syntax.html#5627" class="Function">&lt;</a> <a id="28431" href="Data.Nat.Properties.html#28212" class="Function">m&lt;n⇒m&lt;n*o</a> <a id="28441" href="Data.Nat.Properties.html#28399" class="Bound">o</a> <a id="28443" href="Data.Nat.Properties.html#28401" class="Bound">m&lt;n</a> <a id="28447" href="Relation.Binary.Reasoning.Syntax.html#5627" class="Function"></a>
<a id="28451" href="Data.Nat.Properties.html#28396" class="Bound">n</a> <a id="28453" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="28455" href="Data.Nat.Properties.html#28399" class="Bound">o</a> <a id="28457" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="28460" href="Data.Nat.Properties.html#21421" class="Function">*-comm</a> <a id="28467" href="Data.Nat.Properties.html#28396" class="Bound">n</a> <a id="28469" href="Data.Nat.Properties.html#28399" class="Bound">o</a> <a id="28471" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="28475" href="Data.Nat.Properties.html#28399" class="Bound">o</a> <a id="28477" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="28479" href="Data.Nat.Properties.html#28396" class="Bound">n</a> <a id="28481" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="*-cancelʳ-&lt;"></a><a id="28484" href="Data.Nat.Properties.html#28484" class="Function">*-cancelʳ-&lt;</a> <a id="28496" class="Symbol">:</a> <a id="28498" href="Algebra.Definitions.html#4307" class="Function">RightCancellative</a> <a id="28516" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="28520" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a>
<a id="28524" href="Data.Nat.Properties.html#28484" class="Function">*-cancelʳ-&lt;</a> <a id="28536" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="28544" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="28552" class="Symbol">(</a><a id="28553" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="28557" href="Data.Nat.Properties.html#28557" class="Bound">o</a><a id="28558" class="Symbol">)</a> <a id="28560" class="Symbol">_</a> <a id="28566" class="Symbol">=</a> <a id="28568" href="Data.Nat.Properties.html#12249" class="Function">0&lt;1+n</a>
<a id="28574" href="Data.Nat.Properties.html#28484" class="Function">*-cancelʳ-&lt;</a> <a id="28586" class="Symbol">(</a><a id="28587" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="28591" href="Data.Nat.Properties.html#28591" class="Bound">m</a><a id="28592" class="Symbol">)</a> <a id="28594" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="28602" class="Symbol">(</a><a id="28603" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="28607" href="Data.Nat.Properties.html#28607" class="Bound">o</a><a id="28608" class="Symbol">)</a> <a id="28610" class="Symbol">_</a> <a id="28616" class="Symbol">=</a> <a id="28618" href="Data.Nat.Properties.html#12249" class="Function">0&lt;1+n</a>
<a id="28624" href="Data.Nat.Properties.html#28484" class="CatchallClause Function">*-cancelʳ-&lt;</a><a id="28635" class="CatchallClause"> </a><a id="28636" href="Data.Nat.Properties.html#28636" class="CatchallClause Bound">m</a><a id="28637" class="CatchallClause"> </a><a id="28644" class="CatchallClause Symbol">(</a><a id="28645" href="Agda.Builtin.Nat.html#234" class="CatchallClause InductiveConstructor">suc</a><a id="28648" class="CatchallClause"> </a><a id="28649" href="Data.Nat.Properties.html#28649" class="CatchallClause Bound">n</a><a id="28650" class="CatchallClause Symbol">)</a><a id="28651" class="CatchallClause"> </a><a id="28652" class="CatchallClause Symbol">(</a><a id="28653" href="Agda.Builtin.Nat.html#234" class="CatchallClause InductiveConstructor">suc</a><a id="28656" class="CatchallClause"> </a><a id="28657" href="Data.Nat.Properties.html#28657" class="CatchallClause Bound">o</a><a id="28658" class="CatchallClause Symbol">)</a><a id="28659" class="CatchallClause"> </a><a id="28660" href="Data.Nat.Properties.html#28660" class="CatchallClause Bound">nm&lt;om</a> <a id="28666" class="Symbol">=</a>
<a id="28670" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="28674" class="Symbol">(</a><a id="28675" href="Data.Nat.Properties.html#28484" class="Function">*-cancelʳ-&lt;</a> <a id="28687" href="Data.Nat.Properties.html#28636" class="Bound">m</a> <a id="28689" href="Data.Nat.Properties.html#28649" class="Bound">n</a> <a id="28691" href="Data.Nat.Properties.html#28657" class="Bound">o</a> <a id="28693" class="Symbol">(</a><a id="28694" href="Data.Nat.Properties.html#17903" class="Function">+-cancelˡ-&lt;</a> <a id="28706" href="Data.Nat.Properties.html#28636" class="Bound">m</a> <a id="28708" class="Symbol">_</a> <a id="28710" class="Symbol">_</a> <a id="28712" href="Data.Nat.Properties.html#28660" class="Bound">nm&lt;om</a><a id="28717" class="Symbol">))</a>
<a id="*-cancelˡ-&lt;"></a><a id="28721" href="Data.Nat.Properties.html#28721" class="Function">*-cancelˡ-&lt;</a> <a id="28733" class="Symbol">:</a> <a id="28735" href="Algebra.Definitions.html#4214" class="Function">LeftCancellative</a> <a id="28752" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="28756" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a>
<a id="28760" href="Data.Nat.Properties.html#28721" class="Function">*-cancelˡ-&lt;</a> <a id="28772" href="Data.Nat.Properties.html#28772" class="Bound">x</a> <a id="28774" href="Data.Nat.Properties.html#28774" class="Bound">y</a> <a id="28776" href="Data.Nat.Properties.html#28776" class="Bound">z</a> <a id="28778" class="Keyword">rewrite</a> <a id="28786" href="Data.Nat.Properties.html#21421" class="Function">*-comm</a> <a id="28793" href="Data.Nat.Properties.html#28772" class="Bound">x</a> <a id="28795" href="Data.Nat.Properties.html#28774" class="Bound">y</a> <a id="28797" class="Symbol">|</a> <a id="28799" href="Data.Nat.Properties.html#21421" class="Function">*-comm</a> <a id="28806" href="Data.Nat.Properties.html#28772" class="Bound">x</a> <a id="28808" href="Data.Nat.Properties.html#28776" class="Bound">z</a> <a id="28810" class="Symbol">=</a> <a id="28812" href="Data.Nat.Properties.html#28484" class="Function">*-cancelʳ-&lt;</a> <a id="28824" href="Data.Nat.Properties.html#28772" class="Bound">x</a> <a id="28826" href="Data.Nat.Properties.html#28774" class="Bound">y</a> <a id="28828" href="Data.Nat.Properties.html#28776" class="Bound">z</a>
<a id="*-cancel-&lt;"></a><a id="28831" href="Data.Nat.Properties.html#28831" class="Function">*-cancel-&lt;</a> <a id="28842" class="Symbol">:</a> <a id="28844" href="Algebra.Definitions.html#4402" class="Function">Cancellative</a> <a id="28857" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="28861" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a>
<a id="28865" href="Data.Nat.Properties.html#28831" class="Function">*-cancel-&lt;</a> <a id="28876" class="Symbol">=</a> <a id="28878" href="Data.Nat.Properties.html#28721" class="Function">*-cancelˡ-&lt;</a> <a id="28890" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="28892" href="Data.Nat.Properties.html#28484" class="Function">*-cancelʳ-&lt;</a>
<a id="28905" class="Comment">------------------------------------------------------------------------</a>
<a id="28978" class="Comment">-- Properties of _^_</a>
<a id="28999" class="Comment">------------------------------------------------------------------------</a>
<a id="^-identityʳ"></a><a id="29073" href="Data.Nat.Properties.html#29073" class="Function">^-identityʳ</a> <a id="29085" class="Symbol">:</a> <a id="29087" href="Algebra.Definitions.html#1781" class="Function">RightIdentity</a> <a id="29101" class="Number">1</a> <a id="29103" href="Data.Nat.Base.html#6561" class="Function Operator">_^_</a>
<a id="29107" href="Data.Nat.Properties.html#29073" class="Function">^-identityʳ</a> <a id="29119" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="29127" class="Symbol">=</a> <a id="29129" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="29134" href="Data.Nat.Properties.html#29073" class="Function">^-identityʳ</a> <a id="29146" class="Symbol">(</a><a id="29147" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="29151" href="Data.Nat.Properties.html#29151" class="Bound">n</a><a id="29152" class="Symbol">)</a> <a id="29154" class="Symbol">=</a> <a id="29156" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="29161" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="29165" class="Symbol">(</a><a id="29166" href="Data.Nat.Properties.html#29073" class="Function">^-identityʳ</a> <a id="29178" href="Data.Nat.Properties.html#29151" class="Bound">n</a><a id="29179" class="Symbol">)</a>
<a id="^-zeroˡ"></a><a id="29182" href="Data.Nat.Properties.html#29182" class="Function">^-zeroˡ</a> <a id="29190" class="Symbol">:</a> <a id="29192" href="Algebra.Definitions.html#1942" class="Function">LeftZero</a> <a id="29201" class="Number">1</a> <a id="29203" href="Data.Nat.Base.html#6561" class="Function Operator">_^_</a>
<a id="29207" href="Data.Nat.Properties.html#29182" class="Function">^-zeroˡ</a> <a id="29215" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="29223" class="Symbol">=</a> <a id="29225" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="29230" href="Data.Nat.Properties.html#29182" class="Function">^-zeroˡ</a> <a id="29238" class="Symbol">(</a><a id="29239" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="29243" href="Data.Nat.Properties.html#29243" class="Bound">n</a><a id="29244" class="Symbol">)</a> <a id="29246" class="Symbol">=</a> <a id="29248" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a>
<a id="29265" class="Number">1</a> <a id="29267" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="29269" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="29273" href="Data.Nat.Properties.html#29243" class="Bound">n</a> <a id="29277" href="Relation.Binary.Reasoning.Syntax.html#11017" class="Function">≡⟨⟩</a>
<a id="29283" class="Number">1</a> <a id="29285" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="29287" class="Symbol">(</a><a id="29288" class="Number">1</a> <a id="29290" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="29292" href="Data.Nat.Properties.html#29243" class="Bound">n</a><a id="29293" class="Symbol">)</a> <a id="29295" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="29298" href="Data.Nat.Properties.html#21011" class="Function">*-identityˡ</a> <a id="29310" class="Symbol">(</a><a id="29311" class="Number">1</a> <a id="29313" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="29315" href="Data.Nat.Properties.html#29243" class="Bound">n</a><a id="29316" class="Symbol">)</a> <a id="29318" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="29322" class="Number">1</a> <a id="29324" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="29326" href="Data.Nat.Properties.html#29243" class="Bound">n</a> <a id="29334" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="29337" href="Data.Nat.Properties.html#29182" class="Function">^-zeroˡ</a> <a id="29345" href="Data.Nat.Properties.html#29243" class="Bound">n</a> <a id="29347" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="29351" class="Number">1</a> <a id="29363" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="^-distribˡ-+-*"></a><a id="29366" href="Data.Nat.Properties.html#29366" class="Function">^-distribˡ-+-*</a> <a id="29381" class="Symbol">:</a> <a id="29383" class="Symbol"></a> <a id="29385" href="Data.Nat.Properties.html#29385" class="Bound">m</a> <a id="29387" href="Data.Nat.Properties.html#29387" class="Bound">n</a> <a id="29389" href="Data.Nat.Properties.html#29389" class="Bound">o</a> <a id="29391" class="Symbol"></a> <a id="29393" href="Data.Nat.Properties.html#29385" class="Bound">m</a> <a id="29395" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="29397" class="Symbol">(</a><a id="29398" href="Data.Nat.Properties.html#29387" class="Bound">n</a> <a id="29400" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="29402" href="Data.Nat.Properties.html#29389" class="Bound">o</a><a id="29403" class="Symbol">)</a> <a id="29405" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="29407" href="Data.Nat.Properties.html#29385" class="Bound">m</a> <a id="29409" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="29411" href="Data.Nat.Properties.html#29387" class="Bound">n</a> <a id="29413" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="29415" href="Data.Nat.Properties.html#29385" class="Bound">m</a> <a id="29417" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="29419" href="Data.Nat.Properties.html#29389" class="Bound">o</a>
<a id="29421" href="Data.Nat.Properties.html#29366" class="Function">^-distribˡ-+-*</a> <a id="29436" href="Data.Nat.Properties.html#29436" class="Bound">m</a> <a id="29438" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="29446" href="Data.Nat.Properties.html#29446" class="Bound">o</a> <a id="29448" class="Symbol">=</a> <a id="29450" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="29454" class="Symbol">(</a><a id="29455" href="Data.Nat.Properties.html#14706" class="Function">+-identityʳ</a> <a id="29467" class="Symbol">(</a><a id="29468" href="Data.Nat.Properties.html#29436" class="Bound">m</a> <a id="29470" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="29472" href="Data.Nat.Properties.html#29446" class="Bound">o</a><a id="29473" class="Symbol">))</a>
<a id="29476" href="Data.Nat.Properties.html#29366" class="Function">^-distribˡ-+-*</a> <a id="29491" href="Data.Nat.Properties.html#29491" class="Bound">m</a> <a id="29493" class="Symbol">(</a><a id="29494" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="29498" href="Data.Nat.Properties.html#29498" class="Bound">n</a><a id="29499" class="Symbol">)</a> <a id="29501" href="Data.Nat.Properties.html#29501" class="Bound">o</a> <a id="29503" class="Symbol">=</a> <a id="29505" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a>
<a id="29522" href="Data.Nat.Properties.html#29491" class="Bound">m</a> <a id="29524" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="29526" class="Symbol">(</a><a id="29527" href="Data.Nat.Properties.html#29491" class="Bound">m</a> <a id="29529" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="29531" class="Symbol">(</a><a id="29532" href="Data.Nat.Properties.html#29498" class="Bound">n</a> <a id="29534" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="29536" href="Data.Nat.Properties.html#29501" class="Bound">o</a><a id="29537" class="Symbol">))</a> <a id="29546" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="29549" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="29554" class="Symbol">(</a><a id="29555" href="Data.Nat.Properties.html#29491" class="Bound">m</a> <a id="29557" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*_</a><a id="29559" class="Symbol">)</a> <a id="29561" class="Symbol">(</a><a id="29562" href="Data.Nat.Properties.html#29366" class="Function">^-distribˡ-+-*</a> <a id="29577" href="Data.Nat.Properties.html#29491" class="Bound">m</a> <a id="29579" href="Data.Nat.Properties.html#29498" class="Bound">n</a> <a id="29581" href="Data.Nat.Properties.html#29501" class="Bound">o</a><a id="29582" class="Symbol">)</a> <a id="29584" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="29588" href="Data.Nat.Properties.html#29491" class="Bound">m</a> <a id="29590" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="29592" class="Symbol">((</a><a id="29594" href="Data.Nat.Properties.html#29491" class="Bound">m</a> <a id="29596" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="29598" href="Data.Nat.Properties.html#29498" class="Bound">n</a><a id="29599" class="Symbol">)</a> <a id="29601" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="29603" class="Symbol">(</a><a id="29604" href="Data.Nat.Properties.html#29491" class="Bound">m</a> <a id="29606" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="29608" href="Data.Nat.Properties.html#29501" class="Bound">o</a><a id="29609" class="Symbol">))</a> <a id="29612" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="29615" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="29619" class="Symbol">(</a><a id="29620" href="Data.Nat.Properties.html#22111" class="Function">*-assoc</a> <a id="29628" href="Data.Nat.Properties.html#29491" class="Bound">m</a> <a id="29630" class="Symbol">_</a> <a id="29632" class="Symbol">_)</a> <a id="29635" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="29639" class="Symbol">(</a><a id="29640" href="Data.Nat.Properties.html#29491" class="Bound">m</a> <a id="29642" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="29644" class="Symbol">(</a><a id="29645" href="Data.Nat.Properties.html#29491" class="Bound">m</a> <a id="29647" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="29649" href="Data.Nat.Properties.html#29498" class="Bound">n</a><a id="29650" class="Symbol">))</a> <a id="29653" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="29655" class="Symbol">(</a><a id="29656" href="Data.Nat.Properties.html#29491" class="Bound">m</a> <a id="29658" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="29660" href="Data.Nat.Properties.html#29501" class="Bound">o</a><a id="29661" class="Symbol">)</a> <a id="29663" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="^-semigroup-morphism"></a><a id="29666" href="Data.Nat.Properties.html#29666" class="Function">^-semigroup-morphism</a> <a id="29687" class="Symbol">:</a> <a id="29689" class="Symbol"></a> <a id="29691" class="Symbol">{</a><a id="29692" href="Data.Nat.Properties.html#29692" class="Bound">n</a><a id="29693" class="Symbol">}</a> <a id="29695" class="Symbol"></a> <a id="29697" class="Symbol">(</a><a id="29698" href="Data.Nat.Properties.html#29692" class="Bound">n</a> <a id="29700" href="Data.Nat.Base.html#6561" class="Function Operator">^_</a><a id="29702" class="Symbol">)</a> <a id="29704" href="Algebra.Morphism.html#1614" class="Function">Is</a> <a id="29707" href="Data.Nat.Properties.html#16262" class="Function">+-semigroup</a> <a id="29719" href="Algebra.Morphism.html#1614" class="Function">-Semigroup⟶</a> <a id="29731" href="Data.Nat.Properties.html#23769" class="Function">*-semigroup</a>
<a id="29743" href="Data.Nat.Properties.html#29666" class="Function">^-semigroup-morphism</a> <a id="29764" class="Symbol">=</a> <a id="29766" class="Keyword">record</a>
<a id="29775" class="Symbol">{</a> <a id="29777" href="Algebra.Morphism.html#1528" class="Field">⟦⟧-cong</a> <a id="29785" class="Symbol">=</a> <a id="29787" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="29792" class="Symbol">(_</a> <a id="29795" href="Data.Nat.Base.html#6561" class="Function Operator">^_</a><a id="29797" class="Symbol">)</a>
<a id="29801" class="Symbol">;</a> <a id="29803" href="Algebra.Morphism.html#1572" class="Field">∙-homo</a> <a id="29811" class="Symbol">=</a> <a id="29813" href="Data.Nat.Properties.html#29366" class="Function">^-distribˡ-+-*</a> <a id="29828" class="Symbol">_</a>
<a id="29832" class="Symbol">}</a>
<a id="^-monoid-morphism"></a><a id="29835" href="Data.Nat.Properties.html#29835" class="Function">^-monoid-morphism</a> <a id="29853" class="Symbol">:</a> <a id="29855" class="Symbol"></a> <a id="29857" class="Symbol">{</a><a id="29858" href="Data.Nat.Properties.html#29858" class="Bound">n</a><a id="29859" class="Symbol">}</a> <a id="29861" class="Symbol"></a> <a id="29863" class="Symbol">(</a><a id="29864" href="Data.Nat.Properties.html#29858" class="Bound">n</a> <a id="29866" href="Data.Nat.Base.html#6561" class="Function Operator">^_</a><a id="29868" class="Symbol">)</a> <a id="29870" href="Algebra.Morphism.html#2184" class="Function">Is</a> <a id="29873" href="Data.Nat.Properties.html#16493" class="Function">+-0-monoid</a> <a id="29884" href="Algebra.Morphism.html#2184" class="Function">-Monoid⟶</a> <a id="29893" href="Data.Nat.Properties.html#24000" class="Function">*-1-monoid</a>
<a id="29904" href="Data.Nat.Properties.html#29835" class="Function">^-monoid-morphism</a> <a id="29922" class="Symbol">=</a> <a id="29924" class="Keyword">record</a>
<a id="29933" class="Symbol">{</a> <a id="29935" href="Algebra.Morphism.html#2037" class="Field">sm-homo</a> <a id="29943" class="Symbol">=</a> <a id="29945" href="Data.Nat.Properties.html#29666" class="Function">^-semigroup-morphism</a>
<a id="29968" class="Symbol">;</a> <a id="29970" href="Algebra.Morphism.html#2101" class="Field">ε-homo</a> <a id="29978" class="Symbol">=</a> <a id="29980" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="29987" class="Symbol">}</a>
<a id="^-*-assoc"></a><a id="29990" href="Data.Nat.Properties.html#29990" class="Function">^-*-assoc</a> <a id="30000" class="Symbol">:</a> <a id="30002" class="Symbol"></a> <a id="30004" href="Data.Nat.Properties.html#30004" class="Bound">m</a> <a id="30006" href="Data.Nat.Properties.html#30006" class="Bound">n</a> <a id="30008" href="Data.Nat.Properties.html#30008" class="Bound">o</a> <a id="30010" class="Symbol"></a> <a id="30012" class="Symbol">(</a><a id="30013" href="Data.Nat.Properties.html#30004" class="Bound">m</a> <a id="30015" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="30017" href="Data.Nat.Properties.html#30006" class="Bound">n</a><a id="30018" class="Symbol">)</a> <a id="30020" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="30022" href="Data.Nat.Properties.html#30008" class="Bound">o</a> <a id="30024" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="30026" href="Data.Nat.Properties.html#30004" class="Bound">m</a> <a id="30028" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="30030" class="Symbol">(</a><a id="30031" href="Data.Nat.Properties.html#30006" class="Bound">n</a> <a id="30033" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="30035" href="Data.Nat.Properties.html#30008" class="Bound">o</a><a id="30036" class="Symbol">)</a>
<a id="30038" href="Data.Nat.Properties.html#29990" class="Function">^-*-assoc</a> <a id="30048" href="Data.Nat.Properties.html#30048" class="Bound">m</a> <a id="30050" href="Data.Nat.Properties.html#30050" class="Bound">n</a> <a id="30052" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="30060" class="Symbol">=</a> <a id="30062" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="30067" class="Symbol">(</a><a id="30068" href="Data.Nat.Properties.html#30048" class="Bound">m</a> <a id="30070" href="Data.Nat.Base.html#6561" class="Function Operator">^_</a><a id="30072" class="Symbol">)</a> <a id="30074" class="Symbol">(</a><a id="30075" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="30079" href="Function.Base.html#1974" class="Function Operator">$</a> <a id="30081" href="Data.Nat.Properties.html#21295" class="Function">*-zeroʳ</a> <a id="30089" href="Data.Nat.Properties.html#30050" class="Bound">n</a><a id="30090" class="Symbol">)</a>
<a id="30092" href="Data.Nat.Properties.html#29990" class="Function">^-*-assoc</a> <a id="30102" href="Data.Nat.Properties.html#30102" class="Bound">m</a> <a id="30104" href="Data.Nat.Properties.html#30104" class="Bound">n</a> <a id="30106" class="Symbol">(</a><a id="30107" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="30111" href="Data.Nat.Properties.html#30111" class="Bound">o</a><a id="30112" class="Symbol">)</a> <a id="30114" class="Symbol">=</a> <a id="30116" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a>
<a id="30133" class="Symbol">(</a><a id="30134" href="Data.Nat.Properties.html#30102" class="Bound">m</a> <a id="30136" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="30138" href="Data.Nat.Properties.html#30104" class="Bound">n</a><a id="30139" class="Symbol">)</a> <a id="30141" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="30143" class="Symbol">((</a><a id="30145" href="Data.Nat.Properties.html#30102" class="Bound">m</a> <a id="30147" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="30149" href="Data.Nat.Properties.html#30104" class="Bound">n</a><a id="30150" class="Symbol">)</a> <a id="30152" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="30154" href="Data.Nat.Properties.html#30111" class="Bound">o</a><a id="30155" class="Symbol">)</a> <a id="30157" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="30160" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="30165" class="Symbol">((</a><a id="30167" href="Data.Nat.Properties.html#30102" class="Bound">m</a> <a id="30169" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="30171" href="Data.Nat.Properties.html#30104" class="Bound">n</a><a id="30172" class="Symbol">)</a> <a id="30174" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*_</a><a id="30176" class="Symbol">)</a> <a id="30178" class="Symbol">(</a><a id="30179" href="Data.Nat.Properties.html#29990" class="Function">^-*-assoc</a> <a id="30189" href="Data.Nat.Properties.html#30102" class="Bound">m</a> <a id="30191" href="Data.Nat.Properties.html#30104" class="Bound">n</a> <a id="30193" href="Data.Nat.Properties.html#30111" class="Bound">o</a><a id="30194" class="Symbol">)</a> <a id="30196" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="30200" class="Symbol">(</a><a id="30201" href="Data.Nat.Properties.html#30102" class="Bound">m</a> <a id="30203" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="30205" href="Data.Nat.Properties.html#30104" class="Bound">n</a><a id="30206" class="Symbol">)</a> <a id="30208" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="30210" class="Symbol">(</a><a id="30211" href="Data.Nat.Properties.html#30102" class="Bound">m</a> <a id="30213" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="30215" class="Symbol">(</a><a id="30216" href="Data.Nat.Properties.html#30104" class="Bound">n</a> <a id="30218" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="30220" href="Data.Nat.Properties.html#30111" class="Bound">o</a><a id="30221" class="Symbol">))</a> <a id="30224" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="30227" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="30231" class="Symbol">(</a><a id="30232" href="Data.Nat.Properties.html#29366" class="Function">^-distribˡ-+-*</a> <a id="30247" href="Data.Nat.Properties.html#30102" class="Bound">m</a> <a id="30249" href="Data.Nat.Properties.html#30104" class="Bound">n</a> <a id="30251" class="Symbol">(</a><a id="30252" href="Data.Nat.Properties.html#30104" class="Bound">n</a> <a id="30254" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="30256" href="Data.Nat.Properties.html#30111" class="Bound">o</a><a id="30257" class="Symbol">))</a> <a id="30260" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="30264" href="Data.Nat.Properties.html#30102" class="Bound">m</a> <a id="30266" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="30268" class="Symbol">(</a><a id="30269" href="Data.Nat.Properties.html#30104" class="Bound">n</a> <a id="30271" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="30273" href="Data.Nat.Properties.html#30104" class="Bound">n</a> <a id="30275" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="30277" href="Data.Nat.Properties.html#30111" class="Bound">o</a><a id="30278" class="Symbol">)</a> <a id="30288" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="30291" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="30296" class="Symbol">(</a><a id="30297" href="Data.Nat.Properties.html#30102" class="Bound">m</a> <a id="30299" href="Data.Nat.Base.html#6561" class="Function Operator">^_</a><a id="30301" class="Symbol">)</a> <a id="30303" class="Symbol">(</a><a id="30304" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="30308" class="Symbol">(</a><a id="30309" href="Data.Nat.Properties.html#20447" class="Function">*-suc</a> <a id="30315" href="Data.Nat.Properties.html#30104" class="Bound">n</a> <a id="30317" href="Data.Nat.Properties.html#30111" class="Bound">o</a><a id="30318" class="Symbol">))</a> <a id="30321" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="30325" href="Data.Nat.Properties.html#30102" class="Bound">m</a> <a id="30327" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="30329" class="Symbol">(</a><a id="30330" href="Data.Nat.Properties.html#30104" class="Bound">n</a> <a id="30332" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="30334" class="Symbol">(</a><a id="30335" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="30339" href="Data.Nat.Properties.html#30111" class="Bound">o</a><a id="30340" class="Symbol">))</a> <a id="30343" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="m^n≡0⇒m≡0"></a><a id="30346" href="Data.Nat.Properties.html#30346" class="Function">m^n≡0⇒m≡0</a> <a id="30356" class="Symbol">:</a> <a id="30358" class="Symbol"></a> <a id="30360" href="Data.Nat.Properties.html#30360" class="Bound">m</a> <a id="30362" href="Data.Nat.Properties.html#30362" class="Bound">n</a> <a id="30364" class="Symbol"></a> <a id="30366" href="Data.Nat.Properties.html#30360" class="Bound">m</a> <a id="30368" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="30370" href="Data.Nat.Properties.html#30362" class="Bound">n</a> <a id="30372" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="30374" class="Number">0</a> <a id="30376" class="Symbol"></a> <a id="30378" href="Data.Nat.Properties.html#30360" class="Bound">m</a> <a id="30380" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="30382" class="Number">0</a>
<a id="30384" href="Data.Nat.Properties.html#30346" class="Function">m^n≡0⇒m≡0</a> <a id="30394" href="Data.Nat.Properties.html#30394" class="Bound">m</a> <a id="30396" class="Symbol">(</a><a id="30397" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="30401" href="Data.Nat.Properties.html#30401" class="Bound">n</a><a id="30402" class="Symbol">)</a> <a id="30404" href="Data.Nat.Properties.html#30404" class="Bound">eq</a> <a id="30407" class="Symbol">=</a> <a id="30409" href="Data.Sum.Base.html#980" class="Function Operator">[</a> <a id="30411" href="Function.Base.html#704" class="Function">id</a> <a id="30414" href="Data.Sum.Base.html#980" class="Function Operator">,</a> <a id="30416" href="Data.Nat.Properties.html#30346" class="Function">m^n≡0⇒m≡0</a> <a id="30426" href="Data.Nat.Properties.html#30394" class="Bound">m</a> <a id="30428" href="Data.Nat.Properties.html#30401" class="Bound">n</a> <a id="30430" href="Data.Sum.Base.html#980" class="Function Operator">]</a> <a id="30433" class="Symbol">(</a><a id="30434" href="Data.Nat.Properties.html#24930" class="Function">m*n≡0⇒m≡0n≡0</a> <a id="30448" href="Data.Nat.Properties.html#30394" class="Bound">m</a> <a id="30450" href="Data.Nat.Properties.html#30404" class="Bound">eq</a><a id="30452" class="Symbol">)</a>
<a id="m^n≡1⇒n≡0m≡1"></a><a id="30455" href="Data.Nat.Properties.html#30455" class="Function">m^n≡1⇒n≡0m≡1</a> <a id="30469" class="Symbol">:</a> <a id="30471" class="Symbol"></a> <a id="30473" href="Data.Nat.Properties.html#30473" class="Bound">m</a> <a id="30475" href="Data.Nat.Properties.html#30475" class="Bound">n</a> <a id="30477" class="Symbol"></a> <a id="30479" href="Data.Nat.Properties.html#30473" class="Bound">m</a> <a id="30481" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="30483" href="Data.Nat.Properties.html#30475" class="Bound">n</a> <a id="30485" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="30487" class="Number">1</a> <a id="30489" class="Symbol"></a> <a id="30491" href="Data.Nat.Properties.html#30475" class="Bound">n</a> <a id="30493" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="30495" class="Number">0</a> <a id="30497" href="Data.Sum.Base.html#625" class="Datatype Operator"></a> <a id="30499" href="Data.Nat.Properties.html#30473" class="Bound">m</a> <a id="30501" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="30503" class="Number">1</a>
<a id="30505" href="Data.Nat.Properties.html#30455" class="Function">m^n≡1⇒n≡0m≡1</a> <a id="30519" href="Data.Nat.Properties.html#30519" class="Bound">m</a> <a id="30521" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="30529" class="Symbol">_</a> <a id="30532" class="Symbol">=</a> <a id="30534" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a> <a id="30539" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="30544" href="Data.Nat.Properties.html#30455" class="Function">m^n≡1⇒n≡0m≡1</a> <a id="30558" href="Data.Nat.Properties.html#30558" class="Bound">m</a> <a id="30560" class="Symbol">(</a><a id="30561" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="30565" href="Data.Nat.Properties.html#30565" class="Bound">n</a><a id="30566" class="Symbol">)</a> <a id="30568" href="Data.Nat.Properties.html#30568" class="Bound">eq</a> <a id="30571" class="Symbol">=</a> <a id="30573" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a> <a id="30578" class="Symbol">(</a><a id="30579" href="Data.Nat.Properties.html#25450" class="Function">m*n≡1⇒m≡1</a> <a id="30589" href="Data.Nat.Properties.html#30558" class="Bound">m</a> <a id="30591" class="Symbol">(</a><a id="30592" href="Data.Nat.Properties.html#30558" class="Bound">m</a> <a id="30594" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="30596" href="Data.Nat.Properties.html#30565" class="Bound">n</a><a id="30597" class="Symbol">)</a> <a id="30599" href="Data.Nat.Properties.html#30568" class="Bound">eq</a><a id="30601" class="Symbol">)</a>
<a id="m^n≢0"></a><a id="30604" href="Data.Nat.Properties.html#30604" class="Function">m^n≢0</a> <a id="30610" class="Symbol">:</a> <a id="30612" class="Symbol"></a> <a id="30614" href="Data.Nat.Properties.html#30614" class="Bound">m</a> <a id="30616" href="Data.Nat.Properties.html#30616" class="Bound">n</a> <a id="30618" class="Symbol">.{{</a><a id="30621" href="Data.Nat.Properties.html#30621" class="Bound">_</a> <a id="30623" class="Symbol">:</a> <a id="30625" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="30633" href="Data.Nat.Properties.html#30614" class="Bound">m</a><a id="30634" class="Symbol">}}</a> <a id="30637" class="Symbol"></a> <a id="30639" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="30647" class="Symbol">(</a><a id="30648" href="Data.Nat.Properties.html#30614" class="Bound">m</a> <a id="30650" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="30652" href="Data.Nat.Properties.html#30616" class="Bound">n</a><a id="30653" class="Symbol">)</a>
<a id="30655" href="Data.Nat.Properties.html#30604" class="Function">m^n≢0</a> <a id="30661" href="Data.Nat.Properties.html#30661" class="Bound">m</a> <a id="30663" href="Data.Nat.Properties.html#30663" class="Bound">n</a> <a id="30665" class="Symbol">=</a> <a id="30667" href="Data.Nat.Base.html#3419" class="Function">≢-nonZero</a> <a id="30677" class="Symbol">(</a><a id="30678" href="Data.Nat.Base.html#3604" class="Function">≢-nonZero⁻¹</a> <a id="30690" href="Data.Nat.Properties.html#30661" class="Bound">m</a> <a id="30692" href="Function.Base.html#3626" class="Function Operator">∘′</a> <a id="30695" href="Data.Nat.Properties.html#30346" class="Function">m^n≡0⇒m≡0</a> <a id="30705" href="Data.Nat.Properties.html#30661" class="Bound">m</a> <a id="30707" href="Data.Nat.Properties.html#30663" class="Bound">n</a><a id="30708" class="Symbol">)</a>
<a id="m^n&gt;0"></a><a id="30711" href="Data.Nat.Properties.html#30711" class="Function">m^n&gt;0</a> <a id="30717" class="Symbol">:</a> <a id="30719" class="Symbol"></a> <a id="30721" href="Data.Nat.Properties.html#30721" class="Bound">m</a> <a id="30723" class="Symbol">.{{</a><a id="30726" href="Data.Nat.Properties.html#30726" class="Bound">_</a> <a id="30728" class="Symbol">:</a> <a id="30730" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="30738" href="Data.Nat.Properties.html#30721" class="Bound">m</a><a id="30739" class="Symbol">}}</a> <a id="30742" href="Data.Nat.Properties.html#30742" class="Bound">n</a> <a id="30744" class="Symbol"></a> <a id="30746" href="Data.Nat.Properties.html#30721" class="Bound">m</a> <a id="30748" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="30750" href="Data.Nat.Properties.html#30742" class="Bound">n</a> <a id="30752" href="Data.Nat.Base.html#2289" class="Function Operator">&gt;</a> <a id="30754" class="Number">0</a>
<a id="30756" href="Data.Nat.Properties.html#30711" class="Function">m^n&gt;0</a> <a id="30762" href="Data.Nat.Properties.html#30762" class="Bound">m</a> <a id="30764" href="Data.Nat.Properties.html#30764" class="Bound">n</a> <a id="30766" class="Symbol">=</a> <a id="30768" href="Data.Nat.Base.html#3671" class="Function">&gt;-nonZero⁻¹</a> <a id="30780" class="Symbol">(</a><a id="30781" href="Data.Nat.Properties.html#30762" class="Bound">m</a> <a id="30783" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="30785" href="Data.Nat.Properties.html#30764" class="Bound">n</a><a id="30786" class="Symbol">)</a> <a id="30788" class="Symbol">{{</a><a id="30790" href="Data.Nat.Properties.html#30604" class="Function">m^n≢0</a> <a id="30796" href="Data.Nat.Properties.html#30762" class="Bound">m</a> <a id="30798" href="Data.Nat.Properties.html#30764" class="Bound">n</a><a id="30799" class="Symbol">}}</a>
<a id="^-monoˡ-≤"></a><a id="30803" href="Data.Nat.Properties.html#30803" class="Function">^-monoˡ-≤</a> <a id="30813" class="Symbol">:</a> <a id="30815" class="Symbol"></a> <a id="30817" href="Data.Nat.Properties.html#30817" class="Bound">n</a> <a id="30819" class="Symbol"></a> <a id="30821" class="Symbol">(</a><a id="30822" href="Data.Nat.Base.html#6561" class="Function Operator">_^</a> <a id="30825" href="Data.Nat.Properties.html#30817" class="Bound">n</a><a id="30826" class="Symbol">)</a> <a id="30828" href="Relation.Binary.Core.html#1577" class="Function Operator">Preserves</a> <a id="30838" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="30842" href="Relation.Binary.Core.html#1577" class="Function Operator"></a> <a id="30844" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="30848" href="Data.Nat.Properties.html#30803" class="Function">^-monoˡ-≤</a> <a id="30858" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="30863" href="Data.Nat.Properties.html#30863" class="Bound">m≤o</a> <a id="30867" class="Symbol">=</a> <a id="30869" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="30873" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="30877" href="Data.Nat.Properties.html#30803" class="Function">^-monoˡ-≤</a> <a id="30887" class="Symbol">(</a><a id="30888" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="30892" href="Data.Nat.Properties.html#30892" class="Bound">n</a><a id="30893" class="Symbol">)</a> <a id="30895" href="Data.Nat.Properties.html#30895" class="Bound">m≤o</a> <a id="30899" class="Symbol">=</a> <a id="30901" href="Data.Nat.Properties.html#26828" class="Function">*-mono-≤</a> <a id="30910" href="Data.Nat.Properties.html#30895" class="Bound">m≤o</a> <a id="30914" class="Symbol">(</a><a id="30915" href="Data.Nat.Properties.html#30803" class="Function">^-monoˡ-≤</a> <a id="30925" href="Data.Nat.Properties.html#30892" class="Bound">n</a> <a id="30927" href="Data.Nat.Properties.html#30895" class="Bound">m≤o</a><a id="30930" class="Symbol">)</a>
<a id="^-monoʳ-≤"></a><a id="30933" href="Data.Nat.Properties.html#30933" class="Function">^-monoʳ-≤</a> <a id="30943" class="Symbol">:</a> <a id="30945" class="Symbol"></a> <a id="30947" href="Data.Nat.Properties.html#30947" class="Bound">m</a> <a id="30949" class="Symbol">.{{</a><a id="30952" href="Data.Nat.Properties.html#30952" class="Bound">_</a> <a id="30954" class="Symbol">:</a> <a id="30956" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="30964" href="Data.Nat.Properties.html#30947" class="Bound">m</a><a id="30965" class="Symbol">}}</a> <a id="30968" class="Symbol"></a> <a id="30970" class="Symbol">(</a><a id="30971" href="Data.Nat.Properties.html#30947" class="Bound">m</a> <a id="30973" href="Data.Nat.Base.html#6561" class="Function Operator">^_</a><a id="30975" class="Symbol">)</a> <a id="30977" href="Relation.Binary.Core.html#1577" class="Function Operator">Preserves</a> <a id="30987" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="30991" href="Relation.Binary.Core.html#1577" class="Function Operator"></a> <a id="30993" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="30997" href="Data.Nat.Properties.html#30933" class="Function">^-monoʳ-≤</a> <a id="31007" href="Data.Nat.Properties.html#31007" class="Bound">m</a> <a id="31009" class="Symbol">{_}</a> <a id="31013" class="Symbol">{</a><a id="31014" href="Data.Nat.Properties.html#31014" class="Bound">o</a><a id="31015" class="Symbol">}</a> <a id="31017" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="31021" class="Symbol">=</a> <a id="31023" href="Data.Nat.Properties.html#12425" class="Function">n≢0⇒n&gt;0</a> <a id="31031" class="Symbol">(</a><a id="31032" href="Data.Nat.Base.html#3604" class="Function">≢-nonZero⁻¹</a> <a id="31044" class="Symbol">(</a><a id="31045" href="Data.Nat.Properties.html#31007" class="Bound">m</a> <a id="31047" href="Data.Nat.Base.html#6561" class="Function Operator">^</a> <a id="31049" href="Data.Nat.Properties.html#31014" class="Bound">o</a><a id="31050" class="Symbol">)</a> <a id="31052" class="Symbol">{{</a><a id="31054" href="Data.Nat.Properties.html#30604" class="Function">m^n≢0</a> <a id="31060" href="Data.Nat.Properties.html#31007" class="Bound">m</a> <a id="31062" href="Data.Nat.Properties.html#31014" class="Bound">o</a><a id="31063" class="Symbol">}})</a>
<a id="31067" href="Data.Nat.Properties.html#30933" class="Function">^-monoʳ-≤</a> <a id="31077" href="Data.Nat.Properties.html#31077" class="Bound">m</a> <a id="31079" class="Symbol">(</a><a id="31080" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="31084" href="Data.Nat.Properties.html#31084" class="Bound">n≤o</a><a id="31087" class="Symbol">)</a> <a id="31089" class="Symbol">=</a> <a id="31091" href="Data.Nat.Properties.html#27047" class="Function">*-monoʳ-≤</a> <a id="31101" href="Data.Nat.Properties.html#31077" class="Bound">m</a> <a id="31103" class="Symbol">(</a><a id="31104" href="Data.Nat.Properties.html#30933" class="Function">^-monoʳ-≤</a> <a id="31114" href="Data.Nat.Properties.html#31077" class="Bound">m</a> <a id="31116" href="Data.Nat.Properties.html#31084" class="Bound">n≤o</a><a id="31119" class="Symbol">)</a>
<a id="^-monoˡ-&lt;"></a><a id="31122" href="Data.Nat.Properties.html#31122" class="Function">^-monoˡ-&lt;</a> <a id="31132" class="Symbol">:</a> <a id="31134" class="Symbol"></a> <a id="31136" href="Data.Nat.Properties.html#31136" class="Bound">n</a> <a id="31138" class="Symbol">.{{</a><a id="31141" href="Data.Nat.Properties.html#31141" class="Bound">_</a> <a id="31143" class="Symbol">:</a> <a id="31145" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="31153" href="Data.Nat.Properties.html#31136" class="Bound">n</a><a id="31154" class="Symbol">}}</a> <a id="31157" class="Symbol"></a> <a id="31159" class="Symbol">(</a><a id="31160" href="Data.Nat.Base.html#6561" class="Function Operator">_^</a> <a id="31163" href="Data.Nat.Properties.html#31136" class="Bound">n</a><a id="31164" class="Symbol">)</a> <a id="31166" href="Relation.Binary.Core.html#1577" class="Function Operator">Preserves</a> <a id="31176" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="31180" href="Relation.Binary.Core.html#1577" class="Function Operator"></a> <a id="31182" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a>
<a id="31186" href="Data.Nat.Properties.html#31122" class="Function">^-monoˡ-&lt;</a> <a id="31196" class="Symbol">(</a><a id="31197" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="31201" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="31205" class="Symbol">)</a> <a id="31212" href="Data.Nat.Properties.html#31212" class="Bound">m&lt;o</a> <a id="31216" class="Symbol">=</a> <a id="31218" href="Data.Nat.Properties.html#27300" class="Function">*-monoˡ-&lt;</a> <a id="31228" class="Number">1</a> <a id="31230" href="Data.Nat.Properties.html#31212" class="Bound">m&lt;o</a>
<a id="31234" href="Data.Nat.Properties.html#31122" class="Function">^-monoˡ-&lt;</a> <a id="31244" class="Symbol">(</a><a id="31245" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="31249" href="Data.Nat.Properties.html#31249" class="Bound">n</a><a id="31250" class="Symbol">@(</a><a id="31252" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="31256" class="Symbol">_))</a> <a id="31260" href="Data.Nat.Properties.html#31260" class="Bound">m&lt;o</a> <a id="31264" class="Symbol">=</a> <a id="31266" href="Data.Nat.Properties.html#27137" class="Function">*-mono-&lt;</a> <a id="31275" href="Data.Nat.Properties.html#31260" class="Bound">m&lt;o</a> <a id="31279" class="Symbol">(</a><a id="31280" href="Data.Nat.Properties.html#31122" class="Function">^-monoˡ-&lt;</a> <a id="31290" href="Data.Nat.Properties.html#31249" class="Bound">n</a> <a id="31292" href="Data.Nat.Properties.html#31260" class="Bound">m&lt;o</a><a id="31295" class="Symbol">)</a>
<a id="^-monoʳ-&lt;"></a><a id="31298" href="Data.Nat.Properties.html#31298" class="Function">^-monoʳ-&lt;</a> <a id="31308" class="Symbol">:</a> <a id="31310" class="Symbol"></a> <a id="31312" href="Data.Nat.Properties.html#31312" class="Bound">m</a> <a id="31314" class="Symbol"></a> <a id="31316" class="Number">1</a> <a id="31318" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="31320" href="Data.Nat.Properties.html#31312" class="Bound">m</a> <a id="31322" class="Symbol"></a> <a id="31324" class="Symbol">(</a><a id="31325" href="Data.Nat.Properties.html#31312" class="Bound">m</a> <a id="31327" href="Data.Nat.Base.html#6561" class="Function Operator">^_</a><a id="31329" class="Symbol">)</a> <a id="31331" href="Relation.Binary.Core.html#1577" class="Function Operator">Preserves</a> <a id="31341" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="31345" href="Relation.Binary.Core.html#1577" class="Function Operator"></a> <a id="31347" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a>
<a id="31351" href="Data.Nat.Properties.html#31298" class="Function">^-monoʳ-&lt;</a> <a id="31361" href="Data.Nat.Properties.html#31361" class="Bound">m</a><a id="31362" class="Symbol">@(</a><a id="31364" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="31368" class="Symbol">_)</a> <a id="31371" href="Data.Nat.Properties.html#31371" class="Bound">1&lt;m</a> <a id="31375" class="Symbol">{</a><a id="31376" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="31380" class="Symbol">}</a> <a id="31383" class="Symbol">{</a><a id="31384" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="31388" href="Data.Nat.Properties.html#31388" class="Bound">o</a><a id="31389" class="Symbol">}</a> <a id="31391" href="Data.Nat.Base.html#1873" class="InductiveConstructor">z&lt;s</a> <a id="31401" class="Symbol">=</a> <a id="31403" href="Data.Nat.Properties.html#26828" class="Function">*-mono-≤</a> <a id="31412" href="Data.Nat.Properties.html#31371" class="Bound">1&lt;m</a> <a id="31416" class="Symbol">(</a><a id="31417" href="Data.Nat.Properties.html#30711" class="Function">m^n&gt;0</a> <a id="31423" href="Data.Nat.Properties.html#31361" class="Bound">m</a> <a id="31425" href="Data.Nat.Properties.html#31388" class="Bound">o</a><a id="31426" class="Symbol">)</a>
<a id="31428" href="Data.Nat.Properties.html#31298" class="Function">^-monoʳ-&lt;</a> <a id="31438" href="Data.Nat.Properties.html#31438" class="Bound">m</a><a id="31439" class="Symbol">@(</a><a id="31441" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="31445" class="Symbol">_)</a> <a id="31448" href="Data.Nat.Properties.html#31448" class="Bound">1&lt;m</a> <a id="31452" class="Symbol">{</a><a id="31453" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="31457" href="Data.Nat.Properties.html#31457" class="Bound">n</a><a id="31458" class="Symbol">}</a> <a id="31460" class="Symbol">{</a><a id="31461" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="31465" href="Data.Nat.Properties.html#31465" class="Bound">o</a><a id="31466" class="Symbol">}</a> <a id="31468" class="Symbol">(</a><a id="31469" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a> <a id="31473" href="Data.Nat.Properties.html#31473" class="Bound">n&lt;o</a><a id="31476" class="Symbol">)</a> <a id="31478" class="Symbol">=</a> <a id="31480" href="Data.Nat.Properties.html#27493" class="Function">*-monoʳ-&lt;</a> <a id="31490" href="Data.Nat.Properties.html#31438" class="Bound">m</a> <a id="31492" class="Symbol">(</a><a id="31493" href="Data.Nat.Properties.html#31298" class="Function">^-monoʳ-&lt;</a> <a id="31503" href="Data.Nat.Properties.html#31438" class="Bound">m</a> <a id="31505" href="Data.Nat.Properties.html#31448" class="Bound">1&lt;m</a> <a id="31509" href="Data.Nat.Properties.html#31473" class="Bound">n&lt;o</a><a id="31512" class="Symbol">)</a>
<a id="31515" class="Comment">------------------------------------------------------------------------</a>
<a id="31588" class="Comment">-- Properties of _⊓_ and _⊔_</a>
<a id="31617" class="Comment">------------------------------------------------------------------------</a>
<a id="31690" class="Comment">-- Basic specification in terms of _≤_</a>
<a id="m≤n⇒m⊔n≡n"></a><a id="31730" href="Data.Nat.Properties.html#31730" class="Function">m≤n⇒m⊔n≡n</a> <a id="31740" class="Symbol">:</a> <a id="31742" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="31744" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="31746" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="31748" class="Symbol"></a> <a id="31750" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="31752" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="31754" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="31756" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="31758" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="31760" href="Data.Nat.Properties.html#31730" class="Function">m≤n⇒m⊔n≡n</a> <a id="31770" class="Symbol">{</a><a id="31771" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="31775" class="Symbol">}</a> <a id="31778" class="Symbol">_</a> <a id="31788" class="Symbol">=</a> <a id="31790" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="31795" href="Data.Nat.Properties.html#31730" class="Function">m≤n⇒m⊔n≡n</a> <a id="31805" class="Symbol">{</a><a id="31806" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="31810" href="Data.Nat.Properties.html#31810" class="Bound">m</a><a id="31811" class="Symbol">}</a> <a id="31813" class="Symbol">(</a><a id="31814" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="31818" href="Data.Nat.Properties.html#31818" class="Bound">m≤n</a><a id="31821" class="Symbol">)</a> <a id="31823" class="Symbol">=</a> <a id="31825" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="31830" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="31834" class="Symbol">(</a><a id="31835" href="Data.Nat.Properties.html#31730" class="Function">m≤n⇒m⊔n≡n</a> <a id="31845" href="Data.Nat.Properties.html#31818" class="Bound">m≤n</a><a id="31848" class="Symbol">)</a>
<a id="m≥n⇒m⊔n≡m"></a><a id="31851" href="Data.Nat.Properties.html#31851" class="Function">m≥n⇒m⊔n≡m</a> <a id="31861" class="Symbol">:</a> <a id="31863" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="31865" href="Data.Nat.Base.html#2259" class="Function Operator"></a> <a id="31867" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="31869" class="Symbol"></a> <a id="31871" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="31873" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="31875" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="31877" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="31879" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a>
<a id="31881" href="Data.Nat.Properties.html#31851" class="Function">m≥n⇒m⊔n≡m</a> <a id="31891" class="Symbol">{</a><a id="31892" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="31896" class="Symbol">}</a> <a id="31899" class="Symbol">{</a><a id="31900" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="31904" class="Symbol">}</a> <a id="31907" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="31917" class="Symbol">=</a> <a id="31919" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="31924" href="Data.Nat.Properties.html#31851" class="Function">m≥n⇒m⊔n≡m</a> <a id="31934" class="Symbol">{</a><a id="31935" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="31939" href="Data.Nat.Properties.html#31939" class="Bound">m</a><a id="31940" class="Symbol">}</a> <a id="31942" class="Symbol">{</a><a id="31943" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="31947" class="Symbol">}</a> <a id="31950" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="31960" class="Symbol">=</a> <a id="31962" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="31967" href="Data.Nat.Properties.html#31851" class="Function">m≥n⇒m⊔n≡m</a> <a id="31977" class="Symbol">{</a><a id="31978" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="31982" href="Data.Nat.Properties.html#31982" class="Bound">m</a><a id="31983" class="Symbol">}</a> <a id="31985" class="Symbol">{</a><a id="31986" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="31990" href="Data.Nat.Properties.html#31990" class="Bound">n</a><a id="31991" class="Symbol">}</a> <a id="31993" class="Symbol">(</a><a id="31994" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="31998" href="Data.Nat.Properties.html#31998" class="Bound">m≥n</a><a id="32001" class="Symbol">)</a> <a id="32003" class="Symbol">=</a> <a id="32005" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="32010" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="32014" class="Symbol">(</a><a id="32015" href="Data.Nat.Properties.html#31851" class="Function">m≥n⇒m⊔n≡m</a> <a id="32025" href="Data.Nat.Properties.html#31998" class="Bound">m≥n</a><a id="32028" class="Symbol">)</a>
<a id="m≤n⇒m⊓n≡m"></a><a id="32031" href="Data.Nat.Properties.html#32031" class="Function">m≤n⇒m⊓n≡m</a> <a id="32041" class="Symbol">:</a> <a id="32043" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="32045" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="32047" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="32049" class="Symbol"></a> <a id="32051" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="32053" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="32055" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="32057" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="32059" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a>
<a id="32061" href="Data.Nat.Properties.html#32031" class="Function">m≤n⇒m⊓n≡m</a> <a id="32071" class="Symbol">{</a><a id="32072" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="32076" class="Symbol">}</a> <a id="32079" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="32089" class="Symbol">=</a> <a id="32091" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="32096" href="Data.Nat.Properties.html#32031" class="Function">m≤n⇒m⊓n≡m</a> <a id="32106" class="Symbol">{</a><a id="32107" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="32111" href="Data.Nat.Properties.html#32111" class="Bound">m</a><a id="32112" class="Symbol">}</a> <a id="32114" class="Symbol">(</a><a id="32115" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="32119" href="Data.Nat.Properties.html#32119" class="Bound">m≤n</a><a id="32122" class="Symbol">)</a> <a id="32124" class="Symbol">=</a> <a id="32126" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="32131" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="32135" class="Symbol">(</a><a id="32136" href="Data.Nat.Properties.html#32031" class="Function">m≤n⇒m⊓n≡m</a> <a id="32146" href="Data.Nat.Properties.html#32119" class="Bound">m≤n</a><a id="32149" class="Symbol">)</a>
<a id="m≥n⇒m⊓n≡n"></a><a id="32152" href="Data.Nat.Properties.html#32152" class="Function">m≥n⇒m⊓n≡n</a> <a id="32162" class="Symbol">:</a> <a id="32164" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="32166" href="Data.Nat.Base.html#2259" class="Function Operator"></a> <a id="32168" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="32170" class="Symbol"></a> <a id="32172" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="32174" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="32176" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="32178" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="32180" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="32182" href="Data.Nat.Properties.html#32152" class="Function">m≥n⇒m⊓n≡n</a> <a id="32192" class="Symbol">{</a><a id="32193" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="32197" class="Symbol">}</a> <a id="32200" class="Symbol">{</a><a id="32201" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="32205" class="Symbol">}</a> <a id="32208" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="32218" class="Symbol">=</a> <a id="32220" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="32225" href="Data.Nat.Properties.html#32152" class="Function">m≥n⇒m⊓n≡n</a> <a id="32235" class="Symbol">{</a><a id="32236" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="32240" href="Data.Nat.Properties.html#32240" class="Bound">m</a><a id="32241" class="Symbol">}</a> <a id="32243" class="Symbol">{</a><a id="32244" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="32248" class="Symbol">}</a> <a id="32251" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="32261" class="Symbol">=</a> <a id="32263" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="32268" href="Data.Nat.Properties.html#32152" class="Function">m≥n⇒m⊓n≡n</a> <a id="32278" class="Symbol">{</a><a id="32279" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="32283" href="Data.Nat.Properties.html#32283" class="Bound">m</a><a id="32284" class="Symbol">}</a> <a id="32286" class="Symbol">{</a><a id="32287" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="32291" href="Data.Nat.Properties.html#32291" class="Bound">n</a><a id="32292" class="Symbol">}</a> <a id="32294" class="Symbol">(</a><a id="32295" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="32299" href="Data.Nat.Properties.html#32299" class="Bound">m≤n</a><a id="32302" class="Symbol">)</a> <a id="32304" class="Symbol">=</a> <a id="32306" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="32311" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="32315" class="Symbol">(</a><a id="32316" href="Data.Nat.Properties.html#32152" class="Function">m≥n⇒m⊓n≡n</a> <a id="32326" href="Data.Nat.Properties.html#32299" class="Bound">m≤n</a><a id="32329" class="Symbol">)</a>
<a id="⊓-operator"></a><a id="32332" href="Data.Nat.Properties.html#32332" class="Function">⊓-operator</a> <a id="32343" class="Symbol">:</a> <a id="32345" href="Algebra.Construct.NaturalChoice.Base.html#990" class="Record">MinOperator</a> <a id="32357" href="Data.Nat.Properties.html#7217" class="Function">≤-totalPreorder</a>
<a id="32373" href="Data.Nat.Properties.html#32332" class="Function">⊓-operator</a> <a id="32384" class="Symbol">=</a> <a id="32386" class="Keyword">record</a>
<a id="32395" class="Symbol">{</a> <a id="32397" href="Algebra.Construct.NaturalChoice.Base.html#1095" class="Field">x≤y⇒x⊓y≈x</a> <a id="32407" class="Symbol">=</a> <a id="32409" href="Data.Nat.Properties.html#32031" class="Function">m≤n⇒m⊓n≡m</a>
<a id="32421" class="Symbol">;</a> <a id="32423" href="Algebra.Construct.NaturalChoice.Base.html#1141" class="Field">x≥y⇒x⊓y≈y</a> <a id="32433" class="Symbol">=</a> <a id="32435" href="Data.Nat.Properties.html#32152" class="Function">m≥n⇒m⊓n≡n</a>
<a id="32447" class="Symbol">}</a>
<a id="⊔-operator"></a><a id="32450" href="Data.Nat.Properties.html#32450" class="Function">⊔-operator</a> <a id="32461" class="Symbol">:</a> <a id="32463" href="Algebra.Construct.NaturalChoice.Base.html#1191" class="Record">MaxOperator</a> <a id="32475" href="Data.Nat.Properties.html#7217" class="Function">≤-totalPreorder</a>
<a id="32491" href="Data.Nat.Properties.html#32450" class="Function">⊔-operator</a> <a id="32502" class="Symbol">=</a> <a id="32504" class="Keyword">record</a>
<a id="32513" class="Symbol">{</a> <a id="32515" href="Algebra.Construct.NaturalChoice.Base.html#1296" class="Field">x≤y⇒x⊔y≈y</a> <a id="32525" class="Symbol">=</a> <a id="32527" href="Data.Nat.Properties.html#31730" class="Function">m≤n⇒m⊔n≡n</a>
<a id="32539" class="Symbol">;</a> <a id="32541" href="Algebra.Construct.NaturalChoice.Base.html#1342" class="Field">x≥y⇒x⊔y≈x</a> <a id="32551" class="Symbol">=</a> <a id="32553" href="Data.Nat.Properties.html#31851" class="Function">m≥n⇒m⊔n≡m</a>
<a id="32565" class="Symbol">}</a>
<a id="32568" class="Comment">------------------------------------------------------------------------</a>
<a id="32641" class="Comment">-- Equality to their counterparts defined in terms of primitive operations</a>
<a id="⊔≡⊔′"></a><a id="32717" href="Data.Nat.Properties.html#32717" class="Function">⊔≡⊔′</a> <a id="32722" class="Symbol">:</a> <a id="32724" class="Symbol"></a> <a id="32726" href="Data.Nat.Properties.html#32726" class="Bound">m</a> <a id="32728" href="Data.Nat.Properties.html#32728" class="Bound">n</a> <a id="32730" class="Symbol"></a> <a id="32732" href="Data.Nat.Properties.html#32726" class="Bound">m</a> <a id="32734" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="32736" href="Data.Nat.Properties.html#32728" class="Bound">n</a> <a id="32738" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="32740" href="Data.Nat.Properties.html#32726" class="Bound">m</a> <a id="32742" href="Data.Nat.Base.html#5767" class="Function Operator">⊔′</a> <a id="32745" href="Data.Nat.Properties.html#32728" class="Bound">n</a>
<a id="32747" href="Data.Nat.Properties.html#32717" class="Function">⊔≡⊔′</a> <a id="32752" href="Data.Nat.Properties.html#32752" class="Bound">m</a> <a id="32754" href="Data.Nat.Properties.html#32754" class="Bound">n</a> <a id="32756" class="Keyword">with</a> <a id="32761" href="Data.Nat.Properties.html#32752" class="Bound">m</a> <a id="32763" href="Data.Nat.Base.html#1457" class="Primitive Operator">&lt;</a> <a id="32766" href="Data.Nat.Properties.html#32754" class="Bound">n</a> <a id="32768" class="Keyword">in</a> <a id="32771" class="Argument">eq</a>
<a id="32774" class="Symbol">...</a> <a id="32778" class="Symbol">|</a> <a id="32780" href="Agda.Builtin.Bool.html#192" class="InductiveConstructor">false</a> <a id="32786" class="Symbol">=</a> <a id="32788" href="Data.Nat.Properties.html#31851" class="Function">m≥n⇒m⊔n≡m</a> <a id="32798" class="Symbol">(</a><a id="32799" href="Data.Nat.Properties.html#8970" class="Function">≮⇒≥</a> <a id="32803" class="Symbol"></a> <a id="32806" href="Data.Nat.Properties.html#32806" class="Bound">m&lt;n</a> <a id="32810" class="Symbol"></a> <a id="32812" href="Relation.Binary.PropositionalEquality.Core.html#1808" class="Function">subst</a> <a id="32818" href="Data.Bool.Base.html#1348" class="Function">T</a> <a id="32820" href="Data.Nat.Properties.html#32771" class="Bound">eq</a> <a id="32823" class="Symbol">(</a><a id="32824" href="Data.Nat.Properties.html#4227" class="Function">&lt;&lt;</a> <a id="32829" href="Data.Nat.Properties.html#32806" class="Bound">m&lt;n</a><a id="32832" class="Symbol">)))</a>
<a id="32836" class="Symbol">...</a> <a id="32840" class="Symbol">|</a> <a id="32842" href="Agda.Builtin.Bool.html#198" class="InductiveConstructor">true</a> <a id="32848" class="Symbol">=</a> <a id="32850" href="Data.Nat.Properties.html#31730" class="Function">m≤n⇒m⊔n≡n</a> <a id="32860" class="Symbol">(</a><a id="32861" href="Data.Nat.Properties.html#8416" class="Function">&lt;⇒≤</a> <a id="32865" class="Symbol">(</a><a id="32866" href="Data.Nat.Properties.html#4115" class="Function">&lt;ᵇ⇒&lt;</a> <a id="32871" class="Bound">m</a> <a id="32873" class="Bound">n</a> <a id="32875" class="Symbol">(</a><a id="32876" href="Relation.Binary.PropositionalEquality.Core.html#1808" class="Function">subst</a> <a id="32882" href="Data.Bool.Base.html#1348" class="Function">T</a> <a id="32884" class="Symbol">(</a><a id="32885" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="32889" href="Data.Nat.Properties.html#32771" class="Bound">eq</a><a id="32891" class="Symbol">)</a> <a id="32893" class="Symbol">_)))</a>
<a id="⊓≡⊓′"></a><a id="32899" href="Data.Nat.Properties.html#32899" class="Function">⊓≡⊓′</a> <a id="32904" class="Symbol">:</a> <a id="32906" class="Symbol"></a> <a id="32908" href="Data.Nat.Properties.html#32908" class="Bound">m</a> <a id="32910" href="Data.Nat.Properties.html#32910" class="Bound">n</a> <a id="32912" class="Symbol"></a> <a id="32914" href="Data.Nat.Properties.html#32908" class="Bound">m</a> <a id="32916" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="32918" href="Data.Nat.Properties.html#32910" class="Bound">n</a> <a id="32920" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="32922" href="Data.Nat.Properties.html#32908" class="Bound">m</a> <a id="32924" href="Data.Nat.Base.html#6135" class="Function Operator">⊓′</a> <a id="32927" href="Data.Nat.Properties.html#32910" class="Bound">n</a>
<a id="32929" href="Data.Nat.Properties.html#32899" class="Function">⊓≡⊓′</a> <a id="32934" href="Data.Nat.Properties.html#32934" class="Bound">m</a> <a id="32936" href="Data.Nat.Properties.html#32936" class="Bound">n</a> <a id="32938" class="Keyword">with</a> <a id="32943" href="Data.Nat.Properties.html#32934" class="Bound">m</a> <a id="32945" href="Data.Nat.Base.html#1457" class="Primitive Operator">&lt;</a> <a id="32948" href="Data.Nat.Properties.html#32936" class="Bound">n</a> <a id="32950" class="Keyword">in</a> <a id="32953" class="Argument">eq</a>
<a id="32956" class="Symbol">...</a> <a id="32960" class="Symbol">|</a> <a id="32962" href="Agda.Builtin.Bool.html#192" class="InductiveConstructor">false</a> <a id="32968" class="Symbol">=</a> <a id="32970" href="Data.Nat.Properties.html#32152" class="Function">m≥n⇒m⊓n≡n</a> <a id="32980" class="Symbol">(</a><a id="32981" href="Data.Nat.Properties.html#8970" class="Function">≮⇒≥</a> <a id="32985" class="Symbol"></a> <a id="32988" href="Data.Nat.Properties.html#32988" class="Bound">m&lt;n</a> <a id="32992" class="Symbol"></a> <a id="32994" href="Relation.Binary.PropositionalEquality.Core.html#1808" class="Function">subst</a> <a id="33000" href="Data.Bool.Base.html#1348" class="Function">T</a> <a id="33002" href="Data.Nat.Properties.html#32953" class="Bound">eq</a> <a id="33005" class="Symbol">(</a><a id="33006" href="Data.Nat.Properties.html#4227" class="Function">&lt;&lt;</a> <a id="33011" href="Data.Nat.Properties.html#32988" class="Bound">m&lt;n</a><a id="33014" class="Symbol">)))</a>
<a id="33018" class="Symbol">...</a> <a id="33022" class="Symbol">|</a> <a id="33024" href="Agda.Builtin.Bool.html#198" class="InductiveConstructor">true</a> <a id="33030" class="Symbol">=</a> <a id="33032" href="Data.Nat.Properties.html#32031" class="Function">m≤n⇒m⊓n≡m</a> <a id="33042" class="Symbol">(</a><a id="33043" href="Data.Nat.Properties.html#8416" class="Function">&lt;⇒≤</a> <a id="33047" class="Symbol">(</a><a id="33048" href="Data.Nat.Properties.html#4115" class="Function">&lt;ᵇ⇒&lt;</a> <a id="33053" class="Bound">m</a> <a id="33055" class="Bound">n</a> <a id="33057" class="Symbol">(</a><a id="33058" href="Relation.Binary.PropositionalEquality.Core.html#1808" class="Function">subst</a> <a id="33064" href="Data.Bool.Base.html#1348" class="Function">T</a> <a id="33066" class="Symbol">(</a><a id="33067" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="33071" href="Data.Nat.Properties.html#32953" class="Bound">eq</a><a id="33073" class="Symbol">)</a> <a id="33075" class="Symbol">_)))</a>
<a id="33081" class="Comment">------------------------------------------------------------------------</a>
<a id="33154" class="Comment">-- Derived properties of _⊓_ and _⊔_</a>
<a id="33192" class="Keyword">private</a>
<a id="33202" class="Keyword">module</a> <a id="⊓-⊔-properties"></a><a id="33209" href="Data.Nat.Properties.html#33209" class="Module">⊓-⊔-properties</a> <a id="33231" class="Symbol">=</a> <a id="33233" href="Algebra.Construct.NaturalChoice.MinMaxOp.html" class="Module">MinMaxOp</a> <a id="33249" href="Data.Nat.Properties.html#32332" class="Function">⊓-operator</a> <a id="33260" href="Data.Nat.Properties.html#32450" class="Function">⊔-operator</a>
<a id="33273" class="Keyword">module</a> <a id="⊓-⊔-latticeProperties"></a><a id="33280" href="Data.Nat.Properties.html#33280" class="Module">⊓-⊔-latticeProperties</a> <a id="33302" class="Symbol">=</a> <a id="33304" href="Algebra.Lattice.Construct.NaturalChoice.MinMaxOp.html" class="Module">LatticeMinMaxOp</a> <a id="33320" href="Data.Nat.Properties.html#32332" class="Function">⊓-operator</a> <a id="33331" href="Data.Nat.Properties.html#32450" class="Function">⊔-operator</a>
<a id="33343" class="Keyword">open</a> <a id="33348" href="Data.Nat.Properties.html#33209" class="Module">⊓-⊔-properties</a> <a id="33363" class="Keyword">public</a>
<a id="33372" class="Keyword">using</a>
<a id="33380" class="Symbol">(</a> <a id="33382" href="Algebra.Construct.NaturalChoice.MinOp.html#3166" class="Function">⊓-idem</a> <a id="33408" class="Comment">-- : Idempotent _⊓_</a>
<a id="33430" class="Symbol">;</a> <a id="33432" href="Algebra.Construct.NaturalChoice.MinOp.html#3223" class="Function">⊓-sel</a> <a id="33458" class="Comment">-- : Selective _⊓_</a>
<a id="33479" class="Symbol">;</a> <a id="33481" href="Algebra.Construct.NaturalChoice.MinOp.html#2531" class="Function">⊓-assoc</a> <a id="33507" class="Comment">-- : Associative _⊓_</a>
<a id="33530" class="Symbol">;</a> <a id="33532" href="Algebra.Construct.NaturalChoice.MinOp.html#1732" class="Function">⊓-comm</a> <a id="33558" class="Comment">-- : Commutative _⊓_</a>
<a id="33582" class="Symbol">;</a> <a id="33584" href="Algebra.Construct.NaturalChoice.MaxOp.html#1120" class="Function">⊔-idem</a> <a id="33610" class="Comment">-- : Idempotent _⊔_</a>
<a id="33632" class="Symbol">;</a> <a id="33634" href="Algebra.Construct.NaturalChoice.MaxOp.html#1148" class="Function">⊔-sel</a> <a id="33660" class="Comment">-- : Selective _⊔_</a>
<a id="33681" class="Symbol">;</a> <a id="33683" href="Algebra.Construct.NaturalChoice.MaxOp.html#1175" class="Function">⊔-assoc</a> <a id="33709" class="Comment">-- : Associative _⊔_</a>
<a id="33732" class="Symbol">;</a> <a id="33734" href="Algebra.Construct.NaturalChoice.MaxOp.html#1204" class="Function">⊔-comm</a> <a id="33760" class="Comment">-- : Commutative _⊔_</a>
<a id="33784" class="Symbol">;</a> <a id="33786" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#1587" class="Function">⊓-distribˡ-⊔</a> <a id="33812" class="Comment">-- : _⊓_ DistributesOverˡ _⊔_</a>
<a id="33844" class="Symbol">;</a> <a id="33846" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#1980" class="Function">⊓-distribʳ-⊔</a> <a id="33872" class="Comment">-- : _⊓_ DistributesOverʳ _⊔_</a>
<a id="33904" class="Symbol">;</a> <a id="33906" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#2082" class="Function">⊓-distrib-⊔</a> <a id="33932" class="Comment">-- : _⊓_ DistributesOver _⊔_</a>
<a id="33964" class="Symbol">;</a> <a id="33966" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#2163" class="Function">⊔-distribˡ-⊓</a> <a id="33992" class="Comment">-- : _⊔_ DistributesOverˡ _⊓_</a>
<a id="34024" class="Symbol">;</a> <a id="34026" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#2556" class="Function">⊔-distribʳ-⊓</a> <a id="34052" class="Comment">-- : _⊔_ DistributesOverʳ _⊓_</a>
<a id="34084" class="Symbol">;</a> <a id="34086" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#2658" class="Function">⊔-distrib-⊓</a> <a id="34112" class="Comment">-- : _⊔_ DistributesOver _⊓_</a>
<a id="34144" class="Symbol">;</a> <a id="34146" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#2739" class="Function">⊓-absorbs-⊔</a> <a id="34172" class="Comment">-- : _⊓_ Absorbs _⊔_</a>
<a id="34195" class="Symbol">;</a> <a id="34197" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#3054" class="Function">⊔-absorbs-⊓</a> <a id="34223" class="Comment">-- : _⊔_ Absorbs _⊓_</a>
<a id="34246" class="Symbol">;</a> <a id="34248" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#3369" class="Function">⊔-⊓-absorptive</a> <a id="34274" class="Comment">-- : Absorptive _⊔_ _⊓_</a>
<a id="34300" class="Symbol">;</a> <a id="34302" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#3449" class="Function">⊓-⊔-absorptive</a> <a id="34328" class="Comment">-- : Absorptive _⊓_ _⊔_</a>
<a id="34355" class="Symbol">;</a> <a id="34357" href="Algebra.Construct.NaturalChoice.MinOp.html#3920" class="Function">⊓-isMagma</a> <a id="34383" class="Comment">-- : IsMagma _⊓_</a>
<a id="34402" class="Symbol">;</a> <a id="34404" href="Algebra.Construct.NaturalChoice.MinOp.html#4029" class="Function">⊓-isSemigroup</a> <a id="34430" class="Comment">-- : IsSemigroup _⊓_</a>
<a id="34453" class="Symbol">;</a> <a id="34455" href="Algebra.Construct.NaturalChoice.MinOp.html#4237" class="Function">⊓-isCommutativeSemigroup</a> <a id="34481" class="Comment">-- : IsCommutativeSemigroup _⊓_</a>
<a id="34515" class="Symbol">;</a> <a id="34517" href="Algebra.Construct.NaturalChoice.MinOp.html#4135" class="Function">⊓-isBand</a> <a id="34543" class="Comment">-- : IsBand _⊓_</a>
<a id="34561" class="Symbol">;</a> <a id="34563" href="Algebra.Construct.NaturalChoice.MinOp.html#4387" class="Function">⊓-isSelectiveMagma</a> <a id="34589" class="Comment">-- : IsSelectiveMagma _⊓_</a>
<a id="34618" class="Symbol">;</a> <a id="34620" href="Algebra.Construct.NaturalChoice.MaxOp.html#1431" class="Function">⊔-isMagma</a> <a id="34646" class="Comment">-- : IsMagma _⊔_</a>
<a id="34665" class="Symbol">;</a> <a id="34667" href="Algebra.Construct.NaturalChoice.MaxOp.html#1475" class="Function">⊔-isSemigroup</a> <a id="34693" class="Comment">-- : IsSemigroup _⊔_</a>
<a id="34716" class="Symbol">;</a> <a id="34718" href="Algebra.Construct.NaturalChoice.MaxOp.html#1523" class="Function">⊔-isCommutativeSemigroup</a> <a id="34744" class="Comment">-- : IsCommutativeSemigroup _⊔_</a>
<a id="34778" class="Symbol">;</a> <a id="34780" href="Algebra.Construct.NaturalChoice.MaxOp.html#1582" class="Function">⊔-isBand</a> <a id="34806" class="Comment">-- : IsBand _⊔_</a>
<a id="34824" class="Symbol">;</a> <a id="34826" href="Algebra.Construct.NaturalChoice.MaxOp.html#1670" class="Function">⊔-isSelectiveMagma</a> <a id="34852" class="Comment">-- : IsSelectiveMagma _⊔_</a>
<a id="34881" class="Symbol">;</a> <a id="34883" href="Algebra.Construct.NaturalChoice.MinOp.html#4899" class="Function">⊓-magma</a> <a id="34909" class="Comment">-- : Magma _ _</a>
<a id="34926" class="Symbol">;</a> <a id="34928" href="Algebra.Construct.NaturalChoice.MinOp.html#4965" class="Function">⊓-semigroup</a> <a id="34954" class="Comment">-- : Semigroup _ _</a>
<a id="34975" class="Symbol">;</a> <a id="34977" href="Algebra.Construct.NaturalChoice.MinOp.html#5051" class="Function">⊓-band</a> <a id="35003" class="Comment">-- : Band _ _</a>
<a id="35019" class="Symbol">;</a> <a id="35021" href="Algebra.Construct.NaturalChoice.MinOp.html#5112" class="Function">⊓-commutativeSemigroup</a> <a id="35047" class="Comment">-- : CommutativeSemigroup _ _</a>
<a id="35079" class="Symbol">;</a> <a id="35081" href="Algebra.Construct.NaturalChoice.MinOp.html#5253" class="Function">⊓-selectiveMagma</a> <a id="35107" class="Comment">-- : SelectiveMagma _ _</a>
<a id="35134" class="Symbol">;</a> <a id="35136" href="Algebra.Construct.NaturalChoice.MaxOp.html#1724" class="Function">⊔-magma</a> <a id="35162" class="Comment">-- : Magma _ _</a>
<a id="35179" class="Symbol">;</a> <a id="35181" href="Algebra.Construct.NaturalChoice.MaxOp.html#1766" class="Function">⊔-semigroup</a> <a id="35207" class="Comment">-- : Semigroup _ _</a>
<a id="35228" class="Symbol">;</a> <a id="35230" href="Algebra.Construct.NaturalChoice.MaxOp.html#1869" class="Function">⊔-band</a> <a id="35256" class="Comment">-- : Band _ _</a>
<a id="35272" class="Symbol">;</a> <a id="35274" href="Algebra.Construct.NaturalChoice.MaxOp.html#1812" class="Function">⊔-commutativeSemigroup</a> <a id="35300" class="Comment">-- : CommutativeSemigroup _ _</a>
<a id="35332" class="Symbol">;</a> <a id="35334" href="Algebra.Construct.NaturalChoice.MaxOp.html#1953" class="Function">⊔-selectiveMagma</a> <a id="35360" class="Comment">-- : SelectiveMagma _ _</a>
<a id="35387" class="Symbol">;</a> <a id="35389" href="Algebra.Construct.NaturalChoice.MinOp.html#7054" class="Function">⊓-glb</a> <a id="35415" class="Comment">-- : ∀ {m n o} → m ≥ o → n ≥ o → m ⊓ n ≥ o</a>
<a id="35460" class="Symbol">;</a> <a id="35462" href="Algebra.Construct.NaturalChoice.MinOp.html#7161" class="Function">⊓-triangulate</a> <a id="35488" class="Comment">-- : ∀ m n o → m ⊓ n ⊓ o ≡ (m ⊓ n) ⊓ (n ⊓ o)</a>
<a id="35535" class="Symbol">;</a> <a id="35537" href="Algebra.Construct.NaturalChoice.MinOp.html#6651" class="Function">⊓-mono-≤</a> <a id="35563" class="Comment">-- : _⊓_ Preserves₂ _≤_ ⟶ _≤_ ⟶ _≤_</a>
<a id="35601" class="Symbol">;</a> <a id="35603" href="Algebra.Construct.NaturalChoice.MinOp.html#6878" class="Function">⊓-monoˡ-≤</a> <a id="35629" class="Comment">-- : ∀ n → (_⊓ n) Preserves _≤_ ⟶ _≤_</a>
<a id="35669" class="Symbol">;</a> <a id="35671" href="Algebra.Construct.NaturalChoice.MinOp.html#6966" class="Function">⊓-monoʳ-≤</a> <a id="35697" class="Comment">-- : ∀ n → (n ⊓_) Preserves _≤_ ⟶ _≤_</a>
<a id="35738" class="Symbol">;</a> <a id="35740" href="Algebra.Construct.NaturalChoice.MaxOp.html#2215" class="Function">⊔-lub</a> <a id="35766" class="Comment">-- : ∀ {m n o} → m ≤ o → n ≤ o → m ⊔ n ≤ o</a>
<a id="35811" class="Symbol">;</a> <a id="35813" href="Algebra.Construct.NaturalChoice.MaxOp.html#2248" class="Function">⊔-triangulate</a> <a id="35839" class="Comment">-- : ∀ m n o → m ⊔ n ⊔ o ≡ (m ⊔ n) ⊔ (n ⊔ o)</a>
<a id="35886" class="Symbol">;</a> <a id="35888" href="Algebra.Construct.NaturalChoice.MaxOp.html#2289" class="Function">⊔-mono-≤</a> <a id="35914" class="Comment">-- : _⊔_ Preserves₂ _≤_ ⟶ _≤_ ⟶ _≤_</a>
<a id="35952" class="Symbol">;</a> <a id="35954" href="Algebra.Construct.NaturalChoice.MaxOp.html#2325" class="Function">⊔-monoˡ-≤</a> <a id="35980" class="Comment">-- : ∀ n → (_⊔ n) Preserves _≤_ ⟶ _≤_</a>
<a id="36020" class="Symbol">;</a> <a id="36022" href="Algebra.Construct.NaturalChoice.MaxOp.html#2362" class="Function">⊔-monoʳ-≤</a> <a id="36048" class="Comment">-- : ∀ n → (n ⊔_) Preserves _≤_ ⟶ _≤_</a>
<a id="36088" class="Symbol">)</a>
<a id="36092" class="Keyword">renaming</a>
<a id="36103" class="Symbol">(</a> <a id="36105" href="Algebra.Construct.NaturalChoice.MinOp.html#5732" class="Function">x⊓y≈y⇒y≤x</a> <a id="36115" class="Symbol">to</a> <a id="36118" class="Function">m⊓n≡n⇒n≤m</a> <a id="36131" class="Comment">-- : ∀ {m n} → m ⊓ n ≡ n → n ≤ m</a>
<a id="36166" class="Symbol">;</a> <a id="36168" href="Algebra.Construct.NaturalChoice.MinOp.html#5562" class="Function">x⊓y≈x⇒x≤y</a> <a id="36178" class="Symbol">to</a> <a id="36181" class="Function">m⊓n≡m⇒m≤n</a> <a id="36194" class="Comment">-- : ∀ {m n} → m ⊓ n ≡ m → m ≤ n</a>
<a id="36229" class="Symbol">;</a> <a id="36231" href="Algebra.Construct.NaturalChoice.MinOp.html#1304" class="Function">x⊓y≤x</a> <a id="36241" class="Symbol">to</a> <a id="36244" class="Function">m⊓n≤m</a> <a id="36257" class="Comment">-- : ∀ m n → m ⊓ n ≤ m</a>
<a id="36282" class="Symbol">;</a> <a id="36284" href="Algebra.Construct.NaturalChoice.MinOp.html#1469" class="Function">x⊓y≤y</a> <a id="36294" class="Symbol">to</a> <a id="36297" class="Function">m⊓n≤n</a> <a id="36310" class="Comment">-- : ∀ m n → m ⊓ n ≤ n</a>
<a id="36335" class="Symbol">;</a> <a id="36337" href="Algebra.Construct.NaturalChoice.MinOp.html#6307" class="Function">x≤y⇒x⊓z≤y</a> <a id="36347" class="Symbol">to</a> <a id="36350" class="Function">m≤n⇒m⊓o≤n</a> <a id="36363" class="Comment">-- : ∀ {m n} o → m ≤ n → m ⊓ o ≤ n</a>
<a id="36400" class="Symbol">;</a> <a id="36402" href="Algebra.Construct.NaturalChoice.MinOp.html#6390" class="Function">x≤y⇒z⊓x≤y</a> <a id="36412" class="Symbol">to</a> <a id="36415" class="Function">m≤n⇒o⊓m≤n</a> <a id="36428" class="Comment">-- : ∀ {m n} o → m ≤ n → o ⊓ m ≤ n</a>
<a id="36465" class="Symbol">;</a> <a id="36467" href="Algebra.Construct.NaturalChoice.MinOp.html#6473" class="Function">x≤y⊓z⇒x≤y</a> <a id="36477" class="Symbol">to</a> <a id="36480" class="Function">m≤n⊓o⇒m≤n</a> <a id="36493" class="Comment">-- : ∀ {m} n o → m ≤ n ⊓ o → m ≤ n</a>
<a id="36530" class="Symbol">;</a> <a id="36532" href="Algebra.Construct.NaturalChoice.MinOp.html#6562" class="Function">x≤y⊓z⇒x≤z</a> <a id="36542" class="Symbol">to</a> <a id="36545" class="Function">m≤n⊓o⇒m≤o</a> <a id="36558" class="Comment">-- : ∀ {m} n o → m ≤ n ⊓ o → m ≤ o</a>
<a id="36596" class="Symbol">;</a> <a id="36598" href="Algebra.Construct.NaturalChoice.MaxOp.html#1989" class="Function">x⊔y≈y⇒x≤y</a> <a id="36608" class="Symbol">to</a> <a id="36611" class="Function">m⊔n≡n⇒m≤n</a> <a id="36624" class="Comment">-- : ∀ {m n} → m ⊔ n ≡ n → m ≤ n</a>
<a id="36659" class="Symbol">;</a> <a id="36661" href="Algebra.Construct.NaturalChoice.MaxOp.html#2017" class="Function">x⊔y≈x⇒y≤x</a> <a id="36671" class="Symbol">to</a> <a id="36674" class="Function">m⊔n≡m⇒n≤m</a> <a id="36687" class="Comment">-- : ∀ {m n} → m ⊔ n ≡ m → n ≤ m</a>
<a id="36722" class="Symbol">;</a> <a id="36724" href="Algebra.Construct.NaturalChoice.MaxOp.html#2045" class="Function">x≤x⊔y</a> <a id="36734" class="Symbol">to</a> <a id="36737" class="Function">m≤m⊔n</a> <a id="36750" class="Comment">-- : ∀ m n → m ≤ m ⊔ n</a>
<a id="36775" class="Symbol">;</a> <a id="36777" href="Algebra.Construct.NaturalChoice.MaxOp.html#2069" class="Function">x≤y⊔x</a> <a id="36787" class="Symbol">to</a> <a id="36790" class="Function">m≤n⊔m</a> <a id="36803" class="Comment">-- : ∀ m n → m ≤ n ⊔ m</a>
<a id="36828" class="Symbol">;</a> <a id="36830" href="Algebra.Construct.NaturalChoice.MaxOp.html#2093" class="Function">x≤y⇒x≤y⊔z</a> <a id="36840" class="Symbol">to</a> <a id="36843" class="Function">m≤n⇒m≤n⊔o</a> <a id="36856" class="Comment">-- : ∀ {m n} o → m ≤ n → m ≤ n ⊔ o</a>
<a id="36893" class="Symbol">;</a> <a id="36895" href="Algebra.Construct.NaturalChoice.MaxOp.html#2121" class="Function">x≤y⇒x≤z⊔y</a> <a id="36905" class="Symbol">to</a> <a id="36908" class="Function">m≤n⇒m≤o⊔n</a> <a id="36921" class="Comment">-- : ∀ {m n} o → m ≤ n → m ≤ o ⊔ n</a>
<a id="36958" class="Symbol">;</a> <a id="36960" href="Algebra.Construct.NaturalChoice.MaxOp.html#2149" class="Function">x⊔y≤z⇒x≤z</a> <a id="36970" class="Symbol">to</a> <a id="36973" class="Function">m⊔n≤o⇒m≤o</a> <a id="36986" class="Comment">-- : ∀ m n {o} → m ⊔ n ≤ o → m ≤ o</a>
<a id="37023" class="Symbol">;</a> <a id="37025" href="Algebra.Construct.NaturalChoice.MaxOp.html#2177" class="Function">x⊔y≤z⇒y≤z</a> <a id="37035" class="Symbol">to</a> <a id="37038" class="Function">m⊔n≤o⇒n≤o</a> <a id="37051" class="Comment">-- : ∀ m n {o} → m ⊔ n ≤ o → n ≤ o</a>
<a id="37089" class="Symbol">;</a> <a id="37091" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#4551" class="Function">x⊓y≤x⊔y</a> <a id="37101" class="Symbol">to</a> <a id="37104" class="Function">m⊓n≤m⊔n</a> <a id="37117" class="Comment">-- : ∀ m n → m ⊓ n ≤ m ⊔ n</a>
<a id="37146" class="Symbol">)</a>
<a id="37149" class="Keyword">open</a> <a id="37154" href="Data.Nat.Properties.html#33280" class="Module">⊓-⊔-latticeProperties</a> <a id="37176" class="Keyword">public</a>
<a id="37185" class="Keyword">using</a>
<a id="37193" class="Symbol">(</a> <a id="37195" href="Algebra.Lattice.Construct.NaturalChoice.MinOp.html#832" class="Function">⊓-isSemilattice</a> <a id="37221" class="Comment">-- : IsSemilattice _⊓_</a>
<a id="37246" class="Symbol">;</a> <a id="37248" href="Algebra.Lattice.Construct.NaturalChoice.MaxOp.html#721" class="Function">⊔-isSemilattice</a> <a id="37274" class="Comment">-- : IsSemilattice _⊔_</a>
<a id="37299" class="Symbol">;</a> <a id="37301" href="Algebra.Lattice.Construct.NaturalChoice.MinMaxOp.html#1184" class="Function">⊔-⊓-isLattice</a> <a id="37327" class="Comment">-- : IsLattice _⊔_ _⊓_</a>
<a id="37352" class="Symbol">;</a> <a id="37354" href="Algebra.Lattice.Construct.NaturalChoice.MinMaxOp.html#1479" class="Function">⊓-⊔-isLattice</a> <a id="37380" class="Comment">-- : IsLattice _⊓_ _⊔_</a>
<a id="37405" class="Symbol">;</a> <a id="37407" href="Algebra.Lattice.Construct.NaturalChoice.MinMaxOp.html#1967" class="Function">⊔-⊓-isDistributiveLattice</a> <a id="37433" class="Comment">-- : IsDistributiveLattice _⊔_ _⊓_</a>
<a id="37470" class="Symbol">;</a> <a id="37472" href="Algebra.Lattice.Construct.NaturalChoice.MinMaxOp.html#1774" class="Function">⊓-⊔-isDistributiveLattice</a> <a id="37498" class="Comment">-- : IsDistributiveLattice _⊓_ _⊔_</a>
<a id="37536" class="Symbol">;</a> <a id="37538" href="Algebra.Lattice.Construct.NaturalChoice.MinOp.html#1025" class="Function">⊓-semilattice</a> <a id="37564" class="Comment">-- : Semilattice _ _</a>
<a id="37587" class="Symbol">;</a> <a id="37589" href="Algebra.Lattice.Construct.NaturalChoice.MaxOp.html#771" class="Function">⊔-semilattice</a> <a id="37615" class="Comment">-- : Semilattice _ _</a>
<a id="37638" class="Symbol">;</a> <a id="37640" href="Algebra.Lattice.Construct.NaturalChoice.MinMaxOp.html#2245" class="Function">⊔-⊓-lattice</a> <a id="37666" class="Comment">-- : Lattice _ _</a>
<a id="37685" class="Symbol">;</a> <a id="37687" href="Algebra.Lattice.Construct.NaturalChoice.MinMaxOp.html#2327" class="Function">⊓-⊔-lattice</a> <a id="37713" class="Comment">-- : Lattice _ _</a>
<a id="37732" class="Symbol">;</a> <a id="37734" href="Algebra.Lattice.Construct.NaturalChoice.MinMaxOp.html#2409" class="Function">⊔-⊓-distributiveLattice</a> <a id="37760" class="Comment">-- : DistributiveLattice _ _</a>
<a id="37791" class="Symbol">;</a> <a id="37793" href="Algebra.Lattice.Construct.NaturalChoice.MinMaxOp.html#2551" class="Function">⊓-⊔-distributiveLattice</a> <a id="37819" class="Comment">-- : DistributiveLattice _ _</a>
<a id="37850" class="Symbol">)</a>
<a id="37853" class="Comment">------------------------------------------------------------------------</a>
<a id="37926" class="Comment">-- Automatically derived properties of _⊓_ and _⊔_</a>
<a id="⊔-identityˡ"></a><a id="37978" href="Data.Nat.Properties.html#37978" class="Function">⊔-identityˡ</a> <a id="37990" class="Symbol">:</a> <a id="37992" href="Algebra.Definitions.html#1708" class="Function">LeftIdentity</a> <a id="38005" class="Number">0</a> <a id="38007" href="Data.Nat.Base.html#5479" class="Function Operator">_⊔_</a>
<a id="38011" href="Data.Nat.Properties.html#37978" class="Function">⊔-identityˡ</a> <a id="38023" class="Symbol">_</a> <a id="38025" class="Symbol">=</a> <a id="38027" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="⊔-identityʳ"></a><a id="38033" href="Data.Nat.Properties.html#38033" class="Function">⊔-identityʳ</a> <a id="38045" class="Symbol">:</a> <a id="38047" href="Algebra.Definitions.html#1781" class="Function">RightIdentity</a> <a id="38061" class="Number">0</a> <a id="38063" href="Data.Nat.Base.html#5479" class="Function Operator">_⊔_</a>
<a id="38067" href="Data.Nat.Properties.html#38033" class="Function">⊔-identityʳ</a> <a id="38079" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="38087" class="Symbol">=</a> <a id="38089" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="38094" href="Data.Nat.Properties.html#38033" class="Function">⊔-identityʳ</a> <a id="38106" class="Symbol">(</a><a id="38107" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="38111" href="Data.Nat.Properties.html#38111" class="Bound">n</a><a id="38112" class="Symbol">)</a> <a id="38114" class="Symbol">=</a> <a id="38116" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="⊔-identity"></a><a id="38122" href="Data.Nat.Properties.html#38122" class="Function">⊔-identity</a> <a id="38133" class="Symbol">:</a> <a id="38135" href="Algebra.Definitions.html#1856" class="Function">Identity</a> <a id="38144" class="Number">0</a> <a id="38146" href="Data.Nat.Base.html#5479" class="Function Operator">_⊔_</a>
<a id="38150" href="Data.Nat.Properties.html#38122" class="Function">⊔-identity</a> <a id="38161" class="Symbol">=</a> <a id="38163" href="Data.Nat.Properties.html#37978" class="Function">⊔-identityˡ</a> <a id="38175" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="38177" href="Data.Nat.Properties.html#38033" class="Function">⊔-identityʳ</a>
<a id="38190" class="Comment">------------------------------------------------------------------------</a>
<a id="38263" class="Comment">-- Structures</a>
<a id="⊔-0-isMonoid"></a><a id="38278" href="Data.Nat.Properties.html#38278" class="Function">⊔-0-isMonoid</a> <a id="38291" class="Symbol">:</a> <a id="38293" href="Algebra.Structures.html#3974" class="Record">IsMonoid</a> <a id="38302" href="Data.Nat.Base.html#5479" class="Function Operator">_⊔_</a> <a id="38306" class="Number">0</a>
<a id="38308" href="Data.Nat.Properties.html#38278" class="Function">⊔-0-isMonoid</a> <a id="38321" class="Symbol">=</a> <a id="38323" class="Keyword">record</a>
<a id="38332" class="Symbol">{</a> <a id="38334" href="Algebra.Structures.html#4035" class="Field">isSemigroup</a> <a id="38346" class="Symbol">=</a> <a id="38348" href="Algebra.Construct.NaturalChoice.MaxOp.html#1475" class="Function">⊔-isSemigroup</a>
<a id="38364" class="Symbol">;</a> <a id="38366" href="Algebra.Structures.html#4067" class="Field">identity</a> <a id="38378" class="Symbol">=</a> <a id="38380" href="Data.Nat.Properties.html#38122" class="Function">⊔-identity</a>
<a id="38393" class="Symbol">}</a>
<a id="⊔-0-isCommutativeMonoid"></a><a id="38396" href="Data.Nat.Properties.html#38396" class="Function">⊔-0-isCommutativeMonoid</a> <a id="38420" class="Symbol">:</a> <a id="38422" href="Algebra.Structures.html#4384" class="Record">IsCommutativeMonoid</a> <a id="38442" href="Data.Nat.Base.html#5479" class="Function Operator">_⊔_</a> <a id="38446" class="Number">0</a>
<a id="38448" href="Data.Nat.Properties.html#38396" class="Function">⊔-0-isCommutativeMonoid</a> <a id="38472" class="Symbol">=</a> <a id="38474" class="Keyword">record</a>
<a id="38483" class="Symbol">{</a> <a id="38485" href="Algebra.Structures.html#4456" class="Field">isMonoid</a> <a id="38494" class="Symbol">=</a> <a id="38496" href="Data.Nat.Properties.html#38278" class="Function">⊔-0-isMonoid</a>
<a id="38511" class="Symbol">;</a> <a id="38513" href="Algebra.Structures.html#4484" class="Field">comm</a> <a id="38522" class="Symbol">=</a> <a id="38524" href="Algebra.Construct.NaturalChoice.MaxOp.html#1204" class="Function">⊔-comm</a>
<a id="38533" class="Symbol">}</a>
<a id="38536" class="Comment">------------------------------------------------------------------------</a>
<a id="38609" class="Comment">-- Bundles</a>
<a id="⊔-0-monoid"></a><a id="38621" href="Data.Nat.Properties.html#38621" class="Function">⊔-0-monoid</a> <a id="38632" class="Symbol">:</a> <a id="38634" href="Algebra.Bundles.html#6051" class="Record">Monoid</a> <a id="38641" href="Level.html#521" class="Function">0</a> <a id="38644" href="Level.html#521" class="Function">0</a>
<a id="38647" href="Data.Nat.Properties.html#38621" class="Function">⊔-0-monoid</a> <a id="38658" class="Symbol">=</a> <a id="38660" class="Keyword">record</a>
<a id="38669" class="Symbol">{</a> <a id="38671" href="Algebra.Bundles.html#6230" class="Field">isMonoid</a> <a id="38680" class="Symbol">=</a> <a id="38682" href="Data.Nat.Properties.html#38278" class="Function">⊔-0-isMonoid</a>
<a id="38697" class="Symbol">}</a>
<a id="⊔-0-commutativeMonoid"></a><a id="38700" href="Data.Nat.Properties.html#38700" class="Function">⊔-0-commutativeMonoid</a> <a id="38722" class="Symbol">:</a> <a id="38724" href="Algebra.Bundles.html#6622" class="Record">CommutativeMonoid</a> <a id="38742" href="Level.html#521" class="Function">0</a> <a id="38745" href="Level.html#521" class="Function">0</a>
<a id="38748" href="Data.Nat.Properties.html#38700" class="Function">⊔-0-commutativeMonoid</a> <a id="38770" class="Symbol">=</a> <a id="38772" class="Keyword">record</a>
<a id="38781" class="Symbol">{</a> <a id="38783" href="Algebra.Bundles.html#6856" class="Field">isCommutativeMonoid</a> <a id="38803" class="Symbol">=</a> <a id="38805" href="Data.Nat.Properties.html#38396" class="Function">⊔-0-isCommutativeMonoid</a>
<a id="38831" class="Symbol">}</a>
<a id="38834" class="Comment">------------------------------------------------------------------------</a>
<a id="38907" class="Comment">-- Other properties of _⊔_ and _≤_/_&lt;_</a>
<a id="mono-≤-distrib-⊔"></a><a id="38947" href="Data.Nat.Properties.html#38947" class="Function">mono-≤-distrib-⊔</a> <a id="38964" class="Symbol">:</a> <a id="38966" class="Symbol"></a> <a id="38968" class="Symbol">{</a><a id="38969" href="Data.Nat.Properties.html#38969" class="Bound">f</a><a id="38970" class="Symbol">}</a> <a id="38972" class="Symbol"></a> <a id="38974" href="Data.Nat.Properties.html#38969" class="Bound">f</a> <a id="38976" href="Relation.Binary.Core.html#1577" class="Function Operator">Preserves</a> <a id="38986" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="38990" href="Relation.Binary.Core.html#1577" class="Function Operator"></a> <a id="38992" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="38996" class="Symbol"></a>
<a id="39017" class="Symbol"></a> <a id="39019" href="Data.Nat.Properties.html#39019" class="Bound">m</a> <a id="39021" href="Data.Nat.Properties.html#39021" class="Bound">n</a> <a id="39023" class="Symbol"></a> <a id="39025" href="Data.Nat.Properties.html#38969" class="Bound">f</a> <a id="39027" class="Symbol">(</a><a id="39028" href="Data.Nat.Properties.html#39019" class="Bound">m</a> <a id="39030" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="39032" href="Data.Nat.Properties.html#39021" class="Bound">n</a><a id="39033" class="Symbol">)</a> <a id="39035" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="39037" href="Data.Nat.Properties.html#38969" class="Bound">f</a> <a id="39039" href="Data.Nat.Properties.html#39019" class="Bound">m</a> <a id="39041" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="39043" href="Data.Nat.Properties.html#38969" class="Bound">f</a> <a id="39045" href="Data.Nat.Properties.html#39021" class="Bound">n</a>
<a id="39047" href="Data.Nat.Properties.html#38947" class="Function">mono-≤-distrib-⊔</a> <a id="39064" class="Symbol">{</a><a id="39065" href="Data.Nat.Properties.html#39065" class="Bound">f</a><a id="39066" class="Symbol">}</a> <a id="39068" class="Symbol">=</a> <a id="39070" href="Algebra.Construct.NaturalChoice.MaxOp.html#2377" class="Function">⊓-⊔-properties.mono-≤-distrib-⊔</a> <a id="39102" class="Symbol">(</a><a id="39103" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="39108" href="Data.Nat.Properties.html#39065" class="Bound">f</a><a id="39109" class="Symbol">)</a>
<a id="mono-≤-distrib-⊓"></a><a id="39112" href="Data.Nat.Properties.html#39112" class="Function">mono-≤-distrib-⊓</a> <a id="39129" class="Symbol">:</a> <a id="39131" class="Symbol"></a> <a id="39133" class="Symbol">{</a><a id="39134" href="Data.Nat.Properties.html#39134" class="Bound">f</a><a id="39135" class="Symbol">}</a> <a id="39137" class="Symbol"></a> <a id="39139" href="Data.Nat.Properties.html#39134" class="Bound">f</a> <a id="39141" href="Relation.Binary.Core.html#1577" class="Function Operator">Preserves</a> <a id="39151" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="39155" href="Relation.Binary.Core.html#1577" class="Function Operator"></a> <a id="39157" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="39161" class="Symbol"></a>
<a id="39182" class="Symbol"></a> <a id="39184" href="Data.Nat.Properties.html#39184" class="Bound">m</a> <a id="39186" href="Data.Nat.Properties.html#39186" class="Bound">n</a> <a id="39188" class="Symbol"></a> <a id="39190" href="Data.Nat.Properties.html#39134" class="Bound">f</a> <a id="39192" class="Symbol">(</a><a id="39193" href="Data.Nat.Properties.html#39184" class="Bound">m</a> <a id="39195" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="39197" href="Data.Nat.Properties.html#39186" class="Bound">n</a><a id="39198" class="Symbol">)</a> <a id="39200" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="39202" href="Data.Nat.Properties.html#39134" class="Bound">f</a> <a id="39204" href="Data.Nat.Properties.html#39184" class="Bound">m</a> <a id="39206" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="39208" href="Data.Nat.Properties.html#39134" class="Bound">f</a> <a id="39210" href="Data.Nat.Properties.html#39186" class="Bound">n</a>
<a id="39212" href="Data.Nat.Properties.html#39112" class="Function">mono-≤-distrib-⊓</a> <a id="39229" class="Symbol">{</a><a id="39230" href="Data.Nat.Properties.html#39230" class="Bound">f</a><a id="39231" class="Symbol">}</a> <a id="39233" class="Symbol">=</a> <a id="39235" href="Algebra.Construct.NaturalChoice.MinOp.html#5882" class="Function">⊓-⊔-properties.mono-≤-distrib-⊓</a> <a id="39267" class="Symbol">(</a><a id="39268" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="39273" href="Data.Nat.Properties.html#39230" class="Bound">f</a><a id="39274" class="Symbol">)</a>
<a id="antimono-≤-distrib-⊓"></a><a id="39277" href="Data.Nat.Properties.html#39277" class="Function">antimono-≤-distrib-⊓</a> <a id="39298" class="Symbol">:</a> <a id="39300" class="Symbol"></a> <a id="39302" class="Symbol">{</a><a id="39303" href="Data.Nat.Properties.html#39303" class="Bound">f</a><a id="39304" class="Symbol">}</a> <a id="39306" class="Symbol"></a> <a id="39308" href="Data.Nat.Properties.html#39303" class="Bound">f</a> <a id="39310" href="Relation.Binary.Core.html#1577" class="Function Operator">Preserves</a> <a id="39320" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="39324" href="Relation.Binary.Core.html#1577" class="Function Operator"></a> <a id="39326" href="Data.Nat.Base.html#2259" class="Function Operator">_≥_</a> <a id="39330" class="Symbol"></a>
<a id="39355" class="Symbol"></a> <a id="39357" href="Data.Nat.Properties.html#39357" class="Bound">m</a> <a id="39359" href="Data.Nat.Properties.html#39359" class="Bound">n</a> <a id="39361" class="Symbol"></a> <a id="39363" href="Data.Nat.Properties.html#39303" class="Bound">f</a> <a id="39365" class="Symbol">(</a><a id="39366" href="Data.Nat.Properties.html#39357" class="Bound">m</a> <a id="39368" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="39370" href="Data.Nat.Properties.html#39359" class="Bound">n</a><a id="39371" class="Symbol">)</a> <a id="39373" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="39375" href="Data.Nat.Properties.html#39303" class="Bound">f</a> <a id="39377" href="Data.Nat.Properties.html#39357" class="Bound">m</a> <a id="39379" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="39381" href="Data.Nat.Properties.html#39303" class="Bound">f</a> <a id="39383" href="Data.Nat.Properties.html#39359" class="Bound">n</a>
<a id="39385" href="Data.Nat.Properties.html#39277" class="Function">antimono-≤-distrib-⊓</a> <a id="39406" class="Symbol">{</a><a id="39407" href="Data.Nat.Properties.html#39407" class="Bound">f</a><a id="39408" class="Symbol">}</a> <a id="39410" class="Symbol">=</a> <a id="39412" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#3653" class="Function">⊓-⊔-properties.antimono-≤-distrib-⊓</a> <a id="39448" class="Symbol">(</a><a id="39449" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="39454" href="Data.Nat.Properties.html#39407" class="Bound">f</a><a id="39455" class="Symbol">)</a>
<a id="antimono-≤-distrib-⊔"></a><a id="39458" href="Data.Nat.Properties.html#39458" class="Function">antimono-≤-distrib-⊔</a> <a id="39479" class="Symbol">:</a> <a id="39481" class="Symbol"></a> <a id="39483" class="Symbol">{</a><a id="39484" href="Data.Nat.Properties.html#39484" class="Bound">f</a><a id="39485" class="Symbol">}</a> <a id="39487" class="Symbol"></a> <a id="39489" href="Data.Nat.Properties.html#39484" class="Bound">f</a> <a id="39491" href="Relation.Binary.Core.html#1577" class="Function Operator">Preserves</a> <a id="39501" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="39505" href="Relation.Binary.Core.html#1577" class="Function Operator"></a> <a id="39507" href="Data.Nat.Base.html#2259" class="Function Operator">_≥_</a> <a id="39511" class="Symbol"></a>
<a id="39536" class="Symbol"></a> <a id="39538" href="Data.Nat.Properties.html#39538" class="Bound">m</a> <a id="39540" href="Data.Nat.Properties.html#39540" class="Bound">n</a> <a id="39542" class="Symbol"></a> <a id="39544" href="Data.Nat.Properties.html#39484" class="Bound">f</a> <a id="39546" class="Symbol">(</a><a id="39547" href="Data.Nat.Properties.html#39538" class="Bound">m</a> <a id="39549" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="39551" href="Data.Nat.Properties.html#39540" class="Bound">n</a><a id="39552" class="Symbol">)</a> <a id="39554" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="39556" href="Data.Nat.Properties.html#39484" class="Bound">f</a> <a id="39558" href="Data.Nat.Properties.html#39538" class="Bound">m</a> <a id="39560" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="39562" href="Data.Nat.Properties.html#39484" class="Bound">f</a> <a id="39564" href="Data.Nat.Properties.html#39540" class="Bound">n</a>
<a id="39566" href="Data.Nat.Properties.html#39458" class="Function">antimono-≤-distrib-⊔</a> <a id="39587" class="Symbol">{</a><a id="39588" href="Data.Nat.Properties.html#39588" class="Bound">f</a><a id="39589" class="Symbol">}</a> <a id="39591" class="Symbol">=</a> <a id="39593" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#4102" class="Function">⊓-⊔-properties.antimono-≤-distrib-⊔</a> <a id="39629" class="Symbol">(</a><a id="39630" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="39635" href="Data.Nat.Properties.html#39588" class="Bound">f</a><a id="39636" class="Symbol">)</a>
<a id="m&lt;n⇒m&lt;n⊔o"></a><a id="39639" href="Data.Nat.Properties.html#39639" class="Function">m&lt;n⇒m&lt;n⊔o</a> <a id="39649" class="Symbol">:</a> <a id="39651" class="Symbol"></a> <a id="39653" href="Data.Nat.Properties.html#39653" class="Bound">o</a> <a id="39655" class="Symbol"></a> <a id="39657" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="39659" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="39661" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="39663" class="Symbol"></a> <a id="39665" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="39667" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="39669" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="39671" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="39673" href="Data.Nat.Properties.html#39653" class="Bound">o</a>
<a id="39675" href="Data.Nat.Properties.html#39639" class="Function">m&lt;n⇒m&lt;n⊔o</a> <a id="39685" class="Symbol">=</a> <a id="39687" href="Data.Nat.Properties.html#36843" class="Function">m≤n⇒m≤n⊔o</a>
<a id="m&lt;n⇒m&lt;o⊔n"></a><a id="39698" href="Data.Nat.Properties.html#39698" class="Function">m&lt;n⇒m&lt;o⊔n</a> <a id="39708" class="Symbol">:</a> <a id="39710" class="Symbol"></a> <a id="39712" href="Data.Nat.Properties.html#39712" class="Bound">o</a> <a id="39714" class="Symbol"></a> <a id="39716" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="39718" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="39720" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="39722" class="Symbol"></a> <a id="39724" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="39726" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="39728" href="Data.Nat.Properties.html#39712" class="Bound">o</a> <a id="39730" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="39732" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="39734" href="Data.Nat.Properties.html#39698" class="Function">m&lt;n⇒m&lt;o⊔n</a> <a id="39744" class="Symbol">=</a> <a id="39746" href="Data.Nat.Properties.html#36908" class="Function">m≤n⇒m≤o⊔n</a>
<a id="m⊔n&lt;o⇒m&lt;o"></a><a id="39757" href="Data.Nat.Properties.html#39757" class="Function">m⊔n&lt;o⇒m&lt;o</a> <a id="39767" class="Symbol">:</a> <a id="39769" class="Symbol"></a> <a id="39771" href="Data.Nat.Properties.html#39771" class="Bound">m</a> <a id="39773" href="Data.Nat.Properties.html#39773" class="Bound">n</a> <a id="39775" class="Symbol">{</a><a id="39776" href="Data.Nat.Properties.html#39776" class="Bound">o</a><a id="39777" class="Symbol">}</a> <a id="39779" class="Symbol"></a> <a id="39781" href="Data.Nat.Properties.html#39771" class="Bound">m</a> <a id="39783" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="39785" href="Data.Nat.Properties.html#39773" class="Bound">n</a> <a id="39787" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="39789" href="Data.Nat.Properties.html#39776" class="Bound">o</a> <a id="39791" class="Symbol"></a> <a id="39793" href="Data.Nat.Properties.html#39771" class="Bound">m</a> <a id="39795" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="39797" href="Data.Nat.Properties.html#39776" class="Bound">o</a>
<a id="39799" href="Data.Nat.Properties.html#39757" class="Function">m⊔n&lt;o⇒m&lt;o</a> <a id="39809" href="Data.Nat.Properties.html#39809" class="Bound">m</a> <a id="39811" href="Data.Nat.Properties.html#39811" class="Bound">n</a> <a id="39813" href="Data.Nat.Properties.html#39813" class="Bound">m⊔n&lt;o</a> <a id="39819" class="Symbol">=</a> <a id="39821" href="Data.Nat.Properties.html#10083" class="Function">≤-&lt;-trans</a> <a id="39831" class="Symbol">(</a><a id="39832" href="Data.Nat.Properties.html#36737" class="Function">m≤m⊔n</a> <a id="39838" href="Data.Nat.Properties.html#39809" class="Bound">m</a> <a id="39840" href="Data.Nat.Properties.html#39811" class="Bound">n</a><a id="39841" class="Symbol">)</a> <a id="39843" href="Data.Nat.Properties.html#39813" class="Bound">m⊔n&lt;o</a>
<a id="m⊔n&lt;o⇒n&lt;o"></a><a id="39850" href="Data.Nat.Properties.html#39850" class="Function">m⊔n&lt;o⇒n&lt;o</a> <a id="39860" class="Symbol">:</a> <a id="39862" class="Symbol"></a> <a id="39864" href="Data.Nat.Properties.html#39864" class="Bound">m</a> <a id="39866" href="Data.Nat.Properties.html#39866" class="Bound">n</a> <a id="39868" class="Symbol">{</a><a id="39869" href="Data.Nat.Properties.html#39869" class="Bound">o</a><a id="39870" class="Symbol">}</a> <a id="39872" class="Symbol"></a> <a id="39874" href="Data.Nat.Properties.html#39864" class="Bound">m</a> <a id="39876" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="39878" href="Data.Nat.Properties.html#39866" class="Bound">n</a> <a id="39880" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="39882" href="Data.Nat.Properties.html#39869" class="Bound">o</a> <a id="39884" class="Symbol"></a> <a id="39886" href="Data.Nat.Properties.html#39866" class="Bound">n</a> <a id="39888" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="39890" href="Data.Nat.Properties.html#39869" class="Bound">o</a>
<a id="39892" href="Data.Nat.Properties.html#39850" class="Function">m⊔n&lt;o⇒n&lt;o</a> <a id="39902" href="Data.Nat.Properties.html#39902" class="Bound">m</a> <a id="39904" href="Data.Nat.Properties.html#39904" class="Bound">n</a> <a id="39906" href="Data.Nat.Properties.html#39906" class="Bound">m⊔n&lt;o</a> <a id="39912" class="Symbol">=</a> <a id="39914" href="Data.Nat.Properties.html#10083" class="Function">≤-&lt;-trans</a> <a id="39924" class="Symbol">(</a><a id="39925" href="Data.Nat.Properties.html#36790" class="Function">m≤n⊔m</a> <a id="39931" href="Data.Nat.Properties.html#39902" class="Bound">m</a> <a id="39933" href="Data.Nat.Properties.html#39904" class="Bound">n</a><a id="39934" class="Symbol">)</a> <a id="39936" href="Data.Nat.Properties.html#39906" class="Bound">m⊔n&lt;o</a>
<a id="⊔-mono-&lt;"></a><a id="39943" href="Data.Nat.Properties.html#39943" class="Function">⊔-mono-&lt;</a> <a id="39952" class="Symbol">:</a> <a id="39954" href="Data.Nat.Base.html#5479" class="Function Operator">_⊔_</a> <a id="39958" href="Relation.Binary.Core.html#1703" class="Function Operator">Preserves₂</a> <a id="39969" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="39973" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="39975" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="39979" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="39981" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a>
<a id="39985" href="Data.Nat.Properties.html#39943" class="Function">⊔-mono-&lt;</a> <a id="39994" class="Symbol">=</a> <a id="39996" href="Algebra.Construct.NaturalChoice.MaxOp.html#2289" class="Function">⊔-mono-≤</a>
<a id="⊔-pres-&lt;m"></a><a id="40006" href="Data.Nat.Properties.html#40006" class="Function">⊔-pres-&lt;m</a> <a id="40016" class="Symbol">:</a> <a id="40018" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="40020" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="40022" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="40024" class="Symbol"></a> <a id="40026" href="Data.Nat.Properties.html#1962" class="Generalizable">o</a> <a id="40028" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="40030" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="40032" class="Symbol"></a> <a id="40034" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="40036" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="40038" href="Data.Nat.Properties.html#1962" class="Generalizable">o</a> <a id="40040" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="40042" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a>
<a id="40044" href="Data.Nat.Properties.html#40006" class="Function">⊔-pres-&lt;m</a> <a id="40054" class="Symbol">{</a><a id="40055" class="Argument">m</a> <a id="40057" class="Symbol">=</a> <a id="40059" href="Data.Nat.Properties.html#40059" class="Bound">m</a><a id="40060" class="Symbol">}</a> <a id="40062" href="Data.Nat.Properties.html#40062" class="Bound">n&lt;m</a> <a id="40066" href="Data.Nat.Properties.html#40066" class="Bound">o&lt;m</a> <a id="40070" class="Symbol">=</a> <a id="40072" href="Relation.Binary.PropositionalEquality.Core.html#1808" class="Function">subst</a> <a id="40078" class="Symbol">(_</a> <a id="40081" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;_</a><a id="40083" class="Symbol">)</a> <a id="40085" class="Symbol">(</a><a id="40086" href="Algebra.Construct.NaturalChoice.MaxOp.html#1120" class="Function">⊔-idem</a> <a id="40093" href="Data.Nat.Properties.html#40059" class="Bound">m</a><a id="40094" class="Symbol">)</a> <a id="40096" class="Symbol">(</a><a id="40097" href="Data.Nat.Properties.html#39943" class="Function">⊔-mono-&lt;</a> <a id="40106" href="Data.Nat.Properties.html#40062" class="Bound">n&lt;m</a> <a id="40110" href="Data.Nat.Properties.html#40066" class="Bound">o&lt;m</a><a id="40113" class="Symbol">)</a>
<a id="40116" class="Comment">------------------------------------------------------------------------</a>
<a id="40189" class="Comment">-- Other properties of _⊔_ and _+_</a>
<a id="+-distribˡ-⊔"></a><a id="40225" href="Data.Nat.Properties.html#40225" class="Function">+-distribˡ-⊔</a> <a id="40238" class="Symbol">:</a> <a id="40240" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a> <a id="40244" href="Algebra.Definitions.html#3155" class="Function Operator">DistributesOverˡ</a> <a id="40261" href="Data.Nat.Base.html#5479" class="Function Operator">_⊔_</a>
<a id="40265" href="Data.Nat.Properties.html#40225" class="Function">+-distribˡ-⊔</a> <a id="40278" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="40286" href="Data.Nat.Properties.html#40286" class="Bound">n</a> <a id="40288" href="Data.Nat.Properties.html#40288" class="Bound">o</a> <a id="40290" class="Symbol">=</a> <a id="40292" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="40297" href="Data.Nat.Properties.html#40225" class="Function">+-distribˡ-⊔</a> <a id="40310" class="Symbol">(</a><a id="40311" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="40315" href="Data.Nat.Properties.html#40315" class="Bound">m</a><a id="40316" class="Symbol">)</a> <a id="40318" href="Data.Nat.Properties.html#40318" class="Bound">n</a> <a id="40320" href="Data.Nat.Properties.html#40320" class="Bound">o</a> <a id="40322" class="Symbol">=</a> <a id="40324" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="40329" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="40333" class="Symbol">(</a><a id="40334" href="Data.Nat.Properties.html#40225" class="Function">+-distribˡ-⊔</a> <a id="40347" href="Data.Nat.Properties.html#40315" class="Bound">m</a> <a id="40349" href="Data.Nat.Properties.html#40318" class="Bound">n</a> <a id="40351" href="Data.Nat.Properties.html#40320" class="Bound">o</a><a id="40352" class="Symbol">)</a>
<a id="+-distribʳ-⊔"></a><a id="40355" href="Data.Nat.Properties.html#40355" class="Function">+-distribʳ-⊔</a> <a id="40368" class="Symbol">:</a> <a id="40370" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a> <a id="40374" href="Algebra.Definitions.html#3274" class="Function Operator">DistributesOverʳ</a> <a id="40391" href="Data.Nat.Base.html#5479" class="Function Operator">_⊔_</a>
<a id="40395" href="Data.Nat.Properties.html#40355" class="Function">+-distribʳ-⊔</a> <a id="40408" class="Symbol">=</a> <a id="40410" href="Algebra.Consequences.Propositional.html#3194" class="Function">comm∧distrˡ⇒distrʳ</a> <a id="40429" href="Data.Nat.Properties.html#14883" class="Function">+-comm</a> <a id="40436" href="Data.Nat.Properties.html#40225" class="Function">+-distribˡ-⊔</a>
<a id="+-distrib-⊔"></a><a id="40450" href="Data.Nat.Properties.html#40450" class="Function">+-distrib-⊔</a> <a id="40462" class="Symbol">:</a> <a id="40464" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a> <a id="40468" href="Algebra.Definitions.html#3393" class="Function Operator">DistributesOver</a> <a id="40484" href="Data.Nat.Base.html#5479" class="Function Operator">_⊔_</a>
<a id="40488" href="Data.Nat.Properties.html#40450" class="Function">+-distrib-⊔</a> <a id="40500" class="Symbol">=</a> <a id="40502" href="Data.Nat.Properties.html#40225" class="Function">+-distribˡ-⊔</a> <a id="40515" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="40517" href="Data.Nat.Properties.html#40355" class="Function">+-distribʳ-⊔</a>
<a id="m⊔n≤m+n"></a><a id="40531" href="Data.Nat.Properties.html#40531" class="Function">m⊔n≤m+n</a> <a id="40539" class="Symbol">:</a> <a id="40541" class="Symbol"></a> <a id="40543" href="Data.Nat.Properties.html#40543" class="Bound">m</a> <a id="40545" href="Data.Nat.Properties.html#40545" class="Bound">n</a> <a id="40547" class="Symbol"></a> <a id="40549" href="Data.Nat.Properties.html#40543" class="Bound">m</a> <a id="40551" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="40553" href="Data.Nat.Properties.html#40545" class="Bound">n</a> <a id="40555" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="40557" href="Data.Nat.Properties.html#40543" class="Bound">m</a> <a id="40559" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="40561" href="Data.Nat.Properties.html#40545" class="Bound">n</a>
<a id="40563" href="Data.Nat.Properties.html#40531" class="Function">m⊔n≤m+n</a> <a id="40571" href="Data.Nat.Properties.html#40571" class="Bound">m</a> <a id="40573" href="Data.Nat.Properties.html#40573" class="Bound">n</a> <a id="40575" class="Keyword">with</a> <a id="40580" href="Algebra.Construct.NaturalChoice.MaxOp.html#1148" class="Function">⊔-sel</a> <a id="40586" href="Data.Nat.Properties.html#40571" class="Bound">m</a> <a id="40588" href="Data.Nat.Properties.html#40573" class="Bound">n</a>
<a id="40590" class="Symbol">...</a> <a id="40594" class="Symbol">|</a> <a id="40596" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a> <a id="40601" href="Data.Nat.Properties.html#40601" class="Bound">m⊔n≡m</a> <a id="40607" class="Keyword">rewrite</a> <a id="40615" href="Data.Nat.Properties.html#40601" class="Bound">m⊔n≡m</a> <a id="40621" class="Symbol">=</a> <a id="40623" href="Data.Nat.Properties.html#18419" class="Function">m≤m+n</a> <a id="40629" class="Bound">m</a> <a id="40631" class="Bound">n</a>
<a id="40633" class="Symbol">...</a> <a id="40637" class="Symbol">|</a> <a id="40639" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a> <a id="40644" href="Data.Nat.Properties.html#40644" class="Bound">m⊔n≡n</a> <a id="40650" class="Keyword">rewrite</a> <a id="40658" href="Data.Nat.Properties.html#40644" class="Bound">m⊔n≡n</a> <a id="40664" class="Symbol">=</a> <a id="40666" href="Data.Nat.Properties.html#18502" class="Function">m≤n+m</a> <a id="40672" class="Bound">n</a> <a id="40674" class="Bound">m</a>
<a id="40677" class="Comment">------------------------------------------------------------------------</a>
<a id="40750" class="Comment">-- Other properties of _⊔_ and _*_</a>
<a id="*-distribˡ-⊔"></a><a id="40786" href="Data.Nat.Properties.html#40786" class="Function">*-distribˡ-⊔</a> <a id="40799" class="Symbol">:</a> <a id="40801" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a> <a id="40805" href="Algebra.Definitions.html#3155" class="Function Operator">DistributesOverˡ</a> <a id="40822" href="Data.Nat.Base.html#5479" class="Function Operator">_⊔_</a>
<a id="40826" href="Data.Nat.Properties.html#40786" class="Function">*-distribˡ-⊔</a> <a id="40839" href="Data.Nat.Properties.html#40839" class="Bound">m</a> <a id="40841" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="40846" href="Data.Nat.Properties.html#40846" class="Bound">o</a> <a id="40848" class="Symbol">=</a> <a id="40850" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="40854" class="Symbol">(</a><a id="40855" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="40860" class="Symbol">(</a><a id="40861" href="Data.Nat.Base.html#5479" class="Function Operator">_⊔</a> <a id="40864" href="Data.Nat.Properties.html#40839" class="Bound">m</a> <a id="40866" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="40868" href="Data.Nat.Properties.html#40846" class="Bound">o</a><a id="40869" class="Symbol">)</a> <a id="40871" class="Symbol">(</a><a id="40872" href="Data.Nat.Properties.html#21295" class="Function">*-zeroʳ</a> <a id="40880" href="Data.Nat.Properties.html#40839" class="Bound">m</a><a id="40881" class="Symbol">))</a>
<a id="40884" href="Data.Nat.Properties.html#40786" class="Function">*-distribˡ-⊔</a> <a id="40897" href="Data.Nat.Properties.html#40897" class="Bound">m</a> <a id="40899" class="Symbol">(</a><a id="40900" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="40904" href="Data.Nat.Properties.html#40904" class="Bound">n</a><a id="40905" class="Symbol">)</a> <a id="40907" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="40912" class="Symbol">=</a> <a id="40914" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a>
<a id="40931" href="Data.Nat.Properties.html#40897" class="Bound">m</a> <a id="40933" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="40935" class="Symbol">(</a><a id="40936" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="40940" href="Data.Nat.Properties.html#40904" class="Bound">n</a> <a id="40942" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="40944" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="40948" class="Symbol">)</a> <a id="40958" href="Relation.Binary.Reasoning.Syntax.html#11017" class="Function">≡⟨⟩</a>
<a id="40964" href="Data.Nat.Properties.html#40897" class="Bound">m</a> <a id="40966" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="40968" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="40972" href="Data.Nat.Properties.html#40904" class="Bound">n</a> <a id="40991" href="Relation.Binary.Reasoning.Syntax.html#11078" class="Function">≡⟨</a> <a id="40994" href="Data.Nat.Properties.html#38033" class="Function">⊔-identityʳ</a> <a id="41006" class="Symbol">(</a><a id="41007" href="Data.Nat.Properties.html#40897" class="Bound">m</a> <a id="41009" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="41011" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="41015" href="Data.Nat.Properties.html#40904" class="Bound">n</a><a id="41016" class="Symbol">)</a> <a id="41018" href="Relation.Binary.Reasoning.Syntax.html#11078" class="Function"></a>
<a id="41022" href="Data.Nat.Properties.html#40897" class="Bound">m</a> <a id="41024" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="41026" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="41030" href="Data.Nat.Properties.html#40904" class="Bound">n</a> <a id="41032" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="41034" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="41049" href="Relation.Binary.Reasoning.Syntax.html#11078" class="Function">≡⟨</a> <a id="41052" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="41057" class="Symbol">(</a><a id="41058" href="Data.Nat.Properties.html#40897" class="Bound">m</a> <a id="41060" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="41062" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="41066" href="Data.Nat.Properties.html#40904" class="Bound">n</a> <a id="41068" href="Data.Nat.Base.html#5479" class="Function Operator">⊔_</a><a id="41070" class="Symbol">)</a> <a id="41072" class="Symbol">(</a><a id="41073" href="Data.Nat.Properties.html#21295" class="Function">*-zeroʳ</a> <a id="41081" href="Data.Nat.Properties.html#40897" class="Bound">m</a><a id="41082" class="Symbol">)</a> <a id="41084" href="Relation.Binary.Reasoning.Syntax.html#11078" class="Function"></a>
<a id="41088" href="Data.Nat.Properties.html#40897" class="Bound">m</a> <a id="41090" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="41092" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="41096" href="Data.Nat.Properties.html#40904" class="Bound">n</a> <a id="41098" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="41100" href="Data.Nat.Properties.html#40897" class="Bound">m</a> <a id="41102" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="41104" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="41115" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="41117" href="Data.Nat.Properties.html#40786" class="Function">*-distribˡ-⊔</a> <a id="41130" href="Data.Nat.Properties.html#41130" class="Bound">m</a> <a id="41132" class="Symbol">(</a><a id="41133" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="41137" href="Data.Nat.Properties.html#41137" class="Bound">n</a><a id="41138" class="Symbol">)</a> <a id="41140" class="Symbol">(</a><a id="41141" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="41145" href="Data.Nat.Properties.html#41145" class="Bound">o</a><a id="41146" class="Symbol">)</a> <a id="41148" class="Symbol">=</a> <a id="41150" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a>
<a id="41167" href="Data.Nat.Properties.html#41130" class="Bound">m</a> <a id="41169" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="41171" class="Symbol">(</a><a id="41172" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="41176" href="Data.Nat.Properties.html#41137" class="Bound">n</a> <a id="41178" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="41180" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="41184" href="Data.Nat.Properties.html#41145" class="Bound">o</a><a id="41185" class="Symbol">)</a> <a id="41194" href="Relation.Binary.Reasoning.Syntax.html#11017" class="Function">≡⟨⟩</a>
<a id="41200" href="Data.Nat.Properties.html#41130" class="Bound">m</a> <a id="41202" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="41204" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="41208" class="Symbol">(</a><a id="41209" href="Data.Nat.Properties.html#41137" class="Bound">n</a> <a id="41211" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="41213" href="Data.Nat.Properties.html#41145" class="Bound">o</a><a id="41214" class="Symbol">)</a> <a id="41227" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="41230" href="Data.Nat.Properties.html#20447" class="Function">*-suc</a> <a id="41236" href="Data.Nat.Properties.html#41130" class="Bound">m</a> <a id="41238" class="Symbol">(</a><a id="41239" href="Data.Nat.Properties.html#41137" class="Bound">n</a> <a id="41241" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="41243" href="Data.Nat.Properties.html#41145" class="Bound">o</a><a id="41244" class="Symbol">)</a> <a id="41246" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="41250" href="Data.Nat.Properties.html#41130" class="Bound">m</a> <a id="41252" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="41254" href="Data.Nat.Properties.html#41130" class="Bound">m</a> <a id="41256" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="41258" class="Symbol">(</a><a id="41259" href="Data.Nat.Properties.html#41137" class="Bound">n</a> <a id="41261" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="41263" href="Data.Nat.Properties.html#41145" class="Bound">o</a><a id="41264" class="Symbol">)</a> <a id="41277" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="41280" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="41285" class="Symbol">(</a><a id="41286" href="Data.Nat.Properties.html#41130" class="Bound">m</a> <a id="41288" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+_</a><a id="41290" class="Symbol">)</a> <a id="41292" class="Symbol">(</a><a id="41293" href="Data.Nat.Properties.html#40786" class="Function">*-distribˡ-⊔</a> <a id="41306" href="Data.Nat.Properties.html#41130" class="Bound">m</a> <a id="41308" href="Data.Nat.Properties.html#41137" class="Bound">n</a> <a id="41310" href="Data.Nat.Properties.html#41145" class="Bound">o</a><a id="41311" class="Symbol">)</a> <a id="41313" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="41317" href="Data.Nat.Properties.html#41130" class="Bound">m</a> <a id="41319" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="41321" class="Symbol">(</a><a id="41322" href="Data.Nat.Properties.html#41130" class="Bound">m</a> <a id="41324" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="41326" href="Data.Nat.Properties.html#41137" class="Bound">n</a> <a id="41328" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="41330" href="Data.Nat.Properties.html#41130" class="Bound">m</a> <a id="41332" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="41334" href="Data.Nat.Properties.html#41145" class="Bound">o</a><a id="41335" class="Symbol">)</a> <a id="41344" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="41347" href="Data.Nat.Properties.html#40225" class="Function">+-distribˡ-⊔</a> <a id="41360" href="Data.Nat.Properties.html#41130" class="Bound">m</a> <a id="41362" class="Symbol">(</a><a id="41363" href="Data.Nat.Properties.html#41130" class="Bound">m</a> <a id="41365" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="41367" href="Data.Nat.Properties.html#41137" class="Bound">n</a><a id="41368" class="Symbol">)</a> <a id="41370" class="Symbol">(</a><a id="41371" href="Data.Nat.Properties.html#41130" class="Bound">m</a> <a id="41373" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="41375" href="Data.Nat.Properties.html#41145" class="Bound">o</a><a id="41376" class="Symbol">)</a> <a id="41378" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="41382" class="Symbol">(</a><a id="41383" href="Data.Nat.Properties.html#41130" class="Bound">m</a> <a id="41385" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="41387" href="Data.Nat.Properties.html#41130" class="Bound">m</a> <a id="41389" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="41391" href="Data.Nat.Properties.html#41137" class="Bound">n</a><a id="41392" class="Symbol">)</a> <a id="41394" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="41396" class="Symbol">(</a><a id="41397" href="Data.Nat.Properties.html#41130" class="Bound">m</a> <a id="41399" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="41401" href="Data.Nat.Properties.html#41130" class="Bound">m</a> <a id="41403" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="41405" href="Data.Nat.Properties.html#41145" class="Bound">o</a><a id="41406" class="Symbol">)</a> <a id="41409" href="Relation.Binary.Reasoning.Syntax.html#11078" class="Function">≡⟨</a> <a id="41412" href="Relation.Binary.PropositionalEquality.Core.html#1395" class="Function">cong₂</a> <a id="41418" href="Data.Nat.Base.html#5479" class="Function Operator">_⊔_</a> <a id="41422" class="Symbol">(</a><a id="41423" href="Data.Nat.Properties.html#20447" class="Function">*-suc</a> <a id="41429" href="Data.Nat.Properties.html#41130" class="Bound">m</a> <a id="41431" href="Data.Nat.Properties.html#41137" class="Bound">n</a><a id="41432" class="Symbol">)</a> <a id="41434" class="Symbol">(</a><a id="41435" href="Data.Nat.Properties.html#20447" class="Function">*-suc</a> <a id="41441" href="Data.Nat.Properties.html#41130" class="Bound">m</a> <a id="41443" href="Data.Nat.Properties.html#41145" class="Bound">o</a><a id="41444" class="Symbol">)</a> <a id="41446" href="Relation.Binary.Reasoning.Syntax.html#11078" class="Function"></a>
<a id="41450" class="Symbol">(</a><a id="41451" href="Data.Nat.Properties.html#41130" class="Bound">m</a> <a id="41453" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="41455" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="41459" href="Data.Nat.Properties.html#41137" class="Bound">n</a><a id="41460" class="Symbol">)</a> <a id="41462" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="41464" class="Symbol">(</a><a id="41465" href="Data.Nat.Properties.html#41130" class="Bound">m</a> <a id="41467" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="41469" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="41473" href="Data.Nat.Properties.html#41145" class="Bound">o</a><a id="41474" class="Symbol">)</a> <a id="41477" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="*-distribʳ-⊔"></a><a id="41480" href="Data.Nat.Properties.html#41480" class="Function">*-distribʳ-⊔</a> <a id="41493" class="Symbol">:</a> <a id="41495" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a> <a id="41499" href="Algebra.Definitions.html#3274" class="Function Operator">DistributesOverʳ</a> <a id="41516" href="Data.Nat.Base.html#5479" class="Function Operator">_⊔_</a>
<a id="41520" href="Data.Nat.Properties.html#41480" class="Function">*-distribʳ-⊔</a> <a id="41533" class="Symbol">=</a> <a id="41535" href="Algebra.Consequences.Propositional.html#3194" class="Function">comm∧distrˡ⇒distrʳ</a> <a id="41554" href="Data.Nat.Properties.html#21421" class="Function">*-comm</a> <a id="41561" href="Data.Nat.Properties.html#40786" class="Function">*-distribˡ-⊔</a>
<a id="*-distrib-⊔"></a><a id="41575" href="Data.Nat.Properties.html#41575" class="Function">*-distrib-⊔</a> <a id="41587" class="Symbol">:</a> <a id="41589" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a> <a id="41593" href="Algebra.Definitions.html#3393" class="Function Operator">DistributesOver</a> <a id="41609" href="Data.Nat.Base.html#5479" class="Function Operator">_⊔_</a>
<a id="41613" href="Data.Nat.Properties.html#41575" class="Function">*-distrib-⊔</a> <a id="41625" class="Symbol">=</a> <a id="41627" href="Data.Nat.Properties.html#40786" class="Function">*-distribˡ-⊔</a> <a id="41640" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="41642" href="Data.Nat.Properties.html#41480" class="Function">*-distribʳ-⊔</a>
<a id="41656" class="Comment">------------------------------------------------------------------------</a>
<a id="41729" class="Comment">-- Properties of _⊓_</a>
<a id="41750" class="Comment">------------------------------------------------------------------------</a>
<a id="41824" class="Comment">------------------------------------------------------------------------</a>
<a id="41897" class="Comment">-- Algebraic properties</a>
<a id="⊓-zeroˡ"></a><a id="41922" href="Data.Nat.Properties.html#41922" class="Function">⊓-zeroˡ</a> <a id="41930" class="Symbol">:</a> <a id="41932" href="Algebra.Definitions.html#1942" class="Function">LeftZero</a> <a id="41941" class="Number">0</a> <a id="41943" href="Data.Nat.Base.html#5845" class="Function Operator">_⊓_</a>
<a id="41947" href="Data.Nat.Properties.html#41922" class="Function">⊓-zeroˡ</a> <a id="41955" class="Symbol">_</a> <a id="41957" class="Symbol">=</a> <a id="41959" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="⊓-zeroʳ"></a><a id="41965" href="Data.Nat.Properties.html#41965" class="Function">⊓-zeroʳ</a> <a id="41973" class="Symbol">:</a> <a id="41975" href="Algebra.Definitions.html#2007" class="Function">RightZero</a> <a id="41985" class="Number">0</a> <a id="41987" href="Data.Nat.Base.html#5845" class="Function Operator">_⊓_</a>
<a id="41991" href="Data.Nat.Properties.html#41965" class="Function">⊓-zeroʳ</a> <a id="41999" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="42007" class="Symbol">=</a> <a id="42009" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="42014" href="Data.Nat.Properties.html#41965" class="Function">⊓-zeroʳ</a> <a id="42022" class="Symbol">(</a><a id="42023" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="42027" href="Data.Nat.Properties.html#42027" class="Bound">n</a><a id="42028" class="Symbol">)</a> <a id="42030" class="Symbol">=</a> <a id="42032" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="⊓-zero"></a><a id="42038" href="Data.Nat.Properties.html#42038" class="Function">⊓-zero</a> <a id="42045" class="Symbol">:</a> <a id="42047" href="Algebra.Definitions.html#2074" class="Function">Zero</a> <a id="42052" class="Number">0</a> <a id="42054" href="Data.Nat.Base.html#5845" class="Function Operator">_⊓_</a>
<a id="42058" href="Data.Nat.Properties.html#42038" class="Function">⊓-zero</a> <a id="42065" class="Symbol">=</a> <a id="42067" href="Data.Nat.Properties.html#41922" class="Function">⊓-zeroˡ</a> <a id="42075" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="42077" href="Data.Nat.Properties.html#41965" class="Function">⊓-zeroʳ</a>
<a id="42086" class="Comment">------------------------------------------------------------------------</a>
<a id="42159" class="Comment">-- Structures</a>
<a id="⊔-⊓-isSemiringWithoutOne"></a><a id="42174" href="Data.Nat.Properties.html#42174" class="Function">⊔-⊓-isSemiringWithoutOne</a> <a id="42199" class="Symbol">:</a> <a id="42201" href="Algebra.Structures.html#8848" class="Record">IsSemiringWithoutOne</a> <a id="42222" href="Data.Nat.Base.html#5479" class="Function Operator">_⊔_</a> <a id="42226" href="Data.Nat.Base.html#5845" class="Function Operator">_⊓_</a> <a id="42230" class="Number">0</a>
<a id="42232" href="Data.Nat.Properties.html#42174" class="Function">⊔-⊓-isSemiringWithoutOne</a> <a id="42257" class="Symbol">=</a> <a id="42259" class="Keyword">record</a>
<a id="42268" class="Symbol">{</a> <a id="42270" href="Algebra.Structures.html#8924" class="Field">+-isCommutativeMonoid</a> <a id="42292" class="Symbol">=</a> <a id="42294" href="Data.Nat.Properties.html#38396" class="Function">⊔-0-isCommutativeMonoid</a>
<a id="42320" class="Symbol">;</a> <a id="42322" href="Algebra.Structures.html#8977" class="Field">*-cong</a> <a id="42344" class="Symbol">=</a> <a id="42346" href="Relation.Binary.PropositionalEquality.Core.html#1395" class="Function">cong₂</a> <a id="42352" href="Data.Nat.Base.html#5845" class="Function Operator">_⊓_</a>
<a id="42358" class="Symbol">;</a> <a id="42360" href="Algebra.Structures.html#9018" class="Field">*-assoc</a> <a id="42382" class="Symbol">=</a> <a id="42384" href="Algebra.Construct.NaturalChoice.MinOp.html#2531" class="Function">⊓-assoc</a>
<a id="42394" class="Symbol">;</a> <a id="42396" href="Algebra.Structures.html#9060" class="Field">distrib</a> <a id="42418" class="Symbol">=</a> <a id="42420" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#2082" class="Function">⊓-distrib-⊔</a>
<a id="42434" class="Symbol">;</a> <a id="42436" href="Algebra.Structures.html#9108" class="Field">zero</a> <a id="42458" class="Symbol">=</a> <a id="42460" href="Data.Nat.Properties.html#42038" class="Function">⊓-zero</a>
<a id="42469" class="Symbol">}</a>
<a id="⊔-⊓-isCommutativeSemiringWithoutOne"></a><a id="42472" href="Data.Nat.Properties.html#42472" class="Function">⊔-⊓-isCommutativeSemiringWithoutOne</a>
<a id="42510" class="Symbol">:</a> <a id="42512" href="Algebra.Structures.html#10135" class="Record">IsCommutativeSemiringWithoutOne</a> <a id="42544" href="Data.Nat.Base.html#5479" class="Function Operator">_⊔_</a> <a id="42548" href="Data.Nat.Base.html#5845" class="Function Operator">_⊓_</a> <a id="42552" class="Number">0</a>
<a id="42554" href="Data.Nat.Properties.html#42472" class="Function">⊔-⊓-isCommutativeSemiringWithoutOne</a> <a id="42590" class="Symbol">=</a> <a id="42592" class="Keyword">record</a>
<a id="42601" class="Symbol">{</a> <a id="42603" href="Algebra.Structures.html#10231" class="Field">isSemiringWithoutOne</a> <a id="42624" class="Symbol">=</a> <a id="42626" href="Data.Nat.Properties.html#42174" class="Function">⊔-⊓-isSemiringWithoutOne</a>
<a id="42653" class="Symbol">;</a> <a id="42655" href="Algebra.Structures.html#10286" class="Field">*-comm</a> <a id="42676" class="Symbol">=</a> <a id="42678" href="Algebra.Construct.NaturalChoice.MinOp.html#1732" class="Function">⊓-comm</a>
<a id="42687" class="Symbol">}</a>
<a id="42690" class="Comment">------------------------------------------------------------------------</a>
<a id="42763" class="Comment">-- Bundles</a>
<a id="⊔-⊓-commutativeSemiringWithoutOne"></a><a id="42775" href="Data.Nat.Properties.html#42775" class="Function">⊔-⊓-commutativeSemiringWithoutOne</a> <a id="42809" class="Symbol">:</a> <a id="42811" href="Algebra.Bundles.html#13576" class="Record">CommutativeSemiringWithoutOne</a> <a id="42841" href="Level.html#521" class="Function">0</a> <a id="42844" href="Level.html#521" class="Function">0</a>
<a id="42847" href="Data.Nat.Properties.html#42775" class="Function">⊔-⊓-commutativeSemiringWithoutOne</a> <a id="42881" class="Symbol">=</a> <a id="42883" class="Keyword">record</a>
<a id="42892" class="Symbol">{</a> <a id="42894" href="Algebra.Bundles.html#13935" class="Field">isCommutativeSemiringWithoutOne</a> <a id="42926" class="Symbol">=</a>
<a id="42934" href="Data.Nat.Properties.html#42472" class="Function">⊔-⊓-isCommutativeSemiringWithoutOne</a>
<a id="42972" class="Symbol">}</a>
<a id="42975" class="Comment">------------------------------------------------------------------------</a>
<a id="43048" class="Comment">-- Other properties of _⊓_ and _≤_/_&lt;_</a>
<a id="m&lt;n⇒m⊓o&lt;n"></a><a id="43088" href="Data.Nat.Properties.html#43088" class="Function">m&lt;n⇒m⊓o&lt;n</a> <a id="43098" class="Symbol">:</a> <a id="43100" class="Symbol"></a> <a id="43102" href="Data.Nat.Properties.html#43102" class="Bound">o</a> <a id="43104" class="Symbol"></a> <a id="43106" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="43108" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="43110" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="43112" class="Symbol"></a> <a id="43114" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="43116" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="43118" href="Data.Nat.Properties.html#43102" class="Bound">o</a> <a id="43120" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="43122" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="43124" href="Data.Nat.Properties.html#43088" class="Function">m&lt;n⇒m⊓o&lt;n</a> <a id="43134" href="Data.Nat.Properties.html#43134" class="Bound">o</a> <a id="43136" href="Data.Nat.Properties.html#43136" class="Bound">m&lt;n</a> <a id="43140" class="Symbol">=</a> <a id="43142" href="Data.Nat.Properties.html#10083" class="Function">≤-&lt;-trans</a> <a id="43152" class="Symbol">(</a><a id="43153" href="Data.Nat.Properties.html#36244" class="Function">m⊓n≤m</a> <a id="43159" class="Symbol">_</a> <a id="43161" href="Data.Nat.Properties.html#43134" class="Bound">o</a><a id="43162" class="Symbol">)</a> <a id="43164" href="Data.Nat.Properties.html#43136" class="Bound">m&lt;n</a>
<a id="m&lt;n⇒o⊓m&lt;n"></a><a id="43169" href="Data.Nat.Properties.html#43169" class="Function">m&lt;n⇒o⊓m&lt;n</a> <a id="43179" class="Symbol">:</a> <a id="43181" class="Symbol"></a> <a id="43183" href="Data.Nat.Properties.html#43183" class="Bound">o</a> <a id="43185" class="Symbol"></a> <a id="43187" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="43189" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="43191" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="43193" class="Symbol"></a> <a id="43195" href="Data.Nat.Properties.html#43183" class="Bound">o</a> <a id="43197" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="43199" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="43201" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="43203" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="43205" href="Data.Nat.Properties.html#43169" class="Function">m&lt;n⇒o⊓m&lt;n</a> <a id="43215" href="Data.Nat.Properties.html#43215" class="Bound">o</a> <a id="43217" href="Data.Nat.Properties.html#43217" class="Bound">m&lt;n</a> <a id="43221" class="Symbol">=</a> <a id="43223" href="Data.Nat.Properties.html#10083" class="Function">≤-&lt;-trans</a> <a id="43233" class="Symbol">(</a><a id="43234" href="Data.Nat.Properties.html#36297" class="Function">m⊓n≤n</a> <a id="43240" href="Data.Nat.Properties.html#43215" class="Bound">o</a> <a id="43242" class="Symbol">_)</a> <a id="43245" href="Data.Nat.Properties.html#43217" class="Bound">m&lt;n</a>
<a id="m&lt;n⊓o⇒m&lt;n"></a><a id="43250" href="Data.Nat.Properties.html#43250" class="Function">m&lt;n⊓o⇒m&lt;n</a> <a id="43260" class="Symbol">:</a> <a id="43262" class="Symbol"></a> <a id="43264" href="Data.Nat.Properties.html#43264" class="Bound">n</a> <a id="43266" href="Data.Nat.Properties.html#43266" class="Bound">o</a> <a id="43268" class="Symbol"></a> <a id="43270" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="43272" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="43274" href="Data.Nat.Properties.html#43264" class="Bound">n</a> <a id="43276" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="43278" href="Data.Nat.Properties.html#43266" class="Bound">o</a> <a id="43280" class="Symbol"></a> <a id="43282" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="43284" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="43286" href="Data.Nat.Properties.html#43264" class="Bound">n</a>
<a id="43288" href="Data.Nat.Properties.html#43250" class="Function">m&lt;n⊓o⇒m&lt;n</a> <a id="43298" class="Symbol">=</a> <a id="43300" href="Data.Nat.Properties.html#36480" class="Function">m≤n⊓o⇒m≤n</a>
<a id="m&lt;n⊓o⇒m&lt;o"></a><a id="43311" href="Data.Nat.Properties.html#43311" class="Function">m&lt;n⊓o⇒m&lt;o</a> <a id="43321" class="Symbol">:</a> <a id="43323" class="Symbol"></a> <a id="43325" href="Data.Nat.Properties.html#43325" class="Bound">n</a> <a id="43327" href="Data.Nat.Properties.html#43327" class="Bound">o</a> <a id="43329" class="Symbol"></a> <a id="43331" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="43333" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="43335" href="Data.Nat.Properties.html#43325" class="Bound">n</a> <a id="43337" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="43339" href="Data.Nat.Properties.html#43327" class="Bound">o</a> <a id="43341" class="Symbol"></a> <a id="43343" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="43345" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="43347" href="Data.Nat.Properties.html#43327" class="Bound">o</a>
<a id="43349" href="Data.Nat.Properties.html#43311" class="Function">m&lt;n⊓o⇒m&lt;o</a> <a id="43359" class="Symbol">=</a> <a id="43361" href="Data.Nat.Properties.html#36545" class="Function">m≤n⊓o⇒m≤o</a>
<a id="⊓-mono-&lt;"></a><a id="43372" href="Data.Nat.Properties.html#43372" class="Function">⊓-mono-&lt;</a> <a id="43381" class="Symbol">:</a> <a id="43383" href="Data.Nat.Base.html#5845" class="Function Operator">_⊓_</a> <a id="43387" href="Relation.Binary.Core.html#1703" class="Function Operator">Preserves₂</a> <a id="43398" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="43402" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="43404" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a> <a id="43408" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="43410" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;_</a>
<a id="43414" href="Data.Nat.Properties.html#43372" class="Function">⊓-mono-&lt;</a> <a id="43423" class="Symbol">=</a> <a id="43425" href="Algebra.Construct.NaturalChoice.MinOp.html#6651" class="Function">⊓-mono-≤</a>
<a id="⊓-pres-m&lt;"></a><a id="43435" href="Data.Nat.Properties.html#43435" class="Function">⊓-pres-m&lt;</a> <a id="43445" class="Symbol">:</a> <a id="43447" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="43449" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="43451" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="43453" class="Symbol"></a> <a id="43455" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="43457" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="43459" href="Data.Nat.Properties.html#1962" class="Generalizable">o</a> <a id="43461" class="Symbol"></a> <a id="43463" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="43465" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="43467" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="43469" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="43471" href="Data.Nat.Properties.html#1962" class="Generalizable">o</a>
<a id="43473" href="Data.Nat.Properties.html#43435" class="Function">⊓-pres-m&lt;</a> <a id="43483" class="Symbol">{</a><a id="43484" href="Data.Nat.Properties.html#43484" class="Bound">m</a><a id="43485" class="Symbol">}</a> <a id="43487" href="Data.Nat.Properties.html#43487" class="Bound">m&lt;n</a> <a id="43491" href="Data.Nat.Properties.html#43491" class="Bound">m&lt;o</a> <a id="43495" class="Symbol">=</a> <a id="43497" href="Relation.Binary.PropositionalEquality.Core.html#1808" class="Function">subst</a> <a id="43503" class="Symbol">(</a><a id="43504" href="Data.Nat.Base.html#1801" class="Function Operator">_&lt;</a> <a id="43507" class="Symbol">_)</a> <a id="43510" class="Symbol">(</a><a id="43511" href="Algebra.Construct.NaturalChoice.MinOp.html#3166" class="Function">⊓-idem</a> <a id="43518" href="Data.Nat.Properties.html#43484" class="Bound">m</a><a id="43519" class="Symbol">)</a> <a id="43521" class="Symbol">(</a><a id="43522" href="Data.Nat.Properties.html#43372" class="Function">⊓-mono-&lt;</a> <a id="43531" href="Data.Nat.Properties.html#43487" class="Bound">m&lt;n</a> <a id="43535" href="Data.Nat.Properties.html#43491" class="Bound">m&lt;o</a><a id="43538" class="Symbol">)</a>
<a id="43541" class="Comment">------------------------------------------------------------------------</a>
<a id="43614" class="Comment">-- Other properties of _⊓_ and _+_</a>
<a id="+-distribˡ-⊓"></a><a id="43650" href="Data.Nat.Properties.html#43650" class="Function">+-distribˡ-⊓</a> <a id="43663" class="Symbol">:</a> <a id="43665" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a> <a id="43669" href="Algebra.Definitions.html#3155" class="Function Operator">DistributesOverˡ</a> <a id="43686" href="Data.Nat.Base.html#5845" class="Function Operator">_⊓_</a>
<a id="43690" href="Data.Nat.Properties.html#43650" class="Function">+-distribˡ-⊓</a> <a id="43703" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="43711" href="Data.Nat.Properties.html#43711" class="Bound">n</a> <a id="43713" href="Data.Nat.Properties.html#43713" class="Bound">o</a> <a id="43715" class="Symbol">=</a> <a id="43717" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="43722" href="Data.Nat.Properties.html#43650" class="Function">+-distribˡ-⊓</a> <a id="43735" class="Symbol">(</a><a id="43736" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="43740" href="Data.Nat.Properties.html#43740" class="Bound">m</a><a id="43741" class="Symbol">)</a> <a id="43743" href="Data.Nat.Properties.html#43743" class="Bound">n</a> <a id="43745" href="Data.Nat.Properties.html#43745" class="Bound">o</a> <a id="43747" class="Symbol">=</a> <a id="43749" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="43754" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="43758" class="Symbol">(</a><a id="43759" href="Data.Nat.Properties.html#43650" class="Function">+-distribˡ-⊓</a> <a id="43772" href="Data.Nat.Properties.html#43740" class="Bound">m</a> <a id="43774" href="Data.Nat.Properties.html#43743" class="Bound">n</a> <a id="43776" href="Data.Nat.Properties.html#43745" class="Bound">o</a><a id="43777" class="Symbol">)</a>
<a id="+-distribʳ-⊓"></a><a id="43780" href="Data.Nat.Properties.html#43780" class="Function">+-distribʳ-⊓</a> <a id="43793" class="Symbol">:</a> <a id="43795" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a> <a id="43799" href="Algebra.Definitions.html#3274" class="Function Operator">DistributesOverʳ</a> <a id="43816" href="Data.Nat.Base.html#5845" class="Function Operator">_⊓_</a>
<a id="43820" href="Data.Nat.Properties.html#43780" class="Function">+-distribʳ-⊓</a> <a id="43833" class="Symbol">=</a> <a id="43835" href="Algebra.Consequences.Propositional.html#3194" class="Function">comm∧distrˡ⇒distrʳ</a> <a id="43854" href="Data.Nat.Properties.html#14883" class="Function">+-comm</a> <a id="43861" href="Data.Nat.Properties.html#43650" class="Function">+-distribˡ-⊓</a>
<a id="+-distrib-⊓"></a><a id="43875" href="Data.Nat.Properties.html#43875" class="Function">+-distrib-⊓</a> <a id="43887" class="Symbol">:</a> <a id="43889" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a> <a id="43893" href="Algebra.Definitions.html#3393" class="Function Operator">DistributesOver</a> <a id="43909" href="Data.Nat.Base.html#5845" class="Function Operator">_⊓_</a>
<a id="43913" href="Data.Nat.Properties.html#43875" class="Function">+-distrib-⊓</a> <a id="43925" class="Symbol">=</a> <a id="43927" href="Data.Nat.Properties.html#43650" class="Function">+-distribˡ-⊓</a> <a id="43940" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="43942" href="Data.Nat.Properties.html#43780" class="Function">+-distribʳ-⊓</a>
<a id="m⊓n≤m+n"></a><a id="43956" href="Data.Nat.Properties.html#43956" class="Function">m⊓n≤m+n</a> <a id="43964" class="Symbol">:</a> <a id="43966" class="Symbol"></a> <a id="43968" href="Data.Nat.Properties.html#43968" class="Bound">m</a> <a id="43970" href="Data.Nat.Properties.html#43970" class="Bound">n</a> <a id="43972" class="Symbol"></a> <a id="43974" href="Data.Nat.Properties.html#43968" class="Bound">m</a> <a id="43976" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="43978" href="Data.Nat.Properties.html#43970" class="Bound">n</a> <a id="43980" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="43982" href="Data.Nat.Properties.html#43968" class="Bound">m</a> <a id="43984" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="43986" href="Data.Nat.Properties.html#43970" class="Bound">n</a>
<a id="43988" href="Data.Nat.Properties.html#43956" class="Function">m⊓n≤m+n</a> <a id="43996" href="Data.Nat.Properties.html#43996" class="Bound">m</a> <a id="43998" href="Data.Nat.Properties.html#43998" class="Bound">n</a> <a id="44000" class="Keyword">with</a> <a id="44005" href="Algebra.Construct.NaturalChoice.MinOp.html#3223" class="Function">⊓-sel</a> <a id="44011" href="Data.Nat.Properties.html#43996" class="Bound">m</a> <a id="44013" href="Data.Nat.Properties.html#43998" class="Bound">n</a>
<a id="44015" class="Symbol">...</a> <a id="44019" class="Symbol">|</a> <a id="44021" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a> <a id="44026" href="Data.Nat.Properties.html#44026" class="Bound">m⊓n≡m</a> <a id="44032" class="Keyword">rewrite</a> <a id="44040" href="Data.Nat.Properties.html#44026" class="Bound">m⊓n≡m</a> <a id="44046" class="Symbol">=</a> <a id="44048" href="Data.Nat.Properties.html#18419" class="Function">m≤m+n</a> <a id="44054" class="Bound">m</a> <a id="44056" class="Bound">n</a>
<a id="44058" class="Symbol">...</a> <a id="44062" class="Symbol">|</a> <a id="44064" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a> <a id="44069" href="Data.Nat.Properties.html#44069" class="Bound">m⊓n≡n</a> <a id="44075" class="Keyword">rewrite</a> <a id="44083" href="Data.Nat.Properties.html#44069" class="Bound">m⊓n≡n</a> <a id="44089" class="Symbol">=</a> <a id="44091" href="Data.Nat.Properties.html#18502" class="Function">m≤n+m</a> <a id="44097" class="Bound">n</a> <a id="44099" class="Bound">m</a>
<a id="44102" class="Comment">------------------------------------------------------------------------</a>
<a id="44175" class="Comment">-- Other properties of _⊓_ and _*_</a>
<a id="*-distribˡ-⊓"></a><a id="44211" href="Data.Nat.Properties.html#44211" class="Function">*-distribˡ-⊓</a> <a id="44224" class="Symbol">:</a> <a id="44226" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a> <a id="44230" href="Algebra.Definitions.html#3155" class="Function Operator">DistributesOverˡ</a> <a id="44247" href="Data.Nat.Base.html#5845" class="Function Operator">_⊓_</a>
<a id="44251" href="Data.Nat.Properties.html#44211" class="Function">*-distribˡ-⊓</a> <a id="44264" href="Data.Nat.Properties.html#44264" class="Bound">m</a> <a id="44266" class="Number">0</a> <a id="44268" href="Data.Nat.Properties.html#44268" class="Bound">o</a> <a id="44270" class="Symbol">=</a> <a id="44272" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a>
<a id="44289" href="Data.Nat.Properties.html#44264" class="Bound">m</a> <a id="44291" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="44293" class="Symbol">(</a><a id="44294" class="Number">0</a> <a id="44296" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="44298" href="Data.Nat.Properties.html#44268" class="Bound">o</a><a id="44299" class="Symbol">)</a> <a id="44315" href="Relation.Binary.Reasoning.Syntax.html#11017" class="Function">≡⟨⟩</a>
<a id="44321" href="Data.Nat.Properties.html#44264" class="Bound">m</a> <a id="44323" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="44325" class="Number">0</a> <a id="44347" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="44350" href="Data.Nat.Properties.html#21295" class="Function">*-zeroʳ</a> <a id="44358" href="Data.Nat.Properties.html#44264" class="Bound">m</a> <a id="44360" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="44364" class="Number">0</a> <a id="44390" href="Relation.Binary.Reasoning.Syntax.html#11017" class="Function">≡⟨⟩</a>
<a id="44396" class="Number">0</a> <a id="44398" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="44400" class="Symbol">(</a><a id="44401" href="Data.Nat.Properties.html#44264" class="Bound">m</a> <a id="44403" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="44405" href="Data.Nat.Properties.html#44268" class="Bound">o</a><a id="44406" class="Symbol">)</a> <a id="44422" href="Relation.Binary.Reasoning.Syntax.html#11078" class="Function">≡⟨</a> <a id="44425" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="44430" class="Symbol">(</a><a id="44431" href="Data.Nat.Base.html#5845" class="Function Operator">_⊓</a> <a id="44434" class="Symbol">(</a><a id="44435" href="Data.Nat.Properties.html#44264" class="Bound">m</a> <a id="44437" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="44439" href="Data.Nat.Properties.html#44268" class="Bound">o</a><a id="44440" class="Symbol">))</a> <a id="44443" class="Symbol">(</a><a id="44444" href="Data.Nat.Properties.html#21295" class="Function">*-zeroʳ</a> <a id="44452" href="Data.Nat.Properties.html#44264" class="Bound">m</a><a id="44453" class="Symbol">)</a> <a id="44455" href="Relation.Binary.Reasoning.Syntax.html#11078" class="Function"></a>
<a id="44459" class="Symbol">(</a><a id="44460" href="Data.Nat.Properties.html#44264" class="Bound">m</a> <a id="44462" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="44464" class="Number">0</a><a id="44465" class="Symbol">)</a> <a id="44467" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="44469" class="Symbol">(</a><a id="44470" href="Data.Nat.Properties.html#44264" class="Bound">m</a> <a id="44472" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="44474" href="Data.Nat.Properties.html#44268" class="Bound">o</a><a id="44475" class="Symbol">)</a> <a id="44485" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="44487" href="Data.Nat.Properties.html#44211" class="Function">*-distribˡ-⊓</a> <a id="44500" href="Data.Nat.Properties.html#44500" class="Bound">m</a> <a id="44502" class="Symbol">(</a><a id="44503" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="44507" href="Data.Nat.Properties.html#44507" class="Bound">n</a><a id="44508" class="Symbol">)</a> <a id="44510" class="Number">0</a> <a id="44512" class="Symbol">=</a> <a id="44514" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a>
<a id="44531" href="Data.Nat.Properties.html#44500" class="Bound">m</a> <a id="44533" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="44535" class="Symbol">(</a><a id="44536" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="44540" href="Data.Nat.Properties.html#44507" class="Bound">n</a> <a id="44542" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="44544" class="Number">0</a><a id="44545" class="Symbol">)</a> <a id="44557" href="Relation.Binary.Reasoning.Syntax.html#11017" class="Function">≡⟨⟩</a>
<a id="44563" href="Data.Nat.Properties.html#44500" class="Bound">m</a> <a id="44565" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="44567" class="Number">0</a> <a id="44589" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="44592" href="Data.Nat.Properties.html#21295" class="Function">*-zeroʳ</a> <a id="44600" href="Data.Nat.Properties.html#44500" class="Bound">m</a> <a id="44602" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="44606" class="Number">0</a> <a id="44632" href="Relation.Binary.Reasoning.Syntax.html#11078" class="Function">≡⟨</a> <a id="44635" href="Data.Nat.Properties.html#41965" class="Function">⊓-zeroʳ</a> <a id="44643" class="Symbol">(</a><a id="44644" href="Data.Nat.Properties.html#44500" class="Bound">m</a> <a id="44646" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="44648" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="44652" href="Data.Nat.Properties.html#44507" class="Bound">n</a><a id="44653" class="Symbol">)</a> <a id="44655" href="Relation.Binary.Reasoning.Syntax.html#11078" class="Function"></a>
<a id="44659" class="Symbol">(</a><a id="44660" href="Data.Nat.Properties.html#44500" class="Bound">m</a> <a id="44662" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="44664" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="44668" href="Data.Nat.Properties.html#44507" class="Bound">n</a><a id="44669" class="Symbol">)</a> <a id="44671" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="44673" class="Number">0</a> <a id="44685" href="Relation.Binary.Reasoning.Syntax.html#11078" class="Function">≡⟨</a> <a id="44688" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="44693" class="Symbol">(</a><a id="44694" href="Data.Nat.Properties.html#44500" class="Bound">m</a> <a id="44696" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="44698" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="44702" href="Data.Nat.Properties.html#44507" class="Bound">n</a> <a id="44704" href="Data.Nat.Base.html#5845" class="Function Operator">⊓_</a><a id="44706" class="Symbol">)</a> <a id="44708" class="Symbol">(</a><a id="44709" href="Data.Nat.Properties.html#21295" class="Function">*-zeroʳ</a> <a id="44717" href="Data.Nat.Properties.html#44500" class="Bound">m</a><a id="44718" class="Symbol">)</a> <a id="44720" href="Relation.Binary.Reasoning.Syntax.html#11078" class="Function"></a>
<a id="44724" class="Symbol">(</a><a id="44725" href="Data.Nat.Properties.html#44500" class="Bound">m</a> <a id="44727" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="44729" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="44733" href="Data.Nat.Properties.html#44507" class="Bound">n</a><a id="44734" class="Symbol">)</a> <a id="44736" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="44738" class="Symbol">(</a><a id="44739" href="Data.Nat.Properties.html#44500" class="Bound">m</a> <a id="44741" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="44743" class="Number">0</a><a id="44744" class="Symbol">)</a> <a id="44750" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="44752" href="Data.Nat.Properties.html#44211" class="Function">*-distribˡ-⊓</a> <a id="44765" href="Data.Nat.Properties.html#44765" class="Bound">m</a> <a id="44767" class="Symbol">(</a><a id="44768" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="44772" href="Data.Nat.Properties.html#44772" class="Bound">n</a><a id="44773" class="Symbol">)</a> <a id="44775" class="Symbol">(</a><a id="44776" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="44780" href="Data.Nat.Properties.html#44780" class="Bound">o</a><a id="44781" class="Symbol">)</a> <a id="44783" class="Symbol">=</a> <a id="44785" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a>
<a id="44802" href="Data.Nat.Properties.html#44765" class="Bound">m</a> <a id="44804" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="44806" class="Symbol">(</a><a id="44807" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="44811" href="Data.Nat.Properties.html#44772" class="Bound">n</a> <a id="44813" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="44815" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="44819" href="Data.Nat.Properties.html#44780" class="Bound">o</a><a id="44820" class="Symbol">)</a> <a id="44828" href="Relation.Binary.Reasoning.Syntax.html#11017" class="Function">≡⟨⟩</a>
<a id="44834" href="Data.Nat.Properties.html#44765" class="Bound">m</a> <a id="44836" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="44838" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="44842" class="Symbol">(</a><a id="44843" href="Data.Nat.Properties.html#44772" class="Bound">n</a> <a id="44845" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="44847" href="Data.Nat.Properties.html#44780" class="Bound">o</a><a id="44848" class="Symbol">)</a> <a id="44860" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="44863" href="Data.Nat.Properties.html#20447" class="Function">*-suc</a> <a id="44869" href="Data.Nat.Properties.html#44765" class="Bound">m</a> <a id="44871" class="Symbol">(</a><a id="44872" href="Data.Nat.Properties.html#44772" class="Bound">n</a> <a id="44874" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="44876" href="Data.Nat.Properties.html#44780" class="Bound">o</a><a id="44877" class="Symbol">)</a> <a id="44879" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="44883" href="Data.Nat.Properties.html#44765" class="Bound">m</a> <a id="44885" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="44887" href="Data.Nat.Properties.html#44765" class="Bound">m</a> <a id="44889" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="44891" class="Symbol">(</a><a id="44892" href="Data.Nat.Properties.html#44772" class="Bound">n</a> <a id="44894" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="44896" href="Data.Nat.Properties.html#44780" class="Bound">o</a><a id="44897" class="Symbol">)</a> <a id="44909" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="44912" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="44917" class="Symbol">(</a><a id="44918" href="Data.Nat.Properties.html#44765" class="Bound">m</a> <a id="44920" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+_</a><a id="44922" class="Symbol">)</a> <a id="44924" class="Symbol">(</a><a id="44925" href="Data.Nat.Properties.html#44211" class="Function">*-distribˡ-⊓</a> <a id="44938" href="Data.Nat.Properties.html#44765" class="Bound">m</a> <a id="44940" href="Data.Nat.Properties.html#44772" class="Bound">n</a> <a id="44942" href="Data.Nat.Properties.html#44780" class="Bound">o</a><a id="44943" class="Symbol">)</a> <a id="44945" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="44949" href="Data.Nat.Properties.html#44765" class="Bound">m</a> <a id="44951" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="44953" class="Symbol">(</a><a id="44954" href="Data.Nat.Properties.html#44765" class="Bound">m</a> <a id="44956" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="44958" href="Data.Nat.Properties.html#44772" class="Bound">n</a><a id="44959" class="Symbol">)</a> <a id="44961" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="44963" class="Symbol">(</a><a id="44964" href="Data.Nat.Properties.html#44765" class="Bound">m</a> <a id="44966" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="44968" href="Data.Nat.Properties.html#44780" class="Bound">o</a><a id="44969" class="Symbol">)</a> <a id="44975" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="44978" href="Data.Nat.Properties.html#43650" class="Function">+-distribˡ-⊓</a> <a id="44991" href="Data.Nat.Properties.html#44765" class="Bound">m</a> <a id="44993" class="Symbol">(</a><a id="44994" href="Data.Nat.Properties.html#44765" class="Bound">m</a> <a id="44996" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="44998" href="Data.Nat.Properties.html#44772" class="Bound">n</a><a id="44999" class="Symbol">)</a> <a id="45001" class="Symbol">(</a><a id="45002" href="Data.Nat.Properties.html#44765" class="Bound">m</a> <a id="45004" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="45006" href="Data.Nat.Properties.html#44780" class="Bound">o</a><a id="45007" class="Symbol">)</a> <a id="45009" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="45013" class="Symbol">(</a><a id="45014" href="Data.Nat.Properties.html#44765" class="Bound">m</a> <a id="45016" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="45018" href="Data.Nat.Properties.html#44765" class="Bound">m</a> <a id="45020" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="45022" href="Data.Nat.Properties.html#44772" class="Bound">n</a><a id="45023" class="Symbol">)</a> <a id="45025" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="45027" class="Symbol">(</a><a id="45028" href="Data.Nat.Properties.html#44765" class="Bound">m</a> <a id="45030" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="45032" href="Data.Nat.Properties.html#44765" class="Bound">m</a> <a id="45034" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="45036" href="Data.Nat.Properties.html#44780" class="Bound">o</a><a id="45037" class="Symbol">)</a> <a id="45039" href="Relation.Binary.Reasoning.Syntax.html#11078" class="Function">≡⟨</a> <a id="45042" href="Relation.Binary.PropositionalEquality.Core.html#1395" class="Function">cong₂</a> <a id="45048" href="Data.Nat.Base.html#5845" class="Function Operator">_⊓_</a> <a id="45052" class="Symbol">(</a><a id="45053" href="Data.Nat.Properties.html#20447" class="Function">*-suc</a> <a id="45059" href="Data.Nat.Properties.html#44765" class="Bound">m</a> <a id="45061" href="Data.Nat.Properties.html#44772" class="Bound">n</a><a id="45062" class="Symbol">)</a> <a id="45064" class="Symbol">(</a><a id="45065" href="Data.Nat.Properties.html#20447" class="Function">*-suc</a> <a id="45071" href="Data.Nat.Properties.html#44765" class="Bound">m</a> <a id="45073" href="Data.Nat.Properties.html#44780" class="Bound">o</a><a id="45074" class="Symbol">)</a> <a id="45076" href="Relation.Binary.Reasoning.Syntax.html#11078" class="Function"></a>
<a id="45080" class="Symbol">(</a><a id="45081" href="Data.Nat.Properties.html#44765" class="Bound">m</a> <a id="45083" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="45085" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="45089" href="Data.Nat.Properties.html#44772" class="Bound">n</a><a id="45090" class="Symbol">)</a> <a id="45092" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="45094" class="Symbol">(</a><a id="45095" href="Data.Nat.Properties.html#44765" class="Bound">m</a> <a id="45097" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="45099" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="45103" href="Data.Nat.Properties.html#44780" class="Bound">o</a><a id="45104" class="Symbol">)</a> <a id="45106" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="*-distribʳ-⊓"></a><a id="45109" href="Data.Nat.Properties.html#45109" class="Function">*-distribʳ-⊓</a> <a id="45122" class="Symbol">:</a> <a id="45124" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a> <a id="45128" href="Algebra.Definitions.html#3274" class="Function Operator">DistributesOverʳ</a> <a id="45145" href="Data.Nat.Base.html#5845" class="Function Operator">_⊓_</a>
<a id="45149" href="Data.Nat.Properties.html#45109" class="Function">*-distribʳ-⊓</a> <a id="45162" class="Symbol">=</a> <a id="45164" href="Algebra.Consequences.Propositional.html#3194" class="Function">comm∧distrˡ⇒distrʳ</a> <a id="45183" href="Data.Nat.Properties.html#21421" class="Function">*-comm</a> <a id="45190" href="Data.Nat.Properties.html#44211" class="Function">*-distribˡ-⊓</a>
<a id="*-distrib-⊓"></a><a id="45204" href="Data.Nat.Properties.html#45204" class="Function">*-distrib-⊓</a> <a id="45216" class="Symbol">:</a> <a id="45218" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a> <a id="45222" href="Algebra.Definitions.html#3393" class="Function Operator">DistributesOver</a> <a id="45238" href="Data.Nat.Base.html#5845" class="Function Operator">_⊓_</a>
<a id="45242" href="Data.Nat.Properties.html#45204" class="Function">*-distrib-⊓</a> <a id="45254" class="Symbol">=</a> <a id="45256" href="Data.Nat.Properties.html#44211" class="Function">*-distribˡ-⊓</a> <a id="45269" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="45271" href="Data.Nat.Properties.html#45109" class="Function">*-distribʳ-⊓</a>
<a id="45285" class="Comment">------------------------------------------------------------------------</a>
<a id="45358" class="Comment">-- Properties of _∸_</a>
<a id="45379" class="Comment">------------------------------------------------------------------------</a>
<a id="0∸n≡0"></a><a id="45453" href="Data.Nat.Properties.html#45453" class="Function">0∸n≡0</a> <a id="45459" class="Symbol">:</a> <a id="45461" href="Algebra.Definitions.html#1942" class="Function">LeftZero</a> <a id="45470" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="45475" href="Data.Nat.Base.html#4456" class="Primitive Operator">_∸_</a>
<a id="45479" href="Data.Nat.Properties.html#45453" class="Function">0∸n≡0</a> <a id="45485" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="45493" class="Symbol">=</a> <a id="45495" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="45500" href="Data.Nat.Properties.html#45453" class="Function">0∸n≡0</a> <a id="45506" class="Symbol">(</a><a id="45507" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="45511" class="Symbol">_)</a> <a id="45514" class="Symbol">=</a> <a id="45516" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="n∸n≡0"></a><a id="45522" href="Data.Nat.Properties.html#45522" class="Function">n∸n≡0</a> <a id="45528" class="Symbol">:</a> <a id="45530" class="Symbol"></a> <a id="45532" href="Data.Nat.Properties.html#45532" class="Bound">n</a> <a id="45534" class="Symbol"></a> <a id="45536" href="Data.Nat.Properties.html#45532" class="Bound">n</a> <a id="45538" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="45540" href="Data.Nat.Properties.html#45532" class="Bound">n</a> <a id="45542" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="45544" class="Number">0</a>
<a id="45546" href="Data.Nat.Properties.html#45522" class="Function">n∸n≡0</a> <a id="45552" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="45560" class="Symbol">=</a> <a id="45562" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="45567" href="Data.Nat.Properties.html#45522" class="Function">n∸n≡0</a> <a id="45573" class="Symbol">(</a><a id="45574" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="45578" href="Data.Nat.Properties.html#45578" class="Bound">n</a><a id="45579" class="Symbol">)</a> <a id="45581" class="Symbol">=</a> <a id="45583" href="Data.Nat.Properties.html#45522" class="Function">n∸n≡0</a> <a id="45589" href="Data.Nat.Properties.html#45578" class="Bound">n</a>
<a id="45592" class="Comment">------------------------------------------------------------------------</a>
<a id="45665" class="Comment">-- Properties of _∸_ and pred</a>
<a id="pred[m∸n]≡m∸[1+n]"></a><a id="45696" href="Data.Nat.Properties.html#45696" class="Function">pred[m∸n]≡m∸[1+n]</a> <a id="45714" class="Symbol">:</a> <a id="45716" class="Symbol"></a> <a id="45718" href="Data.Nat.Properties.html#45718" class="Bound">m</a> <a id="45720" href="Data.Nat.Properties.html#45720" class="Bound">n</a> <a id="45722" class="Symbol"></a> <a id="45724" href="Data.Nat.Base.html#5266" class="Function">pred</a> <a id="45729" class="Symbol">(</a><a id="45730" href="Data.Nat.Properties.html#45718" class="Bound">m</a> <a id="45732" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="45734" href="Data.Nat.Properties.html#45720" class="Bound">n</a><a id="45735" class="Symbol">)</a> <a id="45737" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="45739" href="Data.Nat.Properties.html#45718" class="Bound">m</a> <a id="45741" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="45743" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="45747" href="Data.Nat.Properties.html#45720" class="Bound">n</a>
<a id="45749" href="Data.Nat.Properties.html#45696" class="Function">pred[m∸n]≡m∸[1+n]</a> <a id="45767" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="45775" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="45783" class="Symbol">=</a> <a id="45785" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="45790" href="Data.Nat.Properties.html#45696" class="Function">pred[m∸n]≡m∸[1+n]</a> <a id="45808" class="Symbol">(</a><a id="45809" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="45813" href="Data.Nat.Properties.html#45813" class="Bound">m</a><a id="45814" class="Symbol">)</a> <a id="45816" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="45824" class="Symbol">=</a> <a id="45826" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="45831" href="Data.Nat.Properties.html#45696" class="Function">pred[m∸n]≡m∸[1+n]</a> <a id="45849" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="45854" class="Symbol">(</a><a id="45855" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="45859" href="Data.Nat.Properties.html#45859" class="Bound">n</a><a id="45860" class="Symbol">)</a> <a id="45865" class="Symbol">=</a> <a id="45867" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="45872" href="Data.Nat.Properties.html#45696" class="Function">pred[m∸n]≡m∸[1+n]</a> <a id="45890" class="Symbol">(</a><a id="45891" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="45895" href="Data.Nat.Properties.html#45895" class="Bound">m</a><a id="45896" class="Symbol">)</a> <a id="45898" class="Symbol">(</a><a id="45899" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="45903" href="Data.Nat.Properties.html#45903" class="Bound">n</a><a id="45904" class="Symbol">)</a> <a id="45906" class="Symbol">=</a> <a id="45908" href="Data.Nat.Properties.html#45696" class="Function">pred[m∸n]≡m∸[1+n]</a> <a id="45926" href="Data.Nat.Properties.html#45895" class="Bound">m</a> <a id="45928" href="Data.Nat.Properties.html#45903" class="Bound">n</a>
<a id="45931" class="Comment">------------------------------------------------------------------------</a>
<a id="46004" class="Comment">-- Properties of _∸_ and _≤_/_&lt;_</a>
<a id="m∸n≤m"></a><a id="46038" href="Data.Nat.Properties.html#46038" class="Function">m∸n≤m</a> <a id="46044" class="Symbol">:</a> <a id="46046" class="Symbol"></a> <a id="46048" href="Data.Nat.Properties.html#46048" class="Bound">m</a> <a id="46050" href="Data.Nat.Properties.html#46050" class="Bound">n</a> <a id="46052" class="Symbol"></a> <a id="46054" href="Data.Nat.Properties.html#46048" class="Bound">m</a> <a id="46056" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="46058" href="Data.Nat.Properties.html#46050" class="Bound">n</a> <a id="46060" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="46062" href="Data.Nat.Properties.html#46048" class="Bound">m</a>
<a id="46064" href="Data.Nat.Properties.html#46038" class="Function">m∸n≤m</a> <a id="46070" href="Data.Nat.Properties.html#46070" class="Bound">n</a> <a id="46078" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="46086" class="Symbol">=</a> <a id="46088" href="Data.Nat.Properties.html#5242" class="Function">≤-refl</a>
<a id="46095" href="Data.Nat.Properties.html#46038" class="Function">m∸n≤m</a> <a id="46101" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="46109" class="Symbol">(</a><a id="46110" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="46114" href="Data.Nat.Properties.html#46114" class="Bound">n</a><a id="46115" class="Symbol">)</a> <a id="46117" class="Symbol">=</a> <a id="46119" href="Data.Nat.Properties.html#5242" class="Function">≤-refl</a>
<a id="46126" href="Data.Nat.Properties.html#46038" class="Function">m∸n≤m</a> <a id="46132" class="Symbol">(</a><a id="46133" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="46137" href="Data.Nat.Properties.html#46137" class="Bound">m</a><a id="46138" class="Symbol">)</a> <a id="46140" class="Symbol">(</a><a id="46141" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="46145" href="Data.Nat.Properties.html#46145" class="Bound">n</a><a id="46146" class="Symbol">)</a> <a id="46148" class="Symbol">=</a> <a id="46150" href="Data.Nat.Properties.html#5425" class="Function">≤-trans</a> <a id="46158" class="Symbol">(</a><a id="46159" href="Data.Nat.Properties.html#46038" class="Function">m∸n≤m</a> <a id="46165" href="Data.Nat.Properties.html#46137" class="Bound">m</a> <a id="46167" href="Data.Nat.Properties.html#46145" class="Bound">n</a><a id="46168" class="Symbol">)</a> <a id="46170" class="Symbol">(</a><a id="46171" href="Data.Nat.Properties.html#7948" class="Function">n≤1+n</a> <a id="46177" href="Data.Nat.Properties.html#46137" class="Bound">m</a><a id="46178" class="Symbol">)</a>
<a id="m≮m∸n"></a><a id="46181" href="Data.Nat.Properties.html#46181" class="Function">m≮m∸n</a> <a id="46187" class="Symbol">:</a> <a id="46189" class="Symbol"></a> <a id="46191" href="Data.Nat.Properties.html#46191" class="Bound">m</a> <a id="46193" href="Data.Nat.Properties.html#46193" class="Bound">n</a> <a id="46195" class="Symbol"></a> <a id="46197" href="Data.Nat.Properties.html#46191" class="Bound">m</a> <a id="46199" href="Data.Nat.Base.html#2351" class="Function Operator"></a> <a id="46201" href="Data.Nat.Properties.html#46191" class="Bound">m</a> <a id="46203" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="46205" href="Data.Nat.Properties.html#46193" class="Bound">n</a>
<a id="46207" href="Data.Nat.Properties.html#46181" class="Function">m≮m∸n</a> <a id="46213" href="Data.Nat.Properties.html#46213" class="Bound">m</a> <a id="46221" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="46229" class="Symbol">=</a> <a id="46231" href="Data.Nat.Properties.html#12185" class="Function">n≮n</a> <a id="46235" href="Data.Nat.Properties.html#46213" class="Bound">m</a>
<a id="46237" href="Data.Nat.Properties.html#46181" class="Function">m≮m∸n</a> <a id="46243" class="Symbol">(</a><a id="46244" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="46248" href="Data.Nat.Properties.html#46248" class="Bound">m</a><a id="46249" class="Symbol">)</a> <a id="46251" class="Symbol">(</a><a id="46252" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="46256" href="Data.Nat.Properties.html#46256" class="Bound">n</a><a id="46257" class="Symbol">)</a> <a id="46259" class="Symbol">=</a> <a id="46261" href="Data.Nat.Properties.html#46181" class="Function">m≮m∸n</a> <a id="46267" href="Data.Nat.Properties.html#46248" class="Bound">m</a> <a id="46269" href="Data.Nat.Properties.html#46256" class="Bound">n</a> <a id="46271" href="Function.Base.html#1115" class="Function Operator"></a> <a id="46273" href="Data.Nat.Properties.html#5425" class="Function">≤-trans</a> <a id="46281" class="Symbol">(</a><a id="46282" href="Data.Nat.Properties.html#7948" class="Function">n≤1+n</a> <a id="46288" class="Symbol">(</a><a id="46289" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="46293" href="Data.Nat.Properties.html#46248" class="Bound">m</a><a id="46294" class="Symbol">))</a>
<a id="1+m≢m∸n"></a><a id="46298" href="Data.Nat.Properties.html#46298" class="Function">1+m≢m∸n</a> <a id="46306" class="Symbol">:</a> <a id="46308" class="Symbol"></a> <a id="46310" class="Symbol">{</a><a id="46311" href="Data.Nat.Properties.html#46311" class="Bound">m</a><a id="46312" class="Symbol">}</a> <a id="46314" href="Data.Nat.Properties.html#46314" class="Bound">n</a> <a id="46316" class="Symbol"></a> <a id="46318" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="46322" href="Data.Nat.Properties.html#46311" class="Bound">m</a> <a id="46324" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Function Operator"></a> <a id="46326" href="Data.Nat.Properties.html#46311" class="Bound">m</a> <a id="46328" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="46330" href="Data.Nat.Properties.html#46314" class="Bound">n</a>
<a id="46332" href="Data.Nat.Properties.html#46298" class="Function">1+m≢m∸n</a> <a id="46340" class="Symbol">{</a><a id="46341" href="Data.Nat.Properties.html#46341" class="Bound">m</a><a id="46342" class="Symbol">}</a> <a id="46344" href="Data.Nat.Properties.html#46344" class="Bound">n</a> <a id="46346" href="Data.Nat.Properties.html#46346" class="Bound">eq</a> <a id="46349" class="Symbol">=</a> <a id="46351" href="Data.Nat.Properties.html#46181" class="Function">m≮m∸n</a> <a id="46357" href="Data.Nat.Properties.html#46341" class="Bound">m</a> <a id="46359" href="Data.Nat.Properties.html#46344" class="Bound">n</a> <a id="46361" class="Symbol">(</a><a id="46362" href="Data.Nat.Properties.html#5136" class="Function">≤-reflexive</a> <a id="46374" href="Data.Nat.Properties.html#46346" class="Bound">eq</a><a id="46376" class="Symbol">)</a>
<a id="∸-mono"></a><a id="46379" href="Data.Nat.Properties.html#46379" class="Function">∸-mono</a> <a id="46386" class="Symbol">:</a> <a id="46388" href="Data.Nat.Base.html#4456" class="Primitive Operator">_∸_</a> <a id="46392" href="Relation.Binary.Core.html#1703" class="Function Operator">Preserves₂</a> <a id="46403" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="46407" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="46409" href="Data.Nat.Base.html#2259" class="Function Operator">_≥_</a> <a id="46413" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="46415" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="46419" href="Data.Nat.Properties.html#46379" class="Function">∸-mono</a> <a id="46426" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="46438" class="Symbol">(</a><a id="46439" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="46443" href="Data.Nat.Properties.html#46443" class="Bound">n₁≥n₂</a><a id="46448" class="Symbol">)</a> <a id="46453" class="Symbol">=</a> <a id="46455" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="46459" href="Data.Nat.Properties.html#46379" class="Function">∸-mono</a> <a id="46466" class="Symbol">(</a><a id="46467" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="46471" href="Data.Nat.Properties.html#46471" class="Bound">m₁≤m₂</a><a id="46476" class="Symbol">)</a> <a id="46478" class="Symbol">(</a><a id="46479" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="46483" href="Data.Nat.Properties.html#46483" class="Bound">n₁≥n₂</a><a id="46488" class="Symbol">)</a> <a id="46493" class="Symbol">=</a> <a id="46495" href="Data.Nat.Properties.html#46379" class="Function">∸-mono</a> <a id="46502" href="Data.Nat.Properties.html#46471" class="Bound">m₁≤m₂</a> <a id="46508" href="Data.Nat.Properties.html#46483" class="Bound">n₁≥n₂</a>
<a id="46514" href="Data.Nat.Properties.html#46379" class="CatchallClause Function">∸-mono</a><a id="46520" class="CatchallClause"> </a><a id="46521" href="Data.Nat.Properties.html#46521" class="CatchallClause Bound">m₁≤m₂</a><a id="46526" class="CatchallClause"> </a><a id="46533" class="CatchallClause Symbol">(</a><a id="46534" href="Data.Nat.Base.html#1714" class="CatchallClause InductiveConstructor">z≤n</a><a id="46537" class="CatchallClause"> </a><a id="46538" class="CatchallClause Symbol">{</a><a id="46539" class="CatchallClause Argument">n</a><a id="46540" class="CatchallClause"> </a><a id="46541" class="CatchallClause Symbol">=</a><a id="46542" class="CatchallClause"> </a><a id="46543" href="Data.Nat.Properties.html#46543" class="CatchallClause Bound">n₁</a><a id="46545" class="CatchallClause Symbol">})</a> <a id="46548" class="Symbol">=</a> <a id="46550" href="Data.Nat.Properties.html#5425" class="Function">≤-trans</a> <a id="46558" class="Symbol">(</a><a id="46559" href="Data.Nat.Properties.html#46038" class="Function">m∸n≤m</a> <a id="46565" class="Symbol">_</a> <a id="46567" href="Data.Nat.Properties.html#46543" class="Bound">n₁</a><a id="46569" class="Symbol">)</a> <a id="46571" href="Data.Nat.Properties.html#46521" class="Bound">m₁≤m₂</a>
<a id="∸-monoˡ-≤"></a><a id="46578" href="Data.Nat.Properties.html#46578" class="Function">∸-monoˡ-≤</a> <a id="46588" class="Symbol">:</a> <a id="46590" class="Symbol"></a> <a id="46592" href="Data.Nat.Properties.html#46592" class="Bound">o</a> <a id="46594" class="Symbol"></a> <a id="46596" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="46598" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="46600" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="46602" class="Symbol"></a> <a id="46604" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="46606" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="46608" href="Data.Nat.Properties.html#46592" class="Bound">o</a> <a id="46610" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="46612" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="46614" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="46616" href="Data.Nat.Properties.html#46592" class="Bound">o</a>
<a id="46618" href="Data.Nat.Properties.html#46578" class="Function">∸-monoˡ-≤</a> <a id="46628" href="Data.Nat.Properties.html#46628" class="Bound">o</a> <a id="46630" href="Data.Nat.Properties.html#46630" class="Bound">m≤n</a> <a id="46634" class="Symbol">=</a> <a id="46636" href="Data.Nat.Properties.html#46379" class="Function">∸-mono</a> <a id="46643" class="Symbol">{</a><a id="46644" class="Argument">u</a> <a id="46646" class="Symbol">=</a> <a id="46648" href="Data.Nat.Properties.html#46628" class="Bound">o</a><a id="46649" class="Symbol">}</a> <a id="46651" href="Data.Nat.Properties.html#46630" class="Bound">m≤n</a> <a id="46655" href="Data.Nat.Properties.html#5242" class="Function">≤-refl</a>
<a id="∸-monoʳ-≤"></a><a id="46663" href="Data.Nat.Properties.html#46663" class="Function">∸-monoʳ-≤</a> <a id="46673" class="Symbol">:</a> <a id="46675" class="Symbol"></a> <a id="46677" href="Data.Nat.Properties.html#46677" class="Bound">o</a> <a id="46679" class="Symbol"></a> <a id="46681" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="46683" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="46685" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="46687" class="Symbol"></a> <a id="46689" href="Data.Nat.Properties.html#46677" class="Bound">o</a> <a id="46691" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="46693" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="46695" href="Data.Nat.Base.html#2259" class="Function Operator"></a> <a id="46697" href="Data.Nat.Properties.html#46677" class="Bound">o</a> <a id="46699" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="46701" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="46703" href="Data.Nat.Properties.html#46663" class="Function">∸-monoʳ-≤</a> <a id="46713" class="Symbol">_</a> <a id="46715" href="Data.Nat.Properties.html#46715" class="Bound">m≤n</a> <a id="46719" class="Symbol">=</a> <a id="46721" href="Data.Nat.Properties.html#46379" class="Function">∸-mono</a> <a id="46728" href="Data.Nat.Properties.html#5242" class="Function">≤-refl</a> <a id="46735" href="Data.Nat.Properties.html#46715" class="Bound">m≤n</a>
<a id="∸-monoˡ-&lt;"></a><a id="46740" href="Data.Nat.Properties.html#46740" class="Function">∸-monoˡ-&lt;</a> <a id="46750" class="Symbol">:</a> <a id="46752" class="Symbol"></a> <a id="46754" class="Symbol">{</a><a id="46755" href="Data.Nat.Properties.html#46755" class="Bound">m</a> <a id="46757" href="Data.Nat.Properties.html#46757" class="Bound">n</a> <a id="46759" href="Data.Nat.Properties.html#46759" class="Bound">o</a><a id="46760" class="Symbol">}</a> <a id="46762" class="Symbol"></a> <a id="46764" href="Data.Nat.Properties.html#46755" class="Bound">m</a> <a id="46766" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="46768" href="Data.Nat.Properties.html#46759" class="Bound">o</a> <a id="46770" class="Symbol"></a> <a id="46772" href="Data.Nat.Properties.html#46757" class="Bound">n</a> <a id="46774" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="46776" href="Data.Nat.Properties.html#46755" class="Bound">m</a> <a id="46778" class="Symbol"></a> <a id="46780" href="Data.Nat.Properties.html#46755" class="Bound">m</a> <a id="46782" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="46784" href="Data.Nat.Properties.html#46757" class="Bound">n</a> <a id="46786" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="46788" href="Data.Nat.Properties.html#46759" class="Bound">o</a> <a id="46790" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="46792" href="Data.Nat.Properties.html#46757" class="Bound">n</a>
<a id="46794" href="Data.Nat.Properties.html#46740" class="Function">∸-monoˡ-&lt;</a> <a id="46804" class="Symbol">{</a><a id="46805" href="Data.Nat.Properties.html#46805" class="Bound">m</a><a id="46806" class="Symbol">}</a> <a id="46812" class="Symbol">{</a><a id="46813" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="46817" class="Symbol">}</a> <a id="46820" class="Symbol">{</a><a id="46821" href="Data.Nat.Properties.html#46821" class="Bound">o</a><a id="46822" class="Symbol">}</a> <a id="46828" href="Data.Nat.Properties.html#46828" class="Bound">m&lt;o</a> <a id="46838" href="Data.Nat.Properties.html#46838" class="Bound">n≤m</a> <a id="46848" class="Symbol">=</a> <a id="46850" href="Data.Nat.Properties.html#46828" class="Bound">m&lt;o</a>
<a id="46854" href="Data.Nat.Properties.html#46740" class="Function">∸-monoˡ-&lt;</a> <a id="46864" class="Symbol">{</a><a id="46865" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="46869" href="Data.Nat.Properties.html#46869" class="Bound">m</a><a id="46870" class="Symbol">}</a> <a id="46872" class="Symbol">{</a><a id="46873" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="46877" href="Data.Nat.Properties.html#46877" class="Bound">n</a><a id="46878" class="Symbol">}</a> <a id="46880" class="Symbol">{</a><a id="46881" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="46885" href="Data.Nat.Properties.html#46885" class="Bound">o</a><a id="46886" class="Symbol">}</a> <a id="46888" class="Symbol">(</a><a id="46889" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="46893" href="Data.Nat.Properties.html#46893" class="Bound">m&lt;o</a><a id="46896" class="Symbol">)</a> <a id="46898" class="Symbol">(</a><a id="46899" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="46903" href="Data.Nat.Properties.html#46903" class="Bound">n≤m</a><a id="46906" class="Symbol">)</a> <a id="46908" class="Symbol">=</a> <a id="46910" href="Data.Nat.Properties.html#46740" class="Function">∸-monoˡ-&lt;</a> <a id="46920" href="Data.Nat.Properties.html#46893" class="Bound">m&lt;o</a> <a id="46924" href="Data.Nat.Properties.html#46903" class="Bound">n≤m</a>
<a id="∸-monoʳ-&lt;"></a><a id="46929" href="Data.Nat.Properties.html#46929" class="Function">∸-monoʳ-&lt;</a> <a id="46939" class="Symbol">:</a> <a id="46941" class="Symbol"></a> <a id="46943" class="Symbol">{</a><a id="46944" href="Data.Nat.Properties.html#46944" class="Bound">m</a> <a id="46946" href="Data.Nat.Properties.html#46946" class="Bound">n</a> <a id="46948" href="Data.Nat.Properties.html#46948" class="Bound">o</a><a id="46949" class="Symbol">}</a> <a id="46951" class="Symbol"></a> <a id="46953" href="Data.Nat.Properties.html#46948" class="Bound">o</a> <a id="46955" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="46957" href="Data.Nat.Properties.html#46946" class="Bound">n</a> <a id="46959" class="Symbol"></a> <a id="46961" href="Data.Nat.Properties.html#46946" class="Bound">n</a> <a id="46963" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="46965" href="Data.Nat.Properties.html#46944" class="Bound">m</a> <a id="46967" class="Symbol"></a> <a id="46969" href="Data.Nat.Properties.html#46944" class="Bound">m</a> <a id="46971" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="46973" href="Data.Nat.Properties.html#46946" class="Bound">n</a> <a id="46975" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="46977" href="Data.Nat.Properties.html#46944" class="Bound">m</a> <a id="46979" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="46981" href="Data.Nat.Properties.html#46948" class="Bound">o</a>
<a id="46983" href="Data.Nat.Properties.html#46929" class="Function">∸-monoʳ-&lt;</a> <a id="46993" class="Symbol">{</a><a id="46994" class="Argument">n</a> <a id="46996" class="Symbol">=</a> <a id="46998" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="47002" href="Data.Nat.Properties.html#47002" class="Bound">n</a><a id="47003" class="Symbol">}</a> <a id="47005" class="Symbol">{</a><a id="47006" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="47010" class="Symbol">}</a> <a id="47013" class="Symbol">(</a><a id="47014" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="47018" href="Data.Nat.Properties.html#47018" class="Bound">o&lt;n</a><a id="47021" class="Symbol">)</a> <a id="47023" class="Symbol">(</a><a id="47024" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="47028" href="Data.Nat.Properties.html#47028" class="Bound">n&lt;m</a><a id="47031" class="Symbol">)</a> <a id="47033" class="Symbol">=</a> <a id="47035" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="47039" class="Symbol">(</a><a id="47040" href="Data.Nat.Properties.html#46038" class="Function">m∸n≤m</a> <a id="47046" class="Symbol">_</a> <a id="47048" href="Data.Nat.Properties.html#47002" class="Bound">n</a><a id="47049" class="Symbol">)</a>
<a id="47051" href="Data.Nat.Properties.html#46929" class="Function">∸-monoʳ-&lt;</a> <a id="47061" class="Symbol">{</a><a id="47062" class="Argument">n</a> <a id="47064" class="Symbol">=</a> <a id="47066" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="47070" href="Data.Nat.Properties.html#47070" class="Bound">n</a><a id="47071" class="Symbol">}</a> <a id="47073" class="Symbol">{</a><a id="47074" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="47078" href="Data.Nat.Properties.html#47078" class="Bound">o</a><a id="47079" class="Symbol">}</a> <a id="47081" class="Symbol">(</a><a id="47082" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="47086" href="Data.Nat.Properties.html#47086" class="Bound">o&lt;n</a><a id="47089" class="Symbol">)</a> <a id="47091" class="Symbol">(</a><a id="47092" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="47096" href="Data.Nat.Properties.html#47096" class="Bound">n&lt;m</a><a id="47099" class="Symbol">)</a> <a id="47101" class="Symbol">=</a> <a id="47103" href="Data.Nat.Properties.html#46929" class="Function">∸-monoʳ-&lt;</a> <a id="47113" href="Data.Nat.Properties.html#47086" class="Bound">o&lt;n</a> <a id="47117" href="Data.Nat.Properties.html#47096" class="Bound">n&lt;m</a>
<a id="∸-cancelʳ-≤"></a><a id="47122" href="Data.Nat.Properties.html#47122" class="Function">∸-cancelʳ-≤</a> <a id="47134" class="Symbol">:</a> <a id="47136" class="Symbol"></a> <a id="47138" class="Symbol">{</a><a id="47139" href="Data.Nat.Properties.html#47139" class="Bound">m</a> <a id="47141" href="Data.Nat.Properties.html#47141" class="Bound">n</a> <a id="47143" href="Data.Nat.Properties.html#47143" class="Bound">o</a><a id="47144" class="Symbol">}</a> <a id="47146" class="Symbol"></a> <a id="47148" href="Data.Nat.Properties.html#47139" class="Bound">m</a> <a id="47150" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="47152" href="Data.Nat.Properties.html#47143" class="Bound">o</a> <a id="47154" class="Symbol"></a> <a id="47156" href="Data.Nat.Properties.html#47143" class="Bound">o</a> <a id="47158" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="47160" href="Data.Nat.Properties.html#47141" class="Bound">n</a> <a id="47162" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="47164" href="Data.Nat.Properties.html#47143" class="Bound">o</a> <a id="47166" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="47168" href="Data.Nat.Properties.html#47139" class="Bound">m</a> <a id="47170" class="Symbol"></a> <a id="47172" href="Data.Nat.Properties.html#47139" class="Bound">m</a> <a id="47174" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="47176" href="Data.Nat.Properties.html#47141" class="Bound">n</a>
<a id="47178" href="Data.Nat.Properties.html#47122" class="Function">∸-cancelʳ-≤</a> <a id="47190" class="Symbol">{_}</a> <a id="47198" class="Symbol">{_}</a> <a id="47206" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="47216" class="Symbol">_</a> <a id="47224" class="Symbol">=</a> <a id="47226" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="47230" href="Data.Nat.Properties.html#47122" class="Function">∸-cancelʳ-≤</a> <a id="47242" class="Symbol">{</a><a id="47243" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="47247" href="Data.Nat.Properties.html#47247" class="Bound">m</a><a id="47248" class="Symbol">}</a> <a id="47250" class="Symbol">{</a><a id="47251" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="47255" class="Symbol">}</a> <a id="47258" class="Symbol">(</a><a id="47259" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="47263" class="Symbol">_)</a> <a id="47268" href="Data.Nat.Properties.html#47268" class="Bound">o&lt;o∸m</a> <a id="47276" class="Symbol">=</a> <a id="47278" href="Relation.Nullary.Negation.Core.html#1226" class="Function">contradiction</a> <a id="47292" href="Data.Nat.Properties.html#47268" class="Bound">o&lt;o∸m</a> <a id="47298" class="Symbol">(</a><a id="47299" href="Data.Nat.Properties.html#46181" class="Function">m≮m∸n</a> <a id="47305" class="Symbol">_</a> <a id="47307" href="Data.Nat.Properties.html#47247" class="Bound">m</a><a id="47308" class="Symbol">)</a>
<a id="47310" href="Data.Nat.Properties.html#47122" class="Function">∸-cancelʳ-≤</a> <a id="47322" class="Symbol">{</a><a id="47323" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="47327" href="Data.Nat.Properties.html#47327" class="Bound">m</a><a id="47328" class="Symbol">}</a> <a id="47330" class="Symbol">{</a><a id="47331" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="47335" href="Data.Nat.Properties.html#47335" class="Bound">n</a><a id="47336" class="Symbol">}</a> <a id="47338" class="Symbol">(</a><a id="47339" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="47343" href="Data.Nat.Properties.html#47343" class="Bound">m≤o</a><a id="47346" class="Symbol">)</a> <a id="47348" href="Data.Nat.Properties.html#47348" class="Bound">o∸n&lt;o∸m</a> <a id="47356" class="Symbol">=</a> <a id="47358" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="47362" class="Symbol">(</a><a id="47363" href="Data.Nat.Properties.html#47122" class="Function">∸-cancelʳ-≤</a> <a id="47375" href="Data.Nat.Properties.html#47343" class="Bound">m≤o</a> <a id="47379" href="Data.Nat.Properties.html#47348" class="Bound">o∸n&lt;o∸m</a><a id="47386" class="Symbol">)</a>
<a id="∸-cancelʳ-&lt;"></a><a id="47389" href="Data.Nat.Properties.html#47389" class="Function">∸-cancelʳ-&lt;</a> <a id="47401" class="Symbol">:</a> <a id="47403" class="Symbol"></a> <a id="47405" class="Symbol">{</a><a id="47406" href="Data.Nat.Properties.html#47406" class="Bound">m</a> <a id="47408" href="Data.Nat.Properties.html#47408" class="Bound">n</a> <a id="47410" href="Data.Nat.Properties.html#47410" class="Bound">o</a><a id="47411" class="Symbol">}</a> <a id="47413" class="Symbol"></a> <a id="47415" href="Data.Nat.Properties.html#47410" class="Bound">o</a> <a id="47417" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="47419" href="Data.Nat.Properties.html#47406" class="Bound">m</a> <a id="47421" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="47423" href="Data.Nat.Properties.html#47410" class="Bound">o</a> <a id="47425" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="47427" href="Data.Nat.Properties.html#47408" class="Bound">n</a> <a id="47429" class="Symbol"></a> <a id="47431" href="Data.Nat.Properties.html#47408" class="Bound">n</a> <a id="47433" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="47435" href="Data.Nat.Properties.html#47406" class="Bound">m</a>
<a id="47437" href="Data.Nat.Properties.html#47389" class="Function">∸-cancelʳ-&lt;</a> <a id="47449" class="Symbol">{</a><a id="47450" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="47454" class="Symbol">}</a> <a id="47457" class="Symbol">{</a><a id="47458" href="Data.Nat.Properties.html#47458" class="Bound">n</a><a id="47459" class="Symbol">}</a> <a id="47465" class="Symbol">{</a><a id="47466" href="Data.Nat.Properties.html#47466" class="Bound">o</a><a id="47467" class="Symbol">}</a> <a id="47473" href="Data.Nat.Properties.html#47473" class="Bound">o&lt;o∸n</a> <a id="47481" class="Symbol">=</a> <a id="47483" href="Relation.Nullary.Negation.Core.html#1226" class="Function">contradiction</a> <a id="47497" href="Data.Nat.Properties.html#47473" class="Bound">o&lt;o∸n</a> <a id="47503" class="Symbol">(</a><a id="47504" href="Data.Nat.Properties.html#46181" class="Function">m≮m∸n</a> <a id="47510" href="Data.Nat.Properties.html#47466" class="Bound">o</a> <a id="47512" href="Data.Nat.Properties.html#47458" class="Bound">n</a><a id="47513" class="Symbol">)</a>
<a id="47515" href="Data.Nat.Properties.html#47389" class="Function">∸-cancelʳ-&lt;</a> <a id="47527" class="Symbol">{</a><a id="47528" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="47532" href="Data.Nat.Properties.html#47532" class="Bound">m</a><a id="47533" class="Symbol">}</a> <a id="47535" class="Symbol">{</a><a id="47536" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="47540" class="Symbol">}</a> <a id="47543" class="Symbol">{_}</a> <a id="47551" href="Data.Nat.Properties.html#47551" class="Bound">o∸n&lt;o∸m</a> <a id="47559" class="Symbol">=</a> <a id="47561" href="Data.Nat.Properties.html#12249" class="Function">0&lt;1+n</a>
<a id="47567" href="Data.Nat.Properties.html#47389" class="Function">∸-cancelʳ-&lt;</a> <a id="47579" class="Symbol">{</a><a id="47580" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="47584" href="Data.Nat.Properties.html#47584" class="Bound">m</a><a id="47585" class="Symbol">}</a> <a id="47587" class="Symbol">{</a><a id="47588" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="47592" href="Data.Nat.Properties.html#47592" class="Bound">n</a><a id="47593" class="Symbol">}</a> <a id="47595" class="Symbol">{</a><a id="47596" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="47600" href="Data.Nat.Properties.html#47600" class="Bound">o</a><a id="47601" class="Symbol">}</a> <a id="47603" href="Data.Nat.Properties.html#47603" class="Bound">o∸n&lt;o∸m</a> <a id="47611" class="Symbol">=</a> <a id="47613" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="47617" class="Symbol">(</a><a id="47618" href="Data.Nat.Properties.html#47389" class="Function">∸-cancelʳ-&lt;</a> <a id="47630" href="Data.Nat.Properties.html#47603" class="Bound">o∸n&lt;o∸m</a><a id="47637" class="Symbol">)</a>
<a id="∸-cancelˡ-≡"></a><a id="47640" href="Data.Nat.Properties.html#47640" class="Function">∸-cancelˡ-≡</a> <a id="47652" class="Symbol">:</a> <a id="47655" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="47657" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="47659" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="47661" class="Symbol"></a> <a id="47663" href="Data.Nat.Properties.html#1962" class="Generalizable">o</a> <a id="47665" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="47667" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="47669" class="Symbol"></a> <a id="47671" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="47673" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="47675" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="47677" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="47679" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="47681" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="47683" href="Data.Nat.Properties.html#1962" class="Generalizable">o</a> <a id="47685" class="Symbol"></a> <a id="47687" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="47689" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="47691" href="Data.Nat.Properties.html#1962" class="Generalizable">o</a>
<a id="47693" href="Data.Nat.Properties.html#47640" class="Function">∸-cancelˡ-≡</a> <a id="47705" class="Symbol">{_}</a> <a id="47717" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="47727" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="47737" class="Symbol">_</a> <a id="47740" class="Symbol">=</a> <a id="47742" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="47747" href="Data.Nat.Properties.html#47640" class="Function">∸-cancelˡ-≡</a> <a id="47759" class="Symbol">{</a><a id="47760" class="Argument">o</a> <a id="47762" class="Symbol">=</a> <a id="47764" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="47768" href="Data.Nat.Properties.html#47768" class="Bound">o</a><a id="47769" class="Symbol">}</a> <a id="47771" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="47781" class="Symbol">(</a><a id="47782" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="47786" class="Symbol">_)</a> <a id="47791" href="Data.Nat.Properties.html#47791" class="Bound">eq</a> <a id="47794" class="Symbol">=</a> <a id="47796" href="Relation.Nullary.Negation.Core.html#1226" class="Function">contradiction</a> <a id="47810" href="Data.Nat.Properties.html#47791" class="Bound">eq</a> <a id="47813" class="Symbol">(</a><a id="47814" href="Data.Nat.Properties.html#46298" class="Function">1+m≢m∸n</a> <a id="47822" href="Data.Nat.Properties.html#47768" class="Bound">o</a><a id="47823" class="Symbol">)</a>
<a id="47825" href="Data.Nat.Properties.html#47640" class="Function">∸-cancelˡ-≡</a> <a id="47837" class="Symbol">{</a><a id="47838" class="Argument">n</a> <a id="47840" class="Symbol">=</a> <a id="47842" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="47846" href="Data.Nat.Properties.html#47846" class="Bound">n</a><a id="47847" class="Symbol">}</a> <a id="47849" class="Symbol">(</a><a id="47850" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="47854" class="Symbol">_)</a> <a id="47859" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="47869" href="Data.Nat.Properties.html#47869" class="Bound">eq</a> <a id="47872" class="Symbol">=</a> <a id="47874" href="Relation.Nullary.Negation.Core.html#1226" class="Function">contradiction</a> <a id="47888" class="Symbol">(</a><a id="47889" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="47893" href="Data.Nat.Properties.html#47869" class="Bound">eq</a><a id="47895" class="Symbol">)</a> <a id="47897" class="Symbol">(</a><a id="47898" href="Data.Nat.Properties.html#46298" class="Function">1+m≢m∸n</a> <a id="47906" href="Data.Nat.Properties.html#47846" class="Bound">n</a><a id="47907" class="Symbol">)</a>
<a id="47909" href="Data.Nat.Properties.html#47640" class="Function">∸-cancelˡ-≡</a> <a id="47921" class="Symbol">{_}</a> <a id="47933" class="Symbol">(</a><a id="47934" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="47938" href="Data.Nat.Properties.html#47938" class="Bound">n≤m</a><a id="47941" class="Symbol">)</a> <a id="47943" class="Symbol">(</a><a id="47944" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="47948" href="Data.Nat.Properties.html#47948" class="Bound">o≤m</a><a id="47951" class="Symbol">)</a> <a id="47953" href="Data.Nat.Properties.html#47953" class="Bound">eq</a> <a id="47956" class="Symbol">=</a> <a id="47958" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="47963" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="47967" class="Symbol">(</a><a id="47968" href="Data.Nat.Properties.html#47640" class="Function">∸-cancelˡ-≡</a> <a id="47980" href="Data.Nat.Properties.html#47938" class="Bound">n≤m</a> <a id="47984" href="Data.Nat.Properties.html#47948" class="Bound">o≤m</a> <a id="47988" href="Data.Nat.Properties.html#47953" class="Bound">eq</a><a id="47990" class="Symbol">)</a>
<a id="∸-cancelʳ-≡"></a><a id="47993" href="Data.Nat.Properties.html#47993" class="Function">∸-cancelʳ-≡</a> <a id="48005" class="Symbol">:</a> <a id="48008" href="Data.Nat.Properties.html#1962" class="Generalizable">o</a> <a id="48010" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="48012" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="48014" class="Symbol"></a> <a id="48016" href="Data.Nat.Properties.html#1962" class="Generalizable">o</a> <a id="48018" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="48020" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="48022" class="Symbol"></a> <a id="48024" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="48026" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="48028" href="Data.Nat.Properties.html#1962" class="Generalizable">o</a> <a id="48030" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="48032" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="48034" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="48036" href="Data.Nat.Properties.html#1962" class="Generalizable">o</a> <a id="48038" class="Symbol"></a> <a id="48040" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="48042" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="48044" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="48046" href="Data.Nat.Properties.html#47993" class="Function">∸-cancelʳ-≡</a> <a id="48059" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="48069" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="48078" href="Data.Nat.Properties.html#48078" class="Bound">eq</a> <a id="48081" class="Symbol">=</a> <a id="48083" href="Data.Nat.Properties.html#48078" class="Bound">eq</a>
<a id="48086" href="Data.Nat.Properties.html#47993" class="Function">∸-cancelʳ-≡</a> <a id="48098" class="Symbol">(</a><a id="48099" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="48103" href="Data.Nat.Properties.html#48103" class="Bound">o≤m</a><a id="48106" class="Symbol">)</a> <a id="48108" class="Symbol">(</a><a id="48109" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="48113" href="Data.Nat.Properties.html#48113" class="Bound">o≤n</a><a id="48116" class="Symbol">)</a> <a id="48118" href="Data.Nat.Properties.html#48118" class="Bound">eq</a> <a id="48121" class="Symbol">=</a> <a id="48123" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="48128" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="48132" class="Symbol">(</a><a id="48133" href="Data.Nat.Properties.html#47993" class="Function">∸-cancelʳ-≡</a> <a id="48145" href="Data.Nat.Properties.html#48103" class="Bound">o≤m</a> <a id="48149" href="Data.Nat.Properties.html#48113" class="Bound">o≤n</a> <a id="48153" href="Data.Nat.Properties.html#48118" class="Bound">eq</a><a id="48155" class="Symbol">)</a>
<a id="m∸n≡0⇒m≤n"></a><a id="48158" href="Data.Nat.Properties.html#48158" class="Function">m∸n≡0⇒m≤n</a> <a id="48168" class="Symbol">:</a> <a id="48170" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="48172" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="48174" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="48176" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="48178" class="Number">0</a> <a id="48180" class="Symbol"></a> <a id="48182" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="48184" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="48186" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="48188" href="Data.Nat.Properties.html#48158" class="Function">m∸n≡0⇒m≤n</a> <a id="48198" class="Symbol">{</a><a id="48199" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="48203" class="Symbol">}</a> <a id="48206" class="Symbol">{_}</a> <a id="48213" class="Symbol">_</a> <a id="48217" class="Symbol">=</a> <a id="48219" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="48223" href="Data.Nat.Properties.html#48158" class="Function">m∸n≡0⇒m≤n</a> <a id="48233" class="Symbol">{</a><a id="48234" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="48238" href="Data.Nat.Properties.html#48238" class="Bound">m</a><a id="48239" class="Symbol">}</a> <a id="48241" class="Symbol">{</a><a id="48242" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="48246" href="Data.Nat.Properties.html#48246" class="Bound">n</a><a id="48247" class="Symbol">}</a> <a id="48249" href="Data.Nat.Properties.html#48249" class="Bound">eq</a> <a id="48252" class="Symbol">=</a> <a id="48254" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="48258" class="Symbol">(</a><a id="48259" href="Data.Nat.Properties.html#48158" class="Function">m∸n≡0⇒m≤n</a> <a id="48269" href="Data.Nat.Properties.html#48249" class="Bound">eq</a><a id="48271" class="Symbol">)</a>
<a id="m≤n⇒m∸n≡0"></a><a id="48274" href="Data.Nat.Properties.html#48274" class="Function">m≤n⇒m∸n≡0</a> <a id="48284" class="Symbol">:</a> <a id="48286" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="48288" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="48290" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="48292" class="Symbol"></a> <a id="48294" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="48296" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="48298" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="48300" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="48302" class="Number">0</a>
<a id="48304" href="Data.Nat.Properties.html#48274" class="Function">m≤n⇒m∸n≡0</a> <a id="48314" class="Symbol">{</a><a id="48315" class="Argument">n</a> <a id="48317" class="Symbol">=</a> <a id="48319" href="Data.Nat.Properties.html#48319" class="Bound">n</a><a id="48320" class="Symbol">}</a> <a id="48322" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="48331" class="Symbol">=</a> <a id="48333" href="Data.Nat.Properties.html#45453" class="Function">0∸n≡0</a> <a id="48339" href="Data.Nat.Properties.html#48319" class="Bound">n</a>
<a id="48341" href="Data.Nat.Properties.html#48274" class="Function">m≤n⇒m∸n≡0</a> <a id="48351" class="Symbol">{_}</a> <a id="48358" class="Symbol">(</a><a id="48359" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="48363" href="Data.Nat.Properties.html#48363" class="Bound">m≤n</a><a id="48366" class="Symbol">)</a> <a id="48368" class="Symbol">=</a> <a id="48370" href="Data.Nat.Properties.html#48274" class="Function">m≤n⇒m∸n≡0</a> <a id="48380" href="Data.Nat.Properties.html#48363" class="Bound">m≤n</a>
<a id="m&lt;n⇒0&lt;n∸m"></a><a id="48385" href="Data.Nat.Properties.html#48385" class="Function">m&lt;n⇒0&lt;n∸m</a> <a id="48395" class="Symbol">:</a> <a id="48397" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="48399" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="48401" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="48403" class="Symbol"></a> <a id="48405" class="Number">0</a> <a id="48407" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="48409" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="48411" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="48413" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a>
<a id="48415" href="Data.Nat.Properties.html#48385" class="Function">m&lt;n⇒0&lt;n∸m</a> <a id="48425" class="Symbol">{</a><a id="48426" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="48430" class="Symbol">}</a> <a id="48433" class="Symbol">{</a><a id="48434" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="48438" href="Data.Nat.Properties.html#48438" class="Bound">n</a><a id="48439" class="Symbol">}</a> <a id="48441" class="Symbol">_</a> <a id="48451" class="Symbol">=</a> <a id="48453" href="Data.Nat.Properties.html#12249" class="Function">0&lt;1+n</a>
<a id="48459" href="Data.Nat.Properties.html#48385" class="Function">m&lt;n⇒0&lt;n∸m</a> <a id="48469" class="Symbol">{</a><a id="48470" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="48474" href="Data.Nat.Properties.html#48474" class="Bound">m</a><a id="48475" class="Symbol">}</a> <a id="48477" class="Symbol">{</a><a id="48478" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="48482" href="Data.Nat.Properties.html#48482" class="Bound">n</a><a id="48483" class="Symbol">}</a> <a id="48485" class="Symbol">(</a><a id="48486" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="48490" href="Data.Nat.Properties.html#48490" class="Bound">m&lt;n</a><a id="48493" class="Symbol">)</a> <a id="48495" class="Symbol">=</a> <a id="48497" href="Data.Nat.Properties.html#48385" class="Function">m&lt;n⇒0&lt;n∸m</a> <a id="48507" href="Data.Nat.Properties.html#48490" class="Bound">m&lt;n</a>
<a id="m∸n≢0⇒n&lt;m"></a><a id="48512" href="Data.Nat.Properties.html#48512" class="Function">m∸n≢0⇒n&lt;m</a> <a id="48522" class="Symbol">:</a> <a id="48524" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="48526" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="48528" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="48530" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Function Operator"></a> <a id="48532" class="Number">0</a> <a id="48534" class="Symbol"></a> <a id="48536" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="48538" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="48540" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a>
<a id="48542" href="Data.Nat.Properties.html#48512" class="Function">m∸n≢0⇒n&lt;m</a> <a id="48552" class="Symbol">{</a><a id="48553" href="Data.Nat.Properties.html#48553" class="Bound">m</a><a id="48554" class="Symbol">}</a> <a id="48556" class="Symbol">{</a><a id="48557" href="Data.Nat.Properties.html#48557" class="Bound">n</a><a id="48558" class="Symbol">}</a> <a id="48560" href="Data.Nat.Properties.html#48560" class="Bound">m∸n≢0</a> <a id="48566" class="Keyword">with</a> <a id="48571" href="Data.Nat.Properties.html#48557" class="Bound">n</a> <a id="48573" href="Data.Nat.Properties.html#10858" class="Function Operator">&lt;?</a> <a id="48576" href="Data.Nat.Properties.html#48553" class="Bound">m</a>
<a id="48578" class="Symbol">...</a> <a id="48582" class="Symbol">|</a> <a id="48584" href="Relation.Nullary.Decidable.Core.html#1618" class="InductiveConstructor">yes</a> <a id="48588" href="Data.Nat.Properties.html#48588" class="Bound">n&lt;m</a> <a id="48592" class="Symbol">=</a> <a id="48594" href="Data.Nat.Properties.html#48588" class="Bound">n&lt;m</a>
<a id="48598" class="Symbol">...</a> <a id="48602" class="Symbol">|</a> <a id="48604" href="Relation.Nullary.Decidable.Core.html#1655" class="InductiveConstructor">no</a> <a id="48608" href="Data.Nat.Properties.html#48608" class="Bound">n≮m</a> <a id="48612" class="Symbol">=</a> <a id="48614" href="Relation.Nullary.Negation.Core.html#1226" class="Function">contradiction</a> <a id="48628" class="Symbol">(</a><a id="48629" href="Data.Nat.Properties.html#48274" class="Function">m≤n⇒m∸n≡0</a> <a id="48639" class="Symbol">(</a><a id="48640" href="Data.Nat.Properties.html#8970" class="Function">≮⇒≥</a> <a id="48644" href="Data.Nat.Properties.html#48608" class="Bound">n≮m</a><a id="48647" class="Symbol">))</a> <a id="48650" class="Bound">m∸n≢0</a>
<a id="m&gt;n⇒m∸n≢0"></a><a id="48657" href="Data.Nat.Properties.html#48657" class="Function">m&gt;n⇒m∸n≢0</a> <a id="48667" class="Symbol">:</a> <a id="48669" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="48671" href="Data.Nat.Base.html#2289" class="Function Operator">&gt;</a> <a id="48673" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="48675" class="Symbol"></a> <a id="48677" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="48679" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="48681" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="48683" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Function Operator"></a> <a id="48685" class="Number">0</a>
<a id="48687" href="Data.Nat.Properties.html#48657" class="Function">m&gt;n⇒m∸n≢0</a> <a id="48697" class="Symbol">{</a><a id="48698" class="Argument">n</a> <a id="48700" class="Symbol">=</a> <a id="48702" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="48706" href="Data.Nat.Properties.html#48706" class="Bound">n</a><a id="48707" class="Symbol">}</a> <a id="48709" class="Symbol">(</a><a id="48710" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="48714" href="Data.Nat.Properties.html#48714" class="Bound">m&gt;n</a><a id="48717" class="Symbol">)</a> <a id="48719" class="Symbol">=</a> <a id="48721" href="Data.Nat.Properties.html#48657" class="Function">m&gt;n⇒m∸n≢0</a> <a id="48731" href="Data.Nat.Properties.html#48714" class="Bound">m&gt;n</a>
<a id="m≤n⇒n∸m≤n"></a><a id="48736" href="Data.Nat.Properties.html#48736" class="Function">m≤n⇒n∸m≤n</a> <a id="48746" class="Symbol">:</a> <a id="48748" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="48750" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="48752" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="48754" class="Symbol"></a> <a id="48756" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="48758" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="48760" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="48762" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="48764" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="48766" href="Data.Nat.Properties.html#48736" class="Function">m≤n⇒n∸m≤n</a> <a id="48776" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="48786" class="Symbol">=</a> <a id="48788" href="Data.Nat.Properties.html#5242" class="Function">≤-refl</a>
<a id="48795" href="Data.Nat.Properties.html#48736" class="Function">m≤n⇒n∸m≤n</a> <a id="48805" class="Symbol">(</a><a id="48806" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="48810" href="Data.Nat.Properties.html#48810" class="Bound">m≤n</a><a id="48813" class="Symbol">)</a> <a id="48815" class="Symbol">=</a> <a id="48817" href="Data.Nat.Properties.html#7849" class="Function">m≤n⇒m≤1+n</a> <a id="48827" class="Symbol">(</a><a id="48828" href="Data.Nat.Properties.html#48736" class="Function">m≤n⇒n∸m≤n</a> <a id="48838" href="Data.Nat.Properties.html#48810" class="Bound">m≤n</a><a id="48841" class="Symbol">)</a>
<a id="48844" class="Comment">------------------------------------------------------------------------</a>
<a id="48917" class="Comment">-- Properties of _∸_ and _+_</a>
<a id="+-∸-comm"></a><a id="48947" href="Data.Nat.Properties.html#48947" class="Function">+-∸-comm</a> <a id="48956" class="Symbol">:</a> <a id="48958" class="Symbol"></a> <a id="48960" class="Symbol">{</a><a id="48961" href="Data.Nat.Properties.html#48961" class="Bound">m</a><a id="48962" class="Symbol">}</a> <a id="48964" href="Data.Nat.Properties.html#48964" class="Bound">n</a> <a id="48966" class="Symbol">{</a><a id="48967" href="Data.Nat.Properties.html#48967" class="Bound">o</a><a id="48968" class="Symbol">}</a> <a id="48970" class="Symbol"></a> <a id="48972" href="Data.Nat.Properties.html#48967" class="Bound">o</a> <a id="48974" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="48976" href="Data.Nat.Properties.html#48961" class="Bound">m</a> <a id="48978" class="Symbol"></a> <a id="48980" class="Symbol">(</a><a id="48981" href="Data.Nat.Properties.html#48961" class="Bound">m</a> <a id="48983" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="48985" href="Data.Nat.Properties.html#48964" class="Bound">n</a><a id="48986" class="Symbol">)</a> <a id="48988" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="48990" href="Data.Nat.Properties.html#48967" class="Bound">o</a> <a id="48992" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="48994" class="Symbol">(</a><a id="48995" href="Data.Nat.Properties.html#48961" class="Bound">m</a> <a id="48997" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="48999" href="Data.Nat.Properties.html#48967" class="Bound">o</a><a id="49000" class="Symbol">)</a> <a id="49002" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="49004" href="Data.Nat.Properties.html#48964" class="Bound">n</a>
<a id="49006" href="Data.Nat.Properties.html#48947" class="Function">+-∸-comm</a> <a id="49015" class="Symbol">{</a><a id="49016" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="49020" class="Symbol">}</a> <a id="49023" class="Symbol">_</a> <a id="49025" class="Symbol">{</a><a id="49026" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="49030" class="Symbol">}</a> <a id="49033" class="Symbol">_</a> <a id="49043" class="Symbol">=</a> <a id="49045" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="49050" href="Data.Nat.Properties.html#48947" class="Function">+-∸-comm</a> <a id="49059" class="Symbol">{</a><a id="49060" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="49064" href="Data.Nat.Properties.html#49064" class="Bound">m</a><a id="49065" class="Symbol">}</a> <a id="49067" class="Symbol">_</a> <a id="49069" class="Symbol">{</a><a id="49070" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="49074" class="Symbol">}</a> <a id="49077" class="Symbol">_</a> <a id="49087" class="Symbol">=</a> <a id="49089" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="49094" href="Data.Nat.Properties.html#48947" class="Function">+-∸-comm</a> <a id="49103" class="Symbol">{</a><a id="49104" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="49108" href="Data.Nat.Properties.html#49108" class="Bound">m</a><a id="49109" class="Symbol">}</a> <a id="49111" href="Data.Nat.Properties.html#49111" class="Bound">n</a> <a id="49113" class="Symbol">{</a><a id="49114" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="49118" href="Data.Nat.Properties.html#49118" class="Bound">o</a><a id="49119" class="Symbol">}</a> <a id="49121" class="Symbol">(</a><a id="49122" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="49126" href="Data.Nat.Properties.html#49126" class="Bound">o≤m</a><a id="49129" class="Symbol">)</a> <a id="49131" class="Symbol">=</a> <a id="49133" href="Data.Nat.Properties.html#48947" class="Function">+-∸-comm</a> <a id="49142" href="Data.Nat.Properties.html#49111" class="Bound">n</a> <a id="49144" href="Data.Nat.Properties.html#49126" class="Bound">o≤m</a>
<a id="∸-+-assoc"></a><a id="49149" href="Data.Nat.Properties.html#49149" class="Function">∸-+-assoc</a> <a id="49159" class="Symbol">:</a> <a id="49161" class="Symbol"></a> <a id="49163" href="Data.Nat.Properties.html#49163" class="Bound">m</a> <a id="49165" href="Data.Nat.Properties.html#49165" class="Bound">n</a> <a id="49167" href="Data.Nat.Properties.html#49167" class="Bound">o</a> <a id="49169" class="Symbol"></a> <a id="49171" class="Symbol">(</a><a id="49172" href="Data.Nat.Properties.html#49163" class="Bound">m</a> <a id="49174" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="49176" href="Data.Nat.Properties.html#49165" class="Bound">n</a><a id="49177" class="Symbol">)</a> <a id="49179" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="49181" href="Data.Nat.Properties.html#49167" class="Bound">o</a> <a id="49183" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="49185" href="Data.Nat.Properties.html#49163" class="Bound">m</a> <a id="49187" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="49189" class="Symbol">(</a><a id="49190" href="Data.Nat.Properties.html#49165" class="Bound">n</a> <a id="49192" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="49194" href="Data.Nat.Properties.html#49167" class="Bound">o</a><a id="49195" class="Symbol">)</a>
<a id="49197" href="Data.Nat.Properties.html#49149" class="Function">∸-+-assoc</a> <a id="49207" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="49212" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="49217" href="Data.Nat.Properties.html#49217" class="Bound">o</a> <a id="49219" class="Symbol">=</a> <a id="49221" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="49226" href="Data.Nat.Properties.html#49149" class="Function">∸-+-assoc</a> <a id="49236" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="49241" class="Symbol">(</a><a id="49242" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="49246" href="Data.Nat.Properties.html#49246" class="Bound">n</a><a id="49247" class="Symbol">)</a> <a id="49249" href="Data.Nat.Properties.html#49249" class="Bound">o</a> <a id="49251" class="Symbol">=</a> <a id="49253" href="Data.Nat.Properties.html#45453" class="Function">0∸n≡0</a> <a id="49259" href="Data.Nat.Properties.html#49249" class="Bound">o</a>
<a id="49261" href="Data.Nat.Properties.html#49149" class="Function">∸-+-assoc</a> <a id="49271" class="Symbol">(</a><a id="49272" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="49276" href="Data.Nat.Properties.html#49276" class="Bound">m</a><a id="49277" class="Symbol">)</a> <a id="49279" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="49284" href="Data.Nat.Properties.html#49284" class="Bound">o</a> <a id="49286" class="Symbol">=</a> <a id="49288" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="49293" href="Data.Nat.Properties.html#49149" class="Function">∸-+-assoc</a> <a id="49303" class="Symbol">(</a><a id="49304" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="49308" href="Data.Nat.Properties.html#49308" class="Bound">m</a><a id="49309" class="Symbol">)</a> <a id="49311" class="Symbol">(</a><a id="49312" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="49316" href="Data.Nat.Properties.html#49316" class="Bound">n</a><a id="49317" class="Symbol">)</a> <a id="49319" href="Data.Nat.Properties.html#49319" class="Bound">o</a> <a id="49321" class="Symbol">=</a> <a id="49323" href="Data.Nat.Properties.html#49149" class="Function">∸-+-assoc</a> <a id="49333" href="Data.Nat.Properties.html#49308" class="Bound">m</a> <a id="49335" href="Data.Nat.Properties.html#49316" class="Bound">n</a> <a id="49337" href="Data.Nat.Properties.html#49319" class="Bound">o</a>
<a id="+-∸-assoc"></a><a id="49340" href="Data.Nat.Properties.html#49340" class="Function">+-∸-assoc</a> <a id="49350" class="Symbol">:</a> <a id="49352" class="Symbol"></a> <a id="49354" href="Data.Nat.Properties.html#49354" class="Bound">m</a> <a id="49356" class="Symbol">{</a><a id="49357" href="Data.Nat.Properties.html#49357" class="Bound">n</a> <a id="49359" href="Data.Nat.Properties.html#49359" class="Bound">o</a><a id="49360" class="Symbol">}</a> <a id="49362" class="Symbol"></a> <a id="49364" href="Data.Nat.Properties.html#49359" class="Bound">o</a> <a id="49366" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="49368" href="Data.Nat.Properties.html#49357" class="Bound">n</a> <a id="49370" class="Symbol"></a> <a id="49372" class="Symbol">(</a><a id="49373" href="Data.Nat.Properties.html#49354" class="Bound">m</a> <a id="49375" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="49377" href="Data.Nat.Properties.html#49357" class="Bound">n</a><a id="49378" class="Symbol">)</a> <a id="49380" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="49382" href="Data.Nat.Properties.html#49359" class="Bound">o</a> <a id="49384" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="49386" href="Data.Nat.Properties.html#49354" class="Bound">m</a> <a id="49388" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="49390" class="Symbol">(</a><a id="49391" href="Data.Nat.Properties.html#49357" class="Bound">n</a> <a id="49393" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="49395" href="Data.Nat.Properties.html#49359" class="Bound">o</a><a id="49396" class="Symbol">)</a>
<a id="49398" href="Data.Nat.Properties.html#49340" class="Function">+-∸-assoc</a> <a id="49408" href="Data.Nat.Properties.html#49408" class="Bound">m</a> <a id="49410" class="Symbol">(</a><a id="49411" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="49415" class="Symbol">{</a><a id="49416" class="Argument">n</a> <a id="49418" class="Symbol">=</a> <a id="49420" href="Data.Nat.Properties.html#49420" class="Bound">n</a><a id="49421" class="Symbol">})</a> <a id="49436" class="Symbol">=</a> <a id="49438" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a> <a id="49453" href="Data.Nat.Properties.html#49408" class="Bound">m</a> <a id="49455" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="49457" href="Data.Nat.Properties.html#49420" class="Bound">n</a> <a id="49459" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="49461" href="Data.Nat.Properties.html#49340" class="Function">+-∸-assoc</a> <a id="49471" href="Data.Nat.Properties.html#49471" class="Bound">m</a> <a id="49473" class="Symbol">(</a><a id="49474" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="49478" class="Symbol">{</a><a id="49479" class="Argument">m</a> <a id="49481" class="Symbol">=</a> <a id="49483" href="Data.Nat.Properties.html#49483" class="Bound">o</a><a id="49484" class="Symbol">}</a> <a id="49486" class="Symbol">{</a><a id="49487" class="Argument">n</a> <a id="49489" class="Symbol">=</a> <a id="49491" href="Data.Nat.Properties.html#49491" class="Bound">n</a><a id="49492" class="Symbol">}</a> <a id="49494" href="Data.Nat.Properties.html#49494" class="Bound">o≤n</a><a id="49497" class="Symbol">)</a> <a id="49499" class="Symbol">=</a> <a id="49501" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a>
<a id="49518" class="Symbol">(</a><a id="49519" href="Data.Nat.Properties.html#49471" class="Bound">m</a> <a id="49521" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="49523" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="49527" href="Data.Nat.Properties.html#49491" class="Bound">n</a><a id="49528" class="Symbol">)</a> <a id="49530" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="49532" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="49536" href="Data.Nat.Properties.html#49483" class="Bound">o</a> <a id="49539" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="49542" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="49547" class="Symbol">(</a><a id="49548" href="Data.Nat.Base.html#4456" class="Primitive Operator">_∸</a> <a id="49551" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="49555" href="Data.Nat.Properties.html#49483" class="Bound">o</a><a id="49556" class="Symbol">)</a> <a id="49558" class="Symbol">(</a><a id="49559" href="Data.Nat.Properties.html#14342" class="Function">+-suc</a> <a id="49565" href="Data.Nat.Properties.html#49471" class="Bound">m</a> <a id="49567" href="Data.Nat.Properties.html#49491" class="Bound">n</a><a id="49568" class="Symbol">)</a> <a id="49570" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="49574" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="49578" class="Symbol">(</a><a id="49579" href="Data.Nat.Properties.html#49471" class="Bound">m</a> <a id="49581" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="49583" href="Data.Nat.Properties.html#49491" class="Bound">n</a><a id="49584" class="Symbol">)</a> <a id="49586" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="49588" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="49592" href="Data.Nat.Properties.html#49483" class="Bound">o</a> <a id="49595" href="Relation.Binary.Reasoning.Syntax.html#11017" class="Function">≡⟨⟩</a>
<a id="49601" class="Symbol">(</a><a id="49602" href="Data.Nat.Properties.html#49471" class="Bound">m</a> <a id="49604" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="49606" href="Data.Nat.Properties.html#49491" class="Bound">n</a><a id="49607" class="Symbol">)</a> <a id="49609" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="49611" href="Data.Nat.Properties.html#49483" class="Bound">o</a> <a id="49622" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="49625" href="Data.Nat.Properties.html#49340" class="Function">+-∸-assoc</a> <a id="49635" href="Data.Nat.Properties.html#49471" class="Bound">m</a> <a id="49637" href="Data.Nat.Properties.html#49494" class="Bound">o≤n</a> <a id="49641" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="49645" href="Data.Nat.Properties.html#49471" class="Bound">m</a> <a id="49647" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="49649" class="Symbol">(</a><a id="49650" href="Data.Nat.Properties.html#49491" class="Bound">n</a> <a id="49652" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="49654" href="Data.Nat.Properties.html#49483" class="Bound">o</a><a id="49655" class="Symbol">)</a> <a id="49666" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="m+n≤o⇒m≤o∸n"></a><a id="49669" href="Data.Nat.Properties.html#49669" class="Function">m+n≤o⇒m≤o∸n</a> <a id="49681" class="Symbol">:</a> <a id="49683" class="Symbol"></a> <a id="49685" href="Data.Nat.Properties.html#49685" class="Bound">m</a> <a id="49687" href="Data.Nat.Properties.html#49687" class="Bound">n</a> <a id="49689" href="Data.Nat.Properties.html#49689" class="Bound">o</a> <a id="49691" class="Symbol"></a> <a id="49693" href="Data.Nat.Properties.html#49685" class="Bound">m</a> <a id="49695" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="49697" href="Data.Nat.Properties.html#49687" class="Bound">n</a> <a id="49699" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="49701" href="Data.Nat.Properties.html#49689" class="Bound">o</a> <a id="49703" class="Symbol"></a> <a id="49705" href="Data.Nat.Properties.html#49685" class="Bound">m</a> <a id="49707" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="49709" href="Data.Nat.Properties.html#49689" class="Bound">o</a> <a id="49711" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="49713" href="Data.Nat.Properties.html#49687" class="Bound">n</a>
<a id="49715" href="Data.Nat.Properties.html#49669" class="Function">m+n≤o⇒m≤o∸n</a> <a id="49727" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="49735" href="Data.Nat.Properties.html#49735" class="Bound">n</a> <a id="49737" href="Data.Nat.Properties.html#49737" class="Bound">o</a> <a id="49745" href="Data.Nat.Properties.html#49745" class="Bound">le</a> <a id="49754" class="Symbol">=</a> <a id="49756" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="49760" href="Data.Nat.Properties.html#49669" class="Function">m+n≤o⇒m≤o∸n</a> <a id="49772" class="Symbol">(</a><a id="49773" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="49777" href="Data.Nat.Properties.html#49777" class="Bound">m</a><a id="49778" class="Symbol">)</a> <a id="49780" href="Data.Nat.Properties.html#49780" class="Bound">n</a> <a id="49782" class="Symbol">(</a><a id="49783" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="49787" href="Data.Nat.Properties.html#49787" class="Bound">o</a><a id="49788" class="Symbol">)</a> <a id="49790" class="Symbol">(</a><a id="49791" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="49795" href="Data.Nat.Properties.html#49795" class="Bound">le</a><a id="49797" class="Symbol">)</a>
<a id="49801" class="Keyword">rewrite</a> <a id="49809" href="Data.Nat.Properties.html#49340" class="Function">+-∸-assoc</a> <a id="49819" class="Number">1</a> <a id="49821" class="Symbol">(</a><a id="49822" href="Data.Nat.Properties.html#18714" class="Function">m+n≤o⇒n≤o</a> <a id="49832" href="Data.Nat.Properties.html#49777" class="Bound">m</a> <a id="49834" href="Data.Nat.Properties.html#49795" class="Bound">le</a><a id="49836" class="Symbol">)</a> <a id="49838" class="Symbol">=</a> <a id="49840" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="49844" class="Symbol">(</a><a id="49845" href="Data.Nat.Properties.html#49669" class="Function">m+n≤o⇒m≤o∸n</a> <a id="49857" href="Data.Nat.Properties.html#49777" class="Bound">m</a> <a id="49859" href="Data.Nat.Properties.html#49780" class="Bound">n</a> <a id="49861" href="Data.Nat.Properties.html#49787" class="Bound">o</a> <a id="49863" href="Data.Nat.Properties.html#49795" class="Bound">le</a><a id="49865" class="Symbol">)</a>
<a id="m≤o∸n⇒m+n≤o"></a><a id="49868" href="Data.Nat.Properties.html#49868" class="Function">m≤o∸n⇒m+n≤o</a> <a id="49880" class="Symbol">:</a> <a id="49882" class="Symbol"></a> <a id="49884" href="Data.Nat.Properties.html#49884" class="Bound">m</a> <a id="49886" class="Symbol">{</a><a id="49887" href="Data.Nat.Properties.html#49887" class="Bound">n</a> <a id="49889" href="Data.Nat.Properties.html#49889" class="Bound">o</a><a id="49890" class="Symbol">}</a> <a id="49892" class="Symbol">(</a><a id="49893" href="Data.Nat.Properties.html#49893" class="Bound">n≤o</a> <a id="49897" class="Symbol">:</a> <a id="49899" href="Data.Nat.Properties.html#49887" class="Bound">n</a> <a id="49901" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="49903" href="Data.Nat.Properties.html#49889" class="Bound">o</a><a id="49904" class="Symbol">)</a> <a id="49906" class="Symbol"></a> <a id="49908" href="Data.Nat.Properties.html#49884" class="Bound">m</a> <a id="49910" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="49912" href="Data.Nat.Properties.html#49889" class="Bound">o</a> <a id="49914" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="49916" href="Data.Nat.Properties.html#49887" class="Bound">n</a> <a id="49918" class="Symbol"></a> <a id="49920" href="Data.Nat.Properties.html#49884" class="Bound">m</a> <a id="49922" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="49924" href="Data.Nat.Properties.html#49887" class="Bound">n</a> <a id="49926" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="49928" href="Data.Nat.Properties.html#49889" class="Bound">o</a>
<a id="49930" href="Data.Nat.Properties.html#49868" class="Function">m≤o∸n⇒m+n≤o</a> <a id="49942" href="Data.Nat.Properties.html#49942" class="Bound">m</a> <a id="49952" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="49962" href="Data.Nat.Properties.html#49962" class="Bound">le</a> <a id="49965" class="Keyword">rewrite</a> <a id="49973" href="Data.Nat.Properties.html#14706" class="Function">+-identityʳ</a> <a id="49985" href="Data.Nat.Properties.html#49942" class="Bound">m</a> <a id="49987" class="Symbol">=</a> <a id="49989" href="Data.Nat.Properties.html#49962" class="Bound">le</a>
<a id="49992" href="Data.Nat.Properties.html#49868" class="Function">m≤o∸n⇒m+n≤o</a> <a id="50004" href="Data.Nat.Properties.html#50004" class="Bound">m</a> <a id="50006" class="Symbol">{</a><a id="50007" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="50011" href="Data.Nat.Properties.html#50011" class="Bound">n</a><a id="50012" class="Symbol">}</a> <a id="50014" class="Symbol">(</a><a id="50015" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="50019" href="Data.Nat.Properties.html#50019" class="Bound">n≤o</a><a id="50022" class="Symbol">)</a> <a id="50024" href="Data.Nat.Properties.html#50024" class="Bound">le</a> <a id="50027" class="Keyword">rewrite</a> <a id="50035" href="Data.Nat.Properties.html#14342" class="Function">+-suc</a> <a id="50041" href="Data.Nat.Properties.html#50004" class="Bound">m</a> <a id="50043" href="Data.Nat.Properties.html#50011" class="Bound">n</a> <a id="50045" class="Symbol">=</a> <a id="50047" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="50051" class="Symbol">(</a><a id="50052" href="Data.Nat.Properties.html#49868" class="Function">m≤o∸n⇒m+n≤o</a> <a id="50064" href="Data.Nat.Properties.html#50004" class="Bound">m</a> <a id="50066" href="Data.Nat.Properties.html#50019" class="Bound">n≤o</a> <a id="50070" href="Data.Nat.Properties.html#50024" class="Bound">le</a><a id="50072" class="Symbol">)</a>
<a id="m≤n+m∸n"></a><a id="50075" href="Data.Nat.Properties.html#50075" class="Function">m≤n+m∸n</a> <a id="50083" class="Symbol">:</a> <a id="50085" class="Symbol"></a> <a id="50087" href="Data.Nat.Properties.html#50087" class="Bound">m</a> <a id="50089" href="Data.Nat.Properties.html#50089" class="Bound">n</a> <a id="50091" class="Symbol"></a> <a id="50093" href="Data.Nat.Properties.html#50087" class="Bound">m</a> <a id="50095" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="50097" href="Data.Nat.Properties.html#50089" class="Bound">n</a> <a id="50099" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="50101" class="Symbol">(</a><a id="50102" href="Data.Nat.Properties.html#50087" class="Bound">m</a> <a id="50104" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="50106" href="Data.Nat.Properties.html#50089" class="Bound">n</a><a id="50107" class="Symbol">)</a>
<a id="50109" href="Data.Nat.Properties.html#50075" class="Function">m≤n+m∸n</a> <a id="50117" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="50125" href="Data.Nat.Properties.html#50125" class="Bound">n</a> <a id="50133" class="Symbol">=</a> <a id="50135" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="50139" href="Data.Nat.Properties.html#50075" class="Function">m≤n+m∸n</a> <a id="50147" class="Symbol">(</a><a id="50148" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="50152" href="Data.Nat.Properties.html#50152" class="Bound">m</a><a id="50153" class="Symbol">)</a> <a id="50155" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="50163" class="Symbol">=</a> <a id="50165" href="Data.Nat.Properties.html#5242" class="Function">≤-refl</a>
<a id="50172" href="Data.Nat.Properties.html#50075" class="Function">m≤n+m∸n</a> <a id="50180" class="Symbol">(</a><a id="50181" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="50185" href="Data.Nat.Properties.html#50185" class="Bound">m</a><a id="50186" class="Symbol">)</a> <a id="50188" class="Symbol">(</a><a id="50189" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="50193" href="Data.Nat.Properties.html#50193" class="Bound">n</a><a id="50194" class="Symbol">)</a> <a id="50196" class="Symbol">=</a> <a id="50198" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="50202" class="Symbol">(</a><a id="50203" href="Data.Nat.Properties.html#50075" class="Function">m≤n+m∸n</a> <a id="50211" href="Data.Nat.Properties.html#50185" class="Bound">m</a> <a id="50213" href="Data.Nat.Properties.html#50193" class="Bound">n</a><a id="50214" class="Symbol">)</a>
<a id="m+n∸n≡m"></a><a id="50217" href="Data.Nat.Properties.html#50217" class="Function">m+n∸n≡m</a> <a id="50225" class="Symbol">:</a> <a id="50227" class="Symbol"></a> <a id="50229" href="Data.Nat.Properties.html#50229" class="Bound">m</a> <a id="50231" href="Data.Nat.Properties.html#50231" class="Bound">n</a> <a id="50233" class="Symbol"></a> <a id="50235" href="Data.Nat.Properties.html#50229" class="Bound">m</a> <a id="50237" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="50239" href="Data.Nat.Properties.html#50231" class="Bound">n</a> <a id="50241" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="50243" href="Data.Nat.Properties.html#50231" class="Bound">n</a> <a id="50245" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="50247" href="Data.Nat.Properties.html#50229" class="Bound">m</a>
<a id="50249" href="Data.Nat.Properties.html#50217" class="Function">m+n∸n≡m</a> <a id="50257" href="Data.Nat.Properties.html#50257" class="Bound">m</a> <a id="50259" href="Data.Nat.Properties.html#50259" class="Bound">n</a> <a id="50261" class="Symbol">=</a> <a id="50263" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a>
<a id="50280" class="Symbol">(</a><a id="50281" href="Data.Nat.Properties.html#50257" class="Bound">m</a> <a id="50283" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="50285" href="Data.Nat.Properties.html#50259" class="Bound">n</a><a id="50286" class="Symbol">)</a> <a id="50288" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="50290" href="Data.Nat.Properties.html#50259" class="Bound">n</a> <a id="50293" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="50296" href="Data.Nat.Properties.html#49340" class="Function">+-∸-assoc</a> <a id="50306" href="Data.Nat.Properties.html#50257" class="Bound">m</a> <a id="50308" class="Symbol">(</a><a id="50309" href="Data.Nat.Properties.html#5242" class="Function">≤-refl</a> <a id="50316" class="Symbol">{</a><a id="50317" class="Argument">x</a> <a id="50319" class="Symbol">=</a> <a id="50321" href="Data.Nat.Properties.html#50259" class="Bound">n</a><a id="50322" class="Symbol">})</a> <a id="50325" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="50329" href="Data.Nat.Properties.html#50257" class="Bound">m</a> <a id="50331" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="50333" class="Symbol">(</a><a id="50334" href="Data.Nat.Properties.html#50259" class="Bound">n</a> <a id="50336" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="50338" href="Data.Nat.Properties.html#50259" class="Bound">n</a><a id="50339" class="Symbol">)</a> <a id="50342" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="50345" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="50350" class="Symbol">(</a><a id="50351" href="Data.Nat.Properties.html#50257" class="Bound">m</a> <a id="50353" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+_</a><a id="50355" class="Symbol">)</a> <a id="50357" class="Symbol">(</a><a id="50358" href="Data.Nat.Properties.html#45522" class="Function">n∸n≡0</a> <a id="50364" href="Data.Nat.Properties.html#50259" class="Bound">n</a><a id="50365" class="Symbol">)</a> <a id="50367" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="50371" href="Data.Nat.Properties.html#50257" class="Bound">m</a> <a id="50373" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="50375" class="Number">0</a> <a id="50384" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="50387" href="Data.Nat.Properties.html#14706" class="Function">+-identityʳ</a> <a id="50399" href="Data.Nat.Properties.html#50257" class="Bound">m</a> <a id="50401" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="50405" href="Data.Nat.Properties.html#50257" class="Bound">m</a> <a id="50418" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="m+n∸m≡n"></a><a id="50421" href="Data.Nat.Properties.html#50421" class="Function">m+n∸m≡n</a> <a id="50429" class="Symbol">:</a> <a id="50431" class="Symbol"></a> <a id="50433" href="Data.Nat.Properties.html#50433" class="Bound">m</a> <a id="50435" href="Data.Nat.Properties.html#50435" class="Bound">n</a> <a id="50437" class="Symbol"></a> <a id="50439" href="Data.Nat.Properties.html#50433" class="Bound">m</a> <a id="50441" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="50443" href="Data.Nat.Properties.html#50435" class="Bound">n</a> <a id="50445" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="50447" href="Data.Nat.Properties.html#50433" class="Bound">m</a> <a id="50449" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="50451" href="Data.Nat.Properties.html#50435" class="Bound">n</a>
<a id="50453" href="Data.Nat.Properties.html#50421" class="Function">m+n∸m≡n</a> <a id="50461" href="Data.Nat.Properties.html#50461" class="Bound">m</a> <a id="50463" href="Data.Nat.Properties.html#50463" class="Bound">n</a> <a id="50465" class="Symbol">=</a> <a id="50467" href="Relation.Binary.PropositionalEquality.Core.html#1757" class="Function">trans</a> <a id="50473" class="Symbol">(</a><a id="50474" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="50479" class="Symbol">(</a><a id="50480" href="Data.Nat.Base.html#4456" class="Primitive Operator">_∸</a> <a id="50483" href="Data.Nat.Properties.html#50461" class="Bound">m</a><a id="50484" class="Symbol">)</a> <a id="50486" class="Symbol">(</a><a id="50487" href="Data.Nat.Properties.html#14883" class="Function">+-comm</a> <a id="50494" href="Data.Nat.Properties.html#50461" class="Bound">m</a> <a id="50496" href="Data.Nat.Properties.html#50463" class="Bound">n</a><a id="50497" class="Symbol">))</a> <a id="50500" class="Symbol">(</a><a id="50501" href="Data.Nat.Properties.html#50217" class="Function">m+n∸n≡m</a> <a id="50509" href="Data.Nat.Properties.html#50463" class="Bound">n</a> <a id="50511" href="Data.Nat.Properties.html#50461" class="Bound">m</a><a id="50512" class="Symbol">)</a>
<a id="m+[n∸m]≡n"></a><a id="50515" href="Data.Nat.Properties.html#50515" class="Function">m+[n∸m]≡n</a> <a id="50525" class="Symbol">:</a> <a id="50527" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="50529" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="50531" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="50533" class="Symbol"></a> <a id="50535" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="50537" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="50539" class="Symbol">(</a><a id="50540" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="50542" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="50544" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a><a id="50545" class="Symbol">)</a> <a id="50547" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="50549" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="50551" href="Data.Nat.Properties.html#50515" class="Function">m+[n∸m]≡n</a> <a id="50561" class="Symbol">{</a><a id="50562" href="Data.Nat.Properties.html#50562" class="Bound">m</a><a id="50563" class="Symbol">}</a> <a id="50565" class="Symbol">{</a><a id="50566" href="Data.Nat.Properties.html#50566" class="Bound">n</a><a id="50567" class="Symbol">}</a> <a id="50569" href="Data.Nat.Properties.html#50569" class="Bound">m≤n</a> <a id="50573" class="Symbol">=</a> <a id="50575" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a>
<a id="50592" href="Data.Nat.Properties.html#50562" class="Bound">m</a> <a id="50594" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="50596" class="Symbol">(</a><a id="50597" href="Data.Nat.Properties.html#50566" class="Bound">n</a> <a id="50599" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="50601" href="Data.Nat.Properties.html#50562" class="Bound">m</a><a id="50602" class="Symbol">)</a> <a id="50605" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="50608" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="50612" href="Function.Base.html#1974" class="Function Operator">$</a> <a id="50614" href="Data.Nat.Properties.html#49340" class="Function">+-∸-assoc</a> <a id="50624" href="Data.Nat.Properties.html#50562" class="Bound">m</a> <a id="50626" href="Data.Nat.Properties.html#50569" class="Bound">m≤n</a> <a id="50630" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="50634" class="Symbol">(</a><a id="50635" href="Data.Nat.Properties.html#50562" class="Bound">m</a> <a id="50637" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="50639" href="Data.Nat.Properties.html#50566" class="Bound">n</a><a id="50640" class="Symbol">)</a> <a id="50642" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="50644" href="Data.Nat.Properties.html#50562" class="Bound">m</a> <a id="50647" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="50650" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="50655" class="Symbol">(</a><a id="50656" href="Data.Nat.Base.html#4456" class="Primitive Operator">_∸</a> <a id="50659" href="Data.Nat.Properties.html#50562" class="Bound">m</a><a id="50660" class="Symbol">)</a> <a id="50662" class="Symbol">(</a><a id="50663" href="Data.Nat.Properties.html#14883" class="Function">+-comm</a> <a id="50670" href="Data.Nat.Properties.html#50562" class="Bound">m</a> <a id="50672" href="Data.Nat.Properties.html#50566" class="Bound">n</a><a id="50673" class="Symbol">)</a> <a id="50675" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="50679" class="Symbol">(</a><a id="50680" href="Data.Nat.Properties.html#50566" class="Bound">n</a> <a id="50682" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="50684" href="Data.Nat.Properties.html#50562" class="Bound">m</a><a id="50685" class="Symbol">)</a> <a id="50687" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="50689" href="Data.Nat.Properties.html#50562" class="Bound">m</a> <a id="50692" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="50695" href="Data.Nat.Properties.html#50217" class="Function">m+n∸n≡m</a> <a id="50703" href="Data.Nat.Properties.html#50566" class="Bound">n</a> <a id="50705" href="Data.Nat.Properties.html#50562" class="Bound">m</a> <a id="50707" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="50711" href="Data.Nat.Properties.html#50566" class="Bound">n</a> <a id="50724" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="m∸n+n≡m"></a><a id="50727" href="Data.Nat.Properties.html#50727" class="Function">m∸n+n≡m</a> <a id="50735" class="Symbol">:</a> <a id="50737" class="Symbol"></a> <a id="50739" class="Symbol">{</a><a id="50740" href="Data.Nat.Properties.html#50740" class="Bound">m</a> <a id="50742" href="Data.Nat.Properties.html#50742" class="Bound">n</a><a id="50743" class="Symbol">}</a> <a id="50745" class="Symbol"></a> <a id="50747" href="Data.Nat.Properties.html#50742" class="Bound">n</a> <a id="50749" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="50751" href="Data.Nat.Properties.html#50740" class="Bound">m</a> <a id="50753" class="Symbol"></a> <a id="50755" class="Symbol">(</a><a id="50756" href="Data.Nat.Properties.html#50740" class="Bound">m</a> <a id="50758" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="50760" href="Data.Nat.Properties.html#50742" class="Bound">n</a><a id="50761" class="Symbol">)</a> <a id="50763" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="50765" href="Data.Nat.Properties.html#50742" class="Bound">n</a> <a id="50767" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="50769" href="Data.Nat.Properties.html#50740" class="Bound">m</a>
<a id="50771" href="Data.Nat.Properties.html#50727" class="Function">m∸n+n≡m</a> <a id="50779" class="Symbol">{</a><a id="50780" href="Data.Nat.Properties.html#50780" class="Bound">m</a><a id="50781" class="Symbol">}</a> <a id="50783" class="Symbol">{</a><a id="50784" href="Data.Nat.Properties.html#50784" class="Bound">n</a><a id="50785" class="Symbol">}</a> <a id="50787" href="Data.Nat.Properties.html#50787" class="Bound">n≤m</a> <a id="50791" class="Symbol">=</a> <a id="50793" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a>
<a id="50810" class="Symbol">(</a><a id="50811" href="Data.Nat.Properties.html#50780" class="Bound">m</a> <a id="50813" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="50815" href="Data.Nat.Properties.html#50784" class="Bound">n</a><a id="50816" class="Symbol">)</a> <a id="50818" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="50820" href="Data.Nat.Properties.html#50784" class="Bound">n</a> <a id="50822" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="50825" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="50829" class="Symbol">(</a><a id="50830" href="Data.Nat.Properties.html#48947" class="Function">+-∸-comm</a> <a id="50839" href="Data.Nat.Properties.html#50784" class="Bound">n</a> <a id="50841" href="Data.Nat.Properties.html#50787" class="Bound">n≤m</a><a id="50844" class="Symbol">)</a> <a id="50846" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="50850" class="Symbol">(</a><a id="50851" href="Data.Nat.Properties.html#50780" class="Bound">m</a> <a id="50853" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="50855" href="Data.Nat.Properties.html#50784" class="Bound">n</a><a id="50856" class="Symbol">)</a> <a id="50858" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="50860" href="Data.Nat.Properties.html#50784" class="Bound">n</a> <a id="50862" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="50865" href="Data.Nat.Properties.html#50217" class="Function">m+n∸n≡m</a> <a id="50873" href="Data.Nat.Properties.html#50780" class="Bound">m</a> <a id="50875" href="Data.Nat.Properties.html#50784" class="Bound">n</a> <a id="50877" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="50881" href="Data.Nat.Properties.html#50780" class="Bound">m</a> <a id="50893" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="m∸[m∸n]≡n"></a><a id="50896" href="Data.Nat.Properties.html#50896" class="Function">m∸[m∸n]≡n</a> <a id="50906" class="Symbol">:</a> <a id="50908" class="Symbol"></a> <a id="50910" class="Symbol">{</a><a id="50911" href="Data.Nat.Properties.html#50911" class="Bound">m</a> <a id="50913" href="Data.Nat.Properties.html#50913" class="Bound">n</a><a id="50914" class="Symbol">}</a> <a id="50916" class="Symbol"></a> <a id="50918" href="Data.Nat.Properties.html#50913" class="Bound">n</a> <a id="50920" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="50922" href="Data.Nat.Properties.html#50911" class="Bound">m</a> <a id="50924" class="Symbol"></a> <a id="50926" href="Data.Nat.Properties.html#50911" class="Bound">m</a> <a id="50928" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="50930" class="Symbol">(</a><a id="50931" href="Data.Nat.Properties.html#50911" class="Bound">m</a> <a id="50933" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="50935" href="Data.Nat.Properties.html#50913" class="Bound">n</a><a id="50936" class="Symbol">)</a> <a id="50938" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="50940" href="Data.Nat.Properties.html#50913" class="Bound">n</a>
<a id="50942" href="Data.Nat.Properties.html#50896" class="Function">m∸[m∸n]≡n</a> <a id="50952" class="Symbol">{</a><a id="50953" href="Data.Nat.Properties.html#50953" class="Bound">m</a><a id="50954" class="Symbol">}</a> <a id="50960" class="Symbol">{_}</a> <a id="50968" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="50978" class="Symbol">=</a> <a id="50980" href="Data.Nat.Properties.html#45522" class="Function">n∸n≡0</a> <a id="50986" href="Data.Nat.Properties.html#50953" class="Bound">m</a>
<a id="50988" href="Data.Nat.Properties.html#50896" class="Function">m∸[m∸n]≡n</a> <a id="50998" class="Symbol">{</a><a id="50999" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="51003" href="Data.Nat.Properties.html#51003" class="Bound">m</a><a id="51004" class="Symbol">}</a> <a id="51006" class="Symbol">{</a><a id="51007" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="51011" href="Data.Nat.Properties.html#51011" class="Bound">n</a><a id="51012" class="Symbol">}</a> <a id="51014" class="Symbol">(</a><a id="51015" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="51019" href="Data.Nat.Properties.html#51019" class="Bound">n≤m</a><a id="51022" class="Symbol">)</a> <a id="51024" class="Symbol">=</a> <a id="51026" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a>
<a id="51043" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="51047" href="Data.Nat.Properties.html#51003" class="Bound">m</a> <a id="51049" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="51051" class="Symbol">(</a><a id="51052" href="Data.Nat.Properties.html#51003" class="Bound">m</a> <a id="51054" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="51056" href="Data.Nat.Properties.html#51011" class="Bound">n</a><a id="51057" class="Symbol">)</a> <a id="51061" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="51064" href="Data.Nat.Properties.html#49340" class="Function">+-∸-assoc</a> <a id="51074" class="Number">1</a> <a id="51076" class="Symbol">(</a><a id="51077" href="Data.Nat.Properties.html#46038" class="Function">m∸n≤m</a> <a id="51083" href="Data.Nat.Properties.html#51003" class="Bound">m</a> <a id="51085" href="Data.Nat.Properties.html#51011" class="Bound">n</a><a id="51086" class="Symbol">)</a> <a id="51088" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="51092" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="51096" class="Symbol">(</a><a id="51097" href="Data.Nat.Properties.html#51003" class="Bound">m</a> <a id="51099" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="51101" class="Symbol">(</a><a id="51102" href="Data.Nat.Properties.html#51003" class="Bound">m</a> <a id="51104" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="51106" href="Data.Nat.Properties.html#51011" class="Bound">n</a><a id="51107" class="Symbol">))</a> <a id="51110" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="51113" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="51118" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="51122" class="Symbol">(</a><a id="51123" href="Data.Nat.Properties.html#50896" class="Function">m∸[m∸n]≡n</a> <a id="51133" href="Data.Nat.Properties.html#51019" class="Bound">n≤m</a><a id="51136" class="Symbol">)</a> <a id="51138" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="51142" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="51146" href="Data.Nat.Properties.html#51011" class="Bound">n</a> <a id="51160" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="[m+n]∸[m+o]≡n∸o"></a><a id="51163" href="Data.Nat.Properties.html#51163" class="Function">[m+n]∸[m+o]≡n∸o</a> <a id="51179" class="Symbol">:</a> <a id="51181" class="Symbol"></a> <a id="51183" href="Data.Nat.Properties.html#51183" class="Bound">m</a> <a id="51185" href="Data.Nat.Properties.html#51185" class="Bound">n</a> <a id="51187" href="Data.Nat.Properties.html#51187" class="Bound">o</a> <a id="51189" class="Symbol"></a> <a id="51191" class="Symbol">(</a><a id="51192" href="Data.Nat.Properties.html#51183" class="Bound">m</a> <a id="51194" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="51196" href="Data.Nat.Properties.html#51185" class="Bound">n</a><a id="51197" class="Symbol">)</a> <a id="51199" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="51201" class="Symbol">(</a><a id="51202" href="Data.Nat.Properties.html#51183" class="Bound">m</a> <a id="51204" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="51206" href="Data.Nat.Properties.html#51187" class="Bound">o</a><a id="51207" class="Symbol">)</a> <a id="51209" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="51211" href="Data.Nat.Properties.html#51185" class="Bound">n</a> <a id="51213" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="51215" href="Data.Nat.Properties.html#51187" class="Bound">o</a>
<a id="51217" href="Data.Nat.Properties.html#51163" class="Function">[m+n]∸[m+o]≡n∸o</a> <a id="51233" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="51241" href="Data.Nat.Properties.html#51241" class="Bound">n</a> <a id="51243" href="Data.Nat.Properties.html#51243" class="Bound">o</a> <a id="51245" class="Symbol">=</a> <a id="51247" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="51252" href="Data.Nat.Properties.html#51163" class="Function">[m+n]∸[m+o]≡n∸o</a> <a id="51268" class="Symbol">(</a><a id="51269" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="51273" href="Data.Nat.Properties.html#51273" class="Bound">m</a><a id="51274" class="Symbol">)</a> <a id="51276" href="Data.Nat.Properties.html#51276" class="Bound">n</a> <a id="51278" href="Data.Nat.Properties.html#51278" class="Bound">o</a> <a id="51280" class="Symbol">=</a> <a id="51282" href="Data.Nat.Properties.html#51163" class="Function">[m+n]∸[m+o]≡n∸o</a> <a id="51298" href="Data.Nat.Properties.html#51273" class="Bound">m</a> <a id="51300" href="Data.Nat.Properties.html#51276" class="Bound">n</a> <a id="51302" href="Data.Nat.Properties.html#51278" class="Bound">o</a>
<a id="51305" class="Comment">------------------------------------------------------------------------</a>
<a id="51378" class="Comment">-- Properties of _∸_ and _*_</a>
<a id="*-distribʳ-∸"></a><a id="51408" href="Data.Nat.Properties.html#51408" class="Function">*-distribʳ-∸</a> <a id="51421" class="Symbol">:</a> <a id="51423" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a> <a id="51427" href="Algebra.Definitions.html#3274" class="Function Operator">DistributesOverʳ</a> <a id="51444" href="Data.Nat.Base.html#4456" class="Primitive Operator">_∸_</a>
<a id="51448" href="Data.Nat.Properties.html#51408" class="Function">*-distribʳ-∸</a> <a id="51461" href="Data.Nat.Properties.html#51461" class="Bound">m</a> <a id="51469" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="51477" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="51485" class="Symbol">=</a> <a id="51487" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="51492" href="Data.Nat.Properties.html#51408" class="Function">*-distribʳ-∸</a> <a id="51505" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="51513" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="51521" class="Symbol">(</a><a id="51522" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="51526" href="Data.Nat.Properties.html#51526" class="Bound">o</a><a id="51527" class="Symbol">)</a> <a id="51529" class="Symbol">=</a> <a id="51531" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="51535" class="Symbol">(</a><a id="51536" href="Data.Nat.Properties.html#45453" class="Function">0∸n≡0</a> <a id="51542" class="Symbol">(</a><a id="51543" href="Data.Nat.Properties.html#51526" class="Bound">o</a> <a id="51545" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="51547" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="51551" class="Symbol">))</a>
<a id="51554" href="Data.Nat.Properties.html#51408" class="Function">*-distribʳ-∸</a> <a id="51567" class="Symbol">(</a><a id="51568" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="51572" href="Data.Nat.Properties.html#51572" class="Bound">m</a><a id="51573" class="Symbol">)</a> <a id="51575" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="51583" class="Symbol">(</a><a id="51584" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="51588" href="Data.Nat.Properties.html#51588" class="Bound">o</a><a id="51589" class="Symbol">)</a> <a id="51591" class="Symbol">=</a> <a id="51593" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="51598" href="Data.Nat.Properties.html#51408" class="Function">*-distribʳ-∸</a> <a id="51611" href="Data.Nat.Properties.html#51611" class="Bound">m</a> <a id="51619" class="Symbol">(</a><a id="51620" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="51624" href="Data.Nat.Properties.html#51624" class="Bound">n</a><a id="51625" class="Symbol">)</a> <a id="51627" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="51635" class="Symbol">=</a> <a id="51637" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="51642" href="Data.Nat.Properties.html#51408" class="Function">*-distribʳ-∸</a> <a id="51655" href="Data.Nat.Properties.html#51655" class="Bound">m</a> <a id="51663" class="Symbol">(</a><a id="51664" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="51668" href="Data.Nat.Properties.html#51668" class="Bound">n</a><a id="51669" class="Symbol">)</a> <a id="51671" class="Symbol">(</a><a id="51672" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="51676" href="Data.Nat.Properties.html#51676" class="Bound">o</a><a id="51677" class="Symbol">)</a> <a id="51679" class="Symbol">=</a> <a id="51681" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a>
<a id="51698" class="Symbol">(</a><a id="51699" href="Data.Nat.Properties.html#51668" class="Bound">n</a> <a id="51701" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="51703" href="Data.Nat.Properties.html#51676" class="Bound">o</a><a id="51704" class="Symbol">)</a> <a id="51706" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="51708" href="Data.Nat.Properties.html#51655" class="Bound">m</a> <a id="51722" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="51725" href="Data.Nat.Properties.html#51408" class="Function">*-distribʳ-∸</a> <a id="51738" href="Data.Nat.Properties.html#51655" class="Bound">m</a> <a id="51740" href="Data.Nat.Properties.html#51668" class="Bound">n</a> <a id="51742" href="Data.Nat.Properties.html#51676" class="Bound">o</a> <a id="51744" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="51748" href="Data.Nat.Properties.html#51668" class="Bound">n</a> <a id="51750" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="51752" href="Data.Nat.Properties.html#51655" class="Bound">m</a> <a id="51754" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="51756" href="Data.Nat.Properties.html#51676" class="Bound">o</a> <a id="51758" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="51760" href="Data.Nat.Properties.html#51655" class="Bound">m</a> <a id="51772" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="51775" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="51779" href="Function.Base.html#1974" class="Function Operator">$</a> <a id="51781" href="Data.Nat.Properties.html#51163" class="Function">[m+n]∸[m+o]≡n∸o</a> <a id="51797" href="Data.Nat.Properties.html#51655" class="Bound">m</a> <a id="51799" class="Symbol">_</a> <a id="51801" class="Symbol">_</a> <a id="51803" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="51807" href="Data.Nat.Properties.html#51655" class="Bound">m</a> <a id="51809" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="51811" href="Data.Nat.Properties.html#51668" class="Bound">n</a> <a id="51813" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="51815" href="Data.Nat.Properties.html#51655" class="Bound">m</a> <a id="51817" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="51819" class="Symbol">(</a><a id="51820" href="Data.Nat.Properties.html#51655" class="Bound">m</a> <a id="51822" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="51824" href="Data.Nat.Properties.html#51676" class="Bound">o</a> <a id="51826" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="51828" href="Data.Nat.Properties.html#51655" class="Bound">m</a><a id="51829" class="Symbol">)</a> <a id="51831" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="*-distribˡ-∸"></a><a id="51834" href="Data.Nat.Properties.html#51834" class="Function">*-distribˡ-∸</a> <a id="51847" class="Symbol">:</a> <a id="51849" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a> <a id="51853" href="Algebra.Definitions.html#3155" class="Function Operator">DistributesOverˡ</a> <a id="51870" href="Data.Nat.Base.html#4456" class="Primitive Operator">_∸_</a>
<a id="51874" href="Data.Nat.Properties.html#51834" class="Function">*-distribˡ-∸</a> <a id="51887" class="Symbol">=</a> <a id="51889" href="Algebra.Consequences.Propositional.html#3334" class="Function">comm∧distrʳ⇒distrˡ</a> <a id="51908" href="Data.Nat.Properties.html#21421" class="Function">*-comm</a> <a id="51915" href="Data.Nat.Properties.html#51408" class="Function">*-distribʳ-∸</a>
<a id="*-distrib-∸"></a><a id="51929" href="Data.Nat.Properties.html#51929" class="Function">*-distrib-∸</a> <a id="51941" class="Symbol">:</a> <a id="51943" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a> <a id="51947" href="Algebra.Definitions.html#3393" class="Function Operator">DistributesOver</a> <a id="51963" href="Data.Nat.Base.html#4456" class="Primitive Operator">_∸_</a>
<a id="51967" href="Data.Nat.Properties.html#51929" class="Function">*-distrib-∸</a> <a id="51979" class="Symbol">=</a> <a id="51981" href="Data.Nat.Properties.html#51834" class="Function">*-distribˡ-∸</a> <a id="51994" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="51996" href="Data.Nat.Properties.html#51408" class="Function">*-distribʳ-∸</a>
<a id="even≢odd"></a><a id="52010" href="Data.Nat.Properties.html#52010" class="Function">even≢odd</a> <a id="52019" class="Symbol">:</a> <a id="52022" class="Symbol"></a> <a id="52024" href="Data.Nat.Properties.html#52024" class="Bound">m</a> <a id="52026" href="Data.Nat.Properties.html#52026" class="Bound">n</a> <a id="52028" class="Symbol"></a> <a id="52030" class="Number">2</a> <a id="52032" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="52034" href="Data.Nat.Properties.html#52024" class="Bound">m</a> <a id="52036" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Function Operator"></a> <a id="52038" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="52042" class="Symbol">(</a><a id="52043" class="Number">2</a> <a id="52045" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="52047" href="Data.Nat.Properties.html#52026" class="Bound">n</a><a id="52048" class="Symbol">)</a>
<a id="52050" href="Data.Nat.Properties.html#52010" class="Function">even≢odd</a> <a id="52059" class="Symbol">(</a><a id="52060" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="52064" href="Data.Nat.Properties.html#52064" class="Bound">m</a><a id="52065" class="Symbol">)</a> <a id="52067" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="52075" href="Data.Nat.Properties.html#52075" class="Bound">eq</a> <a id="52078" class="Symbol">=</a> <a id="52080" href="Relation.Nullary.Negation.Core.html#1226" class="Function">contradiction</a> <a id="52094" class="Symbol">(</a><a id="52095" href="Data.Nat.Properties.html#2703" class="Function">suc-injective</a> <a id="52109" href="Data.Nat.Properties.html#52075" class="Bound">eq</a><a id="52111" class="Symbol">)</a> <a id="52113" class="Symbol">(</a><a id="52114" href="Data.Nat.Properties.html#17217" class="Function">m+1+n≢0</a> <a id="52122" href="Data.Nat.Properties.html#52064" class="Bound">m</a><a id="52123" class="Symbol">)</a>
<a id="52125" href="Data.Nat.Properties.html#52010" class="Function">even≢odd</a> <a id="52134" class="Symbol">(</a><a id="52135" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="52139" href="Data.Nat.Properties.html#52139" class="Bound">m</a><a id="52140" class="Symbol">)</a> <a id="52142" class="Symbol">(</a><a id="52143" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="52147" href="Data.Nat.Properties.html#52147" class="Bound">n</a><a id="52148" class="Symbol">)</a> <a id="52150" href="Data.Nat.Properties.html#52150" class="Bound">eq</a> <a id="52153" class="Symbol">=</a> <a id="52155" href="Data.Nat.Properties.html#52010" class="Function">even≢odd</a> <a id="52164" href="Data.Nat.Properties.html#52139" class="Bound">m</a> <a id="52166" href="Data.Nat.Properties.html#52147" class="Bound">n</a> <a id="52168" class="Symbol">(</a><a id="52169" href="Data.Nat.Properties.html#2703" class="Function">suc-injective</a> <a id="52183" class="Symbol">(</a><a id="52184" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a>
<a id="52201" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="52205" class="Symbol">(</a><a id="52206" class="Number">2</a> <a id="52208" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="52210" href="Data.Nat.Properties.html#52139" class="Bound">m</a><a id="52211" class="Symbol">)</a> <a id="52221" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="52224" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="52228" class="Symbol">(</a><a id="52229" href="Data.Nat.Properties.html#14342" class="Function">+-suc</a> <a id="52235" href="Data.Nat.Properties.html#52139" class="Bound">m</a> <a id="52237" class="Symbol">_)</a> <a id="52240" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="52244" href="Data.Nat.Properties.html#52139" class="Bound">m</a> <a id="52246" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="52248" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="52252" class="Symbol">(</a><a id="52253" href="Data.Nat.Properties.html#52139" class="Bound">m</a> <a id="52255" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="52257" class="Number">0</a><a id="52258" class="Symbol">)</a> <a id="52264" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="52267" href="Data.Nat.Properties.html#2703" class="Function">suc-injective</a> <a id="52281" href="Data.Nat.Properties.html#52150" class="Bound">eq</a> <a id="52284" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="52288" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="52292" href="Data.Nat.Properties.html#52147" class="Bound">n</a> <a id="52294" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="52296" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="52300" class="Symbol">(</a><a id="52301" href="Data.Nat.Properties.html#52147" class="Bound">n</a> <a id="52303" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="52305" class="Number">0</a><a id="52306" class="Symbol">)</a> <a id="52308" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="52311" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="52316" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="52320" class="Symbol">(</a><a id="52321" href="Data.Nat.Properties.html#14342" class="Function">+-suc</a> <a id="52327" href="Data.Nat.Properties.html#52147" class="Bound">n</a> <a id="52329" class="Symbol">_)</a> <a id="52332" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="52336" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="52340" class="Symbol">(</a><a id="52341" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="52345" class="Symbol">(</a><a id="52346" class="Number">2</a> <a id="52348" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="52350" href="Data.Nat.Properties.html#52147" class="Bound">n</a><a id="52351" class="Symbol">))</a> <a id="52356" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a><a id="52357" class="Symbol">))</a>
<a id="52361" class="Comment">------------------------------------------------------------------------</a>
<a id="52434" class="Comment">-- Properties of _∸_ and _⊓_ and _⊔_</a>
<a id="m⊓n+n∸m≡n"></a><a id="52472" href="Data.Nat.Properties.html#52472" class="Function">m⊓n+n∸m≡n</a> <a id="52482" class="Symbol">:</a> <a id="52484" class="Symbol"></a> <a id="52486" href="Data.Nat.Properties.html#52486" class="Bound">m</a> <a id="52488" href="Data.Nat.Properties.html#52488" class="Bound">n</a> <a id="52490" class="Symbol"></a> <a id="52492" class="Symbol">(</a><a id="52493" href="Data.Nat.Properties.html#52486" class="Bound">m</a> <a id="52495" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="52497" href="Data.Nat.Properties.html#52488" class="Bound">n</a><a id="52498" class="Symbol">)</a> <a id="52500" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="52502" class="Symbol">(</a><a id="52503" href="Data.Nat.Properties.html#52488" class="Bound">n</a> <a id="52505" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="52507" href="Data.Nat.Properties.html#52486" class="Bound">m</a><a id="52508" class="Symbol">)</a> <a id="52510" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="52512" href="Data.Nat.Properties.html#52488" class="Bound">n</a>
<a id="52514" href="Data.Nat.Properties.html#52472" class="Function">m⊓n+n∸m≡n</a> <a id="52524" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="52532" href="Data.Nat.Properties.html#52532" class="Bound">n</a> <a id="52540" class="Symbol">=</a> <a id="52542" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="52547" href="Data.Nat.Properties.html#52472" class="Function">m⊓n+n∸m≡n</a> <a id="52557" class="Symbol">(</a><a id="52558" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="52562" href="Data.Nat.Properties.html#52562" class="Bound">m</a><a id="52563" class="Symbol">)</a> <a id="52565" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="52573" class="Symbol">=</a> <a id="52575" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="52580" href="Data.Nat.Properties.html#52472" class="Function">m⊓n+n∸m≡n</a> <a id="52590" class="Symbol">(</a><a id="52591" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="52595" href="Data.Nat.Properties.html#52595" class="Bound">m</a><a id="52596" class="Symbol">)</a> <a id="52598" class="Symbol">(</a><a id="52599" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="52603" href="Data.Nat.Properties.html#52603" class="Bound">n</a><a id="52604" class="Symbol">)</a> <a id="52606" class="Symbol">=</a> <a id="52608" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="52613" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="52617" href="Function.Base.html#1974" class="Function Operator">$</a> <a id="52619" href="Data.Nat.Properties.html#52472" class="Function">m⊓n+n∸m≡n</a> <a id="52629" href="Data.Nat.Properties.html#52595" class="Bound">m</a> <a id="52631" href="Data.Nat.Properties.html#52603" class="Bound">n</a>
<a id="[m∸n]⊓[n∸m]≡0"></a><a id="52634" href="Data.Nat.Properties.html#52634" class="Function">[m∸n]⊓[n∸m]≡0</a> <a id="52648" class="Symbol">:</a> <a id="52650" class="Symbol"></a> <a id="52652" href="Data.Nat.Properties.html#52652" class="Bound">m</a> <a id="52654" href="Data.Nat.Properties.html#52654" class="Bound">n</a> <a id="52656" class="Symbol"></a> <a id="52658" class="Symbol">(</a><a id="52659" href="Data.Nat.Properties.html#52652" class="Bound">m</a> <a id="52661" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="52663" href="Data.Nat.Properties.html#52654" class="Bound">n</a><a id="52664" class="Symbol">)</a> <a id="52666" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="52668" class="Symbol">(</a><a id="52669" href="Data.Nat.Properties.html#52654" class="Bound">n</a> <a id="52671" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="52673" href="Data.Nat.Properties.html#52652" class="Bound">m</a><a id="52674" class="Symbol">)</a> <a id="52676" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="52678" class="Number">0</a>
<a id="52680" href="Data.Nat.Properties.html#52634" class="Function">[m∸n]⊓[n∸m]≡0</a> <a id="52694" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="52699" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="52710" class="Symbol">=</a> <a id="52712" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="52717" href="Data.Nat.Properties.html#52634" class="Function">[m∸n]⊓[n∸m]≡0</a> <a id="52731" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="52736" class="Symbol">(</a><a id="52737" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="52741" href="Data.Nat.Properties.html#52741" class="Bound">n</a><a id="52742" class="Symbol">)</a> <a id="52747" class="Symbol">=</a> <a id="52749" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="52754" href="Data.Nat.Properties.html#52634" class="Function">[m∸n]⊓[n∸m]≡0</a> <a id="52768" class="Symbol">(</a><a id="52769" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="52773" href="Data.Nat.Properties.html#52773" class="Bound">m</a><a id="52774" class="Symbol">)</a> <a id="52776" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="52784" class="Symbol">=</a> <a id="52786" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="52791" href="Data.Nat.Properties.html#52634" class="Function">[m∸n]⊓[n∸m]≡0</a> <a id="52805" class="Symbol">(</a><a id="52806" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="52810" href="Data.Nat.Properties.html#52810" class="Bound">m</a><a id="52811" class="Symbol">)</a> <a id="52813" class="Symbol">(</a><a id="52814" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="52818" href="Data.Nat.Properties.html#52818" class="Bound">n</a><a id="52819" class="Symbol">)</a> <a id="52821" class="Symbol">=</a> <a id="52823" href="Data.Nat.Properties.html#52634" class="Function">[m∸n]⊓[n∸m]≡0</a> <a id="52837" href="Data.Nat.Properties.html#52810" class="Bound">m</a> <a id="52839" href="Data.Nat.Properties.html#52818" class="Bound">n</a>
<a id="∸-distribˡ-⊓-⊔"></a><a id="52842" href="Data.Nat.Properties.html#52842" class="Function">∸-distribˡ-⊓-⊔</a> <a id="52857" class="Symbol">:</a> <a id="52859" class="Symbol"></a> <a id="52861" href="Data.Nat.Properties.html#52861" class="Bound">m</a> <a id="52863" href="Data.Nat.Properties.html#52863" class="Bound">n</a> <a id="52865" href="Data.Nat.Properties.html#52865" class="Bound">o</a> <a id="52867" class="Symbol"></a> <a id="52869" href="Data.Nat.Properties.html#52861" class="Bound">m</a> <a id="52871" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="52873" class="Symbol">(</a><a id="52874" href="Data.Nat.Properties.html#52863" class="Bound">n</a> <a id="52876" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="52878" href="Data.Nat.Properties.html#52865" class="Bound">o</a><a id="52879" class="Symbol">)</a> <a id="52881" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="52883" class="Symbol">(</a><a id="52884" href="Data.Nat.Properties.html#52861" class="Bound">m</a> <a id="52886" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="52888" href="Data.Nat.Properties.html#52863" class="Bound">n</a><a id="52889" class="Symbol">)</a> <a id="52891" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="52893" class="Symbol">(</a><a id="52894" href="Data.Nat.Properties.html#52861" class="Bound">m</a> <a id="52896" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="52898" href="Data.Nat.Properties.html#52865" class="Bound">o</a><a id="52899" class="Symbol">)</a>
<a id="52901" href="Data.Nat.Properties.html#52842" class="Function">∸-distribˡ-⊓-⊔</a> <a id="52916" href="Data.Nat.Properties.html#52916" class="Bound">m</a> <a id="52918" href="Data.Nat.Properties.html#52918" class="Bound">n</a> <a id="52920" href="Data.Nat.Properties.html#52920" class="Bound">o</a> <a id="52922" class="Symbol">=</a> <a id="52924" href="Data.Nat.Properties.html#39277" class="Function">antimono-≤-distrib-⊓</a> <a id="52945" class="Symbol">(</a><a id="52946" href="Data.Nat.Properties.html#46663" class="Function">∸-monoʳ-≤</a> <a id="52956" href="Data.Nat.Properties.html#52916" class="Bound">m</a><a id="52957" class="Symbol">)</a> <a id="52959" href="Data.Nat.Properties.html#52918" class="Bound">n</a> <a id="52961" href="Data.Nat.Properties.html#52920" class="Bound">o</a>
<a id="∸-distribʳ-⊓"></a><a id="52964" href="Data.Nat.Properties.html#52964" class="Function">∸-distribʳ-⊓</a> <a id="52977" class="Symbol">:</a> <a id="52979" href="Data.Nat.Base.html#4456" class="Primitive Operator">_∸_</a> <a id="52983" href="Algebra.Definitions.html#3274" class="Function Operator">DistributesOverʳ</a> <a id="53000" href="Data.Nat.Base.html#5845" class="Function Operator">_⊓_</a>
<a id="53004" href="Data.Nat.Properties.html#52964" class="Function">∸-distribʳ-⊓</a> <a id="53017" href="Data.Nat.Properties.html#53017" class="Bound">m</a> <a id="53019" href="Data.Nat.Properties.html#53019" class="Bound">n</a> <a id="53021" href="Data.Nat.Properties.html#53021" class="Bound">o</a> <a id="53023" class="Symbol">=</a> <a id="53025" href="Data.Nat.Properties.html#39112" class="Function">mono-≤-distrib-⊓</a> <a id="53042" class="Symbol">(</a><a id="53043" href="Data.Nat.Properties.html#46578" class="Function">∸-monoˡ-≤</a> <a id="53053" href="Data.Nat.Properties.html#53017" class="Bound">m</a><a id="53054" class="Symbol">)</a> <a id="53056" href="Data.Nat.Properties.html#53019" class="Bound">n</a> <a id="53058" href="Data.Nat.Properties.html#53021" class="Bound">o</a>
<a id="∸-distribˡ-⊔-⊓"></a><a id="53061" href="Data.Nat.Properties.html#53061" class="Function">∸-distribˡ-⊔-⊓</a> <a id="53076" class="Symbol">:</a> <a id="53078" class="Symbol"></a> <a id="53080" href="Data.Nat.Properties.html#53080" class="Bound">m</a> <a id="53082" href="Data.Nat.Properties.html#53082" class="Bound">n</a> <a id="53084" href="Data.Nat.Properties.html#53084" class="Bound">o</a> <a id="53086" class="Symbol"></a> <a id="53088" href="Data.Nat.Properties.html#53080" class="Bound">m</a> <a id="53090" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="53092" class="Symbol">(</a><a id="53093" href="Data.Nat.Properties.html#53082" class="Bound">n</a> <a id="53095" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="53097" href="Data.Nat.Properties.html#53084" class="Bound">o</a><a id="53098" class="Symbol">)</a> <a id="53100" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="53102" class="Symbol">(</a><a id="53103" href="Data.Nat.Properties.html#53080" class="Bound">m</a> <a id="53105" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="53107" href="Data.Nat.Properties.html#53082" class="Bound">n</a><a id="53108" class="Symbol">)</a> <a id="53110" href="Data.Nat.Base.html#5845" class="Function Operator"></a> <a id="53112" class="Symbol">(</a><a id="53113" href="Data.Nat.Properties.html#53080" class="Bound">m</a> <a id="53115" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="53117" href="Data.Nat.Properties.html#53084" class="Bound">o</a><a id="53118" class="Symbol">)</a>
<a id="53120" href="Data.Nat.Properties.html#53061" class="Function">∸-distribˡ-⊔-⊓</a> <a id="53135" href="Data.Nat.Properties.html#53135" class="Bound">m</a> <a id="53137" href="Data.Nat.Properties.html#53137" class="Bound">n</a> <a id="53139" href="Data.Nat.Properties.html#53139" class="Bound">o</a> <a id="53141" class="Symbol">=</a> <a id="53143" href="Data.Nat.Properties.html#39458" class="Function">antimono-≤-distrib-⊔</a> <a id="53164" class="Symbol">(</a><a id="53165" href="Data.Nat.Properties.html#46663" class="Function">∸-monoʳ-≤</a> <a id="53175" href="Data.Nat.Properties.html#53135" class="Bound">m</a><a id="53176" class="Symbol">)</a> <a id="53178" href="Data.Nat.Properties.html#53137" class="Bound">n</a> <a id="53180" href="Data.Nat.Properties.html#53139" class="Bound">o</a>
<a id="∸-distribʳ-⊔"></a><a id="53183" href="Data.Nat.Properties.html#53183" class="Function">∸-distribʳ-⊔</a> <a id="53196" class="Symbol">:</a> <a id="53198" href="Data.Nat.Base.html#4456" class="Primitive Operator">_∸_</a> <a id="53202" href="Algebra.Definitions.html#3274" class="Function Operator">DistributesOverʳ</a> <a id="53219" href="Data.Nat.Base.html#5479" class="Function Operator">_⊔_</a>
<a id="53223" href="Data.Nat.Properties.html#53183" class="Function">∸-distribʳ-⊔</a> <a id="53236" href="Data.Nat.Properties.html#53236" class="Bound">m</a> <a id="53238" href="Data.Nat.Properties.html#53238" class="Bound">n</a> <a id="53240" href="Data.Nat.Properties.html#53240" class="Bound">o</a> <a id="53242" class="Symbol">=</a> <a id="53244" href="Data.Nat.Properties.html#38947" class="Function">mono-≤-distrib-⊔</a> <a id="53261" class="Symbol">(</a><a id="53262" href="Data.Nat.Properties.html#46578" class="Function">∸-monoˡ-≤</a> <a id="53272" href="Data.Nat.Properties.html#53236" class="Bound">m</a><a id="53273" class="Symbol">)</a> <a id="53275" href="Data.Nat.Properties.html#53238" class="Bound">n</a> <a id="53277" href="Data.Nat.Properties.html#53240" class="Bound">o</a>
<a id="53280" class="Comment">------------------------------------------------------------------------</a>
<a id="53353" class="Comment">-- Properties of pred</a>
<a id="53375" class="Comment">------------------------------------------------------------------------</a>
<a id="pred[n]≤n"></a><a id="53449" href="Data.Nat.Properties.html#53449" class="Function">pred[n]≤n</a> <a id="53459" class="Symbol">:</a> <a id="53461" href="Data.Nat.Base.html#5266" class="Function">pred</a> <a id="53466" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="53468" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="53470" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="53472" href="Data.Nat.Properties.html#53449" class="Function">pred[n]≤n</a> <a id="53482" class="Symbol">{</a><a id="53483" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="53487" class="Symbol">}</a> <a id="53490" class="Symbol">=</a> <a id="53492" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="53496" href="Data.Nat.Properties.html#53449" class="Function">pred[n]≤n</a> <a id="53506" class="Symbol">{</a><a id="53507" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="53511" href="Data.Nat.Properties.html#53511" class="Bound">n</a><a id="53512" class="Symbol">}</a> <a id="53514" class="Symbol">=</a> <a id="53516" href="Data.Nat.Properties.html#7948" class="Function">n≤1+n</a> <a id="53522" href="Data.Nat.Properties.html#53511" class="Bound">n</a>
<a id="≤pred⇒≤"></a><a id="53525" href="Data.Nat.Properties.html#53525" class="Function">≤pred⇒≤</a> <a id="53533" class="Symbol">:</a> <a id="53535" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="53537" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="53539" href="Data.Nat.Base.html#5266" class="Function">pred</a> <a id="53544" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="53546" class="Symbol"></a> <a id="53548" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="53550" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="53552" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="53554" href="Data.Nat.Properties.html#53525" class="Function">≤pred⇒≤</a> <a id="53562" class="Symbol">{</a><a id="53563" class="Argument">n</a> <a id="53565" class="Symbol">=</a> <a id="53567" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="53571" class="Symbol">}</a> <a id="53574" href="Data.Nat.Properties.html#53574" class="Bound">le</a> <a id="53577" class="Symbol">=</a> <a id="53579" href="Data.Nat.Properties.html#53574" class="Bound">le</a>
<a id="53582" href="Data.Nat.Properties.html#53525" class="Function">≤pred⇒≤</a> <a id="53590" class="Symbol">{</a><a id="53591" class="Argument">n</a> <a id="53593" class="Symbol">=</a> <a id="53595" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="53599" href="Data.Nat.Properties.html#53599" class="Bound">n</a><a id="53600" class="Symbol">}</a> <a id="53602" href="Data.Nat.Properties.html#53602" class="Bound">le</a> <a id="53605" class="Symbol">=</a> <a id="53607" href="Data.Nat.Properties.html#7849" class="Function">m≤n⇒m≤1+n</a> <a id="53617" href="Data.Nat.Properties.html#53602" class="Bound">le</a>
<a id="≤⇒pred≤"></a><a id="53621" href="Data.Nat.Properties.html#53621" class="Function">≤⇒pred≤</a> <a id="53629" class="Symbol">:</a> <a id="53631" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="53633" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="53635" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="53637" class="Symbol"></a> <a id="53639" href="Data.Nat.Base.html#5266" class="Function">pred</a> <a id="53644" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="53646" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="53648" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="53650" href="Data.Nat.Properties.html#53621" class="Function">≤⇒pred≤</a> <a id="53658" class="Symbol">{</a><a id="53659" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="53663" class="Symbol">}</a> <a id="53666" href="Data.Nat.Properties.html#53666" class="Bound">le</a> <a id="53669" class="Symbol">=</a> <a id="53671" href="Data.Nat.Properties.html#53666" class="Bound">le</a>
<a id="53674" href="Data.Nat.Properties.html#53621" class="Function">≤⇒pred≤</a> <a id="53682" class="Symbol">{</a><a id="53683" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="53687" href="Data.Nat.Properties.html#53687" class="Bound">m</a><a id="53688" class="Symbol">}</a> <a id="53690" href="Data.Nat.Properties.html#53690" class="Bound">le</a> <a id="53693" class="Symbol">=</a> <a id="53695" href="Data.Nat.Properties.html#5425" class="Function">≤-trans</a> <a id="53703" class="Symbol">(</a><a id="53704" href="Data.Nat.Properties.html#7948" class="Function">n≤1+n</a> <a id="53710" href="Data.Nat.Properties.html#53687" class="Bound">m</a><a id="53711" class="Symbol">)</a> <a id="53713" href="Data.Nat.Properties.html#53690" class="Bound">le</a>
<a id="&lt;⇒≤pred"></a><a id="53717" href="Data.Nat.Properties.html#53717" class="Function">&lt;⇒≤pred</a> <a id="53725" class="Symbol">:</a> <a id="53727" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="53729" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="53731" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="53733" class="Symbol"></a> <a id="53735" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="53737" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="53739" href="Data.Nat.Base.html#5266" class="Function">pred</a> <a id="53744" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="53746" href="Data.Nat.Properties.html#53717" class="Function">&lt;⇒≤pred</a> <a id="53754" class="Symbol">(</a><a id="53755" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="53759" href="Data.Nat.Properties.html#53759" class="Bound">le</a><a id="53761" class="Symbol">)</a> <a id="53763" class="Symbol">=</a> <a id="53765" href="Data.Nat.Properties.html#53759" class="Bound">le</a>
<a id="suc-pred"></a><a id="53769" href="Data.Nat.Properties.html#53769" class="Function">suc-pred</a> <a id="53778" class="Symbol">:</a> <a id="53780" class="Symbol"></a> <a id="53782" href="Data.Nat.Properties.html#53782" class="Bound">n</a> <a id="53784" class="Symbol">.{{</a><a id="53787" href="Data.Nat.Properties.html#53787" class="Bound">_</a> <a id="53789" class="Symbol">:</a> <a id="53791" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="53799" href="Data.Nat.Properties.html#53782" class="Bound">n</a><a id="53800" class="Symbol">}}</a> <a id="53803" class="Symbol"></a> <a id="53805" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="53809" class="Symbol">(</a><a id="53810" href="Data.Nat.Base.html#5266" class="Function">pred</a> <a id="53815" href="Data.Nat.Properties.html#53782" class="Bound">n</a><a id="53816" class="Symbol">)</a> <a id="53818" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="53820" href="Data.Nat.Properties.html#53782" class="Bound">n</a>
<a id="53822" href="Data.Nat.Properties.html#53769" class="Function">suc-pred</a> <a id="53831" class="Symbol">(</a><a id="53832" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="53836" href="Data.Nat.Properties.html#53836" class="Bound">n</a><a id="53837" class="Symbol">)</a> <a id="53839" class="Symbol">=</a> <a id="53841" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="pred-mono-≤"></a><a id="53847" href="Data.Nat.Properties.html#53847" class="Function">pred-mono-≤</a> <a id="53859" class="Symbol">:</a> <a id="53861" href="Data.Nat.Base.html#5266" class="Function">pred</a> <a id="53866" href="Relation.Binary.Core.html#1577" class="Function Operator">Preserves</a> <a id="53876" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="53880" href="Relation.Binary.Core.html#1577" class="Function Operator"></a> <a id="53882" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="53886" href="Data.Nat.Properties.html#53847" class="Function">pred-mono-≤</a> <a id="53898" class="Symbol">{</a><a id="53899" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="53903" class="Symbol">}</a> <a id="53914" class="Symbol">_</a> <a id="53918" class="Symbol">=</a> <a id="53920" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="53924" href="Data.Nat.Properties.html#53847" class="Function">pred-mono-≤</a> <a id="53936" class="Symbol">{</a><a id="53937" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="53941" class="Symbol">_}</a> <a id="53944" class="Symbol">{</a><a id="53945" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="53949" class="Symbol">_}</a> <a id="53952" href="Data.Nat.Properties.html#53952" class="Bound">m≤n</a> <a id="53956" class="Symbol">=</a> <a id="53958" href="Data.Nat.Base.html#2022" class="Function">s≤s⁻¹</a> <a id="53964" href="Data.Nat.Properties.html#53952" class="Bound">m≤n</a>
<a id="pred-mono-&lt;"></a><a id="53969" href="Data.Nat.Properties.html#53969" class="Function">pred-mono-&lt;</a> <a id="53981" class="Symbol">:</a> <a id="53983" class="Symbol">.{{</a><a id="53986" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="53994" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a><a id="53995" class="Symbol">}}</a> <a id="53998" class="Symbol"></a> <a id="54000" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="54002" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="54004" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="54006" class="Symbol"></a> <a id="54008" href="Data.Nat.Base.html#5266" class="Function">pred</a> <a id="54013" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="54015" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="54017" href="Data.Nat.Base.html#5266" class="Function">pred</a> <a id="54022" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="54024" href="Data.Nat.Properties.html#53969" class="Function">pred-mono-&lt;</a> <a id="54036" class="Symbol">{</a><a id="54037" class="Argument">m</a> <a id="54039" class="Symbol">=</a> <a id="54041" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="54045" class="Symbol">_}</a> <a id="54048" class="Symbol">{</a><a id="54049" class="Argument">n</a> <a id="54051" class="Symbol">=</a> <a id="54053" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="54057" class="Symbol">_}</a> <a id="54060" class="Symbol">=</a> <a id="54062" href="Data.Nat.Base.html#2085" class="Function">s&lt;s⁻¹</a>
<a id="54069" class="Comment">------------------------------------------------------------------------</a>
<a id="54142" class="Comment">-- Properties of _-_</a>
<a id="54165" class="Comment">------------------------------------------------------------------------</a>
<a id="54239" class="Comment">------------------------------------------------------------------------</a>
<a id="54312" class="Comment">-- Basic</a>
<a id="m≡n⇒m-n≡0"></a><a id="54322" href="Data.Nat.Properties.html#54322" class="Function">m≡n⇒m-n≡0</a> <a id="54334" class="Symbol">:</a> <a id="54336" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="54338" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="54340" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="54342" class="Symbol"></a> <a id="54344" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="54346" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="54348" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="54350" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="54352" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="54354" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="54356" class="Number">0</a>
<a id="54358" href="Data.Nat.Properties.html#54322" class="Function">m≡n⇒m-n≡0</a> <a id="54370" class="Symbol">{</a><a id="54371" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="54375" class="Symbol">}</a> <a id="54378" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a> <a id="54383" class="Symbol">=</a> <a id="54385" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="54390" href="Data.Nat.Properties.html#54322" class="Function">m≡n⇒m-n≡0</a> <a id="54402" class="Symbol">{</a><a id="54403" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="54407" href="Data.Nat.Properties.html#54407" class="Bound">m</a><a id="54408" class="Symbol">}</a> <a id="54410" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a> <a id="54415" class="Symbol">=</a> <a id="54417" href="Data.Nat.Properties.html#54322" class="Function">m≡n⇒m-n≡0</a> <a id="54429" class="Symbol">{</a><a id="54430" href="Data.Nat.Properties.html#54407" class="Bound">m</a><a id="54431" class="Symbol">}</a> <a id="54433" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="m-n≡0⇒m≡n"></a><a id="54439" href="Data.Nat.Properties.html#54439" class="Function">m-n≡0⇒m≡n</a> <a id="54451" class="Symbol">:</a> <a id="54454" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="54456" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="54458" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="54460" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="54462" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="54464" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="54466" class="Number">0</a> <a id="54468" class="Symbol"></a> <a id="54470" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="54472" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="54474" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="54476" href="Data.Nat.Properties.html#54439" class="Function">m-n≡0⇒m≡n</a> <a id="54488" class="Symbol">{</a><a id="54489" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="54493" class="Symbol">}</a> <a id="54496" class="Symbol">{</a><a id="54497" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="54501" class="Symbol">}</a> <a id="54504" href="Data.Nat.Properties.html#54504" class="Bound">eq</a> <a id="54507" class="Symbol">=</a> <a id="54509" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="54514" href="Data.Nat.Properties.html#54439" class="Function">m-n≡0⇒m≡n</a> <a id="54526" class="Symbol">{</a><a id="54527" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="54531" href="Data.Nat.Properties.html#54531" class="Bound">m</a><a id="54532" class="Symbol">}</a> <a id="54534" class="Symbol">{</a><a id="54535" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="54539" href="Data.Nat.Properties.html#54539" class="Bound">n</a><a id="54540" class="Symbol">}</a> <a id="54542" href="Data.Nat.Properties.html#54542" class="Bound">eq</a> <a id="54545" class="Symbol">=</a> <a id="54547" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="54552" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="54556" class="Symbol">(</a><a id="54557" href="Data.Nat.Properties.html#54439" class="Function">m-n≡0⇒m≡n</a> <a id="54569" href="Data.Nat.Properties.html#54542" class="Bound">eq</a><a id="54571" class="Symbol">)</a>
<a id="m≤n⇒n-m≡n∸m"></a><a id="54574" href="Data.Nat.Properties.html#54574" class="Function">m≤n⇒n-m≡n∸m</a> <a id="54588" class="Symbol">:</a> <a id="54590" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="54592" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="54594" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="54596" class="Symbol"></a> <a id="54598" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="54600" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="54602" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="54604" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="54606" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="54608" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="54610" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="54612" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="54614" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a>
<a id="54616" href="Data.Nat.Properties.html#54574" class="Function">m≤n⇒n-m≡n∸m</a> <a id="54630" class="Symbol">{</a><a id="54631" class="Argument">n</a> <a id="54633" class="Symbol">=</a> <a id="54635" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="54639" class="Symbol">}</a> <a id="54642" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="54652" class="Symbol">=</a> <a id="54654" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="54659" href="Data.Nat.Properties.html#54574" class="Function">m≤n⇒n-m≡n∸m</a> <a id="54673" class="Symbol">{</a><a id="54674" class="Argument">n</a> <a id="54676" class="Symbol">=</a> <a id="54678" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="54682" href="Data.Nat.Properties.html#54682" class="Bound">n</a><a id="54683" class="Symbol">}</a> <a id="54685" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="54695" class="Symbol">=</a> <a id="54697" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="54702" href="Data.Nat.Properties.html#54574" class="Function">m≤n⇒n-m≡n∸m</a> <a id="54716" class="Symbol">{</a><a id="54717" class="Argument">n</a> <a id="54719" class="Symbol">=</a> <a id="54721" class="Symbol">_}</a> <a id="54728" class="Symbol">(</a><a id="54729" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="54733" href="Data.Nat.Properties.html#54733" class="Bound">m≤n</a><a id="54736" class="Symbol">)</a> <a id="54738" class="Symbol">=</a> <a id="54740" href="Data.Nat.Properties.html#54574" class="Function">m≤n⇒n-m≡n∸m</a> <a id="54754" href="Data.Nat.Properties.html#54733" class="Bound">m≤n</a>
<a id="m≤n⇒m-n≡n∸m"></a><a id="54759" href="Data.Nat.Properties.html#54759" class="Function">m≤n⇒m-n≡n∸m</a> <a id="54773" class="Symbol">:</a> <a id="54775" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="54777" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="54779" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="54781" class="Symbol"></a> <a id="54783" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="54785" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="54787" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="54789" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="54791" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="54793" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="54795" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="54797" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="54799" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a>
<a id="54801" href="Data.Nat.Properties.html#54759" class="Function">m≤n⇒m-n≡n∸m</a> <a id="54815" class="Symbol">{</a><a id="54816" class="Argument">n</a> <a id="54818" class="Symbol">=</a> <a id="54820" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="54824" class="Symbol">}</a> <a id="54827" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="54837" class="Symbol">=</a> <a id="54839" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="54844" href="Data.Nat.Properties.html#54759" class="Function">m≤n⇒m-n≡n∸m</a> <a id="54858" class="Symbol">{</a><a id="54859" class="Argument">n</a> <a id="54861" class="Symbol">=</a> <a id="54863" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="54867" href="Data.Nat.Properties.html#54867" class="Bound">n</a><a id="54868" class="Symbol">}</a> <a id="54870" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="54880" class="Symbol">=</a> <a id="54882" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="54887" href="Data.Nat.Properties.html#54759" class="Function">m≤n⇒m-n≡n∸m</a> <a id="54901" class="Symbol">{</a><a id="54902" class="Argument">n</a> <a id="54904" class="Symbol">=</a> <a id="54906" class="Symbol">_}</a> <a id="54913" class="Symbol">(</a><a id="54914" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="54918" href="Data.Nat.Properties.html#54918" class="Bound">m≤n</a><a id="54921" class="Symbol">)</a> <a id="54923" class="Symbol">=</a> <a id="54925" href="Data.Nat.Properties.html#54759" class="Function">m≤n⇒m-n≡n∸m</a> <a id="54939" href="Data.Nat.Properties.html#54918" class="Bound">m≤n</a>
<a id="m-n≡m∸n⇒n≤m"></a><a id="54944" href="Data.Nat.Properties.html#54944" class="Function">m-n≡m∸n⇒n≤m</a> <a id="54958" class="Symbol">:</a> <a id="54960" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="54962" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="54964" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="54966" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="54968" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="54970" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="54972" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="54974" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="54976" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="54978" class="Symbol"></a> <a id="54980" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="54982" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="54984" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a>
<a id="54986" href="Data.Nat.Properties.html#54944" class="Function">m-n≡m∸n⇒n≤m</a> <a id="55000" class="Symbol">{</a><a id="55001" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="55005" class="Symbol">}</a> <a id="55008" class="Symbol">{</a><a id="55009" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="55013" class="Symbol">}</a> <a id="55016" href="Data.Nat.Properties.html#55016" class="Bound">eq</a> <a id="55019" class="Symbol">=</a> <a id="55021" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="55025" href="Data.Nat.Properties.html#54944" class="Function">m-n≡m∸n⇒n≤m</a> <a id="55039" class="Symbol">{</a><a id="55040" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="55044" href="Data.Nat.Properties.html#55044" class="Bound">m</a><a id="55045" class="Symbol">}</a> <a id="55047" class="Symbol">{</a><a id="55048" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="55052" class="Symbol">}</a> <a id="55055" href="Data.Nat.Properties.html#55055" class="Bound">eq</a> <a id="55058" class="Symbol">=</a> <a id="55060" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="55064" href="Data.Nat.Properties.html#54944" class="Function">m-n≡m∸n⇒n≤m</a> <a id="55078" class="Symbol">{</a><a id="55079" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="55083" href="Data.Nat.Properties.html#55083" class="Bound">m</a><a id="55084" class="Symbol">}</a> <a id="55086" class="Symbol">{</a><a id="55087" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="55091" href="Data.Nat.Properties.html#55091" class="Bound">n</a><a id="55092" class="Symbol">}</a> <a id="55094" href="Data.Nat.Properties.html#55094" class="Bound">eq</a> <a id="55097" class="Symbol">=</a> <a id="55099" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="55103" class="Symbol">(</a><a id="55104" href="Data.Nat.Properties.html#54944" class="Function">m-n≡m∸n⇒n≤m</a> <a id="55118" href="Data.Nat.Properties.html#55094" class="Bound">eq</a><a id="55120" class="Symbol">)</a>
<a id="n-n≡0"></a><a id="55123" href="Data.Nat.Properties.html#55123" class="Function">n-n≡0</a> <a id="55131" class="Symbol">:</a> <a id="55133" class="Symbol"></a> <a id="55135" href="Data.Nat.Properties.html#55135" class="Bound">n</a> <a id="55137" class="Symbol"></a> <a id="55139" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="55141" href="Data.Nat.Properties.html#55135" class="Bound">n</a> <a id="55143" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="55145" href="Data.Nat.Properties.html#55135" class="Bound">n</a> <a id="55147" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="55149" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="55151" class="Number">0</a>
<a id="55153" href="Data.Nat.Properties.html#55123" class="Function">n-n≡0</a> <a id="55161" href="Data.Nat.Properties.html#55161" class="Bound">n</a> <a id="55163" class="Symbol">=</a> <a id="55165" href="Data.Nat.Properties.html#54322" class="Function">m≡n⇒m-n≡0</a> <a id="55177" class="Symbol">{</a><a id="55178" href="Data.Nat.Properties.html#55161" class="Bound">n</a><a id="55179" class="Symbol">}</a> <a id="55181" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="m-m+n≡n"></a><a id="55187" href="Data.Nat.Properties.html#55187" class="Function">m-m+n≡n</a> <a id="55197" class="Symbol">:</a> <a id="55199" class="Symbol"></a> <a id="55201" href="Data.Nat.Properties.html#55201" class="Bound">m</a> <a id="55203" href="Data.Nat.Properties.html#55203" class="Bound">n</a> <a id="55205" class="Symbol"></a> <a id="55207" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="55209" href="Data.Nat.Properties.html#55201" class="Bound">m</a> <a id="55211" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="55213" href="Data.Nat.Properties.html#55201" class="Bound">m</a> <a id="55215" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="55217" href="Data.Nat.Properties.html#55203" class="Bound">n</a> <a id="55219" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="55221" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="55223" href="Data.Nat.Properties.html#55203" class="Bound">n</a>
<a id="55225" href="Data.Nat.Properties.html#55187" class="Function">m-m+n≡n</a> <a id="55235" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="55243" href="Data.Nat.Properties.html#55243" class="Bound">n</a> <a id="55245" class="Symbol">=</a> <a id="55247" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="55252" href="Data.Nat.Properties.html#55187" class="Function">m-m+n≡n</a> <a id="55262" class="Symbol">(</a><a id="55263" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="55267" href="Data.Nat.Properties.html#55267" class="Bound">m</a><a id="55268" class="Symbol">)</a> <a id="55270" href="Data.Nat.Properties.html#55270" class="Bound">n</a> <a id="55272" class="Symbol">=</a> <a id="55274" href="Data.Nat.Properties.html#55187" class="Function">m-m+n≡n</a> <a id="55284" href="Data.Nat.Properties.html#55267" class="Bound">m</a> <a id="55286" href="Data.Nat.Properties.html#55270" class="Bound">n</a>
<a id="m+n-m+on-o"></a><a id="55289" href="Data.Nat.Properties.html#55289" class="Function">m+n-m+on-o</a> <a id="55305" class="Symbol">:</a> <a id="55307" class="Symbol"></a> <a id="55309" href="Data.Nat.Properties.html#55309" class="Bound">m</a> <a id="55311" href="Data.Nat.Properties.html#55311" class="Bound">n</a> <a id="55313" href="Data.Nat.Properties.html#55313" class="Bound">o</a> <a id="55315" class="Symbol"></a> <a id="55317" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="55319" href="Data.Nat.Properties.html#55309" class="Bound">m</a> <a id="55321" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="55323" href="Data.Nat.Properties.html#55311" class="Bound">n</a> <a id="55325" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="55327" href="Data.Nat.Properties.html#55309" class="Bound">m</a> <a id="55329" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="55331" href="Data.Nat.Properties.html#55313" class="Bound">o</a> <a id="55333" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="55335" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="55337" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="55339" href="Data.Nat.Properties.html#55311" class="Bound">n</a> <a id="55341" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="55343" href="Data.Nat.Properties.html#55313" class="Bound">o</a> <a id="55345" href="Data.Nat.Base.html#6627" class="Function Operator"></a>
<a id="55347" href="Data.Nat.Properties.html#55289" class="Function">m+n-m+on-o</a> <a id="55363" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="55371" href="Data.Nat.Properties.html#55371" class="Bound">n</a> <a id="55373" href="Data.Nat.Properties.html#55373" class="Bound">o</a> <a id="55375" class="Symbol">=</a> <a id="55377" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="55382" href="Data.Nat.Properties.html#55289" class="Function">m+n-m+on-o</a> <a id="55398" class="Symbol">(</a><a id="55399" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="55403" href="Data.Nat.Properties.html#55403" class="Bound">m</a><a id="55404" class="Symbol">)</a> <a id="55406" href="Data.Nat.Properties.html#55406" class="Bound">n</a> <a id="55408" href="Data.Nat.Properties.html#55408" class="Bound">o</a> <a id="55410" class="Symbol">=</a> <a id="55412" href="Data.Nat.Properties.html#55289" class="Function">m+n-m+on-o</a> <a id="55428" href="Data.Nat.Properties.html#55403" class="Bound">m</a> <a id="55430" href="Data.Nat.Properties.html#55406" class="Bound">n</a> <a id="55432" href="Data.Nat.Properties.html#55408" class="Bound">o</a>
<a id="m∸n≤m-n"></a><a id="55435" href="Data.Nat.Properties.html#55435" class="Function">m∸n≤m-n</a> <a id="55445" class="Symbol">:</a> <a id="55447" class="Symbol"></a> <a id="55449" href="Data.Nat.Properties.html#55449" class="Bound">m</a> <a id="55451" href="Data.Nat.Properties.html#55451" class="Bound">n</a> <a id="55453" class="Symbol"></a> <a id="55455" href="Data.Nat.Properties.html#55449" class="Bound">m</a> <a id="55457" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="55459" href="Data.Nat.Properties.html#55451" class="Bound">n</a> <a id="55461" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="55463" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="55465" href="Data.Nat.Properties.html#55449" class="Bound">m</a> <a id="55467" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="55469" href="Data.Nat.Properties.html#55451" class="Bound">n</a> <a id="55471" href="Data.Nat.Base.html#6627" class="Function Operator"></a>
<a id="55473" href="Data.Nat.Properties.html#55435" class="Function">m∸n≤m-n</a> <a id="55483" href="Data.Nat.Properties.html#55483" class="Bound">m</a> <a id="55485" href="Data.Nat.Properties.html#55485" class="Bound">n</a> <a id="55487" class="Keyword">with</a> <a id="55492" href="Data.Nat.Properties.html#5537" class="Function">≤-total</a> <a id="55500" href="Data.Nat.Properties.html#55483" class="Bound">m</a> <a id="55502" href="Data.Nat.Properties.html#55485" class="Bound">n</a>
<a id="55504" class="Symbol">...</a> <a id="55508" class="Symbol">|</a> <a id="55510" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a> <a id="55515" href="Data.Nat.Properties.html#55515" class="Bound">m≤n</a> <a id="55519" class="Symbol">=</a> <a id="55521" href="Relation.Binary.PropositionalEquality.Core.html#1808" class="Function">subst</a> <a id="55527" class="Symbol">(</a><a id="55528" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤</a> <a id="55531" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="55533" class="Bound">m</a> <a id="55535" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="55537" class="Bound">n</a> <a id="55539" href="Data.Nat.Base.html#6627" class="Function Operator"></a><a id="55540" class="Symbol">)</a> <a id="55542" class="Symbol">(</a><a id="55543" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="55547" class="Symbol">(</a><a id="55548" href="Data.Nat.Properties.html#48274" class="Function">m≤n⇒m∸n≡0</a> <a id="55558" href="Data.Nat.Properties.html#55515" class="Bound">m≤n</a><a id="55561" class="Symbol">))</a> <a id="55564" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="55568" class="Symbol">...</a> <a id="55572" class="Symbol">|</a> <a id="55574" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a> <a id="55579" href="Data.Nat.Properties.html#55579" class="Bound">n≤m</a> <a id="55583" class="Symbol">=</a> <a id="55585" href="Relation.Binary.PropositionalEquality.Core.html#1808" class="Function">subst</a> <a id="55591" class="Symbol">(</a><a id="55592" class="Bound">m</a> <a id="55594" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="55596" class="Bound">n</a> <a id="55598" href="Data.Nat.Base.html#1691" class="Datatype Operator">≤_</a><a id="55600" class="Symbol">)</a> <a id="55602" class="Symbol">(</a><a id="55603" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="55607" class="Symbol">(</a><a id="55608" href="Data.Nat.Properties.html#54574" class="Function">m≤n⇒n-m≡n∸m</a> <a id="55622" href="Data.Nat.Properties.html#55579" class="Bound">n≤m</a><a id="55625" class="Symbol">))</a> <a id="55628" href="Data.Nat.Properties.html#5242" class="Function">≤-refl</a>
<a id="m-n≤m⊔n"></a><a id="55636" href="Data.Nat.Properties.html#55636" class="Function">m-n≤m⊔n</a> <a id="55646" class="Symbol">:</a> <a id="55648" class="Symbol"></a> <a id="55650" href="Data.Nat.Properties.html#55650" class="Bound">m</a> <a id="55652" href="Data.Nat.Properties.html#55652" class="Bound">n</a> <a id="55654" class="Symbol"></a> <a id="55656" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="55658" href="Data.Nat.Properties.html#55650" class="Bound">m</a> <a id="55660" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="55662" href="Data.Nat.Properties.html#55652" class="Bound">n</a> <a id="55664" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="55666" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="55668" href="Data.Nat.Properties.html#55650" class="Bound">m</a> <a id="55670" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="55672" href="Data.Nat.Properties.html#55652" class="Bound">n</a>
<a id="55674" href="Data.Nat.Properties.html#55636" class="Function">m-n≤m⊔n</a> <a id="55684" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="55692" href="Data.Nat.Properties.html#55692" class="Bound">m</a> <a id="55700" class="Symbol">=</a> <a id="55702" href="Data.Nat.Properties.html#5242" class="Function">≤-refl</a>
<a id="55709" href="Data.Nat.Properties.html#55636" class="Function">m-n≤m⊔n</a> <a id="55719" class="Symbol">(</a><a id="55720" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="55724" href="Data.Nat.Properties.html#55724" class="Bound">m</a><a id="55725" class="Symbol">)</a> <a id="55727" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="55735" class="Symbol">=</a> <a id="55737" href="Data.Nat.Properties.html#5242" class="Function">≤-refl</a>
<a id="55744" href="Data.Nat.Properties.html#55636" class="Function">m-n≤m⊔n</a> <a id="55754" class="Symbol">(</a><a id="55755" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="55759" href="Data.Nat.Properties.html#55759" class="Bound">m</a><a id="55760" class="Symbol">)</a> <a id="55762" class="Symbol">(</a><a id="55763" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="55767" href="Data.Nat.Properties.html#55767" class="Bound">n</a><a id="55768" class="Symbol">)</a> <a id="55770" class="Symbol">=</a> <a id="55772" href="Data.Nat.Properties.html#7849" class="Function">m≤n⇒m≤1+n</a> <a id="55782" class="Symbol">(</a><a id="55783" href="Data.Nat.Properties.html#55636" class="Function">m-n≤m⊔n</a> <a id="55793" href="Data.Nat.Properties.html#55759" class="Bound">m</a> <a id="55795" href="Data.Nat.Properties.html#55767" class="Bound">n</a><a id="55796" class="Symbol">)</a>
<a id="--identityˡ"></a><a id="55799" href="Data.Nat.Properties.html#55799" class="Function">--identityˡ</a> <a id="55813" class="Symbol">:</a> <a id="55815" href="Algebra.Definitions.html#1708" class="Function">LeftIdentity</a> <a id="55828" class="Number">0</a> <a id="55830" href="Data.Nat.Base.html#6627" class="Function Operator">_-_</a>
<a id="55836" href="Data.Nat.Properties.html#55799" class="Function">--identityˡ</a> <a id="55850" href="Data.Nat.Properties.html#55850" class="Bound">x</a> <a id="55852" class="Symbol">=</a> <a id="55854" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="--identityʳ"></a><a id="55860" href="Data.Nat.Properties.html#55860" class="Function">--identityʳ</a> <a id="55874" class="Symbol">:</a> <a id="55876" href="Algebra.Definitions.html#1781" class="Function">RightIdentity</a> <a id="55890" class="Number">0</a> <a id="55892" href="Data.Nat.Base.html#6627" class="Function Operator">_-_</a>
<a id="55898" href="Data.Nat.Properties.html#55860" class="Function">--identityʳ</a> <a id="55912" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="55920" class="Symbol">=</a> <a id="55922" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="55927" href="Data.Nat.Properties.html#55860" class="Function">--identityʳ</a> <a id="55941" class="Symbol">(</a><a id="55942" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="55946" href="Data.Nat.Properties.html#55946" class="Bound">x</a><a id="55947" class="Symbol">)</a> <a id="55949" class="Symbol">=</a> <a id="55951" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="--identity"></a><a id="55957" href="Data.Nat.Properties.html#55957" class="Function">--identity</a> <a id="55970" class="Symbol">:</a> <a id="55972" href="Algebra.Definitions.html#1856" class="Function">Identity</a> <a id="55981" class="Number">0</a> <a id="55983" href="Data.Nat.Base.html#6627" class="Function Operator">_-_</a>
<a id="55989" href="Data.Nat.Properties.html#55957" class="Function">--identity</a> <a id="56002" class="Symbol">=</a> <a id="56004" href="Data.Nat.Properties.html#55799" class="Function">--identityˡ</a> <a id="56018" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="56020" href="Data.Nat.Properties.html#55860" class="Function">--identityʳ</a>
<a id="--comm"></a><a id="56035" href="Data.Nat.Properties.html#56035" class="Function">--comm</a> <a id="56044" class="Symbol">:</a> <a id="56046" href="Algebra.Definitions.html#1635" class="Function">Commutative</a> <a id="56058" href="Data.Nat.Base.html#6627" class="Function Operator">_-_</a>
<a id="56064" href="Data.Nat.Properties.html#56035" class="Function">--comm</a> <a id="56073" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="56081" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="56089" class="Symbol">=</a> <a id="56091" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="56096" href="Data.Nat.Properties.html#56035" class="Function">--comm</a> <a id="56105" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="56113" class="Symbol">(</a><a id="56114" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="56118" href="Data.Nat.Properties.html#56118" class="Bound">n</a><a id="56119" class="Symbol">)</a> <a id="56121" class="Symbol">=</a> <a id="56123" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="56128" href="Data.Nat.Properties.html#56035" class="Function">--comm</a> <a id="56137" class="Symbol">(</a><a id="56138" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="56142" href="Data.Nat.Properties.html#56142" class="Bound">m</a><a id="56143" class="Symbol">)</a> <a id="56145" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="56153" class="Symbol">=</a> <a id="56155" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="56160" href="Data.Nat.Properties.html#56035" class="Function">--comm</a> <a id="56169" class="Symbol">(</a><a id="56170" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="56174" href="Data.Nat.Properties.html#56174" class="Bound">m</a><a id="56175" class="Symbol">)</a> <a id="56177" class="Symbol">(</a><a id="56178" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="56182" href="Data.Nat.Properties.html#56182" class="Bound">n</a><a id="56183" class="Symbol">)</a> <a id="56185" class="Symbol">=</a> <a id="56187" href="Data.Nat.Properties.html#56035" class="Function">--comm</a> <a id="56196" href="Data.Nat.Properties.html#56174" class="Bound">m</a> <a id="56198" href="Data.Nat.Properties.html#56182" class="Bound">n</a>
<a id="m-n≡[m∸n][n∸m]"></a><a id="56201" href="Data.Nat.Properties.html#56201" class="Function">m-n≡[m∸n][n∸m]</a> <a id="56219" class="Symbol">:</a> <a id="56221" class="Symbol"></a> <a id="56223" href="Data.Nat.Properties.html#56223" class="Bound">m</a> <a id="56225" href="Data.Nat.Properties.html#56225" class="Bound">n</a> <a id="56227" class="Symbol"></a> <a id="56229" class="Symbol">(</a><a id="56230" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="56232" href="Data.Nat.Properties.html#56223" class="Bound">m</a> <a id="56234" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="56236" href="Data.Nat.Properties.html#56225" class="Bound">n</a> <a id="56238" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="56240" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="56242" href="Data.Nat.Properties.html#56223" class="Bound">m</a> <a id="56244" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="56246" href="Data.Nat.Properties.html#56225" class="Bound">n</a><a id="56247" class="Symbol">)</a> <a id="56249" href="Data.Sum.Base.html#625" class="Datatype Operator"></a> <a id="56251" class="Symbol">(</a><a id="56252" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="56254" href="Data.Nat.Properties.html#56223" class="Bound">m</a> <a id="56256" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="56258" href="Data.Nat.Properties.html#56225" class="Bound">n</a> <a id="56260" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="56262" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="56264" href="Data.Nat.Properties.html#56225" class="Bound">n</a> <a id="56266" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="56268" href="Data.Nat.Properties.html#56223" class="Bound">m</a><a id="56269" class="Symbol">)</a>
<a id="56271" href="Data.Nat.Properties.html#56201" class="Function">m-n≡[m∸n][n∸m]</a> <a id="56289" href="Data.Nat.Properties.html#56289" class="Bound">m</a> <a id="56291" href="Data.Nat.Properties.html#56291" class="Bound">n</a> <a id="56293" class="Keyword">with</a> <a id="56298" href="Data.Nat.Properties.html#5537" class="Function">≤-total</a> <a id="56306" href="Data.Nat.Properties.html#56289" class="Bound">m</a> <a id="56308" href="Data.Nat.Properties.html#56291" class="Bound">n</a>
<a id="56310" class="Symbol">...</a> <a id="56314" class="Symbol">|</a> <a id="56316" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a> <a id="56321" href="Data.Nat.Properties.html#56321" class="Bound">n≤m</a> <a id="56325" class="Symbol">=</a> <a id="56327" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a> <a id="56332" href="Function.Base.html#1974" class="Function Operator">$</a> <a id="56334" href="Data.Nat.Properties.html#54574" class="Function">m≤n⇒n-m≡n∸m</a> <a id="56348" href="Data.Nat.Properties.html#56321" class="Bound">n≤m</a>
<a id="56352" class="Symbol">...</a> <a id="56356" class="Symbol">|</a> <a id="56358" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a> <a id="56363" href="Data.Nat.Properties.html#56363" class="Bound">m≤n</a> <a id="56367" class="Symbol">=</a> <a id="56369" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a> <a id="56374" href="Function.Base.html#1974" class="Function Operator">$</a> <a id="56376" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a>
<a id="56393" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="56395" class="Bound">m</a> <a id="56397" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="56399" class="Bound">n</a> <a id="56401" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="56403" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="56406" href="Data.Nat.Properties.html#56035" class="Function">--comm</a> <a id="56415" class="Bound">m</a> <a id="56417" class="Bound">n</a> <a id="56419" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="56423" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="56425" class="Bound">n</a> <a id="56427" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="56429" class="Bound">m</a> <a id="56431" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="56433" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="56436" href="Data.Nat.Properties.html#54574" class="Function">m≤n⇒n-m≡n∸m</a> <a id="56450" href="Data.Nat.Properties.html#56363" class="Bound">m≤n</a> <a id="56454" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="56458" class="Bound">n</a> <a id="56460" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="56462" class="Bound">m</a> <a id="56468" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="56471" class="Keyword">private</a>
<a id="*-distribˡ---aux"></a><a id="56482" href="Data.Nat.Properties.html#56482" class="Function">*-distribˡ---aux</a> <a id="56501" class="Symbol">:</a> <a id="56503" class="Symbol"></a> <a id="56505" href="Data.Nat.Properties.html#56505" class="Bound">a</a> <a id="56507" href="Data.Nat.Properties.html#56507" class="Bound">m</a> <a id="56509" href="Data.Nat.Properties.html#56509" class="Bound">n</a> <a id="56511" class="Symbol"></a> <a id="56513" href="Data.Nat.Properties.html#56507" class="Bound">m</a> <a id="56515" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="56517" href="Data.Nat.Properties.html#56509" class="Bound">n</a> <a id="56519" class="Symbol"></a> <a id="56521" href="Data.Nat.Properties.html#56505" class="Bound">a</a> <a id="56523" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="56525" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="56527" href="Data.Nat.Properties.html#56509" class="Bound">n</a> <a id="56529" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="56531" href="Data.Nat.Properties.html#56507" class="Bound">m</a> <a id="56533" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="56535" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="56537" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="56539" href="Data.Nat.Properties.html#56505" class="Bound">a</a> <a id="56541" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="56543" href="Data.Nat.Properties.html#56509" class="Bound">n</a> <a id="56545" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="56547" href="Data.Nat.Properties.html#56505" class="Bound">a</a> <a id="56549" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="56551" href="Data.Nat.Properties.html#56507" class="Bound">m</a> <a id="56553" href="Data.Nat.Base.html#6627" class="Function Operator"></a>
<a id="56557" href="Data.Nat.Properties.html#56482" class="Function">*-distribˡ---aux</a> <a id="56576" href="Data.Nat.Properties.html#56576" class="Bound">a</a> <a id="56578" href="Data.Nat.Properties.html#56578" class="Bound">m</a> <a id="56580" href="Data.Nat.Properties.html#56580" class="Bound">n</a> <a id="56582" href="Data.Nat.Properties.html#56582" class="Bound">m≤n</a> <a id="56586" class="Symbol">=</a> <a id="56588" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a>
<a id="56607" href="Data.Nat.Properties.html#56576" class="Bound">a</a> <a id="56609" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="56611" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="56613" href="Data.Nat.Properties.html#56580" class="Bound">n</a> <a id="56615" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="56617" href="Data.Nat.Properties.html#56578" class="Bound">m</a> <a id="56619" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="56625" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="56628" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="56633" class="Symbol">(</a><a id="56634" href="Data.Nat.Properties.html#56576" class="Bound">a</a> <a id="56636" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*_</a><a id="56638" class="Symbol">)</a> <a id="56640" class="Symbol">(</a><a id="56641" href="Data.Nat.Properties.html#54574" class="Function">m≤n⇒n-m≡n∸m</a> <a id="56655" href="Data.Nat.Properties.html#56582" class="Bound">m≤n</a><a id="56658" class="Symbol">)</a> <a id="56660" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="56666" href="Data.Nat.Properties.html#56576" class="Bound">a</a> <a id="56668" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="56670" class="Symbol">(</a><a id="56671" href="Data.Nat.Properties.html#56580" class="Bound">n</a> <a id="56673" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="56675" href="Data.Nat.Properties.html#56578" class="Bound">m</a><a id="56676" class="Symbol">)</a> <a id="56684" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="56687" href="Data.Nat.Properties.html#51834" class="Function">*-distribˡ-∸</a> <a id="56700" href="Data.Nat.Properties.html#56576" class="Bound">a</a> <a id="56702" href="Data.Nat.Properties.html#56580" class="Bound">n</a> <a id="56704" href="Data.Nat.Properties.html#56578" class="Bound">m</a> <a id="56706" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="56712" href="Data.Nat.Properties.html#56576" class="Bound">a</a> <a id="56714" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="56716" href="Data.Nat.Properties.html#56580" class="Bound">n</a> <a id="56718" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="56720" href="Data.Nat.Properties.html#56576" class="Bound">a</a> <a id="56722" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="56724" href="Data.Nat.Properties.html#56578" class="Bound">m</a> <a id="56730" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="56733" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="56737" href="Function.Base.html#3839" class="Function Operator">$</a> <a id="56740" href="Data.Nat.Properties.html#54574" class="Function">m≤n⇒n-m≡n∸m</a> <a id="56754" class="Symbol">(</a><a id="56755" href="Data.Nat.Properties.html#27047" class="Function">*-monoʳ-≤</a> <a id="56765" href="Data.Nat.Properties.html#56576" class="Bound">a</a> <a id="56767" href="Data.Nat.Properties.html#56582" class="Bound">m≤n</a><a id="56770" class="Symbol">)</a> <a id="56772" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="56778" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="56780" href="Data.Nat.Properties.html#56576" class="Bound">a</a> <a id="56782" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="56784" href="Data.Nat.Properties.html#56580" class="Bound">n</a> <a id="56786" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="56788" href="Data.Nat.Properties.html#56576" class="Bound">a</a> <a id="56790" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="56792" href="Data.Nat.Properties.html#56578" class="Bound">m</a> <a id="56794" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="56796" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="*-distribˡ--"></a><a id="56799" href="Data.Nat.Properties.html#56799" class="Function">*-distribˡ--</a> <a id="56814" class="Symbol">:</a> <a id="56816" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a> <a id="56820" href="Algebra.Definitions.html#3155" class="Function Operator">DistributesOverˡ</a> <a id="56837" href="Data.Nat.Base.html#6627" class="Function Operator">_-_</a>
<a id="56843" href="Data.Nat.Properties.html#56799" class="Function">*-distribˡ--</a> <a id="56858" href="Data.Nat.Properties.html#56858" class="Bound">a</a> <a id="56860" href="Data.Nat.Properties.html#56860" class="Bound">m</a> <a id="56862" href="Data.Nat.Properties.html#56862" class="Bound">n</a> <a id="56864" class="Keyword">with</a> <a id="56869" href="Data.Nat.Properties.html#5537" class="Function">≤-total</a> <a id="56877" href="Data.Nat.Properties.html#56860" class="Bound">m</a> <a id="56879" href="Data.Nat.Properties.html#56862" class="Bound">n</a>
<a id="56881" class="Symbol">...</a> <a id="56885" class="Symbol">|</a> <a id="56887" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a> <a id="56892" href="Data.Nat.Properties.html#56892" class="Bound">n≤m</a> <a id="56896" class="Symbol">=</a> <a id="56898" href="Data.Nat.Properties.html#56482" class="Function">*-distribˡ---aux</a> <a id="56917" class="Bound">a</a> <a id="56919" class="Bound">n</a> <a id="56921" class="Bound">m</a> <a id="56923" href="Data.Nat.Properties.html#56892" class="Bound">n≤m</a>
<a id="56927" class="Symbol">...</a> <a id="56931" class="Symbol">|</a> <a id="56933" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a> <a id="56938" href="Data.Nat.Properties.html#56938" class="Bound">m≤n</a> <a id="56942" class="Symbol">=</a> <a id="56944" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a>
<a id="56961" class="Bound">a</a> <a id="56963" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="56965" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="56967" class="Bound">m</a> <a id="56969" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="56971" class="Bound">n</a> <a id="56973" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="56979" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="56982" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="56987" class="Symbol">(</a><a id="56988" class="Bound">a</a> <a id="56990" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*_</a><a id="56992" class="Symbol">)</a> <a id="56994" class="Symbol">(</a><a id="56995" href="Data.Nat.Properties.html#56035" class="Function">--comm</a> <a id="57004" class="Bound">m</a> <a id="57006" class="Bound">n</a><a id="57007" class="Symbol">)</a> <a id="57009" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="57013" class="Bound">a</a> <a id="57015" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="57017" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="57019" class="Bound">n</a> <a id="57021" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="57023" class="Bound">m</a> <a id="57025" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="57031" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="57034" href="Data.Nat.Properties.html#56482" class="Function">*-distribˡ---aux</a> <a id="57053" class="Bound">a</a> <a id="57055" class="Bound">m</a> <a id="57057" class="Bound">n</a> <a id="57059" href="Data.Nat.Properties.html#56938" class="Bound">m≤n</a> <a id="57063" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="57067" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="57069" class="Bound">a</a> <a id="57071" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="57073" class="Bound">n</a> <a id="57075" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="57077" class="Bound">a</a> <a id="57079" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="57081" class="Bound">m</a> <a id="57083" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="57085" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="57088" href="Data.Nat.Properties.html#56035" class="Function">--comm</a> <a id="57097" class="Symbol">(</a><a id="57098" class="Bound">a</a> <a id="57100" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="57102" class="Bound">n</a><a id="57103" class="Symbol">)</a> <a id="57105" class="Symbol">(</a><a id="57106" class="Bound">a</a> <a id="57108" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="57110" class="Bound">m</a><a id="57111" class="Symbol">)</a> <a id="57113" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="57117" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="57119" class="Bound">a</a> <a id="57121" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="57123" class="Bound">m</a> <a id="57125" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="57127" class="Bound">a</a> <a id="57129" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="57131" class="Bound">n</a> <a id="57133" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="57135" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="*-distribʳ--"></a><a id="57138" href="Data.Nat.Properties.html#57138" class="Function">*-distribʳ--</a> <a id="57153" class="Symbol">:</a> <a id="57155" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a> <a id="57159" href="Algebra.Definitions.html#3274" class="Function Operator">DistributesOverʳ</a> <a id="57176" href="Data.Nat.Base.html#6627" class="Function Operator">_-_</a>
<a id="57182" href="Data.Nat.Properties.html#57138" class="Function">*-distribʳ--</a> <a id="57197" class="Symbol">=</a> <a id="57199" href="Algebra.Consequences.Propositional.html#3194" class="Function">comm∧distrˡ⇒distrʳ</a> <a id="57218" href="Data.Nat.Properties.html#21421" class="Function">*-comm</a> <a id="57225" href="Data.Nat.Properties.html#56799" class="Function">*-distribˡ--</a>
<a id="*-distrib--"></a><a id="57241" href="Data.Nat.Properties.html#57241" class="Function">*-distrib--</a> <a id="57255" class="Symbol">:</a> <a id="57257" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">_*_</a> <a id="57261" href="Algebra.Definitions.html#3393" class="Function Operator">DistributesOver</a> <a id="57277" href="Data.Nat.Base.html#6627" class="Function Operator">_-_</a>
<a id="57283" href="Data.Nat.Properties.html#57241" class="Function">*-distrib--</a> <a id="57297" class="Symbol">=</a> <a id="57299" href="Data.Nat.Properties.html#56799" class="Function">*-distribˡ--</a> <a id="57314" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="57316" href="Data.Nat.Properties.html#57138" class="Function">*-distribʳ--</a>
<a id="m≤n+n-m"></a><a id="57332" href="Data.Nat.Properties.html#57332" class="Function">m≤n+n-m</a> <a id="57342" class="Symbol">:</a> <a id="57344" class="Symbol"></a> <a id="57346" href="Data.Nat.Properties.html#57346" class="Bound">m</a> <a id="57348" href="Data.Nat.Properties.html#57348" class="Bound">n</a> <a id="57350" class="Symbol"></a> <a id="57352" href="Data.Nat.Properties.html#57346" class="Bound">m</a> <a id="57354" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="57356" href="Data.Nat.Properties.html#57348" class="Bound">n</a> <a id="57358" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="57360" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="57362" href="Data.Nat.Properties.html#57348" class="Bound">n</a> <a id="57364" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="57366" href="Data.Nat.Properties.html#57346" class="Bound">m</a> <a id="57368" href="Data.Nat.Base.html#6627" class="Function Operator"></a>
<a id="57370" href="Data.Nat.Properties.html#57332" class="Function">m≤n+n-m</a> <a id="57380" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="57388" href="Data.Nat.Properties.html#57388" class="Bound">n</a> <a id="57396" class="Symbol">=</a> <a id="57398" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="57402" href="Data.Nat.Properties.html#57332" class="Function">m≤n+n-m</a> <a id="57412" class="Symbol">(</a><a id="57413" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="57417" href="Data.Nat.Properties.html#57417" class="Bound">m</a><a id="57418" class="Symbol">)</a> <a id="57420" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="57428" class="Symbol">=</a> <a id="57430" href="Data.Nat.Properties.html#5242" class="Function">≤-refl</a>
<a id="57437" href="Data.Nat.Properties.html#57332" class="Function">m≤n+n-m</a> <a id="57447" class="Symbol">(</a><a id="57448" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="57452" href="Data.Nat.Properties.html#57452" class="Bound">m</a><a id="57453" class="Symbol">)</a> <a id="57455" class="Symbol">(</a><a id="57456" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="57460" href="Data.Nat.Properties.html#57460" class="Bound">n</a><a id="57461" class="Symbol">)</a> <a id="57463" class="Symbol">=</a> <a id="57465" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="57469" class="Symbol">(</a><a id="57470" href="Data.Nat.Properties.html#57332" class="Function">m≤n+n-m</a> <a id="57480" href="Data.Nat.Properties.html#57452" class="Bound">m</a> <a id="57482" href="Data.Nat.Properties.html#57460" class="Bound">n</a><a id="57483" class="Symbol">)</a>
<a id="m≤n+m-n"></a><a id="57486" href="Data.Nat.Properties.html#57486" class="Function">m≤n+m-n</a> <a id="57496" class="Symbol">:</a> <a id="57498" class="Symbol"></a> <a id="57500" href="Data.Nat.Properties.html#57500" class="Bound">m</a> <a id="57502" href="Data.Nat.Properties.html#57502" class="Bound">n</a> <a id="57504" class="Symbol"></a> <a id="57506" href="Data.Nat.Properties.html#57500" class="Bound">m</a> <a id="57508" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="57510" href="Data.Nat.Properties.html#57502" class="Bound">n</a> <a id="57512" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="57514" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="57516" href="Data.Nat.Properties.html#57500" class="Bound">m</a> <a id="57518" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="57520" href="Data.Nat.Properties.html#57502" class="Bound">n</a> <a id="57522" href="Data.Nat.Base.html#6627" class="Function Operator"></a>
<a id="57524" href="Data.Nat.Properties.html#57486" class="Function">m≤n+m-n</a> <a id="57534" href="Data.Nat.Properties.html#57534" class="Bound">m</a> <a id="57536" href="Data.Nat.Properties.html#57536" class="Bound">n</a> <a id="57538" class="Symbol">=</a> <a id="57540" href="Relation.Binary.PropositionalEquality.Core.html#1808" class="Function">subst</a> <a id="57546" class="Symbol">(</a><a id="57547" href="Data.Nat.Properties.html#57534" class="Bound">m</a> <a id="57549" href="Data.Nat.Base.html#1691" class="Datatype Operator">≤_</a><a id="57551" class="Symbol">)</a> <a id="57553" class="Symbol">(</a><a id="57554" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="57559" class="Symbol">(</a><a id="57560" href="Data.Nat.Properties.html#57536" class="Bound">n</a> <a id="57562" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+_</a><a id="57564" class="Symbol">)</a> <a id="57566" class="Symbol">(</a><a id="57567" href="Data.Nat.Properties.html#56035" class="Function">--comm</a> <a id="57576" href="Data.Nat.Properties.html#57536" class="Bound">n</a> <a id="57578" href="Data.Nat.Properties.html#57534" class="Bound">m</a><a id="57579" class="Symbol">))</a> <a id="57582" class="Symbol">(</a><a id="57583" href="Data.Nat.Properties.html#57332" class="Function">m≤n+n-m</a> <a id="57593" href="Data.Nat.Properties.html#57534" class="Bound">m</a> <a id="57595" href="Data.Nat.Properties.html#57536" class="Bound">n</a><a id="57596" class="Symbol">)</a>
<a id="m≤m-n+n"></a><a id="57599" href="Data.Nat.Properties.html#57599" class="Function">m≤m-n+n</a> <a id="57609" class="Symbol">:</a> <a id="57611" class="Symbol"></a> <a id="57613" href="Data.Nat.Properties.html#57613" class="Bound">m</a> <a id="57615" href="Data.Nat.Properties.html#57615" class="Bound">n</a> <a id="57617" class="Symbol"></a> <a id="57619" href="Data.Nat.Properties.html#57613" class="Bound">m</a> <a id="57621" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="57623" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="57625" href="Data.Nat.Properties.html#57613" class="Bound">m</a> <a id="57627" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="57629" href="Data.Nat.Properties.html#57615" class="Bound">n</a> <a id="57631" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="57633" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="57635" href="Data.Nat.Properties.html#57615" class="Bound">n</a>
<a id="57637" href="Data.Nat.Properties.html#57599" class="Function">m≤m-n+n</a> <a id="57647" href="Data.Nat.Properties.html#57647" class="Bound">m</a> <a id="57649" href="Data.Nat.Properties.html#57649" class="Bound">n</a> <a id="57651" class="Symbol">=</a> <a id="57653" href="Relation.Binary.PropositionalEquality.Core.html#1808" class="Function">subst</a> <a id="57659" class="Symbol">(</a><a id="57660" href="Data.Nat.Properties.html#57647" class="Bound">m</a> <a id="57662" href="Data.Nat.Base.html#1691" class="Datatype Operator">≤_</a><a id="57664" class="Symbol">)</a> <a id="57666" class="Symbol">(</a><a id="57667" href="Data.Nat.Properties.html#14883" class="Function">+-comm</a> <a id="57674" href="Data.Nat.Properties.html#57649" class="Bound">n</a> <a id="57676" class="Symbol">_)</a> <a id="57679" class="Symbol">(</a><a id="57680" href="Data.Nat.Properties.html#57486" class="Function">m≤n+m-n</a> <a id="57690" href="Data.Nat.Properties.html#57647" class="Bound">m</a> <a id="57692" href="Data.Nat.Properties.html#57649" class="Bound">n</a><a id="57693" class="Symbol">)</a>
<a id="--triangle"></a><a id="57696" href="Data.Nat.Properties.html#57696" class="Function">--triangle</a> <a id="57709" class="Symbol">:</a> <a id="57711" href="Function.Metric.Nat.Definitions.html#1300" class="Function">TriangleInequality</a> <a id="57730" href="Data.Nat.Base.html#6627" class="Function Operator">_-_</a>
<a id="57736" href="Data.Nat.Properties.html#57696" class="Function">--triangle</a> <a id="57749" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="57757" href="Data.Nat.Properties.html#57757" class="Bound">y</a> <a id="57765" href="Data.Nat.Properties.html#57765" class="Bound">z</a> <a id="57773" class="Symbol">=</a> <a id="57775" href="Data.Nat.Properties.html#57332" class="Function">m≤n+n-m</a> <a id="57785" href="Data.Nat.Properties.html#57765" class="Bound">z</a> <a id="57787" href="Data.Nat.Properties.html#57757" class="Bound">y</a>
<a id="57789" href="Data.Nat.Properties.html#57696" class="CatchallClause Function">--triangle</a><a id="57801" class="CatchallClause"> </a><a id="57802" href="Data.Nat.Properties.html#57802" class="CatchallClause Bound">x</a><a id="57803" class="CatchallClause"> </a><a id="57810" href="Agda.Builtin.Nat.html#221" class="CatchallClause InductiveConstructor">zero</a><a id="57814" class="CatchallClause"> </a><a id="57818" href="Data.Nat.Properties.html#57818" class="CatchallClause Bound">z</a> <a id="57826" class="Symbol">=</a> <a id="57828" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="57836" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="57838" href="Data.Nat.Properties.html#57802" class="Bound">x</a> <a id="57840" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="57842" href="Data.Nat.Properties.html#57818" class="Bound">z</a> <a id="57844" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="57850" href="Relation.Binary.Reasoning.Syntax.html#5482" class="Function">≤⟨</a> <a id="57853" href="Data.Nat.Properties.html#55636" class="Function">m-n≤m⊔n</a> <a id="57863" href="Data.Nat.Properties.html#57802" class="Bound">x</a> <a id="57865" href="Data.Nat.Properties.html#57818" class="Bound">z</a> <a id="57867" href="Relation.Binary.Reasoning.Syntax.html#5482" class="Function"></a>
<a id="57871" href="Data.Nat.Properties.html#57802" class="Bound">x</a> <a id="57873" href="Data.Nat.Base.html#5479" class="Function Operator"></a> <a id="57875" href="Data.Nat.Properties.html#57818" class="Bound">z</a> <a id="57885" href="Relation.Binary.Reasoning.Syntax.html#5482" class="Function">≤⟨</a> <a id="57888" href="Data.Nat.Properties.html#40531" class="Function">m⊔n≤m+n</a> <a id="57896" href="Data.Nat.Properties.html#57802" class="Bound">x</a> <a id="57898" href="Data.Nat.Properties.html#57818" class="Bound">z</a> <a id="57900" href="Relation.Binary.Reasoning.Syntax.html#5482" class="Function"></a>
<a id="57904" href="Data.Nat.Properties.html#57802" class="Bound">x</a> <a id="57906" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="57908" href="Data.Nat.Properties.html#57818" class="Bound">z</a> <a id="57918" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="57921" href="Relation.Binary.PropositionalEquality.Core.html#1395" class="Function">cong₂</a> <a id="57927" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a> <a id="57931" class="Symbol">(</a><a id="57932" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="57936" class="Symbol">(</a><a id="57937" href="Data.Nat.Properties.html#55860" class="Function">--identityʳ</a> <a id="57951" href="Data.Nat.Properties.html#57802" class="Bound">x</a><a id="57952" class="Symbol">))</a> <a id="57955" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a> <a id="57960" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="57964" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="57966" href="Data.Nat.Properties.html#57802" class="Bound">x</a> <a id="57968" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="57970" class="Number">0</a> <a id="57972" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="57974" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="57976" href="Data.Nat.Properties.html#57818" class="Bound">z</a> <a id="57978" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="57982" class="Keyword">where</a> <a id="57988" class="Keyword">open</a> <a id="57993" href="Data.Nat.Properties.html#13933" class="Module">≤-Reasoning</a>
<a id="58005" href="Data.Nat.Properties.html#57696" class="CatchallClause Function">--triangle</a><a id="58017" class="CatchallClause"> </a><a id="58018" href="Data.Nat.Properties.html#58018" class="CatchallClause Bound">x</a><a id="58019" class="CatchallClause"> </a><a id="58026" href="Data.Nat.Properties.html#58026" class="CatchallClause Bound">y</a><a id="58027" class="CatchallClause"> </a><a id="58034" href="Agda.Builtin.Nat.html#221" class="CatchallClause InductiveConstructor">zero</a> <a id="58042" class="Symbol">=</a> <a id="58044" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="58052" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="58054" href="Data.Nat.Properties.html#58018" class="Bound">x</a> <a id="58056" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="58058" class="Number">0</a> <a id="58060" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="58074" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="58077" href="Data.Nat.Properties.html#55860" class="Function">--identityʳ</a> <a id="58091" href="Data.Nat.Properties.html#58018" class="Bound">x</a> <a id="58093" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="58097" href="Data.Nat.Properties.html#58018" class="Bound">x</a> <a id="58119" href="Relation.Binary.Reasoning.Syntax.html#5482" class="Function">≤⟨</a> <a id="58122" href="Data.Nat.Properties.html#57599" class="Function">m≤m-n+n</a> <a id="58132" href="Data.Nat.Properties.html#58018" class="Bound">x</a> <a id="58134" href="Data.Nat.Properties.html#58026" class="Bound">y</a> <a id="58136" href="Relation.Binary.Reasoning.Syntax.html#5482" class="Function"></a>
<a id="58140" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="58142" href="Data.Nat.Properties.html#58018" class="Bound">x</a> <a id="58144" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="58146" href="Data.Nat.Properties.html#58026" class="Bound">y</a> <a id="58148" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="58150" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="58152" href="Data.Nat.Properties.html#58026" class="Bound">y</a> <a id="58162" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="58165" href="Relation.Binary.PropositionalEquality.Core.html#1395" class="Function">cong₂</a> <a id="58171" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">_+_</a> <a id="58175" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a> <a id="58180" class="Symbol">(</a><a id="58181" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="58185" class="Symbol">(</a><a id="58186" href="Data.Nat.Properties.html#55860" class="Function">--identityʳ</a> <a id="58200" href="Data.Nat.Properties.html#58026" class="Bound">y</a><a id="58201" class="Symbol">))</a> <a id="58204" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="58208" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="58210" href="Data.Nat.Properties.html#58018" class="Bound">x</a> <a id="58212" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="58214" href="Data.Nat.Properties.html#58026" class="Bound">y</a> <a id="58216" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="58218" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="58220" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="58222" href="Data.Nat.Properties.html#58026" class="Bound">y</a> <a id="58224" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="58226" class="Number">0</a> <a id="58228" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="58230" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="58234" class="Keyword">where</a> <a id="58240" class="Keyword">open</a> <a id="58245" href="Data.Nat.Properties.html#13933" class="Module">≤-Reasoning</a>
<a id="58257" href="Data.Nat.Properties.html#57696" class="Function">--triangle</a> <a id="58270" class="Symbol">(</a><a id="58271" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="58275" href="Data.Nat.Properties.html#58275" class="Bound">x</a><a id="58276" class="Symbol">)</a> <a id="58278" class="Symbol">(</a><a id="58279" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="58283" href="Data.Nat.Properties.html#58283" class="Bound">y</a><a id="58284" class="Symbol">)</a> <a id="58286" class="Symbol">(</a><a id="58287" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="58291" href="Data.Nat.Properties.html#58291" class="Bound">z</a><a id="58292" class="Symbol">)</a> <a id="58294" class="Symbol">=</a> <a id="58296" href="Data.Nat.Properties.html#57696" class="Function">--triangle</a> <a id="58309" href="Data.Nat.Properties.html#58275" class="Bound">x</a> <a id="58311" href="Data.Nat.Properties.html#58283" class="Bound">y</a> <a id="58313" href="Data.Nat.Properties.html#58291" class="Bound">z</a>
<a id="-∣≡∣-"></a><a id="58316" href="Data.Nat.Properties.html#58316" class="Function">-∣≡∣-</a> <a id="58325" class="Symbol">:</a> <a id="58327" class="Symbol"></a> <a id="58329" href="Data.Nat.Properties.html#58329" class="Bound">m</a> <a id="58331" href="Data.Nat.Properties.html#58331" class="Bound">n</a> <a id="58333" class="Symbol"></a> <a id="58335" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="58337" href="Data.Nat.Properties.html#58329" class="Bound">m</a> <a id="58339" href="Data.Nat.Base.html#6627" class="Function Operator">-</a> <a id="58341" href="Data.Nat.Properties.html#58331" class="Bound">n</a> <a id="58343" href="Data.Nat.Base.html#6627" class="Function Operator"></a> <a id="58345" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="58347" href="Data.Nat.Base.html#6931" class="Function Operator"></a> <a id="58349" href="Data.Nat.Properties.html#58329" class="Bound">m</a> <a id="58351" href="Data.Nat.Base.html#6931" class="Function Operator">-</a> <a id="58353" href="Data.Nat.Properties.html#58331" class="Bound">n</a> <a id="58355" href="Data.Nat.Base.html#6931" class="Function Operator"></a>
<a id="58358" href="Data.Nat.Properties.html#58316" class="Function">-∣≡∣-</a> <a id="58367" href="Data.Nat.Properties.html#58367" class="Bound">m</a> <a id="58369" href="Data.Nat.Properties.html#58369" class="Bound">n</a> <a id="58371" class="Keyword">with</a> <a id="58376" href="Data.Nat.Properties.html#58367" class="Bound">m</a> <a id="58378" href="Data.Nat.Base.html#1457" class="Primitive Operator">&lt;</a> <a id="58381" href="Data.Nat.Properties.html#58369" class="Bound">n</a> <a id="58383" class="Keyword">in</a> <a id="58386" class="Argument">eq</a>
<a id="58389" class="Symbol">...</a> <a id="58393" class="Symbol">|</a> <a id="58395" href="Agda.Builtin.Bool.html#192" class="InductiveConstructor">false</a> <a id="58401" class="Symbol">=</a> <a id="58403" href="Data.Nat.Properties.html#54574" class="Function">m≤n⇒n-m≡n∸m</a> <a id="58417" class="Symbol">{</a><a id="58418" class="Bound">n</a><a id="58419" class="Symbol">}</a> <a id="58421" class="Symbol">{</a><a id="58422" class="Bound">m</a><a id="58423" class="Symbol">}</a> <a id="58425" class="Symbol">(</a><a id="58426" href="Data.Nat.Properties.html#8970" class="Function">≮⇒≥</a> <a id="58430" class="Symbol"></a> <a id="58433" href="Data.Nat.Properties.html#58433" class="Bound">m&lt;n</a> <a id="58437" class="Symbol"></a> <a id="58439" href="Relation.Binary.PropositionalEquality.Core.html#1808" class="Function">subst</a> <a id="58445" href="Data.Bool.Base.html#1348" class="Function">T</a> <a id="58447" href="Data.Nat.Properties.html#58386" class="Bound">eq</a> <a id="58450" class="Symbol">(</a><a id="58451" href="Data.Nat.Properties.html#4227" class="Function">&lt;&lt;</a> <a id="58456" href="Data.Nat.Properties.html#58433" class="Bound">m&lt;n</a><a id="58459" class="Symbol">)))</a>
<a id="58463" class="Symbol">...</a> <a id="58467" class="Symbol">|</a> <a id="58469" href="Agda.Builtin.Bool.html#198" class="InductiveConstructor">true</a> <a id="58475" class="Symbol">=</a> <a id="58477" href="Data.Nat.Properties.html#54759" class="Function">m≤n⇒m-n≡n∸m</a> <a id="58491" class="Symbol">{</a><a id="58492" class="Bound">m</a><a id="58493" class="Symbol">}</a> <a id="58495" class="Symbol">{</a><a id="58496" class="Bound">n</a><a id="58497" class="Symbol">}</a> <a id="58499" class="Symbol">(</a><a id="58500" href="Data.Nat.Properties.html#8416" class="Function">&lt;⇒≤</a> <a id="58504" class="Symbol">(</a><a id="58505" href="Data.Nat.Properties.html#4115" class="Function">&lt;ᵇ⇒&lt;</a> <a id="58510" class="Bound">m</a> <a id="58512" class="Bound">n</a> <a id="58514" class="Symbol">(</a><a id="58515" href="Relation.Binary.PropositionalEquality.Core.html#1808" class="Function">subst</a> <a id="58521" href="Data.Bool.Base.html#1348" class="Function">T</a> <a id="58523" class="Symbol">(</a><a id="58524" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="58528" href="Data.Nat.Properties.html#58386" class="Bound">eq</a><a id="58530" class="Symbol">)</a> <a id="58532" class="Symbol">_)))</a>
<a id="58538" class="Comment">------------------------------------------------------------------------</a>
<a id="58611" class="Comment">-- Metric structures</a>
<a id="--isProtoMetric"></a><a id="58633" href="Data.Nat.Properties.html#58633" class="Function">--isProtoMetric</a> <a id="58651" class="Symbol">:</a> <a id="58653" href="Function.Metric.Nat.Structures.html#805" class="Function">IsProtoMetric</a> <a id="58667" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a> <a id="58671" href="Data.Nat.Base.html#6627" class="Function Operator">_-_</a>
<a id="58677" href="Data.Nat.Properties.html#58633" class="Function">--isProtoMetric</a> <a id="58695" class="Symbol">=</a> <a id="58697" class="Keyword">record</a>
<a id="58706" class="Symbol">{</a> <a id="58708" href="Function.Metric.Structures.html#1103" class="Field">isPartialOrder</a> <a id="58724" class="Symbol">=</a> <a id="58726" href="Data.Nat.Properties.html#6625" class="Function">≤-isPartialOrder</a>
<a id="58745" class="Symbol">;</a> <a id="58747" href="Function.Metric.Structures.html#1150" class="Field">≈-isEquivalence</a> <a id="58763" class="Symbol">=</a> <a id="58765" href="Relation.Binary.PropositionalEquality.Properties.html#5422" class="Function">isEquivalence</a>
<a id="58781" class="Symbol">;</a> <a id="58783" href="Function.Metric.Structures.html#1192" class="Field">cong</a> <a id="58799" class="Symbol">=</a> <a id="58801" href="Relation.Binary.PropositionalEquality.Core.html#1395" class="Function">cong₂</a> <a id="58807" href="Data.Nat.Base.html#6627" class="Function Operator">_-_</a>
<a id="58815" class="Symbol">;</a> <a id="58817" href="Function.Metric.Structures.html#1237" class="Field">nonNegative</a> <a id="58833" class="Symbol">=</a> <a id="58835" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="58841" class="Symbol">}</a>
<a id="--isPreMetric"></a><a id="58844" href="Data.Nat.Properties.html#58844" class="Function">--isPreMetric</a> <a id="58860" class="Symbol">:</a> <a id="58862" href="Function.Metric.Nat.Structures.html#1048" class="Function">IsPreMetric</a> <a id="58874" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a> <a id="58878" href="Data.Nat.Base.html#6627" class="Function Operator">_-_</a>
<a id="58884" href="Data.Nat.Properties.html#58844" class="Function">--isPreMetric</a> <a id="58900" class="Symbol">=</a> <a id="58902" class="Keyword">record</a>
<a id="58911" class="Symbol">{</a> <a id="58913" href="Function.Metric.Structures.html#1600" class="Field">isProtoMetric</a> <a id="58927" class="Symbol">=</a> <a id="58929" href="Data.Nat.Properties.html#58633" class="Function">--isProtoMetric</a>
<a id="58949" class="Symbol">;</a> <a id="58951" href="Function.Metric.Structures.html#1636" class="Field">≈⇒0</a> <a id="58965" class="Symbol">=</a> <a id="58967" href="Data.Nat.Properties.html#54322" class="Function">m≡n⇒m-n≡0</a>
<a id="58981" class="Symbol">}</a>
<a id="--isQuasiSemiMetric"></a><a id="58984" href="Data.Nat.Properties.html#58984" class="Function">--isQuasiSemiMetric</a> <a id="59006" class="Symbol">:</a> <a id="59008" href="Function.Metric.Nat.Structures.html#1290" class="Function">IsQuasiSemiMetric</a> <a id="59026" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a> <a id="59030" href="Data.Nat.Base.html#6627" class="Function Operator">_-_</a>
<a id="59036" href="Data.Nat.Properties.html#58984" class="Function">--isQuasiSemiMetric</a> <a id="59058" class="Symbol">=</a> <a id="59060" class="Keyword">record</a>
<a id="59069" class="Symbol">{</a> <a id="59071" href="Function.Metric.Structures.html#1938" class="Field">isPreMetric</a> <a id="59083" class="Symbol">=</a> <a id="59085" href="Data.Nat.Properties.html#58844" class="Function">--isPreMetric</a>
<a id="59103" class="Symbol">;</a> <a id="59105" href="Function.Metric.Structures.html#1970" class="Field">0⇒≈</a> <a id="59117" class="Symbol">=</a> <a id="59119" href="Data.Nat.Properties.html#54439" class="Function">m-n≡0⇒m≡n</a>
<a id="59133" class="Symbol">}</a>
<a id="--isSemiMetric"></a><a id="59136" href="Data.Nat.Properties.html#59136" class="Function">--isSemiMetric</a> <a id="59153" class="Symbol">:</a> <a id="59155" href="Function.Metric.Nat.Structures.html#1550" class="Function">IsSemiMetric</a> <a id="59168" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a> <a id="59172" href="Data.Nat.Base.html#6627" class="Function Operator">_-_</a>
<a id="59178" href="Data.Nat.Properties.html#59136" class="Function">--isSemiMetric</a> <a id="59195" class="Symbol">=</a> <a id="59197" class="Keyword">record</a>
<a id="59206" class="Symbol">{</a> <a id="59208" href="Function.Metric.Structures.html#2255" class="Field">isQuasiSemiMetric</a> <a id="59226" class="Symbol">=</a> <a id="59228" href="Data.Nat.Properties.html#58984" class="Function">--isQuasiSemiMetric</a>
<a id="59252" class="Symbol">;</a> <a id="59254" href="Function.Metric.Structures.html#2299" class="Field">sym</a> <a id="59272" class="Symbol">=</a> <a id="59274" href="Data.Nat.Properties.html#56035" class="Function">--comm</a>
<a id="59285" class="Symbol">}</a>
<a id="--isMetric"></a><a id="59288" href="Data.Nat.Properties.html#59288" class="Function">--isMetric</a> <a id="59301" class="Symbol">:</a> <a id="59303" href="Function.Metric.Nat.Structures.html#1785" class="Function">IsMetric</a> <a id="59312" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a> <a id="59316" href="Data.Nat.Base.html#6627" class="Function Operator">_-_</a>
<a id="59322" href="Data.Nat.Properties.html#59288" class="Function">--isMetric</a> <a id="59335" class="Symbol">=</a> <a id="59337" class="Keyword">record</a>
<a id="59346" class="Symbol">{</a> <a id="59348" href="Function.Metric.Structures.html#3130" class="Field">isSemiMetric</a> <a id="59361" class="Symbol">=</a> <a id="59363" href="Data.Nat.Properties.html#59136" class="Function">--isSemiMetric</a>
<a id="59382" class="Symbol">;</a> <a id="59384" href="Function.Metric.Structures.html#3164" class="Field">triangle</a> <a id="59397" class="Symbol">=</a> <a id="59399" href="Data.Nat.Properties.html#57696" class="Function">--triangle</a>
<a id="59414" class="Symbol">}</a>
<a id="59417" class="Comment">------------------------------------------------------------------------</a>
<a id="59490" class="Comment">-- Metric bundles</a>
<a id="--quasiSemiMetric"></a><a id="59509" href="Data.Nat.Properties.html#59509" class="Function">--quasiSemiMetric</a> <a id="59529" class="Symbol">:</a> <a id="59531" href="Function.Metric.Nat.Bundles.html#1733" class="Record">QuasiSemiMetric</a> <a id="59547" href="Level.html#521" class="Function">0</a> <a id="59550" href="Level.html#521" class="Function">0</a>
<a id="59553" href="Data.Nat.Properties.html#59509" class="Function">--quasiSemiMetric</a> <a id="59573" class="Symbol">=</a> <a id="59575" class="Keyword">record</a>
<a id="59584" class="Symbol">{</a> <a id="59586" href="Function.Metric.Nat.Bundles.html#1922" class="Field">isQuasiSemiMetric</a> <a id="59604" class="Symbol">=</a> <a id="59606" href="Data.Nat.Properties.html#58984" class="Function">--isQuasiSemiMetric</a>
<a id="59630" class="Symbol">}</a>
<a id="--semiMetric"></a><a id="59633" href="Data.Nat.Properties.html#59633" class="Function">--semiMetric</a> <a id="59648" class="Symbol">:</a> <a id="59650" href="Function.Metric.Nat.Bundles.html#2260" class="Record">SemiMetric</a> <a id="59661" href="Level.html#521" class="Function">0</a> <a id="59664" href="Level.html#521" class="Function">0</a>
<a id="59667" href="Data.Nat.Properties.html#59633" class="Function">--semiMetric</a> <a id="59682" class="Symbol">=</a> <a id="59684" class="Keyword">record</a>
<a id="59693" class="Symbol">{</a> <a id="59695" href="Function.Metric.Nat.Bundles.html#2429" class="Field">isSemiMetric</a> <a id="59708" class="Symbol">=</a> <a id="59710" href="Data.Nat.Properties.html#59136" class="Function">--isSemiMetric</a>
<a id="59729" class="Symbol">}</a>
<a id="--preMetric"></a><a id="59732" href="Data.Nat.Properties.html#59732" class="Function">--preMetric</a> <a id="59746" class="Symbol">:</a> <a id="59748" href="Function.Metric.Nat.Bundles.html#1298" class="Record">PreMetric</a> <a id="59758" href="Level.html#521" class="Function">0</a> <a id="59761" href="Level.html#521" class="Function">0</a>
<a id="59764" href="Data.Nat.Properties.html#59732" class="Function">--preMetric</a> <a id="59778" class="Symbol">=</a> <a id="59780" class="Keyword">record</a>
<a id="59789" class="Symbol">{</a> <a id="59791" href="Function.Metric.Nat.Bundles.html#1463" class="Field">isPreMetric</a> <a id="59803" class="Symbol">=</a> <a id="59805" href="Data.Nat.Properties.html#58844" class="Function">--isPreMetric</a>
<a id="59823" class="Symbol">}</a>
<a id="--metric"></a><a id="59826" href="Data.Nat.Properties.html#59826" class="Function">--metric</a> <a id="59837" class="Symbol">:</a> <a id="59839" href="Function.Metric.Nat.Bundles.html#2797" class="Record">Metric</a> <a id="59846" href="Level.html#521" class="Function">0</a> <a id="59849" href="Level.html#521" class="Function">0</a>
<a id="59852" href="Data.Nat.Properties.html#59826" class="Function">--metric</a> <a id="59863" class="Symbol">=</a> <a id="59865" class="Keyword">record</a>
<a id="59874" class="Symbol">{</a> <a id="59876" href="Function.Metric.Nat.Bundles.html#2950" class="Field">isMetric</a> <a id="59885" class="Symbol">=</a> <a id="59887" href="Data.Nat.Properties.html#59288" class="Function">--isMetric</a>
<a id="59902" class="Symbol">}</a>
<a id="59905" class="Comment">------------------------------------------------------------------------</a>
<a id="59978" class="Comment">-- Properties of ⌊_/2⌋ and ⌈_/2⌉</a>
<a id="60011" class="Comment">------------------------------------------------------------------------</a>
<a id="⌊n/2⌋-mono"></a><a id="60085" href="Data.Nat.Properties.html#60085" class="Function">⌊n/2⌋-mono</a> <a id="60096" class="Symbol">:</a> <a id="60098" href="Data.Nat.Base.html#6358" class="Function Operator">⌊_/2⌋</a> <a id="60104" href="Relation.Binary.Core.html#1577" class="Function Operator">Preserves</a> <a id="60114" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="60118" href="Relation.Binary.Core.html#1577" class="Function Operator"></a> <a id="60120" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="60124" href="Data.Nat.Properties.html#60085" class="Function">⌊n/2⌋-mono</a> <a id="60135" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="60151" class="Symbol">=</a> <a id="60153" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="60157" href="Data.Nat.Properties.html#60085" class="Function">⌊n/2⌋-mono</a> <a id="60168" class="Symbol">(</a><a id="60169" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="60173" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a><a id="60176" class="Symbol">)</a> <a id="60184" class="Symbol">=</a> <a id="60186" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="60190" href="Data.Nat.Properties.html#60085" class="Function">⌊n/2⌋-mono</a> <a id="60201" class="Symbol">(</a><a id="60202" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="60206" class="Symbol">(</a><a id="60207" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="60211" href="Data.Nat.Properties.html#60211" class="Bound">m≤n</a><a id="60214" class="Symbol">))</a> <a id="60217" class="Symbol">=</a> <a id="60219" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="60223" class="Symbol">(</a><a id="60224" href="Data.Nat.Properties.html#60085" class="Function">⌊n/2⌋-mono</a> <a id="60235" href="Data.Nat.Properties.html#60211" class="Bound">m≤n</a><a id="60238" class="Symbol">)</a>
<a id="⌈n/2⌉-mono"></a><a id="60241" href="Data.Nat.Properties.html#60241" class="Function">⌈n/2⌉-mono</a> <a id="60252" class="Symbol">:</a> <a id="60254" href="Data.Nat.Base.html#6485" class="Function Operator">⌈_/2⌉</a> <a id="60260" href="Relation.Binary.Core.html#1577" class="Function Operator">Preserves</a> <a id="60270" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="60274" href="Relation.Binary.Core.html#1577" class="Function Operator"></a> <a id="60276" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="60280" href="Data.Nat.Properties.html#60241" class="Function">⌈n/2⌉-mono</a> <a id="60291" href="Data.Nat.Properties.html#60291" class="Bound">m≤n</a> <a id="60295" class="Symbol">=</a> <a id="60297" href="Data.Nat.Properties.html#60085" class="Function">⌊n/2⌋-mono</a> <a id="60308" class="Symbol">(</a><a id="60309" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="60313" href="Data.Nat.Properties.html#60291" class="Bound">m≤n</a><a id="60316" class="Symbol">)</a>
<a id="⌊n/2⌋≤⌈n/2⌉"></a><a id="60319" href="Data.Nat.Properties.html#60319" class="Function">⌊n/2⌋≤⌈n/2⌉</a> <a id="60331" class="Symbol">:</a> <a id="60333" class="Symbol"></a> <a id="60335" href="Data.Nat.Properties.html#60335" class="Bound">n</a> <a id="60337" class="Symbol"></a> <a id="60339" href="Data.Nat.Base.html#6358" class="Function Operator"></a> <a id="60341" href="Data.Nat.Properties.html#60335" class="Bound">n</a> <a id="60343" href="Data.Nat.Base.html#6358" class="Function Operator">/2⌋</a> <a id="60347" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="60349" href="Data.Nat.Base.html#6485" class="Function Operator"></a> <a id="60351" href="Data.Nat.Properties.html#60335" class="Bound">n</a> <a id="60353" href="Data.Nat.Base.html#6485" class="Function Operator">/2⌉</a>
<a id="60357" href="Data.Nat.Properties.html#60319" class="Function">⌊n/2⌋≤⌈n/2⌉</a> <a id="60369" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="60383" class="Symbol">=</a> <a id="60385" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="60389" href="Data.Nat.Properties.html#60319" class="Function">⌊n/2⌋≤⌈n/2⌉</a> <a id="60401" class="Symbol">(</a><a id="60402" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="60406" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="60410" class="Symbol">)</a> <a id="60415" class="Symbol">=</a> <a id="60417" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="60421" href="Data.Nat.Properties.html#60319" class="Function">⌊n/2⌋≤⌈n/2⌉</a> <a id="60433" class="Symbol">(</a><a id="60434" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="60438" class="Symbol">(</a><a id="60439" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="60443" href="Data.Nat.Properties.html#60443" class="Bound">n</a><a id="60444" class="Symbol">))</a> <a id="60447" class="Symbol">=</a> <a id="60449" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="60453" class="Symbol">(</a><a id="60454" href="Data.Nat.Properties.html#60319" class="Function">⌊n/2⌋≤⌈n/2⌉</a> <a id="60466" href="Data.Nat.Properties.html#60443" class="Bound">n</a><a id="60467" class="Symbol">)</a>
<a id="⌊n/2⌋+⌈n/2⌉≡n"></a><a id="60470" href="Data.Nat.Properties.html#60470" class="Function">⌊n/2⌋+⌈n/2⌉≡n</a> <a id="60484" class="Symbol">:</a> <a id="60486" class="Symbol"></a> <a id="60488" href="Data.Nat.Properties.html#60488" class="Bound">n</a> <a id="60490" class="Symbol"></a> <a id="60492" href="Data.Nat.Base.html#6358" class="Function Operator"></a> <a id="60494" href="Data.Nat.Properties.html#60488" class="Bound">n</a> <a id="60496" href="Data.Nat.Base.html#6358" class="Function Operator">/2⌋</a> <a id="60500" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="60502" href="Data.Nat.Base.html#6485" class="Function Operator"></a> <a id="60504" href="Data.Nat.Properties.html#60488" class="Bound">n</a> <a id="60506" href="Data.Nat.Base.html#6485" class="Function Operator">/2⌉</a> <a id="60510" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="60512" href="Data.Nat.Properties.html#60488" class="Bound">n</a>
<a id="60514" href="Data.Nat.Properties.html#60470" class="Function">⌊n/2⌋+⌈n/2⌉≡n</a> <a id="60528" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="60536" class="Symbol">=</a> <a id="60538" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="60543" href="Data.Nat.Properties.html#60470" class="Function">⌊n/2⌋+⌈n/2⌉≡n</a> <a id="60557" class="Symbol">(</a><a id="60558" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="60562" href="Data.Nat.Properties.html#60562" class="Bound">n</a><a id="60563" class="Symbol">)</a> <a id="60565" class="Symbol">=</a> <a id="60567" href="Relation.Binary.Reasoning.Syntax.html#2557" class="Function Operator">begin-equality</a>
<a id="60584" href="Data.Nat.Base.html#6358" class="Function Operator"></a> <a id="60586" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="60590" href="Data.Nat.Properties.html#60562" class="Bound">n</a> <a id="60592" href="Data.Nat.Base.html#6358" class="Function Operator">/2⌋</a> <a id="60596" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="60598" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="60602" href="Data.Nat.Base.html#6358" class="Function Operator"></a> <a id="60604" href="Data.Nat.Properties.html#60562" class="Bound">n</a> <a id="60606" href="Data.Nat.Base.html#6358" class="Function Operator">/2⌋</a> <a id="60612" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="60615" href="Data.Nat.Properties.html#14883" class="Function">+-comm</a> <a id="60622" href="Data.Nat.Base.html#6358" class="Function Operator"></a> <a id="60624" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="60628" href="Data.Nat.Properties.html#60562" class="Bound">n</a> <a id="60630" href="Data.Nat.Base.html#6358" class="Function Operator">/2⌋</a> <a id="60634" class="Symbol">(</a><a id="60635" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="60639" href="Data.Nat.Base.html#6358" class="Function Operator"></a> <a id="60641" href="Data.Nat.Properties.html#60562" class="Bound">n</a> <a id="60643" href="Data.Nat.Base.html#6358" class="Function Operator">/2⌋</a><a id="60646" class="Symbol">)</a> <a id="60648" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="60652" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="60656" href="Data.Nat.Base.html#6358" class="Function Operator"></a> <a id="60658" href="Data.Nat.Properties.html#60562" class="Bound">n</a> <a id="60660" href="Data.Nat.Base.html#6358" class="Function Operator">/2⌋</a> <a id="60664" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="60666" href="Data.Nat.Base.html#6358" class="Function Operator"></a> <a id="60668" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="60672" href="Data.Nat.Properties.html#60562" class="Bound">n</a> <a id="60674" href="Data.Nat.Base.html#6358" class="Function Operator">/2⌋</a> <a id="60680" href="Relation.Binary.Reasoning.Syntax.html#11017" class="Function">≡⟨⟩</a>
<a id="60686" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="60690" class="Symbol">(</a><a id="60691" href="Data.Nat.Base.html#6358" class="Function Operator"></a> <a id="60693" href="Data.Nat.Properties.html#60562" class="Bound">n</a> <a id="60695" href="Data.Nat.Base.html#6358" class="Function Operator">/2⌋</a> <a id="60699" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="60701" href="Data.Nat.Base.html#6358" class="Function Operator"></a> <a id="60703" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="60707" href="Data.Nat.Properties.html#60562" class="Bound">n</a> <a id="60709" href="Data.Nat.Base.html#6358" class="Function Operator">/2⌋</a><a id="60712" class="Symbol">)</a> <a id="60714" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">≡⟨</a> <a id="60717" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="60722" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="60726" class="Symbol">(</a><a id="60727" href="Data.Nat.Properties.html#60470" class="Function">⌊n/2⌋+⌈n/2⌉≡n</a> <a id="60741" href="Data.Nat.Properties.html#60562" class="Bound">n</a><a id="60742" class="Symbol">)</a> <a id="60744" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function"></a>
<a id="60748" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="60752" href="Data.Nat.Properties.html#60562" class="Bound">n</a> <a id="60776" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="⌊n/2⌋≤n"></a><a id="60779" href="Data.Nat.Properties.html#60779" class="Function">⌊n/2⌋≤n</a> <a id="60787" class="Symbol">:</a> <a id="60789" class="Symbol"></a> <a id="60791" href="Data.Nat.Properties.html#60791" class="Bound">n</a> <a id="60793" class="Symbol"></a> <a id="60795" href="Data.Nat.Base.html#6358" class="Function Operator"></a> <a id="60797" href="Data.Nat.Properties.html#60791" class="Bound">n</a> <a id="60799" href="Data.Nat.Base.html#6358" class="Function Operator">/2⌋</a> <a id="60803" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="60805" href="Data.Nat.Properties.html#60791" class="Bound">n</a>
<a id="60807" href="Data.Nat.Properties.html#60779" class="Function">⌊n/2⌋≤n</a> <a id="60815" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="60829" class="Symbol">=</a> <a id="60831" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="60835" href="Data.Nat.Properties.html#60779" class="Function">⌊n/2⌋≤n</a> <a id="60843" class="Symbol">(</a><a id="60844" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="60848" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="60852" class="Symbol">)</a> <a id="60857" class="Symbol">=</a> <a id="60859" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="60863" href="Data.Nat.Properties.html#60779" class="Function">⌊n/2⌋≤n</a> <a id="60871" class="Symbol">(</a><a id="60872" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="60876" class="Symbol">(</a><a id="60877" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="60881" href="Data.Nat.Properties.html#60881" class="Bound">n</a><a id="60882" class="Symbol">))</a> <a id="60885" class="Symbol">=</a> <a id="60887" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="60891" class="Symbol">(</a><a id="60892" href="Data.Nat.Properties.html#7849" class="Function">m≤n⇒m≤1+n</a> <a id="60902" class="Symbol">(</a><a id="60903" href="Data.Nat.Properties.html#60779" class="Function">⌊n/2⌋≤n</a> <a id="60911" href="Data.Nat.Properties.html#60881" class="Bound">n</a><a id="60912" class="Symbol">))</a>
<a id="⌊n/2⌋&lt;n"></a><a id="60916" href="Data.Nat.Properties.html#60916" class="Function">⌊n/2⌋&lt;n</a> <a id="60924" class="Symbol">:</a> <a id="60926" class="Symbol"></a> <a id="60928" href="Data.Nat.Properties.html#60928" class="Bound">n</a> <a id="60930" class="Symbol"></a> <a id="60932" href="Data.Nat.Base.html#6358" class="Function Operator"></a> <a id="60934" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="60938" href="Data.Nat.Properties.html#60928" class="Bound">n</a> <a id="60940" href="Data.Nat.Base.html#6358" class="Function Operator">/2⌋</a> <a id="60944" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="60946" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="60950" href="Data.Nat.Properties.html#60928" class="Bound">n</a>
<a id="60952" href="Data.Nat.Properties.html#60916" class="Function">⌊n/2⌋&lt;n</a> <a id="60960" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="60968" class="Symbol">=</a> <a id="60970" href="Data.Nat.Base.html#1873" class="InductiveConstructor">z&lt;s</a>
<a id="60974" href="Data.Nat.Properties.html#60916" class="Function">⌊n/2⌋&lt;n</a> <a id="60982" class="Symbol">(</a><a id="60983" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="60987" href="Data.Nat.Properties.html#60987" class="Bound">n</a><a id="60988" class="Symbol">)</a> <a id="60990" class="Symbol">=</a> <a id="60992" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a> <a id="60996" class="Symbol">(</a><a id="60997" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="61001" class="Symbol">(</a><a id="61002" href="Data.Nat.Properties.html#60779" class="Function">⌊n/2⌋≤n</a> <a id="61010" href="Data.Nat.Properties.html#60987" class="Bound">n</a><a id="61011" class="Symbol">))</a>
<a id="n≡⌊n+n/2⌋"></a><a id="61015" href="Data.Nat.Properties.html#61015" class="Function">n≡⌊n+n/2⌋</a> <a id="61025" class="Symbol">:</a> <a id="61027" class="Symbol"></a> <a id="61029" href="Data.Nat.Properties.html#61029" class="Bound">n</a> <a id="61031" class="Symbol"></a> <a id="61033" href="Data.Nat.Properties.html#61029" class="Bound">n</a> <a id="61035" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="61037" href="Data.Nat.Base.html#6358" class="Function Operator"></a> <a id="61039" href="Data.Nat.Properties.html#61029" class="Bound">n</a> <a id="61041" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="61043" href="Data.Nat.Properties.html#61029" class="Bound">n</a> <a id="61045" href="Data.Nat.Base.html#6358" class="Function Operator">/2⌋</a>
<a id="61049" href="Data.Nat.Properties.html#61015" class="Function">n≡⌊n+n/2⌋</a> <a id="61059" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="61073" class="Symbol">=</a> <a id="61075" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="61080" href="Data.Nat.Properties.html#61015" class="Function">n≡⌊n+n/2⌋</a> <a id="61090" class="Symbol">(</a><a id="61091" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="61095" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="61099" class="Symbol">)</a> <a id="61104" class="Symbol">=</a> <a id="61106" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="61111" href="Data.Nat.Properties.html#61015" class="Function">n≡⌊n+n/2⌋</a> <a id="61121" class="Symbol">(</a><a id="61122" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="61126" href="Data.Nat.Properties.html#61126" class="Bound">n</a><a id="61128" class="Symbol">@(</a><a id="61130" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="61134" href="Data.Nat.Properties.html#61134" class="Bound">n</a><a id="61135" class="Symbol">))</a> <a id="61138" class="Symbol">=</a>
<a id="61142" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="61147" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="61151" class="Symbol">(</a><a id="61152" href="Relation.Binary.PropositionalEquality.Core.html#1757" class="Function">trans</a> <a id="61158" class="Symbol">(</a><a id="61159" href="Data.Nat.Properties.html#61015" class="Function">n≡⌊n+n/2⌋</a> <a id="61169" class="Symbol">_)</a> <a id="61172" class="Symbol">(</a><a id="61173" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="61178" href="Data.Nat.Base.html#6358" class="Function Operator">⌊_/2⌋</a> <a id="61184" class="Symbol">(</a><a id="61185" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="61189" class="Symbol">(</a><a id="61190" href="Data.Nat.Properties.html#14342" class="Function">+-suc</a> <a id="61196" href="Data.Nat.Properties.html#61134" class="Bound">n</a> <a id="61198" href="Data.Nat.Properties.html#61126" class="Bound">n</a><a id="61200" class="Symbol">))))</a>
<a id="⌈n/2⌉≤n"></a><a id="61206" href="Data.Nat.Properties.html#61206" class="Function">⌈n/2⌉≤n</a> <a id="61214" class="Symbol">:</a> <a id="61216" class="Symbol"></a> <a id="61218" href="Data.Nat.Properties.html#61218" class="Bound">n</a> <a id="61220" class="Symbol"></a> <a id="61222" href="Data.Nat.Base.html#6485" class="Function Operator"></a> <a id="61224" href="Data.Nat.Properties.html#61218" class="Bound">n</a> <a id="61226" href="Data.Nat.Base.html#6485" class="Function Operator">/2⌉</a> <a id="61230" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="61232" href="Data.Nat.Properties.html#61218" class="Bound">n</a>
<a id="61234" href="Data.Nat.Properties.html#61206" class="Function">⌈n/2⌉≤n</a> <a id="61242" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="61250" class="Symbol">=</a> <a id="61252" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a>
<a id="61256" href="Data.Nat.Properties.html#61206" class="Function">⌈n/2⌉≤n</a> <a id="61264" class="Symbol">(</a><a id="61265" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="61269" href="Data.Nat.Properties.html#61269" class="Bound">n</a><a id="61270" class="Symbol">)</a> <a id="61272" class="Symbol">=</a> <a id="61274" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="61278" class="Symbol">(</a><a id="61279" href="Data.Nat.Properties.html#60779" class="Function">⌊n/2⌋≤n</a> <a id="61287" href="Data.Nat.Properties.html#61269" class="Bound">n</a><a id="61288" class="Symbol">)</a>
<a id="⌈n/2⌉&lt;n"></a><a id="61291" href="Data.Nat.Properties.html#61291" class="Function">⌈n/2⌉&lt;n</a> <a id="61299" class="Symbol">:</a> <a id="61301" class="Symbol"></a> <a id="61303" href="Data.Nat.Properties.html#61303" class="Bound">n</a> <a id="61305" class="Symbol"></a> <a id="61307" href="Data.Nat.Base.html#6485" class="Function Operator"></a> <a id="61309" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="61313" class="Symbol">(</a><a id="61314" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="61318" href="Data.Nat.Properties.html#61303" class="Bound">n</a><a id="61319" class="Symbol">)</a> <a id="61321" href="Data.Nat.Base.html#6485" class="Function Operator">/2⌉</a> <a id="61325" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="61327" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="61331" class="Symbol">(</a><a id="61332" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="61336" href="Data.Nat.Properties.html#61303" class="Bound">n</a><a id="61337" class="Symbol">)</a>
<a id="61339" href="Data.Nat.Properties.html#61291" class="Function">⌈n/2⌉&lt;n</a> <a id="61347" href="Data.Nat.Properties.html#61347" class="Bound">n</a> <a id="61349" class="Symbol">=</a> <a id="61351" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a> <a id="61355" class="Symbol">(</a><a id="61356" href="Data.Nat.Properties.html#60916" class="Function">⌊n/2⌋&lt;n</a> <a id="61364" href="Data.Nat.Properties.html#61347" class="Bound">n</a><a id="61365" class="Symbol">)</a>
<a id="n≡⌈n+n/2⌉"></a><a id="61368" href="Data.Nat.Properties.html#61368" class="Function">n≡⌈n+n/2⌉</a> <a id="61378" class="Symbol">:</a> <a id="61380" class="Symbol"></a> <a id="61382" href="Data.Nat.Properties.html#61382" class="Bound">n</a> <a id="61384" class="Symbol"></a> <a id="61386" href="Data.Nat.Properties.html#61382" class="Bound">n</a> <a id="61388" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="61390" href="Data.Nat.Base.html#6485" class="Function Operator"></a> <a id="61392" href="Data.Nat.Properties.html#61382" class="Bound">n</a> <a id="61394" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="61396" href="Data.Nat.Properties.html#61382" class="Bound">n</a> <a id="61398" href="Data.Nat.Base.html#6485" class="Function Operator">/2⌉</a>
<a id="61402" href="Data.Nat.Properties.html#61368" class="Function">n≡⌈n+n/2⌉</a> <a id="61412" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="61428" class="Symbol">=</a> <a id="61430" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="61435" href="Data.Nat.Properties.html#61368" class="Function">n≡⌈n+n/2⌉</a> <a id="61445" class="Symbol">(</a><a id="61446" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="61450" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="61454" class="Symbol">)</a> <a id="61461" class="Symbol">=</a> <a id="61463" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="61468" href="Data.Nat.Properties.html#61368" class="Function">n≡⌈n+n/2⌉</a> <a id="61478" class="Symbol">(</a><a id="61479" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="61483" href="Data.Nat.Properties.html#61483" class="Bound">n</a><a id="61485" class="Symbol">@(</a><a id="61487" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="61491" href="Data.Nat.Properties.html#61491" class="Bound">n</a><a id="61492" class="Symbol">))</a> <a id="61495" class="Symbol">=</a>
<a id="61499" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="61504" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="61508" class="Symbol">(</a><a id="61509" href="Relation.Binary.PropositionalEquality.Core.html#1757" class="Function">trans</a> <a id="61515" class="Symbol">(</a><a id="61516" href="Data.Nat.Properties.html#61368" class="Function">n≡⌈n+n/2⌉</a> <a id="61526" class="Symbol">_)</a> <a id="61529" class="Symbol">(</a><a id="61530" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="61535" href="Data.Nat.Base.html#6485" class="Function Operator">⌈_/2⌉</a> <a id="61541" class="Symbol">(</a><a id="61542" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="61546" class="Symbol">(</a><a id="61547" href="Data.Nat.Properties.html#14342" class="Function">+-suc</a> <a id="61553" href="Data.Nat.Properties.html#61491" class="Bound">n</a> <a id="61555" href="Data.Nat.Properties.html#61483" class="Bound">n</a><a id="61557" class="Symbol">))))</a>
<a id="61563" class="Comment">------------------------------------------------------------------------</a>
<a id="61636" class="Comment">-- Properties of !_</a>
<a id="1≤n!"></a><a id="61657" href="Data.Nat.Properties.html#61657" class="Function">1≤n!</a> <a id="61662" class="Symbol">:</a> <a id="61664" class="Symbol"></a> <a id="61666" href="Data.Nat.Properties.html#61666" class="Bound">n</a> <a id="61668" class="Symbol"></a> <a id="61670" class="Number">1</a> <a id="61672" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="61674" href="Data.Nat.Properties.html#61666" class="Bound">n</a> <a id="61676" href="Data.Nat.Base.html#7385" class="Function Operator">!</a>
<a id="61678" href="Data.Nat.Properties.html#61657" class="Function">1≤n!</a> <a id="61683" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="61691" class="Symbol">=</a> <a id="61693" href="Data.Nat.Properties.html#5242" class="Function">≤-refl</a>
<a id="61700" href="Data.Nat.Properties.html#61657" class="Function">1≤n!</a> <a id="61705" class="Symbol">(</a><a id="61706" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="61710" href="Data.Nat.Properties.html#61710" class="Bound">n</a><a id="61711" class="Symbol">)</a> <a id="61713" class="Symbol">=</a> <a id="61715" href="Data.Nat.Properties.html#26828" class="Function">*-mono-≤</a> <a id="61724" class="Symbol">(</a><a id="61725" href="Data.Nat.Properties.html#18419" class="Function">m≤m+n</a> <a id="61731" class="Number">1</a> <a id="61733" href="Data.Nat.Properties.html#61710" class="Bound">n</a><a id="61734" class="Symbol">)</a> <a id="61736" class="Symbol">(</a><a id="61737" href="Data.Nat.Properties.html#61657" class="Function">1≤n!</a> <a id="61742" href="Data.Nat.Properties.html#61710" class="Bound">n</a><a id="61743" class="Symbol">)</a>
<a id="61746" class="Keyword">infix</a> <a id="61752" class="Number">4</a> <a id="61754" href="Data.Nat.Properties.html#61768" class="Function Operator">_!≢0</a> <a id="61759" href="Data.Nat.Properties.html#61823" class="Function Operator">_!*_!≢0</a>
<a id="_!≢0"></a><a id="61768" href="Data.Nat.Properties.html#61768" class="Function Operator">_!≢0</a> <a id="61773" class="Symbol">:</a> <a id="61775" class="Symbol"></a> <a id="61777" href="Data.Nat.Properties.html#61777" class="Bound">n</a> <a id="61779" class="Symbol"></a> <a id="61781" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="61789" class="Symbol">(</a><a id="61790" href="Data.Nat.Properties.html#61777" class="Bound">n</a> <a id="61792" href="Data.Nat.Base.html#7385" class="Function Operator">!</a><a id="61793" class="Symbol">)</a>
<a id="61795" href="Data.Nat.Properties.html#61795" class="Bound">n</a> <a id="61797" href="Data.Nat.Properties.html#61768" class="Function Operator">!≢0</a> <a id="61801" class="Symbol">=</a> <a id="61803" href="Data.Nat.Base.html#3531" class="Function">&gt;-nonZero</a> <a id="61813" class="Symbol">(</a><a id="61814" href="Data.Nat.Properties.html#61657" class="Function">1≤n!</a> <a id="61819" href="Data.Nat.Properties.html#61795" class="Bound">n</a><a id="61820" class="Symbol">)</a>
<a id="_!*_!≢0"></a><a id="61823" href="Data.Nat.Properties.html#61823" class="Function Operator">_!*_!≢0</a> <a id="61831" class="Symbol">:</a> <a id="61833" class="Symbol"></a> <a id="61835" href="Data.Nat.Properties.html#61835" class="Bound">m</a> <a id="61837" href="Data.Nat.Properties.html#61837" class="Bound">n</a> <a id="61839" class="Symbol"></a> <a id="61841" href="Data.Nat.Base.html#3260" class="Record">NonZero</a> <a id="61849" class="Symbol">(</a><a id="61850" href="Data.Nat.Properties.html#61835" class="Bound">m</a> <a id="61852" href="Data.Nat.Base.html#7385" class="Function Operator">!</a> <a id="61854" href="Agda.Builtin.Nat.html#539" class="Primitive Operator">*</a> <a id="61856" href="Data.Nat.Properties.html#61837" class="Bound">n</a> <a id="61858" href="Data.Nat.Base.html#7385" class="Function Operator">!</a><a id="61859" class="Symbol">)</a>
<a id="61861" href="Data.Nat.Properties.html#61861" class="Bound">m</a> <a id="61863" href="Data.Nat.Properties.html#61823" class="Function Operator">!*</a> <a id="61866" href="Data.Nat.Properties.html#61866" class="Bound">n</a> <a id="61868" href="Data.Nat.Properties.html#61823" class="Function Operator">!≢0</a> <a id="61872" class="Symbol">=</a> <a id="61874" href="Data.Nat.Properties.html#25073" class="Function">m*n≢0</a> <a id="61880" class="Symbol">_</a> <a id="61882" class="Symbol">_</a> <a id="61884" class="Symbol">{{</a><a id="61886" href="Data.Nat.Properties.html#61861" class="Bound">m</a> <a id="61888" href="Data.Nat.Properties.html#61768" class="Function Operator">!≢0</a><a id="61891" class="Symbol">}}</a> <a id="61894" class="Symbol">{{</a><a id="61896" href="Data.Nat.Properties.html#61866" class="Bound">n</a> <a id="61898" href="Data.Nat.Properties.html#61768" class="Function Operator">!≢0</a><a id="61901" class="Symbol">}}</a>
<a id="61905" class="Comment">------------------------------------------------------------------------</a>
<a id="61978" class="Comment">-- Properties of _≤_ and _&lt;_</a>
<a id="≤′-trans"></a><a id="62010" href="Data.Nat.Properties.html#62010" class="Function">≤′-trans</a> <a id="62019" class="Symbol">:</a> <a id="62021" href="Relation.Binary.Definitions.html#2103" class="Function">Transitive</a> <a id="62032" href="Data.Nat.Base.html#7705" class="Datatype Operator">_≤_</a>
<a id="62037" href="Data.Nat.Properties.html#62010" class="Function">≤′-trans</a> <a id="62046" href="Data.Nat.Properties.html#62046" class="Bound">m≤n</a> <a id="62050" href="Data.Nat.Base.html#7736" class="InductiveConstructor">≤′-refl</a> <a id="62064" class="Symbol">=</a> <a id="62066" href="Data.Nat.Properties.html#62046" class="Bound">m≤n</a>
<a id="62070" href="Data.Nat.Properties.html#62010" class="Function">≤′-trans</a> <a id="62079" href="Data.Nat.Properties.html#62079" class="Bound">m≤n</a> <a id="62083" class="Symbol">(</a><a id="62084" href="Data.Nat.Base.html#7779" class="InductiveConstructor">≤′-step</a> <a id="62092" href="Data.Nat.Properties.html#62092" class="Bound">n≤o</a><a id="62095" class="Symbol">)</a> <a id="62097" class="Symbol">=</a> <a id="62099" href="Data.Nat.Base.html#7779" class="InductiveConstructor">≤′-step</a> <a id="62107" class="Symbol">(</a><a id="62108" href="Data.Nat.Properties.html#62010" class="Function">≤′-trans</a> <a id="62117" href="Data.Nat.Properties.html#62079" class="Bound">m≤n</a> <a id="62121" href="Data.Nat.Properties.html#62092" class="Bound">n≤o</a><a id="62124" class="Symbol">)</a>
<a id="z≤n"></a><a id="62127" href="Data.Nat.Properties.html#62127" class="Function">z≤n</a> <a id="62132" class="Symbol">:</a> <a id="62134" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="62139" href="Data.Nat.Base.html#7705" class="Datatype Operator">≤′</a> <a id="62142" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="62144" href="Data.Nat.Properties.html#62127" class="Function">z≤n</a> <a id="62149" class="Symbol">{</a><a id="62150" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="62154" class="Symbol">}</a> <a id="62157" class="Symbol">=</a> <a id="62159" href="Data.Nat.Base.html#7736" class="InductiveConstructor">≤′-refl</a>
<a id="62167" href="Data.Nat.Properties.html#62127" class="Function">z≤n</a> <a id="62172" class="Symbol">{</a><a id="62173" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="62177" href="Data.Nat.Properties.html#62177" class="Bound">n</a><a id="62178" class="Symbol">}</a> <a id="62180" class="Symbol">=</a> <a id="62182" href="Data.Nat.Base.html#7779" class="InductiveConstructor">≤′-step</a> <a id="62190" href="Data.Nat.Properties.html#62127" class="Function">z≤n</a>
<a id="s≤s"></a><a id="62196" href="Data.Nat.Properties.html#62196" class="Function">s≤s</a> <a id="62201" class="Symbol">:</a> <a id="62203" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="62205" href="Data.Nat.Base.html#7705" class="Datatype Operator">≤′</a> <a id="62208" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="62210" class="Symbol"></a> <a id="62212" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="62216" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="62218" href="Data.Nat.Base.html#7705" class="Datatype Operator">≤′</a> <a id="62221" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="62225" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="62227" href="Data.Nat.Properties.html#62196" class="Function">s≤s</a> <a id="62232" href="Data.Nat.Base.html#7736" class="InductiveConstructor">≤′-refl</a> <a id="62247" class="Symbol">=</a> <a id="62249" href="Data.Nat.Base.html#7736" class="InductiveConstructor">≤′-refl</a>
<a id="62257" href="Data.Nat.Properties.html#62196" class="Function">s≤s</a> <a id="62262" class="Symbol">(</a><a id="62263" href="Data.Nat.Base.html#7779" class="InductiveConstructor">≤′-step</a> <a id="62271" href="Data.Nat.Properties.html#62271" class="Bound">m≤n</a><a id="62275" class="Symbol">)</a> <a id="62277" class="Symbol">=</a> <a id="62279" href="Data.Nat.Base.html#7779" class="InductiveConstructor">≤′-step</a> <a id="62287" class="Symbol">(</a><a id="62288" href="Data.Nat.Properties.html#62196" class="Function">s≤s</a> <a id="62293" href="Data.Nat.Properties.html#62271" class="Bound">m≤n</a><a id="62297" class="Symbol">)</a>
<a id="≤′⇒≤"></a><a id="62300" href="Data.Nat.Properties.html#62300" class="Function">≤′⇒≤</a> <a id="62305" class="Symbol">:</a> <a id="62307" href="Data.Nat.Base.html#7705" class="Datatype Operator">_≤_</a> <a id="62312" href="Relation.Binary.Core.html#1268" class="Function Operator"></a> <a id="62314" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="62318" href="Data.Nat.Properties.html#62300" class="Function">≤′⇒≤</a> <a id="62323" href="Data.Nat.Base.html#7736" class="InductiveConstructor">≤′-refl</a> <a id="62338" class="Symbol">=</a> <a id="62340" href="Data.Nat.Properties.html#5242" class="Function">≤-refl</a>
<a id="62347" href="Data.Nat.Properties.html#62300" class="Function">≤′⇒≤</a> <a id="62352" class="Symbol">(</a><a id="62353" href="Data.Nat.Base.html#7779" class="InductiveConstructor">≤′-step</a> <a id="62361" href="Data.Nat.Properties.html#62361" class="Bound">m≤n</a><a id="62365" class="Symbol">)</a> <a id="62367" class="Symbol">=</a> <a id="62369" href="Data.Nat.Properties.html#7849" class="Function">m≤n⇒m≤1+n</a> <a id="62379" class="Symbol">(</a><a id="62380" href="Data.Nat.Properties.html#62300" class="Function">≤′⇒≤</a> <a id="62385" href="Data.Nat.Properties.html#62361" class="Bound">m≤n</a><a id="62389" class="Symbol">)</a>
<a id="≤⇒≤′"></a><a id="62392" href="Data.Nat.Properties.html#62392" class="Function">≤⇒≤′</a> <a id="62397" class="Symbol">:</a> <a id="62399" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="62403" href="Relation.Binary.Core.html#1268" class="Function Operator"></a> <a id="62405" href="Data.Nat.Base.html#7705" class="Datatype Operator">_≤_</a>
<a id="62410" href="Data.Nat.Properties.html#62392" class="Function">≤⇒≤′</a> <a id="62415" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="62425" class="Symbol">=</a> <a id="62427" href="Data.Nat.Properties.html#62127" class="Function">z≤n</a>
<a id="62432" href="Data.Nat.Properties.html#62392" class="Function">≤⇒≤′</a> <a id="62437" class="Symbol">(</a><a id="62438" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="62442" href="Data.Nat.Properties.html#62442" class="Bound">m≤n</a><a id="62445" class="Symbol">)</a> <a id="62447" class="Symbol">=</a> <a id="62449" href="Data.Nat.Properties.html#62196" class="Function">s≤s</a> <a id="62454" class="Symbol">(</a><a id="62455" href="Data.Nat.Properties.html#62392" class="Function">≤⇒≤′</a> <a id="62460" href="Data.Nat.Properties.html#62442" class="Bound">m≤n</a><a id="62463" class="Symbol">)</a>
<a id="≤′-step-injective"></a><a id="62466" href="Data.Nat.Properties.html#62466" class="Function">≤′-step-injective</a> <a id="62484" class="Symbol">:</a> <a id="62486" class="Symbol">{</a><a id="62487" href="Data.Nat.Properties.html#62487" class="Bound">p</a> <a id="62489" href="Data.Nat.Properties.html#62489" class="Bound">q</a> <a id="62491" class="Symbol">:</a> <a id="62493" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="62495" href="Data.Nat.Base.html#7705" class="Datatype Operator">≤′</a> <a id="62498" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a><a id="62499" class="Symbol">}</a> <a id="62501" class="Symbol"></a> <a id="62503" href="Data.Nat.Base.html#7779" class="InductiveConstructor">≤′-step</a> <a id="62511" href="Data.Nat.Properties.html#62487" class="Bound">p</a> <a id="62513" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="62515" href="Data.Nat.Base.html#7779" class="InductiveConstructor">≤′-step</a> <a id="62523" href="Data.Nat.Properties.html#62489" class="Bound">q</a> <a id="62525" class="Symbol"></a> <a id="62527" href="Data.Nat.Properties.html#62487" class="Bound">p</a> <a id="62529" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="62531" href="Data.Nat.Properties.html#62489" class="Bound">q</a>
<a id="62533" href="Data.Nat.Properties.html#62466" class="Function">≤′-step-injective</a> <a id="62551" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a> <a id="62556" class="Symbol">=</a> <a id="62558" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="62564" class="Comment">------------------------------------------------------------------------</a>
<a id="62637" class="Comment">-- Properties of _&lt;_ and _&lt;_</a>
<a id="62667" class="Comment">------------------------------------------------------------------------</a>
<a id="z&lt;s"></a><a id="62741" href="Data.Nat.Properties.html#62741" class="Function">z&lt;s</a> <a id="62746" class="Symbol">:</a> <a id="62748" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="62753" href="Data.Nat.Base.html#7825" class="Function Operator">&lt;</a> <a id="62756" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="62760" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="62762" href="Data.Nat.Properties.html#62741" class="Function">z&lt;s</a> <a id="62767" class="Symbol">{</a><a id="62768" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="62772" class="Symbol">}</a> <a id="62775" class="Symbol">=</a> <a id="62777" href="Data.Nat.Base.html#7901" class="InductiveConstructor">&lt;-base</a>
<a id="62785" href="Data.Nat.Properties.html#62741" class="Function">z&lt;s</a> <a id="62790" class="Symbol">{</a><a id="62791" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="62795" href="Data.Nat.Properties.html#62795" class="Bound">n</a><a id="62796" class="Symbol">}</a> <a id="62798" class="Symbol">=</a> <a id="62800" href="Data.Nat.Base.html#7936" class="InductiveConstructor">&lt;-step</a> <a id="62808" class="Symbol">(</a><a id="62809" href="Data.Nat.Properties.html#62741" class="Function">z&lt;s</a> <a id="62814" class="Symbol">{</a><a id="62815" href="Data.Nat.Properties.html#62795" class="Bound">n</a><a id="62816" class="Symbol">})</a>
<a id="s&lt;s"></a><a id="62820" href="Data.Nat.Properties.html#62820" class="Function">s&lt;s</a> <a id="62825" class="Symbol">:</a> <a id="62827" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="62829" href="Data.Nat.Base.html#7825" class="Function Operator">&lt;</a> <a id="62832" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="62834" class="Symbol"></a> <a id="62836" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="62840" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="62842" href="Data.Nat.Base.html#7825" class="Function Operator">&lt;</a> <a id="62845" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="62849" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="62851" href="Data.Nat.Properties.html#62820" class="Function">s&lt;s</a> <a id="62856" href="Data.Nat.Base.html#7901" class="InductiveConstructor">&lt;-base</a> <a id="62871" class="Symbol">=</a> <a id="62873" href="Data.Nat.Base.html#7901" class="InductiveConstructor">&lt;-base</a>
<a id="62881" href="Data.Nat.Properties.html#62820" class="Function">s&lt;s</a> <a id="62886" class="Symbol">(</a><a id="62887" href="Data.Nat.Base.html#7936" class="InductiveConstructor">&lt;-step</a> <a id="62895" href="Data.Nat.Properties.html#62895" class="Bound">m&lt;n</a><a id="62899" class="Symbol">)</a> <a id="62901" class="Symbol">=</a> <a id="62903" href="Data.Nat.Base.html#7936" class="InductiveConstructor">&lt;-step</a> <a id="62911" class="Symbol">(</a><a id="62912" href="Data.Nat.Properties.html#62820" class="Function">s&lt;s</a> <a id="62917" href="Data.Nat.Properties.html#62895" class="Bound">m&lt;n</a><a id="62921" class="Symbol">)</a>
<a id="&lt;⇒&lt;"></a><a id="62924" href="Data.Nat.Properties.html#62924" class="Function">&lt;&lt;</a> <a id="62929" class="Symbol">:</a> <a id="62931" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="62933" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="62935" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="62937" class="Symbol"></a> <a id="62939" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="62941" href="Data.Nat.Base.html#7825" class="Function Operator">&lt;</a> <a id="62944" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="62946" href="Data.Nat.Properties.html#62924" class="Function">&lt;&lt;</a> <a id="62951" href="Data.Nat.Base.html#1873" class="InductiveConstructor">z&lt;s</a> <a id="62969" class="Symbol">=</a> <a id="62971" href="Data.Nat.Properties.html#62741" class="Function">z&lt;s</a>
<a id="62976" href="Data.Nat.Properties.html#62924" class="Function">&lt;&lt;</a> <a id="62981" class="Symbol">(</a><a id="62982" href="Data.Nat.Base.html#1913" class="InductiveConstructor">s&lt;s</a> <a id="62986" href="Data.Nat.Properties.html#62986" class="Bound">m&lt;n</a><a id="62989" class="Symbol">@(</a><a id="62991" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="62995" class="Symbol">_))</a> <a id="62999" class="Symbol">=</a> <a id="63001" href="Data.Nat.Properties.html#62820" class="Function">s&lt;s</a> <a id="63006" class="Symbol">(</a><a id="63007" href="Data.Nat.Properties.html#62924" class="Function">&lt;&lt;</a> <a id="63012" href="Data.Nat.Properties.html#62986" class="Bound">m&lt;n</a><a id="63015" class="Symbol">)</a>
<a id="&lt;′⇒&lt;"></a><a id="63018" href="Data.Nat.Properties.html#63018" class="Function">&lt;′⇒&lt;</a> <a id="63023" class="Symbol">:</a> <a id="63025" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="63027" href="Data.Nat.Base.html#7825" class="Function Operator">&lt;</a> <a id="63030" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="63032" class="Symbol"></a> <a id="63034" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="63036" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="63038" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="63040" href="Data.Nat.Properties.html#63018" class="Function">&lt;′⇒&lt;</a> <a id="63045" href="Data.Nat.Base.html#7901" class="InductiveConstructor">&lt;-base</a> <a id="63060" class="Symbol">=</a> <a id="63062" href="Data.Nat.Properties.html#12280" class="Function">n&lt;1+n</a> <a id="63068" class="Symbol">_</a>
<a id="63070" href="Data.Nat.Properties.html#63018" class="Function">&lt;′⇒&lt;</a> <a id="63075" class="Symbol">(</a><a id="63076" href="Data.Nat.Base.html#7936" class="InductiveConstructor">&lt;-step</a> <a id="63084" href="Data.Nat.Properties.html#63084" class="Bound">m&lt;n</a><a id="63088" class="Symbol">)</a> <a id="63090" class="Symbol">=</a> <a id="63092" href="Data.Nat.Properties.html#12050" class="Function">m&lt;n⇒m&lt;1+n</a> <a id="63102" class="Symbol">(</a><a id="63103" href="Data.Nat.Properties.html#63018" class="Function">&lt;′⇒&lt;</a> <a id="63108" href="Data.Nat.Properties.html#63084" class="Bound">m&lt;n</a><a id="63112" class="Symbol">)</a>
<a id="m&lt;1+n⇒m&lt;nm≡n"></a><a id="63115" href="Data.Nat.Properties.html#63115" class="Function">m&lt;1+n⇒m&lt;nm≡n</a> <a id="63130" class="Symbol">:</a> <a id="63132" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="63134" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="63136" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="63140" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="63142" class="Symbol"></a> <a id="63144" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="63146" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="63148" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="63150" href="Data.Sum.Base.html#625" class="Datatype Operator"></a> <a id="63152" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="63154" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="63156" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="63158" href="Data.Nat.Properties.html#63115" class="Function">m&lt;1+n⇒m&lt;nm≡n</a> <a id="63173" href="Data.Nat.Properties.html#63173" class="Bound">m&lt;n</a> <a id="63177" class="Keyword">with</a> <a id="63182" href="Data.Nat.Properties.html#62924" class="Function">&lt;&lt;</a> <a id="63187" href="Data.Nat.Properties.html#63173" class="Bound">m&lt;n</a>
<a id="63191" class="Symbol">...</a> <a id="63195" class="Symbol">|</a> <a id="63197" href="Data.Nat.Base.html#7901" class="InductiveConstructor">&lt;-base</a> <a id="63210" class="Symbol">=</a> <a id="63212" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a> <a id="63217" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="63222" class="Symbol">...</a> <a id="63226" class="Symbol">|</a> <a id="63228" href="Data.Nat.Base.html#7936" class="InductiveConstructor">&lt;-step</a> <a id="63236" href="Data.Nat.Properties.html#63236" class="Bound">m&lt;n</a> <a id="63241" class="Symbol">=</a> <a id="63243" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a> <a id="63248" class="Symbol">(</a><a id="63249" href="Data.Nat.Properties.html#63018" class="Function">&lt;′⇒&lt;</a> <a id="63254" href="Data.Nat.Properties.html#63236" class="Bound">m&lt;n</a><a id="63258" class="Symbol">)</a>
<a id="63261" class="Comment">------------------------------------------------------------------------</a>
<a id="63334" class="Comment">-- Other properties of _≤_ and _&lt;_</a>
<a id="63371" class="Comment">------------------------------------------------------------------------</a>
<a id="63445" class="Keyword">infix</a> <a id="63451" class="Number">4</a> <a id="63453" href="Data.Nat.Properties.html#63478" class="Function Operator">_≤?_</a> <a id="63459" href="Data.Nat.Properties.html#63536" class="Function Operator">_&lt;?_</a> <a id="63465" href="Data.Nat.Properties.html#63582" class="Function Operator">_≥?_</a> <a id="63471" href="Data.Nat.Properties.html#63625" class="Function Operator">_&gt;?_</a>
<a id="_≤?_"></a><a id="63478" href="Data.Nat.Properties.html#63478" class="Function Operator">_≤?_</a> <a id="63484" class="Symbol">:</a> <a id="63486" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="63496" href="Data.Nat.Base.html#7705" class="Datatype Operator">_≤_</a>
<a id="63501" href="Data.Nat.Properties.html#63501" class="Bound">m</a> <a id="63503" href="Data.Nat.Properties.html#63478" class="Function Operator">≤′?</a> <a id="63507" href="Data.Nat.Properties.html#63507" class="Bound">n</a> <a id="63509" class="Symbol">=</a> <a id="63511" href="Relation.Nullary.Decidable.Core.html#4901" class="Function">map</a> <a id="63516" href="Data.Nat.Properties.html#62392" class="Function">≤⇒≤′</a> <a id="63521" href="Data.Nat.Properties.html#62300" class="Function">≤′⇒≤</a> <a id="63526" class="Symbol">(</a><a id="63527" href="Data.Nat.Properties.html#63501" class="Bound">m</a> <a id="63529" href="Data.Nat.Properties.html#6146" class="Function Operator">≤?</a> <a id="63532" href="Data.Nat.Properties.html#63507" class="Bound">n</a><a id="63533" class="Symbol">)</a>
<a id="_&lt;?_"></a><a id="63536" href="Data.Nat.Properties.html#63536" class="Function Operator">_&lt;?_</a> <a id="63542" class="Symbol">:</a> <a id="63544" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="63554" href="Data.Nat.Base.html#7825" class="Function Operator">_&lt;_</a>
<a id="63559" href="Data.Nat.Properties.html#63559" class="Bound">m</a> <a id="63561" href="Data.Nat.Properties.html#63536" class="Function Operator">&lt;?</a> <a id="63565" href="Data.Nat.Properties.html#63565" class="Bound">n</a> <a id="63567" class="Symbol">=</a> <a id="63569" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="63573" href="Data.Nat.Properties.html#63559" class="Bound">m</a> <a id="63575" href="Data.Nat.Properties.html#63478" class="Function Operator">≤′?</a> <a id="63579" href="Data.Nat.Properties.html#63565" class="Bound">n</a>
<a id="_≥?_"></a><a id="63582" href="Data.Nat.Properties.html#63582" class="Function Operator">_≥?_</a> <a id="63588" class="Symbol">:</a> <a id="63590" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="63600" href="Data.Nat.Base.html#7973" class="Function Operator">_≥_</a>
<a id="63605" href="Data.Nat.Properties.html#63582" class="Function Operator">_≥?_</a> <a id="63611" class="Symbol">=</a> <a id="63613" href="Function.Base.html#1638" class="Function">flip</a> <a id="63618" href="Data.Nat.Properties.html#63478" class="Function Operator">_≤?_</a>
<a id="_&gt;?_"></a><a id="63625" href="Data.Nat.Properties.html#63625" class="Function Operator">_&gt;?_</a> <a id="63631" class="Symbol">:</a> <a id="63633" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="63643" href="Data.Nat.Base.html#8006" class="Function Operator">_&gt;_</a>
<a id="63648" href="Data.Nat.Properties.html#63625" class="Function Operator">_&gt;?_</a> <a id="63654" class="Symbol">=</a> <a id="63656" href="Function.Base.html#1638" class="Function">flip</a> <a id="63661" href="Data.Nat.Properties.html#63536" class="Function Operator">_&lt;?_</a>
<a id="m≤m+n"></a><a id="63668" href="Data.Nat.Properties.html#63668" class="Function">m≤m+n</a> <a id="63675" class="Symbol">:</a> <a id="63677" class="Symbol"></a> <a id="63679" href="Data.Nat.Properties.html#63679" class="Bound">m</a> <a id="63681" href="Data.Nat.Properties.html#63681" class="Bound">n</a> <a id="63683" class="Symbol"></a> <a id="63685" href="Data.Nat.Properties.html#63679" class="Bound">m</a> <a id="63687" href="Data.Nat.Base.html#7705" class="Datatype Operator">≤′</a> <a id="63690" href="Data.Nat.Properties.html#63679" class="Bound">m</a> <a id="63692" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="63694" href="Data.Nat.Properties.html#63681" class="Bound">n</a>
<a id="63696" href="Data.Nat.Properties.html#63668" class="Function">m≤m+n</a> <a id="63703" href="Data.Nat.Properties.html#63703" class="Bound">m</a> <a id="63705" href="Data.Nat.Properties.html#63705" class="Bound">n</a> <a id="63707" class="Symbol">=</a> <a id="63709" href="Data.Nat.Properties.html#62392" class="Function">≤⇒≤′</a> <a id="63714" class="Symbol">(</a><a id="63715" href="Data.Nat.Properties.html#18419" class="Function">m≤m+n</a> <a id="63721" href="Data.Nat.Properties.html#63703" class="Bound">m</a> <a id="63723" href="Data.Nat.Properties.html#63705" class="Bound">n</a><a id="63724" class="Symbol">)</a>
<a id="n≤m+n"></a><a id="63727" href="Data.Nat.Properties.html#63727" class="Function">n≤m+n</a> <a id="63734" class="Symbol">:</a> <a id="63736" class="Symbol"></a> <a id="63738" href="Data.Nat.Properties.html#63738" class="Bound">m</a> <a id="63740" href="Data.Nat.Properties.html#63740" class="Bound">n</a> <a id="63742" class="Symbol"></a> <a id="63744" href="Data.Nat.Properties.html#63740" class="Bound">n</a> <a id="63746" href="Data.Nat.Base.html#7705" class="Datatype Operator">≤′</a> <a id="63749" href="Data.Nat.Properties.html#63738" class="Bound">m</a> <a id="63751" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="63753" href="Data.Nat.Properties.html#63740" class="Bound">n</a>
<a id="63755" href="Data.Nat.Properties.html#63727" class="Function">n≤m+n</a> <a id="63762" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="63770" href="Data.Nat.Properties.html#63770" class="Bound">n</a> <a id="63772" class="Symbol">=</a> <a id="63774" href="Data.Nat.Base.html#7736" class="InductiveConstructor">≤′-refl</a>
<a id="63782" href="Data.Nat.Properties.html#63727" class="Function">n≤m+n</a> <a id="63789" class="Symbol">(</a><a id="63790" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="63794" href="Data.Nat.Properties.html#63794" class="Bound">m</a><a id="63795" class="Symbol">)</a> <a id="63797" href="Data.Nat.Properties.html#63797" class="Bound">n</a> <a id="63799" class="Symbol">=</a> <a id="63801" href="Data.Nat.Base.html#7779" class="InductiveConstructor">≤′-step</a> <a id="63809" class="Symbol">(</a><a id="63810" href="Data.Nat.Properties.html#63727" class="Function">n≤m+n</a> <a id="63817" href="Data.Nat.Properties.html#63794" class="Bound">m</a> <a id="63819" href="Data.Nat.Properties.html#63797" class="Bound">n</a><a id="63820" class="Symbol">)</a>
<a id="⌈n/2⌉≤n"></a><a id="63823" href="Data.Nat.Properties.html#63823" class="Function">⌈n/2⌉≤n</a> <a id="63832" class="Symbol">:</a> <a id="63834" class="Symbol"></a> <a id="63836" href="Data.Nat.Properties.html#63836" class="Bound">n</a> <a id="63838" class="Symbol"></a> <a id="63840" href="Data.Nat.Base.html#6485" class="Function Operator"></a> <a id="63842" href="Data.Nat.Properties.html#63836" class="Bound">n</a> <a id="63844" href="Data.Nat.Base.html#6485" class="Function Operator">/2⌉</a> <a id="63848" href="Data.Nat.Base.html#7705" class="Datatype Operator">≤′</a> <a id="63851" href="Data.Nat.Properties.html#63836" class="Bound">n</a>
<a id="63853" href="Data.Nat.Properties.html#63823" class="Function">⌈n/2⌉≤n</a> <a id="63862" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="63876" class="Symbol">=</a> <a id="63878" href="Data.Nat.Base.html#7736" class="InductiveConstructor">≤′-refl</a>
<a id="63886" href="Data.Nat.Properties.html#63823" class="Function">⌈n/2⌉≤n</a> <a id="63895" class="Symbol">(</a><a id="63896" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="63900" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="63904" class="Symbol">)</a> <a id="63909" class="Symbol">=</a> <a id="63911" href="Data.Nat.Base.html#7736" class="InductiveConstructor">≤′-refl</a>
<a id="63919" href="Data.Nat.Properties.html#63823" class="Function">⌈n/2⌉≤n</a> <a id="63928" class="Symbol">(</a><a id="63929" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="63933" class="Symbol">(</a><a id="63934" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="63938" href="Data.Nat.Properties.html#63938" class="Bound">n</a><a id="63939" class="Symbol">))</a> <a id="63942" class="Symbol">=</a> <a id="63944" href="Data.Nat.Properties.html#62196" class="Function">s≤s</a> <a id="63949" class="Symbol">(</a><a id="63950" href="Data.Nat.Base.html#7779" class="InductiveConstructor">≤′-step</a> <a id="63958" class="Symbol">(</a><a id="63959" href="Data.Nat.Properties.html#63823" class="Function">⌈n/2⌉≤n</a> <a id="63968" href="Data.Nat.Properties.html#63938" class="Bound">n</a><a id="63969" class="Symbol">))</a>
<a id="⌊n/2⌋≤n"></a><a id="63973" href="Data.Nat.Properties.html#63973" class="Function">⌊n/2⌋≤n</a> <a id="63982" class="Symbol">:</a> <a id="63984" class="Symbol"></a> <a id="63986" href="Data.Nat.Properties.html#63986" class="Bound">n</a> <a id="63988" class="Symbol"></a> <a id="63990" href="Data.Nat.Base.html#6358" class="Function Operator"></a> <a id="63992" href="Data.Nat.Properties.html#63986" class="Bound">n</a> <a id="63994" href="Data.Nat.Base.html#6358" class="Function Operator">/2⌋</a> <a id="63998" href="Data.Nat.Base.html#7705" class="Datatype Operator">≤′</a> <a id="64001" href="Data.Nat.Properties.html#63986" class="Bound">n</a>
<a id="64003" href="Data.Nat.Properties.html#63973" class="Function">⌊n/2⌋≤n</a> <a id="64012" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="64020" class="Symbol">=</a> <a id="64022" href="Data.Nat.Base.html#7736" class="InductiveConstructor">≤′-refl</a>
<a id="64030" href="Data.Nat.Properties.html#63973" class="Function">⌊n/2⌋≤n</a> <a id="64039" class="Symbol">(</a><a id="64040" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="64044" href="Data.Nat.Properties.html#64044" class="Bound">n</a><a id="64045" class="Symbol">)</a> <a id="64047" class="Symbol">=</a> <a id="64049" href="Data.Nat.Base.html#7779" class="InductiveConstructor">≤′-step</a> <a id="64057" class="Symbol">(</a><a id="64058" href="Data.Nat.Properties.html#63823" class="Function">⌈n/2⌉≤n</a> <a id="64067" href="Data.Nat.Properties.html#64044" class="Bound">n</a><a id="64068" class="Symbol">)</a>
<a id="64071" class="Comment">------------------------------------------------------------------------</a>
<a id="64144" class="Comment">-- Properties of _≤″_ and _&lt;″_</a>
<a id="64175" class="Comment">------------------------------------------------------------------------</a>
<a id="m&lt;ᵇn⇒1+m+[n-1+m]≡n"></a><a id="64249" href="Data.Nat.Properties.html#64249" class="Function">m&lt;ᵇn⇒1+m+[n-1+m]≡n</a> <a id="64268" class="Symbol">:</a> <a id="64270" class="Symbol"></a> <a id="64272" href="Data.Nat.Properties.html#64272" class="Bound">m</a> <a id="64274" href="Data.Nat.Properties.html#64274" class="Bound">n</a> <a id="64276" class="Symbol"></a> <a id="64278" href="Data.Bool.Base.html#1348" class="Function">T</a> <a id="64280" class="Symbol">(</a><a id="64281" href="Data.Nat.Properties.html#64272" class="Bound">m</a> <a id="64283" href="Data.Nat.Base.html#1457" class="Primitive Operator">&lt;</a> <a id="64286" href="Data.Nat.Properties.html#64274" class="Bound">n</a><a id="64287" class="Symbol">)</a> <a id="64289" class="Symbol"></a> <a id="64291" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="64295" href="Data.Nat.Properties.html#64272" class="Bound">m</a> <a id="64297" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="64299" class="Symbol">(</a><a id="64300" href="Data.Nat.Properties.html#64274" class="Bound">n</a> <a id="64302" href="Data.Nat.Base.html#4456" class="Primitive Operator"></a> <a id="64304" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="64308" href="Data.Nat.Properties.html#64272" class="Bound">m</a><a id="64309" class="Symbol">)</a> <a id="64311" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="64313" href="Data.Nat.Properties.html#64274" class="Bound">n</a>
<a id="64315" href="Data.Nat.Properties.html#64249" class="Function">m&lt;ᵇn⇒1+m+[n-1+m]≡n</a> <a id="64334" href="Data.Nat.Properties.html#64334" class="Bound">m</a> <a id="64336" href="Data.Nat.Properties.html#64336" class="Bound">n</a> <a id="64338" href="Data.Nat.Properties.html#64338" class="Bound">lt</a> <a id="64341" class="Symbol">=</a> <a id="64343" href="Data.Nat.Properties.html#50515" class="Function">m+[n∸m]≡n</a> <a id="64353" class="Symbol">(</a><a id="64354" href="Data.Nat.Properties.html#4115" class="Function">&lt;ᵇ⇒&lt;</a> <a id="64359" href="Data.Nat.Properties.html#64334" class="Bound">m</a> <a id="64361" href="Data.Nat.Properties.html#64336" class="Bound">n</a> <a id="64363" href="Data.Nat.Properties.html#64338" class="Bound">lt</a><a id="64365" class="Symbol">)</a>
<a id="m&lt;ᵇ1+m+n"></a><a id="64368" href="Data.Nat.Properties.html#64368" class="Function">m&lt;ᵇ1+m+n</a> <a id="64377" class="Symbol">:</a> <a id="64379" class="Symbol"></a> <a id="64381" href="Data.Nat.Properties.html#64381" class="Bound">m</a> <a id="64383" class="Symbol">{</a><a id="64384" href="Data.Nat.Properties.html#64384" class="Bound">n</a><a id="64385" class="Symbol">}</a> <a id="64387" class="Symbol"></a> <a id="64389" href="Data.Bool.Base.html#1348" class="Function">T</a> <a id="64391" class="Symbol">(</a><a id="64392" href="Data.Nat.Properties.html#64381" class="Bound">m</a> <a id="64394" href="Data.Nat.Base.html#1457" class="Primitive Operator">&lt;</a> <a id="64397" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="64401" class="Symbol">(</a><a id="64402" href="Data.Nat.Properties.html#64381" class="Bound">m</a> <a id="64404" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="64406" href="Data.Nat.Properties.html#64384" class="Bound">n</a><a id="64407" class="Symbol">))</a>
<a id="64410" href="Data.Nat.Properties.html#64368" class="Function">m&lt;ᵇ1+m+n</a> <a id="64419" href="Data.Nat.Properties.html#64419" class="Bound">m</a> <a id="64421" class="Symbol">=</a> <a id="64423" href="Data.Nat.Properties.html#4227" class="Function">&lt;&lt;</a> <a id="64428" class="Symbol">(</a><a id="64429" href="Data.Nat.Properties.html#18419" class="Function">m≤m+n</a> <a id="64435" class="Symbol">(</a><a id="64436" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="64440" href="Data.Nat.Properties.html#64419" class="Bound">m</a><a id="64441" class="Symbol">)</a> <a id="64443" class="Symbol">_)</a>
<a id="&lt;ᵇ⇒&lt;″"></a><a id="64447" href="Data.Nat.Properties.html#64447" class="Function">&lt;ᵇ⇒&lt;</a> <a id="64453" class="Symbol">:</a> <a id="64455" href="Data.Bool.Base.html#1348" class="Function">T</a> <a id="64457" class="Symbol">(</a><a id="64458" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="64460" href="Data.Nat.Base.html#1457" class="Primitive Operator">&lt;</a> <a id="64463" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a><a id="64464" class="Symbol">)</a> <a id="64466" class="Symbol"></a> <a id="64468" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="64470" href="Data.Nat.Base.html#8306" class="Function Operator">&lt;</a> <a id="64473" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="64475" href="Data.Nat.Properties.html#64447" class="Function">&lt;ᵇ⇒&lt;</a> <a id="64481" class="Symbol">{</a><a id="64482" href="Data.Nat.Properties.html#64482" class="Bound">m</a><a id="64483" class="Symbol">}</a> <a id="64485" class="Symbol">{</a><a id="64486" href="Data.Nat.Properties.html#64486" class="Bound">n</a><a id="64487" class="Symbol">}</a> <a id="64489" href="Data.Nat.Properties.html#64489" class="Bound">leq</a> <a id="64493" class="Symbol">=</a> <a id="64495" href="Data.Nat.Base.html#8264" class="InductiveConstructor">less-than-or-equal</a> <a id="64514" class="Symbol">(</a><a id="64515" href="Data.Nat.Properties.html#50515" class="Function">m+[n∸m]≡n</a> <a id="64525" class="Symbol">(</a><a id="64526" href="Data.Nat.Properties.html#4115" class="Function">&lt;ᵇ⇒&lt;</a> <a id="64531" href="Data.Nat.Properties.html#64482" class="Bound">m</a> <a id="64533" href="Data.Nat.Properties.html#64486" class="Bound">n</a> <a id="64535" href="Data.Nat.Properties.html#64489" class="Bound">leq</a><a id="64538" class="Symbol">))</a>
<a id="&lt;″⇒&lt;ᵇ"></a><a id="64542" href="Data.Nat.Properties.html#64542" class="Function">&lt;″⇒&lt;</a> <a id="64548" class="Symbol">:</a> <a id="64550" class="Symbol"></a> <a id="64552" class="Symbol">{</a><a id="64553" href="Data.Nat.Properties.html#64553" class="Bound">m</a> <a id="64555" href="Data.Nat.Properties.html#64555" class="Bound">n</a><a id="64556" class="Symbol">}</a> <a id="64558" class="Symbol"></a> <a id="64560" href="Data.Nat.Properties.html#64553" class="Bound">m</a> <a id="64562" href="Data.Nat.Base.html#8306" class="Function Operator">&lt;</a> <a id="64565" href="Data.Nat.Properties.html#64555" class="Bound">n</a> <a id="64567" class="Symbol"></a> <a id="64569" href="Data.Bool.Base.html#1348" class="Function">T</a> <a id="64571" class="Symbol">(</a><a id="64572" href="Data.Nat.Properties.html#64553" class="Bound">m</a> <a id="64574" href="Data.Nat.Base.html#1457" class="Primitive Operator">&lt;</a> <a id="64577" href="Data.Nat.Properties.html#64555" class="Bound">n</a><a id="64578" class="Symbol">)</a>
<a id="64580" href="Data.Nat.Properties.html#64542" class="Function">&lt;″⇒&lt;</a> <a id="64586" class="Symbol">{</a><a id="64587" href="Data.Nat.Properties.html#64587" class="Bound">m</a><a id="64588" class="Symbol">}</a> <a id="64590" class="Symbol">(</a><a id="64591" href="Data.Nat.Base.html#8511" class="InductiveConstructor">&lt;″-offset</a> <a id="64601" href="Data.Nat.Properties.html#64601" class="Bound">k</a><a id="64602" class="Symbol">)</a> <a id="64604" class="Symbol">=</a> <a id="64606" href="Data.Nat.Properties.html#4227" class="Function">&lt;&lt;</a> <a id="64611" class="Symbol">(</a><a id="64612" href="Data.Nat.Properties.html#18419" class="Function">m≤m+n</a> <a id="64618" class="Symbol">(</a><a id="64619" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="64623" href="Data.Nat.Properties.html#64587" class="Bound">m</a><a id="64624" class="Symbol">)</a> <a id="64626" href="Data.Nat.Properties.html#64601" class="Bound">k</a><a id="64627" class="Symbol">)</a>
<a id="64630" class="Comment">-- equivalence to the old definition of _≤″_</a>
<a id="≤″-proof"></a><a id="64676" href="Data.Nat.Properties.html#64676" class="Function">≤″-proof</a> <a id="64685" class="Symbol">:</a> <a id="64687" class="Symbol"></a> <a id="64689" class="Symbol">{</a><a id="64690" href="Data.Nat.Properties.html#64690" class="Bound">m</a> <a id="64692" href="Data.Nat.Properties.html#64692" class="Bound">n</a><a id="64693" class="Symbol">}</a> <a id="64695" class="Symbol">(</a><a id="64696" href="Data.Nat.Properties.html#64696" class="Bound">le</a> <a id="64699" class="Symbol">:</a> <a id="64701" href="Data.Nat.Properties.html#64690" class="Bound">m</a> <a id="64703" href="Data.Nat.Base.html#8208" class="Function Operator">≤″</a> <a id="64706" href="Data.Nat.Properties.html#64692" class="Bound">n</a><a id="64707" class="Symbol">)</a> <a id="64709" class="Symbol"></a> <a id="64711" class="Keyword">let</a> <a id="64715" href="Data.Nat.Base.html#8264" class="InductiveConstructor">less-than-or-equal</a> <a id="64734" class="Symbol">{</a><a id="64735" href="Data.Nat.Properties.html#64735" class="Bound">k</a><a id="64736" class="Symbol">}</a> <a id="64738" class="Symbol">_</a> <a id="64740" class="Symbol">=</a> <a id="64742" href="Data.Nat.Properties.html#64696" class="Bound">le</a> <a id="64745" class="Keyword">in</a> <a id="64748" href="Data.Nat.Properties.html#64690" class="Bound">m</a> <a id="64750" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="64752" href="Data.Nat.Properties.html#64735" class="Bound">k</a> <a id="64754" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="64756" href="Data.Nat.Properties.html#64692" class="Bound">n</a>
<a id="64758" href="Data.Nat.Properties.html#64676" class="Function">≤″-proof</a> <a id="64767" class="Symbol">(</a><a id="64768" href="Data.Nat.Base.html#8264" class="InductiveConstructor">less-than-or-equal</a> <a id="64787" href="Data.Nat.Properties.html#64787" class="Bound">prf</a><a id="64790" class="Symbol">)</a> <a id="64792" class="Symbol">=</a> <a id="64794" href="Data.Nat.Properties.html#64787" class="Bound">prf</a>
<a id="64799" class="Comment">-- equivalence to _≤_</a>
<a id="≤″⇒≤"></a><a id="64822" href="Data.Nat.Properties.html#64822" class="Function">≤″⇒≤</a> <a id="64827" class="Symbol">:</a> <a id="64829" href="Data.Nat.Base.html#8208" class="Function Operator">_≤″_</a> <a id="64834" href="Relation.Binary.Core.html#1268" class="Function Operator"></a> <a id="64836" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="64840" href="Data.Nat.Properties.html#64822" class="Function">≤″⇒≤</a> <a id="64845" class="Symbol">{</a><a id="64846" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="64850" class="Symbol">}</a> <a id="64853" class="Symbol">(</a><a id="64854" href="Data.Nat.Base.html#8457" class="InductiveConstructor">≤″-offset</a> <a id="64864" href="Data.Nat.Properties.html#64864" class="Bound">k</a><a id="64865" class="Symbol">)</a> <a id="64867" class="Symbol">=</a> <a id="64869" href="Data.Nat.Base.html#1714" class="InductiveConstructor">z≤n</a> <a id="64873" class="Symbol">{</a><a id="64874" href="Data.Nat.Properties.html#64864" class="Bound">k</a><a id="64875" class="Symbol">}</a>
<a id="64877" href="Data.Nat.Properties.html#64822" class="Function">≤″⇒≤</a> <a id="64882" class="Symbol">{</a><a id="64883" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="64887" href="Data.Nat.Properties.html#64887" class="Bound">m</a><a id="64888" class="Symbol">}</a> <a id="64890" class="Symbol">(</a><a id="64891" href="Data.Nat.Base.html#8457" class="InductiveConstructor">≤″-offset</a> <a id="64901" href="Data.Nat.Properties.html#64901" class="Bound">k</a><a id="64902" class="Symbol">)</a> <a id="64904" class="Symbol">=</a> <a id="64906" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="64910" class="Symbol">(</a><a id="64911" href="Data.Nat.Properties.html#64822" class="Function">≤″⇒≤</a> <a id="64916" class="Symbol">(</a><a id="64917" href="Data.Nat.Base.html#8457" class="InductiveConstructor">≤″-offset</a> <a id="64927" href="Data.Nat.Properties.html#64901" class="Bound">k</a><a id="64928" class="Symbol">))</a>
<a id="≤⇒≤″"></a><a id="64932" href="Data.Nat.Properties.html#64932" class="Function">≤⇒≤″</a> <a id="64937" class="Symbol">:</a> <a id="64939" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="64943" href="Relation.Binary.Core.html#1268" class="Function Operator"></a> <a id="64945" href="Data.Nat.Base.html#8208" class="Function Operator">_≤″_</a>
<a id="64950" href="Data.Nat.Properties.html#64932" class="Function">≤⇒≤″</a> <a id="64955" class="Symbol">=</a> <a id="64957" href="Data.Nat.Base.html#8264" class="InductiveConstructor">less-than-or-equal</a> <a id="64976" href="Function.Base.html#1115" class="Function Operator"></a> <a id="64978" href="Data.Nat.Properties.html#50515" class="Function">m+[n∸m]≡n</a>
<a id="64989" class="Comment">-- NB: we use the builtin function `_&lt;ᵇ_ : (m n : ) → Bool` here so</a>
<a id="65058" class="Comment">-- that the function quickly decides whether to return `yes` or `no`.</a>
<a id="65128" class="Comment">-- It still takes a linear amount of time to generate the proof if it</a>
<a id="65198" class="Comment">-- is inspected. We expect the main benefit to be visible for compiled</a>
<a id="65269" class="Comment">-- code: the backend erases proofs.</a>
<a id="65306" class="Keyword">infix</a> <a id="65312" class="Number">4</a> <a id="65314" href="Data.Nat.Properties.html#65339" class="Function Operator">_&lt;″?_</a> <a id="65320" href="Data.Nat.Properties.html#65404" class="Function Operator">_≤″?_</a> <a id="65326" href="Data.Nat.Properties.html#65482" class="Function Operator">_≥″?_</a> <a id="65332" href="Data.Nat.Properties.html#65525" class="Function Operator">_&gt;″?_</a>
<a id="_&lt;″?_"></a><a id="65339" href="Data.Nat.Properties.html#65339" class="Function Operator">_&lt;″?_</a> <a id="65345" class="Symbol">:</a> <a id="65347" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="65357" href="Data.Nat.Base.html#8306" class="Function Operator">_&lt;″_</a>
<a id="65362" href="Data.Nat.Properties.html#65362" class="Bound">m</a> <a id="65364" href="Data.Nat.Properties.html#65339" class="Function Operator">&lt;″?</a> <a id="65368" href="Data.Nat.Properties.html#65368" class="Bound">n</a> <a id="65370" class="Symbol">=</a> <a id="65372" href="Relation.Nullary.Decidable.Core.html#4901" class="Function">map</a> <a id="65377" href="Data.Nat.Properties.html#64447" class="Function">&lt;ᵇ⇒&lt;</a> <a id="65383" href="Data.Nat.Properties.html#64542" class="Function">&lt;″⇒&lt;</a> <a id="65389" class="Symbol">(</a><a id="65390" href="Relation.Nullary.Decidable.Core.html#2465" class="Function">T?</a> <a id="65393" class="Symbol">(</a><a id="65394" href="Data.Nat.Properties.html#65362" class="Bound">m</a> <a id="65396" href="Data.Nat.Base.html#1457" class="Primitive Operator">&lt;</a> <a id="65399" href="Data.Nat.Properties.html#65368" class="Bound">n</a><a id="65400" class="Symbol">))</a>
<a id="_≤″?_"></a><a id="65404" href="Data.Nat.Properties.html#65404" class="Function Operator">_≤″?_</a> <a id="65410" class="Symbol">:</a> <a id="65412" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="65422" href="Data.Nat.Base.html#8208" class="Function Operator">_≤″_</a>
<a id="65427" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="65433" href="Data.Nat.Properties.html#65404" class="Function Operator">≤″?</a> <a id="65437" href="Data.Nat.Properties.html#65437" class="Bound">n</a> <a id="65439" class="Symbol">=</a> <a id="65441" href="Relation.Nullary.Decidable.Core.html#1618" class="InductiveConstructor">yes</a> <a id="65445" class="Symbol">(</a><a id="65446" href="Data.Nat.Base.html#8457" class="InductiveConstructor">≤″-offset</a> <a id="65456" href="Data.Nat.Properties.html#65437" class="Bound">n</a><a id="65457" class="Symbol">)</a>
<a id="65459" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="65463" href="Data.Nat.Properties.html#65463" class="Bound">m</a> <a id="65465" href="Data.Nat.Properties.html#65404" class="Function Operator">≤″?</a> <a id="65469" href="Data.Nat.Properties.html#65469" class="Bound">n</a> <a id="65471" class="Symbol">=</a> <a id="65473" href="Data.Nat.Properties.html#65463" class="Bound">m</a> <a id="65475" href="Data.Nat.Properties.html#65339" class="Function Operator">&lt;″?</a> <a id="65479" href="Data.Nat.Properties.html#65469" class="Bound">n</a>
<a id="_≥″?_"></a><a id="65482" href="Data.Nat.Properties.html#65482" class="Function Operator">_≥″?_</a> <a id="65488" class="Symbol">:</a> <a id="65490" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="65500" href="Data.Nat.Base.html#8343" class="Function Operator">_≥″_</a>
<a id="65505" href="Data.Nat.Properties.html#65482" class="Function Operator">_≥″?_</a> <a id="65511" class="Symbol">=</a> <a id="65513" href="Function.Base.html#1638" class="Function">flip</a> <a id="65518" href="Data.Nat.Properties.html#65404" class="Function Operator">_≤″?_</a>
<a id="_&gt;″?_"></a><a id="65525" href="Data.Nat.Properties.html#65525" class="Function Operator">_&gt;″?_</a> <a id="65531" class="Symbol">:</a> <a id="65533" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="65543" href="Data.Nat.Base.html#8376" class="Function Operator">_&gt;″_</a>
<a id="65548" href="Data.Nat.Properties.html#65525" class="Function Operator">_&gt;″?_</a> <a id="65554" class="Symbol">=</a> <a id="65556" href="Function.Base.html#1638" class="Function">flip</a> <a id="65561" href="Data.Nat.Properties.html#65339" class="Function Operator">_&lt;″?_</a>
<a id="≤″-irrelevant"></a><a id="65568" href="Data.Nat.Properties.html#65568" class="Function">≤″-irrelevant</a> <a id="65582" class="Symbol">:</a> <a id="65584" href="Relation.Binary.Definitions.html#6651" class="Function">Irrelevant</a> <a id="65595" href="Data.Nat.Base.html#8208" class="Function Operator">_≤″_</a>
<a id="65600" href="Data.Nat.Properties.html#65568" class="Function">≤″-irrelevant</a> <a id="65614" class="Symbol">{</a><a id="65615" href="Data.Nat.Properties.html#65615" class="Bound">m</a><a id="65616" class="Symbol">}</a> <a id="65618" class="Symbol">(</a><a id="65619" href="Data.Nat.Base.html#8264" class="InductiveConstructor">less-than-or-equal</a> <a id="65638" href="Data.Nat.Properties.html#65638" class="Bound">eq₁</a><a id="65641" class="Symbol">)</a>
<a id="65661" class="Symbol">(</a><a id="65662" href="Data.Nat.Base.html#8264" class="InductiveConstructor">less-than-or-equal</a> <a id="65681" href="Data.Nat.Properties.html#65681" class="Bound">eq₂</a><a id="65684" class="Symbol">)</a>
<a id="65688" class="Keyword">with</a> <a id="65693" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a><a id="65700" href="Data.Nat.Properties.html#15092" class="Function">+-cancelˡ-≡</a> <a id="65712" href="Data.Nat.Properties.html#65615" class="Bound">m</a> <a id="65714" class="Symbol">_</a> <a id="65716" class="Symbol">_</a> <a id="65718" class="Symbol">(</a><a id="65719" href="Relation.Binary.PropositionalEquality.Core.html#1757" class="Function">trans</a> <a id="65725" href="Data.Nat.Properties.html#65638" class="Bound">eq₁</a> <a id="65729" class="Symbol">(</a><a id="65730" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="65734" href="Data.Nat.Properties.html#65681" class="Bound">eq₂</a><a id="65737" class="Symbol">))</a>
<a id="65742" class="Symbol">=</a> <a id="65744" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a> <a id="65749" href="Data.Nat.Base.html#8264" class="InductiveConstructor">less-than-or-equal</a> <a id="65768" class="Symbol">(</a><a id="65769" href="Data.Nat.Properties.html#3387" class="Function">≡-irrelevant</a> <a id="65782" href="Data.Nat.Properties.html#65638" class="Bound">eq₁</a> <a id="65786" href="Data.Nat.Properties.html#65681" class="Bound">eq₂</a><a id="65789" class="Symbol">)</a>
<a id="&lt;″-irrelevant"></a><a id="65792" href="Data.Nat.Properties.html#65792" class="Function">&lt;″-irrelevant</a> <a id="65806" class="Symbol">:</a> <a id="65808" href="Relation.Binary.Definitions.html#6651" class="Function">Irrelevant</a> <a id="65819" href="Data.Nat.Base.html#8306" class="Function Operator">_&lt;″_</a>
<a id="65824" href="Data.Nat.Properties.html#65792" class="Function">&lt;″-irrelevant</a> <a id="65838" class="Symbol">=</a> <a id="65840" href="Data.Nat.Properties.html#65568" class="Function">≤″-irrelevant</a>
<a id="&gt;″-irrelevant"></a><a id="65855" href="Data.Nat.Properties.html#65855" class="Function">&gt;″-irrelevant</a> <a id="65869" class="Symbol">:</a> <a id="65871" href="Relation.Binary.Definitions.html#6651" class="Function">Irrelevant</a> <a id="65882" href="Data.Nat.Base.html#8376" class="Function Operator">_&gt;″_</a>
<a id="65887" href="Data.Nat.Properties.html#65855" class="Function">&gt;″-irrelevant</a> <a id="65901" class="Symbol">=</a> <a id="65903" href="Data.Nat.Properties.html#65568" class="Function">≤″-irrelevant</a>
<a id="≥″-irrelevant"></a><a id="65918" href="Data.Nat.Properties.html#65918" class="Function">≥″-irrelevant</a> <a id="65932" class="Symbol">:</a> <a id="65934" href="Relation.Binary.Definitions.html#6651" class="Function">Irrelevant</a> <a id="65945" href="Data.Nat.Base.html#8343" class="Function Operator">_≥″_</a>
<a id="65950" href="Data.Nat.Properties.html#65918" class="Function">≥″-irrelevant</a> <a id="65964" class="Symbol">=</a> <a id="65966" href="Data.Nat.Properties.html#65568" class="Function">≤″-irrelevant</a>
<a id="65981" class="Comment">------------------------------------------------------------------------</a>
<a id="66054" class="Comment">-- Properties of _≤‴_</a>
<a id="66076" class="Comment">------------------------------------------------------------------------</a>
<a id="≤‴⇒≤″"></a><a id="66150" href="Data.Nat.Properties.html#66150" class="Function">≤‴⇒≤″</a> <a id="66156" class="Symbol">:</a> <a id="66158" class="Symbol">∀{</a><a id="66160" href="Data.Nat.Properties.html#66160" class="Bound">m</a> <a id="66162" href="Data.Nat.Properties.html#66162" class="Bound">n</a><a id="66163" class="Symbol">}</a> <a id="66165" class="Symbol"></a> <a id="66167" href="Data.Nat.Properties.html#66160" class="Bound">m</a> <a id="66169" href="Data.Nat.Base.html#8802" class="Datatype Operator">≤‴</a> <a id="66172" href="Data.Nat.Properties.html#66162" class="Bound">n</a> <a id="66174" class="Symbol"></a> <a id="66176" href="Data.Nat.Properties.html#66160" class="Bound">m</a> <a id="66178" href="Data.Nat.Base.html#8208" class="Function Operator">≤″</a> <a id="66181" href="Data.Nat.Properties.html#66162" class="Bound">n</a>
<a id="66183" href="Data.Nat.Properties.html#66150" class="Function">≤‴⇒≤″</a> <a id="66189" class="Symbol">{</a><a id="66190" class="Argument">m</a> <a id="66192" class="Symbol">=</a> <a id="66194" href="Data.Nat.Properties.html#66194" class="Bound">m</a><a id="66195" class="Symbol">}</a> <a id="66197" href="Data.Nat.Base.html#8829" class="InductiveConstructor">≤‴-refl</a> <a id="66211" class="Symbol">=</a> <a id="66213" href="Data.Nat.Base.html#8264" class="InductiveConstructor">less-than-or-equal</a> <a id="66232" class="Symbol">{</a><a id="66233" class="Argument">k</a> <a id="66235" class="Symbol">=</a> <a id="66237" class="Number">0</a><a id="66238" class="Symbol">}</a> <a id="66240" class="Symbol">(</a><a id="66241" href="Data.Nat.Properties.html#14706" class="Function">+-identityʳ</a> <a id="66253" href="Data.Nat.Properties.html#66194" class="Bound">m</a><a id="66254" class="Symbol">)</a>
<a id="66256" href="Data.Nat.Properties.html#66150" class="Function">≤‴⇒≤″</a> <a id="66262" class="Symbol">{</a><a id="66263" class="Argument">m</a> <a id="66265" class="Symbol">=</a> <a id="66267" href="Data.Nat.Properties.html#66267" class="Bound">m</a><a id="66268" class="Symbol">}</a> <a id="66270" class="Symbol">(</a><a id="66271" href="Data.Nat.Base.html#8855" class="InductiveConstructor">≤‴-step</a> <a id="66279" href="Data.Nat.Properties.html#66279" class="Bound">m≤n</a><a id="66282" class="Symbol">)</a> <a id="66284" class="Symbol">=</a> <a id="66286" href="Data.Nat.Base.html#8264" class="InductiveConstructor">less-than-or-equal</a> <a id="66305" class="Symbol">(</a><a id="66306" href="Relation.Binary.PropositionalEquality.Core.html#1757" class="Function">trans</a> <a id="66312" class="Symbol">(</a><a id="66313" href="Data.Nat.Properties.html#14342" class="Function">+-suc</a> <a id="66319" href="Data.Nat.Properties.html#66267" class="Bound">m</a> <a id="66321" class="Symbol">_)</a> <a id="66324" class="Symbol">(</a><a id="66325" href="Data.Nat.Properties.html#64676" class="Function">≤″-proof</a> <a id="66334" class="Symbol">(</a><a id="66335" href="Data.Nat.Properties.html#66150" class="Function">≤‴⇒≤″</a> <a id="66341" href="Data.Nat.Properties.html#66279" class="Bound">m≤n</a><a id="66344" class="Symbol">)))</a>
<a id="m≤‴m+k"></a><a id="66349" href="Data.Nat.Properties.html#66349" class="Function">m≤‴m+k</a> <a id="66356" class="Symbol">:</a> <a id="66358" class="Symbol">∀{</a><a id="66360" href="Data.Nat.Properties.html#66360" class="Bound">m</a> <a id="66362" href="Data.Nat.Properties.html#66362" class="Bound">n</a> <a id="66364" href="Data.Nat.Properties.html#66364" class="Bound">k</a><a id="66365" class="Symbol">}</a> <a id="66367" class="Symbol"></a> <a id="66369" href="Data.Nat.Properties.html#66360" class="Bound">m</a> <a id="66371" href="Agda.Builtin.Nat.html#336" class="Primitive Operator">+</a> <a id="66373" href="Data.Nat.Properties.html#66364" class="Bound">k</a> <a id="66375" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="66377" href="Data.Nat.Properties.html#66362" class="Bound">n</a> <a id="66379" class="Symbol"></a> <a id="66381" href="Data.Nat.Properties.html#66360" class="Bound">m</a> <a id="66383" href="Data.Nat.Base.html#8802" class="Datatype Operator">≤‴</a> <a id="66386" href="Data.Nat.Properties.html#66362" class="Bound">n</a>
<a id="66388" href="Data.Nat.Properties.html#66349" class="Function">m≤‴m+k</a> <a id="66395" class="Symbol">{</a><a id="66396" href="Data.Nat.Properties.html#66396" class="Bound">m</a><a id="66397" class="Symbol">}</a> <a id="66399" class="Symbol">{</a><a id="66400" class="Argument">k</a> <a id="66402" class="Symbol">=</a> <a id="66404" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="66408" class="Symbol">}</a> <a id="66411" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a> <a id="66416" class="Symbol">=</a> <a id="66418" href="Relation.Binary.PropositionalEquality.Core.html#1808" class="Function">subst</a> <a id="66424" class="Symbol"></a> <a id="66427" href="Data.Nat.Properties.html#66427" class="Bound">z</a> <a id="66429" class="Symbol"></a> <a id="66431" href="Data.Nat.Properties.html#66396" class="Bound">m</a> <a id="66433" href="Data.Nat.Base.html#8802" class="Datatype Operator">≤‴</a> <a id="66436" href="Data.Nat.Properties.html#66427" class="Bound">z</a><a id="66437" class="Symbol">)</a> <a id="66439" class="Symbol">(</a><a id="66440" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="66444" class="Symbol">(</a><a id="66445" href="Data.Nat.Properties.html#14706" class="Function">+-identityʳ</a> <a id="66457" href="Data.Nat.Properties.html#66396" class="Bound">m</a><a id="66458" class="Symbol">))</a> <a id="66461" class="Symbol">(</a><a id="66462" href="Data.Nat.Base.html#8829" class="InductiveConstructor">≤‴-refl</a> <a id="66470" class="Symbol">{</a><a id="66471" href="Data.Nat.Properties.html#66396" class="Bound">m</a><a id="66472" class="Symbol">})</a>
<a id="66475" href="Data.Nat.Properties.html#66349" class="Function">m≤‴m+k</a> <a id="66482" class="Symbol">{</a><a id="66483" href="Data.Nat.Properties.html#66483" class="Bound">m</a><a id="66484" class="Symbol">}</a> <a id="66486" class="Symbol">{</a><a id="66487" class="Argument">k</a> <a id="66489" class="Symbol">=</a> <a id="66491" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="66495" href="Data.Nat.Properties.html#66495" class="Bound">k</a><a id="66496" class="Symbol">}</a> <a id="66498" href="Data.Nat.Properties.html#66498" class="Bound">prf</a> <a id="66503" class="Symbol">=</a> <a id="66505" href="Data.Nat.Base.html#8855" class="InductiveConstructor">≤‴-step</a> <a id="66513" class="Symbol">(</a><a id="66514" href="Data.Nat.Properties.html#66349" class="Function">m≤‴m+k</a> <a id="66521" class="Symbol">{</a><a id="66522" class="Argument">k</a> <a id="66524" class="Symbol">=</a> <a id="66526" href="Data.Nat.Properties.html#66495" class="Bound">k</a><a id="66527" class="Symbol">}</a> <a id="66529" class="Symbol">(</a><a id="66530" href="Relation.Binary.PropositionalEquality.Core.html#1757" class="Function">trans</a> <a id="66536" class="Symbol">(</a><a id="66537" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">sym</a> <a id="66541" class="Symbol">(</a><a id="66542" href="Data.Nat.Properties.html#14342" class="Function">+-suc</a> <a id="66548" href="Data.Nat.Properties.html#66483" class="Bound">m</a> <a id="66550" class="Symbol">_))</a> <a id="66554" href="Data.Nat.Properties.html#66498" class="Bound">prf</a><a id="66557" class="Symbol">))</a>
<a id="≤″⇒≤‴"></a><a id="66561" href="Data.Nat.Properties.html#66561" class="Function">≤″⇒≤‴</a> <a id="66567" class="Symbol">:</a> <a id="66569" class="Symbol">∀{</a><a id="66571" href="Data.Nat.Properties.html#66571" class="Bound">m</a> <a id="66573" href="Data.Nat.Properties.html#66573" class="Bound">n</a><a id="66574" class="Symbol">}</a> <a id="66576" class="Symbol"></a> <a id="66578" href="Data.Nat.Properties.html#66571" class="Bound">m</a> <a id="66580" href="Data.Nat.Base.html#8208" class="Function Operator">≤″</a> <a id="66583" href="Data.Nat.Properties.html#66573" class="Bound">n</a> <a id="66585" class="Symbol"></a> <a id="66587" href="Data.Nat.Properties.html#66571" class="Bound">m</a> <a id="66589" href="Data.Nat.Base.html#8802" class="Datatype Operator">≤‴</a> <a id="66592" href="Data.Nat.Properties.html#66573" class="Bound">n</a>
<a id="66594" href="Data.Nat.Properties.html#66561" class="Function">≤″⇒≤‴</a> <a id="66600" href="Data.Nat.Properties.html#66600" class="Bound">m≤n</a> <a id="66604" class="Symbol">=</a> <a id="66606" href="Data.Nat.Properties.html#66349" class="Function">m≤‴m+k</a> <a id="66613" class="Symbol">(</a><a id="66614" href="Data.Nat.Properties.html#64676" class="Function">≤″-proof</a> <a id="66623" href="Data.Nat.Properties.html#66600" class="Bound">m≤n</a><a id="66626" class="Symbol">)</a>
<a id="0≤‴n"></a><a id="66629" href="Data.Nat.Properties.html#66629" class="Function">0≤‴n</a> <a id="66634" class="Symbol">:</a> <a id="66636" class="Number">0</a> <a id="66638" href="Data.Nat.Base.html#8802" class="Datatype Operator">≤‴</a> <a id="66641" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="66643" href="Data.Nat.Properties.html#66629" class="Function">0≤‴n</a> <a id="66648" class="Symbol">=</a> <a id="66650" href="Data.Nat.Properties.html#66349" class="Function">m≤‴m+k</a> <a id="66657" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="&lt;ᵇ⇒&lt;‴"></a><a id="66663" href="Data.Nat.Properties.html#66663" class="Function">&lt;ᵇ⇒&lt;</a> <a id="66669" class="Symbol">:</a> <a id="66671" href="Data.Bool.Base.html#1348" class="Function">T</a> <a id="66673" class="Symbol">(</a><a id="66674" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="66676" href="Data.Nat.Base.html#1457" class="Primitive Operator">&lt;</a> <a id="66679" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a><a id="66680" class="Symbol">)</a> <a id="66682" class="Symbol"></a> <a id="66684" href="Data.Nat.Properties.html#1958" class="Generalizable">m</a> <a id="66686" href="Data.Nat.Base.html#8924" class="Function Operator">&lt;</a> <a id="66689" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="66691" href="Data.Nat.Properties.html#66663" class="Function">&lt;ᵇ⇒&lt;</a> <a id="66697" href="Data.Nat.Properties.html#66697" class="Bound">leq</a> <a id="66701" class="Symbol">=</a> <a id="66703" href="Data.Nat.Properties.html#66561" class="Function">≤″⇒≤‴</a> <a id="66709" class="Symbol">(</a><a id="66710" href="Data.Nat.Properties.html#64447" class="Function">&lt;ᵇ⇒&lt;</a> <a id="66716" href="Data.Nat.Properties.html#66697" class="Bound">leq</a><a id="66719" class="Symbol">)</a>
<a id="&lt;‴⇒&lt;ᵇ"></a><a id="66722" href="Data.Nat.Properties.html#66722" class="Function">&lt;‴⇒&lt;</a> <a id="66728" class="Symbol">:</a> <a id="66730" class="Symbol"></a> <a id="66732" class="Symbol">{</a><a id="66733" href="Data.Nat.Properties.html#66733" class="Bound">m</a> <a id="66735" href="Data.Nat.Properties.html#66735" class="Bound">n</a><a id="66736" class="Symbol">}</a> <a id="66738" class="Symbol"></a> <a id="66740" href="Data.Nat.Properties.html#66733" class="Bound">m</a> <a id="66742" href="Data.Nat.Base.html#8924" class="Function Operator">&lt;</a> <a id="66745" href="Data.Nat.Properties.html#66735" class="Bound">n</a> <a id="66747" class="Symbol"></a> <a id="66749" href="Data.Bool.Base.html#1348" class="Function">T</a> <a id="66751" class="Symbol">(</a><a id="66752" href="Data.Nat.Properties.html#66733" class="Bound">m</a> <a id="66754" href="Data.Nat.Base.html#1457" class="Primitive Operator">&lt;</a> <a id="66757" href="Data.Nat.Properties.html#66735" class="Bound">n</a><a id="66758" class="Symbol">)</a>
<a id="66760" href="Data.Nat.Properties.html#66722" class="Function">&lt;‴⇒&lt;</a> <a id="66766" href="Data.Nat.Properties.html#66766" class="Bound">leq</a> <a id="66770" class="Symbol">=</a> <a id="66772" href="Data.Nat.Properties.html#64542" class="Function">&lt;″⇒&lt;</a> <a id="66778" class="Symbol">(</a><a id="66779" href="Data.Nat.Properties.html#66150" class="Function">≤‴⇒≤″</a> <a id="66785" href="Data.Nat.Properties.html#66766" class="Bound">leq</a><a id="66788" class="Symbol">)</a>
<a id="66791" class="Keyword">infix</a> <a id="66797" class="Number">4</a> <a id="66799" href="Data.Nat.Properties.html#66824" class="Function Operator">_&lt;‴?_</a> <a id="66805" href="Data.Nat.Properties.html#66889" class="Function Operator">_≤‴?_</a> <a id="66811" href="Data.Nat.Properties.html#66957" class="Function Operator">_≥‴?_</a> <a id="66817" href="Data.Nat.Properties.html#67000" class="Function Operator">_&gt;‴?_</a>
<a id="_&lt;‴?_"></a><a id="66824" href="Data.Nat.Properties.html#66824" class="Function Operator">_&lt;‴?_</a> <a id="66830" class="Symbol">:</a> <a id="66832" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="66842" href="Data.Nat.Base.html#8924" class="Function Operator">_&lt;‴_</a>
<a id="66847" href="Data.Nat.Properties.html#66847" class="Bound">m</a> <a id="66849" href="Data.Nat.Properties.html#66824" class="Function Operator">&lt;‴?</a> <a id="66853" href="Data.Nat.Properties.html#66853" class="Bound">n</a> <a id="66855" class="Symbol">=</a> <a id="66857" href="Relation.Nullary.Decidable.Core.html#4901" class="Function">map</a> <a id="66862" href="Data.Nat.Properties.html#66663" class="Function">&lt;ᵇ⇒&lt;</a> <a id="66868" href="Data.Nat.Properties.html#66722" class="Function">&lt;‴⇒&lt;</a> <a id="66874" class="Symbol">(</a><a id="66875" href="Relation.Nullary.Decidable.Core.html#2465" class="Function">T?</a> <a id="66878" class="Symbol">(</a><a id="66879" href="Data.Nat.Properties.html#66847" class="Bound">m</a> <a id="66881" href="Data.Nat.Base.html#1457" class="Primitive Operator">&lt;</a> <a id="66884" href="Data.Nat.Properties.html#66853" class="Bound">n</a><a id="66885" class="Symbol">))</a>
<a id="_≤‴?_"></a><a id="66889" href="Data.Nat.Properties.html#66889" class="Function Operator">_≤‴?_</a> <a id="66895" class="Symbol">:</a> <a id="66897" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="66907" href="Data.Nat.Base.html#8802" class="Datatype Operator">_≤‴_</a>
<a id="66912" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="66917" href="Data.Nat.Properties.html#66889" class="Function Operator">≤‴?</a> <a id="66921" href="Data.Nat.Properties.html#66921" class="Bound">n</a> <a id="66923" class="Symbol">=</a> <a id="66925" href="Relation.Nullary.Decidable.Core.html#1618" class="InductiveConstructor">yes</a> <a id="66929" href="Data.Nat.Properties.html#66629" class="Function">0≤‴n</a>
<a id="66934" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="66938" href="Data.Nat.Properties.html#66938" class="Bound">m</a> <a id="66940" href="Data.Nat.Properties.html#66889" class="Function Operator">≤‴?</a> <a id="66944" href="Data.Nat.Properties.html#66944" class="Bound">n</a> <a id="66946" class="Symbol">=</a> <a id="66948" href="Data.Nat.Properties.html#66938" class="Bound">m</a> <a id="66950" href="Data.Nat.Properties.html#66824" class="Function Operator">&lt;‴?</a> <a id="66954" href="Data.Nat.Properties.html#66944" class="Bound">n</a>
<a id="_≥‴?_"></a><a id="66957" href="Data.Nat.Properties.html#66957" class="Function Operator">_≥‴?_</a> <a id="66963" class="Symbol">:</a> <a id="66965" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="66975" href="Data.Nat.Base.html#8961" class="Function Operator">_≥‴_</a>
<a id="66980" href="Data.Nat.Properties.html#66957" class="Function Operator">_≥‴?_</a> <a id="66986" class="Symbol">=</a> <a id="66988" href="Function.Base.html#1638" class="Function">flip</a> <a id="66993" href="Data.Nat.Properties.html#66889" class="Function Operator">_≤‴?_</a>
<a id="_&gt;‴?_"></a><a id="67000" href="Data.Nat.Properties.html#67000" class="Function Operator">_&gt;‴?_</a> <a id="67006" class="Symbol">:</a> <a id="67008" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="67018" href="Data.Nat.Base.html#8994" class="Function Operator">_&gt;‴_</a>
<a id="67023" href="Data.Nat.Properties.html#67000" class="Function Operator">_&gt;‴?_</a> <a id="67029" class="Symbol">=</a> <a id="67031" href="Function.Base.html#1638" class="Function">flip</a> <a id="67036" href="Data.Nat.Properties.html#66824" class="Function Operator">_&lt;‴?_</a>
<a id="≤⇒≤‴"></a><a id="67043" href="Data.Nat.Properties.html#67043" class="Function">≤⇒≤‴</a> <a id="67048" class="Symbol">:</a> <a id="67050" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a> <a id="67054" href="Relation.Binary.Core.html#1268" class="Function Operator"></a> <a id="67056" href="Data.Nat.Base.html#8802" class="Datatype Operator">_≤‴_</a>
<a id="67061" href="Data.Nat.Properties.html#67043" class="Function">≤⇒≤‴</a> <a id="67066" class="Symbol">=</a> <a id="67068" href="Data.Nat.Properties.html#66561" class="Function">≤″⇒≤‴</a> <a id="67074" href="Function.Base.html#1115" class="Function Operator"></a> <a id="67076" href="Data.Nat.Properties.html#64932" class="Function">≤⇒≤″</a>
<a id="≤‴⇒≤"></a><a id="67082" href="Data.Nat.Properties.html#67082" class="Function">≤‴⇒≤</a> <a id="67087" class="Symbol">:</a> <a id="67089" href="Data.Nat.Base.html#8802" class="Datatype Operator">_≤‴_</a> <a id="67094" href="Relation.Binary.Core.html#1268" class="Function Operator"></a> <a id="67096" href="Data.Nat.Base.html#1691" class="Datatype Operator">_≤_</a>
<a id="67100" href="Data.Nat.Properties.html#67082" class="Function">≤‴⇒≤</a> <a id="67105" class="Symbol">=</a> <a id="67107" href="Data.Nat.Properties.html#64822" class="Function">≤″⇒≤</a> <a id="67112" href="Function.Base.html#1115" class="Function Operator"></a> <a id="67114" href="Data.Nat.Properties.html#66150" class="Function">≤‴⇒≤″</a>
<a id="67121" class="Comment">------------------------------------------------------------------------</a>
<a id="67194" class="Comment">-- Other properties</a>
<a id="67214" class="Comment">------------------------------------------------------------------------</a>
<a id="67288" class="Comment">-- If there is an injection from a type to , then the type has</a>
<a id="67352" class="Comment">-- decidable equality.</a>
<a id="eq?"></a><a id="67376" href="Data.Nat.Properties.html#67376" class="Function">eq?</a> <a id="67380" class="Symbol">:</a> <a id="67382" class="Symbol"></a> <a id="67384" class="Symbol">{</a><a id="67385" href="Data.Nat.Properties.html#67385" class="Bound">a</a><a id="67386" class="Symbol">}</a> <a id="67388" class="Symbol">{</a><a id="67389" href="Data.Nat.Properties.html#67389" class="Bound">A</a> <a id="67391" class="Symbol">:</a> <a id="67393" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="67397" href="Data.Nat.Properties.html#67385" class="Bound">a</a><a id="67398" class="Symbol">}</a> <a id="67400" class="Symbol"></a> <a id="67402" href="Data.Nat.Properties.html#67389" class="Bound">A</a> <a id="67404" href="Function.Bundles.html#11819" class="Function Operator"></a> <a id="67406" href="Agda.Builtin.Nat.html#203" class="Datatype"></a> <a id="67408" class="Symbol"></a> <a id="67410" href="Relation.Binary.Definitions.html#6469" class="Function">DecidableEquality</a> <a id="67428" href="Data.Nat.Properties.html#67389" class="Bound">A</a>
<a id="67430" href="Data.Nat.Properties.html#67376" class="Function">eq?</a> <a id="67434" href="Data.Nat.Properties.html#67434" class="Bound">inj</a> <a id="67438" class="Symbol">=</a> <a id="67440" href="Relation.Nullary.Decidable.html#1471" class="Function">via-injection</a> <a id="67454" href="Data.Nat.Properties.html#67434" class="Bound">inj</a> <a id="67458" href="Data.Nat.Properties.html#3311" class="Function Operator">_≟_</a>
<a id="67463" class="Comment">-- It&#39;s possible to decide existential and universal predicates up to</a>
<a id="67533" class="Comment">-- a limit.</a>
<a id="67546" class="Keyword">module</a> <a id="67553" href="Data.Nat.Properties.html#67553" class="Module">_</a> <a id="67555" class="Symbol">{</a><a id="67556" href="Data.Nat.Properties.html#67556" class="Bound">p</a><a id="67557" class="Symbol">}</a> <a id="67559" class="Symbol">{</a><a id="67560" href="Data.Nat.Properties.html#67560" class="Bound">P</a> <a id="67562" class="Symbol">:</a> <a id="67564" href="Relation.Unary.html#1232" class="Function">Pred</a> <a id="67569" href="Agda.Builtin.Nat.html#203" class="Datatype"></a> <a id="67571" href="Data.Nat.Properties.html#67556" class="Bound">p</a><a id="67572" class="Symbol">}</a> <a id="67574" class="Symbol">(</a><a id="67575" href="Data.Nat.Properties.html#67575" class="Bound">P?</a> <a id="67578" class="Symbol">:</a> <a id="67580" href="Relation.Unary.html#3806" class="Function">U.Decidable</a> <a id="67592" href="Data.Nat.Properties.html#67560" class="Bound">P</a><a id="67593" class="Symbol">)</a> <a id="67595" class="Keyword">where</a>
<a id="67604" href="Data.Nat.Properties.html#67604" class="Function">anyUpTo?</a> <a id="67613" class="Symbol">:</a> <a id="67615" class="Symbol"></a> <a id="67617" href="Data.Nat.Properties.html#67617" class="Bound">v</a> <a id="67619" class="Symbol"></a> <a id="67621" href="Relation.Nullary.Decidable.Core.html#1485" class="Record">Dec</a> <a id="67625" class="Symbol">(</a><a id="67626" href="Data.Product.Base.html#852" class="Function"></a> <a id="67628" class="Symbol">λ</a> <a id="67630" href="Data.Nat.Properties.html#67630" class="Bound">n</a> <a id="67632" class="Symbol"></a> <a id="67634" href="Data.Nat.Properties.html#67630" class="Bound">n</a> <a id="67636" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="67638" href="Data.Nat.Properties.html#67617" class="Bound">v</a> <a id="67640" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="67642" href="Data.Nat.Properties.html#67560" class="Bound">P</a> <a id="67644" href="Data.Nat.Properties.html#67630" class="Bound">n</a><a id="67645" class="Symbol">)</a>
<a id="67649" href="Data.Nat.Properties.html#67604" class="Function">anyUpTo?</a> <a id="67658" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="67666" class="Symbol">=</a> <a id="67668" href="Relation.Nullary.Decidable.Core.html#1655" class="InductiveConstructor">no</a> <a id="67671" class="Symbol">λ</a> <a id="67673" class="Symbol">{(_</a> <a id="67677" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="67679" class="Symbol">()</a> <a id="67682" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="67684" class="Symbol">_)}</a>
<a id="67690" href="Data.Nat.Properties.html#67604" class="Function">anyUpTo?</a> <a id="67699" class="Symbol">(</a><a id="67700" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="67704" href="Data.Nat.Properties.html#67704" class="Bound">v</a><a id="67705" class="Symbol">)</a> <a id="67707" class="Keyword">with</a> <a id="67712" href="Data.Nat.Properties.html#67575" class="Bound">P?</a> <a id="67715" href="Data.Nat.Properties.html#67704" class="Bound">v</a> <a id="67717" class="Symbol">|</a> <a id="67719" href="Data.Nat.Properties.html#67604" class="Function">anyUpTo?</a> <a id="67728" href="Data.Nat.Properties.html#67704" class="Bound">v</a>
<a id="67732" class="Symbol">...</a> <a id="67736" class="Symbol">|</a> <a id="67738" href="Relation.Nullary.Decidable.Core.html#1618" class="InductiveConstructor">yes</a> <a id="67742" href="Data.Nat.Properties.html#67742" class="Bound">Pv</a> <a id="67745" class="Symbol">|</a> <a id="67747" class="Symbol">_</a> <a id="67766" class="Symbol">=</a> <a id="67768" href="Relation.Nullary.Decidable.Core.html#1618" class="InductiveConstructor">yes</a> <a id="67772" class="Symbol">(</a><a id="67773" class="Bound">v</a> <a id="67775" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="67777" href="Data.Nat.Properties.html#5242" class="Function">≤-refl</a> <a id="67784" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="67786" href="Data.Nat.Properties.html#67742" class="Bound">Pv</a><a id="67788" class="Symbol">)</a>
<a id="67792" class="CatchallClause Symbol">...</a><a id="67795" class="CatchallClause"> </a><a id="67796" class="CatchallClause Symbol">|</a><a id="67797" class="CatchallClause"> </a><a id="67798" class="CatchallClause Symbol">_</a><a id="67799" class="CatchallClause"> </a><a id="67805" class="CatchallClause Symbol">|</a><a id="67806" class="CatchallClause"> </a><a id="67807" href="Relation.Nullary.Decidable.Core.html#1618" class="CatchallClause InductiveConstructor">yes</a><a id="67810" class="CatchallClause"> </a><a id="67811" class="CatchallClause Symbol">(</a><a id="67812" href="Data.Nat.Properties.html#67812" class="CatchallClause Bound">n</a><a id="67813" class="CatchallClause"> </a><a id="67814" href="Agda.Builtin.Sigma.html#235" class="CatchallClause InductiveConstructor Operator">,</a><a id="67815" class="CatchallClause"> </a><a id="67816" href="Data.Nat.Properties.html#67816" class="CatchallClause Bound">n&lt;v</a><a id="67819" class="CatchallClause"> </a><a id="67820" href="Agda.Builtin.Sigma.html#235" class="CatchallClause InductiveConstructor Operator">,</a><a id="67821" class="CatchallClause"> </a><a id="67822" href="Data.Nat.Properties.html#67822" class="CatchallClause Bound">Pn</a><a id="67824" class="CatchallClause Symbol">)</a> <a id="67826" class="Symbol">=</a> <a id="67828" href="Relation.Nullary.Decidable.Core.html#1618" class="InductiveConstructor">yes</a> <a id="67832" class="Symbol">(</a><a id="67833" href="Data.Nat.Properties.html#67812" class="Bound">n</a> <a id="67835" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="67837" href="Data.Nat.Properties.html#7849" class="Function">m≤n⇒m≤1+n</a> <a id="67847" href="Data.Nat.Properties.html#67816" class="Bound">n&lt;v</a> <a id="67851" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="67853" href="Data.Nat.Properties.html#67822" class="Bound">Pn</a><a id="67855" class="Symbol">)</a>
<a id="67859" class="Symbol">...</a> <a id="67863" class="Symbol">|</a> <a id="67865" href="Relation.Nullary.Decidable.Core.html#1655" class="InductiveConstructor">no</a> <a id="67868" href="Data.Nat.Properties.html#67868" class="Bound">¬Pv</a> <a id="67872" class="Symbol">|</a> <a id="67874" href="Relation.Nullary.Decidable.Core.html#1655" class="InductiveConstructor">no</a> <a id="67877" href="Data.Nat.Properties.html#67877" class="Bound">¬Pn&lt;v</a> <a id="67893" class="Symbol">=</a> <a id="67895" href="Relation.Nullary.Decidable.Core.html#1655" class="InductiveConstructor">no</a> <a id="67898" href="Data.Nat.Properties.html#67920" class="Function">¬Pn&lt;1+v</a>
<a id="67910" class="Keyword">where</a>
<a id="67920" href="Data.Nat.Properties.html#67920" class="Function">¬Pn&lt;1+v</a> <a id="67928" class="Symbol">:</a> <a id="67930" href="Relation.Nullary.Negation.Core.html#698" class="Function Operator">¬</a> <a id="67932" class="Symbol">(</a><a id="67933" href="Data.Product.Base.html#852" class="Function"></a> <a id="67935" class="Symbol">λ</a> <a id="67937" href="Data.Nat.Properties.html#67937" class="Bound">n</a> <a id="67939" class="Symbol"></a> <a id="67941" href="Data.Nat.Properties.html#67937" class="Bound">n</a> <a id="67943" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="67945" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="67949" class="Bound">v</a> <a id="67951" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="67953" href="Data.Nat.Properties.html#67560" class="Bound">P</a> <a id="67955" href="Data.Nat.Properties.html#67937" class="Bound">n</a><a id="67956" class="Symbol">)</a>
<a id="67962" href="Data.Nat.Properties.html#67920" class="Function">¬Pn&lt;1+v</a> <a id="67970" class="Symbol">(</a><a id="67971" href="Data.Nat.Properties.html#67971" class="Bound">n</a> <a id="67973" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="67975" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="67979" href="Data.Nat.Properties.html#67979" class="Bound">n≤v</a> <a id="67983" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="67985" href="Data.Nat.Properties.html#67985" class="Bound">Pn</a><a id="67987" class="Symbol">)</a> <a id="67989" class="Keyword">with</a> <a id="67994" href="Data.Nat.Properties.html#67971" class="Bound">n</a> <a id="67996" href="Data.Nat.Properties.html#3311" class="Function Operator"></a> <a id="67998" class="Bound">v</a>
<a id="68004" class="Symbol">...</a> <a id="68008" class="Symbol">|</a> <a id="68010" href="Relation.Nullary.Decidable.Core.html#1618" class="InductiveConstructor">yes</a> <a id="68014" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a> <a id="68019" class="Symbol">=</a> <a id="68021" href="Data.Nat.Properties.html#67868" class="Bound">¬Pv</a> <a id="68025" class="Bound">Pn</a>
<a id="68032" class="Symbol">...</a> <a id="68036" class="Symbol">|</a> <a id="68038" href="Relation.Nullary.Decidable.Core.html#1655" class="InductiveConstructor">no</a> <a id="68042" href="Data.Nat.Properties.html#68042" class="Bound">n≢v</a> <a id="68047" class="Symbol">=</a> <a id="68049" href="Data.Nat.Properties.html#67877" class="Bound">¬Pn&lt;v</a> <a id="68055" class="Symbol">(</a><a id="68056" class="Bound">n</a> <a id="68058" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="68060" href="Data.Nat.Properties.html#9131" class="Function">≤∧≢⇒&lt;</a> <a id="68066" class="Bound">n≤v</a> <a id="68070" href="Data.Nat.Properties.html#68042" class="Bound">n≢v</a> <a id="68074" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="68076" class="Bound">Pn</a><a id="68078" class="Symbol">)</a>
<a id="68083" href="Data.Nat.Properties.html#68083" class="Function">allUpTo?</a> <a id="68092" class="Symbol">:</a> <a id="68094" class="Symbol"></a> <a id="68096" href="Data.Nat.Properties.html#68096" class="Bound">v</a> <a id="68098" class="Symbol"></a> <a id="68100" href="Relation.Nullary.Decidable.Core.html#1485" class="Record">Dec</a> <a id="68104" class="Symbol">(∀</a> <a id="68107" class="Symbol">{</a><a id="68108" href="Data.Nat.Properties.html#68108" class="Bound">n</a><a id="68109" class="Symbol">}</a> <a id="68111" class="Symbol"></a> <a id="68113" href="Data.Nat.Properties.html#68108" class="Bound">n</a> <a id="68115" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="68117" href="Data.Nat.Properties.html#68096" class="Bound">v</a> <a id="68119" class="Symbol"></a> <a id="68121" href="Data.Nat.Properties.html#67560" class="Bound">P</a> <a id="68123" href="Data.Nat.Properties.html#68108" class="Bound">n</a><a id="68124" class="Symbol">)</a>
<a id="68128" href="Data.Nat.Properties.html#68083" class="Function">allUpTo?</a> <a id="68137" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a> <a id="68145" class="Symbol">=</a> <a id="68147" href="Relation.Nullary.Decidable.Core.html#1618" class="InductiveConstructor">yes</a> <a id="68151" class="Symbol">λ()</a>
<a id="68157" href="Data.Nat.Properties.html#68083" class="Function">allUpTo?</a> <a id="68166" class="Symbol">(</a><a id="68167" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="68171" href="Data.Nat.Properties.html#68171" class="Bound">v</a><a id="68172" class="Symbol">)</a> <a id="68174" class="Keyword">with</a> <a id="68179" href="Data.Nat.Properties.html#67575" class="Bound">P?</a> <a id="68182" href="Data.Nat.Properties.html#68171" class="Bound">v</a> <a id="68184" class="Symbol">|</a> <a id="68186" href="Data.Nat.Properties.html#68083" class="Function">allUpTo?</a> <a id="68195" href="Data.Nat.Properties.html#68171" class="Bound">v</a>
<a id="68199" class="Symbol">...</a> <a id="68203" class="Symbol">|</a> <a id="68205" href="Relation.Nullary.Decidable.Core.html#1655" class="InductiveConstructor">no</a> <a id="68208" href="Data.Nat.Properties.html#68208" class="Bound">¬Pv</a> <a id="68212" class="Symbol">|</a> <a id="68214" class="Symbol">_</a> <a id="68223" class="Symbol">=</a> <a id="68225" href="Relation.Nullary.Decidable.Core.html#1655" class="InductiveConstructor">no</a> <a id="68228" class="Symbol">λ</a> <a id="68230" href="Data.Nat.Properties.html#68230" class="Bound">prf</a> <a id="68234" class="Symbol"></a> <a id="68236" href="Data.Nat.Properties.html#68208" class="Bound">¬Pv</a> <a id="68242" class="Symbol">(</a><a id="68243" href="Data.Nat.Properties.html#68230" class="Bound">prf</a> <a id="68247" href="Data.Nat.Properties.html#5242" class="Function">≤-refl</a><a id="68253" class="Symbol">)</a>
<a id="68257" class="CatchallClause Symbol">...</a><a id="68260" class="CatchallClause"> </a><a id="68261" class="CatchallClause Symbol">|</a><a id="68262" class="CatchallClause"> </a><a id="68263" class="CatchallClause Symbol">_</a><a id="68264" class="CatchallClause"> </a><a id="68270" class="CatchallClause Symbol">|</a><a id="68271" class="CatchallClause"> </a><a id="68272" href="Relation.Nullary.Decidable.Core.html#1655" class="CatchallClause InductiveConstructor">no</a><a id="68274" class="CatchallClause"> </a><a id="68275" href="Data.Nat.Properties.html#68275" class="CatchallClause Bound">¬Pn&lt;v</a> <a id="68281" class="Symbol">=</a> <a id="68283" href="Relation.Nullary.Decidable.Core.html#1655" class="InductiveConstructor">no</a> <a id="68286" class="Symbol">λ</a> <a id="68288" href="Data.Nat.Properties.html#68288" class="Bound">prf</a> <a id="68292" class="Symbol"></a> <a id="68294" href="Data.Nat.Properties.html#68275" class="Bound">¬Pn&lt;v</a> <a id="68300" class="Symbol">(</a><a id="68301" href="Data.Nat.Properties.html#68288" class="Bound">prf</a> <a id="68305" href="Function.Base.html#1115" class="Function Operator"></a> <a id="68307" href="Data.Nat.Properties.html#7849" class="Function">m≤n⇒m≤1+n</a><a id="68316" class="Symbol">)</a>
<a id="68320" class="Symbol">...</a> <a id="68324" class="Symbol">|</a> <a id="68326" href="Relation.Nullary.Decidable.Core.html#1618" class="InductiveConstructor">yes</a> <a id="68330" href="Data.Nat.Properties.html#68330" class="Bound">Pn</a> <a id="68333" class="Symbol">|</a> <a id="68335" href="Relation.Nullary.Decidable.Core.html#1618" class="InductiveConstructor">yes</a> <a id="68339" href="Data.Nat.Properties.html#68339" class="Bound">Pn&lt;v</a> <a id="68344" class="Symbol">=</a> <a id="68346" href="Relation.Nullary.Decidable.Core.html#1618" class="InductiveConstructor">yes</a> <a id="68350" href="Data.Nat.Properties.html#68373" class="Function">Pn&lt;1+v</a>
<a id="68361" class="Keyword">where</a>
<a id="68373" href="Data.Nat.Properties.html#68373" class="Function">Pn&lt;1+v</a> <a id="68380" class="Symbol">:</a> <a id="68382" class="Symbol"></a> <a id="68384" class="Symbol">{</a><a id="68385" href="Data.Nat.Properties.html#68385" class="Bound">n</a><a id="68386" class="Symbol">}</a> <a id="68388" class="Symbol"></a> <a id="68390" href="Data.Nat.Properties.html#68385" class="Bound">n</a> <a id="68392" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="68394" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="68398" class="Bound">v</a> <a id="68400" class="Symbol"></a> <a id="68402" href="Data.Nat.Properties.html#67560" class="Bound">P</a> <a id="68404" href="Data.Nat.Properties.html#68385" class="Bound">n</a>
<a id="68412" href="Data.Nat.Properties.html#68373" class="Function">Pn&lt;1+v</a> <a id="68419" class="Symbol">{</a><a id="68420" href="Data.Nat.Properties.html#68420" class="Bound">n</a><a id="68421" class="Symbol">}</a> <a id="68423" class="Symbol">(</a><a id="68424" href="Data.Nat.Base.html#1756" class="InductiveConstructor">s≤s</a> <a id="68428" href="Data.Nat.Properties.html#68428" class="Bound">n≤v</a><a id="68431" class="Symbol">)</a> <a id="68433" class="Keyword">with</a> <a id="68438" href="Data.Nat.Properties.html#68420" class="Bound">n</a> <a id="68440" href="Data.Nat.Properties.html#3311" class="Function Operator"></a> <a id="68442" class="Bound">v</a>
<a id="68450" class="Symbol">...</a> <a id="68454" class="Symbol">|</a> <a id="68456" href="Relation.Nullary.Decidable.Core.html#1618" class="InductiveConstructor">yes</a> <a id="68460" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a> <a id="68465" class="Symbol">=</a> <a id="68467" href="Data.Nat.Properties.html#68330" class="Bound">Pn</a>
<a id="68476" class="Symbol">...</a> <a id="68480" class="Symbol">|</a> <a id="68482" href="Relation.Nullary.Decidable.Core.html#1655" class="InductiveConstructor">no</a> <a id="68486" href="Data.Nat.Properties.html#68486" class="Bound">n≢v</a> <a id="68491" class="Symbol">=</a> <a id="68493" href="Data.Nat.Properties.html#68339" class="Bound">Pn&lt;v</a> <a id="68498" class="Symbol">(</a><a id="68499" href="Data.Nat.Properties.html#9131" class="Function">≤∧≢⇒&lt;</a> <a id="68505" class="Bound">n≤v</a> <a id="68509" href="Data.Nat.Properties.html#68486" class="Bound">n≢v</a><a id="68512" class="Symbol">)</a>
<a id="68517" class="Comment">------------------------------------------------------------------------</a>
<a id="68590" class="Comment">-- DEPRECATED NAMES</a>
<a id="68610" class="Comment">------------------------------------------------------------------------</a>
<a id="68683" class="Comment">-- Please use the new names as continuing support for the old names is</a>
<a id="68754" class="Comment">-- not guaranteed.</a>
<a id="68774" class="Comment">-- Version 1.3</a>
<a id="∀[m≤n⇒m≢o]⇒o&lt;n"></a><a id="68790" href="Data.Nat.Properties.html#68790" class="Function">∀[m≤n⇒m≢o]⇒o&lt;n</a> <a id="68805" class="Symbol">:</a> <a id="68807" class="Symbol"></a> <a id="68809" href="Data.Nat.Properties.html#68809" class="Bound">n</a> <a id="68811" href="Data.Nat.Properties.html#68811" class="Bound">o</a> <a id="68813" class="Symbol"></a> <a id="68815" class="Symbol">(∀</a> <a id="68818" class="Symbol">{</a><a id="68819" href="Data.Nat.Properties.html#68819" class="Bound">m</a><a id="68820" class="Symbol">}</a> <a id="68822" class="Symbol"></a> <a id="68824" href="Data.Nat.Properties.html#68819" class="Bound">m</a> <a id="68826" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="68828" href="Data.Nat.Properties.html#68809" class="Bound">n</a> <a id="68830" class="Symbol"></a> <a id="68832" href="Data.Nat.Properties.html#68819" class="Bound">m</a> <a id="68834" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Function Operator"></a> <a id="68836" href="Data.Nat.Properties.html#68811" class="Bound">o</a><a id="68837" class="Symbol">)</a> <a id="68839" class="Symbol"></a> <a id="68841" href="Data.Nat.Properties.html#68809" class="Bound">n</a> <a id="68843" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="68845" href="Data.Nat.Properties.html#68811" class="Bound">o</a>
<a id="68847" href="Data.Nat.Properties.html#68790" class="Function">∀[m≤n⇒m≢o]⇒o&lt;n</a> <a id="68862" class="Symbol">=</a> <a id="68864" href="Data.Nat.Properties.html#13067" class="Function">∀[m≤n⇒m≢o]⇒n&lt;o</a>
<a id="68879" class="Symbol">{-#</a> <a id="68883" class="Keyword">WARNING_ON_USAGE</a> <a id="68900" class="Pragma">∀[m≤n⇒m≢o]⇒o&lt;n</a>
<a id="68915" class="String">&quot;Warning: ∀[m≤n⇒m≢o]⇒o&lt;n was deprecated in v1.3.
Please use ∀[m≤n⇒m≢o]⇒n&lt;o instead.&quot;</a>
<a id="69000" class="Symbol">#-}</a>
<a id="∀[m&lt;n⇒m≢o]⇒o≤n"></a><a id="69004" href="Data.Nat.Properties.html#69004" class="Function">∀[m&lt;n⇒m≢o]⇒o≤n</a> <a id="69019" class="Symbol">:</a> <a id="69021" class="Symbol"></a> <a id="69023" href="Data.Nat.Properties.html#69023" class="Bound">n</a> <a id="69025" href="Data.Nat.Properties.html#69025" class="Bound">o</a> <a id="69027" class="Symbol"></a> <a id="69029" class="Symbol">(∀</a> <a id="69032" class="Symbol">{</a><a id="69033" href="Data.Nat.Properties.html#69033" class="Bound">m</a><a id="69034" class="Symbol">}</a> <a id="69036" class="Symbol"></a> <a id="69038" href="Data.Nat.Properties.html#69033" class="Bound">m</a> <a id="69040" href="Data.Nat.Base.html#1801" class="Function Operator">&lt;</a> <a id="69042" href="Data.Nat.Properties.html#69023" class="Bound">n</a> <a id="69044" class="Symbol"></a> <a id="69046" href="Data.Nat.Properties.html#69033" class="Bound">m</a> <a id="69048" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Function Operator"></a> <a id="69050" href="Data.Nat.Properties.html#69025" class="Bound">o</a><a id="69051" class="Symbol">)</a> <a id="69053" class="Symbol"></a> <a id="69055" href="Data.Nat.Properties.html#69023" class="Bound">n</a> <a id="69057" href="Data.Nat.Base.html#1691" class="Datatype Operator"></a> <a id="69059" href="Data.Nat.Properties.html#69025" class="Bound">o</a>
<a id="69061" href="Data.Nat.Properties.html#69004" class="Function">∀[m&lt;n⇒m≢o]⇒o≤n</a> <a id="69076" class="Symbol">=</a> <a id="69078" href="Data.Nat.Properties.html#13394" class="Function">∀[m&lt;n⇒m≢o]⇒n≤o</a>
<a id="69093" class="Symbol">{-#</a> <a id="69097" class="Keyword">WARNING_ON_USAGE</a> <a id="69114" class="Pragma">∀[m&lt;n⇒m≢o]⇒o≤n</a>
<a id="69129" class="String">&quot;Warning: ∀[m&lt;n⇒m≢o]⇒o≤n was deprecated in v1.3.
Please use ∀[m&lt;n⇒m≢o]⇒n≤o instead.&quot;</a>
<a id="69214" class="Symbol">#-}</a>
<a id="69219" class="Comment">-- Version 1.4</a>
<a id="*-+-isSemiring"></a><a id="69235" href="Data.Nat.Properties.html#69235" class="Function">*-+-isSemiring</a> <a id="69250" class="Symbol">=</a> <a id="69252" href="Data.Nat.Properties.html#23103" class="Function">+-*-isSemiring</a>
<a id="69267" class="Symbol">{-#</a> <a id="69271" class="Keyword">WARNING_ON_USAGE</a> <a id="69288" class="Pragma">*-+-isSemiring</a>
<a id="69303" class="String">&quot;Warning: *-+-isSemiring was deprecated in v1.4.
Please use +-*-isSemiring instead.&quot;</a>
<a id="69388" class="Symbol">#-}</a>
<a id="*-+-isCommutativeSemiring"></a><a id="69392" href="Data.Nat.Properties.html#69392" class="Function">*-+-isCommutativeSemiring</a> <a id="69418" class="Symbol">=</a> <a id="69420" href="Data.Nat.Properties.html#23458" class="Function">+-*-isCommutativeSemiring</a>
<a id="69446" class="Symbol">{-#</a> <a id="69450" class="Keyword">WARNING_ON_USAGE</a> <a id="69467" class="Pragma">*-+-isCommutativeSemiring</a>
<a id="69493" class="String">&quot;Warning: *-+-isCommutativeSemiring was deprecated in v1.4.
Please use +-*-isCommutativeSemiring instead.&quot;</a>
<a id="69600" class="Symbol">#-}</a>
<a id="*-+-semiring"></a><a id="69604" href="Data.Nat.Properties.html#69604" class="Function">*-+-semiring</a> <a id="69617" class="Symbol">=</a> <a id="69619" href="Data.Nat.Properties.html#24213" class="Function">+-*-semiring</a>
<a id="69632" class="Symbol">{-#</a> <a id="69636" class="Keyword">WARNING_ON_USAGE</a> <a id="69653" class="Pragma">*-+-semiring</a>
<a id="69666" class="String">&quot;Warning: *-+-semiring was deprecated in v1.4.
Please use +-*-semiring instead.&quot;</a>
<a id="69747" class="Symbol">#-}</a>
<a id="*-+-commutativeSemiring"></a><a id="69751" href="Data.Nat.Properties.html#69751" class="Function">*-+-commutativeSemiring</a> <a id="69775" class="Symbol">=</a> <a id="69777" href="Data.Nat.Properties.html#24302" class="Function">+-*-commutativeSemiring</a>
<a id="69801" class="Symbol">{-#</a> <a id="69805" class="Keyword">WARNING_ON_USAGE</a> <a id="69822" class="Pragma">*-+-commutativeSemiring</a>
<a id="69846" class="String">&quot;Warning: *-+-commutativeSemiring was deprecated in v1.4.
Please use +-*-commutativeSemiring instead.&quot;</a>
<a id="69949" class="Symbol">#-}</a>
<a id="69954" class="Comment">-- Version 1.6</a>
<a id="m+n-m+on-o|"></a><a id="69970" href="Data.Nat.Properties.html#69970" class="Function">m+n-m+on-o|</a> <a id="69986" class="Symbol">=</a> <a id="69988" href="Data.Nat.Properties.html#55289" class="Function">m+n-m+on-o</a>
<a id="70004" class="Symbol">{-#</a> <a id="70008" class="Keyword">WARNING_ON_USAGE</a> <a id="70025" class="Pragma">m+n-m+on-o|</a>
<a id="70041" class="String">&quot;Warning: m+n-m+on-o| was deprecated in v1.6.
Please use m+n-m+on-o instead. Note the final is a \\| rather than a |&quot;</a>
<a id="70168" class="Symbol">#-}</a>
<a id="m≤n⇒n⊔m≡n"></a><a id="70172" href="Data.Nat.Properties.html#70172" class="Function">m≤n⇒n⊔m≡n</a> <a id="70182" class="Symbol">=</a> <a id="70184" href="Data.Nat.Properties.html#31851" class="Function">m≥n⇒m⊔n≡m</a>
<a id="70194" class="Symbol">{-#</a> <a id="70198" class="Keyword">WARNING_ON_USAGE</a> <a id="70215" class="Pragma">m≤n⇒n⊔m≡n</a>
<a id="70225" class="String">&quot;Warning: m≤n⇒n⊔m≡n was deprecated in v1.6. Please use m≥n⇒m⊔n≡m instead.&quot;</a>
<a id="70300" class="Symbol">#-}</a>
<a id="m≤n⇒n⊓m≡m"></a><a id="70304" href="Data.Nat.Properties.html#70304" class="Function">m≤n⇒n⊓m≡m</a> <a id="70314" class="Symbol">=</a> <a id="70316" href="Data.Nat.Properties.html#32152" class="Function">m≥n⇒m⊓n≡n</a>
<a id="70326" class="Symbol">{-#</a> <a id="70330" class="Keyword">WARNING_ON_USAGE</a> <a id="70347" class="Pragma">m≤n⇒n⊓m≡m</a>
<a id="70357" class="String">&quot;Warning: m≤n⇒n⊓m≡m was deprecated in v1.6. Please use m≥n⇒m⊓n≡n instead.&quot;</a>
<a id="70432" class="Symbol">#-}</a>
<a id="n⊔m≡m⇒n≤m"></a><a id="70436" href="Data.Nat.Properties.html#70436" class="Function">n⊔m≡m⇒n≤m</a> <a id="70446" class="Symbol">=</a> <a id="70448" href="Data.Nat.Properties.html#36611" class="Function">m⊔n≡n⇒m≤n</a>
<a id="70458" class="Symbol">{-#</a> <a id="70462" class="Keyword">WARNING_ON_USAGE</a> <a id="70479" class="Pragma">n⊔m≡m⇒n≤m</a>
<a id="70489" class="String">&quot;Warning: n⊔m≡m⇒n≤m was deprecated in v1.6. Please use m⊔n≡n⇒m≤n instead.&quot;</a>
<a id="70564" class="Symbol">#-}</a>
<a id="n⊔m≡n⇒m≤n"></a><a id="70568" href="Data.Nat.Properties.html#70568" class="Function">n⊔m≡n⇒m≤n</a> <a id="70578" class="Symbol">=</a> <a id="70580" href="Data.Nat.Properties.html#36674" class="Function">m⊔n≡m⇒n≤m</a>
<a id="70590" class="Symbol">{-#</a> <a id="70594" class="Keyword">WARNING_ON_USAGE</a> <a id="70611" class="Pragma">n⊔m≡n⇒m≤n</a>
<a id="70621" class="String">&quot;Warning: n⊔m≡n⇒m≤n was deprecated in v1.6. Please use m⊔n≡m⇒n≤m instead.&quot;</a>
<a id="70696" class="Symbol">#-}</a>
<a id="n≤m⊔n"></a><a id="70700" href="Data.Nat.Properties.html#70700" class="Function">n≤m⊔n</a> <a id="70706" class="Symbol">=</a> <a id="70708" href="Data.Nat.Properties.html#36790" class="Function">m≤n⊔m</a>
<a id="70714" class="Symbol">{-#</a> <a id="70718" class="Keyword">WARNING_ON_USAGE</a> <a id="70735" class="Pragma">n≤m⊔n</a>
<a id="70741" class="String">&quot;Warning: n≤m⊔n was deprecated in v1.6. Please use m≤n⊔m instead.&quot;</a>
<a id="70808" class="Symbol">#-}</a>
<a id="⊔-least"></a><a id="70812" href="Data.Nat.Properties.html#70812" class="Function">⊔-least</a> <a id="70820" class="Symbol">=</a> <a id="70822" href="Algebra.Construct.NaturalChoice.MaxOp.html#2215" class="Function">⊔-lub</a>
<a id="70828" class="Symbol">{-#</a> <a id="70832" class="Keyword">WARNING_ON_USAGE</a> <a id="70849" class="Pragma">⊔-least</a>
<a id="70857" class="String">&quot;Warning: ⊔-least was deprecated in v1.6. Please use ⊔-lub instead.&quot;</a>
<a id="70926" class="Symbol">#-}</a>
<a id="⊓-greatest"></a><a id="70930" href="Data.Nat.Properties.html#70930" class="Function">⊓-greatest</a> <a id="70941" class="Symbol">=</a> <a id="70943" href="Algebra.Construct.NaturalChoice.MinOp.html#7054" class="Function">⊓-glb</a>
<a id="70949" class="Symbol">{-#</a> <a id="70953" class="Keyword">WARNING_ON_USAGE</a> <a id="70970" class="Pragma">⊓-greatest</a>
<a id="70981" class="String">&quot;Warning: ⊓-greatest was deprecated in v1.6. Please use ⊓-glb instead.&quot;</a>
<a id="71053" class="Symbol">#-}</a>
<a id="⊔-pres-≤m"></a><a id="71057" href="Data.Nat.Properties.html#71057" class="Function">⊔-pres-≤m</a> <a id="71067" class="Symbol">=</a> <a id="71069" href="Algebra.Construct.NaturalChoice.MaxOp.html#2215" class="Function">⊔-lub</a>
<a id="71075" class="Symbol">{-#</a> <a id="71079" class="Keyword">WARNING_ON_USAGE</a> <a id="71096" class="Pragma">⊔-pres-≤m</a>
<a id="71106" class="String">&quot;Warning: ⊔-pres-≤m was deprecated in v1.6. Please use ⊔-lub instead.&quot;</a>
<a id="71177" class="Symbol">#-}</a>
<a id="⊓-pres-m≤"></a><a id="71181" href="Data.Nat.Properties.html#71181" class="Function">⊓-pres-m≤</a> <a id="71191" class="Symbol">=</a> <a id="71193" href="Algebra.Construct.NaturalChoice.MinOp.html#7054" class="Function">⊓-glb</a>
<a id="71199" class="Symbol">{-#</a> <a id="71203" class="Keyword">WARNING_ON_USAGE</a> <a id="71220" class="Pragma">⊓-pres-m≤</a>
<a id="71230" class="String">&quot;Warning: ⊓-pres-m≤ was deprecated in v1.6. Please use ⊓-glb instead.&quot;</a>
<a id="71301" class="Symbol">#-}</a>
<a id="⊔-abs-⊓"></a><a id="71305" href="Data.Nat.Properties.html#71305" class="Function">⊔-abs-⊓</a> <a id="71313" class="Symbol">=</a> <a id="71315" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#3054" class="Function">⊔-absorbs-⊓</a>
<a id="71327" class="Symbol">{-#</a> <a id="71331" class="Keyword">WARNING_ON_USAGE</a> <a id="71348" class="Pragma">⊔-abs-⊓</a>
<a id="71356" class="String">&quot;Warning: ⊔-abs-⊓ was deprecated in v1.6. Please use ⊔-absorbs-⊓ instead.&quot;</a>
<a id="71431" class="Symbol">#-}</a>
<a id="⊓-abs-⊔"></a><a id="71435" href="Data.Nat.Properties.html#71435" class="Function">⊓-abs-⊔</a> <a id="71443" class="Symbol">=</a> <a id="71445" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#2739" class="Function">⊓-absorbs-⊔</a>
<a id="71457" class="Symbol">{-#</a> <a id="71461" class="Keyword">WARNING_ON_USAGE</a> <a id="71478" class="Pragma">⊓-abs-⊔</a>
<a id="71486" class="String">&quot;Warning: ⊓-abs-⊔ was deprecated in v1.6. Please use ⊓-absorbs-⊔ instead.&quot;</a>
<a id="71561" class="Symbol">#-}</a>
<a id="71566" class="Comment">-- Version 2.0</a>
<a id="suc[pred[n]]≡n"></a><a id="71582" href="Data.Nat.Properties.html#71582" class="Function">suc[pred[n]]≡n</a> <a id="71597" class="Symbol">:</a> <a id="71599" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a> <a id="71601" href="Relation.Binary.PropositionalEquality.Core.html#858" class="Function Operator"></a> <a id="71603" class="Number">0</a> <a id="71605" class="Symbol"></a> <a id="71607" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="71611" class="Symbol">(</a><a id="71612" href="Data.Nat.Base.html#5266" class="Function">pred</a> <a id="71617" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a><a id="71618" class="Symbol">)</a> <a id="71620" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="71622" href="Data.Nat.Properties.html#1960" class="Generalizable">n</a>
<a id="71624" href="Data.Nat.Properties.html#71582" class="Function">suc[pred[n]]≡n</a> <a id="71639" class="Symbol">{</a><a id="71640" href="Agda.Builtin.Nat.html#221" class="InductiveConstructor">zero</a><a id="71644" class="Symbol">}</a> <a id="71647" href="Data.Nat.Properties.html#71647" class="Bound">0≢0</a> <a id="71651" class="Symbol">=</a> <a id="71653" href="Relation.Nullary.Negation.Core.html#1226" class="Function">contradiction</a> <a id="71667" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a> <a id="71672" href="Data.Nat.Properties.html#71647" class="Bound">0≢0</a>
<a id="71676" href="Data.Nat.Properties.html#71582" class="Function">suc[pred[n]]≡n</a> <a id="71691" class="Symbol">{</a><a id="71692" href="Agda.Builtin.Nat.html#234" class="InductiveConstructor">suc</a> <a id="71696" href="Data.Nat.Properties.html#71696" class="Bound">n</a><a id="71697" class="Symbol">}</a> <a id="71699" class="Symbol">_</a> <a id="71703" class="Symbol">=</a> <a id="71705" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
<a id="71710" class="Symbol">{-#</a> <a id="71714" class="Keyword">WARNING_ON_USAGE</a> <a id="71731" class="Pragma">suc[pred[n]]≡n</a>
<a id="71746" class="String">&quot;Warning: suc[pred[n]]≡n was deprecated in v2.0. Please use suc-pred instead. Note that the proof now uses instance arguments&quot;</a>
<a id="71873" class="Symbol">#-}</a>
<a id="≤-step"></a><a id="71878" href="Data.Nat.Properties.html#71878" class="Function">≤-step</a> <a id="71885" class="Symbol">=</a> <a id="71887" href="Data.Nat.Properties.html#7849" class="Function">m≤n⇒m≤1+n</a>
<a id="71897" class="Symbol">{-#</a> <a id="71901" class="Keyword">WARNING_ON_USAGE</a> <a id="71918" class="Pragma">≤-step</a>
<a id="71925" class="String">&quot;Warning: ≤-step was deprecated in v2.0. Please use m≤n⇒m≤1+n instead. &quot;</a>
<a id="71998" class="Symbol">#-}</a>
<a id="≤-stepsˡ"></a><a id="72003" href="Data.Nat.Properties.html#72003" class="Function">≤-stepsˡ</a> <a id="72012" class="Symbol">=</a> <a id="72014" href="Data.Nat.Properties.html#18199" class="Function">m≤n⇒m≤o+n</a>
<a id="72024" class="Symbol">{-#</a> <a id="72028" class="Keyword">WARNING_ON_USAGE</a> <a id="72045" class="Pragma">≤-stepsˡ</a>
<a id="72054" class="String">&quot;Warning: ≤-stepsˡ was deprecated in v2.0. Please use m≤n⇒m≤o+n instead. &quot;</a>
<a id="72129" class="Symbol">#-}</a>
<a id="≤-stepsʳ"></a><a id="72134" href="Data.Nat.Properties.html#72134" class="Function">≤-stepsʳ</a> <a id="72143" class="Symbol">=</a> <a id="72145" href="Data.Nat.Properties.html#18316" class="Function">m≤n⇒m≤n+o</a>
<a id="72155" class="Symbol">{-#</a> <a id="72159" class="Keyword">WARNING_ON_USAGE</a> <a id="72176" class="Pragma">≤-stepsʳ</a>
<a id="72185" class="String">&quot;Warning: ≤-stepsʳ was deprecated in v2.0. Please use m≤n⇒m≤n+o instead. &quot;</a>
<a id="72260" class="Symbol">#-}</a>
<a id="&lt;-step"></a><a id="72265" href="Data.Nat.Properties.html#72265" class="Function">&lt;-step</a> <a id="72272" class="Symbol">=</a> <a id="72274" href="Data.Nat.Properties.html#12050" class="Function">m&lt;n⇒m&lt;1+n</a>
<a id="72284" class="Symbol">{-#</a> <a id="72288" class="Keyword">WARNING_ON_USAGE</a> <a id="72305" class="Pragma">&lt;-step</a>
<a id="72312" class="String">&quot;Warning: &lt;-step was deprecated in v2.0. Please use m&lt;n⇒m&lt;1+n instead. &quot;</a>
<a id="72385" class="Symbol">#-}</a>
<a id="pred-mono"></a><a id="72390" href="Data.Nat.Properties.html#72390" class="Function">pred-mono</a> <a id="72400" class="Symbol">=</a> <a id="72402" href="Data.Nat.Properties.html#53847" class="Function">pred-mono-≤</a>
<a id="72414" class="Symbol">{-#</a> <a id="72418" class="Keyword">WARNING_ON_USAGE</a> <a id="72435" class="Pragma">pred-mono</a>
<a id="72445" class="String">&quot;Warning: pred-mono was deprecated in v2.0. Please use pred-mono-≤ instead. &quot;</a>
<a id="72523" class="Symbol">#-}</a>
<a id="72528" class="Comment">{- issue1844/issue1755: raw bundles have moved to `Data.X.Base` -}</a>
<a id="72595" class="Keyword">open</a> <a id="72600" href="Data.Nat.Base.html" class="Module">Data.Nat.Base</a> <a id="72614" class="Keyword">public</a>
<a id="72623" class="Keyword">using</a> <a id="72629" class="Symbol">(</a><a id="72630" href="Data.Nat.Base.html#4643" class="Function">*-rawMagma</a><a id="72640" class="Symbol">;</a> <a id="72642" href="Data.Nat.Base.html#4724" class="Function">*-1-rawMonoid</a><a id="72655" class="Symbol">)</a>
<a id="&lt;-transʳ"></a><a id="72658" href="Data.Nat.Properties.html#72658" class="Function">&lt;-transʳ</a> <a id="72667" class="Symbol">=</a> <a id="72669" href="Data.Nat.Properties.html#10083" class="Function">≤-&lt;-trans</a>
<a id="72679" class="Symbol">{-#</a> <a id="72683" class="Keyword">WARNING_ON_USAGE</a> <a id="72700" class="Pragma">&lt;-transʳ</a>
<a id="72709" class="String">&quot;Warning: &lt;-transʳ was deprecated in v2.0. Please use ≤-&lt;-trans instead. &quot;</a>
<a id="72784" class="Symbol">#-}</a>
<a id="&lt;-transˡ"></a><a id="72789" href="Data.Nat.Properties.html#72789" class="Function">&lt;-transˡ</a> <a id="72798" class="Symbol">=</a> <a id="72800" href="Data.Nat.Properties.html#10162" class="Function">&lt;-≤-trans</a>
<a id="72810" class="Symbol">{-#</a> <a id="72814" class="Keyword">WARNING_ON_USAGE</a> <a id="72831" class="Pragma">&lt;-transˡ</a>
<a id="72840" class="String">&quot;Warning: &lt;-transˡ was deprecated in v2.0. Please use &lt;-≤-trans instead. &quot;</a>
<a id="72915" class="Symbol">#-}</a>
</pre></body></html>