mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
2397 lines
No EOL
852 KiB
HTML
2397 lines
No EOL
852 KiB
HTML
<!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.Properties.CommutativeSemigroup.html" class="Module">Algebra.Properties.CommutativeSemigroup</a> <a id="703" class="Symbol">as</a> <a id="706" class="Module">CommSemigroupProperties</a>
|
||
<a id="730" class="Keyword">open</a> <a id="735" class="Keyword">import</a> <a id="742" href="Data.Bool.Base.html" class="Module">Data.Bool.Base</a> <a id="757" class="Keyword">using</a> <a id="763" class="Symbol">(</a><a id="764" href="Agda.Builtin.Bool.html#156" class="Datatype">Bool</a><a id="768" class="Symbol">;</a> <a id="770" href="Agda.Builtin.Bool.html#175" class="InductiveConstructor">false</a><a id="775" class="Symbol">;</a> <a id="777" href="Agda.Builtin.Bool.html#181" class="InductiveConstructor">true</a><a id="781" class="Symbol">;</a> <a id="783" href="Data.Bool.Base.html#1460" class="Function">T</a><a id="784" class="Symbol">)</a>
|
||
<a id="786" class="Keyword">open</a> <a id="791" class="Keyword">import</a> <a id="798" href="Data.Bool.Properties.html" class="Module">Data.Bool.Properties</a> <a id="819" class="Keyword">using</a> <a id="825" class="Symbol">(</a><a id="826" href="Data.Bool.Properties.html#15479" class="Function">T?</a><a id="828" class="Symbol">)</a>
|
||
<a id="830" class="Keyword">open</a> <a id="835" class="Keyword">import</a> <a id="842" href="Data.Empty.html" class="Module">Data.Empty</a> <a id="853" class="Keyword">using</a> <a id="859" class="Symbol">(</a><a id="860" href="Data.Empty.html#535" class="Datatype">⊥</a><a id="861" class="Symbol">)</a>
|
||
<a id="863" class="Keyword">open</a> <a id="868" class="Keyword">import</a> <a id="875" href="Data.Nat.Base.html" class="Module">Data.Nat.Base</a>
|
||
<a id="889" class="Keyword">open</a> <a id="894" class="Keyword">import</a> <a id="901" href="Data.Product.html" class="Module">Data.Product</a> <a id="914" class="Keyword">using</a> <a id="920" class="Symbol">(</a><a id="921" href="Data.Product.html#1176" class="Function Operator">_×_</a><a id="924" class="Symbol">;</a> <a id="926" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">_,_</a><a id="929" class="Symbol">)</a>
|
||
<a id="931" class="Keyword">open</a> <a id="936" class="Keyword">import</a> <a id="943" href="Data.Sum.Base.html" class="Module">Data.Sum.Base</a> <a id="957" class="Symbol">as</a> <a id="960" class="Module">Sum</a>
|
||
<a id="964" class="Keyword">open</a> <a id="969" class="Keyword">import</a> <a id="976" href="Data.Unit.html" class="Module">Data.Unit</a> <a id="986" class="Keyword">using</a> <a id="992" class="Symbol">(</a><a id="993" href="Agda.Builtin.Unit.html#195" class="InductiveConstructor">tt</a><a id="995" class="Symbol">)</a>
|
||
<a id="997" class="Keyword">open</a> <a id="1002" class="Keyword">import</a> <a id="1009" href="Function.Base.html" class="Module">Function.Base</a>
|
||
<a id="1023" class="Keyword">open</a> <a id="1028" class="Keyword">import</a> <a id="1035" href="Function.Injection.html" class="Module">Function.Injection</a> <a id="1054" class="Keyword">using</a> <a id="1060" class="Symbol">(</a><a id="1061" href="Function.Injection.html#1636" class="Function Operator">_↣_</a><a id="1064" class="Symbol">)</a>
|
||
<a id="1066" class="Keyword">open</a> <a id="1071" class="Keyword">import</a> <a id="1078" href="Function.Metric.Nat.html" class="Module">Function.Metric.Nat</a>
|
||
<a id="1098" class="Keyword">open</a> <a id="1103" class="Keyword">import</a> <a id="1110" href="Level.html" class="Module">Level</a> <a id="1116" class="Keyword">using</a> <a id="1122" class="Symbol">(</a><a id="1123" href="Level.html#521" class="Function">0ℓ</a><a id="1125" class="Symbol">)</a>
|
||
<a id="1127" class="Keyword">open</a> <a id="1132" class="Keyword">import</a> <a id="1139" href="Relation.Binary.html" class="Module">Relation.Binary</a>
|
||
<a id="1155" class="Keyword">open</a> <a id="1160" class="Keyword">import</a> <a id="1167" href="Relation.Binary.Consequences.html" class="Module">Relation.Binary.Consequences</a> <a id="1196" class="Keyword">using</a> <a id="1202" class="Symbol">(</a><a id="1203" href="Relation.Binary.Consequences.html#6269" class="Function">flip-Connex</a><a id="1214" class="Symbol">)</a>
|
||
<a id="1216" class="Keyword">open</a> <a id="1221" class="Keyword">import</a> <a id="1228" href="Relation.Binary.PropositionalEquality.html" class="Module">Relation.Binary.PropositionalEquality</a>
|
||
<a id="1266" class="Keyword">open</a> <a id="1271" class="Keyword">import</a> <a id="1278" href="Relation.Nullary.html" class="Module">Relation.Nullary</a> <a id="1295" class="Keyword">hiding</a> <a id="1302" class="Symbol">(</a><a id="1303" href="Relation.Nullary.html#2049" class="Function">Irrelevant</a><a id="1313" class="Symbol">)</a>
|
||
<a id="1315" class="Keyword">open</a> <a id="1320" class="Keyword">import</a> <a id="1327" href="Relation.Nullary.Decidable.html" class="Module">Relation.Nullary.Decidable</a> <a id="1354" class="Keyword">using</a> <a id="1360" class="Symbol">(</a><a id="1361" href="Relation.Nullary.Decidable.Core.html#1374" class="Function">True</a><a id="1365" class="Symbol">;</a> <a id="1367" href="Relation.Nullary.Decidable.html#1732" class="Function">via-injection</a><a id="1380" class="Symbol">;</a> <a id="1382" href="Relation.Nullary.Decidable.Core.html#3645" class="Function">map′</a><a id="1386" class="Symbol">)</a>
|
||
<a id="1388" class="Keyword">open</a> <a id="1393" class="Keyword">import</a> <a id="1400" href="Relation.Nullary.Negation.html" class="Module">Relation.Nullary.Negation</a> <a id="1426" class="Keyword">using</a> <a id="1432" class="Symbol">(</a><a id="1433" href="Relation.Nullary.Negation.Core.html#787" class="Function">contradiction</a><a id="1446" class="Symbol">)</a>
|
||
<a id="1448" class="Keyword">open</a> <a id="1453" class="Keyword">import</a> <a id="1460" href="Relation.Nullary.Reflects.html" class="Module">Relation.Nullary.Reflects</a> <a id="1486" class="Keyword">using</a> <a id="1492" class="Symbol">(</a><a id="1493" href="Relation.Nullary.Reflects.html#1225" class="Function">fromEquivalence</a><a id="1508" class="Symbol">)</a>
|
||
|
||
<a id="1511" class="Keyword">open</a> <a id="1516" class="Keyword">import</a> <a id="1523" href="Algebra.Definitions.html" class="Module">Algebra.Definitions</a> <a id="1543" class="Symbol">{</a><a id="1544" class="Argument">A</a> <a id="1546" class="Symbol">=</a> <a id="1548" href="Agda.Builtin.Nat.html#186" class="Datatype">ℕ</a><a id="1549" class="Symbol">}</a> <a id="1551" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a>
|
||
<a id="1557" class="Keyword">hiding</a> <a id="1564" class="Symbol">(</a><a id="1565" href="Algebra.Definitions.html#3091" class="Function">LeftCancellative</a><a id="1581" class="Symbol">;</a> <a id="1583" href="Algebra.Definitions.html#3186" class="Function">RightCancellative</a><a id="1600" class="Symbol">;</a> <a id="1602" href="Algebra.Definitions.html#3283" class="Function">Cancellative</a><a id="1614" class="Symbol">)</a>
|
||
<a id="1616" class="Keyword">open</a> <a id="1621" class="Keyword">import</a> <a id="1628" href="Algebra.Definitions.html" class="Module">Algebra.Definitions</a>
|
||
<a id="1650" class="Keyword">using</a> <a id="1656" class="Symbol">(</a><a id="1657" href="Algebra.Definitions.html#3091" class="Function">LeftCancellative</a><a id="1673" class="Symbol">;</a> <a id="1675" href="Algebra.Definitions.html#3186" class="Function">RightCancellative</a><a id="1692" class="Symbol">;</a> <a id="1694" href="Algebra.Definitions.html#3283" class="Function">Cancellative</a><a id="1706" class="Symbol">)</a>
|
||
<a id="1708" class="Keyword">open</a> <a id="1713" class="Keyword">import</a> <a id="1720" href="Algebra.Structures.html" class="Module">Algebra.Structures</a> <a id="1739" class="Symbol">{</a><a id="1740" class="Argument">A</a> <a id="1742" class="Symbol">=</a> <a id="1744" href="Agda.Builtin.Nat.html#186" class="Datatype">ℕ</a><a id="1745" class="Symbol">}</a> <a id="1747" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a>
|
||
|
||
<a id="1752" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="1825" class="Comment">-- Properties of _≡_</a>
|
||
<a id="1846" class="Comment">------------------------------------------------------------------------</a>
|
||
|
||
<a id="suc-injective"></a><a id="1920" href="Data.Nat.Properties.html#1920" class="Function">suc-injective</a> <a id="1934" class="Symbol">:</a> <a id="1936" class="Symbol">∀</a> <a id="1938" class="Symbol">{</a><a id="1939" href="Data.Nat.Properties.html#1939" class="Bound">m</a> <a id="1941" href="Data.Nat.Properties.html#1941" class="Bound">n</a><a id="1942" class="Symbol">}</a> <a id="1944" class="Symbol">→</a> <a id="1946" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="1950" href="Data.Nat.Properties.html#1939" class="Bound">m</a> <a id="1952" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="1954" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="1958" href="Data.Nat.Properties.html#1941" class="Bound">n</a> <a id="1960" class="Symbol">→</a> <a id="1962" href="Data.Nat.Properties.html#1939" class="Bound">m</a> <a id="1964" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="1966" href="Data.Nat.Properties.html#1941" class="Bound">n</a>
|
||
<a id="1968" href="Data.Nat.Properties.html#1920" class="Function">suc-injective</a> <a id="1982" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="1987" class="Symbol">=</a> <a id="1989" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
|
||
<a id="≡ᵇ⇒≡"></a><a id="1995" href="Data.Nat.Properties.html#1995" class="Function">≡ᵇ⇒≡</a> <a id="2000" class="Symbol">:</a> <a id="2002" class="Symbol">∀</a> <a id="2004" href="Data.Nat.Properties.html#2004" class="Bound">m</a> <a id="2006" href="Data.Nat.Properties.html#2006" class="Bound">n</a> <a id="2008" class="Symbol">→</a> <a id="2010" href="Data.Bool.Base.html#1460" class="Function">T</a> <a id="2012" class="Symbol">(</a><a id="2013" href="Data.Nat.Properties.html#2004" class="Bound">m</a> <a id="2015" href="Data.Nat.Base.html#1136" class="Primitive Operator">≡ᵇ</a> <a id="2018" href="Data.Nat.Properties.html#2006" class="Bound">n</a><a id="2019" class="Symbol">)</a> <a id="2021" class="Symbol">→</a> <a id="2023" href="Data.Nat.Properties.html#2004" class="Bound">m</a> <a id="2025" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="2027" href="Data.Nat.Properties.html#2006" class="Bound">n</a>
|
||
<a id="2029" href="Data.Nat.Properties.html#1995" class="Function">≡ᵇ⇒≡</a> <a id="2034" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="2042" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="2050" class="Symbol">_</a> <a id="2053" class="Symbol">=</a> <a id="2055" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="2060" href="Data.Nat.Properties.html#1995" class="Function">≡ᵇ⇒≡</a> <a id="2065" class="Symbol">(</a><a id="2066" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="2070" href="Data.Nat.Properties.html#2070" class="Bound">m</a><a id="2071" class="Symbol">)</a> <a id="2073" class="Symbol">(</a><a id="2074" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="2078" href="Data.Nat.Properties.html#2078" class="Bound">n</a><a id="2079" class="Symbol">)</a> <a id="2081" href="Data.Nat.Properties.html#2081" class="Bound">eq</a> <a id="2084" class="Symbol">=</a> <a id="2086" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="2091" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="2095" class="Symbol">(</a><a id="2096" href="Data.Nat.Properties.html#1995" class="Function">≡ᵇ⇒≡</a> <a id="2101" href="Data.Nat.Properties.html#2070" class="Bound">m</a> <a id="2103" href="Data.Nat.Properties.html#2078" class="Bound">n</a> <a id="2105" href="Data.Nat.Properties.html#2081" class="Bound">eq</a><a id="2107" class="Symbol">)</a>
|
||
|
||
<a id="≡⇒≡ᵇ"></a><a id="2110" href="Data.Nat.Properties.html#2110" class="Function">≡⇒≡ᵇ</a> <a id="2115" class="Symbol">:</a> <a id="2117" class="Symbol">∀</a> <a id="2119" href="Data.Nat.Properties.html#2119" class="Bound">m</a> <a id="2121" href="Data.Nat.Properties.html#2121" class="Bound">n</a> <a id="2123" class="Symbol">→</a> <a id="2125" href="Data.Nat.Properties.html#2119" class="Bound">m</a> <a id="2127" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="2129" href="Data.Nat.Properties.html#2121" class="Bound">n</a> <a id="2131" class="Symbol">→</a> <a id="2133" href="Data.Bool.Base.html#1460" class="Function">T</a> <a id="2135" class="Symbol">(</a><a id="2136" href="Data.Nat.Properties.html#2119" class="Bound">m</a> <a id="2138" href="Data.Nat.Base.html#1136" class="Primitive Operator">≡ᵇ</a> <a id="2141" href="Data.Nat.Properties.html#2121" class="Bound">n</a><a id="2142" class="Symbol">)</a>
|
||
<a id="2144" href="Data.Nat.Properties.html#2110" class="Function">≡⇒≡ᵇ</a> <a id="2149" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="2157" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="2165" href="Data.Nat.Properties.html#2165" class="Bound">eq</a> <a id="2168" class="Symbol">=</a> <a id="2170" class="Symbol">_</a>
|
||
<a id="2172" href="Data.Nat.Properties.html#2110" class="Function">≡⇒≡ᵇ</a> <a id="2177" class="Symbol">(</a><a id="2178" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="2182" href="Data.Nat.Properties.html#2182" class="Bound">m</a><a id="2183" class="Symbol">)</a> <a id="2185" class="Symbol">(</a><a id="2186" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="2190" href="Data.Nat.Properties.html#2190" class="Bound">n</a><a id="2191" class="Symbol">)</a> <a id="2193" href="Data.Nat.Properties.html#2193" class="Bound">eq</a> <a id="2196" class="Symbol">=</a> <a id="2198" href="Data.Nat.Properties.html#2110" class="Function">≡⇒≡ᵇ</a> <a id="2203" href="Data.Nat.Properties.html#2182" class="Bound">m</a> <a id="2205" href="Data.Nat.Properties.html#2190" class="Bound">n</a> <a id="2207" class="Symbol">(</a><a id="2208" href="Data.Nat.Properties.html#1920" class="Function">suc-injective</a> <a id="2222" href="Data.Nat.Properties.html#2193" class="Bound">eq</a><a id="2224" class="Symbol">)</a>
|
||
|
||
<a id="2227" class="Comment">-- NB: we use the builtin function `_≡ᵇ_` here so that the function</a>
|
||
<a id="2295" class="Comment">-- quickly decides whether to return `yes` or `no`. It still takes</a>
|
||
<a id="2362" class="Comment">-- a linear amount of time to generate the proof if it is inspected.</a>
|
||
<a id="2431" class="Comment">-- We expect the main benefit to be visible in compiled code as the</a>
|
||
<a id="2499" class="Comment">-- backend erases proofs.</a>
|
||
|
||
<a id="2526" class="Keyword">infix</a> <a id="2532" class="Number">4</a> <a id="2534" href="Data.Nat.Properties.html#2538" class="Function Operator">_≟_</a>
|
||
<a id="_≟_"></a><a id="2538" href="Data.Nat.Properties.html#2538" class="Function Operator">_≟_</a> <a id="2542" class="Symbol">:</a> <a id="2544" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="2554" class="Symbol">{</a><a id="2555" class="Argument">A</a> <a id="2557" class="Symbol">=</a> <a id="2559" href="Agda.Builtin.Nat.html#186" class="Datatype">ℕ</a><a id="2560" class="Symbol">}</a> <a id="2562" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a>
|
||
<a id="2566" href="Data.Nat.Properties.html#2566" class="Bound">m</a> <a id="2568" href="Data.Nat.Properties.html#2538" class="Function Operator">≟</a> <a id="2570" href="Data.Nat.Properties.html#2570" class="Bound">n</a> <a id="2572" class="Symbol">=</a> <a id="2574" href="Relation.Nullary.Decidable.Core.html#3645" class="Function">map′</a> <a id="2579" class="Symbol">(</a><a id="2580" href="Data.Nat.Properties.html#1995" class="Function">≡ᵇ⇒≡</a> <a id="2585" href="Data.Nat.Properties.html#2566" class="Bound">m</a> <a id="2587" href="Data.Nat.Properties.html#2570" class="Bound">n</a><a id="2588" class="Symbol">)</a> <a id="2590" class="Symbol">(</a><a id="2591" href="Data.Nat.Properties.html#2110" class="Function">≡⇒≡ᵇ</a> <a id="2596" href="Data.Nat.Properties.html#2566" class="Bound">m</a> <a id="2598" href="Data.Nat.Properties.html#2570" class="Bound">n</a><a id="2599" class="Symbol">)</a> <a id="2601" class="Symbol">(</a><a id="2602" href="Data.Bool.Properties.html#15479" class="Function">T?</a> <a id="2605" class="Symbol">(</a><a id="2606" href="Data.Nat.Properties.html#2566" class="Bound">m</a> <a id="2608" href="Data.Nat.Base.html#1136" class="Primitive Operator">≡ᵇ</a> <a id="2611" href="Data.Nat.Properties.html#2570" class="Bound">n</a><a id="2612" class="Symbol">))</a>
|
||
|
||
<a id="≡-irrelevant"></a><a id="2616" href="Data.Nat.Properties.html#2616" class="Function">≡-irrelevant</a> <a id="2629" class="Symbol">:</a> <a id="2631" href="Relation.Binary.Definitions.html#5074" class="Function">Irrelevant</a> <a id="2642" class="Symbol">{</a><a id="2643" class="Argument">A</a> <a id="2645" class="Symbol">=</a> <a id="2647" href="Agda.Builtin.Nat.html#186" class="Datatype">ℕ</a><a id="2648" class="Symbol">}</a> <a id="2650" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a>
|
||
<a id="2654" href="Data.Nat.Properties.html#2616" class="Function">≡-irrelevant</a> <a id="2667" class="Symbol">=</a> <a id="2669" href="Axiom.UniquenessOfIdentityProofs.html#2697" class="Function">Decidable⇒UIP.≡-irrelevant</a> <a id="2696" href="Data.Nat.Properties.html#2538" class="Function Operator">_≟_</a>
|
||
|
||
<a id="≟-diag"></a><a id="2701" href="Data.Nat.Properties.html#2701" class="Function">≟-diag</a> <a id="2708" class="Symbol">:</a> <a id="2710" class="Symbol">∀</a> <a id="2712" class="Symbol">{</a><a id="2713" href="Data.Nat.Properties.html#2713" class="Bound">m</a> <a id="2715" href="Data.Nat.Properties.html#2715" class="Bound">n</a><a id="2716" class="Symbol">}</a> <a id="2718" class="Symbol">(</a><a id="2719" href="Data.Nat.Properties.html#2719" class="Bound">eq</a> <a id="2722" class="Symbol">:</a> <a id="2724" href="Data.Nat.Properties.html#2713" class="Bound">m</a> <a id="2726" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="2728" href="Data.Nat.Properties.html#2715" class="Bound">n</a><a id="2729" class="Symbol">)</a> <a id="2731" class="Symbol">→</a> <a id="2733" class="Symbol">(</a><a id="2734" href="Data.Nat.Properties.html#2713" class="Bound">m</a> <a id="2736" href="Data.Nat.Properties.html#2538" class="Function Operator">≟</a> <a id="2738" href="Data.Nat.Properties.html#2715" class="Bound">n</a><a id="2739" class="Symbol">)</a> <a id="2741" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="2743" href="Relation.Nullary.html#1657" class="InductiveConstructor">yes</a> <a id="2747" href="Data.Nat.Properties.html#2719" class="Bound">eq</a>
|
||
<a id="2750" href="Data.Nat.Properties.html#2701" class="Function">≟-diag</a> <a id="2757" class="Symbol">=</a> <a id="2759" href="Relation.Binary.PropositionalEquality.html#4212" class="Function">≡-≟-identity</a> <a id="2772" href="Data.Nat.Properties.html#2538" class="Function Operator">_≟_</a>
|
||
|
||
<a id="≡-isDecEquivalence"></a><a id="2777" href="Data.Nat.Properties.html#2777" class="Function">≡-isDecEquivalence</a> <a id="2796" class="Symbol">:</a> <a id="2798" href="Relation.Binary.Structures.html#1833" class="Record">IsDecEquivalence</a> <a id="2815" class="Symbol">(</a><a id="2816" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a> <a id="2820" class="Symbol">{</a><a id="2821" class="Argument">A</a> <a id="2823" class="Symbol">=</a> <a id="2825" href="Agda.Builtin.Nat.html#186" class="Datatype">ℕ</a><a id="2826" class="Symbol">})</a>
|
||
<a id="2829" href="Data.Nat.Properties.html#2777" class="Function">≡-isDecEquivalence</a> <a id="2848" class="Symbol">=</a> <a id="2850" class="Keyword">record</a>
|
||
<a id="2859" class="Symbol">{</a> <a id="2861" href="Relation.Binary.Structures.html#1896" class="Field">isEquivalence</a> <a id="2875" class="Symbol">=</a> <a id="2877" href="Relation.Binary.PropositionalEquality.Properties.html#3436" class="Function">isEquivalence</a>
|
||
<a id="2893" class="Symbol">;</a> <a id="2895" href="Relation.Binary.Structures.html#1930" class="Field Operator">_≟_</a> <a id="2909" class="Symbol">=</a> <a id="2911" href="Data.Nat.Properties.html#2538" class="Function Operator">_≟_</a>
|
||
<a id="2917" class="Symbol">}</a>
|
||
|
||
<a id="≡-decSetoid"></a><a id="2920" href="Data.Nat.Properties.html#2920" class="Function">≡-decSetoid</a> <a id="2932" class="Symbol">:</a> <a id="2934" href="Relation.Binary.Bundles.html#1400" class="Record">DecSetoid</a> <a id="2944" href="Level.html#521" class="Function">0ℓ</a> <a id="2947" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="2950" href="Data.Nat.Properties.html#2920" class="Function">≡-decSetoid</a> <a id="2962" class="Symbol">=</a> <a id="2964" class="Keyword">record</a>
|
||
<a id="2973" class="Symbol">{</a> <a id="2975" href="Relation.Binary.Bundles.html#1466" class="Field">Carrier</a> <a id="2992" class="Symbol">=</a> <a id="2994" href="Agda.Builtin.Nat.html#186" class="Datatype">ℕ</a>
|
||
<a id="2998" class="Symbol">;</a> <a id="3000" href="Relation.Binary.Bundles.html#1495" class="Field Operator">_≈_</a> <a id="3017" class="Symbol">=</a> <a id="3019" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a>
|
||
<a id="3025" class="Symbol">;</a> <a id="3027" href="Relation.Binary.Bundles.html#1532" class="Field">isDecEquivalence</a> <a id="3044" class="Symbol">=</a> <a id="3046" href="Data.Nat.Properties.html#2777" class="Function">≡-isDecEquivalence</a>
|
||
<a id="3067" class="Symbol">}</a>
|
||
|
||
<a id="0≢1+n"></a><a id="3070" href="Data.Nat.Properties.html#3070" class="Function">0≢1+n</a> <a id="3076" class="Symbol">:</a> <a id="3078" class="Symbol">∀</a> <a id="3080" class="Symbol">{</a><a id="3081" href="Data.Nat.Properties.html#3081" class="Bound">n</a><a id="3082" class="Symbol">}</a> <a id="3084" class="Symbol">→</a> <a id="3086" class="Number">0</a> <a id="3088" href="Relation.Binary.PropositionalEquality.Core.html#839" class="Function Operator">≢</a> <a id="3090" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="3094" href="Data.Nat.Properties.html#3081" class="Bound">n</a>
|
||
<a id="3096" href="Data.Nat.Properties.html#3070" class="Function">0≢1+n</a> <a id="3102" class="Symbol">()</a>
|
||
|
||
<a id="1+n≢0"></a><a id="3106" href="Data.Nat.Properties.html#3106" class="Function">1+n≢0</a> <a id="3112" class="Symbol">:</a> <a id="3114" class="Symbol">∀</a> <a id="3116" class="Symbol">{</a><a id="3117" href="Data.Nat.Properties.html#3117" class="Bound">n</a><a id="3118" class="Symbol">}</a> <a id="3120" class="Symbol">→</a> <a id="3122" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="3126" href="Data.Nat.Properties.html#3117" class="Bound">n</a> <a id="3128" href="Relation.Binary.PropositionalEquality.Core.html#839" class="Function Operator">≢</a> <a id="3130" class="Number">0</a>
|
||
<a id="3132" href="Data.Nat.Properties.html#3106" class="Function">1+n≢0</a> <a id="3138" class="Symbol">()</a>
|
||
|
||
<a id="1+n≢n"></a><a id="3142" href="Data.Nat.Properties.html#3142" class="Function">1+n≢n</a> <a id="3148" class="Symbol">:</a> <a id="3150" class="Symbol">∀</a> <a id="3152" class="Symbol">{</a><a id="3153" href="Data.Nat.Properties.html#3153" class="Bound">n</a><a id="3154" class="Symbol">}</a> <a id="3156" class="Symbol">→</a> <a id="3158" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="3162" href="Data.Nat.Properties.html#3153" class="Bound">n</a> <a id="3164" href="Relation.Binary.PropositionalEquality.Core.html#839" class="Function Operator">≢</a> <a id="3166" href="Data.Nat.Properties.html#3153" class="Bound">n</a>
|
||
<a id="3168" href="Data.Nat.Properties.html#3142" class="Function">1+n≢n</a> <a id="3174" class="Symbol">{</a><a id="3175" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="3179" href="Data.Nat.Properties.html#3179" class="Bound">n</a><a id="3180" class="Symbol">}</a> <a id="3182" class="Symbol">=</a> <a id="3184" href="Data.Nat.Properties.html#3142" class="Function">1+n≢n</a> <a id="3190" href="Function.Base.html#1040" class="Function Operator">∘</a> <a id="3192" href="Data.Nat.Properties.html#1920" class="Function">suc-injective</a>
|
||
|
||
<a id="3207" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="3280" class="Comment">-- Properties of _<ᵇ_</a>
|
||
<a id="3302" class="Comment">------------------------------------------------------------------------</a>
|
||
|
||
<a id="<ᵇ⇒<"></a><a id="3376" href="Data.Nat.Properties.html#3376" class="Function"><ᵇ⇒<</a> <a id="3381" class="Symbol">:</a> <a id="3383" class="Symbol">∀</a> <a id="3385" href="Data.Nat.Properties.html#3385" class="Bound">m</a> <a id="3387" href="Data.Nat.Properties.html#3387" class="Bound">n</a> <a id="3389" class="Symbol">→</a> <a id="3391" href="Data.Bool.Base.html#1460" class="Function">T</a> <a id="3393" class="Symbol">(</a><a id="3394" href="Data.Nat.Properties.html#3385" class="Bound">m</a> <a id="3396" href="Data.Nat.Base.html#1310" class="Primitive Operator"><ᵇ</a> <a id="3399" href="Data.Nat.Properties.html#3387" class="Bound">n</a><a id="3400" class="Symbol">)</a> <a id="3402" class="Symbol">→</a> <a id="3404" href="Data.Nat.Properties.html#3385" class="Bound">m</a> <a id="3406" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="3408" href="Data.Nat.Properties.html#3387" class="Bound">n</a>
|
||
<a id="3410" href="Data.Nat.Properties.html#3376" class="Function"><ᵇ⇒<</a> <a id="3415" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="3423" class="Symbol">(</a><a id="3424" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="3428" href="Data.Nat.Properties.html#3428" class="Bound">n</a><a id="3429" class="Symbol">)</a> <a id="3431" href="Data.Nat.Properties.html#3431" class="Bound">m<n</a> <a id="3435" class="Symbol">=</a> <a id="3437" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="3441" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="3445" href="Data.Nat.Properties.html#3376" class="Function"><ᵇ⇒<</a> <a id="3450" class="Symbol">(</a><a id="3451" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="3455" href="Data.Nat.Properties.html#3455" class="Bound">m</a><a id="3456" class="Symbol">)</a> <a id="3458" class="Symbol">(</a><a id="3459" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="3463" href="Data.Nat.Properties.html#3463" class="Bound">n</a><a id="3464" class="Symbol">)</a> <a id="3466" href="Data.Nat.Properties.html#3466" class="Bound">m<n</a> <a id="3470" class="Symbol">=</a> <a id="3472" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="3476" class="Symbol">(</a><a id="3477" href="Data.Nat.Properties.html#3376" class="Function"><ᵇ⇒<</a> <a id="3482" href="Data.Nat.Properties.html#3455" class="Bound">m</a> <a id="3484" href="Data.Nat.Properties.html#3463" class="Bound">n</a> <a id="3486" href="Data.Nat.Properties.html#3466" class="Bound">m<n</a><a id="3489" class="Symbol">)</a>
|
||
|
||
<a id="<⇒<ᵇ"></a><a id="3492" href="Data.Nat.Properties.html#3492" class="Function"><⇒<ᵇ</a> <a id="3497" class="Symbol">:</a> <a id="3499" class="Symbol">∀</a> <a id="3501" class="Symbol">{</a><a id="3502" href="Data.Nat.Properties.html#3502" class="Bound">m</a> <a id="3504" href="Data.Nat.Properties.html#3504" class="Bound">n</a><a id="3505" class="Symbol">}</a> <a id="3507" class="Symbol">→</a> <a id="3509" href="Data.Nat.Properties.html#3502" class="Bound">m</a> <a id="3511" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="3513" href="Data.Nat.Properties.html#3504" class="Bound">n</a> <a id="3515" class="Symbol">→</a> <a id="3517" href="Data.Bool.Base.html#1460" class="Function">T</a> <a id="3519" class="Symbol">(</a><a id="3520" href="Data.Nat.Properties.html#3502" class="Bound">m</a> <a id="3522" href="Data.Nat.Base.html#1310" class="Primitive Operator"><ᵇ</a> <a id="3525" href="Data.Nat.Properties.html#3504" class="Bound">n</a><a id="3526" class="Symbol">)</a>
|
||
<a id="3528" href="Data.Nat.Properties.html#3492" class="Function"><⇒<ᵇ</a> <a id="3533" class="Symbol">(</a><a id="3534" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="3538" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a><a id="3541" class="Symbol">)</a> <a id="3549" class="Symbol">=</a> <a id="3551" href="Agda.Builtin.Unit.html#195" class="InductiveConstructor">tt</a>
|
||
<a id="3554" href="Data.Nat.Properties.html#3492" class="Function"><⇒<ᵇ</a> <a id="3559" class="Symbol">(</a><a id="3560" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="3564" class="Symbol">(</a><a id="3565" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="3569" href="Data.Nat.Properties.html#3569" class="Bound">m<n</a><a id="3572" class="Symbol">))</a> <a id="3575" class="Symbol">=</a> <a id="3577" href="Data.Nat.Properties.html#3492" class="Function"><⇒<ᵇ</a> <a id="3582" class="Symbol">(</a><a id="3583" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="3587" href="Data.Nat.Properties.html#3569" class="Bound">m<n</a><a id="3590" class="Symbol">)</a>
|
||
|
||
<a id="<ᵇ-reflects-<"></a><a id="3593" href="Data.Nat.Properties.html#3593" class="Function"><ᵇ-reflects-<</a> <a id="3607" class="Symbol">:</a> <a id="3609" class="Symbol">∀</a> <a id="3611" href="Data.Nat.Properties.html#3611" class="Bound">m</a> <a id="3613" href="Data.Nat.Properties.html#3613" class="Bound">n</a> <a id="3615" class="Symbol">→</a> <a id="3617" href="Relation.Nullary.html#863" class="Datatype">Reflects</a> <a id="3626" class="Symbol">(</a><a id="3627" href="Data.Nat.Properties.html#3611" class="Bound">m</a> <a id="3629" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="3631" href="Data.Nat.Properties.html#3613" class="Bound">n</a><a id="3632" class="Symbol">)</a> <a id="3634" class="Symbol">(</a><a id="3635" href="Data.Nat.Properties.html#3611" class="Bound">m</a> <a id="3637" href="Data.Nat.Base.html#1310" class="Primitive Operator"><ᵇ</a> <a id="3640" href="Data.Nat.Properties.html#3613" class="Bound">n</a><a id="3641" class="Symbol">)</a>
|
||
<a id="3643" href="Data.Nat.Properties.html#3593" class="Function"><ᵇ-reflects-<</a> <a id="3657" href="Data.Nat.Properties.html#3657" class="Bound">m</a> <a id="3659" href="Data.Nat.Properties.html#3659" class="Bound">n</a> <a id="3661" class="Symbol">=</a> <a id="3663" href="Relation.Nullary.Reflects.html#1225" class="Function">fromEquivalence</a> <a id="3679" class="Symbol">(</a><a id="3680" href="Data.Nat.Properties.html#3376" class="Function"><ᵇ⇒<</a> <a id="3685" href="Data.Nat.Properties.html#3657" class="Bound">m</a> <a id="3687" href="Data.Nat.Properties.html#3659" class="Bound">n</a><a id="3688" class="Symbol">)</a> <a id="3690" href="Data.Nat.Properties.html#3492" class="Function"><⇒<ᵇ</a>
|
||
|
||
<a id="3696" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="3769" class="Comment">-- Properties of _≤ᵇ_</a>
|
||
<a id="3791" class="Comment">------------------------------------------------------------------------</a>
|
||
|
||
<a id="≤ᵇ⇒≤"></a><a id="3865" href="Data.Nat.Properties.html#3865" class="Function">≤ᵇ⇒≤</a> <a id="3870" class="Symbol">:</a> <a id="3872" class="Symbol">∀</a> <a id="3874" href="Data.Nat.Properties.html#3874" class="Bound">m</a> <a id="3876" href="Data.Nat.Properties.html#3876" class="Bound">n</a> <a id="3878" class="Symbol">→</a> <a id="3880" href="Data.Bool.Base.html#1460" class="Function">T</a> <a id="3882" class="Symbol">(</a><a id="3883" href="Data.Nat.Properties.html#3874" class="Bound">m</a> <a id="3885" href="Data.Nat.Base.html#1330" class="Function Operator">≤ᵇ</a> <a id="3888" href="Data.Nat.Properties.html#3876" class="Bound">n</a><a id="3889" class="Symbol">)</a> <a id="3891" class="Symbol">→</a> <a id="3893" href="Data.Nat.Properties.html#3874" class="Bound">m</a> <a id="3895" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="3897" href="Data.Nat.Properties.html#3876" class="Bound">n</a>
|
||
<a id="3899" href="Data.Nat.Properties.html#3865" class="Function">≤ᵇ⇒≤</a> <a id="3904" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="3912" href="Data.Nat.Properties.html#3912" class="Bound">n</a> <a id="3914" href="Data.Nat.Properties.html#3914" class="Bound">m≤n</a> <a id="3918" class="Symbol">=</a> <a id="3920" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="3924" href="Data.Nat.Properties.html#3865" class="Function">≤ᵇ⇒≤</a> <a id="3929" class="Symbol">(</a><a id="3930" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="3934" href="Data.Nat.Properties.html#3934" class="Bound">m</a><a id="3935" class="Symbol">)</a> <a id="3937" href="Data.Nat.Properties.html#3937" class="Bound">n</a> <a id="3939" href="Data.Nat.Properties.html#3939" class="Bound">m≤n</a> <a id="3943" class="Symbol">=</a> <a id="3945" href="Data.Nat.Properties.html#3376" class="Function"><ᵇ⇒<</a> <a id="3950" href="Data.Nat.Properties.html#3934" class="Bound">m</a> <a id="3952" href="Data.Nat.Properties.html#3937" class="Bound">n</a> <a id="3954" href="Data.Nat.Properties.html#3939" class="Bound">m≤n</a>
|
||
|
||
<a id="≤⇒≤ᵇ"></a><a id="3959" href="Data.Nat.Properties.html#3959" class="Function">≤⇒≤ᵇ</a> <a id="3964" class="Symbol">:</a> <a id="3966" class="Symbol">∀</a> <a id="3968" class="Symbol">{</a><a id="3969" href="Data.Nat.Properties.html#3969" class="Bound">m</a> <a id="3971" href="Data.Nat.Properties.html#3971" class="Bound">n</a><a id="3972" class="Symbol">}</a> <a id="3974" class="Symbol">→</a> <a id="3976" href="Data.Nat.Properties.html#3969" class="Bound">m</a> <a id="3978" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="3980" href="Data.Nat.Properties.html#3971" class="Bound">n</a> <a id="3982" class="Symbol">→</a> <a id="3984" href="Data.Bool.Base.html#1460" class="Function">T</a> <a id="3986" class="Symbol">(</a><a id="3987" href="Data.Nat.Properties.html#3969" class="Bound">m</a> <a id="3989" href="Data.Nat.Base.html#1330" class="Function Operator">≤ᵇ</a> <a id="3992" href="Data.Nat.Properties.html#3971" class="Bound">n</a><a id="3993" class="Symbol">)</a>
|
||
<a id="3995" href="Data.Nat.Properties.html#3959" class="Function">≤⇒≤ᵇ</a> <a id="4000" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="4012" class="Symbol">=</a> <a id="4014" href="Agda.Builtin.Unit.html#195" class="InductiveConstructor">tt</a>
|
||
<a id="4017" href="Data.Nat.Properties.html#3959" class="Function">≤⇒≤ᵇ</a> <a id="4022" href="Data.Nat.Properties.html#4022" class="Bound">m≤n</a><a id="4025" class="Symbol">@(</a><a id="4027" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="4031" class="Symbol">_)</a> <a id="4034" class="Symbol">=</a> <a id="4036" href="Data.Nat.Properties.html#3492" class="Function"><⇒<ᵇ</a> <a id="4041" href="Data.Nat.Properties.html#4022" class="Bound">m≤n</a>
|
||
|
||
<a id="≤ᵇ-reflects-≤"></a><a id="4046" href="Data.Nat.Properties.html#4046" class="Function">≤ᵇ-reflects-≤</a> <a id="4060" class="Symbol">:</a> <a id="4062" class="Symbol">∀</a> <a id="4064" href="Data.Nat.Properties.html#4064" class="Bound">m</a> <a id="4066" href="Data.Nat.Properties.html#4066" class="Bound">n</a> <a id="4068" class="Symbol">→</a> <a id="4070" href="Relation.Nullary.html#863" class="Datatype">Reflects</a> <a id="4079" class="Symbol">(</a><a id="4080" href="Data.Nat.Properties.html#4064" class="Bound">m</a> <a id="4082" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="4084" href="Data.Nat.Properties.html#4066" class="Bound">n</a><a id="4085" class="Symbol">)</a> <a id="4087" class="Symbol">(</a><a id="4088" href="Data.Nat.Properties.html#4064" class="Bound">m</a> <a id="4090" href="Data.Nat.Base.html#1330" class="Function Operator">≤ᵇ</a> <a id="4093" href="Data.Nat.Properties.html#4066" class="Bound">n</a><a id="4094" class="Symbol">)</a>
|
||
<a id="4096" href="Data.Nat.Properties.html#4046" class="Function">≤ᵇ-reflects-≤</a> <a id="4110" href="Data.Nat.Properties.html#4110" class="Bound">m</a> <a id="4112" href="Data.Nat.Properties.html#4112" class="Bound">n</a> <a id="4114" class="Symbol">=</a> <a id="4116" href="Relation.Nullary.Reflects.html#1225" class="Function">fromEquivalence</a> <a id="4132" class="Symbol">(</a><a id="4133" href="Data.Nat.Properties.html#3865" class="Function">≤ᵇ⇒≤</a> <a id="4138" href="Data.Nat.Properties.html#4110" class="Bound">m</a> <a id="4140" href="Data.Nat.Properties.html#4112" class="Bound">n</a><a id="4141" class="Symbol">)</a> <a id="4143" href="Data.Nat.Properties.html#3959" class="Function">≤⇒≤ᵇ</a>
|
||
|
||
<a id="4149" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="4222" class="Comment">-- Properties of _≤_</a>
|
||
<a id="4243" class="Comment">------------------------------------------------------------------------</a>
|
||
|
||
<a id="4317" class="Keyword">open</a> <a id="4322" class="Keyword">import</a> <a id="4329" href="Data.Nat.Properties.Core.html" class="Module">Data.Nat.Properties.Core</a> <a id="4354" class="Keyword">public</a>
|
||
|
||
<a id="4362" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="4435" class="Comment">-- Relational properties of _≤_</a>
|
||
|
||
<a id="≤-reflexive"></a><a id="4468" href="Data.Nat.Properties.html#4468" class="Function">≤-reflexive</a> <a id="4480" class="Symbol">:</a> <a id="4482" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a> <a id="4486" href="Relation.Binary.Core.html#1263" class="Function Operator">⇒</a> <a id="4488" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="4492" href="Data.Nat.Properties.html#4468" class="Function">≤-reflexive</a> <a id="4504" class="Symbol">{</a><a id="4505" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="4509" class="Symbol">}</a> <a id="4512" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="4517" class="Symbol">=</a> <a id="4519" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="4523" href="Data.Nat.Properties.html#4468" class="Function">≤-reflexive</a> <a id="4535" class="Symbol">{</a><a id="4536" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="4540" href="Data.Nat.Properties.html#4540" class="Bound">m</a><a id="4541" class="Symbol">}</a> <a id="4543" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="4548" class="Symbol">=</a> <a id="4550" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="4554" class="Symbol">(</a><a id="4555" href="Data.Nat.Properties.html#4468" class="Function">≤-reflexive</a> <a id="4567" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a><a id="4571" class="Symbol">)</a>
|
||
|
||
<a id="≤-refl"></a><a id="4574" href="Data.Nat.Properties.html#4574" class="Function">≤-refl</a> <a id="4581" class="Symbol">:</a> <a id="4583" href="Relation.Binary.Definitions.html#1348" class="Function">Reflexive</a> <a id="4593" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="4597" href="Data.Nat.Properties.html#4574" class="Function">≤-refl</a> <a id="4604" class="Symbol">=</a> <a id="4606" href="Data.Nat.Properties.html#4468" class="Function">≤-reflexive</a> <a id="4618" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
|
||
<a id="≤-antisym"></a><a id="4624" href="Data.Nat.Properties.html#4624" class="Function">≤-antisym</a> <a id="4634" class="Symbol">:</a> <a id="4636" href="Relation.Binary.Definitions.html#2091" class="Function">Antisymmetric</a> <a id="4650" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a> <a id="4654" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="4658" href="Data.Nat.Properties.html#4624" class="Function">≤-antisym</a> <a id="4668" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="4678" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="4688" class="Symbol">=</a> <a id="4690" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="4695" href="Data.Nat.Properties.html#4624" class="Function">≤-antisym</a> <a id="4705" class="Symbol">(</a><a id="4706" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="4710" href="Data.Nat.Properties.html#4710" class="Bound">m≤n</a><a id="4713" class="Symbol">)</a> <a id="4715" class="Symbol">(</a><a id="4716" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="4720" href="Data.Nat.Properties.html#4720" class="Bound">n≤m</a><a id="4723" class="Symbol">)</a> <a id="4725" class="Symbol">=</a> <a id="4727" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="4732" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="4736" class="Symbol">(</a><a id="4737" href="Data.Nat.Properties.html#4624" class="Function">≤-antisym</a> <a id="4747" href="Data.Nat.Properties.html#4710" class="Bound">m≤n</a> <a id="4751" href="Data.Nat.Properties.html#4720" class="Bound">n≤m</a><a id="4754" class="Symbol">)</a>
|
||
|
||
<a id="≤-trans"></a><a id="4757" href="Data.Nat.Properties.html#4757" class="Function">≤-trans</a> <a id="4765" class="Symbol">:</a> <a id="4767" href="Relation.Binary.Definitions.html#1875" class="Function">Transitive</a> <a id="4778" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="4782" href="Data.Nat.Properties.html#4757" class="Function">≤-trans</a> <a id="4790" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="4800" class="Symbol">_</a> <a id="4810" class="Symbol">=</a> <a id="4812" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="4816" href="Data.Nat.Properties.html#4757" class="Function">≤-trans</a> <a id="4824" class="Symbol">(</a><a id="4825" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="4829" href="Data.Nat.Properties.html#4829" class="Bound">m≤n</a><a id="4832" class="Symbol">)</a> <a id="4834" class="Symbol">(</a><a id="4835" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="4839" href="Data.Nat.Properties.html#4839" class="Bound">n≤o</a><a id="4842" class="Symbol">)</a> <a id="4844" class="Symbol">=</a> <a id="4846" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="4850" class="Symbol">(</a><a id="4851" href="Data.Nat.Properties.html#4757" class="Function">≤-trans</a> <a id="4859" href="Data.Nat.Properties.html#4829" class="Bound">m≤n</a> <a id="4863" href="Data.Nat.Properties.html#4839" class="Bound">n≤o</a><a id="4866" class="Symbol">)</a>
|
||
|
||
<a id="≤-total"></a><a id="4869" href="Data.Nat.Properties.html#4869" class="Function">≤-total</a> <a id="4877" class="Symbol">:</a> <a id="4879" href="Relation.Binary.Definitions.html#2593" class="Function">Total</a> <a id="4885" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="4889" href="Data.Nat.Properties.html#4869" class="Function">≤-total</a> <a id="4897" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="4905" class="Symbol">_</a> <a id="4913" class="Symbol">=</a> <a id="4915" href="Data.Sum.Base.html#793" class="InductiveConstructor">inj₁</a> <a id="4920" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="4924" href="Data.Nat.Properties.html#4869" class="CatchallClause Function">≤-total</a><a id="4931" class="CatchallClause"> </a><a id="4932" class="CatchallClause Symbol">_</a><a id="4933" class="CatchallClause"> </a><a id="4940" href="Agda.Builtin.Nat.html#204" class="CatchallClause InductiveConstructor">zero</a> <a id="4948" class="Symbol">=</a> <a id="4950" href="Data.Sum.Base.html#818" class="InductiveConstructor">inj₂</a> <a id="4955" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="4959" href="Data.Nat.Properties.html#4869" class="Function">≤-total</a> <a id="4967" class="Symbol">(</a><a id="4968" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="4972" href="Data.Nat.Properties.html#4972" class="Bound">m</a><a id="4973" class="Symbol">)</a> <a id="4975" class="Symbol">(</a><a id="4976" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="4980" href="Data.Nat.Properties.html#4980" class="Bound">n</a><a id="4981" class="Symbol">)</a> <a id="4983" class="Keyword">with</a> <a id="4988" href="Data.Nat.Properties.html#4869" class="Function">≤-total</a> <a id="4996" href="Data.Nat.Properties.html#4972" class="Bound">m</a> <a id="4998" href="Data.Nat.Properties.html#4980" class="Bound">n</a>
|
||
<a id="5000" class="Symbol">...</a> <a id="5004" class="Symbol">|</a> <a id="5006" href="Data.Sum.Base.html#793" class="InductiveConstructor">inj₁</a> <a id="5011" href="Data.Nat.Properties.html#5011" class="Bound">m≤n</a> <a id="5015" class="Symbol">=</a> <a id="5017" href="Data.Sum.Base.html#793" class="InductiveConstructor">inj₁</a> <a id="5022" class="Symbol">(</a><a id="5023" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="5027" href="Data.Nat.Properties.html#5011" class="Bound">m≤n</a><a id="5030" class="Symbol">)</a>
|
||
<a id="5032" class="Symbol">...</a> <a id="5036" class="Symbol">|</a> <a id="5038" href="Data.Sum.Base.html#818" class="InductiveConstructor">inj₂</a> <a id="5043" href="Data.Nat.Properties.html#5043" class="Bound">n≤m</a> <a id="5047" class="Symbol">=</a> <a id="5049" href="Data.Sum.Base.html#818" class="InductiveConstructor">inj₂</a> <a id="5054" class="Symbol">(</a><a id="5055" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="5059" href="Data.Nat.Properties.html#5043" class="Bound">n≤m</a><a id="5062" class="Symbol">)</a>
|
||
|
||
<a id="≤-irrelevant"></a><a id="5065" href="Data.Nat.Properties.html#5065" class="Function">≤-irrelevant</a> <a id="5078" class="Symbol">:</a> <a id="5080" href="Relation.Binary.Definitions.html#5074" class="Function">Irrelevant</a> <a id="5091" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="5095" href="Data.Nat.Properties.html#5065" class="Function">≤-irrelevant</a> <a id="5108" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="5119" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="5130" class="Symbol">=</a> <a id="5132" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="5137" href="Data.Nat.Properties.html#5065" class="Function">≤-irrelevant</a> <a id="5150" class="Symbol">(</a><a id="5151" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="5155" href="Data.Nat.Properties.html#5155" class="Bound">m≤n₁</a><a id="5159" class="Symbol">)</a> <a id="5161" class="Symbol">(</a><a id="5162" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="5166" href="Data.Nat.Properties.html#5166" class="Bound">m≤n₂</a><a id="5170" class="Symbol">)</a> <a id="5172" class="Symbol">=</a> <a id="5174" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="5179" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="5183" class="Symbol">(</a><a id="5184" href="Data.Nat.Properties.html#5065" class="Function">≤-irrelevant</a> <a id="5197" href="Data.Nat.Properties.html#5155" class="Bound">m≤n₁</a> <a id="5202" href="Data.Nat.Properties.html#5166" class="Bound">m≤n₂</a><a id="5206" class="Symbol">)</a>
|
||
|
||
<a id="5209" class="Comment">-- NB: we use the builtin function `_<ᵇ_` here so that the function</a>
|
||
<a id="5277" class="Comment">-- quickly decides whether to return `yes` or `no`. It still takes</a>
|
||
<a id="5344" class="Comment">-- a linear amount of time to generate the proof if it is inspected.</a>
|
||
<a id="5413" class="Comment">-- We expect the main benefit to be visible in compiled code as the</a>
|
||
<a id="5481" class="Comment">-- backend erases proofs.</a>
|
||
|
||
<a id="5508" class="Keyword">infix</a> <a id="5514" class="Number">4</a> <a id="5516" href="Data.Nat.Properties.html#5527" class="Function Operator">_≤?_</a> <a id="5521" href="Data.Nat.Properties.html#5593" class="Function Operator">_≥?_</a>
|
||
|
||
<a id="_≤?_"></a><a id="5527" href="Data.Nat.Properties.html#5527" class="Function Operator">_≤?_</a> <a id="5532" class="Symbol">:</a> <a id="5534" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="5544" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="5548" href="Data.Nat.Properties.html#5548" class="Bound">m</a> <a id="5550" href="Data.Nat.Properties.html#5527" class="Function Operator">≤?</a> <a id="5553" href="Data.Nat.Properties.html#5553" class="Bound">n</a> <a id="5555" class="Symbol">=</a> <a id="5557" href="Relation.Nullary.Decidable.Core.html#3645" class="Function">map′</a> <a id="5562" class="Symbol">(</a><a id="5563" href="Data.Nat.Properties.html#3865" class="Function">≤ᵇ⇒≤</a> <a id="5568" href="Data.Nat.Properties.html#5548" class="Bound">m</a> <a id="5570" href="Data.Nat.Properties.html#5553" class="Bound">n</a><a id="5571" class="Symbol">)</a> <a id="5573" href="Data.Nat.Properties.html#3959" class="Function">≤⇒≤ᵇ</a> <a id="5578" class="Symbol">(</a><a id="5579" href="Data.Bool.Properties.html#15479" class="Function">T?</a> <a id="5582" class="Symbol">(</a><a id="5583" href="Data.Nat.Properties.html#5548" class="Bound">m</a> <a id="5585" href="Data.Nat.Base.html#1330" class="Function Operator">≤ᵇ</a> <a id="5588" href="Data.Nat.Properties.html#5553" class="Bound">n</a><a id="5589" class="Symbol">))</a>
|
||
|
||
<a id="_≥?_"></a><a id="5593" href="Data.Nat.Properties.html#5593" class="Function Operator">_≥?_</a> <a id="5598" class="Symbol">:</a> <a id="5600" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="5610" href="Data.Nat.Base.html#1688" class="Function Operator">_≥_</a>
|
||
<a id="5614" href="Data.Nat.Properties.html#5593" class="Function Operator">_≥?_</a> <a id="5619" class="Symbol">=</a> <a id="5621" href="Function.Base.html#1563" class="Function">flip</a> <a id="5626" href="Data.Nat.Properties.html#5527" class="Function Operator">_≤?_</a>
|
||
|
||
<a id="5632" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="5705" class="Comment">-- Structures</a>
|
||
|
||
<a id="≤-isPreorder"></a><a id="5720" href="Data.Nat.Properties.html#5720" class="Function">≤-isPreorder</a> <a id="5733" class="Symbol">:</a> <a id="5735" href="Relation.Binary.Structures.html#2172" class="Record">IsPreorder</a> <a id="5746" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a> <a id="5750" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="5754" href="Data.Nat.Properties.html#5720" class="Function">≤-isPreorder</a> <a id="5767" class="Symbol">=</a> <a id="5769" class="Keyword">record</a>
|
||
<a id="5778" class="Symbol">{</a> <a id="5780" href="Relation.Binary.Structures.html#2237" class="Field">isEquivalence</a> <a id="5794" class="Symbol">=</a> <a id="5796" href="Relation.Binary.PropositionalEquality.Properties.html#3436" class="Function">isEquivalence</a>
|
||
<a id="5812" class="Symbol">;</a> <a id="5814" href="Relation.Binary.Structures.html#2340" class="Field">reflexive</a> <a id="5828" class="Symbol">=</a> <a id="5830" href="Data.Nat.Properties.html#4468" class="Function">≤-reflexive</a>
|
||
<a id="5844" class="Symbol">;</a> <a id="5846" href="Relation.Binary.Structures.html#2370" class="Field">trans</a> <a id="5860" class="Symbol">=</a> <a id="5862" href="Data.Nat.Properties.html#4757" class="Function">≤-trans</a>
|
||
<a id="5872" class="Symbol">}</a>
|
||
|
||
<a id="≤-isTotalPreorder"></a><a id="5875" href="Data.Nat.Properties.html#5875" class="Function">≤-isTotalPreorder</a> <a id="5893" class="Symbol">:</a> <a id="5895" href="Relation.Binary.Structures.html#2742" class="Record">IsTotalPreorder</a> <a id="5911" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a> <a id="5915" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="5919" href="Data.Nat.Properties.html#5875" class="Function">≤-isTotalPreorder</a> <a id="5937" class="Symbol">=</a> <a id="5939" class="Keyword">record</a>
|
||
<a id="5948" class="Symbol">{</a> <a id="5950" href="Relation.Binary.Structures.html#2812" class="Field">isPreorder</a> <a id="5961" class="Symbol">=</a> <a id="5963" href="Data.Nat.Properties.html#5720" class="Function">≤-isPreorder</a>
|
||
<a id="5978" class="Symbol">;</a> <a id="5980" href="Relation.Binary.Structures.html#2844" class="Field">total</a> <a id="5991" class="Symbol">=</a> <a id="5993" href="Data.Nat.Properties.html#4869" class="Function">≤-total</a>
|
||
<a id="6003" class="Symbol">}</a>
|
||
|
||
<a id="≤-isPartialOrder"></a><a id="6006" href="Data.Nat.Properties.html#6006" class="Function">≤-isPartialOrder</a> <a id="6023" class="Symbol">:</a> <a id="6025" href="Relation.Binary.Structures.html#3183" class="Record">IsPartialOrder</a> <a id="6040" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a> <a id="6044" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="6048" href="Data.Nat.Properties.html#6006" class="Function">≤-isPartialOrder</a> <a id="6065" class="Symbol">=</a> <a id="6067" class="Keyword">record</a>
|
||
<a id="6076" class="Symbol">{</a> <a id="6078" href="Relation.Binary.Structures.html#3252" class="Field">isPreorder</a> <a id="6089" class="Symbol">=</a> <a id="6091" href="Data.Nat.Properties.html#5720" class="Function">≤-isPreorder</a>
|
||
<a id="6106" class="Symbol">;</a> <a id="6108" href="Relation.Binary.Structures.html#3284" class="Field">antisym</a> <a id="6119" class="Symbol">=</a> <a id="6121" href="Data.Nat.Properties.html#4624" class="Function">≤-antisym</a>
|
||
<a id="6133" class="Symbol">}</a>
|
||
|
||
<a id="≤-isTotalOrder"></a><a id="6136" href="Data.Nat.Properties.html#6136" class="Function">≤-isTotalOrder</a> <a id="6151" class="Symbol">:</a> <a id="6153" href="Relation.Binary.Structures.html#5306" class="Record">IsTotalOrder</a> <a id="6166" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a> <a id="6170" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="6174" href="Data.Nat.Properties.html#6136" class="Function">≤-isTotalOrder</a> <a id="6189" class="Symbol">=</a> <a id="6191" class="Keyword">record</a>
|
||
<a id="6200" class="Symbol">{</a> <a id="6202" href="Relation.Binary.Structures.html#5373" class="Field">isPartialOrder</a> <a id="6217" class="Symbol">=</a> <a id="6219" href="Data.Nat.Properties.html#6006" class="Function">≤-isPartialOrder</a>
|
||
<a id="6238" class="Symbol">;</a> <a id="6240" href="Relation.Binary.Structures.html#5413" class="Field">total</a> <a id="6255" class="Symbol">=</a> <a id="6257" href="Data.Nat.Properties.html#4869" class="Function">≤-total</a>
|
||
<a id="6267" class="Symbol">}</a>
|
||
|
||
<a id="≤-isDecTotalOrder"></a><a id="6270" href="Data.Nat.Properties.html#6270" class="Function">≤-isDecTotalOrder</a> <a id="6288" class="Symbol">:</a> <a id="6290" href="Relation.Binary.Structures.html#5623" class="Record">IsDecTotalOrder</a> <a id="6306" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a> <a id="6310" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="6314" href="Data.Nat.Properties.html#6270" class="Function">≤-isDecTotalOrder</a> <a id="6332" class="Symbol">=</a> <a id="6334" class="Keyword">record</a>
|
||
<a id="6343" class="Symbol">{</a> <a id="6345" href="Relation.Binary.Structures.html#5712" class="Field">isTotalOrder</a> <a id="6358" class="Symbol">=</a> <a id="6360" href="Data.Nat.Properties.html#6136" class="Function">≤-isTotalOrder</a>
|
||
<a id="6377" class="Symbol">;</a> <a id="6379" href="Relation.Binary.Structures.html#5748" class="Field Operator">_≟_</a> <a id="6392" class="Symbol">=</a> <a id="6394" href="Data.Nat.Properties.html#2538" class="Function Operator">_≟_</a>
|
||
<a id="6400" class="Symbol">;</a> <a id="6402" href="Relation.Binary.Structures.html#5781" class="Field Operator">_≤?_</a> <a id="6415" class="Symbol">=</a> <a id="6417" href="Data.Nat.Properties.html#5527" class="Function Operator">_≤?_</a>
|
||
<a id="6424" class="Symbol">}</a>
|
||
|
||
<a id="6427" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="6500" class="Comment">-- Bundles</a>
|
||
|
||
<a id="≤-preorder"></a><a id="6512" href="Data.Nat.Properties.html#6512" class="Function">≤-preorder</a> <a id="6523" class="Symbol">:</a> <a id="6525" href="Relation.Binary.Bundles.html#1929" class="Record">Preorder</a> <a id="6534" href="Level.html#521" class="Function">0ℓ</a> <a id="6537" href="Level.html#521" class="Function">0ℓ</a> <a id="6540" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="6543" href="Data.Nat.Properties.html#6512" class="Function">≤-preorder</a> <a id="6554" class="Symbol">=</a> <a id="6556" class="Keyword">record</a>
|
||
<a id="6565" class="Symbol">{</a> <a id="6567" href="Relation.Binary.Bundles.html#2142" class="Field">isPreorder</a> <a id="6578" class="Symbol">=</a> <a id="6580" href="Data.Nat.Properties.html#5720" class="Function">≤-isPreorder</a>
|
||
<a id="6595" class="Symbol">}</a>
|
||
|
||
<a id="≤-totalPreorder"></a><a id="6598" href="Data.Nat.Properties.html#6598" class="Function">≤-totalPreorder</a> <a id="6614" class="Symbol">:</a> <a id="6616" href="Relation.Binary.Bundles.html#2384" class="Record">TotalPreorder</a> <a id="6630" href="Level.html#521" class="Function">0ℓ</a> <a id="6633" href="Level.html#521" class="Function">0ℓ</a> <a id="6636" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="6639" href="Data.Nat.Properties.html#6598" class="Function">≤-totalPreorder</a> <a id="6655" class="Symbol">=</a> <a id="6657" class="Keyword">record</a>
|
||
<a id="6666" class="Symbol">{</a> <a id="6668" href="Relation.Binary.Bundles.html#2617" class="Field">isTotalPreorder</a> <a id="6684" class="Symbol">=</a> <a id="6686" href="Data.Nat.Properties.html#5875" class="Function">≤-isTotalPreorder</a>
|
||
<a id="6706" class="Symbol">}</a>
|
||
|
||
<a id="≤-poset"></a><a id="6709" href="Data.Nat.Properties.html#6709" class="Function">≤-poset</a> <a id="6717" class="Symbol">:</a> <a id="6719" href="Relation.Binary.Bundles.html#3037" class="Record">Poset</a> <a id="6725" href="Level.html#521" class="Function">0ℓ</a> <a id="6728" href="Level.html#521" class="Function">0ℓ</a> <a id="6731" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="6734" href="Data.Nat.Properties.html#6709" class="Function">≤-poset</a> <a id="6742" class="Symbol">=</a> <a id="6744" class="Keyword">record</a>
|
||
<a id="6753" class="Symbol">{</a> <a id="6755" href="Relation.Binary.Bundles.html#3212" class="Field">isPartialOrder</a> <a id="6770" class="Symbol">=</a> <a id="6772" href="Data.Nat.Properties.html#6006" class="Function">≤-isPartialOrder</a>
|
||
<a id="6791" class="Symbol">}</a>
|
||
|
||
<a id="≤-totalOrder"></a><a id="6794" href="Data.Nat.Properties.html#6794" class="Function">≤-totalOrder</a> <a id="6807" class="Symbol">:</a> <a id="6809" href="Relation.Binary.Bundles.html#5476" class="Record">TotalOrder</a> <a id="6820" href="Level.html#521" class="Function">0ℓ</a> <a id="6823" href="Level.html#521" class="Function">0ℓ</a> <a id="6826" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="6829" href="Data.Nat.Properties.html#6794" class="Function">≤-totalOrder</a> <a id="6842" class="Symbol">=</a> <a id="6844" class="Keyword">record</a>
|
||
<a id="6853" class="Symbol">{</a> <a id="6855" href="Relation.Binary.Bundles.html#5650" class="Field">isTotalOrder</a> <a id="6868" class="Symbol">=</a> <a id="6870" href="Data.Nat.Properties.html#6136" class="Function">≤-isTotalOrder</a>
|
||
<a id="6887" class="Symbol">}</a>
|
||
|
||
<a id="≤-decTotalOrder"></a><a id="6890" href="Data.Nat.Properties.html#6890" class="Function">≤-decTotalOrder</a> <a id="6906" class="Symbol">:</a> <a id="6908" href="Relation.Binary.Bundles.html#6016" class="Record">DecTotalOrder</a> <a id="6922" href="Level.html#521" class="Function">0ℓ</a> <a id="6925" href="Level.html#521" class="Function">0ℓ</a> <a id="6928" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="6931" href="Data.Nat.Properties.html#6890" class="Function">≤-decTotalOrder</a> <a id="6947" class="Symbol">=</a> <a id="6949" class="Keyword">record</a>
|
||
<a id="6958" class="Symbol">{</a> <a id="6960" href="Relation.Binary.Bundles.html#6202" class="Field">isDecTotalOrder</a> <a id="6976" class="Symbol">=</a> <a id="6978" href="Data.Nat.Properties.html#6270" class="Function">≤-isDecTotalOrder</a>
|
||
<a id="6998" class="Symbol">}</a>
|
||
|
||
<a id="7001" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="7074" class="Comment">-- Other properties of _≤_</a>
|
||
|
||
<a id="s≤s-injective"></a><a id="7102" href="Data.Nat.Properties.html#7102" class="Function">s≤s-injective</a> <a id="7116" class="Symbol">:</a> <a id="7118" class="Symbol">∀</a> <a id="7120" class="Symbol">{</a><a id="7121" href="Data.Nat.Properties.html#7121" class="Bound">m</a> <a id="7123" href="Data.Nat.Properties.html#7123" class="Bound">n</a><a id="7124" class="Symbol">}</a> <a id="7126" class="Symbol">{</a><a id="7127" href="Data.Nat.Properties.html#7127" class="Bound">p</a> <a id="7129" href="Data.Nat.Properties.html#7129" class="Bound">q</a> <a id="7131" class="Symbol">:</a> <a id="7133" href="Data.Nat.Properties.html#7121" class="Bound">m</a> <a id="7135" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="7137" href="Data.Nat.Properties.html#7123" class="Bound">n</a><a id="7138" class="Symbol">}</a> <a id="7140" class="Symbol">→</a> <a id="7142" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="7146" href="Data.Nat.Properties.html#7127" class="Bound">p</a> <a id="7148" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="7150" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="7154" href="Data.Nat.Properties.html#7129" class="Bound">q</a> <a id="7156" class="Symbol">→</a> <a id="7158" href="Data.Nat.Properties.html#7127" class="Bound">p</a> <a id="7160" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="7162" href="Data.Nat.Properties.html#7129" class="Bound">q</a>
|
||
<a id="7164" href="Data.Nat.Properties.html#7102" class="Function">s≤s-injective</a> <a id="7178" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="7183" class="Symbol">=</a> <a id="7185" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
|
||
<a id="≤-step"></a><a id="7191" href="Data.Nat.Properties.html#7191" class="Function">≤-step</a> <a id="7198" class="Symbol">:</a> <a id="7200" class="Symbol">∀</a> <a id="7202" class="Symbol">{</a><a id="7203" href="Data.Nat.Properties.html#7203" class="Bound">m</a> <a id="7205" href="Data.Nat.Properties.html#7205" class="Bound">n</a><a id="7206" class="Symbol">}</a> <a id="7208" class="Symbol">→</a> <a id="7210" href="Data.Nat.Properties.html#7203" class="Bound">m</a> <a id="7212" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="7214" href="Data.Nat.Properties.html#7205" class="Bound">n</a> <a id="7216" class="Symbol">→</a> <a id="7218" href="Data.Nat.Properties.html#7203" class="Bound">m</a> <a id="7220" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="7222" class="Number">1</a> <a id="7224" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="7226" href="Data.Nat.Properties.html#7205" class="Bound">n</a>
|
||
<a id="7228" href="Data.Nat.Properties.html#7191" class="Function">≤-step</a> <a id="7235" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="7245" class="Symbol">=</a> <a id="7247" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="7251" href="Data.Nat.Properties.html#7191" class="Function">≤-step</a> <a id="7258" class="Symbol">(</a><a id="7259" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="7263" href="Data.Nat.Properties.html#7263" class="Bound">m≤n</a><a id="7266" class="Symbol">)</a> <a id="7268" class="Symbol">=</a> <a id="7270" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="7274" class="Symbol">(</a><a id="7275" href="Data.Nat.Properties.html#7191" class="Function">≤-step</a> <a id="7282" href="Data.Nat.Properties.html#7263" class="Bound">m≤n</a><a id="7285" class="Symbol">)</a>
|
||
|
||
<a id="n≤1+n"></a><a id="7288" href="Data.Nat.Properties.html#7288" class="Function">n≤1+n</a> <a id="7294" class="Symbol">:</a> <a id="7296" class="Symbol">∀</a> <a id="7298" href="Data.Nat.Properties.html#7298" class="Bound">n</a> <a id="7300" class="Symbol">→</a> <a id="7302" href="Data.Nat.Properties.html#7298" class="Bound">n</a> <a id="7304" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="7306" class="Number">1</a> <a id="7308" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="7310" href="Data.Nat.Properties.html#7298" class="Bound">n</a>
|
||
<a id="7312" href="Data.Nat.Properties.html#7288" class="Function">n≤1+n</a> <a id="7318" class="Symbol">_</a> <a id="7320" class="Symbol">=</a> <a id="7322" href="Data.Nat.Properties.html#7191" class="Function">≤-step</a> <a id="7329" href="Data.Nat.Properties.html#4574" class="Function">≤-refl</a>
|
||
|
||
<a id="1+n≰n"></a><a id="7337" href="Data.Nat.Properties.html#7337" class="Function">1+n≰n</a> <a id="7343" class="Symbol">:</a> <a id="7345" class="Symbol">∀</a> <a id="7347" class="Symbol">{</a><a id="7348" href="Data.Nat.Properties.html#7348" class="Bound">n</a><a id="7349" class="Symbol">}</a> <a id="7351" class="Symbol">→</a> <a id="7353" class="Number">1</a> <a id="7355" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="7357" href="Data.Nat.Properties.html#7348" class="Bound">n</a> <a id="7359" href="Data.Nat.Base.html#1748" class="Function Operator">≰</a> <a id="7361" href="Data.Nat.Properties.html#7348" class="Bound">n</a>
|
||
<a id="7363" href="Data.Nat.Properties.html#7337" class="Function">1+n≰n</a> <a id="7369" class="Symbol">(</a><a id="7370" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="7374" href="Data.Nat.Properties.html#7374" class="Bound">le</a><a id="7376" class="Symbol">)</a> <a id="7378" class="Symbol">=</a> <a id="7380" href="Data.Nat.Properties.html#7337" class="Function">1+n≰n</a> <a id="7386" href="Data.Nat.Properties.html#7374" class="Bound">le</a>
|
||
|
||
<a id="n≤0⇒n≡0"></a><a id="7390" href="Data.Nat.Properties.html#7390" class="Function">n≤0⇒n≡0</a> <a id="7398" class="Symbol">:</a> <a id="7400" class="Symbol">∀</a> <a id="7402" class="Symbol">{</a><a id="7403" href="Data.Nat.Properties.html#7403" class="Bound">n</a><a id="7404" class="Symbol">}</a> <a id="7406" class="Symbol">→</a> <a id="7408" href="Data.Nat.Properties.html#7403" class="Bound">n</a> <a id="7410" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="7412" class="Number">0</a> <a id="7414" class="Symbol">→</a> <a id="7416" href="Data.Nat.Properties.html#7403" class="Bound">n</a> <a id="7418" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="7420" class="Number">0</a>
|
||
<a id="7422" href="Data.Nat.Properties.html#7390" class="Function">n≤0⇒n≡0</a> <a id="7430" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="7434" class="Symbol">=</a> <a id="7436" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
|
||
<a id="7442" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="7515" class="Comment">-- Properties of _<_</a>
|
||
<a id="7536" class="Comment">------------------------------------------------------------------------</a>
|
||
|
||
<a id="7610" class="Comment">-- Relationships between the various relations</a>
|
||
|
||
<a id="<⇒≤"></a><a id="7658" href="Data.Nat.Properties.html#7658" class="Function"><⇒≤</a> <a id="7662" class="Symbol">:</a> <a id="7664" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="7668" href="Relation.Binary.Core.html#1263" class="Function Operator">⇒</a> <a id="7670" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="7674" href="Data.Nat.Properties.html#7658" class="Function"><⇒≤</a> <a id="7678" class="Symbol">(</a><a id="7679" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="7683" href="Data.Nat.Properties.html#7683" class="Bound">m≤n</a><a id="7686" class="Symbol">)</a> <a id="7688" class="Symbol">=</a> <a id="7690" href="Data.Nat.Properties.html#4757" class="Function">≤-trans</a> <a id="7698" href="Data.Nat.Properties.html#7683" class="Bound">m≤n</a> <a id="7702" class="Symbol">(</a><a id="7703" href="Data.Nat.Properties.html#7191" class="Function">≤-step</a> <a id="7710" href="Data.Nat.Properties.html#4574" class="Function">≤-refl</a><a id="7716" class="Symbol">)</a>
|
||
|
||
<a id="<⇒≢"></a><a id="7719" href="Data.Nat.Properties.html#7719" class="Function"><⇒≢</a> <a id="7723" class="Symbol">:</a> <a id="7725" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="7729" href="Relation.Binary.Core.html#1263" class="Function Operator">⇒</a> <a id="7731" href="Relation.Binary.PropositionalEquality.Core.html#839" class="Function Operator">_≢_</a>
|
||
<a id="7735" href="Data.Nat.Properties.html#7719" class="Function"><⇒≢</a> <a id="7739" href="Data.Nat.Properties.html#7739" class="Bound">m<n</a> <a id="7743" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="7748" class="Symbol">=</a> <a id="7750" href="Data.Nat.Properties.html#7337" class="Function">1+n≰n</a> <a id="7756" href="Data.Nat.Properties.html#7739" class="Bound">m<n</a>
|
||
|
||
<a id=">⇒≢"></a><a id="7761" href="Data.Nat.Properties.html#7761" class="Function">>⇒≢</a> <a id="7765" class="Symbol">:</a> <a id="7767" href="Data.Nat.Base.html#1718" class="Function Operator">_>_</a> <a id="7771" href="Relation.Binary.Core.html#1263" class="Function Operator">⇒</a> <a id="7773" href="Relation.Binary.PropositionalEquality.Core.html#839" class="Function Operator">_≢_</a>
|
||
<a id="7777" href="Data.Nat.Properties.html#7761" class="Function">>⇒≢</a> <a id="7781" class="Symbol">=</a> <a id="7783" href="Relation.Binary.PropositionalEquality.Core.html#2310" class="Function">≢-sym</a> <a id="7789" href="Function.Base.html#1040" class="Function Operator">∘</a> <a id="7791" href="Data.Nat.Properties.html#7719" class="Function"><⇒≢</a>
|
||
|
||
<a id="≤⇒≯"></a><a id="7796" href="Data.Nat.Properties.html#7796" class="Function">≤⇒≯</a> <a id="7800" class="Symbol">:</a> <a id="7802" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="7806" href="Relation.Binary.Core.html#1263" class="Function Operator">⇒</a> <a id="7808" href="Data.Nat.Base.html#1844" class="Function Operator">_≯_</a>
|
||
<a id="7812" href="Data.Nat.Properties.html#7796" class="Function">≤⇒≯</a> <a id="7816" class="Symbol">(</a><a id="7817" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="7821" href="Data.Nat.Properties.html#7821" class="Bound">m≤n</a><a id="7824" class="Symbol">)</a> <a id="7826" class="Symbol">(</a><a id="7827" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="7831" href="Data.Nat.Properties.html#7831" class="Bound">n≤m</a><a id="7834" class="Symbol">)</a> <a id="7836" class="Symbol">=</a> <a id="7838" href="Data.Nat.Properties.html#7796" class="Function">≤⇒≯</a> <a id="7842" href="Data.Nat.Properties.html#7821" class="Bound">m≤n</a> <a id="7846" href="Data.Nat.Properties.html#7831" class="Bound">n≤m</a>
|
||
|
||
<a id="<⇒≱"></a><a id="7851" href="Data.Nat.Properties.html#7851" class="Function"><⇒≱</a> <a id="7855" class="Symbol">:</a> <a id="7857" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="7861" href="Relation.Binary.Core.html#1263" class="Function Operator">⇒</a> <a id="7863" href="Data.Nat.Base.html#1812" class="Function Operator">_≱_</a>
|
||
<a id="7867" href="Data.Nat.Properties.html#7851" class="Function"><⇒≱</a> <a id="7871" class="Symbol">(</a><a id="7872" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="7876" href="Data.Nat.Properties.html#7876" class="Bound">m+1≤n</a><a id="7881" class="Symbol">)</a> <a id="7883" class="Symbol">(</a><a id="7884" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="7888" href="Data.Nat.Properties.html#7888" class="Bound">n≤m</a><a id="7891" class="Symbol">)</a> <a id="7893" class="Symbol">=</a> <a id="7895" href="Data.Nat.Properties.html#7851" class="Function"><⇒≱</a> <a id="7899" href="Data.Nat.Properties.html#7876" class="Bound">m+1≤n</a> <a id="7905" href="Data.Nat.Properties.html#7888" class="Bound">n≤m</a>
|
||
|
||
<a id="<⇒≯"></a><a id="7910" href="Data.Nat.Properties.html#7910" class="Function"><⇒≯</a> <a id="7914" class="Symbol">:</a> <a id="7916" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="7920" href="Relation.Binary.Core.html#1263" class="Function Operator">⇒</a> <a id="7922" href="Data.Nat.Base.html#1844" class="Function Operator">_≯_</a>
|
||
<a id="7926" href="Data.Nat.Properties.html#7910" class="Function"><⇒≯</a> <a id="7930" class="Symbol">(</a><a id="7931" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="7935" href="Data.Nat.Properties.html#7935" class="Bound">m<n</a><a id="7938" class="Symbol">)</a> <a id="7940" class="Symbol">(</a><a id="7941" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="7945" href="Data.Nat.Properties.html#7945" class="Bound">n<m</a><a id="7948" class="Symbol">)</a> <a id="7950" class="Symbol">=</a> <a id="7952" href="Data.Nat.Properties.html#7910" class="Function"><⇒≯</a> <a id="7956" href="Data.Nat.Properties.html#7935" class="Bound">m<n</a> <a id="7960" href="Data.Nat.Properties.html#7945" class="Bound">n<m</a>
|
||
|
||
<a id="≰⇒≮"></a><a id="7965" href="Data.Nat.Properties.html#7965" class="Function">≰⇒≮</a> <a id="7969" class="Symbol">:</a> <a id="7971" href="Data.Nat.Base.html#1748" class="Function Operator">_≰_</a> <a id="7975" href="Relation.Binary.Core.html#1263" class="Function Operator">⇒</a> <a id="7977" href="Data.Nat.Base.html#1780" class="Function Operator">_≮_</a>
|
||
<a id="7981" href="Data.Nat.Properties.html#7965" class="Function">≰⇒≮</a> <a id="7985" href="Data.Nat.Properties.html#7985" class="Bound">m≰n</a> <a id="7989" href="Data.Nat.Properties.html#7989" class="Bound">1+m≤n</a> <a id="7995" class="Symbol">=</a> <a id="7997" href="Data.Nat.Properties.html#7985" class="Bound">m≰n</a> <a id="8001" class="Symbol">(</a><a id="8002" href="Data.Nat.Properties.html#7658" class="Function"><⇒≤</a> <a id="8006" href="Data.Nat.Properties.html#7989" class="Bound">1+m≤n</a><a id="8011" class="Symbol">)</a>
|
||
|
||
<a id="≰⇒>"></a><a id="8014" href="Data.Nat.Properties.html#8014" class="Function">≰⇒></a> <a id="8018" class="Symbol">:</a> <a id="8020" href="Data.Nat.Base.html#1748" class="Function Operator">_≰_</a> <a id="8024" href="Relation.Binary.Core.html#1263" class="Function Operator">⇒</a> <a id="8026" href="Data.Nat.Base.html#1718" class="Function Operator">_>_</a>
|
||
<a id="8030" href="Data.Nat.Properties.html#8014" class="Function">≰⇒></a> <a id="8034" class="Symbol">{</a><a id="8035" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="8039" class="Symbol">}</a> <a id="8050" href="Data.Nat.Properties.html#8050" class="Bound">z≰n</a> <a id="8054" class="Symbol">=</a> <a id="8056" href="Relation.Nullary.Negation.Core.html#787" class="Function">contradiction</a> <a id="8070" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="8074" href="Data.Nat.Properties.html#8050" class="Bound">z≰n</a>
|
||
<a id="8078" href="Data.Nat.Properties.html#8014" class="Function">≰⇒></a> <a id="8082" class="Symbol">{</a><a id="8083" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="8087" href="Data.Nat.Properties.html#8087" class="Bound">m</a><a id="8088" class="Symbol">}</a> <a id="8090" class="Symbol">{</a><a id="8091" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="8095" class="Symbol">}</a> <a id="8098" class="Symbol">_</a> <a id="8102" class="Symbol">=</a> <a id="8104" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="8108" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="8112" href="Data.Nat.Properties.html#8014" class="Function">≰⇒></a> <a id="8116" class="Symbol">{</a><a id="8117" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="8121" href="Data.Nat.Properties.html#8121" class="Bound">m</a><a id="8122" class="Symbol">}</a> <a id="8124" class="Symbol">{</a><a id="8125" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="8129" href="Data.Nat.Properties.html#8129" class="Bound">n</a><a id="8130" class="Symbol">}</a> <a id="8132" href="Data.Nat.Properties.html#8132" class="Bound">m≰n</a> <a id="8136" class="Symbol">=</a> <a id="8138" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="8142" class="Symbol">(</a><a id="8143" href="Data.Nat.Properties.html#8014" class="Function">≰⇒></a> <a id="8147" class="Symbol">(</a><a id="8148" href="Data.Nat.Properties.html#8132" class="Bound">m≰n</a> <a id="8152" href="Function.Base.html#1040" class="Function Operator">∘</a> <a id="8154" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a><a id="8157" class="Symbol">))</a>
|
||
|
||
<a id="≰⇒≥"></a><a id="8161" href="Data.Nat.Properties.html#8161" class="Function">≰⇒≥</a> <a id="8165" class="Symbol">:</a> <a id="8167" href="Data.Nat.Base.html#1748" class="Function Operator">_≰_</a> <a id="8171" href="Relation.Binary.Core.html#1263" class="Function Operator">⇒</a> <a id="8173" href="Data.Nat.Base.html#1688" class="Function Operator">_≥_</a>
|
||
<a id="8177" href="Data.Nat.Properties.html#8161" class="Function">≰⇒≥</a> <a id="8181" class="Symbol">=</a> <a id="8183" href="Data.Nat.Properties.html#7658" class="Function"><⇒≤</a> <a id="8187" href="Function.Base.html#1040" class="Function Operator">∘</a> <a id="8189" href="Data.Nat.Properties.html#8014" class="Function">≰⇒></a>
|
||
|
||
<a id="≮⇒≥"></a><a id="8194" href="Data.Nat.Properties.html#8194" class="Function">≮⇒≥</a> <a id="8198" class="Symbol">:</a> <a id="8200" href="Data.Nat.Base.html#1780" class="Function Operator">_≮_</a> <a id="8204" href="Relation.Binary.Core.html#1263" class="Function Operator">⇒</a> <a id="8206" href="Data.Nat.Base.html#1688" class="Function Operator">_≥_</a>
|
||
<a id="8210" href="Data.Nat.Properties.html#8194" class="Function">≮⇒≥</a> <a id="8214" class="Symbol">{_}</a> <a id="8222" class="Symbol">{</a><a id="8223" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="8227" class="Symbol">}</a> <a id="8230" class="Symbol">_</a> <a id="8238" class="Symbol">=</a> <a id="8240" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="8244" href="Data.Nat.Properties.html#8194" class="Function">≮⇒≥</a> <a id="8248" class="Symbol">{</a><a id="8249" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="8253" class="Symbol">}</a> <a id="8256" class="Symbol">{</a><a id="8257" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="8261" href="Data.Nat.Properties.html#8261" class="Bound">j</a><a id="8262" class="Symbol">}</a> <a id="8264" href="Data.Nat.Properties.html#8264" class="Bound">1≮j+1</a> <a id="8272" class="Symbol">=</a> <a id="8274" href="Relation.Nullary.Negation.Core.html#787" class="Function">contradiction</a> <a id="8288" class="Symbol">(</a><a id="8289" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="8293" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a><a id="8296" class="Symbol">)</a> <a id="8298" href="Data.Nat.Properties.html#8264" class="Bound">1≮j+1</a>
|
||
<a id="8304" href="Data.Nat.Properties.html#8194" class="Function">≮⇒≥</a> <a id="8308" class="Symbol">{</a><a id="8309" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="8313" href="Data.Nat.Properties.html#8313" class="Bound">i</a><a id="8314" class="Symbol">}</a> <a id="8316" class="Symbol">{</a><a id="8317" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="8321" href="Data.Nat.Properties.html#8321" class="Bound">j</a><a id="8322" class="Symbol">}</a> <a id="8324" href="Data.Nat.Properties.html#8324" class="Bound">i+1≮j+1</a> <a id="8332" class="Symbol">=</a> <a id="8334" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="8338" class="Symbol">(</a><a id="8339" href="Data.Nat.Properties.html#8194" class="Function">≮⇒≥</a> <a id="8343" class="Symbol">(</a><a id="8344" href="Data.Nat.Properties.html#8324" class="Bound">i+1≮j+1</a> <a id="8352" href="Function.Base.html#1040" class="Function Operator">∘</a> <a id="8354" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a><a id="8357" class="Symbol">))</a>
|
||
|
||
<a id="≤∧≢⇒<"></a><a id="8361" href="Data.Nat.Properties.html#8361" class="Function">≤∧≢⇒<</a> <a id="8367" class="Symbol">:</a> <a id="8369" class="Symbol">∀</a> <a id="8371" class="Symbol">{</a><a id="8372" href="Data.Nat.Properties.html#8372" class="Bound">m</a> <a id="8374" href="Data.Nat.Properties.html#8374" class="Bound">n</a><a id="8375" class="Symbol">}</a> <a id="8377" class="Symbol">→</a> <a id="8379" href="Data.Nat.Properties.html#8372" class="Bound">m</a> <a id="8381" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="8383" href="Data.Nat.Properties.html#8374" class="Bound">n</a> <a id="8385" class="Symbol">→</a> <a id="8387" href="Data.Nat.Properties.html#8372" class="Bound">m</a> <a id="8389" href="Relation.Binary.PropositionalEquality.Core.html#839" class="Function Operator">≢</a> <a id="8391" href="Data.Nat.Properties.html#8374" class="Bound">n</a> <a id="8393" class="Symbol">→</a> <a id="8395" href="Data.Nat.Properties.html#8372" class="Bound">m</a> <a id="8397" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="8399" href="Data.Nat.Properties.html#8374" class="Bound">n</a>
|
||
<a id="8401" href="Data.Nat.Properties.html#8361" class="Function">≤∧≢⇒<</a> <a id="8407" class="Symbol">{_}</a> <a id="8411" class="Symbol">{</a><a id="8412" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="8416" class="Symbol">}</a> <a id="8419" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="8429" href="Data.Nat.Properties.html#8429" class="Bound">m≢n</a> <a id="8437" class="Symbol">=</a> <a id="8439" href="Relation.Nullary.Negation.Core.html#787" class="Function">contradiction</a> <a id="8453" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="8458" href="Data.Nat.Properties.html#8429" class="Bound">m≢n</a>
|
||
<a id="8462" href="Data.Nat.Properties.html#8361" class="Function">≤∧≢⇒<</a> <a id="8468" class="Symbol">{_}</a> <a id="8472" class="Symbol">{</a><a id="8473" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="8477" href="Data.Nat.Properties.html#8477" class="Bound">n</a><a id="8478" class="Symbol">}</a> <a id="8480" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="8490" href="Data.Nat.Properties.html#8490" class="Bound">m≢n</a> <a id="8498" class="Symbol">=</a> <a id="8500" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="8504" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="8508" href="Data.Nat.Properties.html#8361" class="Function">≤∧≢⇒<</a> <a id="8514" class="Symbol">{_}</a> <a id="8518" class="Symbol">{</a><a id="8519" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="8523" href="Data.Nat.Properties.html#8523" class="Bound">n</a><a id="8524" class="Symbol">}</a> <a id="8526" class="Symbol">(</a><a id="8527" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="8531" href="Data.Nat.Properties.html#8531" class="Bound">m≤n</a><a id="8534" class="Symbol">)</a> <a id="8536" href="Data.Nat.Properties.html#8536" class="Bound">1+m≢1+n</a> <a id="8544" class="Symbol">=</a>
|
||
<a id="8548" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="8552" class="Symbol">(</a><a id="8553" href="Data.Nat.Properties.html#8361" class="Function">≤∧≢⇒<</a> <a id="8559" href="Data.Nat.Properties.html#8531" class="Bound">m≤n</a> <a id="8563" class="Symbol">(</a><a id="8564" href="Data.Nat.Properties.html#8536" class="Bound">1+m≢1+n</a> <a id="8572" href="Function.Base.html#1040" class="Function Operator">∘</a> <a id="8574" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="8579" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a><a id="8582" class="Symbol">))</a>
|
||
|
||
<a id="≤∧≮⇒≡"></a><a id="8586" href="Data.Nat.Properties.html#8586" class="Function">≤∧≮⇒≡</a> <a id="8592" class="Symbol">:</a> <a id="8594" class="Symbol">∀</a> <a id="8596" class="Symbol">{</a><a id="8597" href="Data.Nat.Properties.html#8597" class="Bound">m</a> <a id="8599" href="Data.Nat.Properties.html#8599" class="Bound">n</a><a id="8600" class="Symbol">}</a> <a id="8602" class="Symbol">→</a> <a id="8604" href="Data.Nat.Properties.html#8597" class="Bound">m</a> <a id="8606" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="8608" href="Data.Nat.Properties.html#8599" class="Bound">n</a> <a id="8610" class="Symbol">→</a> <a id="8612" href="Data.Nat.Properties.html#8597" class="Bound">m</a> <a id="8614" href="Data.Nat.Base.html#1780" class="Function Operator">≮</a> <a id="8616" href="Data.Nat.Properties.html#8599" class="Bound">n</a> <a id="8618" class="Symbol">→</a> <a id="8620" href="Data.Nat.Properties.html#8597" class="Bound">m</a> <a id="8622" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="8624" href="Data.Nat.Properties.html#8599" class="Bound">n</a>
|
||
<a id="8626" href="Data.Nat.Properties.html#8586" class="Function">≤∧≮⇒≡</a> <a id="8632" href="Data.Nat.Properties.html#8632" class="Bound">m≤n</a> <a id="8636" href="Data.Nat.Properties.html#8636" class="Bound">m≮n</a> <a id="8640" class="Symbol">=</a> <a id="8642" href="Data.Nat.Properties.html#4624" class="Function">≤-antisym</a> <a id="8652" href="Data.Nat.Properties.html#8632" class="Bound">m≤n</a> <a id="8656" class="Symbol">(</a><a id="8657" href="Data.Nat.Properties.html#8194" class="Function">≮⇒≥</a> <a id="8661" href="Data.Nat.Properties.html#8636" class="Bound">m≮n</a><a id="8664" class="Symbol">)</a>
|
||
|
||
<a id="≤-<-connex"></a><a id="8667" href="Data.Nat.Properties.html#8667" class="Function">≤-<-connex</a> <a id="8678" class="Symbol">:</a> <a id="8680" href="Relation.Binary.Definitions.html#2502" class="Function">Connex</a> <a id="8687" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="8691" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a>
|
||
<a id="8695" href="Data.Nat.Properties.html#8667" class="Function">≤-<-connex</a> <a id="8706" href="Data.Nat.Properties.html#8706" class="Bound">m</a> <a id="8708" href="Data.Nat.Properties.html#8708" class="Bound">n</a> <a id="8710" class="Keyword">with</a> <a id="8715" href="Data.Nat.Properties.html#8706" class="Bound">m</a> <a id="8717" href="Data.Nat.Properties.html#5527" class="Function Operator">≤?</a> <a id="8720" href="Data.Nat.Properties.html#8708" class="Bound">n</a>
|
||
<a id="8722" class="Symbol">...</a> <a id="8726" class="Symbol">|</a> <a id="8728" href="Relation.Nullary.html#1657" class="InductiveConstructor">yes</a> <a id="8732" href="Data.Nat.Properties.html#8732" class="Bound">m≤n</a> <a id="8736" class="Symbol">=</a> <a id="8738" href="Data.Sum.Base.html#793" class="InductiveConstructor">inj₁</a> <a id="8743" href="Data.Nat.Properties.html#8732" class="Bound">m≤n</a>
|
||
<a id="8747" class="Symbol">...</a> <a id="8751" class="Symbol">|</a> <a id="8753" href="Relation.Nullary.html#1694" class="InductiveConstructor">no</a> <a id="8756" href="Data.Nat.Properties.html#8756" class="Bound">¬m≤n</a> <a id="8761" class="Symbol">=</a> <a id="8763" href="Data.Sum.Base.html#818" class="InductiveConstructor">inj₂</a> <a id="8768" class="Symbol">(</a><a id="8769" href="Data.Nat.Properties.html#8014" class="Function">≰⇒></a> <a id="8773" href="Data.Nat.Properties.html#8756" class="Bound">¬m≤n</a><a id="8777" class="Symbol">)</a>
|
||
|
||
<a id="≥->-connex"></a><a id="8780" href="Data.Nat.Properties.html#8780" class="Function">≥->-connex</a> <a id="8791" class="Symbol">:</a> <a id="8793" href="Relation.Binary.Definitions.html#2502" class="Function">Connex</a> <a id="8800" href="Data.Nat.Base.html#1688" class="Function Operator">_≥_</a> <a id="8804" href="Data.Nat.Base.html#1718" class="Function Operator">_>_</a>
|
||
<a id="8808" href="Data.Nat.Properties.html#8780" class="Function">≥->-connex</a> <a id="8819" class="Symbol">=</a> <a id="8821" href="Function.Base.html#1563" class="Function">flip</a> <a id="8826" href="Data.Nat.Properties.html#8667" class="Function">≤-<-connex</a>
|
||
|
||
<a id="<-≤-connex"></a><a id="8838" href="Data.Nat.Properties.html#8838" class="Function"><-≤-connex</a> <a id="8849" class="Symbol">:</a> <a id="8851" href="Relation.Binary.Definitions.html#2502" class="Function">Connex</a> <a id="8858" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="8862" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="8866" href="Data.Nat.Properties.html#8838" class="Function"><-≤-connex</a> <a id="8877" class="Symbol">=</a> <a id="8879" href="Relation.Binary.Consequences.html#6269" class="Function">flip-Connex</a> <a id="8891" href="Data.Nat.Properties.html#8667" class="Function">≤-<-connex</a>
|
||
|
||
<a id=">-≥-connex"></a><a id="8903" href="Data.Nat.Properties.html#8903" class="Function">>-≥-connex</a> <a id="8914" class="Symbol">:</a> <a id="8916" href="Relation.Binary.Definitions.html#2502" class="Function">Connex</a> <a id="8923" href="Data.Nat.Base.html#1718" class="Function Operator">_>_</a> <a id="8927" href="Data.Nat.Base.html#1688" class="Function Operator">_≥_</a>
|
||
<a id="8931" href="Data.Nat.Properties.html#8903" class="Function">>-≥-connex</a> <a id="8942" class="Symbol">=</a> <a id="8944" href="Relation.Binary.Consequences.html#6269" class="Function">flip-Connex</a> <a id="8956" href="Data.Nat.Properties.html#8780" class="Function">≥->-connex</a>
|
||
|
||
<a id="8968" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="9041" class="Comment">-- Relational properties of _<_</a>
|
||
|
||
<a id="<-irrefl"></a><a id="9074" href="Data.Nat.Properties.html#9074" class="Function"><-irrefl</a> <a id="9083" class="Symbol">:</a> <a id="9085" href="Relation.Binary.Definitions.html#2250" class="Function">Irreflexive</a> <a id="9097" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a> <a id="9101" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a>
|
||
<a id="9105" href="Data.Nat.Properties.html#9074" class="Function"><-irrefl</a> <a id="9114" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="9119" class="Symbol">(</a><a id="9120" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="9124" href="Data.Nat.Properties.html#9124" class="Bound">n<n</a><a id="9127" class="Symbol">)</a> <a id="9129" class="Symbol">=</a> <a id="9131" href="Data.Nat.Properties.html#9074" class="Function"><-irrefl</a> <a id="9140" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="9145" href="Data.Nat.Properties.html#9124" class="Bound">n<n</a>
|
||
|
||
<a id="<-asym"></a><a id="9150" href="Data.Nat.Properties.html#9150" class="Function"><-asym</a> <a id="9157" class="Symbol">:</a> <a id="9159" href="Relation.Binary.Definitions.html#2362" class="Function">Asymmetric</a> <a id="9170" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a>
|
||
<a id="9174" href="Data.Nat.Properties.html#9150" class="Function"><-asym</a> <a id="9181" class="Symbol">(</a><a id="9182" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="9186" href="Data.Nat.Properties.html#9186" class="Bound">n<m</a><a id="9189" class="Symbol">)</a> <a id="9191" class="Symbol">(</a><a id="9192" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="9196" href="Data.Nat.Properties.html#9196" class="Bound">m<n</a><a id="9199" class="Symbol">)</a> <a id="9201" class="Symbol">=</a> <a id="9203" href="Data.Nat.Properties.html#9150" class="Function"><-asym</a> <a id="9210" href="Data.Nat.Properties.html#9186" class="Bound">n<m</a> <a id="9214" href="Data.Nat.Properties.html#9196" class="Bound">m<n</a>
|
||
|
||
<a id="<-trans"></a><a id="9219" href="Data.Nat.Properties.html#9219" class="Function"><-trans</a> <a id="9227" class="Symbol">:</a> <a id="9229" href="Relation.Binary.Definitions.html#1875" class="Function">Transitive</a> <a id="9240" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a>
|
||
<a id="9244" href="Data.Nat.Properties.html#9219" class="Function"><-trans</a> <a id="9252" class="Symbol">(</a><a id="9253" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="9257" href="Data.Nat.Properties.html#9257" class="Bound">i≤j</a><a id="9260" class="Symbol">)</a> <a id="9262" class="Symbol">(</a><a id="9263" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="9267" href="Data.Nat.Properties.html#9267" class="Bound">j<k</a><a id="9270" class="Symbol">)</a> <a id="9272" class="Symbol">=</a> <a id="9274" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="9278" class="Symbol">(</a><a id="9279" href="Data.Nat.Properties.html#4757" class="Function">≤-trans</a> <a id="9287" href="Data.Nat.Properties.html#9257" class="Bound">i≤j</a> <a id="9291" class="Symbol">(</a><a id="9292" href="Data.Nat.Properties.html#4757" class="Function">≤-trans</a> <a id="9300" class="Symbol">(</a><a id="9301" href="Data.Nat.Properties.html#7288" class="Function">n≤1+n</a> <a id="9307" class="Symbol">_)</a> <a id="9310" href="Data.Nat.Properties.html#9267" class="Bound">j<k</a><a id="9313" class="Symbol">))</a>
|
||
|
||
<a id="<-transʳ"></a><a id="9317" href="Data.Nat.Properties.html#9317" class="Function"><-transʳ</a> <a id="9326" class="Symbol">:</a> <a id="9328" href="Relation.Binary.Definitions.html#1594" class="Function">Trans</a> <a id="9334" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="9338" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="9342" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a>
|
||
<a id="9346" href="Data.Nat.Properties.html#9317" class="Function"><-transʳ</a> <a id="9355" href="Data.Nat.Properties.html#9355" class="Bound">m≤n</a> <a id="9359" class="Symbol">(</a><a id="9360" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="9364" href="Data.Nat.Properties.html#9364" class="Bound">n≤o</a><a id="9367" class="Symbol">)</a> <a id="9369" class="Symbol">=</a> <a id="9371" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="9375" class="Symbol">(</a><a id="9376" href="Data.Nat.Properties.html#4757" class="Function">≤-trans</a> <a id="9384" href="Data.Nat.Properties.html#9355" class="Bound">m≤n</a> <a id="9388" href="Data.Nat.Properties.html#9364" class="Bound">n≤o</a><a id="9391" class="Symbol">)</a>
|
||
|
||
<a id="<-transˡ"></a><a id="9394" href="Data.Nat.Properties.html#9394" class="Function"><-transˡ</a> <a id="9403" class="Symbol">:</a> <a id="9405" href="Relation.Binary.Definitions.html#1594" class="Function">Trans</a> <a id="9411" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="9415" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="9419" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a>
|
||
<a id="9423" href="Data.Nat.Properties.html#9394" class="Function"><-transˡ</a> <a id="9432" class="Symbol">(</a><a id="9433" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="9437" href="Data.Nat.Properties.html#9437" class="Bound">m≤n</a><a id="9440" class="Symbol">)</a> <a id="9442" class="Symbol">(</a><a id="9443" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="9447" href="Data.Nat.Properties.html#9447" class="Bound">n≤o</a><a id="9450" class="Symbol">)</a> <a id="9452" class="Symbol">=</a> <a id="9454" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="9458" class="Symbol">(</a><a id="9459" href="Data.Nat.Properties.html#4757" class="Function">≤-trans</a> <a id="9467" href="Data.Nat.Properties.html#9437" class="Bound">m≤n</a> <a id="9471" href="Data.Nat.Properties.html#9447" class="Bound">n≤o</a><a id="9474" class="Symbol">)</a>
|
||
|
||
<a id="9477" class="Comment">-- NB: we use the builtin function `_<ᵇ_` here so that the function</a>
|
||
<a id="9545" class="Comment">-- quickly decides which constructor to return. It still takes a</a>
|
||
<a id="9610" class="Comment">-- linear amount of time to generate the proof if it is inspected.</a>
|
||
<a id="9677" class="Comment">-- We expect the main benefit to be visible in compiled code as the</a>
|
||
<a id="9745" class="Comment">-- backend erases proofs.</a>
|
||
|
||
<a id="<-cmp"></a><a id="9772" href="Data.Nat.Properties.html#9772" class="Function"><-cmp</a> <a id="9778" class="Symbol">:</a> <a id="9780" href="Relation.Binary.Definitions.html#2964" class="Function">Trichotomous</a> <a id="9793" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a> <a id="9797" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a>
|
||
<a id="9801" href="Data.Nat.Properties.html#9772" class="Function"><-cmp</a> <a id="9807" href="Data.Nat.Properties.html#9807" class="Bound">m</a> <a id="9809" href="Data.Nat.Properties.html#9809" class="Bound">n</a> <a id="9811" class="Keyword">with</a> <a id="9816" href="Data.Nat.Properties.html#9807" class="Bound">m</a> <a id="9818" href="Data.Nat.Properties.html#2538" class="Function Operator">≟</a> <a id="9820" href="Data.Nat.Properties.html#9809" class="Bound">n</a> <a id="9822" class="Symbol">|</a> <a id="9824" href="Data.Bool.Properties.html#15479" class="Function">T?</a> <a id="9827" class="Symbol">(</a><a id="9828" href="Data.Nat.Properties.html#9807" class="Bound">m</a> <a id="9830" href="Data.Nat.Base.html#1310" class="Primitive Operator"><ᵇ</a> <a id="9833" href="Data.Nat.Properties.html#9809" class="Bound">n</a><a id="9834" class="Symbol">)</a>
|
||
<a id="9836" class="Symbol">...</a> <a id="9840" class="Symbol">|</a> <a id="9842" href="Relation.Nullary.html#1657" class="InductiveConstructor">yes</a> <a id="9846" href="Data.Nat.Properties.html#9846" class="Bound">m≡n</a> <a id="9850" class="Symbol">|</a> <a id="9852" class="Symbol">_</a> <a id="9860" class="Symbol">=</a> <a id="9862" href="Relation.Binary.Definitions.html#2841" class="InductiveConstructor">tri≈</a> <a id="9867" class="Symbol">(</a><a id="9868" href="Data.Nat.Properties.html#9074" class="Function"><-irrefl</a> <a id="9877" href="Data.Nat.Properties.html#9846" class="Bound">m≡n</a><a id="9880" class="Symbol">)</a> <a id="9882" href="Data.Nat.Properties.html#9846" class="Bound">m≡n</a> <a id="9886" class="Symbol">(</a><a id="9887" href="Data.Nat.Properties.html#9074" class="Function"><-irrefl</a> <a id="9896" class="Symbol">(</a><a id="9897" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="9901" href="Data.Nat.Properties.html#9846" class="Bound">m≡n</a><a id="9904" class="Symbol">))</a>
|
||
<a id="9907" class="Symbol">...</a> <a id="9911" class="Symbol">|</a> <a id="9913" href="Relation.Nullary.html#1694" class="InductiveConstructor">no</a> <a id="9917" href="Data.Nat.Properties.html#9917" class="Bound">m≢n</a> <a id="9921" class="Symbol">|</a> <a id="9923" href="Relation.Nullary.html#1657" class="InductiveConstructor">yes</a> <a id="9927" href="Data.Nat.Properties.html#9927" class="Bound">m<n</a> <a id="9931" class="Symbol">=</a> <a id="9933" href="Relation.Binary.Definitions.html#2787" class="InductiveConstructor">tri<</a> <a id="9938" class="Symbol">(</a><a id="9939" href="Data.Nat.Properties.html#3376" class="Function"><ᵇ⇒<</a> <a id="9944" class="Bound">m</a> <a id="9946" class="Bound">n</a> <a id="9948" href="Data.Nat.Properties.html#9927" class="Bound">m<n</a><a id="9951" class="Symbol">)</a> <a id="9953" href="Data.Nat.Properties.html#9917" class="Bound">m≢n</a> <a id="9957" class="Symbol">(</a><a id="9958" href="Data.Nat.Properties.html#7910" class="Function"><⇒≯</a> <a id="9962" class="Symbol">(</a><a id="9963" href="Data.Nat.Properties.html#3376" class="Function"><ᵇ⇒<</a> <a id="9968" class="Bound">m</a> <a id="9970" class="Bound">n</a> <a id="9972" href="Data.Nat.Properties.html#9927" class="Bound">m<n</a><a id="9975" class="Symbol">))</a>
|
||
<a id="9978" class="Symbol">...</a> <a id="9982" class="Symbol">|</a> <a id="9984" href="Relation.Nullary.html#1694" class="InductiveConstructor">no</a> <a id="9988" href="Data.Nat.Properties.html#9988" class="Bound">m≢n</a> <a id="9992" class="Symbol">|</a> <a id="9994" href="Relation.Nullary.html#1694" class="InductiveConstructor">no</a> <a id="9998" href="Data.Nat.Properties.html#9998" class="Bound">m≮n</a> <a id="10002" class="Symbol">=</a> <a id="10004" href="Relation.Binary.Definitions.html#2895" class="InductiveConstructor">tri></a> <a id="10009" class="Symbol">(</a><a id="10010" href="Data.Nat.Properties.html#9998" class="Bound">m≮n</a> <a id="10014" href="Function.Base.html#1040" class="Function Operator">∘</a> <a id="10016" href="Data.Nat.Properties.html#3492" class="Function"><⇒<ᵇ</a><a id="10020" class="Symbol">)</a> <a id="10024" href="Data.Nat.Properties.html#9988" class="Bound">m≢n</a> <a id="10028" class="Symbol">(</a><a id="10029" href="Data.Nat.Properties.html#8361" class="Function">≤∧≢⇒<</a> <a id="10035" class="Symbol">(</a><a id="10036" href="Data.Nat.Properties.html#8194" class="Function">≮⇒≥</a> <a id="10040" class="Symbol">(</a><a id="10041" href="Data.Nat.Properties.html#9998" class="Bound">m≮n</a> <a id="10045" href="Function.Base.html#1040" class="Function Operator">∘</a> <a id="10047" href="Data.Nat.Properties.html#3492" class="Function"><⇒<ᵇ</a><a id="10051" class="Symbol">))</a> <a id="10054" class="Symbol">(</a><a id="10055" href="Data.Nat.Properties.html#9988" class="Bound">m≢n</a> <a id="10059" href="Function.Base.html#1040" class="Function Operator">∘</a> <a id="10061" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a><a id="10064" class="Symbol">))</a>
|
||
|
||
<a id="10068" class="Keyword">infix</a> <a id="10074" class="Number">4</a> <a id="10076" href="Data.Nat.Properties.html#10087" class="Function Operator">_<?_</a> <a id="10081" href="Data.Nat.Properties.html#10129" class="Function Operator">_>?_</a>
|
||
|
||
<a id="_<?_"></a><a id="10087" href="Data.Nat.Properties.html#10087" class="Function Operator">_<?_</a> <a id="10092" class="Symbol">:</a> <a id="10094" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="10104" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a>
|
||
<a id="10108" href="Data.Nat.Properties.html#10108" class="Bound">m</a> <a id="10110" href="Data.Nat.Properties.html#10087" class="Function Operator"><?</a> <a id="10113" href="Data.Nat.Properties.html#10113" class="Bound">n</a> <a id="10115" class="Symbol">=</a> <a id="10117" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="10121" href="Data.Nat.Properties.html#10108" class="Bound">m</a> <a id="10123" href="Data.Nat.Properties.html#5527" class="Function Operator">≤?</a> <a id="10126" href="Data.Nat.Properties.html#10113" class="Bound">n</a>
|
||
|
||
<a id="_>?_"></a><a id="10129" href="Data.Nat.Properties.html#10129" class="Function Operator">_>?_</a> <a id="10134" class="Symbol">:</a> <a id="10136" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="10146" href="Data.Nat.Base.html#1718" class="Function Operator">_>_</a>
|
||
<a id="10150" href="Data.Nat.Properties.html#10129" class="Function Operator">_>?_</a> <a id="10155" class="Symbol">=</a> <a id="10157" href="Function.Base.html#1563" class="Function">flip</a> <a id="10162" href="Data.Nat.Properties.html#10087" class="Function Operator">_<?_</a>
|
||
|
||
<a id="<-irrelevant"></a><a id="10168" href="Data.Nat.Properties.html#10168" class="Function"><-irrelevant</a> <a id="10181" class="Symbol">:</a> <a id="10183" href="Relation.Binary.Definitions.html#5074" class="Function">Irrelevant</a> <a id="10194" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a>
|
||
<a id="10198" href="Data.Nat.Properties.html#10168" class="Function"><-irrelevant</a> <a id="10211" class="Symbol">=</a> <a id="10213" href="Data.Nat.Properties.html#5065" class="Function">≤-irrelevant</a>
|
||
|
||
<a id="<-resp₂-≡"></a><a id="10227" href="Data.Nat.Properties.html#10227" class="Function"><-resp₂-≡</a> <a id="10237" class="Symbol">:</a> <a id="10239" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="10243" href="Relation.Binary.Definitions.html#4086" class="Function Operator">Respects₂</a> <a id="10253" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a>
|
||
<a id="10257" href="Data.Nat.Properties.html#10227" class="Function"><-resp₂-≡</a> <a id="10267" class="Symbol">=</a> <a id="10269" href="Relation.Binary.PropositionalEquality.Core.html#1789" class="Function">subst</a> <a id="10275" class="Symbol">(_</a> <a id="10278" href="Data.Nat.Base.html#1654" class="Function Operator"><_</a><a id="10280" class="Symbol">)</a> <a id="10282" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="10284" href="Relation.Binary.PropositionalEquality.Core.html#1789" class="Function">subst</a> <a id="10290" class="Symbol">(</a><a id="10291" href="Data.Nat.Base.html#1654" class="Function Operator">_<</a> <a id="10294" class="Symbol">_)</a>
|
||
|
||
<a id="10298" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="10371" class="Comment">-- Bundles</a>
|
||
|
||
<a id="<-isStrictPartialOrder"></a><a id="10383" href="Data.Nat.Properties.html#10383" class="Function"><-isStrictPartialOrder</a> <a id="10406" class="Symbol">:</a> <a id="10408" href="Relation.Binary.Structures.html#3959" class="Record">IsStrictPartialOrder</a> <a id="10429" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a> <a id="10433" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a>
|
||
<a id="10437" href="Data.Nat.Properties.html#10383" class="Function"><-isStrictPartialOrder</a> <a id="10460" class="Symbol">=</a> <a id="10462" class="Keyword">record</a>
|
||
<a id="10471" class="Symbol">{</a> <a id="10473" href="Relation.Binary.Structures.html#4034" class="Field">isEquivalence</a> <a id="10487" class="Symbol">=</a> <a id="10489" href="Relation.Binary.PropositionalEquality.Properties.html#3436" class="Function">isEquivalence</a>
|
||
<a id="10505" class="Symbol">;</a> <a id="10507" href="Relation.Binary.Structures.html#4068" class="Field">irrefl</a> <a id="10521" class="Symbol">=</a> <a id="10523" href="Data.Nat.Properties.html#9074" class="Function"><-irrefl</a>
|
||
<a id="10534" class="Symbol">;</a> <a id="10536" href="Relation.Binary.Structures.html#4108" class="Field">trans</a> <a id="10550" class="Symbol">=</a> <a id="10552" href="Data.Nat.Properties.html#9219" class="Function"><-trans</a>
|
||
<a id="10562" class="Symbol">;</a> <a id="10564" href="Relation.Binary.Structures.html#4143" class="Field"><-resp-≈</a> <a id="10578" class="Symbol">=</a> <a id="10580" href="Data.Nat.Properties.html#10227" class="Function"><-resp₂-≡</a>
|
||
<a id="10592" class="Symbol">}</a>
|
||
|
||
<a id="<-isStrictTotalOrder"></a><a id="10595" href="Data.Nat.Properties.html#10595" class="Function"><-isStrictTotalOrder</a> <a id="10616" class="Symbol">:</a> <a id="10618" href="Relation.Binary.Structures.html#6548" class="Record">IsStrictTotalOrder</a> <a id="10637" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a> <a id="10641" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a>
|
||
<a id="10645" href="Data.Nat.Properties.html#10595" class="Function"><-isStrictTotalOrder</a> <a id="10666" class="Symbol">=</a> <a id="10668" class="Keyword">record</a>
|
||
<a id="10677" class="Symbol">{</a> <a id="10679" href="Relation.Binary.Structures.html#6621" class="Field">isEquivalence</a> <a id="10693" class="Symbol">=</a> <a id="10695" href="Relation.Binary.PropositionalEquality.Properties.html#3436" class="Function">isEquivalence</a>
|
||
<a id="10711" class="Symbol">;</a> <a id="10713" href="Relation.Binary.Structures.html#6655" class="Field">trans</a> <a id="10727" class="Symbol">=</a> <a id="10729" href="Data.Nat.Properties.html#9219" class="Function"><-trans</a>
|
||
<a id="10739" class="Symbol">;</a> <a id="10741" href="Relation.Binary.Structures.html#6690" class="Field">compare</a> <a id="10755" class="Symbol">=</a> <a id="10757" href="Data.Nat.Properties.html#9772" class="Function"><-cmp</a>
|
||
<a id="10765" class="Symbol">}</a>
|
||
|
||
<a id="<-strictPartialOrder"></a><a id="10768" href="Data.Nat.Properties.html#10768" class="Function"><-strictPartialOrder</a> <a id="10789" class="Symbol">:</a> <a id="10791" href="Relation.Binary.Bundles.html#4117" class="Record">StrictPartialOrder</a> <a id="10810" href="Level.html#521" class="Function">0ℓ</a> <a id="10813" href="Level.html#521" class="Function">0ℓ</a> <a id="10816" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="10819" href="Data.Nat.Properties.html#10768" class="Function"><-strictPartialOrder</a> <a id="10840" class="Symbol">=</a> <a id="10842" class="Keyword">record</a>
|
||
<a id="10851" class="Symbol">{</a> <a id="10853" href="Relation.Binary.Bundles.html#4323" class="Field">isStrictPartialOrder</a> <a id="10874" class="Symbol">=</a> <a id="10876" href="Data.Nat.Properties.html#10383" class="Function"><-isStrictPartialOrder</a>
|
||
<a id="10901" class="Symbol">}</a>
|
||
|
||
<a id="<-strictTotalOrder"></a><a id="10904" href="Data.Nat.Properties.html#10904" class="Function"><-strictTotalOrder</a> <a id="10923" class="Symbol">:</a> <a id="10925" href="Relation.Binary.Bundles.html#6937" class="Record">StrictTotalOrder</a> <a id="10942" href="Level.html#521" class="Function">0ℓ</a> <a id="10945" href="Level.html#521" class="Function">0ℓ</a> <a id="10948" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="10951" href="Data.Nat.Properties.html#10904" class="Function"><-strictTotalOrder</a> <a id="10970" class="Symbol">=</a> <a id="10972" class="Keyword">record</a>
|
||
<a id="10981" class="Symbol">{</a> <a id="10983" href="Relation.Binary.Bundles.html#7135" class="Field">isStrictTotalOrder</a> <a id="11002" class="Symbol">=</a> <a id="11004" href="Data.Nat.Properties.html#10595" class="Function"><-isStrictTotalOrder</a>
|
||
<a id="11027" class="Symbol">}</a>
|
||
|
||
<a id="11030" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="11103" class="Comment">-- Other properties of _<_</a>
|
||
|
||
<a id="n≮n"></a><a id="11131" href="Data.Nat.Properties.html#11131" class="Function">n≮n</a> <a id="11135" class="Symbol">:</a> <a id="11137" class="Symbol">∀</a> <a id="11139" href="Data.Nat.Properties.html#11139" class="Bound">n</a> <a id="11141" class="Symbol">→</a> <a id="11143" href="Data.Nat.Properties.html#11139" class="Bound">n</a> <a id="11145" href="Data.Nat.Base.html#1780" class="Function Operator">≮</a> <a id="11147" href="Data.Nat.Properties.html#11139" class="Bound">n</a>
|
||
<a id="11149" href="Data.Nat.Properties.html#11131" class="Function">n≮n</a> <a id="11153" href="Data.Nat.Properties.html#11153" class="Bound">n</a> <a id="11155" class="Symbol">=</a> <a id="11157" href="Data.Nat.Properties.html#9074" class="Function"><-irrefl</a> <a id="11166" class="Symbol">(</a><a id="11167" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="11172" class="Symbol">{</a><a id="11173" class="Argument">x</a> <a id="11175" class="Symbol">=</a> <a id="11177" href="Data.Nat.Properties.html#11153" class="Bound">n</a><a id="11178" class="Symbol">})</a>
|
||
|
||
<a id="0<1+n"></a><a id="11182" href="Data.Nat.Properties.html#11182" class="Function">0<1+n</a> <a id="11188" class="Symbol">:</a> <a id="11190" class="Symbol">∀</a> <a id="11192" class="Symbol">{</a><a id="11193" href="Data.Nat.Properties.html#11193" class="Bound">n</a><a id="11194" class="Symbol">}</a> <a id="11196" class="Symbol">→</a> <a id="11198" class="Number">0</a> <a id="11200" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="11202" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="11206" href="Data.Nat.Properties.html#11193" class="Bound">n</a>
|
||
<a id="11208" href="Data.Nat.Properties.html#11182" class="Function">0<1+n</a> <a id="11214" class="Symbol">=</a> <a id="11216" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="11220" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
|
||
<a id="n<1+n"></a><a id="11225" href="Data.Nat.Properties.html#11225" class="Function">n<1+n</a> <a id="11231" class="Symbol">:</a> <a id="11233" class="Symbol">∀</a> <a id="11235" href="Data.Nat.Properties.html#11235" class="Bound">n</a> <a id="11237" class="Symbol">→</a> <a id="11239" href="Data.Nat.Properties.html#11235" class="Bound">n</a> <a id="11241" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="11243" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="11247" href="Data.Nat.Properties.html#11235" class="Bound">n</a>
|
||
<a id="11249" href="Data.Nat.Properties.html#11225" class="Function">n<1+n</a> <a id="11255" href="Data.Nat.Properties.html#11255" class="Bound">n</a> <a id="11257" class="Symbol">=</a> <a id="11259" href="Data.Nat.Properties.html#4574" class="Function">≤-refl</a>
|
||
|
||
<a id="n<1⇒n≡0"></a><a id="11267" href="Data.Nat.Properties.html#11267" class="Function">n<1⇒n≡0</a> <a id="11275" class="Symbol">:</a> <a id="11277" class="Symbol">∀</a> <a id="11279" class="Symbol">{</a><a id="11280" href="Data.Nat.Properties.html#11280" class="Bound">n</a><a id="11281" class="Symbol">}</a> <a id="11283" class="Symbol">→</a> <a id="11285" href="Data.Nat.Properties.html#11280" class="Bound">n</a> <a id="11287" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="11289" class="Number">1</a> <a id="11291" class="Symbol">→</a> <a id="11293" href="Data.Nat.Properties.html#11280" class="Bound">n</a> <a id="11295" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="11297" class="Number">0</a>
|
||
<a id="11299" href="Data.Nat.Properties.html#11267" class="Function">n<1⇒n≡0</a> <a id="11307" class="Symbol">(</a><a id="11308" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="11312" href="Data.Nat.Properties.html#11312" class="Bound">n≤0</a><a id="11315" class="Symbol">)</a> <a id="11317" class="Symbol">=</a> <a id="11319" href="Data.Nat.Properties.html#7390" class="Function">n≤0⇒n≡0</a> <a id="11327" href="Data.Nat.Properties.html#11312" class="Bound">n≤0</a>
|
||
|
||
<a id="n≢0⇒n>0"></a><a id="11332" href="Data.Nat.Properties.html#11332" class="Function">n≢0⇒n>0</a> <a id="11340" class="Symbol">:</a> <a id="11342" class="Symbol">∀</a> <a id="11344" class="Symbol">{</a><a id="11345" href="Data.Nat.Properties.html#11345" class="Bound">n</a><a id="11346" class="Symbol">}</a> <a id="11348" class="Symbol">→</a> <a id="11350" href="Data.Nat.Properties.html#11345" class="Bound">n</a> <a id="11352" href="Relation.Binary.PropositionalEquality.Core.html#839" class="Function Operator">≢</a> <a id="11354" class="Number">0</a> <a id="11356" class="Symbol">→</a> <a id="11358" href="Data.Nat.Properties.html#11345" class="Bound">n</a> <a id="11360" href="Data.Nat.Base.html#1718" class="Function Operator">></a> <a id="11362" class="Number">0</a>
|
||
<a id="11364" href="Data.Nat.Properties.html#11332" class="Function">n≢0⇒n>0</a> <a id="11372" class="Symbol">{</a><a id="11373" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="11377" class="Symbol">}</a> <a id="11380" href="Data.Nat.Properties.html#11380" class="Bound">0≢0</a> <a id="11384" class="Symbol">=</a> <a id="11387" href="Relation.Nullary.Negation.Core.html#787" class="Function">contradiction</a> <a id="11401" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="11406" href="Data.Nat.Properties.html#11380" class="Bound">0≢0</a>
|
||
<a id="11410" href="Data.Nat.Properties.html#11332" class="Function">n≢0⇒n>0</a> <a id="11418" class="Symbol">{</a><a id="11419" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="11423" href="Data.Nat.Properties.html#11423" class="Bound">n</a><a id="11424" class="Symbol">}</a> <a id="11426" class="Symbol">_</a> <a id="11430" class="Symbol">=</a> <a id="11433" href="Data.Nat.Properties.html#11182" class="Function">0<1+n</a>
|
||
|
||
<a id="m<n⇒0<n"></a><a id="11440" href="Data.Nat.Properties.html#11440" class="Function">m<n⇒0<n</a> <a id="11448" class="Symbol">:</a> <a id="11450" class="Symbol">∀</a> <a id="11452" class="Symbol">{</a><a id="11453" href="Data.Nat.Properties.html#11453" class="Bound">m</a> <a id="11455" href="Data.Nat.Properties.html#11455" class="Bound">n</a><a id="11456" class="Symbol">}</a> <a id="11458" class="Symbol">→</a> <a id="11460" href="Data.Nat.Properties.html#11453" class="Bound">m</a> <a id="11462" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="11464" href="Data.Nat.Properties.html#11455" class="Bound">n</a> <a id="11466" class="Symbol">→</a> <a id="11468" class="Number">0</a> <a id="11470" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="11472" href="Data.Nat.Properties.html#11455" class="Bound">n</a>
|
||
<a id="11474" href="Data.Nat.Properties.html#11440" class="Function">m<n⇒0<n</a> <a id="11482" class="Symbol">=</a> <a id="11484" href="Data.Nat.Properties.html#4757" class="Function">≤-trans</a> <a id="11492" href="Data.Nat.Properties.html#11182" class="Function">0<1+n</a>
|
||
|
||
<a id="m<n⇒n≢0"></a><a id="11499" href="Data.Nat.Properties.html#11499" class="Function">m<n⇒n≢0</a> <a id="11507" class="Symbol">:</a> <a id="11509" class="Symbol">∀</a> <a id="11511" class="Symbol">{</a><a id="11512" href="Data.Nat.Properties.html#11512" class="Bound">m</a> <a id="11514" href="Data.Nat.Properties.html#11514" class="Bound">n</a><a id="11515" class="Symbol">}</a> <a id="11517" class="Symbol">→</a> <a id="11519" href="Data.Nat.Properties.html#11512" class="Bound">m</a> <a id="11521" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="11523" href="Data.Nat.Properties.html#11514" class="Bound">n</a> <a id="11525" class="Symbol">→</a> <a id="11527" href="Data.Nat.Properties.html#11514" class="Bound">n</a> <a id="11529" href="Relation.Binary.PropositionalEquality.Core.html#839" class="Function Operator">≢</a> <a id="11531" class="Number">0</a>
|
||
<a id="11533" href="Data.Nat.Properties.html#11499" class="Function">m<n⇒n≢0</a> <a id="11541" class="Symbol">(</a><a id="11542" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="11546" href="Data.Nat.Properties.html#11546" class="Bound">m≤n</a><a id="11549" class="Symbol">)</a> <a id="11551" class="Symbol">()</a>
|
||
|
||
<a id="m<n⇒m≤1+n"></a><a id="11555" href="Data.Nat.Properties.html#11555" class="Function">m<n⇒m≤1+n</a> <a id="11565" class="Symbol">:</a> <a id="11567" class="Symbol">∀</a> <a id="11569" class="Symbol">{</a><a id="11570" href="Data.Nat.Properties.html#11570" class="Bound">m</a> <a id="11572" href="Data.Nat.Properties.html#11572" class="Bound">n</a><a id="11573" class="Symbol">}</a> <a id="11575" class="Symbol">→</a> <a id="11577" href="Data.Nat.Properties.html#11570" class="Bound">m</a> <a id="11579" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="11581" href="Data.Nat.Properties.html#11572" class="Bound">n</a> <a id="11583" class="Symbol">→</a> <a id="11585" href="Data.Nat.Properties.html#11570" class="Bound">m</a> <a id="11587" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="11589" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="11593" href="Data.Nat.Properties.html#11572" class="Bound">n</a>
|
||
<a id="11595" href="Data.Nat.Properties.html#11555" class="Function">m<n⇒m≤1+n</a> <a id="11605" class="Symbol">=</a> <a id="11607" href="Data.Nat.Properties.html#7191" class="Function">≤-step</a> <a id="11614" href="Function.Base.html#1040" class="Function Operator">∘</a> <a id="11616" href="Data.Nat.Properties.html#7658" class="Function"><⇒≤</a>
|
||
|
||
<a id="∀[m≤n⇒m≢o]⇒n<o"></a><a id="11621" href="Data.Nat.Properties.html#11621" class="Function">∀[m≤n⇒m≢o]⇒n<o</a> <a id="11636" class="Symbol">:</a> <a id="11638" class="Symbol">∀</a> <a id="11640" href="Data.Nat.Properties.html#11640" class="Bound">n</a> <a id="11642" href="Data.Nat.Properties.html#11642" class="Bound">o</a> <a id="11644" class="Symbol">→</a> <a id="11646" class="Symbol">(∀</a> <a id="11649" class="Symbol">{</a><a id="11650" href="Data.Nat.Properties.html#11650" class="Bound">m</a><a id="11651" class="Symbol">}</a> <a id="11653" class="Symbol">→</a> <a id="11655" href="Data.Nat.Properties.html#11650" class="Bound">m</a> <a id="11657" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="11659" href="Data.Nat.Properties.html#11640" class="Bound">n</a> <a id="11661" class="Symbol">→</a> <a id="11663" href="Data.Nat.Properties.html#11650" class="Bound">m</a> <a id="11665" href="Relation.Binary.PropositionalEquality.Core.html#839" class="Function Operator">≢</a> <a id="11667" href="Data.Nat.Properties.html#11642" class="Bound">o</a><a id="11668" class="Symbol">)</a> <a id="11670" class="Symbol">→</a> <a id="11672" href="Data.Nat.Properties.html#11640" class="Bound">n</a> <a id="11674" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="11676" href="Data.Nat.Properties.html#11642" class="Bound">o</a>
|
||
<a id="11678" href="Data.Nat.Properties.html#11621" class="Function">∀[m≤n⇒m≢o]⇒n<o</a> <a id="11693" class="Symbol">_</a> <a id="11701" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="11709" href="Data.Nat.Properties.html#11709" class="Bound">m≤n⇒n≢0</a> <a id="11717" class="Symbol">=</a> <a id="11719" href="Relation.Nullary.Negation.Core.html#787" class="Function">contradiction</a> <a id="11733" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="11738" class="Symbol">(</a><a id="11739" href="Data.Nat.Properties.html#11709" class="Bound">m≤n⇒n≢0</a> <a id="11747" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a><a id="11750" class="Symbol">)</a>
|
||
<a id="11752" href="Data.Nat.Properties.html#11621" class="Function">∀[m≤n⇒m≢o]⇒n<o</a> <a id="11767" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="11775" class="Symbol">(</a><a id="11776" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="11780" href="Data.Nat.Properties.html#11780" class="Bound">o</a><a id="11781" class="Symbol">)</a> <a id="11783" class="Symbol">_</a> <a id="11791" class="Symbol">=</a> <a id="11793" href="Data.Nat.Properties.html#11182" class="Function">0<1+n</a>
|
||
<a id="11799" href="Data.Nat.Properties.html#11621" class="Function">∀[m≤n⇒m≢o]⇒n<o</a> <a id="11814" class="Symbol">(</a><a id="11815" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="11819" href="Data.Nat.Properties.html#11819" class="Bound">n</a><a id="11820" class="Symbol">)</a> <a id="11822" class="Symbol">(</a><a id="11823" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="11827" href="Data.Nat.Properties.html#11827" class="Bound">o</a><a id="11828" class="Symbol">)</a> <a id="11830" href="Data.Nat.Properties.html#11830" class="Bound">m≤n⇒n≢o</a> <a id="11838" class="Symbol">=</a> <a id="11840" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="11844" class="Symbol">(</a><a id="11845" href="Data.Nat.Properties.html#11621" class="Function">∀[m≤n⇒m≢o]⇒n<o</a> <a id="11860" href="Data.Nat.Properties.html#11819" class="Bound">n</a> <a id="11862" href="Data.Nat.Properties.html#11827" class="Bound">o</a> <a id="11864" href="Data.Nat.Properties.html#11879" class="Function">rec</a><a id="11867" class="Symbol">)</a>
|
||
<a id="11871" class="Keyword">where</a>
|
||
<a id="11879" href="Data.Nat.Properties.html#11879" class="Function">rec</a> <a id="11883" class="Symbol">:</a> <a id="11885" class="Symbol">∀</a> <a id="11887" class="Symbol">{</a><a id="11888" href="Data.Nat.Properties.html#11888" class="Bound">m</a><a id="11889" class="Symbol">}</a> <a id="11891" class="Symbol">→</a> <a id="11893" href="Data.Nat.Properties.html#11888" class="Bound">m</a> <a id="11895" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="11897" href="Data.Nat.Properties.html#11819" class="Bound">n</a> <a id="11899" class="Symbol">→</a> <a id="11901" href="Data.Nat.Properties.html#11888" class="Bound">m</a> <a id="11903" href="Relation.Binary.PropositionalEquality.Core.html#839" class="Function Operator">≢</a> <a id="11905" href="Data.Nat.Properties.html#11827" class="Bound">o</a>
|
||
<a id="11909" href="Data.Nat.Properties.html#11879" class="Function">rec</a> <a id="11913" href="Data.Nat.Properties.html#11913" class="Bound">m≤n</a> <a id="11917" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="11922" class="Symbol">=</a> <a id="11924" href="Data.Nat.Properties.html#11830" class="Bound">m≤n⇒n≢o</a> <a id="11932" class="Symbol">(</a><a id="11933" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="11937" href="Data.Nat.Properties.html#11913" class="Bound">m≤n</a><a id="11940" class="Symbol">)</a> <a id="11942" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
|
||
<a id="∀[m<n⇒m≢o]⇒n≤o"></a><a id="11948" href="Data.Nat.Properties.html#11948" class="Function">∀[m<n⇒m≢o]⇒n≤o</a> <a id="11963" class="Symbol">:</a> <a id="11965" class="Symbol">∀</a> <a id="11967" href="Data.Nat.Properties.html#11967" class="Bound">n</a> <a id="11969" href="Data.Nat.Properties.html#11969" class="Bound">o</a> <a id="11971" class="Symbol">→</a> <a id="11973" class="Symbol">(∀</a> <a id="11976" class="Symbol">{</a><a id="11977" href="Data.Nat.Properties.html#11977" class="Bound">m</a><a id="11978" class="Symbol">}</a> <a id="11980" class="Symbol">→</a> <a id="11982" href="Data.Nat.Properties.html#11977" class="Bound">m</a> <a id="11984" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="11986" href="Data.Nat.Properties.html#11967" class="Bound">n</a> <a id="11988" class="Symbol">→</a> <a id="11990" href="Data.Nat.Properties.html#11977" class="Bound">m</a> <a id="11992" href="Relation.Binary.PropositionalEquality.Core.html#839" class="Function Operator">≢</a> <a id="11994" href="Data.Nat.Properties.html#11969" class="Bound">o</a><a id="11995" class="Symbol">)</a> <a id="11997" class="Symbol">→</a> <a id="11999" href="Data.Nat.Properties.html#11967" class="Bound">n</a> <a id="12001" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="12003" href="Data.Nat.Properties.html#11969" class="Bound">o</a>
|
||
<a id="12005" href="Data.Nat.Properties.html#11948" class="Function">∀[m<n⇒m≢o]⇒n≤o</a> <a id="12020" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="12028" href="Data.Nat.Properties.html#12028" class="Bound">n</a> <a id="12036" class="Symbol">_</a> <a id="12044" class="Symbol">=</a> <a id="12046" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="12050" href="Data.Nat.Properties.html#11948" class="Function">∀[m<n⇒m≢o]⇒n≤o</a> <a id="12065" class="Symbol">(</a><a id="12066" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="12070" href="Data.Nat.Properties.html#12070" class="Bound">n</a><a id="12071" class="Symbol">)</a> <a id="12073" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="12081" href="Data.Nat.Properties.html#12081" class="Bound">m<n⇒m≢0</a> <a id="12089" class="Symbol">=</a> <a id="12091" href="Relation.Nullary.Negation.Core.html#787" class="Function">contradiction</a> <a id="12105" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="12110" class="Symbol">(</a><a id="12111" href="Data.Nat.Properties.html#12081" class="Bound">m<n⇒m≢0</a> <a id="12119" href="Data.Nat.Properties.html#11182" class="Function">0<1+n</a><a id="12124" class="Symbol">)</a>
|
||
<a id="12126" href="Data.Nat.Properties.html#11948" class="Function">∀[m<n⇒m≢o]⇒n≤o</a> <a id="12141" class="Symbol">(</a><a id="12142" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="12146" href="Data.Nat.Properties.html#12146" class="Bound">n</a><a id="12147" class="Symbol">)</a> <a id="12149" class="Symbol">(</a><a id="12150" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="12154" href="Data.Nat.Properties.html#12154" class="Bound">o</a><a id="12155" class="Symbol">)</a> <a id="12157" href="Data.Nat.Properties.html#12157" class="Bound">m<n⇒m≢o</a> <a id="12165" class="Symbol">=</a> <a id="12167" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="12171" class="Symbol">(</a><a id="12172" href="Data.Nat.Properties.html#11948" class="Function">∀[m<n⇒m≢o]⇒n≤o</a> <a id="12187" href="Data.Nat.Properties.html#12146" class="Bound">n</a> <a id="12189" href="Data.Nat.Properties.html#12154" class="Bound">o</a> <a id="12191" href="Data.Nat.Properties.html#12206" class="Function">rec</a><a id="12194" class="Symbol">)</a>
|
||
<a id="12198" class="Keyword">where</a>
|
||
<a id="12206" href="Data.Nat.Properties.html#12206" class="Function">rec</a> <a id="12210" class="Symbol">:</a> <a id="12212" class="Symbol">∀</a> <a id="12214" class="Symbol">{</a><a id="12215" href="Data.Nat.Properties.html#12215" class="Bound">m</a><a id="12216" class="Symbol">}</a> <a id="12218" class="Symbol">→</a> <a id="12220" href="Data.Nat.Properties.html#12215" class="Bound">m</a> <a id="12222" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="12224" href="Data.Nat.Properties.html#12146" class="Bound">n</a> <a id="12226" class="Symbol">→</a> <a id="12228" href="Data.Nat.Properties.html#12215" class="Bound">m</a> <a id="12230" href="Relation.Binary.PropositionalEquality.Core.html#839" class="Function Operator">≢</a> <a id="12232" href="Data.Nat.Properties.html#12154" class="Bound">o</a>
|
||
<a id="12236" href="Data.Nat.Properties.html#12206" class="Function">rec</a> <a id="12240" href="Data.Nat.Properties.html#12240" class="Bound">x<m</a> <a id="12244" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="12249" class="Symbol">=</a> <a id="12251" href="Data.Nat.Properties.html#12157" class="Bound">m<n⇒m≢o</a> <a id="12259" class="Symbol">(</a><a id="12260" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="12264" href="Data.Nat.Properties.html#12240" class="Bound">x<m</a><a id="12267" class="Symbol">)</a> <a id="12269" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
|
||
<a id="12275" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="12348" class="Comment">-- A module for reasoning about the _≤_ and _<_ relations</a>
|
||
<a id="12406" class="Comment">------------------------------------------------------------------------</a>
|
||
|
||
<a id="12480" class="Keyword">module</a> <a id="≤-Reasoning"></a><a id="12487" href="Data.Nat.Properties.html#12487" class="Module">≤-Reasoning</a> <a id="12499" class="Keyword">where</a>
|
||
<a id="12507" class="Keyword">open</a> <a id="12512" class="Keyword">import</a> <a id="12519" href="Relation.Binary.Reasoning.Base.Triple.html" class="Module">Relation.Binary.Reasoning.Base.Triple</a>
|
||
<a id="12561" href="Data.Nat.Properties.html#5720" class="Function">≤-isPreorder</a>
|
||
<a id="12578" href="Data.Nat.Properties.html#9219" class="Function"><-trans</a>
|
||
<a id="12590" class="Symbol">(</a><a id="12591" href="Relation.Binary.PropositionalEquality.Core.html#2138" class="Function">resp₂</a> <a id="12597" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a><a id="12600" class="Symbol">)</a>
|
||
<a id="12606" href="Data.Nat.Properties.html#7658" class="Function"><⇒≤</a>
|
||
<a id="12614" href="Data.Nat.Properties.html#9394" class="Function"><-transˡ</a>
|
||
<a id="12627" href="Data.Nat.Properties.html#9317" class="Function"><-transʳ</a>
|
||
<a id="12640" class="Keyword">public</a>
|
||
<a id="12651" class="Keyword">hiding</a> <a id="12658" class="Symbol">(</a><a id="12659" href="Relation.Binary.Reasoning.Base.Triple.html#4044" class="Function">step-≈</a><a id="12665" class="Symbol">;</a> <a id="12667" href="Relation.Binary.Reasoning.Base.Triple.html#4367" class="Function">step-≈˘</a><a id="12674" class="Symbol">)</a>
|
||
|
||
<a id="12677" class="Keyword">open</a> <a id="12682" href="Data.Nat.Properties.html#12487" class="Module">≤-Reasoning</a>
|
||
|
||
<a id="12695" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="12768" class="Comment">-- Properties of _+_</a>
|
||
<a id="12789" class="Comment">------------------------------------------------------------------------</a>
|
||
|
||
<a id="+-suc"></a><a id="12863" href="Data.Nat.Properties.html#12863" class="Function">+-suc</a> <a id="12869" class="Symbol">:</a> <a id="12871" class="Symbol">∀</a> <a id="12873" href="Data.Nat.Properties.html#12873" class="Bound">m</a> <a id="12875" href="Data.Nat.Properties.html#12875" class="Bound">n</a> <a id="12877" class="Symbol">→</a> <a id="12879" href="Data.Nat.Properties.html#12873" class="Bound">m</a> <a id="12881" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="12883" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="12887" href="Data.Nat.Properties.html#12875" class="Bound">n</a> <a id="12889" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="12891" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="12895" class="Symbol">(</a><a id="12896" href="Data.Nat.Properties.html#12873" class="Bound">m</a> <a id="12898" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="12900" href="Data.Nat.Properties.html#12875" class="Bound">n</a><a id="12901" class="Symbol">)</a>
|
||
<a id="12903" href="Data.Nat.Properties.html#12863" class="Function">+-suc</a> <a id="12909" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="12917" href="Data.Nat.Properties.html#12917" class="Bound">n</a> <a id="12919" class="Symbol">=</a> <a id="12921" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="12926" href="Data.Nat.Properties.html#12863" class="Function">+-suc</a> <a id="12932" class="Symbol">(</a><a id="12933" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="12937" href="Data.Nat.Properties.html#12937" class="Bound">m</a><a id="12938" class="Symbol">)</a> <a id="12940" href="Data.Nat.Properties.html#12940" class="Bound">n</a> <a id="12942" class="Symbol">=</a> <a id="12944" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="12949" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="12953" class="Symbol">(</a><a id="12954" href="Data.Nat.Properties.html#12863" class="Function">+-suc</a> <a id="12960" href="Data.Nat.Properties.html#12937" class="Bound">m</a> <a id="12962" href="Data.Nat.Properties.html#12940" class="Bound">n</a><a id="12963" class="Symbol">)</a>
|
||
|
||
<a id="12966" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="13039" class="Comment">-- Algebraic properties of _+_</a>
|
||
|
||
<a id="+-assoc"></a><a id="13071" href="Data.Nat.Properties.html#13071" class="Function">+-assoc</a> <a id="13079" class="Symbol">:</a> <a id="13081" href="Algebra.Definitions.html#1117" class="Function">Associative</a> <a id="13093" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a>
|
||
<a id="13097" href="Data.Nat.Properties.html#13071" class="Function">+-assoc</a> <a id="13105" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="13113" class="Symbol">_</a> <a id="13115" class="Symbol">_</a> <a id="13117" class="Symbol">=</a> <a id="13119" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="13124" href="Data.Nat.Properties.html#13071" class="Function">+-assoc</a> <a id="13132" class="Symbol">(</a><a id="13133" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="13137" href="Data.Nat.Properties.html#13137" class="Bound">m</a><a id="13138" class="Symbol">)</a> <a id="13140" href="Data.Nat.Properties.html#13140" class="Bound">n</a> <a id="13142" href="Data.Nat.Properties.html#13142" class="Bound">o</a> <a id="13144" class="Symbol">=</a> <a id="13146" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="13151" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="13155" class="Symbol">(</a><a id="13156" href="Data.Nat.Properties.html#13071" class="Function">+-assoc</a> <a id="13164" href="Data.Nat.Properties.html#13137" class="Bound">m</a> <a id="13166" href="Data.Nat.Properties.html#13140" class="Bound">n</a> <a id="13168" href="Data.Nat.Properties.html#13142" class="Bound">o</a><a id="13169" class="Symbol">)</a>
|
||
|
||
<a id="+-identityˡ"></a><a id="13172" href="Data.Nat.Properties.html#13172" class="Function">+-identityˡ</a> <a id="13184" class="Symbol">:</a> <a id="13186" href="Algebra.Definitions.html#1277" class="Function">LeftIdentity</a> <a id="13199" class="Number">0</a> <a id="13201" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a>
|
||
<a id="13205" href="Data.Nat.Properties.html#13172" class="Function">+-identityˡ</a> <a id="13217" class="Symbol">_</a> <a id="13219" class="Symbol">=</a> <a id="13221" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
|
||
<a id="+-identityʳ"></a><a id="13227" href="Data.Nat.Properties.html#13227" class="Function">+-identityʳ</a> <a id="13239" class="Symbol">:</a> <a id="13241" href="Algebra.Definitions.html#1350" class="Function">RightIdentity</a> <a id="13255" class="Number">0</a> <a id="13257" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a>
|
||
<a id="13261" href="Data.Nat.Properties.html#13227" class="Function">+-identityʳ</a> <a id="13273" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="13281" class="Symbol">=</a> <a id="13283" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="13288" href="Data.Nat.Properties.html#13227" class="Function">+-identityʳ</a> <a id="13300" class="Symbol">(</a><a id="13301" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="13305" href="Data.Nat.Properties.html#13305" class="Bound">n</a><a id="13306" class="Symbol">)</a> <a id="13308" class="Symbol">=</a> <a id="13310" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="13315" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="13319" class="Symbol">(</a><a id="13320" href="Data.Nat.Properties.html#13227" class="Function">+-identityʳ</a> <a id="13332" href="Data.Nat.Properties.html#13305" class="Bound">n</a><a id="13333" class="Symbol">)</a>
|
||
|
||
<a id="+-identity"></a><a id="13336" href="Data.Nat.Properties.html#13336" class="Function">+-identity</a> <a id="13347" class="Symbol">:</a> <a id="13349" href="Algebra.Definitions.html#1425" class="Function">Identity</a> <a id="13358" class="Number">0</a> <a id="13360" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a>
|
||
<a id="13364" href="Data.Nat.Properties.html#13336" class="Function">+-identity</a> <a id="13375" class="Symbol">=</a> <a id="13377" href="Data.Nat.Properties.html#13172" class="Function">+-identityˡ</a> <a id="13389" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="13391" href="Data.Nat.Properties.html#13227" class="Function">+-identityʳ</a>
|
||
|
||
<a id="+-comm"></a><a id="13404" href="Data.Nat.Properties.html#13404" class="Function">+-comm</a> <a id="13411" class="Symbol">:</a> <a id="13413" href="Algebra.Definitions.html#1204" class="Function">Commutative</a> <a id="13425" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a>
|
||
<a id="13429" href="Data.Nat.Properties.html#13404" class="Function">+-comm</a> <a id="13436" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="13444" href="Data.Nat.Properties.html#13444" class="Bound">n</a> <a id="13446" class="Symbol">=</a> <a id="13448" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="13452" class="Symbol">(</a><a id="13453" href="Data.Nat.Properties.html#13227" class="Function">+-identityʳ</a> <a id="13465" href="Data.Nat.Properties.html#13444" class="Bound">n</a><a id="13466" class="Symbol">)</a>
|
||
<a id="13468" href="Data.Nat.Properties.html#13404" class="Function">+-comm</a> <a id="13475" class="Symbol">(</a><a id="13476" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="13480" href="Data.Nat.Properties.html#13480" class="Bound">m</a><a id="13481" class="Symbol">)</a> <a id="13483" href="Data.Nat.Properties.html#13483" class="Bound">n</a> <a id="13485" class="Symbol">=</a> <a id="13487" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="13504" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="13508" href="Data.Nat.Properties.html#13480" class="Bound">m</a> <a id="13510" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="13512" href="Data.Nat.Properties.html#13483" class="Bound">n</a> <a id="13516" href="Relation.Binary.Reasoning.Base.Triple.html#5032" class="Function Operator">≡⟨⟩</a>
|
||
<a id="13522" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="13526" class="Symbol">(</a><a id="13527" href="Data.Nat.Properties.html#13480" class="Bound">m</a> <a id="13529" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="13531" href="Data.Nat.Properties.html#13483" class="Bound">n</a><a id="13532" class="Symbol">)</a> <a id="13534" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="13537" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="13542" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="13546" class="Symbol">(</a><a id="13547" href="Data.Nat.Properties.html#13404" class="Function">+-comm</a> <a id="13554" href="Data.Nat.Properties.html#13480" class="Bound">m</a> <a id="13556" href="Data.Nat.Properties.html#13483" class="Bound">n</a><a id="13557" class="Symbol">)</a> <a id="13559" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="13563" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="13567" class="Symbol">(</a><a id="13568" href="Data.Nat.Properties.html#13483" class="Bound">n</a> <a id="13570" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="13572" href="Data.Nat.Properties.html#13480" class="Bound">m</a><a id="13573" class="Symbol">)</a> <a id="13575" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="13578" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="13582" class="Symbol">(</a><a id="13583" href="Data.Nat.Properties.html#12863" class="Function">+-suc</a> <a id="13589" href="Data.Nat.Properties.html#13483" class="Bound">n</a> <a id="13591" href="Data.Nat.Properties.html#13480" class="Bound">m</a><a id="13592" class="Symbol">)</a> <a id="13594" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="13598" href="Data.Nat.Properties.html#13483" class="Bound">n</a> <a id="13600" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="13602" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="13606" href="Data.Nat.Properties.html#13480" class="Bound">m</a> <a id="13610" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
|
||
<a id="+-cancelˡ-≡"></a><a id="13613" href="Data.Nat.Properties.html#13613" class="Function">+-cancelˡ-≡</a> <a id="13625" class="Symbol">:</a> <a id="13627" href="Algebra.Definitions.html#3091" class="Function">LeftCancellative</a> <a id="13644" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a> <a id="13648" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a>
|
||
<a id="13652" href="Data.Nat.Properties.html#13613" class="Function">+-cancelˡ-≡</a> <a id="13664" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="13672" href="Data.Nat.Properties.html#13672" class="Bound">eq</a> <a id="13675" class="Symbol">=</a> <a id="13677" href="Data.Nat.Properties.html#13672" class="Bound">eq</a>
|
||
<a id="13680" href="Data.Nat.Properties.html#13613" class="Function">+-cancelˡ-≡</a> <a id="13692" class="Symbol">(</a><a id="13693" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="13697" href="Data.Nat.Properties.html#13697" class="Bound">m</a><a id="13698" class="Symbol">)</a> <a id="13700" href="Data.Nat.Properties.html#13700" class="Bound">eq</a> <a id="13703" class="Symbol">=</a> <a id="13705" href="Data.Nat.Properties.html#13613" class="Function">+-cancelˡ-≡</a> <a id="13717" href="Data.Nat.Properties.html#13697" class="Bound">m</a> <a id="13719" class="Symbol">(</a><a id="13720" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="13725" href="Data.Nat.Base.html#2889" class="Function">pred</a> <a id="13730" href="Data.Nat.Properties.html#13700" class="Bound">eq</a><a id="13732" class="Symbol">)</a>
|
||
|
||
<a id="+-cancelʳ-≡"></a><a id="13735" href="Data.Nat.Properties.html#13735" class="Function">+-cancelʳ-≡</a> <a id="13747" class="Symbol">:</a> <a id="13749" href="Algebra.Definitions.html#3186" class="Function">RightCancellative</a> <a id="13767" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a> <a id="13771" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a>
|
||
<a id="13775" href="Data.Nat.Properties.html#13735" class="Function">+-cancelʳ-≡</a> <a id="13787" class="Symbol">=</a> <a id="13789" href="Algebra.Consequences.Setoid.html#1195" class="Function">comm+cancelˡ⇒cancelʳ</a> <a id="13810" href="Data.Nat.Properties.html#13404" class="Function">+-comm</a> <a id="13817" href="Data.Nat.Properties.html#13613" class="Function">+-cancelˡ-≡</a>
|
||
|
||
<a id="+-cancel-≡"></a><a id="13830" href="Data.Nat.Properties.html#13830" class="Function">+-cancel-≡</a> <a id="13841" class="Symbol">:</a> <a id="13843" href="Algebra.Definitions.html#3283" class="Function">Cancellative</a> <a id="13856" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a> <a id="13860" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a>
|
||
<a id="13864" href="Data.Nat.Properties.html#13830" class="Function">+-cancel-≡</a> <a id="13875" class="Symbol">=</a> <a id="13877" href="Data.Nat.Properties.html#13613" class="Function">+-cancelˡ-≡</a> <a id="13889" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="13891" href="Data.Nat.Properties.html#13735" class="Function">+-cancelʳ-≡</a>
|
||
|
||
<a id="13904" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="13977" class="Comment">-- Structures</a>
|
||
|
||
<a id="+-isMagma"></a><a id="13992" href="Data.Nat.Properties.html#13992" class="Function">+-isMagma</a> <a id="14002" class="Symbol">:</a> <a id="14004" href="Algebra.Structures.html#1129" class="Record">IsMagma</a> <a id="14012" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a>
|
||
<a id="14016" href="Data.Nat.Properties.html#13992" class="Function">+-isMagma</a> <a id="14026" class="Symbol">=</a> <a id="14028" class="Keyword">record</a>
|
||
<a id="14037" class="Symbol">{</a> <a id="14039" href="Algebra.Structures.html#1181" class="Field">isEquivalence</a> <a id="14053" class="Symbol">=</a> <a id="14055" href="Relation.Binary.PropositionalEquality.Properties.html#3436" class="Function">isEquivalence</a>
|
||
<a id="14071" class="Symbol">;</a> <a id="14073" href="Algebra.Structures.html#1219" class="Field">∙-cong</a> <a id="14087" class="Symbol">=</a> <a id="14089" href="Relation.Binary.PropositionalEquality.Core.html#1376" class="Function">cong₂</a> <a id="14095" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a>
|
||
<a id="14101" class="Symbol">}</a>
|
||
|
||
<a id="+-isSemigroup"></a><a id="14104" href="Data.Nat.Properties.html#14104" class="Function">+-isSemigroup</a> <a id="14118" class="Symbol">:</a> <a id="14120" href="Algebra.Structures.html#1796" class="Record">IsSemigroup</a> <a id="14132" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a>
|
||
<a id="14136" href="Data.Nat.Properties.html#14104" class="Function">+-isSemigroup</a> <a id="14150" class="Symbol">=</a> <a id="14152" class="Keyword">record</a>
|
||
<a id="14161" class="Symbol">{</a> <a id="14163" href="Algebra.Structures.html#1852" class="Field">isMagma</a> <a id="14171" class="Symbol">=</a> <a id="14173" href="Data.Nat.Properties.html#13992" class="Function">+-isMagma</a>
|
||
<a id="14185" class="Symbol">;</a> <a id="14187" href="Algebra.Structures.html#1876" class="Field">assoc</a> <a id="14195" class="Symbol">=</a> <a id="14197" href="Data.Nat.Properties.html#13071" class="Function">+-assoc</a>
|
||
<a id="14207" class="Symbol">}</a>
|
||
|
||
<a id="+-isCommutativeSemigroup"></a><a id="14210" href="Data.Nat.Properties.html#14210" class="Function">+-isCommutativeSemigroup</a> <a id="14235" class="Symbol">:</a> <a id="14237" href="Algebra.Structures.html#2098" class="Record">IsCommutativeSemigroup</a> <a id="14260" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a>
|
||
<a id="14264" href="Data.Nat.Properties.html#14210" class="Function">+-isCommutativeSemigroup</a> <a id="14289" class="Symbol">=</a> <a id="14291" class="Keyword">record</a>
|
||
<a id="14300" class="Symbol">{</a> <a id="14302" href="Algebra.Structures.html#2165" class="Field">isSemigroup</a> <a id="14314" class="Symbol">=</a> <a id="14316" href="Data.Nat.Properties.html#14104" class="Function">+-isSemigroup</a>
|
||
<a id="14332" class="Symbol">;</a> <a id="14334" href="Algebra.Structures.html#2197" class="Field">comm</a> <a id="14346" class="Symbol">=</a> <a id="14348" href="Data.Nat.Properties.html#13404" class="Function">+-comm</a>
|
||
<a id="14357" class="Symbol">}</a>
|
||
|
||
<a id="+-0-isMonoid"></a><a id="14360" href="Data.Nat.Properties.html#14360" class="Function">+-0-isMonoid</a> <a id="14373" class="Symbol">:</a> <a id="14375" href="Algebra.Structures.html#2810" class="Record">IsMonoid</a> <a id="14384" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a> <a id="14388" class="Number">0</a>
|
||
<a id="14390" href="Data.Nat.Properties.html#14360" class="Function">+-0-isMonoid</a> <a id="14403" class="Symbol">=</a> <a id="14405" class="Keyword">record</a>
|
||
<a id="14414" class="Symbol">{</a> <a id="14416" href="Algebra.Structures.html#2871" class="Field">isSemigroup</a> <a id="14428" class="Symbol">=</a> <a id="14430" href="Data.Nat.Properties.html#14104" class="Function">+-isSemigroup</a>
|
||
<a id="14446" class="Symbol">;</a> <a id="14448" href="Algebra.Structures.html#2903" class="Field">identity</a> <a id="14460" class="Symbol">=</a> <a id="14462" href="Data.Nat.Properties.html#13336" class="Function">+-identity</a>
|
||
<a id="14475" class="Symbol">}</a>
|
||
|
||
<a id="+-0-isCommutativeMonoid"></a><a id="14478" href="Data.Nat.Properties.html#14478" class="Function">+-0-isCommutativeMonoid</a> <a id="14502" class="Symbol">:</a> <a id="14504" href="Algebra.Structures.html#3101" class="Record">IsCommutativeMonoid</a> <a id="14524" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a> <a id="14528" class="Number">0</a>
|
||
<a id="14530" href="Data.Nat.Properties.html#14478" class="Function">+-0-isCommutativeMonoid</a> <a id="14554" class="Symbol">=</a> <a id="14556" class="Keyword">record</a>
|
||
<a id="14565" class="Symbol">{</a> <a id="14567" href="Algebra.Structures.html#3173" class="Field">isMonoid</a> <a id="14576" class="Symbol">=</a> <a id="14578" href="Data.Nat.Properties.html#14360" class="Function">+-0-isMonoid</a>
|
||
<a id="14593" class="Symbol">;</a> <a id="14595" href="Algebra.Structures.html#3201" class="Field">comm</a> <a id="14604" class="Symbol">=</a> <a id="14606" href="Data.Nat.Properties.html#13404" class="Function">+-comm</a>
|
||
<a id="14615" class="Symbol">}</a>
|
||
|
||
<a id="14618" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="14691" class="Comment">-- Raw bundles</a>
|
||
|
||
<a id="+-rawMagma"></a><a id="14707" href="Data.Nat.Properties.html#14707" class="Function">+-rawMagma</a> <a id="14718" class="Symbol">:</a> <a id="14720" href="Algebra.Bundles.html#790" class="Record">RawMagma</a> <a id="14729" href="Level.html#521" class="Function">0ℓ</a> <a id="14732" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="14735" href="Data.Nat.Properties.html#14707" class="Function">+-rawMagma</a> <a id="14746" class="Symbol">=</a> <a id="14748" class="Keyword">record</a>
|
||
<a id="14757" class="Symbol">{</a> <a id="14759" href="Algebra.Bundles.html#891" class="Field Operator">_≈_</a> <a id="14763" class="Symbol">=</a> <a id="14765" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a>
|
||
<a id="14771" class="Symbol">;</a> <a id="14773" href="Algebra.Bundles.html#919" class="Field Operator">_∙_</a> <a id="14777" class="Symbol">=</a> <a id="14779" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a>
|
||
<a id="14785" class="Symbol">}</a>
|
||
|
||
<a id="+-0-rawMonoid"></a><a id="14788" href="Data.Nat.Properties.html#14788" class="Function">+-0-rawMonoid</a> <a id="14802" class="Symbol">:</a> <a id="14804" href="Algebra.Bundles.html#4113" class="Record">RawMonoid</a> <a id="14814" href="Level.html#521" class="Function">0ℓ</a> <a id="14817" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="14820" href="Data.Nat.Properties.html#14788" class="Function">+-0-rawMonoid</a> <a id="14834" class="Symbol">=</a> <a id="14836" class="Keyword">record</a>
|
||
<a id="14845" class="Symbol">{</a> <a id="14847" href="Algebra.Bundles.html#4215" class="Field Operator">_≈_</a> <a id="14851" class="Symbol">=</a> <a id="14853" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a>
|
||
<a id="14859" class="Symbol">;</a> <a id="14861" href="Algebra.Bundles.html#4243" class="Field Operator">_∙_</a> <a id="14865" class="Symbol">=</a> <a id="14867" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a>
|
||
<a id="14873" class="Symbol">;</a> <a id="14875" href="Algebra.Bundles.html#4269" class="Field">ε</a> <a id="14879" class="Symbol">=</a> <a id="14881" class="Number">0</a>
|
||
<a id="14885" class="Symbol">}</a>
|
||
|
||
<a id="14888" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="14961" class="Comment">-- Bundles</a>
|
||
|
||
<a id="+-magma"></a><a id="14973" href="Data.Nat.Properties.html#14973" class="Function">+-magma</a> <a id="14981" class="Symbol">:</a> <a id="14983" href="Algebra.Bundles.html#1009" class="Record">Magma</a> <a id="14989" href="Level.html#521" class="Function">0ℓ</a> <a id="14992" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="14995" href="Data.Nat.Properties.html#14973" class="Function">+-magma</a> <a id="15003" class="Symbol">=</a> <a id="15005" class="Keyword">record</a>
|
||
<a id="15014" class="Symbol">{</a> <a id="15016" href="Algebra.Bundles.html#1161" class="Field">isMagma</a> <a id="15024" class="Symbol">=</a> <a id="15026" href="Data.Nat.Properties.html#13992" class="Function">+-isMagma</a>
|
||
<a id="15038" class="Symbol">}</a>
|
||
|
||
<a id="+-semigroup"></a><a id="15041" href="Data.Nat.Properties.html#15041" class="Function">+-semigroup</a> <a id="15053" class="Symbol">:</a> <a id="15055" href="Algebra.Bundles.html#2152" class="Record">Semigroup</a> <a id="15065" href="Level.html#521" class="Function">0ℓ</a> <a id="15068" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="15071" href="Data.Nat.Properties.html#15041" class="Function">+-semigroup</a> <a id="15083" class="Symbol">=</a> <a id="15085" class="Keyword">record</a>
|
||
<a id="15094" class="Symbol">{</a> <a id="15096" href="Algebra.Bundles.html#2320" class="Field">isSemigroup</a> <a id="15108" class="Symbol">=</a> <a id="15110" href="Data.Nat.Properties.html#14104" class="Function">+-isSemigroup</a>
|
||
<a id="15126" class="Symbol">}</a>
|
||
|
||
<a id="+-commutativeSemigroup"></a><a id="15129" href="Data.Nat.Properties.html#15129" class="Function">+-commutativeSemigroup</a> <a id="15152" class="Symbol">:</a> <a id="15154" href="Algebra.Bundles.html#2877" class="Record">CommutativeSemigroup</a> <a id="15175" href="Level.html#521" class="Function">0ℓ</a> <a id="15178" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="15181" href="Data.Nat.Properties.html#15129" class="Function">+-commutativeSemigroup</a> <a id="15204" class="Symbol">=</a> <a id="15206" class="Keyword">record</a>
|
||
<a id="15215" class="Symbol">{</a> <a id="15217" href="Algebra.Bundles.html#3092" class="Field">isCommutativeSemigroup</a> <a id="15240" class="Symbol">=</a> <a id="15242" href="Data.Nat.Properties.html#14210" class="Function">+-isCommutativeSemigroup</a>
|
||
<a id="15269" class="Symbol">}</a>
|
||
|
||
<a id="+-0-monoid"></a><a id="15272" href="Data.Nat.Properties.html#15272" class="Function">+-0-monoid</a> <a id="15283" class="Symbol">:</a> <a id="15285" href="Algebra.Bundles.html#4430" class="Record">Monoid</a> <a id="15292" href="Level.html#521" class="Function">0ℓ</a> <a id="15295" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="15298" href="Data.Nat.Properties.html#15272" class="Function">+-0-monoid</a> <a id="15309" class="Symbol">=</a> <a id="15311" class="Keyword">record</a>
|
||
<a id="15320" class="Symbol">{</a> <a id="15322" href="Algebra.Bundles.html#4609" class="Field">isMonoid</a> <a id="15331" class="Symbol">=</a> <a id="15333" href="Data.Nat.Properties.html#14360" class="Function">+-0-isMonoid</a>
|
||
<a id="15348" class="Symbol">}</a>
|
||
|
||
<a id="+-0-commutativeMonoid"></a><a id="15351" href="Data.Nat.Properties.html#15351" class="Function">+-0-commutativeMonoid</a> <a id="15373" class="Symbol">:</a> <a id="15375" href="Algebra.Bundles.html#4910" class="Record">CommutativeMonoid</a> <a id="15393" href="Level.html#521" class="Function">0ℓ</a> <a id="15396" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="15399" href="Data.Nat.Properties.html#15351" class="Function">+-0-commutativeMonoid</a> <a id="15421" class="Symbol">=</a> <a id="15423" class="Keyword">record</a>
|
||
<a id="15432" class="Symbol">{</a> <a id="15434" href="Algebra.Bundles.html#5144" class="Field">isCommutativeMonoid</a> <a id="15454" class="Symbol">=</a> <a id="15456" href="Data.Nat.Properties.html#14478" class="Function">+-0-isCommutativeMonoid</a>
|
||
<a id="15482" class="Symbol">}</a>
|
||
|
||
<a id="∸-magma"></a><a id="15485" href="Data.Nat.Properties.html#15485" class="Function">∸-magma</a> <a id="15493" class="Symbol">:</a> <a id="15495" href="Algebra.Bundles.html#1009" class="Record">Magma</a> <a id="15501" href="Level.html#521" class="Function">0ℓ</a> <a id="15504" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="15507" href="Data.Nat.Properties.html#15485" class="Function">∸-magma</a> <a id="15515" class="Symbol">=</a> <a id="15517" href="Relation.Binary.PropositionalEquality.Algebra.html#797" class="Function">magma</a> <a id="15523" href="Data.Nat.Base.html#2883" class="Primitive Operator">_∸_</a>
|
||
|
||
|
||
<a id="15529" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="15602" class="Comment">-- Other properties of _+_ and _≡_</a>
|
||
|
||
<a id="m≢1+m+n"></a><a id="15638" href="Data.Nat.Properties.html#15638" class="Function">m≢1+m+n</a> <a id="15646" class="Symbol">:</a> <a id="15648" class="Symbol">∀</a> <a id="15650" href="Data.Nat.Properties.html#15650" class="Bound">m</a> <a id="15652" class="Symbol">{</a><a id="15653" href="Data.Nat.Properties.html#15653" class="Bound">n</a><a id="15654" class="Symbol">}</a> <a id="15656" class="Symbol">→</a> <a id="15658" href="Data.Nat.Properties.html#15650" class="Bound">m</a> <a id="15660" href="Relation.Binary.PropositionalEquality.Core.html#839" class="Function Operator">≢</a> <a id="15662" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="15666" class="Symbol">(</a><a id="15667" href="Data.Nat.Properties.html#15650" class="Bound">m</a> <a id="15669" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="15671" href="Data.Nat.Properties.html#15653" class="Bound">n</a><a id="15672" class="Symbol">)</a>
|
||
<a id="15674" href="Data.Nat.Properties.html#15638" class="Function">m≢1+m+n</a> <a id="15682" class="Symbol">(</a><a id="15683" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="15687" href="Data.Nat.Properties.html#15687" class="Bound">m</a><a id="15688" class="Symbol">)</a> <a id="15690" href="Data.Nat.Properties.html#15690" class="Bound">eq</a> <a id="15693" class="Symbol">=</a> <a id="15695" href="Data.Nat.Properties.html#15638" class="Function">m≢1+m+n</a> <a id="15703" href="Data.Nat.Properties.html#15687" class="Bound">m</a> <a id="15705" class="Symbol">(</a><a id="15706" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="15711" href="Data.Nat.Base.html#2889" class="Function">pred</a> <a id="15716" href="Data.Nat.Properties.html#15690" class="Bound">eq</a><a id="15718" class="Symbol">)</a>
|
||
|
||
<a id="m≢1+n+m"></a><a id="15721" href="Data.Nat.Properties.html#15721" class="Function">m≢1+n+m</a> <a id="15729" class="Symbol">:</a> <a id="15731" class="Symbol">∀</a> <a id="15733" href="Data.Nat.Properties.html#15733" class="Bound">m</a> <a id="15735" class="Symbol">{</a><a id="15736" href="Data.Nat.Properties.html#15736" class="Bound">n</a><a id="15737" class="Symbol">}</a> <a id="15739" class="Symbol">→</a> <a id="15741" href="Data.Nat.Properties.html#15733" class="Bound">m</a> <a id="15743" href="Relation.Binary.PropositionalEquality.Core.html#839" class="Function Operator">≢</a> <a id="15745" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="15749" class="Symbol">(</a><a id="15750" href="Data.Nat.Properties.html#15736" class="Bound">n</a> <a id="15752" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="15754" href="Data.Nat.Properties.html#15733" class="Bound">m</a><a id="15755" class="Symbol">)</a>
|
||
<a id="15757" href="Data.Nat.Properties.html#15721" class="Function">m≢1+n+m</a> <a id="15765" href="Data.Nat.Properties.html#15765" class="Bound">m</a> <a id="15767" href="Data.Nat.Properties.html#15767" class="Bound">m≡1+n+m</a> <a id="15775" class="Symbol">=</a> <a id="15777" href="Data.Nat.Properties.html#15638" class="Function">m≢1+m+n</a> <a id="15785" href="Data.Nat.Properties.html#15765" class="Bound">m</a> <a id="15787" class="Symbol">(</a><a id="15788" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="15794" href="Data.Nat.Properties.html#15767" class="Bound">m≡1+n+m</a> <a id="15802" class="Symbol">(</a><a id="15803" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="15808" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="15812" class="Symbol">(</a><a id="15813" href="Data.Nat.Properties.html#13404" class="Function">+-comm</a> <a id="15820" class="Symbol">_</a> <a id="15822" href="Data.Nat.Properties.html#15765" class="Bound">m</a><a id="15823" class="Symbol">)))</a>
|
||
|
||
<a id="m+1+n≢m"></a><a id="15828" href="Data.Nat.Properties.html#15828" class="Function">m+1+n≢m</a> <a id="15836" class="Symbol">:</a> <a id="15838" class="Symbol">∀</a> <a id="15840" href="Data.Nat.Properties.html#15840" class="Bound">m</a> <a id="15842" class="Symbol">{</a><a id="15843" href="Data.Nat.Properties.html#15843" class="Bound">n</a><a id="15844" class="Symbol">}</a> <a id="15846" class="Symbol">→</a> <a id="15848" href="Data.Nat.Properties.html#15840" class="Bound">m</a> <a id="15850" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="15852" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="15856" href="Data.Nat.Properties.html#15843" class="Bound">n</a> <a id="15858" href="Relation.Binary.PropositionalEquality.Core.html#839" class="Function Operator">≢</a> <a id="15860" href="Data.Nat.Properties.html#15840" class="Bound">m</a>
|
||
<a id="15862" href="Data.Nat.Properties.html#15828" class="Function">m+1+n≢m</a> <a id="15870" class="Symbol">(</a><a id="15871" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="15875" href="Data.Nat.Properties.html#15875" class="Bound">m</a><a id="15876" class="Symbol">)</a> <a id="15878" class="Symbol">=</a> <a id="15880" class="Symbol">(</a><a id="15881" href="Data.Nat.Properties.html#15828" class="Function">m+1+n≢m</a> <a id="15889" href="Data.Nat.Properties.html#15875" class="Bound">m</a><a id="15890" class="Symbol">)</a> <a id="15892" href="Function.Base.html#1040" class="Function Operator">∘</a> <a id="15894" href="Data.Nat.Properties.html#1920" class="Function">suc-injective</a>
|
||
|
||
<a id="m+1+n≢0"></a><a id="15909" href="Data.Nat.Properties.html#15909" class="Function">m+1+n≢0</a> <a id="15917" class="Symbol">:</a> <a id="15919" class="Symbol">∀</a> <a id="15921" href="Data.Nat.Properties.html#15921" class="Bound">m</a> <a id="15923" class="Symbol">{</a><a id="15924" href="Data.Nat.Properties.html#15924" class="Bound">n</a><a id="15925" class="Symbol">}</a> <a id="15927" class="Symbol">→</a> <a id="15929" href="Data.Nat.Properties.html#15921" class="Bound">m</a> <a id="15931" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="15933" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="15937" href="Data.Nat.Properties.html#15924" class="Bound">n</a> <a id="15939" href="Relation.Binary.PropositionalEquality.Core.html#839" class="Function Operator">≢</a> <a id="15941" class="Number">0</a>
|
||
<a id="15943" href="Data.Nat.Properties.html#15909" class="Function">m+1+n≢0</a> <a id="15951" href="Data.Nat.Properties.html#15951" class="Bound">m</a> <a id="15953" class="Symbol">{</a><a id="15954" href="Data.Nat.Properties.html#15954" class="Bound">n</a><a id="15955" class="Symbol">}</a> <a id="15957" class="Keyword">rewrite</a> <a id="15965" href="Data.Nat.Properties.html#12863" class="Function">+-suc</a> <a id="15971" href="Data.Nat.Properties.html#15951" class="Bound">m</a> <a id="15973" href="Data.Nat.Properties.html#15954" class="Bound">n</a> <a id="15975" class="Symbol">=</a> <a id="15977" class="Symbol">λ()</a>
|
||
|
||
<a id="m+n≡0⇒m≡0"></a><a id="15982" href="Data.Nat.Properties.html#15982" class="Function">m+n≡0⇒m≡0</a> <a id="15992" class="Symbol">:</a> <a id="15994" class="Symbol">∀</a> <a id="15996" href="Data.Nat.Properties.html#15996" class="Bound">m</a> <a id="15998" class="Symbol">{</a><a id="15999" href="Data.Nat.Properties.html#15999" class="Bound">n</a><a id="16000" class="Symbol">}</a> <a id="16002" class="Symbol">→</a> <a id="16004" href="Data.Nat.Properties.html#15996" class="Bound">m</a> <a id="16006" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="16008" href="Data.Nat.Properties.html#15999" class="Bound">n</a> <a id="16010" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="16012" class="Number">0</a> <a id="16014" class="Symbol">→</a> <a id="16016" href="Data.Nat.Properties.html#15996" class="Bound">m</a> <a id="16018" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="16020" class="Number">0</a>
|
||
<a id="16022" href="Data.Nat.Properties.html#15982" class="Function">m+n≡0⇒m≡0</a> <a id="16032" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="16037" href="Data.Nat.Properties.html#16037" class="Bound">eq</a> <a id="16040" class="Symbol">=</a> <a id="16042" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
|
||
<a id="m+n≡0⇒n≡0"></a><a id="16048" href="Data.Nat.Properties.html#16048" class="Function">m+n≡0⇒n≡0</a> <a id="16058" class="Symbol">:</a> <a id="16060" class="Symbol">∀</a> <a id="16062" href="Data.Nat.Properties.html#16062" class="Bound">m</a> <a id="16064" class="Symbol">{</a><a id="16065" href="Data.Nat.Properties.html#16065" class="Bound">n</a><a id="16066" class="Symbol">}</a> <a id="16068" class="Symbol">→</a> <a id="16070" href="Data.Nat.Properties.html#16062" class="Bound">m</a> <a id="16072" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="16074" href="Data.Nat.Properties.html#16065" class="Bound">n</a> <a id="16076" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="16078" class="Number">0</a> <a id="16080" class="Symbol">→</a> <a id="16082" href="Data.Nat.Properties.html#16065" class="Bound">n</a> <a id="16084" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="16086" class="Number">0</a>
|
||
<a id="16088" href="Data.Nat.Properties.html#16048" class="Function">m+n≡0⇒n≡0</a> <a id="16098" href="Data.Nat.Properties.html#16098" class="Bound">m</a> <a id="16100" class="Symbol">{</a><a id="16101" href="Data.Nat.Properties.html#16101" class="Bound">n</a><a id="16102" class="Symbol">}</a> <a id="16104" href="Data.Nat.Properties.html#16104" class="Bound">m+n≡0</a> <a id="16110" class="Symbol">=</a> <a id="16112" href="Data.Nat.Properties.html#15982" class="Function">m+n≡0⇒m≡0</a> <a id="16122" href="Data.Nat.Properties.html#16101" class="Bound">n</a> <a id="16124" class="Symbol">(</a><a id="16125" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="16131" class="Symbol">(</a><a id="16132" href="Data.Nat.Properties.html#13404" class="Function">+-comm</a> <a id="16139" href="Data.Nat.Properties.html#16101" class="Bound">n</a> <a id="16141" href="Data.Nat.Properties.html#16098" class="Bound">m</a><a id="16142" class="Symbol">)</a> <a id="16144" class="Symbol">(</a><a id="16145" href="Data.Nat.Properties.html#16104" class="Bound">m+n≡0</a><a id="16150" class="Symbol">))</a>
|
||
|
||
<a id="16154" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="16227" class="Comment">-- Properties of _+_ and _≤_/_<_</a>
|
||
|
||
<a id="+-cancelˡ-≤"></a><a id="16261" href="Data.Nat.Properties.html#16261" class="Function">+-cancelˡ-≤</a> <a id="16273" class="Symbol">:</a> <a id="16275" href="Algebra.Definitions.html#3091" class="Function">LeftCancellative</a> <a id="16292" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="16296" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a>
|
||
<a id="16300" href="Data.Nat.Properties.html#16261" class="Function">+-cancelˡ-≤</a> <a id="16312" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="16320" href="Data.Nat.Properties.html#16320" class="Bound">le</a> <a id="16329" class="Symbol">=</a> <a id="16331" href="Data.Nat.Properties.html#16320" class="Bound">le</a>
|
||
<a id="16334" href="Data.Nat.Properties.html#16261" class="Function">+-cancelˡ-≤</a> <a id="16346" class="Symbol">(</a><a id="16347" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="16351" href="Data.Nat.Properties.html#16351" class="Bound">m</a><a id="16352" class="Symbol">)</a> <a id="16354" class="Symbol">(</a><a id="16355" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="16359" href="Data.Nat.Properties.html#16359" class="Bound">le</a><a id="16361" class="Symbol">)</a> <a id="16363" class="Symbol">=</a> <a id="16365" href="Data.Nat.Properties.html#16261" class="Function">+-cancelˡ-≤</a> <a id="16377" href="Data.Nat.Properties.html#16351" class="Bound">m</a> <a id="16379" href="Data.Nat.Properties.html#16359" class="Bound">le</a>
|
||
|
||
<a id="+-cancelʳ-≤"></a><a id="16383" href="Data.Nat.Properties.html#16383" class="Function">+-cancelʳ-≤</a> <a id="16395" class="Symbol">:</a> <a id="16397" href="Algebra.Definitions.html#3186" class="Function">RightCancellative</a> <a id="16415" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="16419" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a>
|
||
<a id="16423" href="Data.Nat.Properties.html#16383" class="Function">+-cancelʳ-≤</a> <a id="16435" class="Symbol">{</a><a id="16436" href="Data.Nat.Properties.html#16436" class="Bound">m</a><a id="16437" class="Symbol">}</a> <a id="16439" href="Data.Nat.Properties.html#16439" class="Bound">n</a> <a id="16441" href="Data.Nat.Properties.html#16441" class="Bound">o</a> <a id="16443" href="Data.Nat.Properties.html#16443" class="Bound">le</a> <a id="16446" class="Symbol">=</a>
|
||
<a id="16450" href="Data.Nat.Properties.html#16261" class="Function">+-cancelˡ-≤</a> <a id="16462" href="Data.Nat.Properties.html#16436" class="Bound">m</a> <a id="16464" class="Symbol">(</a><a id="16465" href="Relation.Binary.PropositionalEquality.Core.html#1844" class="Function">subst₂</a> <a id="16472" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="16476" class="Symbol">(</a><a id="16477" href="Data.Nat.Properties.html#13404" class="Function">+-comm</a> <a id="16484" href="Data.Nat.Properties.html#16439" class="Bound">n</a> <a id="16486" href="Data.Nat.Properties.html#16436" class="Bound">m</a><a id="16487" class="Symbol">)</a> <a id="16489" class="Symbol">(</a><a id="16490" href="Data.Nat.Properties.html#13404" class="Function">+-comm</a> <a id="16497" href="Data.Nat.Properties.html#16441" class="Bound">o</a> <a id="16499" href="Data.Nat.Properties.html#16436" class="Bound">m</a><a id="16500" class="Symbol">)</a> <a id="16502" href="Data.Nat.Properties.html#16443" class="Bound">le</a><a id="16504" class="Symbol">)</a>
|
||
|
||
<a id="+-cancel-≤"></a><a id="16507" href="Data.Nat.Properties.html#16507" class="Function">+-cancel-≤</a> <a id="16518" class="Symbol">:</a> <a id="16520" href="Algebra.Definitions.html#3283" class="Function">Cancellative</a> <a id="16533" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="16537" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a>
|
||
<a id="16541" href="Data.Nat.Properties.html#16507" class="Function">+-cancel-≤</a> <a id="16552" class="Symbol">=</a> <a id="16554" href="Data.Nat.Properties.html#16261" class="Function">+-cancelˡ-≤</a> <a id="16566" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="16568" href="Data.Nat.Properties.html#16383" class="Function">+-cancelʳ-≤</a>
|
||
|
||
<a id="+-cancelˡ-<"></a><a id="16581" href="Data.Nat.Properties.html#16581" class="Function">+-cancelˡ-<</a> <a id="16593" class="Symbol">:</a> <a id="16595" href="Algebra.Definitions.html#3091" class="Function">LeftCancellative</a> <a id="16612" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="16616" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a>
|
||
<a id="16620" href="Data.Nat.Properties.html#16581" class="Function">+-cancelˡ-<</a> <a id="16632" href="Data.Nat.Properties.html#16632" class="Bound">m</a> <a id="16634" class="Symbol">{</a><a id="16635" href="Data.Nat.Properties.html#16635" class="Bound">n</a><a id="16636" class="Symbol">}</a> <a id="16638" class="Symbol">{</a><a id="16639" href="Data.Nat.Properties.html#16639" class="Bound">o</a><a id="16640" class="Symbol">}</a> <a id="16642" class="Symbol">=</a> <a id="16644" href="Data.Nat.Properties.html#16261" class="Function">+-cancelˡ-≤</a> <a id="16656" href="Data.Nat.Properties.html#16632" class="Bound">m</a> <a id="16658" href="Function.Base.html#1040" class="Function Operator">∘</a> <a id="16660" href="Relation.Binary.PropositionalEquality.Core.html#1789" class="Function">subst</a> <a id="16666" class="Symbol">(</a><a id="16667" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤</a> <a id="16670" href="Data.Nat.Properties.html#16632" class="Bound">m</a> <a id="16672" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="16674" href="Data.Nat.Properties.html#16639" class="Bound">o</a><a id="16675" class="Symbol">)</a> <a id="16677" class="Symbol">(</a><a id="16678" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="16682" class="Symbol">(</a><a id="16683" href="Data.Nat.Properties.html#12863" class="Function">+-suc</a> <a id="16689" href="Data.Nat.Properties.html#16632" class="Bound">m</a> <a id="16691" href="Data.Nat.Properties.html#16635" class="Bound">n</a><a id="16692" class="Symbol">))</a>
|
||
|
||
<a id="+-cancelʳ-<"></a><a id="16696" href="Data.Nat.Properties.html#16696" class="Function">+-cancelʳ-<</a> <a id="16708" class="Symbol">:</a> <a id="16710" href="Algebra.Definitions.html#3186" class="Function">RightCancellative</a> <a id="16728" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="16732" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a>
|
||
<a id="16736" href="Data.Nat.Properties.html#16696" class="Function">+-cancelʳ-<</a> <a id="16748" href="Data.Nat.Properties.html#16748" class="Bound">n</a> <a id="16750" href="Data.Nat.Properties.html#16750" class="Bound">o</a> <a id="16752" href="Data.Nat.Properties.html#16752" class="Bound">n+m<o+m</a> <a id="16760" class="Symbol">=</a> <a id="16762" href="Data.Nat.Properties.html#16383" class="Function">+-cancelʳ-≤</a> <a id="16774" class="Symbol">(</a><a id="16775" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="16779" href="Data.Nat.Properties.html#16748" class="Bound">n</a><a id="16780" class="Symbol">)</a> <a id="16782" href="Data.Nat.Properties.html#16750" class="Bound">o</a> <a id="16784" href="Data.Nat.Properties.html#16752" class="Bound">n+m<o+m</a>
|
||
|
||
<a id="+-cancel-<"></a><a id="16793" href="Data.Nat.Properties.html#16793" class="Function">+-cancel-<</a> <a id="16804" class="Symbol">:</a> <a id="16806" href="Algebra.Definitions.html#3283" class="Function">Cancellative</a> <a id="16819" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="16823" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a>
|
||
<a id="16827" href="Data.Nat.Properties.html#16793" class="Function">+-cancel-<</a> <a id="16838" class="Symbol">=</a> <a id="16840" href="Data.Nat.Properties.html#16581" class="Function">+-cancelˡ-<</a> <a id="16852" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="16854" href="Data.Nat.Properties.html#16696" class="Function">+-cancelʳ-<</a>
|
||
|
||
<a id="≤-stepsˡ"></a><a id="16867" href="Data.Nat.Properties.html#16867" class="Function">≤-stepsˡ</a> <a id="16876" class="Symbol">:</a> <a id="16878" class="Symbol">∀</a> <a id="16880" class="Symbol">{</a><a id="16881" href="Data.Nat.Properties.html#16881" class="Bound">m</a> <a id="16883" href="Data.Nat.Properties.html#16883" class="Bound">n</a><a id="16884" class="Symbol">}</a> <a id="16886" href="Data.Nat.Properties.html#16886" class="Bound">o</a> <a id="16888" class="Symbol">→</a> <a id="16890" href="Data.Nat.Properties.html#16881" class="Bound">m</a> <a id="16892" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="16894" href="Data.Nat.Properties.html#16883" class="Bound">n</a> <a id="16896" class="Symbol">→</a> <a id="16898" href="Data.Nat.Properties.html#16881" class="Bound">m</a> <a id="16900" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="16902" href="Data.Nat.Properties.html#16886" class="Bound">o</a> <a id="16904" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="16906" href="Data.Nat.Properties.html#16883" class="Bound">n</a>
|
||
<a id="16908" href="Data.Nat.Properties.html#16867" class="Function">≤-stepsˡ</a> <a id="16917" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="16925" href="Data.Nat.Properties.html#16925" class="Bound">m≤n</a> <a id="16929" class="Symbol">=</a> <a id="16931" href="Data.Nat.Properties.html#16925" class="Bound">m≤n</a>
|
||
<a id="16935" href="Data.Nat.Properties.html#16867" class="Function">≤-stepsˡ</a> <a id="16944" class="Symbol">(</a><a id="16945" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="16949" href="Data.Nat.Properties.html#16949" class="Bound">o</a><a id="16950" class="Symbol">)</a> <a id="16952" href="Data.Nat.Properties.html#16952" class="Bound">m≤n</a> <a id="16956" class="Symbol">=</a> <a id="16958" href="Data.Nat.Properties.html#7191" class="Function">≤-step</a> <a id="16965" class="Symbol">(</a><a id="16966" href="Data.Nat.Properties.html#16867" class="Function">≤-stepsˡ</a> <a id="16975" href="Data.Nat.Properties.html#16949" class="Bound">o</a> <a id="16977" href="Data.Nat.Properties.html#16952" class="Bound">m≤n</a><a id="16980" class="Symbol">)</a>
|
||
|
||
<a id="≤-stepsʳ"></a><a id="16983" href="Data.Nat.Properties.html#16983" class="Function">≤-stepsʳ</a> <a id="16992" class="Symbol">:</a> <a id="16994" class="Symbol">∀</a> <a id="16996" class="Symbol">{</a><a id="16997" href="Data.Nat.Properties.html#16997" class="Bound">m</a> <a id="16999" href="Data.Nat.Properties.html#16999" class="Bound">n</a><a id="17000" class="Symbol">}</a> <a id="17002" href="Data.Nat.Properties.html#17002" class="Bound">o</a> <a id="17004" class="Symbol">→</a> <a id="17006" href="Data.Nat.Properties.html#16997" class="Bound">m</a> <a id="17008" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="17010" href="Data.Nat.Properties.html#16999" class="Bound">n</a> <a id="17012" class="Symbol">→</a> <a id="17014" href="Data.Nat.Properties.html#16997" class="Bound">m</a> <a id="17016" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="17018" href="Data.Nat.Properties.html#16999" class="Bound">n</a> <a id="17020" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="17022" href="Data.Nat.Properties.html#17002" class="Bound">o</a>
|
||
<a id="17024" href="Data.Nat.Properties.html#16983" class="Function">≤-stepsʳ</a> <a id="17033" class="Symbol">{</a><a id="17034" href="Data.Nat.Properties.html#17034" class="Bound">m</a><a id="17035" class="Symbol">}</a> <a id="17037" href="Data.Nat.Properties.html#17037" class="Bound">o</a> <a id="17039" href="Data.Nat.Properties.html#17039" class="Bound">m≤n</a> <a id="17043" class="Symbol">=</a> <a id="17045" href="Relation.Binary.PropositionalEquality.Core.html#1789" class="Function">subst</a> <a id="17051" class="Symbol">(</a><a id="17052" href="Data.Nat.Properties.html#17034" class="Bound">m</a> <a id="17054" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤_</a><a id="17056" class="Symbol">)</a> <a id="17058" class="Symbol">(</a><a id="17059" href="Data.Nat.Properties.html#13404" class="Function">+-comm</a> <a id="17066" href="Data.Nat.Properties.html#17037" class="Bound">o</a> <a id="17068" class="Symbol">_)</a> <a id="17071" class="Symbol">(</a><a id="17072" href="Data.Nat.Properties.html#16867" class="Function">≤-stepsˡ</a> <a id="17081" href="Data.Nat.Properties.html#17037" class="Bound">o</a> <a id="17083" href="Data.Nat.Properties.html#17039" class="Bound">m≤n</a><a id="17086" class="Symbol">)</a>
|
||
|
||
<a id="m≤m+n"></a><a id="17089" href="Data.Nat.Properties.html#17089" class="Function">m≤m+n</a> <a id="17095" class="Symbol">:</a> <a id="17097" class="Symbol">∀</a> <a id="17099" href="Data.Nat.Properties.html#17099" class="Bound">m</a> <a id="17101" href="Data.Nat.Properties.html#17101" class="Bound">n</a> <a id="17103" class="Symbol">→</a> <a id="17105" href="Data.Nat.Properties.html#17099" class="Bound">m</a> <a id="17107" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="17109" href="Data.Nat.Properties.html#17099" class="Bound">m</a> <a id="17111" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="17113" href="Data.Nat.Properties.html#17101" class="Bound">n</a>
|
||
<a id="17115" href="Data.Nat.Properties.html#17089" class="Function">m≤m+n</a> <a id="17121" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="17129" href="Data.Nat.Properties.html#17129" class="Bound">n</a> <a id="17131" class="Symbol">=</a> <a id="17133" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="17137" href="Data.Nat.Properties.html#17089" class="Function">m≤m+n</a> <a id="17143" class="Symbol">(</a><a id="17144" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="17148" href="Data.Nat.Properties.html#17148" class="Bound">m</a><a id="17149" class="Symbol">)</a> <a id="17151" href="Data.Nat.Properties.html#17151" class="Bound">n</a> <a id="17153" class="Symbol">=</a> <a id="17155" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="17159" class="Symbol">(</a><a id="17160" href="Data.Nat.Properties.html#17089" class="Function">m≤m+n</a> <a id="17166" href="Data.Nat.Properties.html#17148" class="Bound">m</a> <a id="17168" href="Data.Nat.Properties.html#17151" class="Bound">n</a><a id="17169" class="Symbol">)</a>
|
||
|
||
<a id="m≤n+m"></a><a id="17172" href="Data.Nat.Properties.html#17172" class="Function">m≤n+m</a> <a id="17178" class="Symbol">:</a> <a id="17180" class="Symbol">∀</a> <a id="17182" href="Data.Nat.Properties.html#17182" class="Bound">m</a> <a id="17184" href="Data.Nat.Properties.html#17184" class="Bound">n</a> <a id="17186" class="Symbol">→</a> <a id="17188" href="Data.Nat.Properties.html#17182" class="Bound">m</a> <a id="17190" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="17192" href="Data.Nat.Properties.html#17184" class="Bound">n</a> <a id="17194" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="17196" href="Data.Nat.Properties.html#17182" class="Bound">m</a>
|
||
<a id="17198" href="Data.Nat.Properties.html#17172" class="Function">m≤n+m</a> <a id="17204" href="Data.Nat.Properties.html#17204" class="Bound">m</a> <a id="17206" href="Data.Nat.Properties.html#17206" class="Bound">n</a> <a id="17208" class="Symbol">=</a> <a id="17210" href="Relation.Binary.PropositionalEquality.Core.html#1789" class="Function">subst</a> <a id="17216" class="Symbol">(</a><a id="17217" href="Data.Nat.Properties.html#17204" class="Bound">m</a> <a id="17219" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤_</a><a id="17221" class="Symbol">)</a> <a id="17223" class="Symbol">(</a><a id="17224" href="Data.Nat.Properties.html#13404" class="Function">+-comm</a> <a id="17231" href="Data.Nat.Properties.html#17204" class="Bound">m</a> <a id="17233" href="Data.Nat.Properties.html#17206" class="Bound">n</a><a id="17234" class="Symbol">)</a> <a id="17236" class="Symbol">(</a><a id="17237" href="Data.Nat.Properties.html#17089" class="Function">m≤m+n</a> <a id="17243" href="Data.Nat.Properties.html#17204" class="Bound">m</a> <a id="17245" href="Data.Nat.Properties.html#17206" class="Bound">n</a><a id="17246" class="Symbol">)</a>
|
||
|
||
<a id="m≤n⇒m<n∨m≡n"></a><a id="17249" href="Data.Nat.Properties.html#17249" class="Function">m≤n⇒m<n∨m≡n</a> <a id="17261" class="Symbol">:</a> <a id="17264" class="Symbol">∀</a> <a id="17266" class="Symbol">{</a><a id="17267" href="Data.Nat.Properties.html#17267" class="Bound">m</a> <a id="17269" href="Data.Nat.Properties.html#17269" class="Bound">n</a><a id="17270" class="Symbol">}</a> <a id="17272" class="Symbol">→</a> <a id="17274" href="Data.Nat.Properties.html#17267" class="Bound">m</a> <a id="17276" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="17278" href="Data.Nat.Properties.html#17269" class="Bound">n</a> <a id="17280" class="Symbol">→</a> <a id="17282" href="Data.Nat.Properties.html#17267" class="Bound">m</a> <a id="17284" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="17286" href="Data.Nat.Properties.html#17269" class="Bound">n</a> <a id="17288" href="Data.Sum.Base.html#743" class="Datatype Operator">⊎</a> <a id="17290" href="Data.Nat.Properties.html#17267" class="Bound">m</a> <a id="17292" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="17294" href="Data.Nat.Properties.html#17269" class="Bound">n</a>
|
||
<a id="17296" href="Data.Nat.Properties.html#17249" class="Function">m≤n⇒m<n∨m≡n</a> <a id="17308" class="Symbol">{</a><a id="17309" class="Number">0</a><a id="17310" class="Symbol">}</a> <a id="17316" class="Symbol">{</a><a id="17317" class="Number">0</a><a id="17318" class="Symbol">}</a> <a id="17324" class="Symbol">_</a> <a id="17335" class="Symbol">=</a> <a id="17338" href="Data.Sum.Base.html#818" class="InductiveConstructor">inj₂</a> <a id="17343" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="17348" href="Data.Nat.Properties.html#17249" class="Function">m≤n⇒m<n∨m≡n</a> <a id="17360" class="Symbol">{</a><a id="17361" class="Number">0</a><a id="17362" class="Symbol">}</a> <a id="17368" class="Symbol">{</a><a id="17369" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</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="17387" class="Symbol">=</a> <a id="17390" href="Data.Sum.Base.html#793" class="InductiveConstructor">inj₁</a> <a id="17395" href="Data.Nat.Properties.html#11182" class="Function">0<1+n</a>
|
||
<a id="17401" href="Data.Nat.Properties.html#17249" class="Function">m≤n⇒m<n∨m≡n</a> <a id="17413" class="Symbol">{</a><a id="17414" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="17418" href="Data.Nat.Properties.html#17418" class="Bound">m</a><a id="17419" class="Symbol">}</a> <a id="17421" class="Symbol">{</a><a id="17422" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="17426" href="Data.Nat.Properties.html#17426" class="Bound">n</a><a id="17427" class="Symbol">}</a> <a id="17429" class="Symbol">(</a><a id="17430" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="17434" href="Data.Nat.Properties.html#17434" class="Bound">m≤n</a><a id="17437" class="Symbol">)</a> <a id="17440" class="Keyword">with</a> <a id="17445" href="Data.Nat.Properties.html#17249" class="Function">m≤n⇒m<n∨m≡n</a> <a id="17457" href="Data.Nat.Properties.html#17434" class="Bound">m≤n</a>
|
||
<a id="17461" class="Symbol">...</a> <a id="17465" class="Symbol">|</a> <a id="17467" href="Data.Sum.Base.html#818" class="InductiveConstructor">inj₂</a> <a id="17472" href="Data.Nat.Properties.html#17472" class="Bound">m≡n</a> <a id="17476" class="Symbol">=</a> <a id="17478" href="Data.Sum.Base.html#818" class="InductiveConstructor">inj₂</a> <a id="17483" class="Symbol">(</a><a id="17484" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="17489" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="17493" href="Data.Nat.Properties.html#17472" class="Bound">m≡n</a><a id="17496" class="Symbol">)</a>
|
||
<a id="17498" class="Symbol">...</a> <a id="17502" class="Symbol">|</a> <a id="17504" href="Data.Sum.Base.html#793" class="InductiveConstructor">inj₁</a> <a id="17509" href="Data.Nat.Properties.html#17509" class="Bound">m<n</a> <a id="17513" class="Symbol">=</a> <a id="17515" href="Data.Sum.Base.html#793" class="InductiveConstructor">inj₁</a> <a id="17520" class="Symbol">(</a><a id="17521" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="17525" href="Data.Nat.Properties.html#17509" class="Bound">m<n</a><a id="17528" class="Symbol">)</a>
|
||
|
||
<a id="m+n≤o⇒m≤o"></a><a id="17531" href="Data.Nat.Properties.html#17531" class="Function">m+n≤o⇒m≤o</a> <a id="17541" class="Symbol">:</a> <a id="17543" class="Symbol">∀</a> <a id="17545" href="Data.Nat.Properties.html#17545" class="Bound">m</a> <a id="17547" class="Symbol">{</a><a id="17548" href="Data.Nat.Properties.html#17548" class="Bound">n</a> <a id="17550" href="Data.Nat.Properties.html#17550" class="Bound">o</a><a id="17551" class="Symbol">}</a> <a id="17553" class="Symbol">→</a> <a id="17555" href="Data.Nat.Properties.html#17545" class="Bound">m</a> <a id="17557" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="17559" href="Data.Nat.Properties.html#17548" class="Bound">n</a> <a id="17561" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="17563" href="Data.Nat.Properties.html#17550" class="Bound">o</a> <a id="17565" class="Symbol">→</a> <a id="17567" href="Data.Nat.Properties.html#17545" class="Bound">m</a> <a id="17569" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="17571" href="Data.Nat.Properties.html#17550" class="Bound">o</a>
|
||
<a id="17573" href="Data.Nat.Properties.html#17531" class="Function">m+n≤o⇒m≤o</a> <a id="17583" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="17591" href="Data.Nat.Properties.html#17591" class="Bound">m+n≤o</a> <a id="17603" class="Symbol">=</a> <a id="17605" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="17609" href="Data.Nat.Properties.html#17531" class="Function">m+n≤o⇒m≤o</a> <a id="17619" class="Symbol">(</a><a id="17620" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="17624" href="Data.Nat.Properties.html#17624" class="Bound">m</a><a id="17625" class="Symbol">)</a> <a id="17627" class="Symbol">(</a><a id="17628" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="17632" href="Data.Nat.Properties.html#17632" class="Bound">m+n≤o</a><a id="17637" class="Symbol">)</a> <a id="17639" class="Symbol">=</a> <a id="17641" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="17645" class="Symbol">(</a><a id="17646" href="Data.Nat.Properties.html#17531" class="Function">m+n≤o⇒m≤o</a> <a id="17656" href="Data.Nat.Properties.html#17624" class="Bound">m</a> <a id="17658" href="Data.Nat.Properties.html#17632" class="Bound">m+n≤o</a><a id="17663" class="Symbol">)</a>
|
||
|
||
<a id="m+n≤o⇒n≤o"></a><a id="17666" href="Data.Nat.Properties.html#17666" class="Function">m+n≤o⇒n≤o</a> <a id="17676" class="Symbol">:</a> <a id="17678" class="Symbol">∀</a> <a id="17680" href="Data.Nat.Properties.html#17680" class="Bound">m</a> <a id="17682" class="Symbol">{</a><a id="17683" href="Data.Nat.Properties.html#17683" class="Bound">n</a> <a id="17685" href="Data.Nat.Properties.html#17685" class="Bound">o</a><a id="17686" class="Symbol">}</a> <a id="17688" class="Symbol">→</a> <a id="17690" href="Data.Nat.Properties.html#17680" class="Bound">m</a> <a id="17692" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="17694" href="Data.Nat.Properties.html#17683" class="Bound">n</a> <a id="17696" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="17698" href="Data.Nat.Properties.html#17685" class="Bound">o</a> <a id="17700" class="Symbol">→</a> <a id="17702" href="Data.Nat.Properties.html#17683" class="Bound">n</a> <a id="17704" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="17706" href="Data.Nat.Properties.html#17685" class="Bound">o</a>
|
||
<a id="17708" href="Data.Nat.Properties.html#17666" class="Function">m+n≤o⇒n≤o</a> <a id="17718" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="17726" href="Data.Nat.Properties.html#17726" class="Bound">n≤o</a> <a id="17732" class="Symbol">=</a> <a id="17734" href="Data.Nat.Properties.html#17726" class="Bound">n≤o</a>
|
||
<a id="17738" href="Data.Nat.Properties.html#17666" class="Function">m+n≤o⇒n≤o</a> <a id="17748" class="Symbol">(</a><a id="17749" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="17753" href="Data.Nat.Properties.html#17753" class="Bound">m</a><a id="17754" class="Symbol">)</a> <a id="17756" href="Data.Nat.Properties.html#17756" class="Bound">m+n<o</a> <a id="17762" class="Symbol">=</a> <a id="17764" href="Data.Nat.Properties.html#17666" class="Function">m+n≤o⇒n≤o</a> <a id="17774" href="Data.Nat.Properties.html#17753" class="Bound">m</a> <a id="17776" class="Symbol">(</a><a id="17777" href="Data.Nat.Properties.html#7658" class="Function"><⇒≤</a> <a id="17781" href="Data.Nat.Properties.html#17756" class="Bound">m+n<o</a><a id="17786" class="Symbol">)</a>
|
||
|
||
<a id="+-mono-≤"></a><a id="17789" href="Data.Nat.Properties.html#17789" class="Function">+-mono-≤</a> <a id="17798" class="Symbol">:</a> <a id="17800" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a> <a id="17804" href="Relation.Binary.Core.html#1698" class="Function Operator">Preserves₂</a> <a id="17815" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="17819" href="Relation.Binary.Core.html#1698" class="Function Operator">⟶</a> <a id="17821" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="17825" href="Relation.Binary.Core.html#1698" class="Function Operator">⟶</a> <a id="17827" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="17831" href="Data.Nat.Properties.html#17789" class="Function">+-mono-≤</a> <a id="17840" class="Symbol">{_}</a> <a id="17844" class="Symbol">{</a><a id="17845" href="Data.Nat.Properties.html#17845" class="Bound">m</a><a id="17846" class="Symbol">}</a> <a id="17848" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="17858" href="Data.Nat.Properties.html#17858" class="Bound">o≤p</a> <a id="17862" class="Symbol">=</a> <a id="17864" href="Data.Nat.Properties.html#4757" class="Function">≤-trans</a> <a id="17872" href="Data.Nat.Properties.html#17858" class="Bound">o≤p</a> <a id="17876" class="Symbol">(</a><a id="17877" href="Data.Nat.Properties.html#17172" class="Function">m≤n+m</a> <a id="17883" class="Symbol">_</a> <a id="17885" href="Data.Nat.Properties.html#17845" class="Bound">m</a><a id="17886" class="Symbol">)</a>
|
||
<a id="17888" href="Data.Nat.Properties.html#17789" class="Function">+-mono-≤</a> <a id="17897" class="Symbol">{_}</a> <a id="17901" class="Symbol">{_}</a> <a id="17905" class="Symbol">(</a><a id="17906" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="17910" href="Data.Nat.Properties.html#17910" class="Bound">m≤n</a><a id="17913" class="Symbol">)</a> <a id="17915" href="Data.Nat.Properties.html#17915" class="Bound">o≤p</a> <a id="17919" class="Symbol">=</a> <a id="17921" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="17925" class="Symbol">(</a><a id="17926" href="Data.Nat.Properties.html#17789" class="Function">+-mono-≤</a> <a id="17935" href="Data.Nat.Properties.html#17910" class="Bound">m≤n</a> <a id="17939" href="Data.Nat.Properties.html#17915" class="Bound">o≤p</a><a id="17942" class="Symbol">)</a>
|
||
|
||
<a id="+-monoˡ-≤"></a><a id="17945" href="Data.Nat.Properties.html#17945" class="Function">+-monoˡ-≤</a> <a id="17955" class="Symbol">:</a> <a id="17957" class="Symbol">∀</a> <a id="17959" href="Data.Nat.Properties.html#17959" class="Bound">n</a> <a id="17961" class="Symbol">→</a> <a id="17963" class="Symbol">(</a><a id="17964" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+</a> <a id="17967" href="Data.Nat.Properties.html#17959" class="Bound">n</a><a id="17968" class="Symbol">)</a> <a id="17970" href="Relation.Binary.Core.html#1572" class="Function Operator">Preserves</a> <a id="17980" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="17984" href="Relation.Binary.Core.html#1572" class="Function Operator">⟶</a> <a id="17986" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="17990" href="Data.Nat.Properties.html#17945" class="Function">+-monoˡ-≤</a> <a id="18000" href="Data.Nat.Properties.html#18000" class="Bound">n</a> <a id="18002" href="Data.Nat.Properties.html#18002" class="Bound">m≤o</a> <a id="18006" class="Symbol">=</a> <a id="18008" href="Data.Nat.Properties.html#17789" class="Function">+-mono-≤</a> <a id="18017" href="Data.Nat.Properties.html#18002" class="Bound">m≤o</a> <a id="18021" class="Symbol">(</a><a id="18022" href="Data.Nat.Properties.html#4574" class="Function">≤-refl</a> <a id="18029" class="Symbol">{</a><a id="18030" href="Data.Nat.Properties.html#18000" class="Bound">n</a><a id="18031" class="Symbol">})</a>
|
||
|
||
<a id="+-monoʳ-≤"></a><a id="18035" href="Data.Nat.Properties.html#18035" class="Function">+-monoʳ-≤</a> <a id="18045" class="Symbol">:</a> <a id="18047" class="Symbol">∀</a> <a id="18049" href="Data.Nat.Properties.html#18049" class="Bound">n</a> <a id="18051" class="Symbol">→</a> <a id="18053" class="Symbol">(</a><a id="18054" href="Data.Nat.Properties.html#18049" class="Bound">n</a> <a id="18056" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+_</a><a id="18058" class="Symbol">)</a> <a id="18060" href="Relation.Binary.Core.html#1572" class="Function Operator">Preserves</a> <a id="18070" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="18074" href="Relation.Binary.Core.html#1572" class="Function Operator">⟶</a> <a id="18076" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="18080" href="Data.Nat.Properties.html#18035" class="Function">+-monoʳ-≤</a> <a id="18090" href="Data.Nat.Properties.html#18090" class="Bound">n</a> <a id="18092" href="Data.Nat.Properties.html#18092" class="Bound">m≤o</a> <a id="18096" class="Symbol">=</a> <a id="18098" href="Data.Nat.Properties.html#17789" class="Function">+-mono-≤</a> <a id="18107" class="Symbol">(</a><a id="18108" href="Data.Nat.Properties.html#4574" class="Function">≤-refl</a> <a id="18115" class="Symbol">{</a><a id="18116" href="Data.Nat.Properties.html#18090" class="Bound">n</a><a id="18117" class="Symbol">})</a> <a id="18120" href="Data.Nat.Properties.html#18092" class="Bound">m≤o</a>
|
||
|
||
<a id="+-mono-<-≤"></a><a id="18125" href="Data.Nat.Properties.html#18125" class="Function">+-mono-<-≤</a> <a id="18136" class="Symbol">:</a> <a id="18138" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a> <a id="18142" href="Relation.Binary.Core.html#1698" class="Function Operator">Preserves₂</a> <a id="18153" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="18157" href="Relation.Binary.Core.html#1698" class="Function Operator">⟶</a> <a id="18159" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="18163" href="Relation.Binary.Core.html#1698" class="Function Operator">⟶</a> <a id="18165" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a>
|
||
<a id="18169" href="Data.Nat.Properties.html#18125" class="Function">+-mono-<-≤</a> <a id="18180" class="Symbol">{_}</a> <a id="18184" class="Symbol">{</a><a id="18185" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="18189" href="Data.Nat.Properties.html#18189" class="Bound">n</a><a id="18190" class="Symbol">}</a> <a id="18192" class="Symbol">(</a><a id="18193" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="18197" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a><a id="18200" class="Symbol">)</a> <a id="18208" href="Data.Nat.Properties.html#18208" class="Bound">o≤p</a> <a id="18212" class="Symbol">=</a> <a id="18214" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="18218" class="Symbol">(</a><a id="18219" href="Data.Nat.Properties.html#16867" class="Function">≤-stepsˡ</a> <a id="18228" href="Data.Nat.Properties.html#18189" class="Bound">n</a> <a id="18230" href="Data.Nat.Properties.html#18208" class="Bound">o≤p</a><a id="18233" class="Symbol">)</a>
|
||
<a id="18235" href="Data.Nat.Properties.html#18125" class="Function">+-mono-<-≤</a> <a id="18246" class="Symbol">{_}</a> <a id="18250" class="Symbol">{_}</a> <a id="18258" class="Symbol">(</a><a id="18259" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="18263" class="Symbol">(</a><a id="18264" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="18268" href="Data.Nat.Properties.html#18268" class="Bound">m<n</a><a id="18271" class="Symbol">))</a> <a id="18274" href="Data.Nat.Properties.html#18274" class="Bound">o≤p</a> <a id="18278" class="Symbol">=</a> <a id="18280" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="18284" class="Symbol">(</a><a id="18285" href="Data.Nat.Properties.html#18125" class="Function">+-mono-<-≤</a> <a id="18296" class="Symbol">(</a><a id="18297" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="18301" href="Data.Nat.Properties.html#18268" class="Bound">m<n</a><a id="18304" class="Symbol">)</a> <a id="18306" href="Data.Nat.Properties.html#18274" class="Bound">o≤p</a><a id="18309" class="Symbol">)</a>
|
||
|
||
<a id="+-mono-≤-<"></a><a id="18312" href="Data.Nat.Properties.html#18312" class="Function">+-mono-≤-<</a> <a id="18323" class="Symbol">:</a> <a id="18325" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a> <a id="18329" href="Relation.Binary.Core.html#1698" class="Function Operator">Preserves₂</a> <a id="18340" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="18344" href="Relation.Binary.Core.html#1698" class="Function Operator">⟶</a> <a id="18346" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="18350" href="Relation.Binary.Core.html#1698" class="Function Operator">⟶</a> <a id="18352" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a>
|
||
<a id="18356" href="Data.Nat.Properties.html#18312" class="Function">+-mono-≤-<</a> <a id="18367" class="Symbol">{_}</a> <a id="18371" class="Symbol">{</a><a id="18372" href="Data.Nat.Properties.html#18372" class="Bound">n</a><a id="18373" class="Symbol">}</a> <a id="18375" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="18385" href="Data.Nat.Properties.html#18385" class="Bound">o<p</a> <a id="18389" class="Symbol">=</a> <a id="18391" href="Data.Nat.Properties.html#4757" class="Function">≤-trans</a> <a id="18399" href="Data.Nat.Properties.html#18385" class="Bound">o<p</a> <a id="18403" class="Symbol">(</a><a id="18404" href="Data.Nat.Properties.html#17172" class="Function">m≤n+m</a> <a id="18410" class="Symbol">_</a> <a id="18412" href="Data.Nat.Properties.html#18372" class="Bound">n</a><a id="18413" class="Symbol">)</a>
|
||
<a id="18415" href="Data.Nat.Properties.html#18312" class="Function">+-mono-≤-<</a> <a id="18426" class="Symbol">{_}</a> <a id="18430" class="Symbol">{_}</a> <a id="18434" class="Symbol">(</a><a id="18435" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="18439" href="Data.Nat.Properties.html#18439" class="Bound">m≤n</a><a id="18442" class="Symbol">)</a> <a id="18444" href="Data.Nat.Properties.html#18444" class="Bound">o<p</a> <a id="18448" class="Symbol">=</a> <a id="18450" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="18454" class="Symbol">(</a><a id="18455" href="Data.Nat.Properties.html#18312" class="Function">+-mono-≤-<</a> <a id="18466" href="Data.Nat.Properties.html#18439" class="Bound">m≤n</a> <a id="18470" href="Data.Nat.Properties.html#18444" class="Bound">o<p</a><a id="18473" class="Symbol">)</a>
|
||
|
||
<a id="+-mono-<"></a><a id="18476" href="Data.Nat.Properties.html#18476" class="Function">+-mono-<</a> <a id="18485" class="Symbol">:</a> <a id="18487" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a> <a id="18491" href="Relation.Binary.Core.html#1698" class="Function Operator">Preserves₂</a> <a id="18502" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="18506" href="Relation.Binary.Core.html#1698" class="Function Operator">⟶</a> <a id="18508" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="18512" href="Relation.Binary.Core.html#1698" class="Function Operator">⟶</a> <a id="18514" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a>
|
||
<a id="18518" href="Data.Nat.Properties.html#18476" class="Function">+-mono-<</a> <a id="18527" href="Data.Nat.Properties.html#18527" class="Bound">m≤n</a> <a id="18531" class="Symbol">=</a> <a id="18533" href="Data.Nat.Properties.html#18312" class="Function">+-mono-≤-<</a> <a id="18544" class="Symbol">(</a><a id="18545" href="Data.Nat.Properties.html#7658" class="Function"><⇒≤</a> <a id="18549" href="Data.Nat.Properties.html#18527" class="Bound">m≤n</a><a id="18552" class="Symbol">)</a>
|
||
|
||
<a id="+-monoˡ-<"></a><a id="18555" href="Data.Nat.Properties.html#18555" class="Function">+-monoˡ-<</a> <a id="18565" class="Symbol">:</a> <a id="18567" class="Symbol">∀</a> <a id="18569" href="Data.Nat.Properties.html#18569" class="Bound">n</a> <a id="18571" class="Symbol">→</a> <a id="18573" class="Symbol">(</a><a id="18574" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+</a> <a id="18577" href="Data.Nat.Properties.html#18569" class="Bound">n</a><a id="18578" class="Symbol">)</a> <a id="18580" href="Relation.Binary.Core.html#1572" class="Function Operator">Preserves</a> <a id="18590" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="18594" href="Relation.Binary.Core.html#1572" class="Function Operator">⟶</a> <a id="18596" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a>
|
||
<a id="18600" href="Data.Nat.Properties.html#18555" class="Function">+-monoˡ-<</a> <a id="18610" href="Data.Nat.Properties.html#18610" class="Bound">n</a> <a id="18612" class="Symbol">=</a> <a id="18614" href="Data.Nat.Properties.html#17945" class="Function">+-monoˡ-≤</a> <a id="18624" href="Data.Nat.Properties.html#18610" class="Bound">n</a>
|
||
|
||
<a id="+-monoʳ-<"></a><a id="18627" href="Data.Nat.Properties.html#18627" class="Function">+-monoʳ-<</a> <a id="18637" class="Symbol">:</a> <a id="18639" class="Symbol">∀</a> <a id="18641" href="Data.Nat.Properties.html#18641" class="Bound">n</a> <a id="18643" class="Symbol">→</a> <a id="18645" class="Symbol">(</a><a id="18646" href="Data.Nat.Properties.html#18641" class="Bound">n</a> <a id="18648" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+_</a><a id="18650" class="Symbol">)</a> <a id="18652" href="Relation.Binary.Core.html#1572" class="Function Operator">Preserves</a> <a id="18662" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="18666" href="Relation.Binary.Core.html#1572" class="Function Operator">⟶</a> <a id="18668" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a>
|
||
<a id="18672" href="Data.Nat.Properties.html#18627" class="Function">+-monoʳ-<</a> <a id="18682" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="18690" href="Data.Nat.Properties.html#18690" class="Bound">m≤o</a> <a id="18694" class="Symbol">=</a> <a id="18696" href="Data.Nat.Properties.html#18690" class="Bound">m≤o</a>
|
||
<a id="18700" href="Data.Nat.Properties.html#18627" class="Function">+-monoʳ-<</a> <a id="18710" class="Symbol">(</a><a id="18711" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="18715" href="Data.Nat.Properties.html#18715" class="Bound">n</a><a id="18716" class="Symbol">)</a> <a id="18718" href="Data.Nat.Properties.html#18718" class="Bound">m≤o</a> <a id="18722" class="Symbol">=</a> <a id="18724" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="18728" class="Symbol">(</a><a id="18729" href="Data.Nat.Properties.html#18627" class="Function">+-monoʳ-<</a> <a id="18739" href="Data.Nat.Properties.html#18715" class="Bound">n</a> <a id="18741" href="Data.Nat.Properties.html#18718" class="Bound">m≤o</a><a id="18744" class="Symbol">)</a>
|
||
|
||
<a id="m+1+n≰m"></a><a id="18747" href="Data.Nat.Properties.html#18747" class="Function">m+1+n≰m</a> <a id="18755" class="Symbol">:</a> <a id="18757" class="Symbol">∀</a> <a id="18759" href="Data.Nat.Properties.html#18759" class="Bound">m</a> <a id="18761" class="Symbol">{</a><a id="18762" href="Data.Nat.Properties.html#18762" class="Bound">n</a><a id="18763" class="Symbol">}</a> <a id="18765" class="Symbol">→</a> <a id="18767" href="Data.Nat.Properties.html#18759" class="Bound">m</a> <a id="18769" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="18771" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="18775" href="Data.Nat.Properties.html#18762" class="Bound">n</a> <a id="18777" href="Data.Nat.Base.html#1748" class="Function Operator">≰</a> <a id="18779" href="Data.Nat.Properties.html#18759" class="Bound">m</a>
|
||
<a id="18781" href="Data.Nat.Properties.html#18747" class="Function">m+1+n≰m</a> <a id="18789" class="Symbol">(</a><a id="18790" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="18794" href="Data.Nat.Properties.html#18794" class="Bound">m</a><a id="18795" class="Symbol">)</a> <a id="18797" href="Data.Nat.Properties.html#18797" class="Bound">le</a> <a id="18800" class="Symbol">=</a> <a id="18802" href="Data.Nat.Properties.html#18747" class="Function">m+1+n≰m</a> <a id="18810" href="Data.Nat.Properties.html#18794" class="Bound">m</a> <a id="18812" class="Symbol">(</a><a id="18813" href="Data.Nat.Properties.Core.html#520" class="Function">≤-pred</a> <a id="18820" href="Data.Nat.Properties.html#18797" class="Bound">le</a><a id="18822" class="Symbol">)</a>
|
||
|
||
<a id="m<m+n"></a><a id="18825" href="Data.Nat.Properties.html#18825" class="Function">m<m+n</a> <a id="18831" class="Symbol">:</a> <a id="18833" class="Symbol">∀</a> <a id="18835" href="Data.Nat.Properties.html#18835" class="Bound">m</a> <a id="18837" class="Symbol">{</a><a id="18838" href="Data.Nat.Properties.html#18838" class="Bound">n</a><a id="18839" class="Symbol">}</a> <a id="18841" class="Symbol">→</a> <a id="18843" href="Data.Nat.Properties.html#18838" class="Bound">n</a> <a id="18845" href="Data.Nat.Base.html#1718" class="Function Operator">></a> <a id="18847" class="Number">0</a> <a id="18849" class="Symbol">→</a> <a id="18851" href="Data.Nat.Properties.html#18835" class="Bound">m</a> <a id="18853" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="18855" href="Data.Nat.Properties.html#18835" class="Bound">m</a> <a id="18857" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="18859" href="Data.Nat.Properties.html#18838" class="Bound">n</a>
|
||
<a id="18861" href="Data.Nat.Properties.html#18825" class="Function">m<m+n</a> <a id="18867" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="18875" href="Data.Nat.Properties.html#18875" class="Bound">n>0</a> <a id="18879" class="Symbol">=</a> <a id="18881" href="Data.Nat.Properties.html#18875" class="Bound">n>0</a>
|
||
<a id="18885" href="Data.Nat.Properties.html#18825" class="Function">m<m+n</a> <a id="18891" class="Symbol">(</a><a id="18892" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="18896" href="Data.Nat.Properties.html#18896" class="Bound">m</a><a id="18897" class="Symbol">)</a> <a id="18899" href="Data.Nat.Properties.html#18899" class="Bound">n>0</a> <a id="18903" class="Symbol">=</a> <a id="18905" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="18909" class="Symbol">(</a><a id="18910" href="Data.Nat.Properties.html#18825" class="Function">m<m+n</a> <a id="18916" href="Data.Nat.Properties.html#18896" class="Bound">m</a> <a id="18918" href="Data.Nat.Properties.html#18899" class="Bound">n>0</a><a id="18921" class="Symbol">)</a>
|
||
|
||
<a id="m<n+m"></a><a id="18924" href="Data.Nat.Properties.html#18924" class="Function">m<n+m</a> <a id="18930" class="Symbol">:</a> <a id="18932" class="Symbol">∀</a> <a id="18934" href="Data.Nat.Properties.html#18934" class="Bound">m</a> <a id="18936" class="Symbol">{</a><a id="18937" href="Data.Nat.Properties.html#18937" class="Bound">n</a><a id="18938" class="Symbol">}</a> <a id="18940" class="Symbol">→</a> <a id="18942" href="Data.Nat.Properties.html#18937" class="Bound">n</a> <a id="18944" href="Data.Nat.Base.html#1718" class="Function Operator">></a> <a id="18946" class="Number">0</a> <a id="18948" class="Symbol">→</a> <a id="18950" href="Data.Nat.Properties.html#18934" class="Bound">m</a> <a id="18952" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="18954" href="Data.Nat.Properties.html#18937" class="Bound">n</a> <a id="18956" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="18958" href="Data.Nat.Properties.html#18934" class="Bound">m</a>
|
||
<a id="18960" href="Data.Nat.Properties.html#18924" class="Function">m<n+m</a> <a id="18966" href="Data.Nat.Properties.html#18966" class="Bound">m</a> <a id="18968" class="Symbol">{</a><a id="18969" href="Data.Nat.Properties.html#18969" class="Bound">n</a><a id="18970" class="Symbol">}</a> <a id="18972" href="Data.Nat.Properties.html#18972" class="Bound">n>0</a> <a id="18976" class="Keyword">rewrite</a> <a id="18984" href="Data.Nat.Properties.html#13404" class="Function">+-comm</a> <a id="18991" href="Data.Nat.Properties.html#18969" class="Bound">n</a> <a id="18993" href="Data.Nat.Properties.html#18966" class="Bound">m</a> <a id="18995" class="Symbol">=</a> <a id="18997" href="Data.Nat.Properties.html#18825" class="Function">m<m+n</a> <a id="19003" href="Data.Nat.Properties.html#18966" class="Bound">m</a> <a id="19005" href="Data.Nat.Properties.html#18972" class="Bound">n>0</a>
|
||
|
||
<a id="m+n≮n"></a><a id="19010" href="Data.Nat.Properties.html#19010" class="Function">m+n≮n</a> <a id="19016" class="Symbol">:</a> <a id="19018" class="Symbol">∀</a> <a id="19020" href="Data.Nat.Properties.html#19020" class="Bound">m</a> <a id="19022" href="Data.Nat.Properties.html#19022" class="Bound">n</a> <a id="19024" class="Symbol">→</a> <a id="19026" href="Data.Nat.Properties.html#19020" class="Bound">m</a> <a id="19028" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="19030" href="Data.Nat.Properties.html#19022" class="Bound">n</a> <a id="19032" href="Data.Nat.Base.html#1780" class="Function Operator">≮</a> <a id="19034" href="Data.Nat.Properties.html#19022" class="Bound">n</a>
|
||
<a id="19036" href="Data.Nat.Properties.html#19010" class="Function">m+n≮n</a> <a id="19042" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="19050" href="Data.Nat.Properties.html#19050" class="Bound">n</a> <a id="19070" class="Symbol">=</a> <a id="19072" href="Data.Nat.Properties.html#11131" class="Function">n≮n</a> <a id="19076" href="Data.Nat.Properties.html#19050" class="Bound">n</a>
|
||
<a id="19078" href="Data.Nat.Properties.html#19010" class="Function">m+n≮n</a> <a id="19084" class="Symbol">(</a><a id="19085" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="19089" href="Data.Nat.Properties.html#19089" class="Bound">m</a><a id="19090" class="Symbol">)</a> <a id="19092" class="Symbol">(</a><a id="19093" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="19097" href="Data.Nat.Properties.html#19097" class="Bound">n</a><a id="19098" class="Symbol">)</a> <a id="19100" class="Symbol">(</a><a id="19101" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="19105" href="Data.Nat.Properties.html#19105" class="Bound">m+n<n</a><a id="19110" class="Symbol">)</a> <a id="19112" class="Symbol">=</a> <a id="19114" href="Data.Nat.Properties.html#19010" class="Function">m+n≮n</a> <a id="19120" href="Data.Nat.Properties.html#19089" class="Bound">m</a> <a id="19122" class="Symbol">(</a><a id="19123" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="19127" href="Data.Nat.Properties.html#19097" class="Bound">n</a><a id="19128" class="Symbol">)</a> <a id="19130" class="Symbol">(</a><a id="19131" href="Data.Nat.Properties.html#7191" class="Function">≤-step</a> <a id="19138" href="Data.Nat.Properties.html#19105" class="Bound">m+n<n</a><a id="19143" class="Symbol">)</a>
|
||
|
||
<a id="m+n≮m"></a><a id="19146" href="Data.Nat.Properties.html#19146" class="Function">m+n≮m</a> <a id="19152" class="Symbol">:</a> <a id="19154" class="Symbol">∀</a> <a id="19156" href="Data.Nat.Properties.html#19156" class="Bound">m</a> <a id="19158" href="Data.Nat.Properties.html#19158" class="Bound">n</a> <a id="19160" class="Symbol">→</a> <a id="19162" href="Data.Nat.Properties.html#19156" class="Bound">m</a> <a id="19164" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="19166" href="Data.Nat.Properties.html#19158" class="Bound">n</a> <a id="19168" href="Data.Nat.Base.html#1780" class="Function Operator">≮</a> <a id="19170" href="Data.Nat.Properties.html#19156" class="Bound">m</a>
|
||
<a id="19172" href="Data.Nat.Properties.html#19146" class="Function">m+n≮m</a> <a id="19178" href="Data.Nat.Properties.html#19178" class="Bound">m</a> <a id="19180" href="Data.Nat.Properties.html#19180" class="Bound">n</a> <a id="19182" class="Symbol">=</a> <a id="19184" href="Relation.Binary.PropositionalEquality.Core.html#1789" class="Function">subst</a> <a id="19190" class="Symbol">(</a><a id="19191" href="Data.Nat.Base.html#1780" class="Function Operator">_≮</a> <a id="19194" href="Data.Nat.Properties.html#19178" class="Bound">m</a><a id="19195" class="Symbol">)</a> <a id="19197" class="Symbol">(</a><a id="19198" href="Data.Nat.Properties.html#13404" class="Function">+-comm</a> <a id="19205" href="Data.Nat.Properties.html#19180" class="Bound">n</a> <a id="19207" href="Data.Nat.Properties.html#19178" class="Bound">m</a><a id="19208" class="Symbol">)</a> <a id="19210" class="Symbol">(</a><a id="19211" href="Data.Nat.Properties.html#19010" class="Function">m+n≮n</a> <a id="19217" href="Data.Nat.Properties.html#19180" class="Bound">n</a> <a id="19219" href="Data.Nat.Properties.html#19178" class="Bound">m</a><a id="19220" class="Symbol">)</a>
|
||
|
||
<a id="19223" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="19296" class="Comment">-- Properties of _*_</a>
|
||
<a id="19317" class="Comment">------------------------------------------------------------------------</a>
|
||
|
||
<a id="*-suc"></a><a id="19391" href="Data.Nat.Properties.html#19391" class="Function">*-suc</a> <a id="19397" class="Symbol">:</a> <a id="19399" class="Symbol">∀</a> <a id="19401" href="Data.Nat.Properties.html#19401" class="Bound">m</a> <a id="19403" href="Data.Nat.Properties.html#19403" class="Bound">n</a> <a id="19405" class="Symbol">→</a> <a id="19407" href="Data.Nat.Properties.html#19401" class="Bound">m</a> <a id="19409" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="19411" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="19415" href="Data.Nat.Properties.html#19403" class="Bound">n</a> <a id="19417" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="19419" href="Data.Nat.Properties.html#19401" class="Bound">m</a> <a id="19421" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="19423" href="Data.Nat.Properties.html#19401" class="Bound">m</a> <a id="19425" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="19427" href="Data.Nat.Properties.html#19403" class="Bound">n</a>
|
||
<a id="19429" href="Data.Nat.Properties.html#19391" class="Function">*-suc</a> <a id="19435" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="19443" href="Data.Nat.Properties.html#19443" class="Bound">n</a> <a id="19445" class="Symbol">=</a> <a id="19447" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="19452" href="Data.Nat.Properties.html#19391" class="Function">*-suc</a> <a id="19458" class="Symbol">(</a><a id="19459" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="19463" href="Data.Nat.Properties.html#19463" class="Bound">m</a><a id="19464" class="Symbol">)</a> <a id="19466" href="Data.Nat.Properties.html#19466" class="Bound">n</a> <a id="19468" class="Symbol">=</a> <a id="19470" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="19487" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="19491" href="Data.Nat.Properties.html#19463" class="Bound">m</a> <a id="19493" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="19495" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="19499" href="Data.Nat.Properties.html#19466" class="Bound">n</a> <a id="19509" href="Relation.Binary.Reasoning.Base.Triple.html#5032" class="Function Operator">≡⟨⟩</a>
|
||
<a id="19515" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="19519" href="Data.Nat.Properties.html#19466" class="Bound">n</a> <a id="19521" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="19523" href="Data.Nat.Properties.html#19463" class="Bound">m</a> <a id="19525" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="19527" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="19531" href="Data.Nat.Properties.html#19466" class="Bound">n</a> <a id="19537" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="19540" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="19545" class="Symbol">(</a><a id="19546" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="19550" href="Data.Nat.Properties.html#19466" class="Bound">n</a> <a id="19552" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+_</a><a id="19554" class="Symbol">)</a> <a id="19556" class="Symbol">(</a><a id="19557" href="Data.Nat.Properties.html#19391" class="Function">*-suc</a> <a id="19563" href="Data.Nat.Properties.html#19463" class="Bound">m</a> <a id="19565" href="Data.Nat.Properties.html#19466" class="Bound">n</a><a id="19566" class="Symbol">)</a> <a id="19568" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="19572" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="19576" href="Data.Nat.Properties.html#19466" class="Bound">n</a> <a id="19578" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="19580" class="Symbol">(</a><a id="19581" href="Data.Nat.Properties.html#19463" class="Bound">m</a> <a id="19583" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="19585" href="Data.Nat.Properties.html#19463" class="Bound">m</a> <a id="19587" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="19589" href="Data.Nat.Properties.html#19466" class="Bound">n</a><a id="19590" class="Symbol">)</a> <a id="19594" href="Relation.Binary.Reasoning.Base.Triple.html#5032" class="Function Operator">≡⟨⟩</a>
|
||
<a id="19600" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="19604" class="Symbol">(</a><a id="19605" href="Data.Nat.Properties.html#19466" class="Bound">n</a> <a id="19607" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="19609" class="Symbol">(</a><a id="19610" href="Data.Nat.Properties.html#19463" class="Bound">m</a> <a id="19612" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="19614" href="Data.Nat.Properties.html#19463" class="Bound">m</a> <a id="19616" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="19618" href="Data.Nat.Properties.html#19466" class="Bound">n</a><a id="19619" class="Symbol">))</a> <a id="19622" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="19625" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="19630" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="19634" class="Symbol">(</a><a id="19635" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="19639" class="Symbol">(</a><a id="19640" href="Data.Nat.Properties.html#13071" class="Function">+-assoc</a> <a id="19648" href="Data.Nat.Properties.html#19466" class="Bound">n</a> <a id="19650" href="Data.Nat.Properties.html#19463" class="Bound">m</a> <a id="19652" class="Symbol">(</a><a id="19653" href="Data.Nat.Properties.html#19463" class="Bound">m</a> <a id="19655" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="19657" href="Data.Nat.Properties.html#19466" class="Bound">n</a><a id="19658" class="Symbol">)))</a> <a id="19662" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="19666" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="19670" class="Symbol">(</a><a id="19671" href="Data.Nat.Properties.html#19466" class="Bound">n</a> <a id="19673" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="19675" href="Data.Nat.Properties.html#19463" class="Bound">m</a> <a id="19677" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="19679" href="Data.Nat.Properties.html#19463" class="Bound">m</a> <a id="19681" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="19683" href="Data.Nat.Properties.html#19466" class="Bound">n</a><a id="19684" class="Symbol">)</a> <a id="19688" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="19691" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="19696" class="Symbol">(λ</a> <a id="19699" href="Data.Nat.Properties.html#19699" class="Bound">x</a> <a id="19701" class="Symbol">→</a> <a id="19703" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="19707" class="Symbol">(</a><a id="19708" href="Data.Nat.Properties.html#19699" class="Bound">x</a> <a id="19710" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="19712" href="Data.Nat.Properties.html#19463" class="Bound">m</a> <a id="19714" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="19716" href="Data.Nat.Properties.html#19466" class="Bound">n</a><a id="19717" class="Symbol">))</a> <a id="19720" class="Symbol">(</a><a id="19721" href="Data.Nat.Properties.html#13404" class="Function">+-comm</a> <a id="19728" href="Data.Nat.Properties.html#19466" class="Bound">n</a> <a id="19730" href="Data.Nat.Properties.html#19463" class="Bound">m</a><a id="19731" class="Symbol">)</a> <a id="19733" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="19737" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="19741" class="Symbol">(</a><a id="19742" href="Data.Nat.Properties.html#19463" class="Bound">m</a> <a id="19744" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="19746" href="Data.Nat.Properties.html#19466" class="Bound">n</a> <a id="19748" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="19750" href="Data.Nat.Properties.html#19463" class="Bound">m</a> <a id="19752" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="19754" href="Data.Nat.Properties.html#19466" class="Bound">n</a><a id="19755" class="Symbol">)</a> <a id="19759" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="19762" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="19767" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="19771" class="Symbol">(</a><a id="19772" href="Data.Nat.Properties.html#13071" class="Function">+-assoc</a> <a id="19780" href="Data.Nat.Properties.html#19463" class="Bound">m</a> <a id="19782" href="Data.Nat.Properties.html#19466" class="Bound">n</a> <a id="19784" class="Symbol">(</a><a id="19785" href="Data.Nat.Properties.html#19463" class="Bound">m</a> <a id="19787" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="19789" href="Data.Nat.Properties.html#19466" class="Bound">n</a><a id="19790" class="Symbol">))</a> <a id="19793" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="19797" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="19801" class="Symbol">(</a><a id="19802" href="Data.Nat.Properties.html#19463" class="Bound">m</a> <a id="19804" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="19806" class="Symbol">(</a><a id="19807" href="Data.Nat.Properties.html#19466" class="Bound">n</a> <a id="19809" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="19811" href="Data.Nat.Properties.html#19463" class="Bound">m</a> <a id="19813" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="19815" href="Data.Nat.Properties.html#19466" class="Bound">n</a><a id="19816" class="Symbol">))</a> <a id="19819" href="Relation.Binary.Reasoning.Base.Triple.html#5032" class="Function Operator">≡⟨⟩</a>
|
||
<a id="19825" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="19829" href="Data.Nat.Properties.html#19463" class="Bound">m</a> <a id="19831" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="19833" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="19837" href="Data.Nat.Properties.html#19463" class="Bound">m</a> <a id="19839" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="19841" href="Data.Nat.Properties.html#19466" class="Bound">n</a> <a id="19847" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
|
||
<a id="19850" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="19923" class="Comment">-- Algebraic properties of _*_</a>
|
||
|
||
<a id="*-identityˡ"></a><a id="19955" href="Data.Nat.Properties.html#19955" class="Function">*-identityˡ</a> <a id="19967" class="Symbol">:</a> <a id="19969" href="Algebra.Definitions.html#1277" class="Function">LeftIdentity</a> <a id="19982" class="Number">1</a> <a id="19984" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a>
|
||
<a id="19988" href="Data.Nat.Properties.html#19955" class="Function">*-identityˡ</a> <a id="20000" href="Data.Nat.Properties.html#20000" class="Bound">n</a> <a id="20002" class="Symbol">=</a> <a id="20004" href="Data.Nat.Properties.html#13227" class="Function">+-identityʳ</a> <a id="20016" href="Data.Nat.Properties.html#20000" class="Bound">n</a>
|
||
|
||
<a id="*-identityʳ"></a><a id="20019" href="Data.Nat.Properties.html#20019" class="Function">*-identityʳ</a> <a id="20031" class="Symbol">:</a> <a id="20033" href="Algebra.Definitions.html#1350" class="Function">RightIdentity</a> <a id="20047" class="Number">1</a> <a id="20049" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a>
|
||
<a id="20053" href="Data.Nat.Properties.html#20019" class="Function">*-identityʳ</a> <a id="20065" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="20073" class="Symbol">=</a> <a id="20075" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="20080" href="Data.Nat.Properties.html#20019" class="Function">*-identityʳ</a> <a id="20092" class="Symbol">(</a><a id="20093" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="20097" href="Data.Nat.Properties.html#20097" class="Bound">n</a><a id="20098" class="Symbol">)</a> <a id="20100" class="Symbol">=</a> <a id="20102" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="20107" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="20111" class="Symbol">(</a><a id="20112" href="Data.Nat.Properties.html#20019" class="Function">*-identityʳ</a> <a id="20124" href="Data.Nat.Properties.html#20097" class="Bound">n</a><a id="20125" class="Symbol">)</a>
|
||
|
||
<a id="*-identity"></a><a id="20128" href="Data.Nat.Properties.html#20128" class="Function">*-identity</a> <a id="20139" class="Symbol">:</a> <a id="20141" href="Algebra.Definitions.html#1425" class="Function">Identity</a> <a id="20150" class="Number">1</a> <a id="20152" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a>
|
||
<a id="20156" href="Data.Nat.Properties.html#20128" class="Function">*-identity</a> <a id="20167" class="Symbol">=</a> <a id="20169" href="Data.Nat.Properties.html#19955" class="Function">*-identityˡ</a> <a id="20181" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="20183" href="Data.Nat.Properties.html#20019" class="Function">*-identityʳ</a>
|
||
|
||
<a id="*-zeroˡ"></a><a id="20196" href="Data.Nat.Properties.html#20196" class="Function">*-zeroˡ</a> <a id="20204" class="Symbol">:</a> <a id="20206" href="Algebra.Definitions.html#1511" class="Function">LeftZero</a> <a id="20215" class="Number">0</a> <a id="20217" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a>
|
||
<a id="20221" href="Data.Nat.Properties.html#20196" class="Function">*-zeroˡ</a> <a id="20229" class="Symbol">_</a> <a id="20231" class="Symbol">=</a> <a id="20233" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
|
||
<a id="*-zeroʳ"></a><a id="20239" href="Data.Nat.Properties.html#20239" class="Function">*-zeroʳ</a> <a id="20247" class="Symbol">:</a> <a id="20249" href="Algebra.Definitions.html#1576" class="Function">RightZero</a> <a id="20259" class="Number">0</a> <a id="20261" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a>
|
||
<a id="20265" href="Data.Nat.Properties.html#20239" class="Function">*-zeroʳ</a> <a id="20273" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="20281" class="Symbol">=</a> <a id="20283" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="20288" href="Data.Nat.Properties.html#20239" class="Function">*-zeroʳ</a> <a id="20296" class="Symbol">(</a><a id="20297" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="20301" href="Data.Nat.Properties.html#20301" class="Bound">n</a><a id="20302" class="Symbol">)</a> <a id="20304" class="Symbol">=</a> <a id="20306" href="Data.Nat.Properties.html#20239" class="Function">*-zeroʳ</a> <a id="20314" href="Data.Nat.Properties.html#20301" class="Bound">n</a>
|
||
|
||
<a id="*-zero"></a><a id="20317" href="Data.Nat.Properties.html#20317" class="Function">*-zero</a> <a id="20324" class="Symbol">:</a> <a id="20326" href="Algebra.Definitions.html#1643" class="Function">Zero</a> <a id="20331" class="Number">0</a> <a id="20333" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a>
|
||
<a id="20337" href="Data.Nat.Properties.html#20317" class="Function">*-zero</a> <a id="20344" class="Symbol">=</a> <a id="20346" href="Data.Nat.Properties.html#20196" class="Function">*-zeroˡ</a> <a id="20354" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="20356" href="Data.Nat.Properties.html#20239" class="Function">*-zeroʳ</a>
|
||
|
||
<a id="*-comm"></a><a id="20365" href="Data.Nat.Properties.html#20365" class="Function">*-comm</a> <a id="20372" class="Symbol">:</a> <a id="20374" href="Algebra.Definitions.html#1204" class="Function">Commutative</a> <a id="20386" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a>
|
||
<a id="20390" href="Data.Nat.Properties.html#20365" class="Function">*-comm</a> <a id="20397" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="20405" href="Data.Nat.Properties.html#20405" class="Bound">n</a> <a id="20407" class="Symbol">=</a> <a id="20409" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="20413" class="Symbol">(</a><a id="20414" href="Data.Nat.Properties.html#20239" class="Function">*-zeroʳ</a> <a id="20422" href="Data.Nat.Properties.html#20405" class="Bound">n</a><a id="20423" class="Symbol">)</a>
|
||
<a id="20425" href="Data.Nat.Properties.html#20365" class="Function">*-comm</a> <a id="20432" class="Symbol">(</a><a id="20433" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="20437" href="Data.Nat.Properties.html#20437" class="Bound">m</a><a id="20438" class="Symbol">)</a> <a id="20440" href="Data.Nat.Properties.html#20440" class="Bound">n</a> <a id="20442" class="Symbol">=</a> <a id="20444" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="20461" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="20465" href="Data.Nat.Properties.html#20437" class="Bound">m</a> <a id="20467" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="20469" href="Data.Nat.Properties.html#20440" class="Bound">n</a> <a id="20472" href="Relation.Binary.Reasoning.Base.Triple.html#5032" class="Function Operator">≡⟨⟩</a>
|
||
<a id="20478" href="Data.Nat.Properties.html#20440" class="Bound">n</a> <a id="20480" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="20482" href="Data.Nat.Properties.html#20437" class="Bound">m</a> <a id="20484" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="20486" href="Data.Nat.Properties.html#20440" class="Bound">n</a> <a id="20489" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="20492" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="20497" class="Symbol">(</a><a id="20498" href="Data.Nat.Properties.html#20440" class="Bound">n</a> <a id="20500" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+_</a><a id="20502" class="Symbol">)</a> <a id="20504" class="Symbol">(</a><a id="20505" href="Data.Nat.Properties.html#20365" class="Function">*-comm</a> <a id="20512" href="Data.Nat.Properties.html#20437" class="Bound">m</a> <a id="20514" href="Data.Nat.Properties.html#20440" class="Bound">n</a><a id="20515" class="Symbol">)</a> <a id="20517" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="20521" href="Data.Nat.Properties.html#20440" class="Bound">n</a> <a id="20523" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="20525" href="Data.Nat.Properties.html#20440" class="Bound">n</a> <a id="20527" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="20529" href="Data.Nat.Properties.html#20437" class="Bound">m</a> <a id="20532" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="20535" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="20539" class="Symbol">(</a><a id="20540" href="Data.Nat.Properties.html#19391" class="Function">*-suc</a> <a id="20546" href="Data.Nat.Properties.html#20440" class="Bound">n</a> <a id="20548" href="Data.Nat.Properties.html#20437" class="Bound">m</a><a id="20549" class="Symbol">)</a> <a id="20551" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="20555" href="Data.Nat.Properties.html#20440" class="Bound">n</a> <a id="20557" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="20559" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="20563" href="Data.Nat.Properties.html#20437" class="Bound">m</a> <a id="20566" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
|
||
<a id="*-distribʳ-+"></a><a id="20569" href="Data.Nat.Properties.html#20569" class="Function">*-distribʳ-+</a> <a id="20582" class="Symbol">:</a> <a id="20584" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a> <a id="20588" href="Algebra.Definitions.html#2355" class="Function Operator">DistributesOverʳ</a> <a id="20605" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a>
|
||
<a id="20609" href="Data.Nat.Properties.html#20569" class="Function">*-distribʳ-+</a> <a id="20622" href="Data.Nat.Properties.html#20622" class="Bound">m</a> <a id="20624" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="20632" href="Data.Nat.Properties.html#20632" class="Bound">o</a> <a id="20634" class="Symbol">=</a> <a id="20636" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="20641" href="Data.Nat.Properties.html#20569" class="Function">*-distribʳ-+</a> <a id="20654" href="Data.Nat.Properties.html#20654" class="Bound">m</a> <a id="20656" class="Symbol">(</a><a id="20657" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="20661" href="Data.Nat.Properties.html#20661" class="Bound">n</a><a id="20662" class="Symbol">)</a> <a id="20664" href="Data.Nat.Properties.html#20664" class="Bound">o</a> <a id="20666" class="Symbol">=</a> <a id="20668" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="20685" class="Symbol">(</a><a id="20686" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="20690" href="Data.Nat.Properties.html#20661" class="Bound">n</a> <a id="20692" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="20694" href="Data.Nat.Properties.html#20664" class="Bound">o</a><a id="20695" class="Symbol">)</a> <a id="20697" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="20699" href="Data.Nat.Properties.html#20654" class="Bound">m</a> <a id="20705" href="Relation.Binary.Reasoning.Base.Triple.html#5032" class="Function Operator">≡⟨⟩</a>
|
||
<a id="20711" href="Data.Nat.Properties.html#20654" class="Bound">m</a> <a id="20713" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="20715" class="Symbol">(</a><a id="20716" href="Data.Nat.Properties.html#20661" class="Bound">n</a> <a id="20718" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="20720" href="Data.Nat.Properties.html#20664" class="Bound">o</a><a id="20721" class="Symbol">)</a> <a id="20723" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="20725" href="Data.Nat.Properties.html#20654" class="Bound">m</a> <a id="20731" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="20734" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="20739" class="Symbol">(</a><a id="20740" href="Data.Nat.Properties.html#20654" class="Bound">m</a> <a id="20742" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+_</a><a id="20744" class="Symbol">)</a> <a id="20746" class="Symbol">(</a><a id="20747" href="Data.Nat.Properties.html#20569" class="Function">*-distribʳ-+</a> <a id="20760" href="Data.Nat.Properties.html#20654" class="Bound">m</a> <a id="20762" href="Data.Nat.Properties.html#20661" class="Bound">n</a> <a id="20764" href="Data.Nat.Properties.html#20664" class="Bound">o</a><a id="20765" class="Symbol">)</a> <a id="20767" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="20771" href="Data.Nat.Properties.html#20654" class="Bound">m</a> <a id="20773" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="20775" class="Symbol">(</a><a id="20776" href="Data.Nat.Properties.html#20661" class="Bound">n</a> <a id="20778" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="20780" href="Data.Nat.Properties.html#20654" class="Bound">m</a> <a id="20782" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="20784" href="Data.Nat.Properties.html#20664" class="Bound">o</a> <a id="20786" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="20788" href="Data.Nat.Properties.html#20654" class="Bound">m</a><a id="20789" class="Symbol">)</a> <a id="20791" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="20794" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="20798" class="Symbol">(</a><a id="20799" href="Data.Nat.Properties.html#13071" class="Function">+-assoc</a> <a id="20807" href="Data.Nat.Properties.html#20654" class="Bound">m</a> <a id="20809" class="Symbol">(</a><a id="20810" href="Data.Nat.Properties.html#20661" class="Bound">n</a> <a id="20812" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="20814" href="Data.Nat.Properties.html#20654" class="Bound">m</a><a id="20815" class="Symbol">)</a> <a id="20817" class="Symbol">(</a><a id="20818" href="Data.Nat.Properties.html#20664" class="Bound">o</a> <a id="20820" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="20822" href="Data.Nat.Properties.html#20654" class="Bound">m</a><a id="20823" class="Symbol">))</a> <a id="20826" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="20830" href="Data.Nat.Properties.html#20654" class="Bound">m</a> <a id="20832" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="20834" href="Data.Nat.Properties.html#20661" class="Bound">n</a> <a id="20836" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="20838" href="Data.Nat.Properties.html#20654" class="Bound">m</a> <a id="20840" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="20842" href="Data.Nat.Properties.html#20664" class="Bound">o</a> <a id="20844" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="20846" href="Data.Nat.Properties.html#20654" class="Bound">m</a> <a id="20850" href="Relation.Binary.Reasoning.Base.Triple.html#5032" class="Function Operator">≡⟨⟩</a>
|
||
<a id="20856" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="20860" href="Data.Nat.Properties.html#20661" class="Bound">n</a> <a id="20862" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="20864" href="Data.Nat.Properties.html#20654" class="Bound">m</a> <a id="20866" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="20868" href="Data.Nat.Properties.html#20664" class="Bound">o</a> <a id="20870" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="20872" href="Data.Nat.Properties.html#20654" class="Bound">m</a> <a id="20876" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
|
||
<a id="*-distribˡ-+"></a><a id="20879" href="Data.Nat.Properties.html#20879" class="Function">*-distribˡ-+</a> <a id="20892" class="Symbol">:</a> <a id="20894" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a> <a id="20898" href="Algebra.Definitions.html#2236" class="Function Operator">DistributesOverˡ</a> <a id="20915" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a>
|
||
<a id="20919" href="Data.Nat.Properties.html#20879" class="Function">*-distribˡ-+</a> <a id="20932" class="Symbol">=</a> <a id="20934" href="Algebra.Consequences.Propositional.html#2831" class="Function">comm+distrʳ⇒distrˡ</a> <a id="20953" href="Data.Nat.Properties.html#20365" class="Function">*-comm</a> <a id="20960" href="Data.Nat.Properties.html#20569" class="Function">*-distribʳ-+</a>
|
||
|
||
<a id="*-distrib-+"></a><a id="20974" href="Data.Nat.Properties.html#20974" class="Function">*-distrib-+</a> <a id="20986" class="Symbol">:</a> <a id="20988" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a> <a id="20992" href="Algebra.Definitions.html#2474" class="Function Operator">DistributesOver</a> <a id="21008" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a>
|
||
<a id="21012" href="Data.Nat.Properties.html#20974" class="Function">*-distrib-+</a> <a id="21024" class="Symbol">=</a> <a id="21026" href="Data.Nat.Properties.html#20879" class="Function">*-distribˡ-+</a> <a id="21039" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="21041" href="Data.Nat.Properties.html#20569" class="Function">*-distribʳ-+</a>
|
||
|
||
<a id="*-assoc"></a><a id="21055" href="Data.Nat.Properties.html#21055" class="Function">*-assoc</a> <a id="21063" class="Symbol">:</a> <a id="21065" href="Algebra.Definitions.html#1117" class="Function">Associative</a> <a id="21077" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a>
|
||
<a id="21081" href="Data.Nat.Properties.html#21055" class="Function">*-assoc</a> <a id="21089" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="21097" href="Data.Nat.Properties.html#21097" class="Bound">n</a> <a id="21099" href="Data.Nat.Properties.html#21099" class="Bound">o</a> <a id="21101" class="Symbol">=</a> <a id="21103" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="21108" href="Data.Nat.Properties.html#21055" class="Function">*-assoc</a> <a id="21116" class="Symbol">(</a><a id="21117" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="21121" href="Data.Nat.Properties.html#21121" class="Bound">m</a><a id="21122" class="Symbol">)</a> <a id="21124" href="Data.Nat.Properties.html#21124" class="Bound">n</a> <a id="21126" href="Data.Nat.Properties.html#21126" class="Bound">o</a> <a id="21128" class="Symbol">=</a> <a id="21130" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="21147" class="Symbol">(</a><a id="21148" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="21152" href="Data.Nat.Properties.html#21121" class="Bound">m</a> <a id="21154" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="21156" href="Data.Nat.Properties.html#21124" class="Bound">n</a><a id="21157" class="Symbol">)</a> <a id="21159" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="21161" href="Data.Nat.Properties.html#21126" class="Bound">o</a> <a id="21167" href="Relation.Binary.Reasoning.Base.Triple.html#5032" class="Function Operator">≡⟨⟩</a>
|
||
<a id="21173" class="Symbol">(</a><a id="21174" href="Data.Nat.Properties.html#21124" class="Bound">n</a> <a id="21176" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="21178" href="Data.Nat.Properties.html#21121" class="Bound">m</a> <a id="21180" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="21182" href="Data.Nat.Properties.html#21124" class="Bound">n</a><a id="21183" class="Symbol">)</a> <a id="21185" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="21187" href="Data.Nat.Properties.html#21126" class="Bound">o</a> <a id="21193" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="21196" href="Data.Nat.Properties.html#20569" class="Function">*-distribʳ-+</a> <a id="21209" href="Data.Nat.Properties.html#21126" class="Bound">o</a> <a id="21211" href="Data.Nat.Properties.html#21124" class="Bound">n</a> <a id="21213" class="Symbol">(</a><a id="21214" href="Data.Nat.Properties.html#21121" class="Bound">m</a> <a id="21216" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="21218" href="Data.Nat.Properties.html#21124" class="Bound">n</a><a id="21219" class="Symbol">)</a> <a id="21221" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="21225" href="Data.Nat.Properties.html#21124" class="Bound">n</a> <a id="21227" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="21229" href="Data.Nat.Properties.html#21126" class="Bound">o</a> <a id="21231" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="21233" class="Symbol">(</a><a id="21234" href="Data.Nat.Properties.html#21121" class="Bound">m</a> <a id="21236" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="21238" href="Data.Nat.Properties.html#21124" class="Bound">n</a><a id="21239" class="Symbol">)</a> <a id="21241" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="21243" href="Data.Nat.Properties.html#21126" class="Bound">o</a> <a id="21245" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="21248" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="21253" class="Symbol">(</a><a id="21254" href="Data.Nat.Properties.html#21124" class="Bound">n</a> <a id="21256" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="21258" href="Data.Nat.Properties.html#21126" class="Bound">o</a> <a id="21260" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+_</a><a id="21262" class="Symbol">)</a> <a id="21264" class="Symbol">(</a><a id="21265" href="Data.Nat.Properties.html#21055" class="Function">*-assoc</a> <a id="21273" href="Data.Nat.Properties.html#21121" class="Bound">m</a> <a id="21275" href="Data.Nat.Properties.html#21124" class="Bound">n</a> <a id="21277" href="Data.Nat.Properties.html#21126" class="Bound">o</a><a id="21278" class="Symbol">)</a> <a id="21280" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="21284" href="Data.Nat.Properties.html#21124" class="Bound">n</a> <a id="21286" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="21288" href="Data.Nat.Properties.html#21126" class="Bound">o</a> <a id="21290" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="21292" href="Data.Nat.Properties.html#21121" class="Bound">m</a> <a id="21294" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="21296" class="Symbol">(</a><a id="21297" href="Data.Nat.Properties.html#21124" class="Bound">n</a> <a id="21299" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="21301" href="Data.Nat.Properties.html#21126" class="Bound">o</a><a id="21302" class="Symbol">)</a> <a id="21304" href="Relation.Binary.Reasoning.Base.Triple.html#5032" class="Function Operator">≡⟨⟩</a>
|
||
<a id="21310" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="21314" href="Data.Nat.Properties.html#21121" class="Bound">m</a> <a id="21316" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="21318" class="Symbol">(</a><a id="21319" href="Data.Nat.Properties.html#21124" class="Bound">n</a> <a id="21321" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="21323" href="Data.Nat.Properties.html#21126" class="Bound">o</a><a id="21324" class="Symbol">)</a> <a id="21330" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
|
||
<a id="21333" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="21406" class="Comment">-- Structures</a>
|
||
|
||
<a id="*-isMagma"></a><a id="21421" href="Data.Nat.Properties.html#21421" class="Function">*-isMagma</a> <a id="21431" class="Symbol">:</a> <a id="21433" href="Algebra.Structures.html#1129" class="Record">IsMagma</a> <a id="21441" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a>
|
||
<a id="21445" href="Data.Nat.Properties.html#21421" class="Function">*-isMagma</a> <a id="21455" class="Symbol">=</a> <a id="21457" class="Keyword">record</a>
|
||
<a id="21466" class="Symbol">{</a> <a id="21468" href="Algebra.Structures.html#1181" class="Field">isEquivalence</a> <a id="21482" class="Symbol">=</a> <a id="21484" href="Relation.Binary.PropositionalEquality.Properties.html#3436" class="Function">isEquivalence</a>
|
||
<a id="21500" class="Symbol">;</a> <a id="21502" href="Algebra.Structures.html#1219" class="Field">∙-cong</a> <a id="21516" class="Symbol">=</a> <a id="21518" href="Relation.Binary.PropositionalEquality.Core.html#1376" class="Function">cong₂</a> <a id="21524" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a>
|
||
<a id="21530" class="Symbol">}</a>
|
||
|
||
<a id="*-isSemigroup"></a><a id="21533" href="Data.Nat.Properties.html#21533" class="Function">*-isSemigroup</a> <a id="21547" class="Symbol">:</a> <a id="21549" href="Algebra.Structures.html#1796" class="Record">IsSemigroup</a> <a id="21561" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a>
|
||
<a id="21565" href="Data.Nat.Properties.html#21533" class="Function">*-isSemigroup</a> <a id="21579" class="Symbol">=</a> <a id="21581" class="Keyword">record</a>
|
||
<a id="21590" class="Symbol">{</a> <a id="21592" href="Algebra.Structures.html#1852" class="Field">isMagma</a> <a id="21600" class="Symbol">=</a> <a id="21602" href="Data.Nat.Properties.html#21421" class="Function">*-isMagma</a>
|
||
<a id="21614" class="Symbol">;</a> <a id="21616" href="Algebra.Structures.html#1876" class="Field">assoc</a> <a id="21624" class="Symbol">=</a> <a id="21626" href="Data.Nat.Properties.html#21055" class="Function">*-assoc</a>
|
||
<a id="21636" class="Symbol">}</a>
|
||
|
||
<a id="*-isCommutativeSemigroup"></a><a id="21639" href="Data.Nat.Properties.html#21639" class="Function">*-isCommutativeSemigroup</a> <a id="21664" class="Symbol">:</a> <a id="21666" href="Algebra.Structures.html#2098" class="Record">IsCommutativeSemigroup</a> <a id="21689" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a>
|
||
<a id="21693" href="Data.Nat.Properties.html#21639" class="Function">*-isCommutativeSemigroup</a> <a id="21718" class="Symbol">=</a> <a id="21720" class="Keyword">record</a>
|
||
<a id="21729" class="Symbol">{</a> <a id="21731" href="Algebra.Structures.html#2165" class="Field">isSemigroup</a> <a id="21743" class="Symbol">=</a> <a id="21745" href="Data.Nat.Properties.html#21533" class="Function">*-isSemigroup</a>
|
||
<a id="21761" class="Symbol">;</a> <a id="21763" href="Algebra.Structures.html#2197" class="Field">comm</a> <a id="21775" class="Symbol">=</a> <a id="21777" href="Data.Nat.Properties.html#20365" class="Function">*-comm</a>
|
||
<a id="21786" class="Symbol">}</a>
|
||
|
||
<a id="*-1-isMonoid"></a><a id="21789" href="Data.Nat.Properties.html#21789" class="Function">*-1-isMonoid</a> <a id="21802" class="Symbol">:</a> <a id="21804" href="Algebra.Structures.html#2810" class="Record">IsMonoid</a> <a id="21813" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a> <a id="21817" class="Number">1</a>
|
||
<a id="21819" href="Data.Nat.Properties.html#21789" class="Function">*-1-isMonoid</a> <a id="21832" class="Symbol">=</a> <a id="21834" class="Keyword">record</a>
|
||
<a id="21843" class="Symbol">{</a> <a id="21845" href="Algebra.Structures.html#2871" class="Field">isSemigroup</a> <a id="21857" class="Symbol">=</a> <a id="21859" href="Data.Nat.Properties.html#21533" class="Function">*-isSemigroup</a>
|
||
<a id="21875" class="Symbol">;</a> <a id="21877" href="Algebra.Structures.html#2903" class="Field">identity</a> <a id="21889" class="Symbol">=</a> <a id="21891" href="Data.Nat.Properties.html#20128" class="Function">*-identity</a>
|
||
<a id="21904" class="Symbol">}</a>
|
||
|
||
<a id="*-1-isCommutativeMonoid"></a><a id="21907" href="Data.Nat.Properties.html#21907" class="Function">*-1-isCommutativeMonoid</a> <a id="21931" class="Symbol">:</a> <a id="21933" href="Algebra.Structures.html#3101" class="Record">IsCommutativeMonoid</a> <a id="21953" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a> <a id="21957" class="Number">1</a>
|
||
<a id="21959" href="Data.Nat.Properties.html#21907" class="Function">*-1-isCommutativeMonoid</a> <a id="21983" class="Symbol">=</a> <a id="21985" class="Keyword">record</a>
|
||
<a id="21994" class="Symbol">{</a> <a id="21996" href="Algebra.Structures.html#3173" class="Field">isMonoid</a> <a id="22005" class="Symbol">=</a> <a id="22007" href="Data.Nat.Properties.html#21789" class="Function">*-1-isMonoid</a>
|
||
<a id="22022" class="Symbol">;</a> <a id="22024" href="Algebra.Structures.html#3201" class="Field">comm</a> <a id="22033" class="Symbol">=</a> <a id="22035" href="Data.Nat.Properties.html#20365" class="Function">*-comm</a>
|
||
<a id="22044" class="Symbol">}</a>
|
||
|
||
<a id="+-*-isSemiring"></a><a id="22047" href="Data.Nat.Properties.html#22047" class="Function">+-*-isSemiring</a> <a id="22062" class="Symbol">:</a> <a id="22064" href="Algebra.Structures.html#11370" class="Record">IsSemiring</a> <a id="22075" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a> <a id="22079" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a> <a id="22083" class="Number">0</a> <a id="22085" class="Number">1</a>
|
||
<a id="22087" href="Data.Nat.Properties.html#22047" class="Function">+-*-isSemiring</a> <a id="22102" class="Symbol">=</a> <a id="22104" class="Keyword">record</a>
|
||
<a id="22113" class="Symbol">{</a> <a id="22115" href="Algebra.Structures.html#11439" class="Field">isSemiringWithoutAnnihilatingZero</a> <a id="22149" class="Symbol">=</a> <a id="22151" class="Keyword">record</a>
|
||
<a id="22162" class="Symbol">{</a> <a id="22164" href="Algebra.Structures.html#10106" class="Field">+-isCommutativeMonoid</a> <a id="22186" class="Symbol">=</a> <a id="22188" href="Data.Nat.Properties.html#14478" class="Function">+-0-isCommutativeMonoid</a>
|
||
<a id="22216" class="Symbol">;</a> <a id="22218" href="Algebra.Structures.html#10159" class="Field">*-isMonoid</a> <a id="22240" class="Symbol">=</a> <a id="22242" href="Data.Nat.Properties.html#21789" class="Function">*-1-isMonoid</a>
|
||
<a id="22259" class="Symbol">;</a> <a id="22261" href="Algebra.Structures.html#10201" class="Field">distrib</a> <a id="22283" class="Symbol">=</a> <a id="22285" href="Data.Nat.Properties.html#20974" class="Function">*-distrib-+</a>
|
||
<a id="22301" class="Symbol">}</a>
|
||
<a id="22305" class="Symbol">;</a> <a id="22307" href="Algebra.Structures.html#11529" class="Field">zero</a> <a id="22312" class="Symbol">=</a> <a id="22314" href="Data.Nat.Properties.html#20317" class="Function">*-zero</a>
|
||
<a id="22323" class="Symbol">}</a>
|
||
|
||
<a id="+-*-isCommutativeSemiring"></a><a id="22326" href="Data.Nat.Properties.html#22326" class="Function">+-*-isCommutativeSemiring</a> <a id="22352" class="Symbol">:</a> <a id="22354" href="Algebra.Structures.html#12026" class="Record">IsCommutativeSemiring</a> <a id="22376" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a> <a id="22380" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a> <a id="22384" class="Number">0</a> <a id="22386" class="Number">1</a>
|
||
<a id="22388" href="Data.Nat.Properties.html#22326" class="Function">+-*-isCommutativeSemiring</a> <a id="22414" class="Symbol">=</a> <a id="22416" class="Keyword">record</a>
|
||
<a id="22425" class="Symbol">{</a> <a id="22427" href="Algebra.Structures.html#12106" class="Field">isSemiring</a> <a id="22438" class="Symbol">=</a> <a id="22440" href="Data.Nat.Properties.html#22047" class="Function">+-*-isSemiring</a>
|
||
<a id="22457" class="Symbol">;</a> <a id="22459" href="Algebra.Structures.html#12144" class="Field">*-comm</a> <a id="22470" class="Symbol">=</a> <a id="22472" href="Data.Nat.Properties.html#20365" class="Function">*-comm</a>
|
||
<a id="22481" class="Symbol">}</a>
|
||
|
||
<a id="22484" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="22557" class="Comment">-- Bundles</a>
|
||
|
||
<a id="*-rawMagma"></a><a id="22569" href="Data.Nat.Properties.html#22569" class="Function">*-rawMagma</a> <a id="22580" class="Symbol">:</a> <a id="22582" href="Algebra.Bundles.html#790" class="Record">RawMagma</a> <a id="22591" href="Level.html#521" class="Function">0ℓ</a> <a id="22594" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="22597" href="Data.Nat.Properties.html#22569" class="Function">*-rawMagma</a> <a id="22608" class="Symbol">=</a> <a id="22610" class="Keyword">record</a>
|
||
<a id="22619" class="Symbol">{</a> <a id="22621" href="Algebra.Bundles.html#891" class="Field Operator">_≈_</a> <a id="22625" class="Symbol">=</a> <a id="22627" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a>
|
||
<a id="22633" class="Symbol">;</a> <a id="22635" href="Algebra.Bundles.html#919" class="Field Operator">_∙_</a> <a id="22639" class="Symbol">=</a> <a id="22641" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a>
|
||
<a id="22647" class="Symbol">}</a>
|
||
|
||
<a id="*-1-rawMonoid"></a><a id="22650" href="Data.Nat.Properties.html#22650" class="Function">*-1-rawMonoid</a> <a id="22664" class="Symbol">:</a> <a id="22666" href="Algebra.Bundles.html#4113" class="Record">RawMonoid</a> <a id="22676" href="Level.html#521" class="Function">0ℓ</a> <a id="22679" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="22682" href="Data.Nat.Properties.html#22650" class="Function">*-1-rawMonoid</a> <a id="22696" class="Symbol">=</a> <a id="22698" class="Keyword">record</a>
|
||
<a id="22707" class="Symbol">{</a> <a id="22709" href="Algebra.Bundles.html#4215" class="Field Operator">_≈_</a> <a id="22713" class="Symbol">=</a> <a id="22715" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a>
|
||
<a id="22721" class="Symbol">;</a> <a id="22723" href="Algebra.Bundles.html#4243" class="Field Operator">_∙_</a> <a id="22727" class="Symbol">=</a> <a id="22729" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a>
|
||
<a id="22735" class="Symbol">;</a> <a id="22737" href="Algebra.Bundles.html#4269" class="Field">ε</a> <a id="22741" class="Symbol">=</a> <a id="22743" class="Number">1</a>
|
||
<a id="22747" class="Symbol">}</a>
|
||
|
||
<a id="*-magma"></a><a id="22750" href="Data.Nat.Properties.html#22750" class="Function">*-magma</a> <a id="22758" class="Symbol">:</a> <a id="22760" href="Algebra.Bundles.html#1009" class="Record">Magma</a> <a id="22766" href="Level.html#521" class="Function">0ℓ</a> <a id="22769" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="22772" href="Data.Nat.Properties.html#22750" class="Function">*-magma</a> <a id="22780" class="Symbol">=</a> <a id="22782" class="Keyword">record</a>
|
||
<a id="22791" class="Symbol">{</a> <a id="22793" href="Algebra.Bundles.html#1161" class="Field">isMagma</a> <a id="22801" class="Symbol">=</a> <a id="22803" href="Data.Nat.Properties.html#21421" class="Function">*-isMagma</a>
|
||
<a id="22815" class="Symbol">}</a>
|
||
|
||
<a id="*-semigroup"></a><a id="22818" href="Data.Nat.Properties.html#22818" class="Function">*-semigroup</a> <a id="22830" class="Symbol">:</a> <a id="22832" href="Algebra.Bundles.html#2152" class="Record">Semigroup</a> <a id="22842" href="Level.html#521" class="Function">0ℓ</a> <a id="22845" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="22848" href="Data.Nat.Properties.html#22818" class="Function">*-semigroup</a> <a id="22860" class="Symbol">=</a> <a id="22862" class="Keyword">record</a>
|
||
<a id="22871" class="Symbol">{</a> <a id="22873" href="Algebra.Bundles.html#2320" class="Field">isSemigroup</a> <a id="22885" class="Symbol">=</a> <a id="22887" href="Data.Nat.Properties.html#21533" class="Function">*-isSemigroup</a>
|
||
<a id="22903" class="Symbol">}</a>
|
||
|
||
<a id="*-commutativeSemigroup"></a><a id="22906" href="Data.Nat.Properties.html#22906" class="Function">*-commutativeSemigroup</a> <a id="22929" class="Symbol">:</a> <a id="22931" href="Algebra.Bundles.html#2877" class="Record">CommutativeSemigroup</a> <a id="22952" href="Level.html#521" class="Function">0ℓ</a> <a id="22955" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="22958" href="Data.Nat.Properties.html#22906" class="Function">*-commutativeSemigroup</a> <a id="22981" class="Symbol">=</a> <a id="22983" class="Keyword">record</a>
|
||
<a id="22992" class="Symbol">{</a> <a id="22994" href="Algebra.Bundles.html#3092" class="Field">isCommutativeSemigroup</a> <a id="23017" class="Symbol">=</a> <a id="23019" href="Data.Nat.Properties.html#21639" class="Function">*-isCommutativeSemigroup</a>
|
||
<a id="23046" class="Symbol">}</a>
|
||
|
||
<a id="*-1-monoid"></a><a id="23049" href="Data.Nat.Properties.html#23049" class="Function">*-1-monoid</a> <a id="23060" class="Symbol">:</a> <a id="23062" href="Algebra.Bundles.html#4430" class="Record">Monoid</a> <a id="23069" href="Level.html#521" class="Function">0ℓ</a> <a id="23072" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="23075" href="Data.Nat.Properties.html#23049" class="Function">*-1-monoid</a> <a id="23086" class="Symbol">=</a> <a id="23088" class="Keyword">record</a>
|
||
<a id="23097" class="Symbol">{</a> <a id="23099" href="Algebra.Bundles.html#4609" class="Field">isMonoid</a> <a id="23108" class="Symbol">=</a> <a id="23110" href="Data.Nat.Properties.html#21789" class="Function">*-1-isMonoid</a>
|
||
<a id="23125" class="Symbol">}</a>
|
||
|
||
<a id="*-1-commutativeMonoid"></a><a id="23128" href="Data.Nat.Properties.html#23128" class="Function">*-1-commutativeMonoid</a> <a id="23150" class="Symbol">:</a> <a id="23152" href="Algebra.Bundles.html#4910" class="Record">CommutativeMonoid</a> <a id="23170" href="Level.html#521" class="Function">0ℓ</a> <a id="23173" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="23176" href="Data.Nat.Properties.html#23128" class="Function">*-1-commutativeMonoid</a> <a id="23198" class="Symbol">=</a> <a id="23200" class="Keyword">record</a>
|
||
<a id="23209" class="Symbol">{</a> <a id="23211" href="Algebra.Bundles.html#5144" class="Field">isCommutativeMonoid</a> <a id="23231" class="Symbol">=</a> <a id="23233" href="Data.Nat.Properties.html#21907" class="Function">*-1-isCommutativeMonoid</a>
|
||
<a id="23259" class="Symbol">}</a>
|
||
|
||
<a id="+-*-semiring"></a><a id="23262" href="Data.Nat.Properties.html#23262" class="Function">+-*-semiring</a> <a id="23275" class="Symbol">:</a> <a id="23277" href="Algebra.Bundles.html#16253" class="Record">Semiring</a> <a id="23286" href="Level.html#521" class="Function">0ℓ</a> <a id="23289" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="23292" href="Data.Nat.Properties.html#23262" class="Function">+-*-semiring</a> <a id="23305" class="Symbol">=</a> <a id="23307" class="Keyword">record</a>
|
||
<a id="23316" class="Symbol">{</a> <a id="23318" href="Algebra.Bundles.html#16511" class="Field">isSemiring</a> <a id="23329" class="Symbol">=</a> <a id="23331" href="Data.Nat.Properties.html#22047" class="Function">+-*-isSemiring</a>
|
||
<a id="23348" class="Symbol">}</a>
|
||
|
||
<a id="+-*-commutativeSemiring"></a><a id="23351" href="Data.Nat.Properties.html#23351" class="Function">+-*-commutativeSemiring</a> <a id="23375" class="Symbol">:</a> <a id="23377" href="Algebra.Bundles.html#17360" class="Record">CommutativeSemiring</a> <a id="23397" href="Level.html#521" class="Function">0ℓ</a> <a id="23400" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="23403" href="Data.Nat.Properties.html#23351" class="Function">+-*-commutativeSemiring</a> <a id="23427" class="Symbol">=</a> <a id="23429" class="Keyword">record</a>
|
||
<a id="23438" class="Symbol">{</a> <a id="23440" href="Algebra.Bundles.html#17695" class="Field">isCommutativeSemiring</a> <a id="23462" class="Symbol">=</a> <a id="23464" href="Data.Nat.Properties.html#22326" class="Function">+-*-isCommutativeSemiring</a>
|
||
<a id="23492" class="Symbol">}</a>
|
||
|
||
<a id="23495" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="23568" class="Comment">-- Other properties of _*_ and _≡_</a>
|
||
|
||
<a id="*-cancelʳ-≡"></a><a id="23604" href="Data.Nat.Properties.html#23604" class="Function">*-cancelʳ-≡</a> <a id="23616" class="Symbol">:</a> <a id="23618" class="Symbol">∀</a> <a id="23620" href="Data.Nat.Properties.html#23620" class="Bound">m</a> <a id="23622" href="Data.Nat.Properties.html#23622" class="Bound">n</a> <a id="23624" class="Symbol">{</a><a id="23625" href="Data.Nat.Properties.html#23625" class="Bound">o</a><a id="23626" class="Symbol">}</a> <a id="23628" class="Symbol">→</a> <a id="23630" href="Data.Nat.Properties.html#23620" class="Bound">m</a> <a id="23632" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="23634" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="23638" href="Data.Nat.Properties.html#23625" class="Bound">o</a> <a id="23640" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="23642" href="Data.Nat.Properties.html#23622" class="Bound">n</a> <a id="23644" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="23646" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="23650" href="Data.Nat.Properties.html#23625" class="Bound">o</a> <a id="23652" class="Symbol">→</a> <a id="23654" href="Data.Nat.Properties.html#23620" class="Bound">m</a> <a id="23656" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="23658" href="Data.Nat.Properties.html#23622" class="Bound">n</a>
|
||
<a id="23660" href="Data.Nat.Properties.html#23604" class="Function">*-cancelʳ-≡</a> <a id="23672" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="23680" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="23692" href="Data.Nat.Properties.html#23692" class="Bound">eq</a> <a id="23695" class="Symbol">=</a> <a id="23697" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="23702" href="Data.Nat.Properties.html#23604" class="Function">*-cancelʳ-≡</a> <a id="23714" class="Symbol">(</a><a id="23715" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="23719" href="Data.Nat.Properties.html#23719" class="Bound">m</a><a id="23720" class="Symbol">)</a> <a id="23722" class="Symbol">(</a><a id="23723" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="23727" href="Data.Nat.Properties.html#23727" class="Bound">n</a><a id="23728" class="Symbol">)</a> <a id="23730" class="Symbol">{</a><a id="23731" href="Data.Nat.Properties.html#23731" class="Bound">o</a><a id="23732" class="Symbol">}</a> <a id="23734" href="Data.Nat.Properties.html#23734" class="Bound">eq</a> <a id="23737" class="Symbol">=</a>
|
||
<a id="23741" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="23746" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="23750" class="Symbol">(</a><a id="23751" href="Data.Nat.Properties.html#23604" class="Function">*-cancelʳ-≡</a> <a id="23763" href="Data.Nat.Properties.html#23719" class="Bound">m</a> <a id="23765" href="Data.Nat.Properties.html#23727" class="Bound">n</a> <a id="23767" class="Symbol">(</a><a id="23768" href="Data.Nat.Properties.html#13613" class="Function">+-cancelˡ-≡</a> <a id="23780" class="Symbol">(</a><a id="23781" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="23785" href="Data.Nat.Properties.html#23731" class="Bound">o</a><a id="23786" class="Symbol">)</a> <a id="23788" href="Data.Nat.Properties.html#23734" class="Bound">eq</a><a id="23790" class="Symbol">))</a>
|
||
|
||
<a id="*-cancelˡ-≡"></a><a id="23794" href="Data.Nat.Properties.html#23794" class="Function">*-cancelˡ-≡</a> <a id="23806" class="Symbol">:</a> <a id="23808" class="Symbol">∀</a> <a id="23810" class="Symbol">{</a><a id="23811" href="Data.Nat.Properties.html#23811" class="Bound">m</a> <a id="23813" href="Data.Nat.Properties.html#23813" class="Bound">n</a><a id="23814" class="Symbol">}</a> <a id="23816" href="Data.Nat.Properties.html#23816" class="Bound">o</a> <a id="23818" class="Symbol">→</a> <a id="23820" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="23824" href="Data.Nat.Properties.html#23816" class="Bound">o</a> <a id="23826" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="23828" href="Data.Nat.Properties.html#23811" class="Bound">m</a> <a id="23830" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="23832" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="23836" href="Data.Nat.Properties.html#23816" class="Bound">o</a> <a id="23838" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="23840" href="Data.Nat.Properties.html#23813" class="Bound">n</a> <a id="23842" class="Symbol">→</a> <a id="23844" href="Data.Nat.Properties.html#23811" class="Bound">m</a> <a id="23846" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="23848" href="Data.Nat.Properties.html#23813" class="Bound">n</a>
|
||
<a id="23850" href="Data.Nat.Properties.html#23794" class="Function">*-cancelˡ-≡</a> <a id="23862" class="Symbol">{</a><a id="23863" href="Data.Nat.Properties.html#23863" class="Bound">m</a><a id="23864" class="Symbol">}</a> <a id="23866" class="Symbol">{</a><a id="23867" href="Data.Nat.Properties.html#23867" class="Bound">n</a><a id="23868" class="Symbol">}</a> <a id="23870" href="Data.Nat.Properties.html#23870" class="Bound">o</a> <a id="23872" href="Data.Nat.Properties.html#23872" class="Bound">eq</a> <a id="23875" class="Symbol">=</a> <a id="23877" href="Data.Nat.Properties.html#23604" class="Function">*-cancelʳ-≡</a> <a id="23889" href="Data.Nat.Properties.html#23863" class="Bound">m</a> <a id="23891" href="Data.Nat.Properties.html#23867" class="Bound">n</a>
|
||
<a id="23895" class="Symbol">(</a><a id="23896" href="Relation.Binary.PropositionalEquality.Core.html#1844" class="Function">subst₂</a> <a id="23903" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a> <a id="23907" class="Symbol">(</a><a id="23908" href="Data.Nat.Properties.html#20365" class="Function">*-comm</a> <a id="23915" class="Symbol">(</a><a id="23916" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="23920" href="Data.Nat.Properties.html#23870" class="Bound">o</a><a id="23921" class="Symbol">)</a> <a id="23923" href="Data.Nat.Properties.html#23863" class="Bound">m</a><a id="23924" class="Symbol">)</a> <a id="23926" class="Symbol">(</a><a id="23927" href="Data.Nat.Properties.html#20365" class="Function">*-comm</a> <a id="23934" class="Symbol">(</a><a id="23935" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="23939" href="Data.Nat.Properties.html#23870" class="Bound">o</a><a id="23940" class="Symbol">)</a> <a id="23942" href="Data.Nat.Properties.html#23867" class="Bound">n</a><a id="23943" class="Symbol">)</a> <a id="23945" href="Data.Nat.Properties.html#23872" class="Bound">eq</a><a id="23947" class="Symbol">)</a>
|
||
|
||
<a id="m*n≡0⇒m≡0∨n≡0"></a><a id="23950" href="Data.Nat.Properties.html#23950" class="Function">m*n≡0⇒m≡0∨n≡0</a> <a id="23964" class="Symbol">:</a> <a id="23966" class="Symbol">∀</a> <a id="23968" href="Data.Nat.Properties.html#23968" class="Bound">m</a> <a id="23970" class="Symbol">{</a><a id="23971" href="Data.Nat.Properties.html#23971" class="Bound">n</a><a id="23972" class="Symbol">}</a> <a id="23974" class="Symbol">→</a> <a id="23976" href="Data.Nat.Properties.html#23968" class="Bound">m</a> <a id="23978" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="23980" href="Data.Nat.Properties.html#23971" class="Bound">n</a> <a id="23982" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="23984" class="Number">0</a> <a id="23986" class="Symbol">→</a> <a id="23988" href="Data.Nat.Properties.html#23968" class="Bound">m</a> <a id="23990" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="23992" class="Number">0</a> <a id="23994" href="Data.Sum.Base.html#743" class="Datatype Operator">⊎</a> <a id="23996" href="Data.Nat.Properties.html#23971" class="Bound">n</a> <a id="23998" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="24000" class="Number">0</a>
|
||
<a id="24002" href="Data.Nat.Properties.html#23950" class="Function">m*n≡0⇒m≡0∨n≡0</a> <a id="24016" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="24024" class="Symbol">{</a><a id="24025" href="Data.Nat.Properties.html#24025" class="Bound">n</a><a id="24026" class="Symbol">}</a> <a id="24032" href="Data.Nat.Properties.html#24032" class="Bound">eq</a> <a id="24035" class="Symbol">=</a> <a id="24037" href="Data.Sum.Base.html#793" class="InductiveConstructor">inj₁</a> <a id="24042" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="24047" href="Data.Nat.Properties.html#23950" class="Function">m*n≡0⇒m≡0∨n≡0</a> <a id="24061" class="Symbol">(</a><a id="24062" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="24066" href="Data.Nat.Properties.html#24066" class="Bound">m</a><a id="24067" class="Symbol">)</a> <a id="24069" class="Symbol">{</a><a id="24070" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="24074" class="Symbol">}</a> <a id="24077" href="Data.Nat.Properties.html#24077" class="Bound">eq</a> <a id="24080" class="Symbol">=</a> <a id="24082" href="Data.Sum.Base.html#818" class="InductiveConstructor">inj₂</a> <a id="24087" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
|
||
<a id="m*n≡1⇒m≡1"></a><a id="24093" href="Data.Nat.Properties.html#24093" class="Function">m*n≡1⇒m≡1</a> <a id="24103" class="Symbol">:</a> <a id="24105" class="Symbol">∀</a> <a id="24107" href="Data.Nat.Properties.html#24107" class="Bound">m</a> <a id="24109" href="Data.Nat.Properties.html#24109" class="Bound">n</a> <a id="24111" class="Symbol">→</a> <a id="24113" href="Data.Nat.Properties.html#24107" class="Bound">m</a> <a id="24115" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="24117" href="Data.Nat.Properties.html#24109" class="Bound">n</a> <a id="24119" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="24121" class="Number">1</a> <a id="24123" class="Symbol">→</a> <a id="24125" href="Data.Nat.Properties.html#24107" class="Bound">m</a> <a id="24127" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="24129" class="Number">1</a>
|
||
<a id="24131" href="Data.Nat.Properties.html#24093" class="Function">m*n≡1⇒m≡1</a> <a id="24141" class="Symbol">(</a><a id="24142" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="24146" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="24150" class="Symbol">)</a> <a id="24155" href="Data.Nat.Properties.html#24155" class="Bound">n</a> <a id="24169" class="Symbol">_</a> <a id="24172" class="Symbol">=</a> <a id="24174" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="24179" href="Data.Nat.Properties.html#24093" class="Function">m*n≡1⇒m≡1</a> <a id="24189" class="Symbol">(</a><a id="24190" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="24194" class="Symbol">(</a><a id="24195" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="24199" href="Data.Nat.Properties.html#24199" class="Bound">m</a><a id="24200" class="Symbol">))</a> <a id="24203" class="Symbol">(</a><a id="24204" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="24208" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="24212" class="Symbol">)</a> <a id="24217" class="Symbol">()</a>
|
||
<a id="24220" href="Data.Nat.Properties.html#24093" class="Function">m*n≡1⇒m≡1</a> <a id="24230" class="Symbol">(</a><a id="24231" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="24235" class="Symbol">(</a><a id="24236" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="24240" href="Data.Nat.Properties.html#24240" class="Bound">m</a><a id="24241" class="Symbol">))</a> <a id="24244" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="24258" href="Data.Nat.Properties.html#24258" class="Bound">eq</a> <a id="24261" class="Symbol">=</a>
|
||
<a id="24265" href="Relation.Nullary.Negation.Core.html#787" class="Function">contradiction</a> <a id="24279" class="Symbol">(</a><a id="24280" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="24286" class="Symbol">(</a><a id="24287" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="24291" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="24293" href="Data.Nat.Properties.html#20239" class="Function">*-zeroʳ</a> <a id="24301" href="Data.Nat.Properties.html#24240" class="Bound">m</a><a id="24302" class="Symbol">)</a> <a id="24304" href="Data.Nat.Properties.html#24258" class="Bound">eq</a><a id="24306" class="Symbol">)</a> <a id="24308" class="Symbol">λ()</a>
|
||
|
||
<a id="m*n≡1⇒n≡1"></a><a id="24313" href="Data.Nat.Properties.html#24313" class="Function">m*n≡1⇒n≡1</a> <a id="24323" class="Symbol">:</a> <a id="24325" class="Symbol">∀</a> <a id="24327" href="Data.Nat.Properties.html#24327" class="Bound">m</a> <a id="24329" href="Data.Nat.Properties.html#24329" class="Bound">n</a> <a id="24331" class="Symbol">→</a> <a id="24333" href="Data.Nat.Properties.html#24327" class="Bound">m</a> <a id="24335" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="24337" href="Data.Nat.Properties.html#24329" class="Bound">n</a> <a id="24339" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="24341" class="Number">1</a> <a id="24343" class="Symbol">→</a> <a id="24345" href="Data.Nat.Properties.html#24329" class="Bound">n</a> <a id="24347" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="24349" class="Number">1</a>
|
||
<a id="24351" href="Data.Nat.Properties.html#24313" class="Function">m*n≡1⇒n≡1</a> <a id="24361" href="Data.Nat.Properties.html#24361" class="Bound">m</a> <a id="24363" href="Data.Nat.Properties.html#24363" class="Bound">n</a> <a id="24365" href="Data.Nat.Properties.html#24365" class="Bound">eq</a> <a id="24368" class="Symbol">=</a> <a id="24370" href="Data.Nat.Properties.html#24093" class="Function">m*n≡1⇒m≡1</a> <a id="24380" href="Data.Nat.Properties.html#24363" class="Bound">n</a> <a id="24382" href="Data.Nat.Properties.html#24361" class="Bound">m</a> <a id="24384" class="Symbol">(</a><a id="24385" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="24391" class="Symbol">(</a><a id="24392" href="Data.Nat.Properties.html#20365" class="Function">*-comm</a> <a id="24399" href="Data.Nat.Properties.html#24363" class="Bound">n</a> <a id="24401" href="Data.Nat.Properties.html#24361" class="Bound">m</a><a id="24402" class="Symbol">)</a> <a id="24404" href="Data.Nat.Properties.html#24365" class="Bound">eq</a><a id="24406" class="Symbol">)</a>
|
||
|
||
<a id="[m*n]*[o*p]≡[m*o]*[n*p]"></a><a id="24409" href="Data.Nat.Properties.html#24409" class="Function">[m*n]*[o*p]≡[m*o]*[n*p]</a> <a id="24433" class="Symbol">:</a> <a id="24435" class="Symbol">∀</a> <a id="24437" href="Data.Nat.Properties.html#24437" class="Bound">m</a> <a id="24439" href="Data.Nat.Properties.html#24439" class="Bound">n</a> <a id="24441" href="Data.Nat.Properties.html#24441" class="Bound">o</a> <a id="24443" href="Data.Nat.Properties.html#24443" class="Bound">p</a> <a id="24445" class="Symbol">→</a> <a id="24447" class="Symbol">(</a><a id="24448" href="Data.Nat.Properties.html#24437" class="Bound">m</a> <a id="24450" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="24452" href="Data.Nat.Properties.html#24439" class="Bound">n</a><a id="24453" class="Symbol">)</a> <a id="24455" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="24457" class="Symbol">(</a><a id="24458" href="Data.Nat.Properties.html#24441" class="Bound">o</a> <a id="24460" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="24462" href="Data.Nat.Properties.html#24443" class="Bound">p</a><a id="24463" class="Symbol">)</a> <a id="24465" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="24467" class="Symbol">(</a><a id="24468" href="Data.Nat.Properties.html#24437" class="Bound">m</a> <a id="24470" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="24472" href="Data.Nat.Properties.html#24441" class="Bound">o</a><a id="24473" class="Symbol">)</a> <a id="24475" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="24477" class="Symbol">(</a><a id="24478" href="Data.Nat.Properties.html#24439" class="Bound">n</a> <a id="24480" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="24482" href="Data.Nat.Properties.html#24443" class="Bound">p</a><a id="24483" class="Symbol">)</a>
|
||
<a id="24485" href="Data.Nat.Properties.html#24409" class="Function">[m*n]*[o*p]≡[m*o]*[n*p]</a> <a id="24509" href="Data.Nat.Properties.html#24509" class="Bound">m</a> <a id="24511" href="Data.Nat.Properties.html#24511" class="Bound">n</a> <a id="24513" href="Data.Nat.Properties.html#24513" class="Bound">o</a> <a id="24515" href="Data.Nat.Properties.html#24515" class="Bound">p</a> <a id="24517" class="Symbol">=</a> <a id="24519" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="24536" class="Symbol">(</a><a id="24537" href="Data.Nat.Properties.html#24509" class="Bound">m</a> <a id="24539" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="24541" href="Data.Nat.Properties.html#24511" class="Bound">n</a><a id="24542" class="Symbol">)</a> <a id="24544" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="24546" class="Symbol">(</a><a id="24547" href="Data.Nat.Properties.html#24513" class="Bound">o</a> <a id="24549" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="24551" href="Data.Nat.Properties.html#24515" class="Bound">p</a><a id="24552" class="Symbol">)</a> <a id="24554" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="24558" href="Data.Nat.Properties.html#21055" class="Function">*-assoc</a> <a id="24566" href="Data.Nat.Properties.html#24509" class="Bound">m</a> <a id="24568" href="Data.Nat.Properties.html#24511" class="Bound">n</a> <a id="24570" class="Symbol">(</a><a id="24571" href="Data.Nat.Properties.html#24513" class="Bound">o</a> <a id="24573" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="24575" href="Data.Nat.Properties.html#24515" class="Bound">p</a><a id="24576" class="Symbol">)</a> <a id="24578" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="24582" href="Data.Nat.Properties.html#24509" class="Bound">m</a> <a id="24584" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="24586" class="Symbol">(</a><a id="24587" href="Data.Nat.Properties.html#24511" class="Bound">n</a> <a id="24589" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="24591" class="Symbol">(</a><a id="24592" href="Data.Nat.Properties.html#24513" class="Bound">o</a> <a id="24594" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="24596" href="Data.Nat.Properties.html#24515" class="Bound">p</a><a id="24597" class="Symbol">))</a> <a id="24600" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="24604" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="24609" class="Symbol">(</a><a id="24610" href="Data.Nat.Properties.html#24509" class="Bound">m</a> <a id="24612" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*_</a><a id="24614" class="Symbol">)</a> <a id="24616" class="Symbol">(</a><a id="24617" href="Algebra.Properties.CommutativeSemigroup.html#1023" class="Function">x∙yz≈y∙xz</a> <a id="24627" href="Data.Nat.Properties.html#24511" class="Bound">n</a> <a id="24629" href="Data.Nat.Properties.html#24513" class="Bound">o</a> <a id="24631" href="Data.Nat.Properties.html#24515" class="Bound">p</a><a id="24632" class="Symbol">)</a> <a id="24634" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="24638" href="Data.Nat.Properties.html#24509" class="Bound">m</a> <a id="24640" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="24642" class="Symbol">(</a><a id="24643" href="Data.Nat.Properties.html#24513" class="Bound">o</a> <a id="24645" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="24647" class="Symbol">(</a><a id="24648" href="Data.Nat.Properties.html#24511" class="Bound">n</a> <a id="24650" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="24652" href="Data.Nat.Properties.html#24515" class="Bound">p</a><a id="24653" class="Symbol">))</a> <a id="24656" href="Relation.Binary.Reasoning.Base.Triple.html#4879" class="Function">≡˘⟨</a> <a id="24660" href="Data.Nat.Properties.html#21055" class="Function">*-assoc</a> <a id="24668" href="Data.Nat.Properties.html#24509" class="Bound">m</a> <a id="24670" href="Data.Nat.Properties.html#24513" class="Bound">o</a> <a id="24672" class="Symbol">(</a><a id="24673" href="Data.Nat.Properties.html#24511" class="Bound">n</a> <a id="24675" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="24677" href="Data.Nat.Properties.html#24515" class="Bound">p</a><a id="24678" class="Symbol">)</a> <a id="24680" href="Relation.Binary.Reasoning.Base.Triple.html#4879" class="Function">⟩</a>
|
||
<a id="24684" class="Symbol">(</a><a id="24685" href="Data.Nat.Properties.html#24509" class="Bound">m</a> <a id="24687" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="24689" href="Data.Nat.Properties.html#24513" class="Bound">o</a><a id="24690" class="Symbol">)</a> <a id="24692" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="24694" class="Symbol">(</a><a id="24695" href="Data.Nat.Properties.html#24511" class="Bound">n</a> <a id="24697" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="24699" href="Data.Nat.Properties.html#24515" class="Bound">p</a><a id="24700" class="Symbol">)</a> <a id="24702" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
<a id="24706" class="Keyword">where</a> <a id="24712" class="Keyword">open</a> <a id="24717" href="Algebra.Properties.CommutativeSemigroup.html" class="Module">CommSemigroupProperties</a> <a id="24741" href="Data.Nat.Properties.html#22906" class="Function">*-commutativeSemigroup</a>
|
||
|
||
<a id="24765" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="24838" class="Comment">-- Other properties of _*_ and _≤_/_<_</a>
|
||
|
||
<a id="*-cancelʳ-≤"></a><a id="24878" href="Data.Nat.Properties.html#24878" class="Function">*-cancelʳ-≤</a> <a id="24890" class="Symbol">:</a> <a id="24892" class="Symbol">∀</a> <a id="24894" href="Data.Nat.Properties.html#24894" class="Bound">m</a> <a id="24896" href="Data.Nat.Properties.html#24896" class="Bound">n</a> <a id="24898" href="Data.Nat.Properties.html#24898" class="Bound">o</a> <a id="24900" class="Symbol">→</a> <a id="24902" href="Data.Nat.Properties.html#24894" class="Bound">m</a> <a id="24904" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="24906" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="24910" href="Data.Nat.Properties.html#24898" class="Bound">o</a> <a id="24912" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="24914" href="Data.Nat.Properties.html#24896" class="Bound">n</a> <a id="24916" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="24918" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="24922" href="Data.Nat.Properties.html#24898" class="Bound">o</a> <a id="24924" class="Symbol">→</a> <a id="24926" href="Data.Nat.Properties.html#24894" class="Bound">m</a> <a id="24928" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="24930" href="Data.Nat.Properties.html#24896" class="Bound">n</a>
|
||
<a id="24932" href="Data.Nat.Properties.html#24878" class="Function">*-cancelʳ-≤</a> <a id="24944" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="24952" class="Symbol">_</a> <a id="24960" class="Symbol">_</a> <a id="24962" class="Symbol">_</a> <a id="24965" class="Symbol">=</a> <a id="24967" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="24971" href="Data.Nat.Properties.html#24878" class="Function">*-cancelʳ-≤</a> <a id="24983" class="Symbol">(</a><a id="24984" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="24988" href="Data.Nat.Properties.html#24988" class="Bound">m</a><a id="24989" class="Symbol">)</a> <a id="24991" class="Symbol">(</a><a id="24992" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="24996" href="Data.Nat.Properties.html#24996" class="Bound">n</a><a id="24997" class="Symbol">)</a> <a id="24999" href="Data.Nat.Properties.html#24999" class="Bound">o</a> <a id="25001" href="Data.Nat.Properties.html#25001" class="Bound">le</a> <a id="25004" class="Symbol">=</a>
|
||
<a id="25008" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="25012" class="Symbol">(</a><a id="25013" href="Data.Nat.Properties.html#24878" class="Function">*-cancelʳ-≤</a> <a id="25025" href="Data.Nat.Properties.html#24988" class="Bound">m</a> <a id="25027" href="Data.Nat.Properties.html#24996" class="Bound">n</a> <a id="25029" href="Data.Nat.Properties.html#24999" class="Bound">o</a> <a id="25031" class="Symbol">(</a><a id="25032" href="Data.Nat.Properties.html#16261" class="Function">+-cancelˡ-≤</a> <a id="25044" class="Symbol">(</a><a id="25045" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="25049" href="Data.Nat.Properties.html#24999" class="Bound">o</a><a id="25050" class="Symbol">)</a> <a id="25052" href="Data.Nat.Properties.html#25001" class="Bound">le</a><a id="25054" class="Symbol">))</a>
|
||
|
||
<a id="*-cancelˡ-≤"></a><a id="25058" href="Data.Nat.Properties.html#25058" class="Function">*-cancelˡ-≤</a> <a id="25070" class="Symbol">:</a> <a id="25072" class="Symbol">∀</a> <a id="25074" class="Symbol">{</a><a id="25075" href="Data.Nat.Properties.html#25075" class="Bound">m</a> <a id="25077" href="Data.Nat.Properties.html#25077" class="Bound">n</a><a id="25078" class="Symbol">}</a> <a id="25080" href="Data.Nat.Properties.html#25080" class="Bound">o</a> <a id="25082" class="Symbol">→</a> <a id="25084" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="25088" href="Data.Nat.Properties.html#25080" class="Bound">o</a> <a id="25090" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="25092" href="Data.Nat.Properties.html#25075" class="Bound">m</a> <a id="25094" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="25096" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="25100" href="Data.Nat.Properties.html#25080" class="Bound">o</a> <a id="25102" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="25104" href="Data.Nat.Properties.html#25077" class="Bound">n</a> <a id="25106" class="Symbol">→</a> <a id="25108" href="Data.Nat.Properties.html#25075" class="Bound">m</a> <a id="25110" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="25112" href="Data.Nat.Properties.html#25077" class="Bound">n</a>
|
||
<a id="25114" href="Data.Nat.Properties.html#25058" class="Function">*-cancelˡ-≤</a> <a id="25126" class="Symbol">{</a><a id="25127" href="Data.Nat.Properties.html#25127" class="Bound">m</a><a id="25128" class="Symbol">}</a> <a id="25130" class="Symbol">{</a><a id="25131" href="Data.Nat.Properties.html#25131" class="Bound">n</a><a id="25132" class="Symbol">}</a> <a id="25134" href="Data.Nat.Properties.html#25134" class="Bound">o</a> <a id="25136" class="Keyword">rewrite</a> <a id="25144" href="Data.Nat.Properties.html#20365" class="Function">*-comm</a> <a id="25151" class="Symbol">(</a><a id="25152" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="25156" href="Data.Nat.Properties.html#25134" class="Bound">o</a><a id="25157" class="Symbol">)</a> <a id="25159" href="Data.Nat.Properties.html#25127" class="Bound">m</a> <a id="25161" class="Symbol">|</a> <a id="25163" href="Data.Nat.Properties.html#20365" class="Function">*-comm</a> <a id="25170" class="Symbol">(</a><a id="25171" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="25175" href="Data.Nat.Properties.html#25134" class="Bound">o</a><a id="25176" class="Symbol">)</a> <a id="25178" href="Data.Nat.Properties.html#25131" class="Bound">n</a> <a id="25180" class="Symbol">=</a> <a id="25182" href="Data.Nat.Properties.html#24878" class="Function">*-cancelʳ-≤</a> <a id="25194" href="Data.Nat.Properties.html#25127" class="Bound">m</a> <a id="25196" href="Data.Nat.Properties.html#25131" class="Bound">n</a> <a id="25198" href="Data.Nat.Properties.html#25134" class="Bound">o</a>
|
||
|
||
<a id="*-mono-≤"></a><a id="25201" href="Data.Nat.Properties.html#25201" class="Function">*-mono-≤</a> <a id="25210" class="Symbol">:</a> <a id="25212" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a> <a id="25216" href="Relation.Binary.Core.html#1698" class="Function Operator">Preserves₂</a> <a id="25227" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="25231" href="Relation.Binary.Core.html#1698" class="Function Operator">⟶</a> <a id="25233" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="25237" href="Relation.Binary.Core.html#1698" class="Function Operator">⟶</a> <a id="25239" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="25243" href="Data.Nat.Properties.html#25201" class="Function">*-mono-≤</a> <a id="25252" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="25262" class="Symbol">_</a> <a id="25266" class="Symbol">=</a> <a id="25268" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="25272" href="Data.Nat.Properties.html#25201" class="Function">*-mono-≤</a> <a id="25281" class="Symbol">(</a><a id="25282" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="25286" href="Data.Nat.Properties.html#25286" class="Bound">m≤n</a><a id="25289" class="Symbol">)</a> <a id="25291" href="Data.Nat.Properties.html#25291" class="Bound">u≤v</a> <a id="25295" class="Symbol">=</a> <a id="25297" href="Data.Nat.Properties.html#17789" class="Function">+-mono-≤</a> <a id="25306" href="Data.Nat.Properties.html#25291" class="Bound">u≤v</a> <a id="25310" class="Symbol">(</a><a id="25311" href="Data.Nat.Properties.html#25201" class="Function">*-mono-≤</a> <a id="25320" href="Data.Nat.Properties.html#25286" class="Bound">m≤n</a> <a id="25324" href="Data.Nat.Properties.html#25291" class="Bound">u≤v</a><a id="25327" class="Symbol">)</a>
|
||
|
||
<a id="*-monoˡ-≤"></a><a id="25330" href="Data.Nat.Properties.html#25330" class="Function">*-monoˡ-≤</a> <a id="25340" class="Symbol">:</a> <a id="25342" class="Symbol">∀</a> <a id="25344" href="Data.Nat.Properties.html#25344" class="Bound">n</a> <a id="25346" class="Symbol">→</a> <a id="25348" class="Symbol">(</a><a id="25349" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*</a> <a id="25352" href="Data.Nat.Properties.html#25344" class="Bound">n</a><a id="25353" class="Symbol">)</a> <a id="25355" href="Relation.Binary.Core.html#1572" class="Function Operator">Preserves</a> <a id="25365" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="25369" href="Relation.Binary.Core.html#1572" class="Function Operator">⟶</a> <a id="25371" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="25375" href="Data.Nat.Properties.html#25330" class="Function">*-monoˡ-≤</a> <a id="25385" href="Data.Nat.Properties.html#25385" class="Bound">n</a> <a id="25387" href="Data.Nat.Properties.html#25387" class="Bound">m≤o</a> <a id="25391" class="Symbol">=</a> <a id="25393" href="Data.Nat.Properties.html#25201" class="Function">*-mono-≤</a> <a id="25402" href="Data.Nat.Properties.html#25387" class="Bound">m≤o</a> <a id="25406" class="Symbol">(</a><a id="25407" href="Data.Nat.Properties.html#4574" class="Function">≤-refl</a> <a id="25414" class="Symbol">{</a><a id="25415" href="Data.Nat.Properties.html#25385" class="Bound">n</a><a id="25416" class="Symbol">})</a>
|
||
|
||
<a id="*-monoʳ-≤"></a><a id="25420" href="Data.Nat.Properties.html#25420" class="Function">*-monoʳ-≤</a> <a id="25430" class="Symbol">:</a> <a id="25432" class="Symbol">∀</a> <a id="25434" href="Data.Nat.Properties.html#25434" class="Bound">n</a> <a id="25436" class="Symbol">→</a> <a id="25438" class="Symbol">(</a><a id="25439" href="Data.Nat.Properties.html#25434" class="Bound">n</a> <a id="25441" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*_</a><a id="25443" class="Symbol">)</a> <a id="25445" href="Relation.Binary.Core.html#1572" class="Function Operator">Preserves</a> <a id="25455" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="25459" href="Relation.Binary.Core.html#1572" class="Function Operator">⟶</a> <a id="25461" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="25465" href="Data.Nat.Properties.html#25420" class="Function">*-monoʳ-≤</a> <a id="25475" href="Data.Nat.Properties.html#25475" class="Bound">n</a> <a id="25477" href="Data.Nat.Properties.html#25477" class="Bound">m≤o</a> <a id="25481" class="Symbol">=</a> <a id="25483" href="Data.Nat.Properties.html#25201" class="Function">*-mono-≤</a> <a id="25492" class="Symbol">(</a><a id="25493" href="Data.Nat.Properties.html#4574" class="Function">≤-refl</a> <a id="25500" class="Symbol">{</a><a id="25501" href="Data.Nat.Properties.html#25475" class="Bound">n</a><a id="25502" class="Symbol">})</a> <a id="25505" href="Data.Nat.Properties.html#25477" class="Bound">m≤o</a>
|
||
|
||
<a id="*-mono-<"></a><a id="25510" href="Data.Nat.Properties.html#25510" class="Function">*-mono-<</a> <a id="25519" class="Symbol">:</a> <a id="25521" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a> <a id="25525" href="Relation.Binary.Core.html#1698" class="Function Operator">Preserves₂</a> <a id="25536" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="25540" href="Relation.Binary.Core.html#1698" class="Function Operator">⟶</a> <a id="25542" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="25546" href="Relation.Binary.Core.html#1698" class="Function Operator">⟶</a> <a id="25548" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a>
|
||
<a id="25552" href="Data.Nat.Properties.html#25510" class="Function">*-mono-<</a> <a id="25561" class="Symbol">(</a><a id="25562" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="25566" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a><a id="25569" class="Symbol">)</a> <a id="25577" class="Symbol">(</a><a id="25578" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="25582" href="Data.Nat.Properties.html#25582" class="Bound">u≤v</a><a id="25585" class="Symbol">)</a> <a id="25587" class="Symbol">=</a> <a id="25589" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="25593" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="25597" href="Data.Nat.Properties.html#25510" class="Function">*-mono-<</a> <a id="25606" class="Symbol">(</a><a id="25607" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="25611" class="Symbol">(</a><a id="25612" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="25616" href="Data.Nat.Properties.html#25616" class="Bound">m≤n</a><a id="25619" class="Symbol">))</a> <a id="25622" class="Symbol">(</a><a id="25623" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="25627" href="Data.Nat.Properties.html#25627" class="Bound">u≤v</a><a id="25630" class="Symbol">)</a> <a id="25632" class="Symbol">=</a>
|
||
<a id="25636" href="Data.Nat.Properties.html#18476" class="Function">+-mono-<</a> <a id="25645" class="Symbol">(</a><a id="25646" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="25650" href="Data.Nat.Properties.html#25627" class="Bound">u≤v</a><a id="25653" class="Symbol">)</a> <a id="25655" class="Symbol">(</a><a id="25656" href="Data.Nat.Properties.html#25510" class="Function">*-mono-<</a> <a id="25665" class="Symbol">(</a><a id="25666" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="25670" href="Data.Nat.Properties.html#25616" class="Bound">m≤n</a><a id="25673" class="Symbol">)</a> <a id="25675" class="Symbol">(</a><a id="25676" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="25680" href="Data.Nat.Properties.html#25627" class="Bound">u≤v</a><a id="25683" class="Symbol">))</a>
|
||
|
||
<a id="*-monoˡ-<"></a><a id="25687" href="Data.Nat.Properties.html#25687" class="Function">*-monoˡ-<</a> <a id="25697" class="Symbol">:</a> <a id="25699" class="Symbol">∀</a> <a id="25701" href="Data.Nat.Properties.html#25701" class="Bound">n</a> <a id="25703" class="Symbol">→</a> <a id="25705" class="Symbol">(</a><a id="25706" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*</a> <a id="25709" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="25713" href="Data.Nat.Properties.html#25701" class="Bound">n</a><a id="25714" class="Symbol">)</a> <a id="25716" href="Relation.Binary.Core.html#1572" class="Function Operator">Preserves</a> <a id="25726" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="25730" href="Relation.Binary.Core.html#1572" class="Function Operator">⟶</a> <a id="25732" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a>
|
||
<a id="25736" href="Data.Nat.Properties.html#25687" class="Function">*-monoˡ-<</a> <a id="25746" href="Data.Nat.Properties.html#25746" class="Bound">n</a> <a id="25748" class="Symbol">(</a><a id="25749" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="25753" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a><a id="25756" class="Symbol">)</a> <a id="25764" class="Symbol">=</a> <a id="25766" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="25770" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="25774" href="Data.Nat.Properties.html#25687" class="Function">*-monoˡ-<</a> <a id="25784" href="Data.Nat.Properties.html#25784" class="Bound">n</a> <a id="25786" class="Symbol">(</a><a id="25787" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="25791" class="Symbol">(</a><a id="25792" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="25796" href="Data.Nat.Properties.html#25796" class="Bound">m≤o</a><a id="25799" class="Symbol">))</a> <a id="25802" class="Symbol">=</a>
|
||
<a id="25806" href="Data.Nat.Properties.html#18312" class="Function">+-mono-≤-<</a> <a id="25817" class="Symbol">(</a><a id="25818" href="Data.Nat.Properties.html#4574" class="Function">≤-refl</a> <a id="25825" class="Symbol">{</a><a id="25826" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="25830" href="Data.Nat.Properties.html#25784" class="Bound">n</a><a id="25831" class="Symbol">})</a> <a id="25834" class="Symbol">(</a><a id="25835" href="Data.Nat.Properties.html#25687" class="Function">*-monoˡ-<</a> <a id="25845" href="Data.Nat.Properties.html#25784" class="Bound">n</a> <a id="25847" class="Symbol">(</a><a id="25848" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="25852" href="Data.Nat.Properties.html#25796" class="Bound">m≤o</a><a id="25855" class="Symbol">))</a>
|
||
|
||
<a id="*-monoʳ-<"></a><a id="25859" href="Data.Nat.Properties.html#25859" class="Function">*-monoʳ-<</a> <a id="25869" class="Symbol">:</a> <a id="25871" class="Symbol">∀</a> <a id="25873" href="Data.Nat.Properties.html#25873" class="Bound">n</a> <a id="25875" class="Symbol">→</a> <a id="25877" class="Symbol">(</a><a id="25878" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="25882" href="Data.Nat.Properties.html#25873" class="Bound">n</a> <a id="25884" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*_</a><a id="25886" class="Symbol">)</a> <a id="25888" href="Relation.Binary.Core.html#1572" class="Function Operator">Preserves</a> <a id="25898" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="25902" href="Relation.Binary.Core.html#1572" class="Function Operator">⟶</a> <a id="25904" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a>
|
||
<a id="25908" href="Data.Nat.Properties.html#25859" class="Function">*-monoʳ-<</a> <a id="25918" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="25926" class="Symbol">(</a><a id="25927" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="25931" href="Data.Nat.Properties.html#25931" class="Bound">m≤o</a><a id="25934" class="Symbol">)</a> <a id="25936" class="Symbol">=</a> <a id="25938" href="Data.Nat.Properties.html#17789" class="Function">+-mono-≤</a> <a id="25947" class="Symbol">(</a><a id="25948" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="25952" href="Data.Nat.Properties.html#25931" class="Bound">m≤o</a><a id="25955" class="Symbol">)</a> <a id="25957" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="25961" href="Data.Nat.Properties.html#25859" class="Function">*-monoʳ-<</a> <a id="25971" class="Symbol">(</a><a id="25972" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="25976" href="Data.Nat.Properties.html#25976" class="Bound">n</a><a id="25977" class="Symbol">)</a> <a id="25979" class="Symbol">(</a><a id="25980" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="25984" href="Data.Nat.Properties.html#25984" class="Bound">m≤o</a><a id="25987" class="Symbol">)</a> <a id="25989" class="Symbol">=</a>
|
||
<a id="25993" href="Data.Nat.Properties.html#17789" class="Function">+-mono-≤</a> <a id="26002" class="Symbol">(</a><a id="26003" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="26007" href="Data.Nat.Properties.html#25984" class="Bound">m≤o</a><a id="26010" class="Symbol">)</a> <a id="26012" class="Symbol">(</a><a id="26013" href="Data.Nat.Properties.html#7658" class="Function"><⇒≤</a> <a id="26017" class="Symbol">(</a><a id="26018" href="Data.Nat.Properties.html#25859" class="Function">*-monoʳ-<</a> <a id="26028" href="Data.Nat.Properties.html#25976" class="Bound">n</a> <a id="26030" class="Symbol">(</a><a id="26031" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="26035" href="Data.Nat.Properties.html#25984" class="Bound">m≤o</a><a id="26038" class="Symbol">)))</a>
|
||
|
||
<a id="m≤m*n"></a><a id="26043" href="Data.Nat.Properties.html#26043" class="Function">m≤m*n</a> <a id="26049" class="Symbol">:</a> <a id="26051" class="Symbol">∀</a> <a id="26053" href="Data.Nat.Properties.html#26053" class="Bound">m</a> <a id="26055" class="Symbol">{</a><a id="26056" href="Data.Nat.Properties.html#26056" class="Bound">n</a><a id="26057" class="Symbol">}</a> <a id="26059" class="Symbol">→</a> <a id="26061" class="Number">0</a> <a id="26063" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="26065" href="Data.Nat.Properties.html#26056" class="Bound">n</a> <a id="26067" class="Symbol">→</a> <a id="26069" href="Data.Nat.Properties.html#26053" class="Bound">m</a> <a id="26071" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="26073" href="Data.Nat.Properties.html#26053" class="Bound">m</a> <a id="26075" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="26077" href="Data.Nat.Properties.html#26056" class="Bound">n</a>
|
||
<a id="26079" href="Data.Nat.Properties.html#26043" class="Function">m≤m*n</a> <a id="26085" href="Data.Nat.Properties.html#26085" class="Bound">m</a> <a id="26087" class="Symbol">{</a><a id="26088" href="Data.Nat.Properties.html#26088" class="Bound">n</a><a id="26089" class="Symbol">}</a> <a id="26091" href="Data.Nat.Properties.html#26091" class="Bound">0<n</a> <a id="26095" class="Symbol">=</a> <a id="26097" href="Relation.Binary.Reasoning.Base.Triple.html#3019" class="Function Operator">begin</a>
|
||
<a id="26105" href="Data.Nat.Properties.html#26085" class="Bound">m</a> <a id="26111" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="26114" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="26118" class="Symbol">(</a><a id="26119" href="Data.Nat.Properties.html#20019" class="Function">*-identityʳ</a> <a id="26131" href="Data.Nat.Properties.html#26085" class="Bound">m</a><a id="26132" class="Symbol">)</a> <a id="26134" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="26138" href="Data.Nat.Properties.html#26085" class="Bound">m</a> <a id="26140" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="26142" class="Number">1</a> <a id="26144" href="Relation.Binary.Reasoning.Base.Triple.html#3754" class="Function">≤⟨</a> <a id="26147" href="Data.Nat.Properties.html#25420" class="Function">*-monoʳ-≤</a> <a id="26157" href="Data.Nat.Properties.html#26085" class="Bound">m</a> <a id="26159" href="Data.Nat.Properties.html#26091" class="Bound">0<n</a> <a id="26163" href="Relation.Binary.Reasoning.Base.Triple.html#3754" class="Function">⟩</a>
|
||
<a id="26167" href="Data.Nat.Properties.html#26085" class="Bound">m</a> <a id="26169" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="26171" href="Data.Nat.Properties.html#26088" class="Bound">n</a> <a id="26173" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
|
||
<a id="m≤n*m"></a><a id="26176" href="Data.Nat.Properties.html#26176" class="Function">m≤n*m</a> <a id="26182" class="Symbol">:</a> <a id="26184" class="Symbol">∀</a> <a id="26186" href="Data.Nat.Properties.html#26186" class="Bound">m</a> <a id="26188" class="Symbol">{</a><a id="26189" href="Data.Nat.Properties.html#26189" class="Bound">n</a><a id="26190" class="Symbol">}</a> <a id="26192" class="Symbol">→</a> <a id="26194" class="Number">0</a> <a id="26196" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="26198" href="Data.Nat.Properties.html#26189" class="Bound">n</a> <a id="26200" class="Symbol">→</a> <a id="26202" href="Data.Nat.Properties.html#26186" class="Bound">m</a> <a id="26204" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="26206" href="Data.Nat.Properties.html#26189" class="Bound">n</a> <a id="26208" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="26210" href="Data.Nat.Properties.html#26186" class="Bound">m</a>
|
||
<a id="26212" href="Data.Nat.Properties.html#26176" class="Function">m≤n*m</a> <a id="26218" href="Data.Nat.Properties.html#26218" class="Bound">m</a> <a id="26220" class="Symbol">{</a><a id="26221" href="Data.Nat.Properties.html#26221" class="Bound">n</a><a id="26222" class="Symbol">}</a> <a id="26224" href="Data.Nat.Properties.html#26224" class="Bound">0<n</a> <a id="26228" class="Symbol">=</a> <a id="26230" href="Relation.Binary.Reasoning.Base.Triple.html#3019" class="Function Operator">begin</a>
|
||
<a id="26238" href="Data.Nat.Properties.html#26218" class="Bound">m</a> <a id="26244" href="Relation.Binary.Reasoning.Base.Triple.html#3754" class="Function">≤⟨</a> <a id="26247" href="Data.Nat.Properties.html#26043" class="Function">m≤m*n</a> <a id="26253" href="Data.Nat.Properties.html#26218" class="Bound">m</a> <a id="26255" href="Data.Nat.Properties.html#26224" class="Bound">0<n</a> <a id="26259" href="Relation.Binary.Reasoning.Base.Triple.html#3754" class="Function">⟩</a>
|
||
<a id="26263" href="Data.Nat.Properties.html#26218" class="Bound">m</a> <a id="26265" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="26267" href="Data.Nat.Properties.html#26221" class="Bound">n</a> <a id="26269" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="26272" href="Data.Nat.Properties.html#20365" class="Function">*-comm</a> <a id="26279" href="Data.Nat.Properties.html#26218" class="Bound">m</a> <a id="26281" href="Data.Nat.Properties.html#26221" class="Bound">n</a> <a id="26283" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="26287" href="Data.Nat.Properties.html#26221" class="Bound">n</a> <a id="26289" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="26291" href="Data.Nat.Properties.html#26218" class="Bound">m</a> <a id="26293" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
|
||
<a id="m<m*n"></a><a id="26296" href="Data.Nat.Properties.html#26296" class="Function">m<m*n</a> <a id="26302" class="Symbol">:</a> <a id="26305" class="Symbol">∀</a> <a id="26307" class="Symbol">{</a><a id="26308" href="Data.Nat.Properties.html#26308" class="Bound">m</a> <a id="26310" href="Data.Nat.Properties.html#26310" class="Bound">n</a><a id="26311" class="Symbol">}</a> <a id="26313" class="Symbol">→</a> <a id="26315" class="Number">0</a> <a id="26317" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="26319" href="Data.Nat.Properties.html#26308" class="Bound">m</a> <a id="26321" class="Symbol">→</a> <a id="26323" class="Number">1</a> <a id="26325" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="26327" href="Data.Nat.Properties.html#26310" class="Bound">n</a> <a id="26329" class="Symbol">→</a> <a id="26331" href="Data.Nat.Properties.html#26308" class="Bound">m</a> <a id="26333" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="26335" href="Data.Nat.Properties.html#26308" class="Bound">m</a> <a id="26337" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="26339" href="Data.Nat.Properties.html#26310" class="Bound">n</a>
|
||
<a id="26341" href="Data.Nat.Properties.html#26296" class="Function">m<m*n</a> <a id="26347" class="Symbol">{</a><a id="26348" href="Data.Nat.Properties.html#26348" class="Bound">m</a><a id="26349" class="Symbol">@(</a><a id="26351" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="26355" href="Data.Nat.Properties.html#26355" class="Bound">m-1</a><a id="26358" class="Symbol">)}</a> <a id="26361" class="Symbol">{</a><a id="26362" href="Data.Nat.Properties.html#26362" class="Bound">n</a><a id="26363" class="Symbol">@(</a><a id="26365" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="26369" class="Symbol">(</a><a id="26370" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="26374" href="Data.Nat.Properties.html#26374" class="Bound">n-2</a><a id="26377" class="Symbol">))}</a> <a id="26381" class="Symbol">(</a><a id="26382" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="26386" class="Symbol">_)</a> <a id="26389" class="Symbol">(</a><a id="26390" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="26394" class="Symbol">(</a><a id="26395" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="26399" class="Symbol">_))</a> <a id="26403" class="Symbol">=</a> <a id="26405" href="Relation.Binary.Reasoning.Base.Triple.html#3163" class="Function Operator">begin-strict</a>
|
||
<a id="26420" href="Data.Nat.Properties.html#26348" class="Bound">m</a> <a id="26432" href="Relation.Binary.Reasoning.Base.Triple.html#3469" class="Function"><⟨</a> <a id="26435" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="26439" class="Symbol">(</a><a id="26440" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="26444" class="Symbol">(</a><a id="26445" href="Data.Nat.Properties.html#17172" class="Function">m≤n+m</a> <a id="26451" href="Data.Nat.Properties.html#26355" class="Bound">m-1</a> <a id="26455" href="Data.Nat.Properties.html#26374" class="Bound">n-2</a><a id="26458" class="Symbol">))</a> <a id="26461" href="Relation.Binary.Reasoning.Base.Triple.html#3469" class="Function">⟩</a>
|
||
<a id="26465" href="Data.Nat.Properties.html#26362" class="Bound">n</a> <a id="26467" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="26469" href="Data.Nat.Properties.html#26355" class="Bound">m-1</a> <a id="26477" href="Relation.Binary.Reasoning.Base.Triple.html#3754" class="Function">≤⟨</a> <a id="26480" href="Data.Nat.Properties.html#18035" class="Function">+-monoʳ-≤</a> <a id="26490" href="Data.Nat.Properties.html#26362" class="Bound">n</a> <a id="26492" class="Symbol">(</a><a id="26493" href="Data.Nat.Properties.html#26043" class="Function">m≤m*n</a> <a id="26499" href="Data.Nat.Properties.html#26355" class="Bound">m-1</a> <a id="26503" href="Data.Nat.Properties.html#11182" class="Function">0<1+n</a><a id="26508" class="Symbol">)</a> <a id="26510" href="Relation.Binary.Reasoning.Base.Triple.html#3754" class="Function">⟩</a>
|
||
<a id="26514" href="Data.Nat.Properties.html#26362" class="Bound">n</a> <a id="26516" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="26518" href="Data.Nat.Properties.html#26355" class="Bound">m-1</a> <a id="26522" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="26524" href="Data.Nat.Properties.html#26362" class="Bound">n</a> <a id="26526" href="Relation.Binary.Reasoning.Base.Triple.html#5032" class="Function Operator">≡⟨⟩</a>
|
||
<a id="26532" href="Data.Nat.Properties.html#26348" class="Bound">m</a> <a id="26534" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="26536" href="Data.Nat.Properties.html#26362" class="Bound">n</a> <a id="26544" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
|
||
<a id="*-cancelʳ-<"></a><a id="26547" href="Data.Nat.Properties.html#26547" class="Function">*-cancelʳ-<</a> <a id="26559" class="Symbol">:</a> <a id="26561" href="Algebra.Definitions.html#3186" class="Function">RightCancellative</a> <a id="26579" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="26583" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a>
|
||
<a id="26587" href="Data.Nat.Properties.html#26547" class="Function">*-cancelʳ-<</a> <a id="26599" class="Symbol">{</a><a id="26600" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="26604" class="Symbol">}</a> <a id="26607" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="26615" class="Symbol">(</a><a id="26616" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="26620" href="Data.Nat.Properties.html#26620" class="Bound">o</a><a id="26621" class="Symbol">)</a> <a id="26623" class="Symbol">_</a> <a id="26629" class="Symbol">=</a> <a id="26631" href="Data.Nat.Properties.html#11182" class="Function">0<1+n</a>
|
||
<a id="26637" href="Data.Nat.Properties.html#26547" class="Function">*-cancelʳ-<</a> <a id="26649" class="Symbol">{</a><a id="26650" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="26654" href="Data.Nat.Properties.html#26654" class="Bound">m</a><a id="26655" class="Symbol">}</a> <a id="26657" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="26665" class="Symbol">(</a><a id="26666" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="26670" href="Data.Nat.Properties.html#26670" class="Bound">o</a><a id="26671" class="Symbol">)</a> <a id="26673" class="Symbol">_</a> <a id="26679" class="Symbol">=</a> <a id="26681" href="Data.Nat.Properties.html#11182" class="Function">0<1+n</a>
|
||
<a id="26687" href="Data.Nat.Properties.html#26547" class="CatchallClause Function">*-cancelʳ-<</a><a id="26698" class="CatchallClause"> </a><a id="26699" class="CatchallClause Symbol">{</a><a id="26700" href="Data.Nat.Properties.html#26700" class="CatchallClause Bound">m</a><a id="26701" class="CatchallClause Symbol">}</a><a id="26702" class="CatchallClause"> </a><a id="26707" class="CatchallClause Symbol">(</a><a id="26708" href="Agda.Builtin.Nat.html#217" class="CatchallClause InductiveConstructor">suc</a><a id="26711" class="CatchallClause"> </a><a id="26712" href="Data.Nat.Properties.html#26712" class="CatchallClause Bound">n</a><a id="26713" class="CatchallClause Symbol">)</a><a id="26714" class="CatchallClause"> </a><a id="26715" class="CatchallClause Symbol">(</a><a id="26716" href="Agda.Builtin.Nat.html#217" class="CatchallClause InductiveConstructor">suc</a><a id="26719" class="CatchallClause"> </a><a id="26720" href="Data.Nat.Properties.html#26720" class="CatchallClause Bound">o</a><a id="26721" class="CatchallClause Symbol">)</a><a id="26722" class="CatchallClause"> </a><a id="26723" href="Data.Nat.Properties.html#26723" class="CatchallClause Bound">nm<om</a> <a id="26729" class="Symbol">=</a>
|
||
<a id="26733" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="26737" class="Symbol">(</a><a id="26738" href="Data.Nat.Properties.html#26547" class="Function">*-cancelʳ-<</a> <a id="26750" href="Data.Nat.Properties.html#26712" class="Bound">n</a> <a id="26752" href="Data.Nat.Properties.html#26720" class="Bound">o</a> <a id="26754" class="Symbol">(</a><a id="26755" href="Data.Nat.Properties.html#16581" class="Function">+-cancelˡ-<</a> <a id="26767" href="Data.Nat.Properties.html#26700" class="Bound">m</a> <a id="26769" href="Data.Nat.Properties.html#26723" class="Bound">nm<om</a><a id="26774" class="Symbol">))</a>
|
||
|
||
<a id="26778" class="Comment">-- Redo in terms of `comm+cancelʳ⇒cancelˡ` when generalised</a>
|
||
<a id="*-cancelˡ-<"></a><a id="26838" href="Data.Nat.Properties.html#26838" class="Function">*-cancelˡ-<</a> <a id="26850" class="Symbol">:</a> <a id="26852" href="Algebra.Definitions.html#3091" class="Function">LeftCancellative</a> <a id="26869" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="26873" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a>
|
||
<a id="26877" href="Data.Nat.Properties.html#26838" class="Function">*-cancelˡ-<</a> <a id="26889" href="Data.Nat.Properties.html#26889" class="Bound">x</a> <a id="26891" class="Symbol">{</a><a id="26892" href="Data.Nat.Properties.html#26892" class="Bound">y</a><a id="26893" class="Symbol">}</a> <a id="26895" class="Symbol">{</a><a id="26896" href="Data.Nat.Properties.html#26896" class="Bound">z</a><a id="26897" class="Symbol">}</a> <a id="26899" class="Keyword">rewrite</a> <a id="26907" href="Data.Nat.Properties.html#20365" class="Function">*-comm</a> <a id="26914" href="Data.Nat.Properties.html#26889" class="Bound">x</a> <a id="26916" href="Data.Nat.Properties.html#26892" class="Bound">y</a> <a id="26918" class="Symbol">|</a> <a id="26920" href="Data.Nat.Properties.html#20365" class="Function">*-comm</a> <a id="26927" href="Data.Nat.Properties.html#26889" class="Bound">x</a> <a id="26929" href="Data.Nat.Properties.html#26896" class="Bound">z</a> <a id="26931" class="Symbol">=</a> <a id="26933" href="Data.Nat.Properties.html#26547" class="Function">*-cancelʳ-<</a> <a id="26945" href="Data.Nat.Properties.html#26892" class="Bound">y</a> <a id="26947" href="Data.Nat.Properties.html#26896" class="Bound">z</a>
|
||
|
||
<a id="*-cancel-<"></a><a id="26950" href="Data.Nat.Properties.html#26950" class="Function">*-cancel-<</a> <a id="26961" class="Symbol">:</a> <a id="26963" href="Algebra.Definitions.html#3283" class="Function">Cancellative</a> <a id="26976" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="26980" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a>
|
||
<a id="26984" href="Data.Nat.Properties.html#26950" class="Function">*-cancel-<</a> <a id="26995" class="Symbol">=</a> <a id="26997" href="Data.Nat.Properties.html#26838" class="Function">*-cancelˡ-<</a> <a id="27009" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="27011" href="Data.Nat.Properties.html#26547" class="Function">*-cancelʳ-<</a>
|
||
|
||
<a id="27024" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="27097" class="Comment">-- Properties of _^_</a>
|
||
<a id="27118" class="Comment">------------------------------------------------------------------------</a>
|
||
|
||
<a id="^-identityʳ"></a><a id="27192" href="Data.Nat.Properties.html#27192" class="Function">^-identityʳ</a> <a id="27204" class="Symbol">:</a> <a id="27206" href="Algebra.Definitions.html#1350" class="Function">RightIdentity</a> <a id="27220" class="Number">1</a> <a id="27222" href="Data.Nat.Base.html#3480" class="Function Operator">_^_</a>
|
||
<a id="27226" href="Data.Nat.Properties.html#27192" class="Function">^-identityʳ</a> <a id="27238" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="27246" class="Symbol">=</a> <a id="27248" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="27253" href="Data.Nat.Properties.html#27192" class="Function">^-identityʳ</a> <a id="27265" class="Symbol">(</a><a id="27266" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="27270" href="Data.Nat.Properties.html#27270" class="Bound">n</a><a id="27271" class="Symbol">)</a> <a id="27273" class="Symbol">=</a> <a id="27275" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="27280" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="27284" class="Symbol">(</a><a id="27285" href="Data.Nat.Properties.html#27192" class="Function">^-identityʳ</a> <a id="27297" href="Data.Nat.Properties.html#27270" class="Bound">n</a><a id="27298" class="Symbol">)</a>
|
||
|
||
<a id="^-zeroˡ"></a><a id="27301" href="Data.Nat.Properties.html#27301" class="Function">^-zeroˡ</a> <a id="27309" class="Symbol">:</a> <a id="27311" href="Algebra.Definitions.html#1511" class="Function">LeftZero</a> <a id="27320" class="Number">1</a> <a id="27322" href="Data.Nat.Base.html#3480" class="Function Operator">_^_</a>
|
||
<a id="27326" href="Data.Nat.Properties.html#27301" class="Function">^-zeroˡ</a> <a id="27334" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="27342" class="Symbol">=</a> <a id="27344" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="27349" href="Data.Nat.Properties.html#27301" class="Function">^-zeroˡ</a> <a id="27357" class="Symbol">(</a><a id="27358" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="27362" href="Data.Nat.Properties.html#27362" class="Bound">n</a><a id="27363" class="Symbol">)</a> <a id="27365" class="Symbol">=</a> <a id="27367" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="27384" class="Number">1</a> <a id="27386" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="27388" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="27392" href="Data.Nat.Properties.html#27362" class="Bound">n</a> <a id="27396" href="Relation.Binary.Reasoning.Base.Triple.html#5032" class="Function Operator">≡⟨⟩</a>
|
||
<a id="27402" class="Number">1</a> <a id="27404" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="27406" class="Symbol">(</a><a id="27407" class="Number">1</a> <a id="27409" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="27411" href="Data.Nat.Properties.html#27362" class="Bound">n</a><a id="27412" class="Symbol">)</a> <a id="27414" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="27417" href="Data.Nat.Properties.html#19955" class="Function">*-identityˡ</a> <a id="27429" class="Symbol">(</a><a id="27430" class="Number">1</a> <a id="27432" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="27434" href="Data.Nat.Properties.html#27362" class="Bound">n</a><a id="27435" class="Symbol">)</a> <a id="27437" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="27441" class="Number">1</a> <a id="27443" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="27445" href="Data.Nat.Properties.html#27362" class="Bound">n</a> <a id="27453" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="27456" href="Data.Nat.Properties.html#27301" class="Function">^-zeroˡ</a> <a id="27464" href="Data.Nat.Properties.html#27362" class="Bound">n</a> <a id="27466" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="27470" class="Number">1</a> <a id="27482" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
|
||
<a id="^-distribˡ-+-*"></a><a id="27485" href="Data.Nat.Properties.html#27485" class="Function">^-distribˡ-+-*</a> <a id="27500" class="Symbol">:</a> <a id="27502" class="Symbol">∀</a> <a id="27504" href="Data.Nat.Properties.html#27504" class="Bound">m</a> <a id="27506" href="Data.Nat.Properties.html#27506" class="Bound">n</a> <a id="27508" href="Data.Nat.Properties.html#27508" class="Bound">o</a> <a id="27510" class="Symbol">→</a> <a id="27512" href="Data.Nat.Properties.html#27504" class="Bound">m</a> <a id="27514" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="27516" class="Symbol">(</a><a id="27517" href="Data.Nat.Properties.html#27506" class="Bound">n</a> <a id="27519" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="27521" href="Data.Nat.Properties.html#27508" class="Bound">o</a><a id="27522" class="Symbol">)</a> <a id="27524" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="27526" href="Data.Nat.Properties.html#27504" class="Bound">m</a> <a id="27528" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="27530" href="Data.Nat.Properties.html#27506" class="Bound">n</a> <a id="27532" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="27534" href="Data.Nat.Properties.html#27504" class="Bound">m</a> <a id="27536" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="27538" href="Data.Nat.Properties.html#27508" class="Bound">o</a>
|
||
<a id="27540" href="Data.Nat.Properties.html#27485" class="Function">^-distribˡ-+-*</a> <a id="27555" href="Data.Nat.Properties.html#27555" class="Bound">m</a> <a id="27557" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="27565" href="Data.Nat.Properties.html#27565" class="Bound">o</a> <a id="27567" class="Symbol">=</a> <a id="27569" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="27573" class="Symbol">(</a><a id="27574" href="Data.Nat.Properties.html#13227" class="Function">+-identityʳ</a> <a id="27586" class="Symbol">(</a><a id="27587" href="Data.Nat.Properties.html#27555" class="Bound">m</a> <a id="27589" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="27591" href="Data.Nat.Properties.html#27565" class="Bound">o</a><a id="27592" class="Symbol">))</a>
|
||
<a id="27595" href="Data.Nat.Properties.html#27485" class="Function">^-distribˡ-+-*</a> <a id="27610" href="Data.Nat.Properties.html#27610" class="Bound">m</a> <a id="27612" class="Symbol">(</a><a id="27613" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="27617" href="Data.Nat.Properties.html#27617" class="Bound">n</a><a id="27618" class="Symbol">)</a> <a id="27620" href="Data.Nat.Properties.html#27620" class="Bound">o</a> <a id="27622" class="Symbol">=</a> <a id="27624" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="27641" href="Data.Nat.Properties.html#27610" class="Bound">m</a> <a id="27643" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="27645" class="Symbol">(</a><a id="27646" href="Data.Nat.Properties.html#27610" class="Bound">m</a> <a id="27648" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="27650" class="Symbol">(</a><a id="27651" href="Data.Nat.Properties.html#27617" class="Bound">n</a> <a id="27653" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="27655" href="Data.Nat.Properties.html#27620" class="Bound">o</a><a id="27656" class="Symbol">))</a> <a id="27665" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="27668" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="27673" class="Symbol">(</a><a id="27674" href="Data.Nat.Properties.html#27610" class="Bound">m</a> <a id="27676" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*_</a><a id="27678" class="Symbol">)</a> <a id="27680" class="Symbol">(</a><a id="27681" href="Data.Nat.Properties.html#27485" class="Function">^-distribˡ-+-*</a> <a id="27696" href="Data.Nat.Properties.html#27610" class="Bound">m</a> <a id="27698" href="Data.Nat.Properties.html#27617" class="Bound">n</a> <a id="27700" href="Data.Nat.Properties.html#27620" class="Bound">o</a><a id="27701" class="Symbol">)</a> <a id="27703" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="27707" href="Data.Nat.Properties.html#27610" class="Bound">m</a> <a id="27709" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="27711" class="Symbol">((</a><a id="27713" href="Data.Nat.Properties.html#27610" class="Bound">m</a> <a id="27715" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="27717" href="Data.Nat.Properties.html#27617" class="Bound">n</a><a id="27718" class="Symbol">)</a> <a id="27720" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="27722" class="Symbol">(</a><a id="27723" href="Data.Nat.Properties.html#27610" class="Bound">m</a> <a id="27725" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="27727" href="Data.Nat.Properties.html#27620" class="Bound">o</a><a id="27728" class="Symbol">))</a> <a id="27731" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="27734" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="27738" class="Symbol">(</a><a id="27739" href="Data.Nat.Properties.html#21055" class="Function">*-assoc</a> <a id="27747" href="Data.Nat.Properties.html#27610" class="Bound">m</a> <a id="27749" class="Symbol">_</a> <a id="27751" class="Symbol">_)</a> <a id="27754" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="27758" class="Symbol">(</a><a id="27759" href="Data.Nat.Properties.html#27610" class="Bound">m</a> <a id="27761" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="27763" class="Symbol">(</a><a id="27764" href="Data.Nat.Properties.html#27610" class="Bound">m</a> <a id="27766" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="27768" href="Data.Nat.Properties.html#27617" class="Bound">n</a><a id="27769" class="Symbol">))</a> <a id="27772" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="27774" class="Symbol">(</a><a id="27775" href="Data.Nat.Properties.html#27610" class="Bound">m</a> <a id="27777" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="27779" href="Data.Nat.Properties.html#27620" class="Bound">o</a><a id="27780" class="Symbol">)</a> <a id="27782" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
|
||
<a id="^-semigroup-morphism"></a><a id="27785" href="Data.Nat.Properties.html#27785" class="Function">^-semigroup-morphism</a> <a id="27806" class="Symbol">:</a> <a id="27808" class="Symbol">∀</a> <a id="27810" class="Symbol">{</a><a id="27811" href="Data.Nat.Properties.html#27811" class="Bound">n</a><a id="27812" class="Symbol">}</a> <a id="27814" class="Symbol">→</a> <a id="27816" class="Symbol">(</a><a id="27817" href="Data.Nat.Properties.html#27811" class="Bound">n</a> <a id="27819" href="Data.Nat.Base.html#3480" class="Function Operator">^_</a><a id="27821" class="Symbol">)</a> <a id="27823" href="Algebra.Morphism.html#1595" class="Function">Is</a> <a id="27826" href="Data.Nat.Properties.html#15041" class="Function">+-semigroup</a> <a id="27838" href="Algebra.Morphism.html#1595" class="Function">-Semigroup⟶</a> <a id="27850" href="Data.Nat.Properties.html#22818" class="Function">*-semigroup</a>
|
||
<a id="27862" href="Data.Nat.Properties.html#27785" class="Function">^-semigroup-morphism</a> <a id="27883" class="Symbol">=</a> <a id="27885" class="Keyword">record</a>
|
||
<a id="27894" class="Symbol">{</a> <a id="27896" href="Algebra.Morphism.html#1509" class="Field">⟦⟧-cong</a> <a id="27904" class="Symbol">=</a> <a id="27906" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="27911" class="Symbol">(_</a> <a id="27914" href="Data.Nat.Base.html#3480" class="Function Operator">^_</a><a id="27916" class="Symbol">)</a>
|
||
<a id="27920" class="Symbol">;</a> <a id="27922" href="Algebra.Morphism.html#1553" class="Field">∙-homo</a> <a id="27930" class="Symbol">=</a> <a id="27932" href="Data.Nat.Properties.html#27485" class="Function">^-distribˡ-+-*</a> <a id="27947" class="Symbol">_</a>
|
||
<a id="27951" class="Symbol">}</a>
|
||
|
||
<a id="^-monoid-morphism"></a><a id="27954" href="Data.Nat.Properties.html#27954" class="Function">^-monoid-morphism</a> <a id="27972" class="Symbol">:</a> <a id="27974" class="Symbol">∀</a> <a id="27976" class="Symbol">{</a><a id="27977" href="Data.Nat.Properties.html#27977" class="Bound">n</a><a id="27978" class="Symbol">}</a> <a id="27980" class="Symbol">→</a> <a id="27982" class="Symbol">(</a><a id="27983" href="Data.Nat.Properties.html#27977" class="Bound">n</a> <a id="27985" href="Data.Nat.Base.html#3480" class="Function Operator">^_</a><a id="27987" class="Symbol">)</a> <a id="27989" href="Algebra.Morphism.html#2165" class="Function">Is</a> <a id="27992" href="Data.Nat.Properties.html#15272" class="Function">+-0-monoid</a> <a id="28003" href="Algebra.Morphism.html#2165" class="Function">-Monoid⟶</a> <a id="28012" href="Data.Nat.Properties.html#23049" class="Function">*-1-monoid</a>
|
||
<a id="28023" href="Data.Nat.Properties.html#27954" class="Function">^-monoid-morphism</a> <a id="28041" class="Symbol">=</a> <a id="28043" class="Keyword">record</a>
|
||
<a id="28052" class="Symbol">{</a> <a id="28054" href="Algebra.Morphism.html#2018" class="Field">sm-homo</a> <a id="28062" class="Symbol">=</a> <a id="28064" href="Data.Nat.Properties.html#27785" class="Function">^-semigroup-morphism</a>
|
||
<a id="28087" class="Symbol">;</a> <a id="28089" href="Algebra.Morphism.html#2082" class="Field">ε-homo</a> <a id="28097" class="Symbol">=</a> <a id="28099" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="28106" class="Symbol">}</a>
|
||
|
||
<a id="^-*-assoc"></a><a id="28109" href="Data.Nat.Properties.html#28109" class="Function">^-*-assoc</a> <a id="28119" class="Symbol">:</a> <a id="28121" class="Symbol">∀</a> <a id="28123" href="Data.Nat.Properties.html#28123" class="Bound">m</a> <a id="28125" href="Data.Nat.Properties.html#28125" class="Bound">n</a> <a id="28127" href="Data.Nat.Properties.html#28127" class="Bound">o</a> <a id="28129" class="Symbol">→</a> <a id="28131" class="Symbol">(</a><a id="28132" href="Data.Nat.Properties.html#28123" class="Bound">m</a> <a id="28134" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="28136" href="Data.Nat.Properties.html#28125" class="Bound">n</a><a id="28137" class="Symbol">)</a> <a id="28139" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="28141" href="Data.Nat.Properties.html#28127" class="Bound">o</a> <a id="28143" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="28145" href="Data.Nat.Properties.html#28123" class="Bound">m</a> <a id="28147" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="28149" class="Symbol">(</a><a id="28150" href="Data.Nat.Properties.html#28125" class="Bound">n</a> <a id="28152" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="28154" href="Data.Nat.Properties.html#28127" class="Bound">o</a><a id="28155" class="Symbol">)</a>
|
||
<a id="28157" href="Data.Nat.Properties.html#28109" class="Function">^-*-assoc</a> <a id="28167" href="Data.Nat.Properties.html#28167" class="Bound">m</a> <a id="28169" href="Data.Nat.Properties.html#28169" class="Bound">n</a> <a id="28171" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="28179" class="Symbol">=</a> <a id="28181" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="28186" class="Symbol">(</a><a id="28187" href="Data.Nat.Properties.html#28167" class="Bound">m</a> <a id="28189" href="Data.Nat.Base.html#3480" class="Function Operator">^_</a><a id="28191" class="Symbol">)</a> <a id="28193" class="Symbol">(</a><a id="28194" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="28198" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="28200" href="Data.Nat.Properties.html#20239" class="Function">*-zeroʳ</a> <a id="28208" href="Data.Nat.Properties.html#28169" class="Bound">n</a><a id="28209" class="Symbol">)</a>
|
||
<a id="28211" href="Data.Nat.Properties.html#28109" class="Function">^-*-assoc</a> <a id="28221" href="Data.Nat.Properties.html#28221" class="Bound">m</a> <a id="28223" href="Data.Nat.Properties.html#28223" class="Bound">n</a> <a id="28225" class="Symbol">(</a><a id="28226" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="28230" href="Data.Nat.Properties.html#28230" class="Bound">o</a><a id="28231" class="Symbol">)</a> <a id="28233" class="Symbol">=</a> <a id="28235" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="28252" class="Symbol">(</a><a id="28253" href="Data.Nat.Properties.html#28221" class="Bound">m</a> <a id="28255" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="28257" href="Data.Nat.Properties.html#28223" class="Bound">n</a><a id="28258" class="Symbol">)</a> <a id="28260" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="28262" class="Symbol">((</a><a id="28264" href="Data.Nat.Properties.html#28221" class="Bound">m</a> <a id="28266" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="28268" href="Data.Nat.Properties.html#28223" class="Bound">n</a><a id="28269" class="Symbol">)</a> <a id="28271" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="28273" href="Data.Nat.Properties.html#28230" class="Bound">o</a><a id="28274" class="Symbol">)</a> <a id="28276" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="28279" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="28284" class="Symbol">((</a><a id="28286" href="Data.Nat.Properties.html#28221" class="Bound">m</a> <a id="28288" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="28290" href="Data.Nat.Properties.html#28223" class="Bound">n</a><a id="28291" class="Symbol">)</a> <a id="28293" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*_</a><a id="28295" class="Symbol">)</a> <a id="28297" class="Symbol">(</a><a id="28298" href="Data.Nat.Properties.html#28109" class="Function">^-*-assoc</a> <a id="28308" href="Data.Nat.Properties.html#28221" class="Bound">m</a> <a id="28310" href="Data.Nat.Properties.html#28223" class="Bound">n</a> <a id="28312" href="Data.Nat.Properties.html#28230" class="Bound">o</a><a id="28313" class="Symbol">)</a> <a id="28315" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="28319" class="Symbol">(</a><a id="28320" href="Data.Nat.Properties.html#28221" class="Bound">m</a> <a id="28322" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="28324" href="Data.Nat.Properties.html#28223" class="Bound">n</a><a id="28325" class="Symbol">)</a> <a id="28327" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="28329" class="Symbol">(</a><a id="28330" href="Data.Nat.Properties.html#28221" class="Bound">m</a> <a id="28332" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="28334" class="Symbol">(</a><a id="28335" href="Data.Nat.Properties.html#28223" class="Bound">n</a> <a id="28337" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="28339" href="Data.Nat.Properties.html#28230" class="Bound">o</a><a id="28340" class="Symbol">))</a> <a id="28343" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="28346" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="28350" class="Symbol">(</a><a id="28351" href="Data.Nat.Properties.html#27485" class="Function">^-distribˡ-+-*</a> <a id="28366" href="Data.Nat.Properties.html#28221" class="Bound">m</a> <a id="28368" href="Data.Nat.Properties.html#28223" class="Bound">n</a> <a id="28370" class="Symbol">(</a><a id="28371" href="Data.Nat.Properties.html#28223" class="Bound">n</a> <a id="28373" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="28375" href="Data.Nat.Properties.html#28230" class="Bound">o</a><a id="28376" class="Symbol">))</a> <a id="28379" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="28383" href="Data.Nat.Properties.html#28221" class="Bound">m</a> <a id="28385" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="28387" class="Symbol">(</a><a id="28388" href="Data.Nat.Properties.html#28223" class="Bound">n</a> <a id="28390" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="28392" href="Data.Nat.Properties.html#28223" class="Bound">n</a> <a id="28394" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="28396" href="Data.Nat.Properties.html#28230" class="Bound">o</a><a id="28397" class="Symbol">)</a> <a id="28407" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="28410" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="28415" class="Symbol">(</a><a id="28416" href="Data.Nat.Properties.html#28221" class="Bound">m</a> <a id="28418" href="Data.Nat.Base.html#3480" class="Function Operator">^_</a><a id="28420" class="Symbol">)</a> <a id="28422" class="Symbol">(</a><a id="28423" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="28427" class="Symbol">(</a><a id="28428" href="Data.Nat.Properties.html#19391" class="Function">*-suc</a> <a id="28434" href="Data.Nat.Properties.html#28223" class="Bound">n</a> <a id="28436" href="Data.Nat.Properties.html#28230" class="Bound">o</a><a id="28437" class="Symbol">))</a> <a id="28440" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="28444" href="Data.Nat.Properties.html#28221" class="Bound">m</a> <a id="28446" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="28448" class="Symbol">(</a><a id="28449" href="Data.Nat.Properties.html#28223" class="Bound">n</a> <a id="28451" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="28453" class="Symbol">(</a><a id="28454" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="28458" href="Data.Nat.Properties.html#28230" class="Bound">o</a><a id="28459" class="Symbol">))</a> <a id="28462" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
|
||
<a id="m^n≡0⇒m≡0"></a><a id="28465" href="Data.Nat.Properties.html#28465" class="Function">m^n≡0⇒m≡0</a> <a id="28475" class="Symbol">:</a> <a id="28477" class="Symbol">∀</a> <a id="28479" href="Data.Nat.Properties.html#28479" class="Bound">m</a> <a id="28481" href="Data.Nat.Properties.html#28481" class="Bound">n</a> <a id="28483" class="Symbol">→</a> <a id="28485" href="Data.Nat.Properties.html#28479" class="Bound">m</a> <a id="28487" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="28489" href="Data.Nat.Properties.html#28481" class="Bound">n</a> <a id="28491" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="28493" class="Number">0</a> <a id="28495" class="Symbol">→</a> <a id="28497" href="Data.Nat.Properties.html#28479" class="Bound">m</a> <a id="28499" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="28501" class="Number">0</a>
|
||
<a id="28503" href="Data.Nat.Properties.html#28465" class="Function">m^n≡0⇒m≡0</a> <a id="28513" href="Data.Nat.Properties.html#28513" class="Bound">m</a> <a id="28515" class="Symbol">(</a><a id="28516" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="28520" href="Data.Nat.Properties.html#28520" class="Bound">n</a><a id="28521" class="Symbol">)</a> <a id="28523" href="Data.Nat.Properties.html#28523" class="Bound">eq</a> <a id="28526" class="Symbol">=</a> <a id="28528" href="Data.Sum.Base.html#1098" class="Function Operator">[</a> <a id="28530" href="Function.Base.html#624" class="Function">id</a> <a id="28533" href="Data.Sum.Base.html#1098" class="Function Operator">,</a> <a id="28535" href="Data.Nat.Properties.html#28465" class="Function">m^n≡0⇒m≡0</a> <a id="28545" href="Data.Nat.Properties.html#28513" class="Bound">m</a> <a id="28547" href="Data.Nat.Properties.html#28520" class="Bound">n</a> <a id="28549" href="Data.Sum.Base.html#1098" class="Function Operator">]′</a> <a id="28552" class="Symbol">(</a><a id="28553" href="Data.Nat.Properties.html#23950" class="Function">m*n≡0⇒m≡0∨n≡0</a> <a id="28567" href="Data.Nat.Properties.html#28513" class="Bound">m</a> <a id="28569" href="Data.Nat.Properties.html#28523" class="Bound">eq</a><a id="28571" class="Symbol">)</a>
|
||
|
||
<a id="m^n≡1⇒n≡0∨m≡1"></a><a id="28574" href="Data.Nat.Properties.html#28574" class="Function">m^n≡1⇒n≡0∨m≡1</a> <a id="28588" class="Symbol">:</a> <a id="28590" class="Symbol">∀</a> <a id="28592" href="Data.Nat.Properties.html#28592" class="Bound">m</a> <a id="28594" href="Data.Nat.Properties.html#28594" class="Bound">n</a> <a id="28596" class="Symbol">→</a> <a id="28598" href="Data.Nat.Properties.html#28592" class="Bound">m</a> <a id="28600" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="28602" href="Data.Nat.Properties.html#28594" class="Bound">n</a> <a id="28604" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="28606" class="Number">1</a> <a id="28608" class="Symbol">→</a> <a id="28610" href="Data.Nat.Properties.html#28594" class="Bound">n</a> <a id="28612" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="28614" class="Number">0</a> <a id="28616" href="Data.Sum.Base.html#743" class="Datatype Operator">⊎</a> <a id="28618" href="Data.Nat.Properties.html#28592" class="Bound">m</a> <a id="28620" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="28622" class="Number">1</a>
|
||
<a id="28624" href="Data.Nat.Properties.html#28574" class="Function">m^n≡1⇒n≡0∨m≡1</a> <a id="28638" href="Data.Nat.Properties.html#28638" class="Bound">m</a> <a id="28640" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="28648" class="Symbol">_</a> <a id="28651" class="Symbol">=</a> <a id="28653" href="Data.Sum.Base.html#793" class="InductiveConstructor">inj₁</a> <a id="28658" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="28663" href="Data.Nat.Properties.html#28574" class="Function">m^n≡1⇒n≡0∨m≡1</a> <a id="28677" href="Data.Nat.Properties.html#28677" class="Bound">m</a> <a id="28679" class="Symbol">(</a><a id="28680" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="28684" href="Data.Nat.Properties.html#28684" class="Bound">n</a><a id="28685" class="Symbol">)</a> <a id="28687" href="Data.Nat.Properties.html#28687" class="Bound">eq</a> <a id="28690" class="Symbol">=</a> <a id="28692" href="Data.Sum.Base.html#818" class="InductiveConstructor">inj₂</a> <a id="28697" class="Symbol">(</a><a id="28698" href="Data.Nat.Properties.html#24093" class="Function">m*n≡1⇒m≡1</a> <a id="28708" href="Data.Nat.Properties.html#28677" class="Bound">m</a> <a id="28710" class="Symbol">(</a><a id="28711" href="Data.Nat.Properties.html#28677" class="Bound">m</a> <a id="28713" href="Data.Nat.Base.html#3480" class="Function Operator">^</a> <a id="28715" href="Data.Nat.Properties.html#28684" class="Bound">n</a><a id="28716" class="Symbol">)</a> <a id="28718" href="Data.Nat.Properties.html#28687" class="Bound">eq</a><a id="28720" class="Symbol">)</a>
|
||
|
||
<a id="28723" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="28796" class="Comment">-- Properties of _⊓_ and _⊔_</a>
|
||
<a id="28825" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="28898" class="Comment">-- Basic specification in terms of _≤_</a>
|
||
|
||
<a id="m≤n⇒m⊔n≡n"></a><a id="28938" href="Data.Nat.Properties.html#28938" class="Function">m≤n⇒m⊔n≡n</a> <a id="28948" class="Symbol">:</a> <a id="28950" class="Symbol">∀</a> <a id="28952" class="Symbol">{</a><a id="28953" href="Data.Nat.Properties.html#28953" class="Bound">m</a> <a id="28955" href="Data.Nat.Properties.html#28955" class="Bound">n</a><a id="28956" class="Symbol">}</a> <a id="28958" class="Symbol">→</a> <a id="28960" href="Data.Nat.Properties.html#28953" class="Bound">m</a> <a id="28962" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="28964" href="Data.Nat.Properties.html#28955" class="Bound">n</a> <a id="28966" class="Symbol">→</a> <a id="28968" href="Data.Nat.Properties.html#28953" class="Bound">m</a> <a id="28970" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="28972" href="Data.Nat.Properties.html#28955" class="Bound">n</a> <a id="28974" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="28976" href="Data.Nat.Properties.html#28955" class="Bound">n</a>
|
||
<a id="28978" href="Data.Nat.Properties.html#28938" class="Function">m≤n⇒m⊔n≡n</a> <a id="28988" class="Symbol">{</a><a id="28989" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="28993" class="Symbol">}</a> <a id="28996" class="Symbol">_</a> <a id="29006" class="Symbol">=</a> <a id="29008" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="29013" href="Data.Nat.Properties.html#28938" class="Function">m≤n⇒m⊔n≡n</a> <a id="29023" class="Symbol">{</a><a id="29024" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="29028" href="Data.Nat.Properties.html#29028" class="Bound">m</a><a id="29029" class="Symbol">}</a> <a id="29031" class="Symbol">(</a><a id="29032" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="29036" href="Data.Nat.Properties.html#29036" class="Bound">m≤n</a><a id="29039" class="Symbol">)</a> <a id="29041" class="Symbol">=</a> <a id="29043" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="29048" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="29052" class="Symbol">(</a><a id="29053" href="Data.Nat.Properties.html#28938" class="Function">m≤n⇒m⊔n≡n</a> <a id="29063" href="Data.Nat.Properties.html#29036" class="Bound">m≤n</a><a id="29066" class="Symbol">)</a>
|
||
|
||
<a id="m≥n⇒m⊔n≡m"></a><a id="29069" href="Data.Nat.Properties.html#29069" class="Function">m≥n⇒m⊔n≡m</a> <a id="29079" class="Symbol">:</a> <a id="29081" class="Symbol">∀</a> <a id="29083" class="Symbol">{</a><a id="29084" href="Data.Nat.Properties.html#29084" class="Bound">m</a> <a id="29086" href="Data.Nat.Properties.html#29086" class="Bound">n</a><a id="29087" class="Symbol">}</a> <a id="29089" class="Symbol">→</a> <a id="29091" href="Data.Nat.Properties.html#29084" class="Bound">m</a> <a id="29093" href="Data.Nat.Base.html#1688" class="Function Operator">≥</a> <a id="29095" href="Data.Nat.Properties.html#29086" class="Bound">n</a> <a id="29097" class="Symbol">→</a> <a id="29099" href="Data.Nat.Properties.html#29084" class="Bound">m</a> <a id="29101" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="29103" href="Data.Nat.Properties.html#29086" class="Bound">n</a> <a id="29105" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="29107" href="Data.Nat.Properties.html#29084" class="Bound">m</a>
|
||
<a id="29109" href="Data.Nat.Properties.html#29069" class="Function">m≥n⇒m⊔n≡m</a> <a id="29119" class="Symbol">{</a><a id="29120" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="29124" class="Symbol">}</a> <a id="29127" class="Symbol">{</a><a id="29128" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="29132" class="Symbol">}</a> <a id="29135" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="29145" class="Symbol">=</a> <a id="29147" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="29152" href="Data.Nat.Properties.html#29069" class="Function">m≥n⇒m⊔n≡m</a> <a id="29162" class="Symbol">{</a><a id="29163" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="29167" href="Data.Nat.Properties.html#29167" class="Bound">m</a><a id="29168" class="Symbol">}</a> <a id="29170" class="Symbol">{</a><a id="29171" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="29175" class="Symbol">}</a> <a id="29178" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="29188" class="Symbol">=</a> <a id="29190" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="29195" href="Data.Nat.Properties.html#29069" class="Function">m≥n⇒m⊔n≡m</a> <a id="29205" class="Symbol">{</a><a id="29206" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="29210" href="Data.Nat.Properties.html#29210" class="Bound">m</a><a id="29211" class="Symbol">}</a> <a id="29213" class="Symbol">{</a><a id="29214" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="29218" href="Data.Nat.Properties.html#29218" class="Bound">n</a><a id="29219" class="Symbol">}</a> <a id="29221" class="Symbol">(</a><a id="29222" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="29226" href="Data.Nat.Properties.html#29226" class="Bound">m≥n</a><a id="29229" class="Symbol">)</a> <a id="29231" class="Symbol">=</a> <a id="29233" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="29238" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="29242" class="Symbol">(</a><a id="29243" href="Data.Nat.Properties.html#29069" class="Function">m≥n⇒m⊔n≡m</a> <a id="29253" href="Data.Nat.Properties.html#29226" class="Bound">m≥n</a><a id="29256" class="Symbol">)</a>
|
||
|
||
<a id="m≤n⇒m⊓n≡m"></a><a id="29259" href="Data.Nat.Properties.html#29259" class="Function">m≤n⇒m⊓n≡m</a> <a id="29269" class="Symbol">:</a> <a id="29271" class="Symbol">∀</a> <a id="29273" class="Symbol">{</a><a id="29274" href="Data.Nat.Properties.html#29274" class="Bound">m</a> <a id="29276" href="Data.Nat.Properties.html#29276" class="Bound">n</a><a id="29277" class="Symbol">}</a> <a id="29279" class="Symbol">→</a> <a id="29281" href="Data.Nat.Properties.html#29274" class="Bound">m</a> <a id="29283" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="29285" href="Data.Nat.Properties.html#29276" class="Bound">n</a> <a id="29287" class="Symbol">→</a> <a id="29289" href="Data.Nat.Properties.html#29274" class="Bound">m</a> <a id="29291" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="29293" href="Data.Nat.Properties.html#29276" class="Bound">n</a> <a id="29295" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="29297" href="Data.Nat.Properties.html#29274" class="Bound">m</a>
|
||
<a id="29299" href="Data.Nat.Properties.html#29259" class="Function">m≤n⇒m⊓n≡m</a> <a id="29309" class="Symbol">{</a><a id="29310" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="29314" class="Symbol">}</a> <a id="29317" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="29327" class="Symbol">=</a> <a id="29329" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="29334" href="Data.Nat.Properties.html#29259" class="Function">m≤n⇒m⊓n≡m</a> <a id="29344" class="Symbol">{</a><a id="29345" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="29349" href="Data.Nat.Properties.html#29349" class="Bound">m</a><a id="29350" class="Symbol">}</a> <a id="29352" class="Symbol">(</a><a id="29353" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="29357" href="Data.Nat.Properties.html#29357" class="Bound">m≤n</a><a id="29360" class="Symbol">)</a> <a id="29362" class="Symbol">=</a> <a id="29364" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="29369" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="29373" class="Symbol">(</a><a id="29374" href="Data.Nat.Properties.html#29259" class="Function">m≤n⇒m⊓n≡m</a> <a id="29384" href="Data.Nat.Properties.html#29357" class="Bound">m≤n</a><a id="29387" class="Symbol">)</a>
|
||
|
||
<a id="m≥n⇒m⊓n≡n"></a><a id="29390" href="Data.Nat.Properties.html#29390" class="Function">m≥n⇒m⊓n≡n</a> <a id="29400" class="Symbol">:</a> <a id="29402" class="Symbol">∀</a> <a id="29404" class="Symbol">{</a><a id="29405" href="Data.Nat.Properties.html#29405" class="Bound">m</a> <a id="29407" href="Data.Nat.Properties.html#29407" class="Bound">n</a><a id="29408" class="Symbol">}</a> <a id="29410" class="Symbol">→</a> <a id="29412" href="Data.Nat.Properties.html#29405" class="Bound">m</a> <a id="29414" href="Data.Nat.Base.html#1688" class="Function Operator">≥</a> <a id="29416" href="Data.Nat.Properties.html#29407" class="Bound">n</a> <a id="29418" class="Symbol">→</a> <a id="29420" href="Data.Nat.Properties.html#29405" class="Bound">m</a> <a id="29422" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="29424" href="Data.Nat.Properties.html#29407" class="Bound">n</a> <a id="29426" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="29428" href="Data.Nat.Properties.html#29407" class="Bound">n</a>
|
||
<a id="29430" href="Data.Nat.Properties.html#29390" class="Function">m≥n⇒m⊓n≡n</a> <a id="29440" class="Symbol">{</a><a id="29441" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="29445" class="Symbol">}</a> <a id="29448" class="Symbol">{</a><a id="29449" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="29453" class="Symbol">}</a> <a id="29456" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="29466" class="Symbol">=</a> <a id="29468" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="29473" href="Data.Nat.Properties.html#29390" class="Function">m≥n⇒m⊓n≡n</a> <a id="29483" class="Symbol">{</a><a id="29484" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="29488" href="Data.Nat.Properties.html#29488" class="Bound">m</a><a id="29489" class="Symbol">}</a> <a id="29491" class="Symbol">{</a><a id="29492" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="29496" class="Symbol">}</a> <a id="29499" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="29509" class="Symbol">=</a> <a id="29511" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="29516" href="Data.Nat.Properties.html#29390" class="Function">m≥n⇒m⊓n≡n</a> <a id="29526" class="Symbol">{</a><a id="29527" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="29531" href="Data.Nat.Properties.html#29531" class="Bound">m</a><a id="29532" class="Symbol">}</a> <a id="29534" class="Symbol">{</a><a id="29535" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="29539" href="Data.Nat.Properties.html#29539" class="Bound">n</a><a id="29540" class="Symbol">}</a> <a id="29542" class="Symbol">(</a><a id="29543" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="29547" href="Data.Nat.Properties.html#29547" class="Bound">m≤n</a><a id="29550" class="Symbol">)</a> <a id="29552" class="Symbol">=</a> <a id="29554" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="29559" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="29563" class="Symbol">(</a><a id="29564" href="Data.Nat.Properties.html#29390" class="Function">m≥n⇒m⊓n≡n</a> <a id="29574" href="Data.Nat.Properties.html#29547" class="Bound">m≤n</a><a id="29577" class="Symbol">)</a>
|
||
|
||
<a id="⊓-operator"></a><a id="29580" href="Data.Nat.Properties.html#29580" class="Function">⊓-operator</a> <a id="29591" class="Symbol">:</a> <a id="29593" href="Algebra.Construct.NaturalChoice.Base.html#955" class="Record">MinOperator</a> <a id="29605" href="Data.Nat.Properties.html#6598" class="Function">≤-totalPreorder</a>
|
||
<a id="29621" href="Data.Nat.Properties.html#29580" class="Function">⊓-operator</a> <a id="29632" class="Symbol">=</a> <a id="29634" class="Keyword">record</a>
|
||
<a id="29643" class="Symbol">{</a> <a id="29645" href="Algebra.Construct.NaturalChoice.Base.html#1060" class="Field">x≤y⇒x⊓y≈x</a> <a id="29655" class="Symbol">=</a> <a id="29657" href="Data.Nat.Properties.html#29259" class="Function">m≤n⇒m⊓n≡m</a>
|
||
<a id="29669" class="Symbol">;</a> <a id="29671" href="Algebra.Construct.NaturalChoice.Base.html#1106" class="Field">x≥y⇒x⊓y≈y</a> <a id="29681" class="Symbol">=</a> <a id="29683" href="Data.Nat.Properties.html#29390" class="Function">m≥n⇒m⊓n≡n</a>
|
||
<a id="29695" class="Symbol">}</a>
|
||
|
||
<a id="⊔-operator"></a><a id="29698" href="Data.Nat.Properties.html#29698" class="Function">⊔-operator</a> <a id="29709" class="Symbol">:</a> <a id="29711" href="Algebra.Construct.NaturalChoice.Base.html#1156" class="Record">MaxOperator</a> <a id="29723" href="Data.Nat.Properties.html#6598" class="Function">≤-totalPreorder</a>
|
||
<a id="29739" href="Data.Nat.Properties.html#29698" class="Function">⊔-operator</a> <a id="29750" class="Symbol">=</a> <a id="29752" class="Keyword">record</a>
|
||
<a id="29761" class="Symbol">{</a> <a id="29763" href="Algebra.Construct.NaturalChoice.Base.html#1261" class="Field">x≤y⇒x⊔y≈y</a> <a id="29773" class="Symbol">=</a> <a id="29775" href="Data.Nat.Properties.html#28938" class="Function">m≤n⇒m⊔n≡n</a>
|
||
<a id="29787" class="Symbol">;</a> <a id="29789" href="Algebra.Construct.NaturalChoice.Base.html#1307" class="Field">x≥y⇒x⊔y≈x</a> <a id="29799" class="Symbol">=</a> <a id="29801" href="Data.Nat.Properties.html#29069" class="Function">m≥n⇒m⊔n≡m</a>
|
||
<a id="29813" class="Symbol">}</a>
|
||
|
||
<a id="29816" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="29889" class="Comment">-- Derived properties of _⊓_ and _⊔_</a>
|
||
|
||
<a id="29927" class="Keyword">private</a>
|
||
<a id="29937" class="Keyword">module</a> <a id="⊓-⊔-properties"></a><a id="29944" href="Data.Nat.Properties.html#29944" class="Module">⊓-⊔-properties</a> <a id="29959" class="Symbol">=</a> <a id="29961" href="Algebra.Construct.NaturalChoice.MinMaxOp.html" class="Module">MinMaxOp</a> <a id="29970" href="Data.Nat.Properties.html#29580" class="Function">⊓-operator</a> <a id="29981" href="Data.Nat.Properties.html#29698" class="Function">⊔-operator</a>
|
||
|
||
<a id="29993" class="Keyword">open</a> <a id="29998" href="Data.Nat.Properties.html#29944" class="Module">⊓-⊔-properties</a> <a id="30013" class="Keyword">public</a>
|
||
<a id="30022" class="Keyword">using</a>
|
||
<a id="30030" class="Symbol">(</a> <a id="30032" href="Algebra.Construct.NaturalChoice.MinOp.html#2994" class="Function">⊓-idem</a> <a id="30058" class="Comment">-- : Idempotent _⊓_</a>
|
||
<a id="30080" class="Symbol">;</a> <a id="30082" href="Algebra.Construct.NaturalChoice.MinOp.html#3051" class="Function">⊓-sel</a> <a id="30108" class="Comment">-- : Selective _⊓_</a>
|
||
<a id="30129" class="Symbol">;</a> <a id="30131" href="Algebra.Construct.NaturalChoice.MinOp.html#2355" class="Function">⊓-assoc</a> <a id="30157" class="Comment">-- : Associative _⊓_</a>
|
||
<a id="30180" class="Symbol">;</a> <a id="30182" href="Algebra.Construct.NaturalChoice.MinOp.html#1553" class="Function">⊓-comm</a> <a id="30208" class="Comment">-- : Commutative _⊓_</a>
|
||
|
||
<a id="30232" class="Symbol">;</a> <a id="30234" href="Algebra.Construct.NaturalChoice.MaxOp.html#1024" class="Function">⊔-idem</a> <a id="30260" class="Comment">-- : Idempotent _⊔_</a>
|
||
<a id="30282" class="Symbol">;</a> <a id="30284" href="Algebra.Construct.NaturalChoice.MaxOp.html#1052" class="Function">⊔-sel</a> <a id="30310" class="Comment">-- : Selective _⊔_</a>
|
||
<a id="30331" class="Symbol">;</a> <a id="30333" href="Algebra.Construct.NaturalChoice.MaxOp.html#1079" class="Function">⊔-assoc</a> <a id="30359" class="Comment">-- : Associative _⊔_</a>
|
||
<a id="30382" class="Symbol">;</a> <a id="30384" href="Algebra.Construct.NaturalChoice.MaxOp.html#1108" class="Function">⊔-comm</a> <a id="30410" class="Comment">-- : Commutative _⊔_</a>
|
||
|
||
<a id="30434" class="Symbol">;</a> <a id="30436" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#1490" class="Function">⊓-distribˡ-⊔</a> <a id="30462" class="Comment">-- : _⊓_ DistributesOverˡ _⊔_</a>
|
||
<a id="30494" class="Symbol">;</a> <a id="30496" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#1885" class="Function">⊓-distribʳ-⊔</a> <a id="30522" class="Comment">-- : _⊓_ DistributesOverʳ _⊔_</a>
|
||
<a id="30554" class="Symbol">;</a> <a id="30556" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#1987" class="Function">⊓-distrib-⊔</a> <a id="30582" class="Comment">-- : _⊓_ DistributesOver _⊔_</a>
|
||
<a id="30614" class="Symbol">;</a> <a id="30616" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#2068" class="Function">⊔-distribˡ-⊓</a> <a id="30642" class="Comment">-- : _⊔_ DistributesOverˡ _⊓_</a>
|
||
<a id="30674" class="Symbol">;</a> <a id="30676" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#2463" class="Function">⊔-distribʳ-⊓</a> <a id="30702" class="Comment">-- : _⊔_ DistributesOverʳ _⊓_</a>
|
||
<a id="30734" class="Symbol">;</a> <a id="30736" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#2565" class="Function">⊔-distrib-⊓</a> <a id="30762" class="Comment">-- : _⊔_ DistributesOver _⊓_</a>
|
||
<a id="30794" class="Symbol">;</a> <a id="30796" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#2646" class="Function">⊓-absorbs-⊔</a> <a id="30822" class="Comment">-- : _⊓_ Absorbs _⊔_</a>
|
||
<a id="30845" class="Symbol">;</a> <a id="30847" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#2961" class="Function">⊔-absorbs-⊓</a> <a id="30873" class="Comment">-- : _⊔_ Absorbs _⊓_</a>
|
||
<a id="30896" class="Symbol">;</a> <a id="30898" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#3276" class="Function">⊔-⊓-absorptive</a> <a id="30924" class="Comment">-- : Absorptive _⊔_ _⊓_</a>
|
||
<a id="30950" class="Symbol">;</a> <a id="30952" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#3356" class="Function">⊓-⊔-absorptive</a> <a id="30978" class="Comment">-- : Absorptive _⊓_ _⊔_</a>
|
||
|
||
<a id="31005" class="Symbol">;</a> <a id="31007" href="Algebra.Construct.NaturalChoice.MinOp.html#3748" class="Function">⊓-isMagma</a> <a id="31033" class="Comment">-- : IsMagma _⊓_</a>
|
||
<a id="31052" class="Symbol">;</a> <a id="31054" href="Algebra.Construct.NaturalChoice.MinOp.html#3857" class="Function">⊓-isSemigroup</a> <a id="31080" class="Comment">-- : IsSemigroup _⊓_</a>
|
||
<a id="31103" class="Symbol">;</a> <a id="31105" href="Algebra.Construct.NaturalChoice.MinOp.html#4065" class="Function">⊓-isCommutativeSemigroup</a> <a id="31131" class="Comment">-- : IsCommutativeSemigroup _⊓_</a>
|
||
<a id="31165" class="Symbol">;</a> <a id="31167" href="Algebra.Construct.NaturalChoice.MinOp.html#3963" class="Function">⊓-isBand</a> <a id="31193" class="Comment">-- : IsBand _⊓_</a>
|
||
<a id="31211" class="Symbol">;</a> <a id="31213" href="Algebra.Construct.NaturalChoice.MinOp.html#4215" class="Function">⊓-isSemilattice</a> <a id="31239" class="Comment">-- : IsSemilattice _⊓_</a>
|
||
<a id="31264" class="Symbol">;</a> <a id="31266" href="Algebra.Construct.NaturalChoice.MinOp.html#4323" class="Function">⊓-isSelectiveMagma</a> <a id="31292" class="Comment">-- : IsSelectiveMagma _⊓_</a>
|
||
|
||
<a id="31321" class="Symbol">;</a> <a id="31323" href="Algebra.Construct.NaturalChoice.MaxOp.html#1335" class="Function">⊔-isMagma</a> <a id="31349" class="Comment">-- : IsMagma _⊔_</a>
|
||
<a id="31368" class="Symbol">;</a> <a id="31370" href="Algebra.Construct.NaturalChoice.MaxOp.html#1379" class="Function">⊔-isSemigroup</a> <a id="31396" class="Comment">-- : IsSemigroup _⊔_</a>
|
||
<a id="31419" class="Symbol">;</a> <a id="31421" href="Algebra.Construct.NaturalChoice.MaxOp.html#1427" class="Function">⊔-isCommutativeSemigroup</a> <a id="31447" class="Comment">-- : IsCommutativeSemigroup _⊔_</a>
|
||
<a id="31481" class="Symbol">;</a> <a id="31483" href="Algebra.Construct.NaturalChoice.MaxOp.html#1486" class="Function">⊔-isBand</a> <a id="31509" class="Comment">-- : IsBand _⊔_</a>
|
||
<a id="31527" class="Symbol">;</a> <a id="31529" href="Algebra.Construct.NaturalChoice.MaxOp.html#1529" class="Function">⊔-isSemilattice</a> <a id="31555" class="Comment">-- : IsSemilattice _⊔_</a>
|
||
<a id="31580" class="Symbol">;</a> <a id="31582" href="Algebra.Construct.NaturalChoice.MaxOp.html#1624" class="Function">⊔-isSelectiveMagma</a> <a id="31608" class="Comment">-- : IsSelectiveMagma _⊔_</a>
|
||
|
||
<a id="31637" class="Symbol">;</a> <a id="31639" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#3436" class="Function">⊔-⊓-isLattice</a> <a id="31665" class="Comment">-- : IsLattice _⊔_ _⊓_</a>
|
||
<a id="31690" class="Symbol">;</a> <a id="31692" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#3731" class="Function">⊓-⊔-isLattice</a> <a id="31718" class="Comment">-- : IsLattice _⊓_ _⊔_</a>
|
||
<a id="31743" class="Symbol">;</a> <a id="31745" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#4189" class="Function">⊔-⊓-isDistributiveLattice</a> <a id="31771" class="Comment">-- : IsDistributiveLattice _⊔_ _⊓_</a>
|
||
<a id="31808" class="Symbol">;</a> <a id="31810" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#4026" class="Function">⊓-⊔-isDistributiveLattice</a> <a id="31836" class="Comment">-- : IsDistributiveLattice _⊓_ _⊔_</a>
|
||
|
||
<a id="31874" class="Symbol">;</a> <a id="31876" href="Algebra.Construct.NaturalChoice.MinOp.html#4835" class="Function">⊓-magma</a> <a id="31902" class="Comment">-- : Magma _ _</a>
|
||
<a id="31919" class="Symbol">;</a> <a id="31921" href="Algebra.Construct.NaturalChoice.MinOp.html#4901" class="Function">⊓-semigroup</a> <a id="31947" class="Comment">-- : Semigroup _ _</a>
|
||
<a id="31968" class="Symbol">;</a> <a id="31970" href="Algebra.Construct.NaturalChoice.MinOp.html#4987" class="Function">⊓-band</a> <a id="31996" class="Comment">-- : Band _ _</a>
|
||
<a id="32012" class="Symbol">;</a> <a id="32014" href="Algebra.Construct.NaturalChoice.MinOp.html#5048" class="Function">⊓-commutativeSemigroup</a> <a id="32040" class="Comment">-- : CommutativeSemigroup _ _</a>
|
||
<a id="32072" class="Symbol">;</a> <a id="32074" href="Algebra.Construct.NaturalChoice.MinOp.html#5189" class="Function">⊓-semilattice</a> <a id="32100" class="Comment">-- : Semilattice _ _</a>
|
||
<a id="32123" class="Symbol">;</a> <a id="32125" href="Algebra.Construct.NaturalChoice.MinOp.html#5285" class="Function">⊓-selectiveMagma</a> <a id="32151" class="Comment">-- : SelectiveMagma _ _</a>
|
||
|
||
<a id="32178" class="Symbol">;</a> <a id="32180" href="Algebra.Construct.NaturalChoice.MaxOp.html#1678" class="Function">⊔-magma</a> <a id="32206" class="Comment">-- : Magma _ _</a>
|
||
<a id="32223" class="Symbol">;</a> <a id="32225" href="Algebra.Construct.NaturalChoice.MaxOp.html#1720" class="Function">⊔-semigroup</a> <a id="32251" class="Comment">-- : Semigroup _ _</a>
|
||
<a id="32272" class="Symbol">;</a> <a id="32274" href="Algebra.Construct.NaturalChoice.MaxOp.html#1823" class="Function">⊔-band</a> <a id="32300" class="Comment">-- : Band _ _</a>
|
||
<a id="32316" class="Symbol">;</a> <a id="32318" href="Algebra.Construct.NaturalChoice.MaxOp.html#1766" class="Function">⊔-commutativeSemigroup</a> <a id="32344" class="Comment">-- : CommutativeSemigroup _ _</a>
|
||
<a id="32376" class="Symbol">;</a> <a id="32378" href="Algebra.Construct.NaturalChoice.MaxOp.html#1864" class="Function">⊔-semilattice</a> <a id="32404" class="Comment">-- : Semilattice _ _</a>
|
||
<a id="32427" class="Symbol">;</a> <a id="32429" href="Algebra.Construct.NaturalChoice.MaxOp.html#1955" class="Function">⊔-selectiveMagma</a> <a id="32455" class="Comment">-- : SelectiveMagma _ _</a>
|
||
|
||
<a id="32482" class="Symbol">;</a> <a id="32484" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#4352" class="Function">⊔-⊓-lattice</a> <a id="32510" class="Comment">-- : Lattice _ _</a>
|
||
<a id="32529" class="Symbol">;</a> <a id="32531" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#4434" class="Function">⊓-⊔-lattice</a> <a id="32557" class="Comment">-- : Lattice _ _</a>
|
||
<a id="32576" class="Symbol">;</a> <a id="32578" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#4516" class="Function">⊔-⊓-distributiveLattice</a> <a id="32604" class="Comment">-- : DistributiveLattice _ _</a>
|
||
<a id="32635" class="Symbol">;</a> <a id="32637" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#4658" class="Function">⊓-⊔-distributiveLattice</a> <a id="32663" class="Comment">-- : DistributiveLattice _ _</a>
|
||
|
||
<a id="32695" class="Symbol">;</a> <a id="32697" href="Algebra.Construct.NaturalChoice.MinOp.html#7088" class="Function">⊓-glb</a> <a id="32723" class="Comment">-- : ∀ {m n o} → m ≥ o → n ≥ o → m ⊓ n ≥ o</a>
|
||
<a id="32768" class="Symbol">;</a> <a id="32770" href="Algebra.Construct.NaturalChoice.MinOp.html#7195" class="Function">⊓-triangulate</a> <a id="32796" class="Comment">-- : ∀ m n o → m ⊓ n ⊓ o ≡ (m ⊓ n) ⊓ (n ⊓ o)</a>
|
||
<a id="32843" class="Symbol">;</a> <a id="32845" href="Algebra.Construct.NaturalChoice.MinOp.html#6685" class="Function">⊓-mono-≤</a> <a id="32871" class="Comment">-- : _⊓_ Preserves₂ _≤_ ⟶ _≤_ ⟶ _≤_</a>
|
||
<a id="32909" class="Symbol">;</a> <a id="32911" href="Algebra.Construct.NaturalChoice.MinOp.html#6912" class="Function">⊓-monoˡ-≤</a> <a id="32937" class="Comment">-- : ∀ n → (_⊓ n) Preserves _≤_ ⟶ _≤_</a>
|
||
<a id="32977" class="Symbol">;</a> <a id="32979" href="Algebra.Construct.NaturalChoice.MinOp.html#7000" class="Function">⊓-monoʳ-≤</a> <a id="33005" class="Comment">-- : ∀ n → (n ⊓_) Preserves _≤_ ⟶ _≤_</a>
|
||
|
||
<a id="33046" class="Symbol">;</a> <a id="33048" href="Algebra.Construct.NaturalChoice.MaxOp.html#2217" class="Function">⊔-lub</a> <a id="33074" class="Comment">-- : ∀ {m n o} → m ≤ o → n ≤ o → m ⊔ n ≤ o</a>
|
||
<a id="33119" class="Symbol">;</a> <a id="33121" href="Algebra.Construct.NaturalChoice.MaxOp.html#2250" class="Function">⊔-triangulate</a> <a id="33147" class="Comment">-- : ∀ m n o → m ⊔ n ⊔ o ≡ (m ⊔ n) ⊔ (n ⊔ o)</a>
|
||
<a id="33194" class="Symbol">;</a> <a id="33196" href="Algebra.Construct.NaturalChoice.MaxOp.html#2291" class="Function">⊔-mono-≤</a> <a id="33222" class="Comment">-- : _⊔_ Preserves₂ _≤_ ⟶ _≤_ ⟶ _≤_</a>
|
||
<a id="33260" class="Symbol">;</a> <a id="33262" href="Algebra.Construct.NaturalChoice.MaxOp.html#2327" class="Function">⊔-monoˡ-≤</a> <a id="33288" class="Comment">-- : ∀ n → (_⊔ n) Preserves _≤_ ⟶ _≤_</a>
|
||
<a id="33328" class="Symbol">;</a> <a id="33330" href="Algebra.Construct.NaturalChoice.MaxOp.html#2364" class="Function">⊔-monoʳ-≤</a> <a id="33356" class="Comment">-- : ∀ n → (n ⊔_) Preserves _≤_ ⟶ _≤_</a>
|
||
<a id="33396" class="Symbol">)</a>
|
||
<a id="33400" class="Keyword">renaming</a>
|
||
<a id="33411" class="Symbol">(</a> <a id="33413" href="Algebra.Construct.NaturalChoice.MinOp.html#5764" class="Function">x⊓y≈y⇒y≤x</a> <a id="33423" class="Symbol">to</a> <a id="33426" class="Function">m⊓n≡n⇒n≤m</a> <a id="33439" class="Comment">-- : ∀ {m n} → m ⊓ n ≡ n → n ≤ m</a>
|
||
<a id="33474" class="Symbol">;</a> <a id="33476" href="Algebra.Construct.NaturalChoice.MinOp.html#5594" class="Function">x⊓y≈x⇒x≤y</a> <a id="33486" class="Symbol">to</a> <a id="33489" class="Function">m⊓n≡m⇒m≤n</a> <a id="33502" class="Comment">-- : ∀ {m n} → m ⊓ n ≡ m → m ≤ n</a>
|
||
<a id="33537" class="Symbol">;</a> <a id="33539" href="Algebra.Construct.NaturalChoice.MinOp.html#1125" class="Function">x⊓y≤x</a> <a id="33549" class="Symbol">to</a> <a id="33552" class="Function">m⊓n≤m</a> <a id="33565" class="Comment">-- : ∀ m n → m ⊓ n ≤ m</a>
|
||
<a id="33590" class="Symbol">;</a> <a id="33592" href="Algebra.Construct.NaturalChoice.MinOp.html#1290" class="Function">x⊓y≤y</a> <a id="33602" class="Symbol">to</a> <a id="33605" class="Function">m⊓n≤n</a> <a id="33618" class="Comment">-- : ∀ m n → m ⊓ n ≤ n</a>
|
||
<a id="33643" class="Symbol">;</a> <a id="33645" href="Algebra.Construct.NaturalChoice.MinOp.html#6341" class="Function">x≤y⇒x⊓z≤y</a> <a id="33655" class="Symbol">to</a> <a id="33658" class="Function">m≤n⇒m⊓o≤n</a> <a id="33671" class="Comment">-- : ∀ {m n} o → m ≤ n → m ⊓ o ≤ n</a>
|
||
<a id="33708" class="Symbol">;</a> <a id="33710" href="Algebra.Construct.NaturalChoice.MinOp.html#6424" class="Function">x≤y⇒z⊓x≤y</a> <a id="33720" class="Symbol">to</a> <a id="33723" class="Function">m≤n⇒o⊓m≤n</a> <a id="33736" class="Comment">-- : ∀ {m n} o → m ≤ n → o ⊓ m ≤ n</a>
|
||
<a id="33773" class="Symbol">;</a> <a id="33775" href="Algebra.Construct.NaturalChoice.MinOp.html#6507" class="Function">x≤y⊓z⇒x≤y</a> <a id="33785" class="Symbol">to</a> <a id="33788" class="Function">m≤n⊓o⇒m≤n</a> <a id="33801" class="Comment">-- : ∀ {m} n o → m ≤ n ⊓ o → m ≤ n</a>
|
||
<a id="33838" class="Symbol">;</a> <a id="33840" href="Algebra.Construct.NaturalChoice.MinOp.html#6596" class="Function">x≤y⊓z⇒x≤z</a> <a id="33850" class="Symbol">to</a> <a id="33853" class="Function">m≤n⊓o⇒m≤o</a> <a id="33866" class="Comment">-- : ∀ {m} n o → m ≤ n ⊓ o → m ≤ o</a>
|
||
|
||
<a id="33904" class="Symbol">;</a> <a id="33906" href="Algebra.Construct.NaturalChoice.MaxOp.html#1991" class="Function">x⊔y≈y⇒x≤y</a> <a id="33916" class="Symbol">to</a> <a id="33919" class="Function">m⊔n≡n⇒m≤n</a> <a id="33932" class="Comment">-- : ∀ {m n} → m ⊔ n ≡ n → m ≤ n</a>
|
||
<a id="33967" class="Symbol">;</a> <a id="33969" href="Algebra.Construct.NaturalChoice.MaxOp.html#2019" class="Function">x⊔y≈x⇒y≤x</a> <a id="33979" class="Symbol">to</a> <a id="33982" class="Function">m⊔n≡m⇒n≤m</a> <a id="33995" class="Comment">-- : ∀ {m n} → m ⊔ n ≡ m → n ≤ m</a>
|
||
<a id="34030" class="Symbol">;</a> <a id="34032" href="Algebra.Construct.NaturalChoice.MaxOp.html#2047" class="Function">x≤x⊔y</a> <a id="34042" class="Symbol">to</a> <a id="34045" class="Function">m≤m⊔n</a> <a id="34058" class="Comment">-- : ∀ m n → m ≤ m ⊔ n</a>
|
||
<a id="34083" class="Symbol">;</a> <a id="34085" href="Algebra.Construct.NaturalChoice.MaxOp.html#2071" class="Function">x≤y⊔x</a> <a id="34095" class="Symbol">to</a> <a id="34098" class="Function">m≤n⊔m</a> <a id="34111" class="Comment">-- : ∀ m n → m ≤ n ⊔ m</a>
|
||
<a id="34136" class="Symbol">;</a> <a id="34138" href="Algebra.Construct.NaturalChoice.MaxOp.html#2095" class="Function">x≤y⇒x≤y⊔z</a> <a id="34148" class="Symbol">to</a> <a id="34151" class="Function">m≤n⇒m≤n⊔o</a> <a id="34164" class="Comment">-- : ∀ {m n} o → m ≤ n → m ≤ n ⊔ o</a>
|
||
<a id="34201" class="Symbol">;</a> <a id="34203" href="Algebra.Construct.NaturalChoice.MaxOp.html#2123" class="Function">x≤y⇒x≤z⊔y</a> <a id="34213" class="Symbol">to</a> <a id="34216" class="Function">m≤n⇒m≤o⊔n</a> <a id="34229" class="Comment">-- : ∀ {m n} o → m ≤ n → m ≤ o ⊔ n</a>
|
||
<a id="34266" class="Symbol">;</a> <a id="34268" href="Algebra.Construct.NaturalChoice.MaxOp.html#2151" class="Function">x⊔y≤z⇒x≤z</a> <a id="34278" class="Symbol">to</a> <a id="34281" class="Function">m⊔n≤o⇒m≤o</a> <a id="34294" class="Comment">-- : ∀ m n {o} → m ⊔ n ≤ o → m ≤ o</a>
|
||
<a id="34331" class="Symbol">;</a> <a id="34333" href="Algebra.Construct.NaturalChoice.MaxOp.html#2179" class="Function">x⊔y≤z⇒y≤z</a> <a id="34343" class="Symbol">to</a> <a id="34346" class="Function">m⊔n≤o⇒n≤o</a> <a id="34359" class="Comment">-- : ∀ m n {o} → m ⊔ n ≤ o → n ≤ o</a>
|
||
|
||
<a id="34397" class="Symbol">;</a> <a id="34399" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#5826" class="Function">x⊓y≤x⊔y</a> <a id="34409" class="Symbol">to</a> <a id="34412" class="Function">m⊓n≤m⊔n</a> <a id="34425" class="Comment">-- : ∀ m n → m ⊓ n ≤ m ⊔ n</a>
|
||
<a id="34454" class="Symbol">)</a>
|
||
|
||
<a id="34457" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="34530" class="Comment">-- Automatically derived properties of _⊓_ and _⊔_</a>
|
||
|
||
<a id="⊔-identityˡ"></a><a id="34582" href="Data.Nat.Properties.html#34582" class="Function">⊔-identityˡ</a> <a id="34594" class="Symbol">:</a> <a id="34596" href="Algebra.Definitions.html#1277" class="Function">LeftIdentity</a> <a id="34609" class="Number">0</a> <a id="34611" href="Data.Nat.Base.html#3072" class="Function Operator">_⊔_</a>
|
||
<a id="34615" href="Data.Nat.Properties.html#34582" class="Function">⊔-identityˡ</a> <a id="34627" class="Symbol">_</a> <a id="34629" class="Symbol">=</a> <a id="34631" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
|
||
<a id="⊔-identityʳ"></a><a id="34637" href="Data.Nat.Properties.html#34637" class="Function">⊔-identityʳ</a> <a id="34649" class="Symbol">:</a> <a id="34651" href="Algebra.Definitions.html#1350" class="Function">RightIdentity</a> <a id="34665" class="Number">0</a> <a id="34667" href="Data.Nat.Base.html#3072" class="Function Operator">_⊔_</a>
|
||
<a id="34671" href="Data.Nat.Properties.html#34637" class="Function">⊔-identityʳ</a> <a id="34683" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="34691" class="Symbol">=</a> <a id="34693" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="34698" href="Data.Nat.Properties.html#34637" class="Function">⊔-identityʳ</a> <a id="34710" class="Symbol">(</a><a id="34711" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="34715" href="Data.Nat.Properties.html#34715" class="Bound">n</a><a id="34716" class="Symbol">)</a> <a id="34718" class="Symbol">=</a> <a id="34720" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
|
||
<a id="⊔-identity"></a><a id="34726" href="Data.Nat.Properties.html#34726" class="Function">⊔-identity</a> <a id="34737" class="Symbol">:</a> <a id="34739" href="Algebra.Definitions.html#1425" class="Function">Identity</a> <a id="34748" class="Number">0</a> <a id="34750" href="Data.Nat.Base.html#3072" class="Function Operator">_⊔_</a>
|
||
<a id="34754" href="Data.Nat.Properties.html#34726" class="Function">⊔-identity</a> <a id="34765" class="Symbol">=</a> <a id="34767" href="Data.Nat.Properties.html#34582" class="Function">⊔-identityˡ</a> <a id="34779" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="34781" href="Data.Nat.Properties.html#34637" class="Function">⊔-identityʳ</a>
|
||
|
||
<a id="34794" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="34867" class="Comment">-- Structures</a>
|
||
|
||
<a id="⊔-0-isMonoid"></a><a id="34882" href="Data.Nat.Properties.html#34882" class="Function">⊔-0-isMonoid</a> <a id="34895" class="Symbol">:</a> <a id="34897" href="Algebra.Structures.html#2810" class="Record">IsMonoid</a> <a id="34906" href="Data.Nat.Base.html#3072" class="Function Operator">_⊔_</a> <a id="34910" class="Number">0</a>
|
||
<a id="34912" href="Data.Nat.Properties.html#34882" class="Function">⊔-0-isMonoid</a> <a id="34925" class="Symbol">=</a> <a id="34927" class="Keyword">record</a>
|
||
<a id="34936" class="Symbol">{</a> <a id="34938" href="Algebra.Structures.html#2871" class="Field">isSemigroup</a> <a id="34950" class="Symbol">=</a> <a id="34952" href="Algebra.Construct.NaturalChoice.MaxOp.html#1379" class="Function">⊔-isSemigroup</a>
|
||
<a id="34968" class="Symbol">;</a> <a id="34970" href="Algebra.Structures.html#2903" class="Field">identity</a> <a id="34982" class="Symbol">=</a> <a id="34984" href="Data.Nat.Properties.html#34726" class="Function">⊔-identity</a>
|
||
<a id="34997" class="Symbol">}</a>
|
||
|
||
<a id="⊔-0-isCommutativeMonoid"></a><a id="35000" href="Data.Nat.Properties.html#35000" class="Function">⊔-0-isCommutativeMonoid</a> <a id="35024" class="Symbol">:</a> <a id="35026" href="Algebra.Structures.html#3101" class="Record">IsCommutativeMonoid</a> <a id="35046" href="Data.Nat.Base.html#3072" class="Function Operator">_⊔_</a> <a id="35050" class="Number">0</a>
|
||
<a id="35052" href="Data.Nat.Properties.html#35000" class="Function">⊔-0-isCommutativeMonoid</a> <a id="35076" class="Symbol">=</a> <a id="35078" class="Keyword">record</a>
|
||
<a id="35087" class="Symbol">{</a> <a id="35089" href="Algebra.Structures.html#3173" class="Field">isMonoid</a> <a id="35098" class="Symbol">=</a> <a id="35100" href="Data.Nat.Properties.html#34882" class="Function">⊔-0-isMonoid</a>
|
||
<a id="35115" class="Symbol">;</a> <a id="35117" href="Algebra.Structures.html#3201" class="Field">comm</a> <a id="35126" class="Symbol">=</a> <a id="35128" href="Algebra.Construct.NaturalChoice.MaxOp.html#1108" class="Function">⊔-comm</a>
|
||
<a id="35137" class="Symbol">}</a>
|
||
|
||
<a id="35140" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="35213" class="Comment">-- Bundles</a>
|
||
|
||
<a id="⊔-0-monoid"></a><a id="35225" href="Data.Nat.Properties.html#35225" class="Function">⊔-0-monoid</a> <a id="35236" class="Symbol">:</a> <a id="35238" href="Algebra.Bundles.html#4430" class="Record">Monoid</a> <a id="35245" href="Level.html#521" class="Function">0ℓ</a> <a id="35248" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="35251" href="Data.Nat.Properties.html#35225" class="Function">⊔-0-monoid</a> <a id="35262" class="Symbol">=</a> <a id="35264" class="Keyword">record</a>
|
||
<a id="35273" class="Symbol">{</a> <a id="35275" href="Algebra.Bundles.html#4609" class="Field">isMonoid</a> <a id="35284" class="Symbol">=</a> <a id="35286" href="Data.Nat.Properties.html#34882" class="Function">⊔-0-isMonoid</a>
|
||
<a id="35301" class="Symbol">}</a>
|
||
|
||
<a id="⊔-0-commutativeMonoid"></a><a id="35304" href="Data.Nat.Properties.html#35304" class="Function">⊔-0-commutativeMonoid</a> <a id="35326" class="Symbol">:</a> <a id="35328" href="Algebra.Bundles.html#4910" class="Record">CommutativeMonoid</a> <a id="35346" href="Level.html#521" class="Function">0ℓ</a> <a id="35349" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="35352" href="Data.Nat.Properties.html#35304" class="Function">⊔-0-commutativeMonoid</a> <a id="35374" class="Symbol">=</a> <a id="35376" class="Keyword">record</a>
|
||
<a id="35385" class="Symbol">{</a> <a id="35387" href="Algebra.Bundles.html#5144" class="Field">isCommutativeMonoid</a> <a id="35407" class="Symbol">=</a> <a id="35409" href="Data.Nat.Properties.html#35000" class="Function">⊔-0-isCommutativeMonoid</a>
|
||
<a id="35435" class="Symbol">}</a>
|
||
|
||
<a id="35438" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="35511" class="Comment">-- Other properties of _⊔_ and _≤_/_<_</a>
|
||
|
||
<a id="mono-≤-distrib-⊔"></a><a id="35551" href="Data.Nat.Properties.html#35551" class="Function">mono-≤-distrib-⊔</a> <a id="35568" class="Symbol">:</a> <a id="35570" class="Symbol">∀</a> <a id="35572" class="Symbol">{</a><a id="35573" href="Data.Nat.Properties.html#35573" class="Bound">f</a><a id="35574" class="Symbol">}</a> <a id="35576" class="Symbol">→</a> <a id="35578" href="Data.Nat.Properties.html#35573" class="Bound">f</a> <a id="35580" href="Relation.Binary.Core.html#1572" class="Function Operator">Preserves</a> <a id="35590" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="35594" href="Relation.Binary.Core.html#1572" class="Function Operator">⟶</a> <a id="35596" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="35600" class="Symbol">→</a>
|
||
<a id="35621" class="Symbol">∀</a> <a id="35623" href="Data.Nat.Properties.html#35623" class="Bound">m</a> <a id="35625" href="Data.Nat.Properties.html#35625" class="Bound">n</a> <a id="35627" class="Symbol">→</a> <a id="35629" href="Data.Nat.Properties.html#35573" class="Bound">f</a> <a id="35631" class="Symbol">(</a><a id="35632" href="Data.Nat.Properties.html#35623" class="Bound">m</a> <a id="35634" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="35636" href="Data.Nat.Properties.html#35625" class="Bound">n</a><a id="35637" class="Symbol">)</a> <a id="35639" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="35641" href="Data.Nat.Properties.html#35573" class="Bound">f</a> <a id="35643" href="Data.Nat.Properties.html#35623" class="Bound">m</a> <a id="35645" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="35647" href="Data.Nat.Properties.html#35573" class="Bound">f</a> <a id="35649" href="Data.Nat.Properties.html#35625" class="Bound">n</a>
|
||
<a id="35651" href="Data.Nat.Properties.html#35551" class="Function">mono-≤-distrib-⊔</a> <a id="35668" class="Symbol">{</a><a id="35669" href="Data.Nat.Properties.html#35669" class="Bound">f</a><a id="35670" class="Symbol">}</a> <a id="35672" class="Symbol">=</a> <a id="35674" href="Algebra.Construct.NaturalChoice.MaxOp.html#2379" class="Function">⊓-⊔-properties.mono-≤-distrib-⊔</a> <a id="35706" class="Symbol">(</a><a id="35707" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="35712" href="Data.Nat.Properties.html#35669" class="Bound">f</a><a id="35713" class="Symbol">)</a>
|
||
|
||
<a id="mono-≤-distrib-⊓"></a><a id="35716" href="Data.Nat.Properties.html#35716" class="Function">mono-≤-distrib-⊓</a> <a id="35733" class="Symbol">:</a> <a id="35735" class="Symbol">∀</a> <a id="35737" class="Symbol">{</a><a id="35738" href="Data.Nat.Properties.html#35738" class="Bound">f</a><a id="35739" class="Symbol">}</a> <a id="35741" class="Symbol">→</a> <a id="35743" href="Data.Nat.Properties.html#35738" class="Bound">f</a> <a id="35745" href="Relation.Binary.Core.html#1572" class="Function Operator">Preserves</a> <a id="35755" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="35759" href="Relation.Binary.Core.html#1572" class="Function Operator">⟶</a> <a id="35761" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="35765" class="Symbol">→</a>
|
||
<a id="35786" class="Symbol">∀</a> <a id="35788" href="Data.Nat.Properties.html#35788" class="Bound">m</a> <a id="35790" href="Data.Nat.Properties.html#35790" class="Bound">n</a> <a id="35792" class="Symbol">→</a> <a id="35794" href="Data.Nat.Properties.html#35738" class="Bound">f</a> <a id="35796" class="Symbol">(</a><a id="35797" href="Data.Nat.Properties.html#35788" class="Bound">m</a> <a id="35799" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="35801" href="Data.Nat.Properties.html#35790" class="Bound">n</a><a id="35802" class="Symbol">)</a> <a id="35804" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="35806" href="Data.Nat.Properties.html#35738" class="Bound">f</a> <a id="35808" href="Data.Nat.Properties.html#35788" class="Bound">m</a> <a id="35810" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="35812" href="Data.Nat.Properties.html#35738" class="Bound">f</a> <a id="35814" href="Data.Nat.Properties.html#35790" class="Bound">n</a>
|
||
<a id="35816" href="Data.Nat.Properties.html#35716" class="Function">mono-≤-distrib-⊓</a> <a id="35833" class="Symbol">{</a><a id="35834" href="Data.Nat.Properties.html#35834" class="Bound">f</a><a id="35835" class="Symbol">}</a> <a id="35837" class="Symbol">=</a> <a id="35839" href="Algebra.Construct.NaturalChoice.MinOp.html#5914" class="Function">⊓-⊔-properties.mono-≤-distrib-⊓</a> <a id="35871" class="Symbol">(</a><a id="35872" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="35877" href="Data.Nat.Properties.html#35834" class="Bound">f</a><a id="35878" class="Symbol">)</a>
|
||
|
||
<a id="antimono-≤-distrib-⊓"></a><a id="35881" href="Data.Nat.Properties.html#35881" class="Function">antimono-≤-distrib-⊓</a> <a id="35902" class="Symbol">:</a> <a id="35904" class="Symbol">∀</a> <a id="35906" class="Symbol">{</a><a id="35907" href="Data.Nat.Properties.html#35907" class="Bound">f</a><a id="35908" class="Symbol">}</a> <a id="35910" class="Symbol">→</a> <a id="35912" href="Data.Nat.Properties.html#35907" class="Bound">f</a> <a id="35914" href="Relation.Binary.Core.html#1572" class="Function Operator">Preserves</a> <a id="35924" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="35928" href="Relation.Binary.Core.html#1572" class="Function Operator">⟶</a> <a id="35930" href="Data.Nat.Base.html#1688" class="Function Operator">_≥_</a> <a id="35934" class="Symbol">→</a>
|
||
<a id="35959" class="Symbol">∀</a> <a id="35961" href="Data.Nat.Properties.html#35961" class="Bound">m</a> <a id="35963" href="Data.Nat.Properties.html#35963" class="Bound">n</a> <a id="35965" class="Symbol">→</a> <a id="35967" href="Data.Nat.Properties.html#35907" class="Bound">f</a> <a id="35969" class="Symbol">(</a><a id="35970" href="Data.Nat.Properties.html#35961" class="Bound">m</a> <a id="35972" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="35974" href="Data.Nat.Properties.html#35963" class="Bound">n</a><a id="35975" class="Symbol">)</a> <a id="35977" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="35979" href="Data.Nat.Properties.html#35907" class="Bound">f</a> <a id="35981" href="Data.Nat.Properties.html#35961" class="Bound">m</a> <a id="35983" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="35985" href="Data.Nat.Properties.html#35907" class="Bound">f</a> <a id="35987" href="Data.Nat.Properties.html#35963" class="Bound">n</a>
|
||
<a id="35989" href="Data.Nat.Properties.html#35881" class="Function">antimono-≤-distrib-⊓</a> <a id="36010" class="Symbol">{</a><a id="36011" href="Data.Nat.Properties.html#36011" class="Bound">f</a><a id="36012" class="Symbol">}</a> <a id="36014" class="Symbol">=</a> <a id="36016" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#4924" class="Function">⊓-⊔-properties.antimono-≤-distrib-⊓</a> <a id="36052" class="Symbol">(</a><a id="36053" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="36058" href="Data.Nat.Properties.html#36011" class="Bound">f</a><a id="36059" class="Symbol">)</a>
|
||
|
||
<a id="antimono-≤-distrib-⊔"></a><a id="36062" href="Data.Nat.Properties.html#36062" class="Function">antimono-≤-distrib-⊔</a> <a id="36083" class="Symbol">:</a> <a id="36085" class="Symbol">∀</a> <a id="36087" class="Symbol">{</a><a id="36088" href="Data.Nat.Properties.html#36088" class="Bound">f</a><a id="36089" class="Symbol">}</a> <a id="36091" class="Symbol">→</a> <a id="36093" href="Data.Nat.Properties.html#36088" class="Bound">f</a> <a id="36095" href="Relation.Binary.Core.html#1572" class="Function Operator">Preserves</a> <a id="36105" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="36109" href="Relation.Binary.Core.html#1572" class="Function Operator">⟶</a> <a id="36111" href="Data.Nat.Base.html#1688" class="Function Operator">_≥_</a> <a id="36115" class="Symbol">→</a>
|
||
<a id="36140" class="Symbol">∀</a> <a id="36142" href="Data.Nat.Properties.html#36142" class="Bound">m</a> <a id="36144" href="Data.Nat.Properties.html#36144" class="Bound">n</a> <a id="36146" class="Symbol">→</a> <a id="36148" href="Data.Nat.Properties.html#36088" class="Bound">f</a> <a id="36150" class="Symbol">(</a><a id="36151" href="Data.Nat.Properties.html#36142" class="Bound">m</a> <a id="36153" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="36155" href="Data.Nat.Properties.html#36144" class="Bound">n</a><a id="36156" class="Symbol">)</a> <a id="36158" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="36160" href="Data.Nat.Properties.html#36088" class="Bound">f</a> <a id="36162" href="Data.Nat.Properties.html#36142" class="Bound">m</a> <a id="36164" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="36166" href="Data.Nat.Properties.html#36088" class="Bound">f</a> <a id="36168" href="Data.Nat.Properties.html#36144" class="Bound">n</a>
|
||
<a id="36170" href="Data.Nat.Properties.html#36062" class="Function">antimono-≤-distrib-⊔</a> <a id="36191" class="Symbol">{</a><a id="36192" href="Data.Nat.Properties.html#36192" class="Bound">f</a><a id="36193" class="Symbol">}</a> <a id="36195" class="Symbol">=</a> <a id="36197" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#5375" class="Function">⊓-⊔-properties.antimono-≤-distrib-⊔</a> <a id="36233" class="Symbol">(</a><a id="36234" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="36239" href="Data.Nat.Properties.html#36192" class="Bound">f</a><a id="36240" class="Symbol">)</a>
|
||
|
||
<a id="m<n⇒m<n⊔o"></a><a id="36243" href="Data.Nat.Properties.html#36243" class="Function">m<n⇒m<n⊔o</a> <a id="36253" class="Symbol">:</a> <a id="36255" class="Symbol">∀</a> <a id="36257" class="Symbol">{</a><a id="36258" href="Data.Nat.Properties.html#36258" class="Bound">m</a> <a id="36260" href="Data.Nat.Properties.html#36260" class="Bound">n</a><a id="36261" class="Symbol">}</a> <a id="36263" href="Data.Nat.Properties.html#36263" class="Bound">o</a> <a id="36265" class="Symbol">→</a> <a id="36267" href="Data.Nat.Properties.html#36258" class="Bound">m</a> <a id="36269" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="36271" href="Data.Nat.Properties.html#36260" class="Bound">n</a> <a id="36273" class="Symbol">→</a> <a id="36275" href="Data.Nat.Properties.html#36258" class="Bound">m</a> <a id="36277" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="36279" href="Data.Nat.Properties.html#36260" class="Bound">n</a> <a id="36281" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="36283" href="Data.Nat.Properties.html#36263" class="Bound">o</a>
|
||
<a id="36285" href="Data.Nat.Properties.html#36243" class="Function">m<n⇒m<n⊔o</a> <a id="36295" class="Symbol">=</a> <a id="36297" href="Data.Nat.Properties.html#34151" class="Function">m≤n⇒m≤n⊔o</a>
|
||
|
||
<a id="m<n⇒m<o⊔n"></a><a id="36308" href="Data.Nat.Properties.html#36308" class="Function">m<n⇒m<o⊔n</a> <a id="36318" class="Symbol">:</a> <a id="36320" class="Symbol">∀</a> <a id="36322" class="Symbol">{</a><a id="36323" href="Data.Nat.Properties.html#36323" class="Bound">m</a> <a id="36325" href="Data.Nat.Properties.html#36325" class="Bound">n</a><a id="36326" class="Symbol">}</a> <a id="36328" href="Data.Nat.Properties.html#36328" class="Bound">o</a> <a id="36330" class="Symbol">→</a> <a id="36332" href="Data.Nat.Properties.html#36323" class="Bound">m</a> <a id="36334" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="36336" href="Data.Nat.Properties.html#36325" class="Bound">n</a> <a id="36338" class="Symbol">→</a> <a id="36340" href="Data.Nat.Properties.html#36323" class="Bound">m</a> <a id="36342" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="36344" href="Data.Nat.Properties.html#36328" class="Bound">o</a> <a id="36346" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="36348" href="Data.Nat.Properties.html#36325" class="Bound">n</a>
|
||
<a id="36350" href="Data.Nat.Properties.html#36308" class="Function">m<n⇒m<o⊔n</a> <a id="36360" class="Symbol">=</a> <a id="36362" href="Data.Nat.Properties.html#34216" class="Function">m≤n⇒m≤o⊔n</a>
|
||
|
||
<a id="m⊔n<o⇒m<o"></a><a id="36373" href="Data.Nat.Properties.html#36373" class="Function">m⊔n<o⇒m<o</a> <a id="36383" class="Symbol">:</a> <a id="36385" class="Symbol">∀</a> <a id="36387" href="Data.Nat.Properties.html#36387" class="Bound">m</a> <a id="36389" href="Data.Nat.Properties.html#36389" class="Bound">n</a> <a id="36391" class="Symbol">{</a><a id="36392" href="Data.Nat.Properties.html#36392" class="Bound">o</a><a id="36393" class="Symbol">}</a> <a id="36395" class="Symbol">→</a> <a id="36397" href="Data.Nat.Properties.html#36387" class="Bound">m</a> <a id="36399" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="36401" href="Data.Nat.Properties.html#36389" class="Bound">n</a> <a id="36403" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="36405" href="Data.Nat.Properties.html#36392" class="Bound">o</a> <a id="36407" class="Symbol">→</a> <a id="36409" href="Data.Nat.Properties.html#36387" class="Bound">m</a> <a id="36411" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="36413" href="Data.Nat.Properties.html#36392" class="Bound">o</a>
|
||
<a id="36415" href="Data.Nat.Properties.html#36373" class="Function">m⊔n<o⇒m<o</a> <a id="36425" href="Data.Nat.Properties.html#36425" class="Bound">m</a> <a id="36427" href="Data.Nat.Properties.html#36427" class="Bound">n</a> <a id="36429" href="Data.Nat.Properties.html#36429" class="Bound">m⊔n<o</a> <a id="36435" class="Symbol">=</a> <a id="36437" href="Data.Nat.Properties.html#9317" class="Function"><-transʳ</a> <a id="36446" class="Symbol">(</a><a id="36447" href="Data.Nat.Properties.html#34045" class="Function">m≤m⊔n</a> <a id="36453" href="Data.Nat.Properties.html#36425" class="Bound">m</a> <a id="36455" href="Data.Nat.Properties.html#36427" class="Bound">n</a><a id="36456" class="Symbol">)</a> <a id="36458" href="Data.Nat.Properties.html#36429" class="Bound">m⊔n<o</a>
|
||
|
||
<a id="m⊔n<o⇒n<o"></a><a id="36465" href="Data.Nat.Properties.html#36465" class="Function">m⊔n<o⇒n<o</a> <a id="36475" class="Symbol">:</a> <a id="36477" class="Symbol">∀</a> <a id="36479" href="Data.Nat.Properties.html#36479" class="Bound">m</a> <a id="36481" href="Data.Nat.Properties.html#36481" class="Bound">n</a> <a id="36483" class="Symbol">{</a><a id="36484" href="Data.Nat.Properties.html#36484" class="Bound">o</a><a id="36485" class="Symbol">}</a> <a id="36487" class="Symbol">→</a> <a id="36489" href="Data.Nat.Properties.html#36479" class="Bound">m</a> <a id="36491" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="36493" href="Data.Nat.Properties.html#36481" class="Bound">n</a> <a id="36495" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="36497" href="Data.Nat.Properties.html#36484" class="Bound">o</a> <a id="36499" class="Symbol">→</a> <a id="36501" href="Data.Nat.Properties.html#36481" class="Bound">n</a> <a id="36503" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="36505" href="Data.Nat.Properties.html#36484" class="Bound">o</a>
|
||
<a id="36507" href="Data.Nat.Properties.html#36465" class="Function">m⊔n<o⇒n<o</a> <a id="36517" href="Data.Nat.Properties.html#36517" class="Bound">m</a> <a id="36519" href="Data.Nat.Properties.html#36519" class="Bound">n</a> <a id="36521" href="Data.Nat.Properties.html#36521" class="Bound">m⊔n<o</a> <a id="36527" class="Symbol">=</a> <a id="36529" href="Data.Nat.Properties.html#9317" class="Function"><-transʳ</a> <a id="36538" class="Symbol">(</a><a id="36539" href="Data.Nat.Properties.html#34098" class="Function">m≤n⊔m</a> <a id="36545" href="Data.Nat.Properties.html#36517" class="Bound">m</a> <a id="36547" href="Data.Nat.Properties.html#36519" class="Bound">n</a><a id="36548" class="Symbol">)</a> <a id="36550" href="Data.Nat.Properties.html#36521" class="Bound">m⊔n<o</a>
|
||
|
||
<a id="⊔-mono-<"></a><a id="36557" href="Data.Nat.Properties.html#36557" class="Function">⊔-mono-<</a> <a id="36566" class="Symbol">:</a> <a id="36568" href="Data.Nat.Base.html#3072" class="Function Operator">_⊔_</a> <a id="36572" href="Relation.Binary.Core.html#1698" class="Function Operator">Preserves₂</a> <a id="36583" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="36587" href="Relation.Binary.Core.html#1698" class="Function Operator">⟶</a> <a id="36589" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="36593" href="Relation.Binary.Core.html#1698" class="Function Operator">⟶</a> <a id="36595" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a>
|
||
<a id="36599" href="Data.Nat.Properties.html#36557" class="Function">⊔-mono-<</a> <a id="36608" class="Symbol">=</a> <a id="36610" href="Algebra.Construct.NaturalChoice.MaxOp.html#2291" class="Function">⊔-mono-≤</a>
|
||
|
||
<a id="⊔-pres-<m"></a><a id="36620" href="Data.Nat.Properties.html#36620" class="Function">⊔-pres-<m</a> <a id="36630" class="Symbol">:</a> <a id="36632" class="Symbol">∀</a> <a id="36634" class="Symbol">{</a><a id="36635" href="Data.Nat.Properties.html#36635" class="Bound">m</a> <a id="36637" href="Data.Nat.Properties.html#36637" class="Bound">n</a> <a id="36639" href="Data.Nat.Properties.html#36639" class="Bound">o</a><a id="36640" class="Symbol">}</a> <a id="36642" class="Symbol">→</a> <a id="36644" href="Data.Nat.Properties.html#36637" class="Bound">n</a> <a id="36646" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="36648" href="Data.Nat.Properties.html#36635" class="Bound">m</a> <a id="36650" class="Symbol">→</a> <a id="36652" href="Data.Nat.Properties.html#36639" class="Bound">o</a> <a id="36654" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="36656" href="Data.Nat.Properties.html#36635" class="Bound">m</a> <a id="36658" class="Symbol">→</a> <a id="36660" href="Data.Nat.Properties.html#36637" class="Bound">n</a> <a id="36662" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="36664" href="Data.Nat.Properties.html#36639" class="Bound">o</a> <a id="36666" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="36668" href="Data.Nat.Properties.html#36635" class="Bound">m</a>
|
||
<a id="36670" href="Data.Nat.Properties.html#36620" class="Function">⊔-pres-<m</a> <a id="36680" class="Symbol">{</a><a id="36681" href="Data.Nat.Properties.html#36681" class="Bound">m</a><a id="36682" class="Symbol">}</a> <a id="36684" href="Data.Nat.Properties.html#36684" class="Bound">n<m</a> <a id="36688" href="Data.Nat.Properties.html#36688" class="Bound">o<m</a> <a id="36692" class="Symbol">=</a> <a id="36694" href="Relation.Binary.PropositionalEquality.Core.html#1789" class="Function">subst</a> <a id="36700" class="Symbol">(_</a> <a id="36703" href="Data.Nat.Base.html#1654" class="Function Operator"><_</a><a id="36705" class="Symbol">)</a> <a id="36707" class="Symbol">(</a><a id="36708" href="Algebra.Construct.NaturalChoice.MaxOp.html#1024" class="Function">⊔-idem</a> <a id="36715" href="Data.Nat.Properties.html#36681" class="Bound">m</a><a id="36716" class="Symbol">)</a> <a id="36718" class="Symbol">(</a><a id="36719" href="Data.Nat.Properties.html#36557" class="Function">⊔-mono-<</a> <a id="36728" href="Data.Nat.Properties.html#36684" class="Bound">n<m</a> <a id="36732" href="Data.Nat.Properties.html#36688" class="Bound">o<m</a><a id="36735" class="Symbol">)</a>
|
||
|
||
<a id="36738" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="36811" class="Comment">-- Other properties of _⊔_ and _+_</a>
|
||
|
||
<a id="+-distribˡ-⊔"></a><a id="36847" href="Data.Nat.Properties.html#36847" class="Function">+-distribˡ-⊔</a> <a id="36860" class="Symbol">:</a> <a id="36862" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a> <a id="36866" href="Algebra.Definitions.html#2236" class="Function Operator">DistributesOverˡ</a> <a id="36883" href="Data.Nat.Base.html#3072" class="Function Operator">_⊔_</a>
|
||
<a id="36887" href="Data.Nat.Properties.html#36847" class="Function">+-distribˡ-⊔</a> <a id="36900" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="36908" href="Data.Nat.Properties.html#36908" class="Bound">n</a> <a id="36910" href="Data.Nat.Properties.html#36910" class="Bound">o</a> <a id="36912" class="Symbol">=</a> <a id="36914" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="36919" href="Data.Nat.Properties.html#36847" class="Function">+-distribˡ-⊔</a> <a id="36932" class="Symbol">(</a><a id="36933" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="36937" href="Data.Nat.Properties.html#36937" class="Bound">m</a><a id="36938" class="Symbol">)</a> <a id="36940" href="Data.Nat.Properties.html#36940" class="Bound">n</a> <a id="36942" href="Data.Nat.Properties.html#36942" class="Bound">o</a> <a id="36944" class="Symbol">=</a> <a id="36946" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="36951" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="36955" class="Symbol">(</a><a id="36956" href="Data.Nat.Properties.html#36847" class="Function">+-distribˡ-⊔</a> <a id="36969" href="Data.Nat.Properties.html#36937" class="Bound">m</a> <a id="36971" href="Data.Nat.Properties.html#36940" class="Bound">n</a> <a id="36973" href="Data.Nat.Properties.html#36942" class="Bound">o</a><a id="36974" class="Symbol">)</a>
|
||
|
||
<a id="+-distribʳ-⊔"></a><a id="36977" href="Data.Nat.Properties.html#36977" class="Function">+-distribʳ-⊔</a> <a id="36990" class="Symbol">:</a> <a id="36992" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a> <a id="36996" href="Algebra.Definitions.html#2355" class="Function Operator">DistributesOverʳ</a> <a id="37013" href="Data.Nat.Base.html#3072" class="Function Operator">_⊔_</a>
|
||
<a id="37017" href="Data.Nat.Properties.html#36977" class="Function">+-distribʳ-⊔</a> <a id="37030" class="Symbol">=</a> <a id="37032" href="Algebra.Consequences.Propositional.html#2691" class="Function">comm+distrˡ⇒distrʳ</a> <a id="37051" href="Data.Nat.Properties.html#13404" class="Function">+-comm</a> <a id="37058" href="Data.Nat.Properties.html#36847" class="Function">+-distribˡ-⊔</a>
|
||
|
||
<a id="+-distrib-⊔"></a><a id="37072" href="Data.Nat.Properties.html#37072" class="Function">+-distrib-⊔</a> <a id="37084" class="Symbol">:</a> <a id="37086" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a> <a id="37090" href="Algebra.Definitions.html#2474" class="Function Operator">DistributesOver</a> <a id="37106" href="Data.Nat.Base.html#3072" class="Function Operator">_⊔_</a>
|
||
<a id="37110" href="Data.Nat.Properties.html#37072" class="Function">+-distrib-⊔</a> <a id="37122" class="Symbol">=</a> <a id="37124" href="Data.Nat.Properties.html#36847" class="Function">+-distribˡ-⊔</a> <a id="37137" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="37139" href="Data.Nat.Properties.html#36977" class="Function">+-distribʳ-⊔</a>
|
||
|
||
<a id="m⊔n≤m+n"></a><a id="37153" href="Data.Nat.Properties.html#37153" class="Function">m⊔n≤m+n</a> <a id="37161" class="Symbol">:</a> <a id="37163" class="Symbol">∀</a> <a id="37165" href="Data.Nat.Properties.html#37165" class="Bound">m</a> <a id="37167" href="Data.Nat.Properties.html#37167" class="Bound">n</a> <a id="37169" class="Symbol">→</a> <a id="37171" href="Data.Nat.Properties.html#37165" class="Bound">m</a> <a id="37173" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="37175" href="Data.Nat.Properties.html#37167" class="Bound">n</a> <a id="37177" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="37179" href="Data.Nat.Properties.html#37165" class="Bound">m</a> <a id="37181" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="37183" href="Data.Nat.Properties.html#37167" class="Bound">n</a>
|
||
<a id="37185" href="Data.Nat.Properties.html#37153" class="Function">m⊔n≤m+n</a> <a id="37193" href="Data.Nat.Properties.html#37193" class="Bound">m</a> <a id="37195" href="Data.Nat.Properties.html#37195" class="Bound">n</a> <a id="37197" class="Keyword">with</a> <a id="37202" href="Algebra.Construct.NaturalChoice.MaxOp.html#1052" class="Function">⊔-sel</a> <a id="37208" href="Data.Nat.Properties.html#37193" class="Bound">m</a> <a id="37210" href="Data.Nat.Properties.html#37195" class="Bound">n</a>
|
||
<a id="37212" class="Symbol">...</a> <a id="37216" class="Symbol">|</a> <a id="37218" href="Data.Sum.Base.html#793" class="InductiveConstructor">inj₁</a> <a id="37223" href="Data.Nat.Properties.html#37223" class="Bound">m⊔n≡m</a> <a id="37229" class="Keyword">rewrite</a> <a id="37237" href="Data.Nat.Properties.html#37223" class="Bound">m⊔n≡m</a> <a id="37243" class="Symbol">=</a> <a id="37245" href="Data.Nat.Properties.html#17089" class="Function">m≤m+n</a> <a id="37251" class="Bound">m</a> <a id="37253" class="Bound">n</a>
|
||
<a id="37255" class="Symbol">...</a> <a id="37259" class="Symbol">|</a> <a id="37261" href="Data.Sum.Base.html#818" class="InductiveConstructor">inj₂</a> <a id="37266" href="Data.Nat.Properties.html#37266" class="Bound">m⊔n≡n</a> <a id="37272" class="Keyword">rewrite</a> <a id="37280" href="Data.Nat.Properties.html#37266" class="Bound">m⊔n≡n</a> <a id="37286" class="Symbol">=</a> <a id="37288" href="Data.Nat.Properties.html#17172" class="Function">m≤n+m</a> <a id="37294" class="Bound">n</a> <a id="37296" class="Bound">m</a>
|
||
|
||
<a id="37299" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="37372" class="Comment">-- Other properties of _⊔_ and _*_</a>
|
||
|
||
<a id="*-distribˡ-⊔"></a><a id="37408" href="Data.Nat.Properties.html#37408" class="Function">*-distribˡ-⊔</a> <a id="37421" class="Symbol">:</a> <a id="37423" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a> <a id="37427" href="Algebra.Definitions.html#2236" class="Function Operator">DistributesOverˡ</a> <a id="37444" href="Data.Nat.Base.html#3072" class="Function Operator">_⊔_</a>
|
||
<a id="37448" href="Data.Nat.Properties.html#37408" class="Function">*-distribˡ-⊔</a> <a id="37461" href="Data.Nat.Properties.html#37461" class="Bound">m</a> <a id="37463" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="37468" href="Data.Nat.Properties.html#37468" class="Bound">o</a> <a id="37470" class="Symbol">=</a> <a id="37472" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="37476" class="Symbol">(</a><a id="37477" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="37482" class="Symbol">(</a><a id="37483" href="Data.Nat.Base.html#3072" class="Function Operator">_⊔</a> <a id="37486" href="Data.Nat.Properties.html#37461" class="Bound">m</a> <a id="37488" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="37490" href="Data.Nat.Properties.html#37468" class="Bound">o</a><a id="37491" class="Symbol">)</a> <a id="37493" class="Symbol">(</a><a id="37494" href="Data.Nat.Properties.html#20239" class="Function">*-zeroʳ</a> <a id="37502" href="Data.Nat.Properties.html#37461" class="Bound">m</a><a id="37503" class="Symbol">))</a>
|
||
<a id="37506" href="Data.Nat.Properties.html#37408" class="Function">*-distribˡ-⊔</a> <a id="37519" href="Data.Nat.Properties.html#37519" class="Bound">m</a> <a id="37521" class="Symbol">(</a><a id="37522" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="37526" href="Data.Nat.Properties.html#37526" class="Bound">n</a><a id="37527" class="Symbol">)</a> <a id="37529" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="37534" class="Symbol">=</a> <a id="37536" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="37553" href="Data.Nat.Properties.html#37519" class="Bound">m</a> <a id="37555" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="37557" class="Symbol">(</a><a id="37558" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="37562" href="Data.Nat.Properties.html#37526" class="Bound">n</a> <a id="37564" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="37566" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="37570" class="Symbol">)</a> <a id="37580" href="Relation.Binary.Reasoning.Base.Triple.html#5032" class="Function Operator">≡⟨⟩</a>
|
||
<a id="37586" href="Data.Nat.Properties.html#37519" class="Bound">m</a> <a id="37588" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="37590" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="37594" href="Data.Nat.Properties.html#37526" class="Bound">n</a> <a id="37613" href="Relation.Binary.Reasoning.Base.Triple.html#4879" class="Function">≡˘⟨</a> <a id="37617" href="Data.Nat.Properties.html#34637" class="Function">⊔-identityʳ</a> <a id="37629" class="Symbol">(</a><a id="37630" href="Data.Nat.Properties.html#37519" class="Bound">m</a> <a id="37632" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="37634" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="37638" href="Data.Nat.Properties.html#37526" class="Bound">n</a><a id="37639" class="Symbol">)</a> <a id="37641" href="Relation.Binary.Reasoning.Base.Triple.html#4879" class="Function">⟩</a>
|
||
<a id="37645" href="Data.Nat.Properties.html#37519" class="Bound">m</a> <a id="37647" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="37649" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="37653" href="Data.Nat.Properties.html#37526" class="Bound">n</a> <a id="37655" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="37657" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="37672" href="Relation.Binary.Reasoning.Base.Triple.html#4879" class="Function">≡˘⟨</a> <a id="37676" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="37681" class="Symbol">(</a><a id="37682" href="Data.Nat.Properties.html#37519" class="Bound">m</a> <a id="37684" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="37686" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="37690" href="Data.Nat.Properties.html#37526" class="Bound">n</a> <a id="37692" href="Data.Nat.Base.html#3072" class="Function Operator">⊔_</a><a id="37694" class="Symbol">)</a> <a id="37696" class="Symbol">(</a><a id="37697" href="Data.Nat.Properties.html#20239" class="Function">*-zeroʳ</a> <a id="37705" href="Data.Nat.Properties.html#37519" class="Bound">m</a><a id="37706" class="Symbol">)</a> <a id="37708" href="Relation.Binary.Reasoning.Base.Triple.html#4879" class="Function">⟩</a>
|
||
<a id="37712" href="Data.Nat.Properties.html#37519" class="Bound">m</a> <a id="37714" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="37716" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="37720" href="Data.Nat.Properties.html#37526" class="Bound">n</a> <a id="37722" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="37724" href="Data.Nat.Properties.html#37519" class="Bound">m</a> <a id="37726" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="37728" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="37739" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
<a id="37741" href="Data.Nat.Properties.html#37408" class="Function">*-distribˡ-⊔</a> <a id="37754" href="Data.Nat.Properties.html#37754" class="Bound">m</a> <a id="37756" class="Symbol">(</a><a id="37757" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="37761" href="Data.Nat.Properties.html#37761" class="Bound">n</a><a id="37762" class="Symbol">)</a> <a id="37764" class="Symbol">(</a><a id="37765" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="37769" href="Data.Nat.Properties.html#37769" class="Bound">o</a><a id="37770" class="Symbol">)</a> <a id="37772" class="Symbol">=</a> <a id="37774" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="37791" href="Data.Nat.Properties.html#37754" class="Bound">m</a> <a id="37793" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="37795" class="Symbol">(</a><a id="37796" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="37800" href="Data.Nat.Properties.html#37761" class="Bound">n</a> <a id="37802" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="37804" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="37808" href="Data.Nat.Properties.html#37769" class="Bound">o</a><a id="37809" class="Symbol">)</a> <a id="37818" href="Relation.Binary.Reasoning.Base.Triple.html#5032" class="Function Operator">≡⟨⟩</a>
|
||
<a id="37824" href="Data.Nat.Properties.html#37754" class="Bound">m</a> <a id="37826" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="37828" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="37832" class="Symbol">(</a><a id="37833" href="Data.Nat.Properties.html#37761" class="Bound">n</a> <a id="37835" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="37837" href="Data.Nat.Properties.html#37769" class="Bound">o</a><a id="37838" class="Symbol">)</a> <a id="37851" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="37854" href="Data.Nat.Properties.html#19391" class="Function">*-suc</a> <a id="37860" href="Data.Nat.Properties.html#37754" class="Bound">m</a> <a id="37862" class="Symbol">(</a><a id="37863" href="Data.Nat.Properties.html#37761" class="Bound">n</a> <a id="37865" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="37867" href="Data.Nat.Properties.html#37769" class="Bound">o</a><a id="37868" class="Symbol">)</a> <a id="37870" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="37874" href="Data.Nat.Properties.html#37754" class="Bound">m</a> <a id="37876" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="37878" href="Data.Nat.Properties.html#37754" class="Bound">m</a> <a id="37880" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="37882" class="Symbol">(</a><a id="37883" href="Data.Nat.Properties.html#37761" class="Bound">n</a> <a id="37885" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="37887" href="Data.Nat.Properties.html#37769" class="Bound">o</a><a id="37888" class="Symbol">)</a> <a id="37901" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="37904" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="37909" class="Symbol">(</a><a id="37910" href="Data.Nat.Properties.html#37754" class="Bound">m</a> <a id="37912" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+_</a><a id="37914" class="Symbol">)</a> <a id="37916" class="Symbol">(</a><a id="37917" href="Data.Nat.Properties.html#37408" class="Function">*-distribˡ-⊔</a> <a id="37930" href="Data.Nat.Properties.html#37754" class="Bound">m</a> <a id="37932" href="Data.Nat.Properties.html#37761" class="Bound">n</a> <a id="37934" href="Data.Nat.Properties.html#37769" class="Bound">o</a><a id="37935" class="Symbol">)</a> <a id="37937" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="37941" href="Data.Nat.Properties.html#37754" class="Bound">m</a> <a id="37943" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="37945" class="Symbol">(</a><a id="37946" href="Data.Nat.Properties.html#37754" class="Bound">m</a> <a id="37948" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="37950" href="Data.Nat.Properties.html#37761" class="Bound">n</a> <a id="37952" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="37954" href="Data.Nat.Properties.html#37754" class="Bound">m</a> <a id="37956" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="37958" href="Data.Nat.Properties.html#37769" class="Bound">o</a><a id="37959" class="Symbol">)</a> <a id="37968" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="37971" href="Data.Nat.Properties.html#36847" class="Function">+-distribˡ-⊔</a> <a id="37984" href="Data.Nat.Properties.html#37754" class="Bound">m</a> <a id="37986" class="Symbol">(</a><a id="37987" href="Data.Nat.Properties.html#37754" class="Bound">m</a> <a id="37989" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="37991" href="Data.Nat.Properties.html#37761" class="Bound">n</a><a id="37992" class="Symbol">)</a> <a id="37994" class="Symbol">(</a><a id="37995" href="Data.Nat.Properties.html#37754" class="Bound">m</a> <a id="37997" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="37999" href="Data.Nat.Properties.html#37769" class="Bound">o</a><a id="38000" class="Symbol">)</a> <a id="38002" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="38006" class="Symbol">(</a><a id="38007" href="Data.Nat.Properties.html#37754" class="Bound">m</a> <a id="38009" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="38011" href="Data.Nat.Properties.html#37754" class="Bound">m</a> <a id="38013" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="38015" href="Data.Nat.Properties.html#37761" class="Bound">n</a><a id="38016" class="Symbol">)</a> <a id="38018" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="38020" class="Symbol">(</a><a id="38021" href="Data.Nat.Properties.html#37754" class="Bound">m</a> <a id="38023" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="38025" href="Data.Nat.Properties.html#37754" class="Bound">m</a> <a id="38027" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="38029" href="Data.Nat.Properties.html#37769" class="Bound">o</a><a id="38030" class="Symbol">)</a> <a id="38033" href="Relation.Binary.Reasoning.Base.Triple.html#4879" class="Function">≡˘⟨</a> <a id="38037" href="Relation.Binary.PropositionalEquality.Core.html#1376" class="Function">cong₂</a> <a id="38043" href="Data.Nat.Base.html#3072" class="Function Operator">_⊔_</a> <a id="38047" class="Symbol">(</a><a id="38048" href="Data.Nat.Properties.html#19391" class="Function">*-suc</a> <a id="38054" href="Data.Nat.Properties.html#37754" class="Bound">m</a> <a id="38056" href="Data.Nat.Properties.html#37761" class="Bound">n</a><a id="38057" class="Symbol">)</a> <a id="38059" class="Symbol">(</a><a id="38060" href="Data.Nat.Properties.html#19391" class="Function">*-suc</a> <a id="38066" href="Data.Nat.Properties.html#37754" class="Bound">m</a> <a id="38068" href="Data.Nat.Properties.html#37769" class="Bound">o</a><a id="38069" class="Symbol">)</a> <a id="38071" href="Relation.Binary.Reasoning.Base.Triple.html#4879" class="Function">⟩</a>
|
||
<a id="38075" class="Symbol">(</a><a id="38076" href="Data.Nat.Properties.html#37754" class="Bound">m</a> <a id="38078" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="38080" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="38084" href="Data.Nat.Properties.html#37761" class="Bound">n</a><a id="38085" class="Symbol">)</a> <a id="38087" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="38089" class="Symbol">(</a><a id="38090" href="Data.Nat.Properties.html#37754" class="Bound">m</a> <a id="38092" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="38094" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="38098" href="Data.Nat.Properties.html#37769" class="Bound">o</a><a id="38099" class="Symbol">)</a> <a id="38102" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
|
||
<a id="*-distribʳ-⊔"></a><a id="38105" href="Data.Nat.Properties.html#38105" class="Function">*-distribʳ-⊔</a> <a id="38118" class="Symbol">:</a> <a id="38120" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a> <a id="38124" href="Algebra.Definitions.html#2355" class="Function Operator">DistributesOverʳ</a> <a id="38141" href="Data.Nat.Base.html#3072" class="Function Operator">_⊔_</a>
|
||
<a id="38145" href="Data.Nat.Properties.html#38105" class="Function">*-distribʳ-⊔</a> <a id="38158" class="Symbol">=</a> <a id="38160" href="Algebra.Consequences.Propositional.html#2691" class="Function">comm+distrˡ⇒distrʳ</a> <a id="38179" href="Data.Nat.Properties.html#20365" class="Function">*-comm</a> <a id="38186" href="Data.Nat.Properties.html#37408" class="Function">*-distribˡ-⊔</a>
|
||
|
||
<a id="*-distrib-⊔"></a><a id="38200" href="Data.Nat.Properties.html#38200" class="Function">*-distrib-⊔</a> <a id="38212" class="Symbol">:</a> <a id="38214" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a> <a id="38218" href="Algebra.Definitions.html#2474" class="Function Operator">DistributesOver</a> <a id="38234" href="Data.Nat.Base.html#3072" class="Function Operator">_⊔_</a>
|
||
<a id="38238" href="Data.Nat.Properties.html#38200" class="Function">*-distrib-⊔</a> <a id="38250" class="Symbol">=</a> <a id="38252" href="Data.Nat.Properties.html#37408" class="Function">*-distribˡ-⊔</a> <a id="38265" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="38267" href="Data.Nat.Properties.html#38105" class="Function">*-distribʳ-⊔</a>
|
||
|
||
<a id="38281" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="38354" class="Comment">-- Properties of _⊓_</a>
|
||
<a id="38375" class="Comment">------------------------------------------------------------------------</a>
|
||
|
||
<a id="38449" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="38522" class="Comment">-- Algebraic properties</a>
|
||
|
||
<a id="⊓-zeroˡ"></a><a id="38547" href="Data.Nat.Properties.html#38547" class="Function">⊓-zeroˡ</a> <a id="38555" class="Symbol">:</a> <a id="38557" href="Algebra.Definitions.html#1511" class="Function">LeftZero</a> <a id="38566" class="Number">0</a> <a id="38568" href="Data.Nat.Base.html#3166" class="Function Operator">_⊓_</a>
|
||
<a id="38572" href="Data.Nat.Properties.html#38547" class="Function">⊓-zeroˡ</a> <a id="38580" class="Symbol">_</a> <a id="38582" class="Symbol">=</a> <a id="38584" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
|
||
<a id="⊓-zeroʳ"></a><a id="38590" href="Data.Nat.Properties.html#38590" class="Function">⊓-zeroʳ</a> <a id="38598" class="Symbol">:</a> <a id="38600" href="Algebra.Definitions.html#1576" class="Function">RightZero</a> <a id="38610" class="Number">0</a> <a id="38612" href="Data.Nat.Base.html#3166" class="Function Operator">_⊓_</a>
|
||
<a id="38616" href="Data.Nat.Properties.html#38590" class="Function">⊓-zeroʳ</a> <a id="38624" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="38632" class="Symbol">=</a> <a id="38634" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="38639" href="Data.Nat.Properties.html#38590" class="Function">⊓-zeroʳ</a> <a id="38647" class="Symbol">(</a><a id="38648" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="38652" href="Data.Nat.Properties.html#38652" class="Bound">n</a><a id="38653" class="Symbol">)</a> <a id="38655" class="Symbol">=</a> <a id="38657" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
|
||
<a id="⊓-zero"></a><a id="38663" href="Data.Nat.Properties.html#38663" class="Function">⊓-zero</a> <a id="38670" class="Symbol">:</a> <a id="38672" href="Algebra.Definitions.html#1643" class="Function">Zero</a> <a id="38677" class="Number">0</a> <a id="38679" href="Data.Nat.Base.html#3166" class="Function Operator">_⊓_</a>
|
||
<a id="38683" href="Data.Nat.Properties.html#38663" class="Function">⊓-zero</a> <a id="38690" class="Symbol">=</a> <a id="38692" href="Data.Nat.Properties.html#38547" class="Function">⊓-zeroˡ</a> <a id="38700" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="38702" href="Data.Nat.Properties.html#38590" class="Function">⊓-zeroʳ</a>
|
||
|
||
<a id="38711" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="38784" class="Comment">-- Structures</a>
|
||
|
||
<a id="⊔-⊓-isSemiringWithoutOne"></a><a id="38799" href="Data.Nat.Properties.html#38799" class="Function">⊔-⊓-isSemiringWithoutOne</a> <a id="38824" class="Symbol">:</a> <a id="38826" href="Algebra.Structures.html#8170" class="Record">IsSemiringWithoutOne</a> <a id="38847" href="Data.Nat.Base.html#3072" class="Function Operator">_⊔_</a> <a id="38851" href="Data.Nat.Base.html#3166" class="Function Operator">_⊓_</a> <a id="38855" class="Number">0</a>
|
||
<a id="38857" href="Data.Nat.Properties.html#38799" class="Function">⊔-⊓-isSemiringWithoutOne</a> <a id="38882" class="Symbol">=</a> <a id="38884" class="Keyword">record</a>
|
||
<a id="38893" class="Symbol">{</a> <a id="38895" href="Algebra.Structures.html#8246" class="Field">+-isCommutativeMonoid</a> <a id="38917" class="Symbol">=</a> <a id="38919" href="Data.Nat.Properties.html#35000" class="Function">⊔-0-isCommutativeMonoid</a>
|
||
<a id="38945" class="Symbol">;</a> <a id="38947" href="Algebra.Structures.html#8299" class="Field">*-isSemigroup</a> <a id="38969" class="Symbol">=</a> <a id="38971" href="Algebra.Construct.NaturalChoice.MinOp.html#3857" class="Function">⊓-isSemigroup</a>
|
||
<a id="38987" class="Symbol">;</a> <a id="38989" href="Algebra.Structures.html#8341" class="Field">distrib</a> <a id="39011" class="Symbol">=</a> <a id="39013" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#1987" class="Function">⊓-distrib-⊔</a>
|
||
<a id="39027" class="Symbol">;</a> <a id="39029" href="Algebra.Structures.html#8389" class="Field">zero</a> <a id="39051" class="Symbol">=</a> <a id="39053" href="Data.Nat.Properties.html#38663" class="Function">⊓-zero</a>
|
||
<a id="39062" class="Symbol">}</a>
|
||
|
||
<a id="⊔-⊓-isCommutativeSemiringWithoutOne"></a><a id="39065" href="Data.Nat.Properties.html#39065" class="Function">⊔-⊓-isCommutativeSemiringWithoutOne</a>
|
||
<a id="39103" class="Symbol">:</a> <a id="39105" href="Algebra.Structures.html#9104" class="Record">IsCommutativeSemiringWithoutOne</a> <a id="39137" href="Data.Nat.Base.html#3072" class="Function Operator">_⊔_</a> <a id="39141" href="Data.Nat.Base.html#3166" class="Function Operator">_⊓_</a> <a id="39145" class="Number">0</a>
|
||
<a id="39147" href="Data.Nat.Properties.html#39065" class="Function">⊔-⊓-isCommutativeSemiringWithoutOne</a> <a id="39183" class="Symbol">=</a> <a id="39185" class="Keyword">record</a>
|
||
<a id="39194" class="Symbol">{</a> <a id="39196" href="Algebra.Structures.html#9200" class="Field">isSemiringWithoutOne</a> <a id="39217" class="Symbol">=</a> <a id="39219" href="Data.Nat.Properties.html#38799" class="Function">⊔-⊓-isSemiringWithoutOne</a>
|
||
<a id="39246" class="Symbol">;</a> <a id="39248" href="Algebra.Structures.html#9255" class="Field">*-comm</a> <a id="39269" class="Symbol">=</a> <a id="39271" href="Algebra.Construct.NaturalChoice.MinOp.html#1553" class="Function">⊓-comm</a>
|
||
<a id="39280" class="Symbol">}</a>
|
||
|
||
<a id="39283" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="39356" class="Comment">-- Bundles</a>
|
||
|
||
<a id="⊔-⊓-commutativeSemiringWithoutOne"></a><a id="39368" href="Data.Nat.Properties.html#39368" class="Function">⊔-⊓-commutativeSemiringWithoutOne</a> <a id="39402" class="Symbol">:</a> <a id="39404" href="Algebra.Bundles.html#12945" class="Record">CommutativeSemiringWithoutOne</a> <a id="39434" href="Level.html#521" class="Function">0ℓ</a> <a id="39437" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="39440" href="Data.Nat.Properties.html#39368" class="Function">⊔-⊓-commutativeSemiringWithoutOne</a> <a id="39474" class="Symbol">=</a> <a id="39476" class="Keyword">record</a>
|
||
<a id="39485" class="Symbol">{</a> <a id="39487" href="Algebra.Bundles.html#13304" class="Field">isCommutativeSemiringWithoutOne</a> <a id="39519" class="Symbol">=</a>
|
||
<a id="39527" href="Data.Nat.Properties.html#39065" class="Function">⊔-⊓-isCommutativeSemiringWithoutOne</a>
|
||
<a id="39565" class="Symbol">}</a>
|
||
|
||
<a id="39568" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="39641" class="Comment">-- Other properties of _⊓_ and _≤_/_<_</a>
|
||
|
||
<a id="m<n⇒m⊓o<n"></a><a id="39681" href="Data.Nat.Properties.html#39681" class="Function">m<n⇒m⊓o<n</a> <a id="39691" class="Symbol">:</a> <a id="39693" class="Symbol">∀</a> <a id="39695" class="Symbol">{</a><a id="39696" href="Data.Nat.Properties.html#39696" class="Bound">m</a> <a id="39698" href="Data.Nat.Properties.html#39698" class="Bound">n</a><a id="39699" class="Symbol">}</a> <a id="39701" href="Data.Nat.Properties.html#39701" class="Bound">o</a> <a id="39703" class="Symbol">→</a> <a id="39705" href="Data.Nat.Properties.html#39696" class="Bound">m</a> <a id="39707" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="39709" href="Data.Nat.Properties.html#39698" class="Bound">n</a> <a id="39711" class="Symbol">→</a> <a id="39713" href="Data.Nat.Properties.html#39696" class="Bound">m</a> <a id="39715" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="39717" href="Data.Nat.Properties.html#39701" class="Bound">o</a> <a id="39719" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="39721" href="Data.Nat.Properties.html#39698" class="Bound">n</a>
|
||
<a id="39723" href="Data.Nat.Properties.html#39681" class="Function">m<n⇒m⊓o<n</a> <a id="39733" href="Data.Nat.Properties.html#39733" class="Bound">o</a> <a id="39735" href="Data.Nat.Properties.html#39735" class="Bound">m<n</a> <a id="39739" class="Symbol">=</a> <a id="39741" href="Data.Nat.Properties.html#9317" class="Function"><-transʳ</a> <a id="39750" class="Symbol">(</a><a id="39751" href="Data.Nat.Properties.html#33552" class="Function">m⊓n≤m</a> <a id="39757" class="Symbol">_</a> <a id="39759" href="Data.Nat.Properties.html#39733" class="Bound">o</a><a id="39760" class="Symbol">)</a> <a id="39762" href="Data.Nat.Properties.html#39735" class="Bound">m<n</a>
|
||
|
||
<a id="m<n⇒o⊓m<n"></a><a id="39767" href="Data.Nat.Properties.html#39767" class="Function">m<n⇒o⊓m<n</a> <a id="39777" class="Symbol">:</a> <a id="39779" class="Symbol">∀</a> <a id="39781" class="Symbol">{</a><a id="39782" href="Data.Nat.Properties.html#39782" class="Bound">m</a> <a id="39784" href="Data.Nat.Properties.html#39784" class="Bound">n</a><a id="39785" class="Symbol">}</a> <a id="39787" href="Data.Nat.Properties.html#39787" class="Bound">o</a> <a id="39789" class="Symbol">→</a> <a id="39791" href="Data.Nat.Properties.html#39782" class="Bound">m</a> <a id="39793" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="39795" href="Data.Nat.Properties.html#39784" class="Bound">n</a> <a id="39797" class="Symbol">→</a> <a id="39799" href="Data.Nat.Properties.html#39787" class="Bound">o</a> <a id="39801" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="39803" href="Data.Nat.Properties.html#39782" class="Bound">m</a> <a id="39805" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="39807" href="Data.Nat.Properties.html#39784" class="Bound">n</a>
|
||
<a id="39809" href="Data.Nat.Properties.html#39767" class="Function">m<n⇒o⊓m<n</a> <a id="39819" href="Data.Nat.Properties.html#39819" class="Bound">o</a> <a id="39821" href="Data.Nat.Properties.html#39821" class="Bound">m<n</a> <a id="39825" class="Symbol">=</a> <a id="39827" href="Data.Nat.Properties.html#9317" class="Function"><-transʳ</a> <a id="39836" class="Symbol">(</a><a id="39837" href="Data.Nat.Properties.html#33605" class="Function">m⊓n≤n</a> <a id="39843" href="Data.Nat.Properties.html#39819" class="Bound">o</a> <a id="39845" class="Symbol">_)</a> <a id="39848" href="Data.Nat.Properties.html#39821" class="Bound">m<n</a>
|
||
|
||
<a id="m<n⊓o⇒m<n"></a><a id="39853" href="Data.Nat.Properties.html#39853" class="Function">m<n⊓o⇒m<n</a> <a id="39863" class="Symbol">:</a> <a id="39865" class="Symbol">∀</a> <a id="39867" class="Symbol">{</a><a id="39868" href="Data.Nat.Properties.html#39868" class="Bound">m</a><a id="39869" class="Symbol">}</a> <a id="39871" href="Data.Nat.Properties.html#39871" class="Bound">n</a> <a id="39873" href="Data.Nat.Properties.html#39873" class="Bound">o</a> <a id="39875" class="Symbol">→</a> <a id="39877" href="Data.Nat.Properties.html#39868" class="Bound">m</a> <a id="39879" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="39881" href="Data.Nat.Properties.html#39871" class="Bound">n</a> <a id="39883" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="39885" href="Data.Nat.Properties.html#39873" class="Bound">o</a> <a id="39887" class="Symbol">→</a> <a id="39889" href="Data.Nat.Properties.html#39868" class="Bound">m</a> <a id="39891" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="39893" href="Data.Nat.Properties.html#39871" class="Bound">n</a>
|
||
<a id="39895" href="Data.Nat.Properties.html#39853" class="Function">m<n⊓o⇒m<n</a> <a id="39905" class="Symbol">=</a> <a id="39907" href="Data.Nat.Properties.html#33788" class="Function">m≤n⊓o⇒m≤n</a>
|
||
|
||
<a id="m<n⊓o⇒m<o"></a><a id="39918" href="Data.Nat.Properties.html#39918" class="Function">m<n⊓o⇒m<o</a> <a id="39928" class="Symbol">:</a> <a id="39930" class="Symbol">∀</a> <a id="39932" class="Symbol">{</a><a id="39933" href="Data.Nat.Properties.html#39933" class="Bound">m</a><a id="39934" class="Symbol">}</a> <a id="39936" href="Data.Nat.Properties.html#39936" class="Bound">n</a> <a id="39938" href="Data.Nat.Properties.html#39938" class="Bound">o</a> <a id="39940" class="Symbol">→</a> <a id="39942" href="Data.Nat.Properties.html#39933" class="Bound">m</a> <a id="39944" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="39946" href="Data.Nat.Properties.html#39936" class="Bound">n</a> <a id="39948" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="39950" href="Data.Nat.Properties.html#39938" class="Bound">o</a> <a id="39952" class="Symbol">→</a> <a id="39954" href="Data.Nat.Properties.html#39933" class="Bound">m</a> <a id="39956" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="39958" href="Data.Nat.Properties.html#39938" class="Bound">o</a>
|
||
<a id="39960" href="Data.Nat.Properties.html#39918" class="Function">m<n⊓o⇒m<o</a> <a id="39970" class="Symbol">=</a> <a id="39972" href="Data.Nat.Properties.html#33853" class="Function">m≤n⊓o⇒m≤o</a>
|
||
|
||
<a id="⊓-mono-<"></a><a id="39983" href="Data.Nat.Properties.html#39983" class="Function">⊓-mono-<</a> <a id="39992" class="Symbol">:</a> <a id="39994" href="Data.Nat.Base.html#3166" class="Function Operator">_⊓_</a> <a id="39998" href="Relation.Binary.Core.html#1698" class="Function Operator">Preserves₂</a> <a id="40009" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="40013" href="Relation.Binary.Core.html#1698" class="Function Operator">⟶</a> <a id="40015" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a> <a id="40019" href="Relation.Binary.Core.html#1698" class="Function Operator">⟶</a> <a id="40021" href="Data.Nat.Base.html#1654" class="Function Operator">_<_</a>
|
||
<a id="40025" href="Data.Nat.Properties.html#39983" class="Function">⊓-mono-<</a> <a id="40034" class="Symbol">=</a> <a id="40036" href="Algebra.Construct.NaturalChoice.MinOp.html#6685" class="Function">⊓-mono-≤</a>
|
||
|
||
<a id="⊓-pres-m<"></a><a id="40046" href="Data.Nat.Properties.html#40046" class="Function">⊓-pres-m<</a> <a id="40056" class="Symbol">:</a> <a id="40058" class="Symbol">∀</a> <a id="40060" class="Symbol">{</a><a id="40061" href="Data.Nat.Properties.html#40061" class="Bound">m</a> <a id="40063" href="Data.Nat.Properties.html#40063" class="Bound">n</a> <a id="40065" href="Data.Nat.Properties.html#40065" class="Bound">o</a><a id="40066" class="Symbol">}</a> <a id="40068" class="Symbol">→</a> <a id="40070" href="Data.Nat.Properties.html#40061" class="Bound">m</a> <a id="40072" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="40074" href="Data.Nat.Properties.html#40063" class="Bound">n</a> <a id="40076" class="Symbol">→</a> <a id="40078" href="Data.Nat.Properties.html#40061" class="Bound">m</a> <a id="40080" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="40082" href="Data.Nat.Properties.html#40065" class="Bound">o</a> <a id="40084" class="Symbol">→</a> <a id="40086" href="Data.Nat.Properties.html#40061" class="Bound">m</a> <a id="40088" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="40090" href="Data.Nat.Properties.html#40063" class="Bound">n</a> <a id="40092" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="40094" href="Data.Nat.Properties.html#40065" class="Bound">o</a>
|
||
<a id="40096" href="Data.Nat.Properties.html#40046" class="Function">⊓-pres-m<</a> <a id="40106" class="Symbol">{</a><a id="40107" href="Data.Nat.Properties.html#40107" class="Bound">m</a><a id="40108" class="Symbol">}</a> <a id="40110" href="Data.Nat.Properties.html#40110" class="Bound">m<n</a> <a id="40114" href="Data.Nat.Properties.html#40114" class="Bound">m<o</a> <a id="40118" class="Symbol">=</a> <a id="40120" href="Relation.Binary.PropositionalEquality.Core.html#1789" class="Function">subst</a> <a id="40126" class="Symbol">(</a><a id="40127" href="Data.Nat.Base.html#1654" class="Function Operator">_<</a> <a id="40130" class="Symbol">_)</a> <a id="40133" class="Symbol">(</a><a id="40134" href="Algebra.Construct.NaturalChoice.MinOp.html#2994" class="Function">⊓-idem</a> <a id="40141" href="Data.Nat.Properties.html#40107" class="Bound">m</a><a id="40142" class="Symbol">)</a> <a id="40144" class="Symbol">(</a><a id="40145" href="Data.Nat.Properties.html#39983" class="Function">⊓-mono-<</a> <a id="40154" href="Data.Nat.Properties.html#40110" class="Bound">m<n</a> <a id="40158" href="Data.Nat.Properties.html#40114" class="Bound">m<o</a><a id="40161" class="Symbol">)</a>
|
||
|
||
<a id="40164" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="40237" class="Comment">-- Other properties of _⊓_ and _+_</a>
|
||
|
||
<a id="+-distribˡ-⊓"></a><a id="40273" href="Data.Nat.Properties.html#40273" class="Function">+-distribˡ-⊓</a> <a id="40286" class="Symbol">:</a> <a id="40288" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a> <a id="40292" href="Algebra.Definitions.html#2236" class="Function Operator">DistributesOverˡ</a> <a id="40309" href="Data.Nat.Base.html#3166" class="Function Operator">_⊓_</a>
|
||
<a id="40313" href="Data.Nat.Properties.html#40273" class="Function">+-distribˡ-⊓</a> <a id="40326" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="40334" href="Data.Nat.Properties.html#40334" class="Bound">n</a> <a id="40336" href="Data.Nat.Properties.html#40336" class="Bound">o</a> <a id="40338" class="Symbol">=</a> <a id="40340" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="40345" href="Data.Nat.Properties.html#40273" class="Function">+-distribˡ-⊓</a> <a id="40358" class="Symbol">(</a><a id="40359" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="40363" href="Data.Nat.Properties.html#40363" class="Bound">m</a><a id="40364" class="Symbol">)</a> <a id="40366" href="Data.Nat.Properties.html#40366" class="Bound">n</a> <a id="40368" href="Data.Nat.Properties.html#40368" class="Bound">o</a> <a id="40370" class="Symbol">=</a> <a id="40372" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="40377" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="40381" class="Symbol">(</a><a id="40382" href="Data.Nat.Properties.html#40273" class="Function">+-distribˡ-⊓</a> <a id="40395" href="Data.Nat.Properties.html#40363" class="Bound">m</a> <a id="40397" href="Data.Nat.Properties.html#40366" class="Bound">n</a> <a id="40399" href="Data.Nat.Properties.html#40368" class="Bound">o</a><a id="40400" class="Symbol">)</a>
|
||
|
||
<a id="+-distribʳ-⊓"></a><a id="40403" href="Data.Nat.Properties.html#40403" class="Function">+-distribʳ-⊓</a> <a id="40416" class="Symbol">:</a> <a id="40418" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a> <a id="40422" href="Algebra.Definitions.html#2355" class="Function Operator">DistributesOverʳ</a> <a id="40439" href="Data.Nat.Base.html#3166" class="Function Operator">_⊓_</a>
|
||
<a id="40443" href="Data.Nat.Properties.html#40403" class="Function">+-distribʳ-⊓</a> <a id="40456" class="Symbol">=</a> <a id="40458" href="Algebra.Consequences.Propositional.html#2691" class="Function">comm+distrˡ⇒distrʳ</a> <a id="40477" href="Data.Nat.Properties.html#13404" class="Function">+-comm</a> <a id="40484" href="Data.Nat.Properties.html#40273" class="Function">+-distribˡ-⊓</a>
|
||
|
||
<a id="+-distrib-⊓"></a><a id="40498" href="Data.Nat.Properties.html#40498" class="Function">+-distrib-⊓</a> <a id="40510" class="Symbol">:</a> <a id="40512" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a> <a id="40516" href="Algebra.Definitions.html#2474" class="Function Operator">DistributesOver</a> <a id="40532" href="Data.Nat.Base.html#3166" class="Function Operator">_⊓_</a>
|
||
<a id="40536" href="Data.Nat.Properties.html#40498" class="Function">+-distrib-⊓</a> <a id="40548" class="Symbol">=</a> <a id="40550" href="Data.Nat.Properties.html#40273" class="Function">+-distribˡ-⊓</a> <a id="40563" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="40565" href="Data.Nat.Properties.html#40403" class="Function">+-distribʳ-⊓</a>
|
||
|
||
<a id="m⊓n≤m+n"></a><a id="40579" href="Data.Nat.Properties.html#40579" class="Function">m⊓n≤m+n</a> <a id="40587" class="Symbol">:</a> <a id="40589" class="Symbol">∀</a> <a id="40591" href="Data.Nat.Properties.html#40591" class="Bound">m</a> <a id="40593" href="Data.Nat.Properties.html#40593" class="Bound">n</a> <a id="40595" class="Symbol">→</a> <a id="40597" href="Data.Nat.Properties.html#40591" class="Bound">m</a> <a id="40599" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="40601" href="Data.Nat.Properties.html#40593" class="Bound">n</a> <a id="40603" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="40605" href="Data.Nat.Properties.html#40591" class="Bound">m</a> <a id="40607" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="40609" href="Data.Nat.Properties.html#40593" class="Bound">n</a>
|
||
<a id="40611" href="Data.Nat.Properties.html#40579" class="Function">m⊓n≤m+n</a> <a id="40619" href="Data.Nat.Properties.html#40619" class="Bound">m</a> <a id="40621" href="Data.Nat.Properties.html#40621" class="Bound">n</a> <a id="40623" class="Keyword">with</a> <a id="40628" href="Algebra.Construct.NaturalChoice.MinOp.html#3051" class="Function">⊓-sel</a> <a id="40634" href="Data.Nat.Properties.html#40619" class="Bound">m</a> <a id="40636" href="Data.Nat.Properties.html#40621" class="Bound">n</a>
|
||
<a id="40638" class="Symbol">...</a> <a id="40642" class="Symbol">|</a> <a id="40644" href="Data.Sum.Base.html#793" class="InductiveConstructor">inj₁</a> <a id="40649" href="Data.Nat.Properties.html#40649" class="Bound">m⊓n≡m</a> <a id="40655" class="Keyword">rewrite</a> <a id="40663" href="Data.Nat.Properties.html#40649" class="Bound">m⊓n≡m</a> <a id="40669" class="Symbol">=</a> <a id="40671" href="Data.Nat.Properties.html#17089" class="Function">m≤m+n</a> <a id="40677" class="Bound">m</a> <a id="40679" class="Bound">n</a>
|
||
<a id="40681" class="Symbol">...</a> <a id="40685" class="Symbol">|</a> <a id="40687" href="Data.Sum.Base.html#818" class="InductiveConstructor">inj₂</a> <a id="40692" href="Data.Nat.Properties.html#40692" class="Bound">m⊓n≡n</a> <a id="40698" class="Keyword">rewrite</a> <a id="40706" href="Data.Nat.Properties.html#40692" class="Bound">m⊓n≡n</a> <a id="40712" class="Symbol">=</a> <a id="40714" href="Data.Nat.Properties.html#17172" class="Function">m≤n+m</a> <a id="40720" class="Bound">n</a> <a id="40722" class="Bound">m</a>
|
||
|
||
<a id="40725" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="40798" class="Comment">-- Other properties of _⊓_ and _*_</a>
|
||
|
||
<a id="*-distribˡ-⊓"></a><a id="40834" href="Data.Nat.Properties.html#40834" class="Function">*-distribˡ-⊓</a> <a id="40847" class="Symbol">:</a> <a id="40849" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a> <a id="40853" href="Algebra.Definitions.html#2236" class="Function Operator">DistributesOverˡ</a> <a id="40870" href="Data.Nat.Base.html#3166" class="Function Operator">_⊓_</a>
|
||
<a id="40874" href="Data.Nat.Properties.html#40834" class="Function">*-distribˡ-⊓</a> <a id="40887" href="Data.Nat.Properties.html#40887" class="Bound">m</a> <a id="40889" class="Number">0</a> <a id="40891" href="Data.Nat.Properties.html#40891" class="Bound">o</a> <a id="40893" class="Symbol">=</a> <a id="40895" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="40912" href="Data.Nat.Properties.html#40887" class="Bound">m</a> <a id="40914" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="40916" class="Symbol">(</a><a id="40917" class="Number">0</a> <a id="40919" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="40921" href="Data.Nat.Properties.html#40891" class="Bound">o</a><a id="40922" class="Symbol">)</a> <a id="40938" href="Relation.Binary.Reasoning.Base.Triple.html#5032" class="Function Operator">≡⟨⟩</a>
|
||
<a id="40944" href="Data.Nat.Properties.html#40887" class="Bound">m</a> <a id="40946" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="40948" class="Number">0</a> <a id="40970" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="40973" href="Data.Nat.Properties.html#20239" class="Function">*-zeroʳ</a> <a id="40981" href="Data.Nat.Properties.html#40887" class="Bound">m</a> <a id="40983" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="40987" class="Number">0</a> <a id="41013" href="Relation.Binary.Reasoning.Base.Triple.html#5032" class="Function Operator">≡⟨⟩</a>
|
||
<a id="41019" class="Number">0</a> <a id="41021" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="41023" class="Symbol">(</a><a id="41024" href="Data.Nat.Properties.html#40887" class="Bound">m</a> <a id="41026" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="41028" href="Data.Nat.Properties.html#40891" class="Bound">o</a><a id="41029" class="Symbol">)</a> <a id="41045" href="Relation.Binary.Reasoning.Base.Triple.html#4879" class="Function">≡˘⟨</a> <a id="41049" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="41054" class="Symbol">(</a><a id="41055" href="Data.Nat.Base.html#3166" class="Function Operator">_⊓</a> <a id="41058" class="Symbol">(</a><a id="41059" href="Data.Nat.Properties.html#40887" class="Bound">m</a> <a id="41061" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="41063" href="Data.Nat.Properties.html#40891" class="Bound">o</a><a id="41064" class="Symbol">))</a> <a id="41067" class="Symbol">(</a><a id="41068" href="Data.Nat.Properties.html#20239" class="Function">*-zeroʳ</a> <a id="41076" href="Data.Nat.Properties.html#40887" class="Bound">m</a><a id="41077" class="Symbol">)</a> <a id="41079" href="Relation.Binary.Reasoning.Base.Triple.html#4879" class="Function">⟩</a>
|
||
<a id="41083" class="Symbol">(</a><a id="41084" href="Data.Nat.Properties.html#40887" class="Bound">m</a> <a id="41086" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="41088" class="Number">0</a><a id="41089" class="Symbol">)</a> <a id="41091" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="41093" class="Symbol">(</a><a id="41094" href="Data.Nat.Properties.html#40887" class="Bound">m</a> <a id="41096" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="41098" href="Data.Nat.Properties.html#40891" class="Bound">o</a><a id="41099" class="Symbol">)</a> <a id="41109" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
<a id="41111" href="Data.Nat.Properties.html#40834" class="Function">*-distribˡ-⊓</a> <a id="41124" href="Data.Nat.Properties.html#41124" class="Bound">m</a> <a id="41126" class="Symbol">(</a><a id="41127" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="41131" href="Data.Nat.Properties.html#41131" class="Bound">n</a><a id="41132" class="Symbol">)</a> <a id="41134" class="Number">0</a> <a id="41136" class="Symbol">=</a> <a id="41138" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="41155" href="Data.Nat.Properties.html#41124" class="Bound">m</a> <a id="41157" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="41159" class="Symbol">(</a><a id="41160" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="41164" href="Data.Nat.Properties.html#41131" class="Bound">n</a> <a id="41166" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="41168" class="Number">0</a><a id="41169" class="Symbol">)</a> <a id="41181" href="Relation.Binary.Reasoning.Base.Triple.html#5032" class="Function Operator">≡⟨⟩</a>
|
||
<a id="41187" href="Data.Nat.Properties.html#41124" class="Bound">m</a> <a id="41189" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="41191" class="Number">0</a> <a id="41213" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="41216" href="Data.Nat.Properties.html#20239" class="Function">*-zeroʳ</a> <a id="41224" href="Data.Nat.Properties.html#41124" class="Bound">m</a> <a id="41226" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="41230" class="Number">0</a> <a id="41256" href="Relation.Binary.Reasoning.Base.Triple.html#4879" class="Function">≡˘⟨</a> <a id="41260" href="Data.Nat.Properties.html#38590" class="Function">⊓-zeroʳ</a> <a id="41268" class="Symbol">(</a><a id="41269" href="Data.Nat.Properties.html#41124" class="Bound">m</a> <a id="41271" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="41273" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="41277" href="Data.Nat.Properties.html#41131" class="Bound">n</a><a id="41278" class="Symbol">)</a> <a id="41280" href="Relation.Binary.Reasoning.Base.Triple.html#4879" class="Function">⟩</a>
|
||
<a id="41284" class="Symbol">(</a><a id="41285" href="Data.Nat.Properties.html#41124" class="Bound">m</a> <a id="41287" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="41289" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="41293" href="Data.Nat.Properties.html#41131" class="Bound">n</a><a id="41294" class="Symbol">)</a> <a id="41296" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="41298" class="Number">0</a> <a id="41310" href="Relation.Binary.Reasoning.Base.Triple.html#4879" class="Function">≡˘⟨</a> <a id="41314" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="41319" class="Symbol">(</a><a id="41320" href="Data.Nat.Properties.html#41124" class="Bound">m</a> <a id="41322" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="41324" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="41328" href="Data.Nat.Properties.html#41131" class="Bound">n</a> <a id="41330" href="Data.Nat.Base.html#3166" class="Function Operator">⊓_</a><a id="41332" class="Symbol">)</a> <a id="41334" class="Symbol">(</a><a id="41335" href="Data.Nat.Properties.html#20239" class="Function">*-zeroʳ</a> <a id="41343" href="Data.Nat.Properties.html#41124" class="Bound">m</a><a id="41344" class="Symbol">)</a> <a id="41346" href="Relation.Binary.Reasoning.Base.Triple.html#4879" class="Function">⟩</a>
|
||
<a id="41350" class="Symbol">(</a><a id="41351" href="Data.Nat.Properties.html#41124" class="Bound">m</a> <a id="41353" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="41355" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="41359" href="Data.Nat.Properties.html#41131" class="Bound">n</a><a id="41360" class="Symbol">)</a> <a id="41362" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="41364" class="Symbol">(</a><a id="41365" href="Data.Nat.Properties.html#41124" class="Bound">m</a> <a id="41367" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="41369" class="Number">0</a><a id="41370" class="Symbol">)</a> <a id="41376" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
<a id="41378" href="Data.Nat.Properties.html#40834" class="Function">*-distribˡ-⊓</a> <a id="41391" href="Data.Nat.Properties.html#41391" class="Bound">m</a> <a id="41393" class="Symbol">(</a><a id="41394" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="41398" href="Data.Nat.Properties.html#41398" class="Bound">n</a><a id="41399" class="Symbol">)</a> <a id="41401" class="Symbol">(</a><a id="41402" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="41406" href="Data.Nat.Properties.html#41406" class="Bound">o</a><a id="41407" class="Symbol">)</a> <a id="41409" class="Symbol">=</a> <a id="41411" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="41428" href="Data.Nat.Properties.html#41391" class="Bound">m</a> <a id="41430" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="41432" class="Symbol">(</a><a id="41433" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="41437" href="Data.Nat.Properties.html#41398" class="Bound">n</a> <a id="41439" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="41441" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="41445" href="Data.Nat.Properties.html#41406" class="Bound">o</a><a id="41446" class="Symbol">)</a> <a id="41454" href="Relation.Binary.Reasoning.Base.Triple.html#5032" class="Function Operator">≡⟨⟩</a>
|
||
<a id="41460" href="Data.Nat.Properties.html#41391" class="Bound">m</a> <a id="41462" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="41464" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="41468" class="Symbol">(</a><a id="41469" href="Data.Nat.Properties.html#41398" class="Bound">n</a> <a id="41471" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="41473" href="Data.Nat.Properties.html#41406" class="Bound">o</a><a id="41474" class="Symbol">)</a> <a id="41486" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="41489" href="Data.Nat.Properties.html#19391" class="Function">*-suc</a> <a id="41495" href="Data.Nat.Properties.html#41391" class="Bound">m</a> <a id="41497" class="Symbol">(</a><a id="41498" href="Data.Nat.Properties.html#41398" class="Bound">n</a> <a id="41500" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="41502" href="Data.Nat.Properties.html#41406" class="Bound">o</a><a id="41503" class="Symbol">)</a> <a id="41505" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="41509" href="Data.Nat.Properties.html#41391" class="Bound">m</a> <a id="41511" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="41513" href="Data.Nat.Properties.html#41391" class="Bound">m</a> <a id="41515" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="41517" class="Symbol">(</a><a id="41518" href="Data.Nat.Properties.html#41398" class="Bound">n</a> <a id="41520" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="41522" href="Data.Nat.Properties.html#41406" class="Bound">o</a><a id="41523" class="Symbol">)</a> <a id="41535" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="41538" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="41543" class="Symbol">(</a><a id="41544" href="Data.Nat.Properties.html#41391" class="Bound">m</a> <a id="41546" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+_</a><a id="41548" class="Symbol">)</a> <a id="41550" class="Symbol">(</a><a id="41551" href="Data.Nat.Properties.html#40834" class="Function">*-distribˡ-⊓</a> <a id="41564" href="Data.Nat.Properties.html#41391" class="Bound">m</a> <a id="41566" href="Data.Nat.Properties.html#41398" class="Bound">n</a> <a id="41568" href="Data.Nat.Properties.html#41406" class="Bound">o</a><a id="41569" class="Symbol">)</a> <a id="41571" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="41575" href="Data.Nat.Properties.html#41391" class="Bound">m</a> <a id="41577" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="41579" class="Symbol">(</a><a id="41580" href="Data.Nat.Properties.html#41391" class="Bound">m</a> <a id="41582" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="41584" href="Data.Nat.Properties.html#41398" class="Bound">n</a><a id="41585" class="Symbol">)</a> <a id="41587" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="41589" class="Symbol">(</a><a id="41590" href="Data.Nat.Properties.html#41391" class="Bound">m</a> <a id="41592" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="41594" href="Data.Nat.Properties.html#41406" class="Bound">o</a><a id="41595" class="Symbol">)</a> <a id="41601" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="41604" href="Data.Nat.Properties.html#40273" class="Function">+-distribˡ-⊓</a> <a id="41617" href="Data.Nat.Properties.html#41391" class="Bound">m</a> <a id="41619" class="Symbol">(</a><a id="41620" href="Data.Nat.Properties.html#41391" class="Bound">m</a> <a id="41622" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="41624" href="Data.Nat.Properties.html#41398" class="Bound">n</a><a id="41625" class="Symbol">)</a> <a id="41627" class="Symbol">(</a><a id="41628" href="Data.Nat.Properties.html#41391" class="Bound">m</a> <a id="41630" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="41632" href="Data.Nat.Properties.html#41406" class="Bound">o</a><a id="41633" class="Symbol">)</a> <a id="41635" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="41639" class="Symbol">(</a><a id="41640" href="Data.Nat.Properties.html#41391" class="Bound">m</a> <a id="41642" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="41644" href="Data.Nat.Properties.html#41391" class="Bound">m</a> <a id="41646" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="41648" href="Data.Nat.Properties.html#41398" class="Bound">n</a><a id="41649" class="Symbol">)</a> <a id="41651" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="41653" class="Symbol">(</a><a id="41654" href="Data.Nat.Properties.html#41391" class="Bound">m</a> <a id="41656" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="41658" href="Data.Nat.Properties.html#41391" class="Bound">m</a> <a id="41660" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="41662" href="Data.Nat.Properties.html#41406" class="Bound">o</a><a id="41663" class="Symbol">)</a> <a id="41665" href="Relation.Binary.Reasoning.Base.Triple.html#4879" class="Function">≡˘⟨</a> <a id="41669" href="Relation.Binary.PropositionalEquality.Core.html#1376" class="Function">cong₂</a> <a id="41675" href="Data.Nat.Base.html#3166" class="Function Operator">_⊓_</a> <a id="41679" class="Symbol">(</a><a id="41680" href="Data.Nat.Properties.html#19391" class="Function">*-suc</a> <a id="41686" href="Data.Nat.Properties.html#41391" class="Bound">m</a> <a id="41688" href="Data.Nat.Properties.html#41398" class="Bound">n</a><a id="41689" class="Symbol">)</a> <a id="41691" class="Symbol">(</a><a id="41692" href="Data.Nat.Properties.html#19391" class="Function">*-suc</a> <a id="41698" href="Data.Nat.Properties.html#41391" class="Bound">m</a> <a id="41700" href="Data.Nat.Properties.html#41406" class="Bound">o</a><a id="41701" class="Symbol">)</a> <a id="41703" href="Relation.Binary.Reasoning.Base.Triple.html#4879" class="Function">⟩</a>
|
||
<a id="41707" class="Symbol">(</a><a id="41708" href="Data.Nat.Properties.html#41391" class="Bound">m</a> <a id="41710" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="41712" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="41716" href="Data.Nat.Properties.html#41398" class="Bound">n</a><a id="41717" class="Symbol">)</a> <a id="41719" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="41721" class="Symbol">(</a><a id="41722" href="Data.Nat.Properties.html#41391" class="Bound">m</a> <a id="41724" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="41726" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="41730" href="Data.Nat.Properties.html#41406" class="Bound">o</a><a id="41731" class="Symbol">)</a> <a id="41733" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
|
||
<a id="*-distribʳ-⊓"></a><a id="41736" href="Data.Nat.Properties.html#41736" class="Function">*-distribʳ-⊓</a> <a id="41749" class="Symbol">:</a> <a id="41751" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a> <a id="41755" href="Algebra.Definitions.html#2355" class="Function Operator">DistributesOverʳ</a> <a id="41772" href="Data.Nat.Base.html#3166" class="Function Operator">_⊓_</a>
|
||
<a id="41776" href="Data.Nat.Properties.html#41736" class="Function">*-distribʳ-⊓</a> <a id="41789" class="Symbol">=</a> <a id="41791" href="Algebra.Consequences.Propositional.html#2691" class="Function">comm+distrˡ⇒distrʳ</a> <a id="41810" href="Data.Nat.Properties.html#20365" class="Function">*-comm</a> <a id="41817" href="Data.Nat.Properties.html#40834" class="Function">*-distribˡ-⊓</a>
|
||
|
||
<a id="*-distrib-⊓"></a><a id="41831" href="Data.Nat.Properties.html#41831" class="Function">*-distrib-⊓</a> <a id="41843" class="Symbol">:</a> <a id="41845" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a> <a id="41849" href="Algebra.Definitions.html#2474" class="Function Operator">DistributesOver</a> <a id="41865" href="Data.Nat.Base.html#3166" class="Function Operator">_⊓_</a>
|
||
<a id="41869" href="Data.Nat.Properties.html#41831" class="Function">*-distrib-⊓</a> <a id="41881" class="Symbol">=</a> <a id="41883" href="Data.Nat.Properties.html#40834" class="Function">*-distribˡ-⊓</a> <a id="41896" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="41898" href="Data.Nat.Properties.html#41736" class="Function">*-distribʳ-⊓</a>
|
||
|
||
<a id="41912" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="41985" class="Comment">-- Properties of _∸_</a>
|
||
<a id="42006" class="Comment">------------------------------------------------------------------------</a>
|
||
|
||
<a id="0∸n≡0"></a><a id="42080" href="Data.Nat.Properties.html#42080" class="Function">0∸n≡0</a> <a id="42086" class="Symbol">:</a> <a id="42088" href="Algebra.Definitions.html#1511" class="Function">LeftZero</a> <a id="42097" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="42102" href="Data.Nat.Base.html#2883" class="Primitive Operator">_∸_</a>
|
||
<a id="42106" href="Data.Nat.Properties.html#42080" class="Function">0∸n≡0</a> <a id="42112" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="42120" class="Symbol">=</a> <a id="42122" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="42127" href="Data.Nat.Properties.html#42080" class="Function">0∸n≡0</a> <a id="42133" class="Symbol">(</a><a id="42134" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="42138" class="Symbol">_)</a> <a id="42141" class="Symbol">=</a> <a id="42143" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
|
||
<a id="n∸n≡0"></a><a id="42149" href="Data.Nat.Properties.html#42149" class="Function">n∸n≡0</a> <a id="42155" class="Symbol">:</a> <a id="42157" class="Symbol">∀</a> <a id="42159" href="Data.Nat.Properties.html#42159" class="Bound">n</a> <a id="42161" class="Symbol">→</a> <a id="42163" href="Data.Nat.Properties.html#42159" class="Bound">n</a> <a id="42165" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="42167" href="Data.Nat.Properties.html#42159" class="Bound">n</a> <a id="42169" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="42171" class="Number">0</a>
|
||
<a id="42173" href="Data.Nat.Properties.html#42149" class="Function">n∸n≡0</a> <a id="42179" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="42187" class="Symbol">=</a> <a id="42189" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="42194" href="Data.Nat.Properties.html#42149" class="Function">n∸n≡0</a> <a id="42200" class="Symbol">(</a><a id="42201" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="42205" href="Data.Nat.Properties.html#42205" class="Bound">n</a><a id="42206" class="Symbol">)</a> <a id="42208" class="Symbol">=</a> <a id="42210" href="Data.Nat.Properties.html#42149" class="Function">n∸n≡0</a> <a id="42216" href="Data.Nat.Properties.html#42205" class="Bound">n</a>
|
||
|
||
<a id="42219" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="42292" class="Comment">-- Properties of _∸_ and pred</a>
|
||
|
||
<a id="pred[m∸n]≡m∸[1+n]"></a><a id="42323" href="Data.Nat.Properties.html#42323" class="Function">pred[m∸n]≡m∸[1+n]</a> <a id="42341" class="Symbol">:</a> <a id="42343" class="Symbol">∀</a> <a id="42345" href="Data.Nat.Properties.html#42345" class="Bound">m</a> <a id="42347" href="Data.Nat.Properties.html#42347" class="Bound">n</a> <a id="42349" class="Symbol">→</a> <a id="42351" href="Data.Nat.Base.html#2889" class="Function">pred</a> <a id="42356" class="Symbol">(</a><a id="42357" href="Data.Nat.Properties.html#42345" class="Bound">m</a> <a id="42359" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="42361" href="Data.Nat.Properties.html#42347" class="Bound">n</a><a id="42362" class="Symbol">)</a> <a id="42364" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="42366" href="Data.Nat.Properties.html#42345" class="Bound">m</a> <a id="42368" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="42370" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="42374" href="Data.Nat.Properties.html#42347" class="Bound">n</a>
|
||
<a id="42376" href="Data.Nat.Properties.html#42323" class="Function">pred[m∸n]≡m∸[1+n]</a> <a id="42394" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="42402" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="42410" class="Symbol">=</a> <a id="42412" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="42417" href="Data.Nat.Properties.html#42323" class="Function">pred[m∸n]≡m∸[1+n]</a> <a id="42435" class="Symbol">(</a><a id="42436" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="42440" href="Data.Nat.Properties.html#42440" class="Bound">m</a><a id="42441" class="Symbol">)</a> <a id="42443" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="42451" class="Symbol">=</a> <a id="42453" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="42458" href="Data.Nat.Properties.html#42323" class="Function">pred[m∸n]≡m∸[1+n]</a> <a id="42476" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="42481" class="Symbol">(</a><a id="42482" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="42486" href="Data.Nat.Properties.html#42486" class="Bound">n</a><a id="42487" class="Symbol">)</a> <a id="42492" class="Symbol">=</a> <a id="42494" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="42499" href="Data.Nat.Properties.html#42323" class="Function">pred[m∸n]≡m∸[1+n]</a> <a id="42517" class="Symbol">(</a><a id="42518" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="42522" href="Data.Nat.Properties.html#42522" class="Bound">m</a><a id="42523" class="Symbol">)</a> <a id="42525" class="Symbol">(</a><a id="42526" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="42530" href="Data.Nat.Properties.html#42530" class="Bound">n</a><a id="42531" class="Symbol">)</a> <a id="42533" class="Symbol">=</a> <a id="42535" href="Data.Nat.Properties.html#42323" class="Function">pred[m∸n]≡m∸[1+n]</a> <a id="42553" href="Data.Nat.Properties.html#42522" class="Bound">m</a> <a id="42555" href="Data.Nat.Properties.html#42530" class="Bound">n</a>
|
||
|
||
<a id="42558" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="42631" class="Comment">-- Properties of _∸_ and _≤_/_<_</a>
|
||
|
||
<a id="m∸n≤m"></a><a id="42665" href="Data.Nat.Properties.html#42665" class="Function">m∸n≤m</a> <a id="42671" class="Symbol">:</a> <a id="42673" class="Symbol">∀</a> <a id="42675" href="Data.Nat.Properties.html#42675" class="Bound">m</a> <a id="42677" href="Data.Nat.Properties.html#42677" class="Bound">n</a> <a id="42679" class="Symbol">→</a> <a id="42681" href="Data.Nat.Properties.html#42675" class="Bound">m</a> <a id="42683" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="42685" href="Data.Nat.Properties.html#42677" class="Bound">n</a> <a id="42687" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="42689" href="Data.Nat.Properties.html#42675" class="Bound">m</a>
|
||
<a id="42691" href="Data.Nat.Properties.html#42665" class="Function">m∸n≤m</a> <a id="42697" href="Data.Nat.Properties.html#42697" class="Bound">n</a> <a id="42705" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="42713" class="Symbol">=</a> <a id="42715" href="Data.Nat.Properties.html#4574" class="Function">≤-refl</a>
|
||
<a id="42722" href="Data.Nat.Properties.html#42665" class="Function">m∸n≤m</a> <a id="42728" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="42736" class="Symbol">(</a><a id="42737" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="42741" href="Data.Nat.Properties.html#42741" class="Bound">n</a><a id="42742" class="Symbol">)</a> <a id="42744" class="Symbol">=</a> <a id="42746" href="Data.Nat.Properties.html#4574" class="Function">≤-refl</a>
|
||
<a id="42753" href="Data.Nat.Properties.html#42665" class="Function">m∸n≤m</a> <a id="42759" class="Symbol">(</a><a id="42760" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="42764" href="Data.Nat.Properties.html#42764" class="Bound">m</a><a id="42765" class="Symbol">)</a> <a id="42767" class="Symbol">(</a><a id="42768" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="42772" href="Data.Nat.Properties.html#42772" class="Bound">n</a><a id="42773" class="Symbol">)</a> <a id="42775" class="Symbol">=</a> <a id="42777" href="Data.Nat.Properties.html#4757" class="Function">≤-trans</a> <a id="42785" class="Symbol">(</a><a id="42786" href="Data.Nat.Properties.html#42665" class="Function">m∸n≤m</a> <a id="42792" href="Data.Nat.Properties.html#42764" class="Bound">m</a> <a id="42794" href="Data.Nat.Properties.html#42772" class="Bound">n</a><a id="42795" class="Symbol">)</a> <a id="42797" class="Symbol">(</a><a id="42798" href="Data.Nat.Properties.html#7288" class="Function">n≤1+n</a> <a id="42804" href="Data.Nat.Properties.html#42764" class="Bound">m</a><a id="42805" class="Symbol">)</a>
|
||
|
||
<a id="m≮m∸n"></a><a id="42808" href="Data.Nat.Properties.html#42808" class="Function">m≮m∸n</a> <a id="42814" class="Symbol">:</a> <a id="42816" class="Symbol">∀</a> <a id="42818" href="Data.Nat.Properties.html#42818" class="Bound">m</a> <a id="42820" href="Data.Nat.Properties.html#42820" class="Bound">n</a> <a id="42822" class="Symbol">→</a> <a id="42824" href="Data.Nat.Properties.html#42818" class="Bound">m</a> <a id="42826" href="Data.Nat.Base.html#1780" class="Function Operator">≮</a> <a id="42828" href="Data.Nat.Properties.html#42818" class="Bound">m</a> <a id="42830" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="42832" href="Data.Nat.Properties.html#42820" class="Bound">n</a>
|
||
<a id="42834" href="Data.Nat.Properties.html#42808" class="Function">m≮m∸n</a> <a id="42840" href="Data.Nat.Properties.html#42840" class="Bound">m</a> <a id="42848" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="42856" class="Symbol">=</a> <a id="42858" href="Data.Nat.Properties.html#11131" class="Function">n≮n</a> <a id="42862" href="Data.Nat.Properties.html#42840" class="Bound">m</a>
|
||
<a id="42864" href="Data.Nat.Properties.html#42808" class="Function">m≮m∸n</a> <a id="42870" class="Symbol">(</a><a id="42871" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="42875" href="Data.Nat.Properties.html#42875" class="Bound">m</a><a id="42876" class="Symbol">)</a> <a id="42878" class="Symbol">(</a><a id="42879" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="42883" href="Data.Nat.Properties.html#42883" class="Bound">n</a><a id="42884" class="Symbol">)</a> <a id="42886" class="Symbol">=</a> <a id="42888" href="Data.Nat.Properties.html#42808" class="Function">m≮m∸n</a> <a id="42894" href="Data.Nat.Properties.html#42875" class="Bound">m</a> <a id="42896" href="Data.Nat.Properties.html#42883" class="Bound">n</a> <a id="42898" href="Function.Base.html#1040" class="Function Operator">∘</a> <a id="42900" href="Data.Nat.Properties.html#4757" class="Function">≤-trans</a> <a id="42908" class="Symbol">(</a><a id="42909" href="Data.Nat.Properties.html#7288" class="Function">n≤1+n</a> <a id="42915" class="Symbol">(</a><a id="42916" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="42920" href="Data.Nat.Properties.html#42875" class="Bound">m</a><a id="42921" class="Symbol">))</a>
|
||
|
||
<a id="1+m≢m∸n"></a><a id="42925" href="Data.Nat.Properties.html#42925" class="Function">1+m≢m∸n</a> <a id="42933" class="Symbol">:</a> <a id="42935" class="Symbol">∀</a> <a id="42937" class="Symbol">{</a><a id="42938" href="Data.Nat.Properties.html#42938" class="Bound">m</a><a id="42939" class="Symbol">}</a> <a id="42941" href="Data.Nat.Properties.html#42941" class="Bound">n</a> <a id="42943" class="Symbol">→</a> <a id="42945" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="42949" href="Data.Nat.Properties.html#42938" class="Bound">m</a> <a id="42951" href="Relation.Binary.PropositionalEquality.Core.html#839" class="Function Operator">≢</a> <a id="42953" href="Data.Nat.Properties.html#42938" class="Bound">m</a> <a id="42955" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="42957" href="Data.Nat.Properties.html#42941" class="Bound">n</a>
|
||
<a id="42959" href="Data.Nat.Properties.html#42925" class="Function">1+m≢m∸n</a> <a id="42967" class="Symbol">{</a><a id="42968" href="Data.Nat.Properties.html#42968" class="Bound">m</a><a id="42969" class="Symbol">}</a> <a id="42971" href="Data.Nat.Properties.html#42971" class="Bound">n</a> <a id="42973" href="Data.Nat.Properties.html#42973" class="Bound">eq</a> <a id="42976" class="Symbol">=</a> <a id="42978" href="Data.Nat.Properties.html#42808" class="Function">m≮m∸n</a> <a id="42984" href="Data.Nat.Properties.html#42968" class="Bound">m</a> <a id="42986" href="Data.Nat.Properties.html#42971" class="Bound">n</a> <a id="42988" class="Symbol">(</a><a id="42989" href="Data.Nat.Properties.html#4468" class="Function">≤-reflexive</a> <a id="43001" href="Data.Nat.Properties.html#42973" class="Bound">eq</a><a id="43003" class="Symbol">)</a>
|
||
|
||
<a id="∸-mono"></a><a id="43006" href="Data.Nat.Properties.html#43006" class="Function">∸-mono</a> <a id="43013" class="Symbol">:</a> <a id="43015" href="Data.Nat.Base.html#2883" class="Primitive Operator">_∸_</a> <a id="43019" href="Relation.Binary.Core.html#1698" class="Function Operator">Preserves₂</a> <a id="43030" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="43034" href="Relation.Binary.Core.html#1698" class="Function Operator">⟶</a> <a id="43036" href="Data.Nat.Base.html#1688" class="Function Operator">_≥_</a> <a id="43040" href="Relation.Binary.Core.html#1698" class="Function Operator">⟶</a> <a id="43042" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="43046" href="Data.Nat.Properties.html#43006" class="Function">∸-mono</a> <a id="43053" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="43065" class="Symbol">(</a><a id="43066" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="43070" href="Data.Nat.Properties.html#43070" class="Bound">n₁≥n₂</a><a id="43075" class="Symbol">)</a> <a id="43080" class="Symbol">=</a> <a id="43082" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="43086" href="Data.Nat.Properties.html#43006" class="Function">∸-mono</a> <a id="43093" class="Symbol">(</a><a id="43094" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="43098" href="Data.Nat.Properties.html#43098" class="Bound">m₁≤m₂</a><a id="43103" class="Symbol">)</a> <a id="43105" class="Symbol">(</a><a id="43106" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="43110" href="Data.Nat.Properties.html#43110" class="Bound">n₁≥n₂</a><a id="43115" class="Symbol">)</a> <a id="43120" class="Symbol">=</a> <a id="43122" href="Data.Nat.Properties.html#43006" class="Function">∸-mono</a> <a id="43129" href="Data.Nat.Properties.html#43098" class="Bound">m₁≤m₂</a> <a id="43135" href="Data.Nat.Properties.html#43110" class="Bound">n₁≥n₂</a>
|
||
<a id="43141" href="Data.Nat.Properties.html#43006" class="CatchallClause Function">∸-mono</a><a id="43147" class="CatchallClause"> </a><a id="43148" href="Data.Nat.Properties.html#43148" class="CatchallClause Bound">m₁≤m₂</a><a id="43153" class="CatchallClause"> </a><a id="43160" class="CatchallClause Symbol">(</a><a id="43161" href="Data.Nat.Base.html#1567" class="CatchallClause InductiveConstructor">z≤n</a><a id="43164" class="CatchallClause"> </a><a id="43165" class="CatchallClause Symbol">{</a><a id="43166" class="CatchallClause Argument">n</a><a id="43167" class="CatchallClause"> </a><a id="43168" class="CatchallClause Symbol">=</a><a id="43169" class="CatchallClause"> </a><a id="43170" href="Data.Nat.Properties.html#43170" class="CatchallClause Bound">n₁</a><a id="43172" class="CatchallClause Symbol">})</a> <a id="43175" class="Symbol">=</a> <a id="43177" href="Data.Nat.Properties.html#4757" class="Function">≤-trans</a> <a id="43185" class="Symbol">(</a><a id="43186" href="Data.Nat.Properties.html#42665" class="Function">m∸n≤m</a> <a id="43192" class="Symbol">_</a> <a id="43194" href="Data.Nat.Properties.html#43170" class="Bound">n₁</a><a id="43196" class="Symbol">)</a> <a id="43198" href="Data.Nat.Properties.html#43148" class="Bound">m₁≤m₂</a>
|
||
|
||
<a id="∸-monoˡ-≤"></a><a id="43205" href="Data.Nat.Properties.html#43205" class="Function">∸-monoˡ-≤</a> <a id="43215" class="Symbol">:</a> <a id="43217" class="Symbol">∀</a> <a id="43219" class="Symbol">{</a><a id="43220" href="Data.Nat.Properties.html#43220" class="Bound">m</a> <a id="43222" href="Data.Nat.Properties.html#43222" class="Bound">n</a><a id="43223" class="Symbol">}</a> <a id="43225" href="Data.Nat.Properties.html#43225" class="Bound">o</a> <a id="43227" class="Symbol">→</a> <a id="43229" href="Data.Nat.Properties.html#43220" class="Bound">m</a> <a id="43231" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="43233" href="Data.Nat.Properties.html#43222" class="Bound">n</a> <a id="43235" class="Symbol">→</a> <a id="43237" href="Data.Nat.Properties.html#43220" class="Bound">m</a> <a id="43239" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="43241" href="Data.Nat.Properties.html#43225" class="Bound">o</a> <a id="43243" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="43245" href="Data.Nat.Properties.html#43222" class="Bound">n</a> <a id="43247" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="43249" href="Data.Nat.Properties.html#43225" class="Bound">o</a>
|
||
<a id="43251" href="Data.Nat.Properties.html#43205" class="Function">∸-monoˡ-≤</a> <a id="43261" href="Data.Nat.Properties.html#43261" class="Bound">o</a> <a id="43263" href="Data.Nat.Properties.html#43263" class="Bound">m≤n</a> <a id="43267" class="Symbol">=</a> <a id="43269" href="Data.Nat.Properties.html#43006" class="Function">∸-mono</a> <a id="43276" class="Symbol">{</a><a id="43277" class="Argument">u</a> <a id="43279" class="Symbol">=</a> <a id="43281" href="Data.Nat.Properties.html#43261" class="Bound">o</a><a id="43282" class="Symbol">}</a> <a id="43284" href="Data.Nat.Properties.html#43263" class="Bound">m≤n</a> <a id="43288" href="Data.Nat.Properties.html#4574" class="Function">≤-refl</a>
|
||
|
||
<a id="∸-monoʳ-≤"></a><a id="43296" href="Data.Nat.Properties.html#43296" class="Function">∸-monoʳ-≤</a> <a id="43306" class="Symbol">:</a> <a id="43308" class="Symbol">∀</a> <a id="43310" class="Symbol">{</a><a id="43311" href="Data.Nat.Properties.html#43311" class="Bound">m</a> <a id="43313" href="Data.Nat.Properties.html#43313" class="Bound">n</a><a id="43314" class="Symbol">}</a> <a id="43316" href="Data.Nat.Properties.html#43316" class="Bound">o</a> <a id="43318" class="Symbol">→</a> <a id="43320" href="Data.Nat.Properties.html#43311" class="Bound">m</a> <a id="43322" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="43324" href="Data.Nat.Properties.html#43313" class="Bound">n</a> <a id="43326" class="Symbol">→</a> <a id="43328" href="Data.Nat.Properties.html#43316" class="Bound">o</a> <a id="43330" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="43332" href="Data.Nat.Properties.html#43311" class="Bound">m</a> <a id="43334" href="Data.Nat.Base.html#1688" class="Function Operator">≥</a> <a id="43336" href="Data.Nat.Properties.html#43316" class="Bound">o</a> <a id="43338" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="43340" href="Data.Nat.Properties.html#43313" class="Bound">n</a>
|
||
<a id="43342" href="Data.Nat.Properties.html#43296" class="Function">∸-monoʳ-≤</a> <a id="43352" class="Symbol">_</a> <a id="43354" href="Data.Nat.Properties.html#43354" class="Bound">m≤n</a> <a id="43358" class="Symbol">=</a> <a id="43360" href="Data.Nat.Properties.html#43006" class="Function">∸-mono</a> <a id="43367" href="Data.Nat.Properties.html#4574" class="Function">≤-refl</a> <a id="43374" href="Data.Nat.Properties.html#43354" class="Bound">m≤n</a>
|
||
|
||
<a id="∸-monoʳ-<"></a><a id="43379" href="Data.Nat.Properties.html#43379" class="Function">∸-monoʳ-<</a> <a id="43389" class="Symbol">:</a> <a id="43391" class="Symbol">∀</a> <a id="43393" class="Symbol">{</a><a id="43394" href="Data.Nat.Properties.html#43394" class="Bound">m</a> <a id="43396" href="Data.Nat.Properties.html#43396" class="Bound">n</a> <a id="43398" href="Data.Nat.Properties.html#43398" class="Bound">o</a><a id="43399" class="Symbol">}</a> <a id="43401" class="Symbol">→</a> <a id="43403" href="Data.Nat.Properties.html#43398" class="Bound">o</a> <a id="43405" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="43407" href="Data.Nat.Properties.html#43396" class="Bound">n</a> <a id="43409" class="Symbol">→</a> <a id="43411" href="Data.Nat.Properties.html#43396" class="Bound">n</a> <a id="43413" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="43415" href="Data.Nat.Properties.html#43394" class="Bound">m</a> <a id="43417" class="Symbol">→</a> <a id="43419" href="Data.Nat.Properties.html#43394" class="Bound">m</a> <a id="43421" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="43423" href="Data.Nat.Properties.html#43396" class="Bound">n</a> <a id="43425" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="43427" href="Data.Nat.Properties.html#43394" class="Bound">m</a> <a id="43429" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="43431" href="Data.Nat.Properties.html#43398" class="Bound">o</a>
|
||
<a id="43433" href="Data.Nat.Properties.html#43379" class="Function">∸-monoʳ-<</a> <a id="43443" class="Symbol">{</a><a id="43444" class="Argument">n</a> <a id="43446" class="Symbol">=</a> <a id="43448" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="43452" href="Data.Nat.Properties.html#43452" class="Bound">n</a><a id="43453" class="Symbol">}</a> <a id="43455" class="Symbol">{</a><a id="43456" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="43460" class="Symbol">}</a> <a id="43463" class="Symbol">(</a><a id="43464" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="43468" href="Data.Nat.Properties.html#43468" class="Bound">o<n</a><a id="43471" class="Symbol">)</a> <a id="43473" class="Symbol">(</a><a id="43474" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="43478" href="Data.Nat.Properties.html#43478" class="Bound">n<m</a><a id="43481" class="Symbol">)</a> <a id="43483" class="Symbol">=</a> <a id="43485" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="43489" class="Symbol">(</a><a id="43490" href="Data.Nat.Properties.html#42665" class="Function">m∸n≤m</a> <a id="43496" class="Symbol">_</a> <a id="43498" href="Data.Nat.Properties.html#43452" class="Bound">n</a><a id="43499" class="Symbol">)</a>
|
||
<a id="43501" href="Data.Nat.Properties.html#43379" class="Function">∸-monoʳ-<</a> <a id="43511" class="Symbol">{</a><a id="43512" class="Argument">n</a> <a id="43514" class="Symbol">=</a> <a id="43516" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="43520" href="Data.Nat.Properties.html#43520" class="Bound">n</a><a id="43521" class="Symbol">}</a> <a id="43523" class="Symbol">{</a><a id="43524" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="43528" href="Data.Nat.Properties.html#43528" class="Bound">o</a><a id="43529" class="Symbol">}</a> <a id="43531" class="Symbol">(</a><a id="43532" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="43536" href="Data.Nat.Properties.html#43536" class="Bound">o<n</a><a id="43539" class="Symbol">)</a> <a id="43541" class="Symbol">(</a><a id="43542" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="43546" href="Data.Nat.Properties.html#43546" class="Bound">n<m</a><a id="43549" class="Symbol">)</a> <a id="43551" class="Symbol">=</a> <a id="43553" href="Data.Nat.Properties.html#43379" class="Function">∸-monoʳ-<</a> <a id="43563" href="Data.Nat.Properties.html#43536" class="Bound">o<n</a> <a id="43567" href="Data.Nat.Properties.html#43546" class="Bound">n<m</a>
|
||
|
||
<a id="∸-cancelʳ-≤"></a><a id="43572" href="Data.Nat.Properties.html#43572" class="Function">∸-cancelʳ-≤</a> <a id="43584" class="Symbol">:</a> <a id="43586" class="Symbol">∀</a> <a id="43588" class="Symbol">{</a><a id="43589" href="Data.Nat.Properties.html#43589" class="Bound">m</a> <a id="43591" href="Data.Nat.Properties.html#43591" class="Bound">n</a> <a id="43593" href="Data.Nat.Properties.html#43593" class="Bound">o</a><a id="43594" class="Symbol">}</a> <a id="43596" class="Symbol">→</a> <a id="43598" href="Data.Nat.Properties.html#43589" class="Bound">m</a> <a id="43600" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="43602" href="Data.Nat.Properties.html#43593" class="Bound">o</a> <a id="43604" class="Symbol">→</a> <a id="43606" href="Data.Nat.Properties.html#43593" class="Bound">o</a> <a id="43608" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="43610" href="Data.Nat.Properties.html#43591" class="Bound">n</a> <a id="43612" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="43614" href="Data.Nat.Properties.html#43593" class="Bound">o</a> <a id="43616" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="43618" href="Data.Nat.Properties.html#43589" class="Bound">m</a> <a id="43620" class="Symbol">→</a> <a id="43622" href="Data.Nat.Properties.html#43589" class="Bound">m</a> <a id="43624" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="43626" href="Data.Nat.Properties.html#43591" class="Bound">n</a>
|
||
<a id="43628" href="Data.Nat.Properties.html#43572" class="Function">∸-cancelʳ-≤</a> <a id="43640" class="Symbol">{_}</a> <a id="43648" class="Symbol">{_}</a> <a id="43656" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="43666" class="Symbol">_</a> <a id="43674" class="Symbol">=</a> <a id="43676" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="43680" href="Data.Nat.Properties.html#43572" class="Function">∸-cancelʳ-≤</a> <a id="43692" class="Symbol">{</a><a id="43693" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="43697" href="Data.Nat.Properties.html#43697" class="Bound">m</a><a id="43698" class="Symbol">}</a> <a id="43700" class="Symbol">{</a><a id="43701" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="43705" class="Symbol">}</a> <a id="43708" class="Symbol">(</a><a id="43709" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="43713" class="Symbol">_)</a> <a id="43718" href="Data.Nat.Properties.html#43718" class="Bound">o<o∸m</a> <a id="43726" class="Symbol">=</a> <a id="43728" href="Relation.Nullary.Negation.Core.html#787" class="Function">contradiction</a> <a id="43742" href="Data.Nat.Properties.html#43718" class="Bound">o<o∸m</a> <a id="43748" class="Symbol">(</a><a id="43749" href="Data.Nat.Properties.html#42808" class="Function">m≮m∸n</a> <a id="43755" class="Symbol">_</a> <a id="43757" href="Data.Nat.Properties.html#43697" class="Bound">m</a><a id="43758" class="Symbol">)</a>
|
||
<a id="43760" href="Data.Nat.Properties.html#43572" class="Function">∸-cancelʳ-≤</a> <a id="43772" class="Symbol">{</a><a id="43773" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="43777" href="Data.Nat.Properties.html#43777" class="Bound">m</a><a id="43778" class="Symbol">}</a> <a id="43780" class="Symbol">{</a><a id="43781" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="43785" href="Data.Nat.Properties.html#43785" class="Bound">n</a><a id="43786" class="Symbol">}</a> <a id="43788" class="Symbol">(</a><a id="43789" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="43793" href="Data.Nat.Properties.html#43793" class="Bound">m≤o</a><a id="43796" class="Symbol">)</a> <a id="43798" href="Data.Nat.Properties.html#43798" class="Bound">o∸n<o∸m</a> <a id="43806" class="Symbol">=</a> <a id="43808" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="43812" class="Symbol">(</a><a id="43813" href="Data.Nat.Properties.html#43572" class="Function">∸-cancelʳ-≤</a> <a id="43825" href="Data.Nat.Properties.html#43793" class="Bound">m≤o</a> <a id="43829" href="Data.Nat.Properties.html#43798" class="Bound">o∸n<o∸m</a><a id="43836" class="Symbol">)</a>
|
||
|
||
<a id="∸-cancelʳ-<"></a><a id="43839" href="Data.Nat.Properties.html#43839" class="Function">∸-cancelʳ-<</a> <a id="43851" class="Symbol">:</a> <a id="43853" class="Symbol">∀</a> <a id="43855" class="Symbol">{</a><a id="43856" href="Data.Nat.Properties.html#43856" class="Bound">m</a> <a id="43858" href="Data.Nat.Properties.html#43858" class="Bound">n</a> <a id="43860" href="Data.Nat.Properties.html#43860" class="Bound">o</a><a id="43861" class="Symbol">}</a> <a id="43863" class="Symbol">→</a> <a id="43865" href="Data.Nat.Properties.html#43860" class="Bound">o</a> <a id="43867" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="43869" href="Data.Nat.Properties.html#43856" class="Bound">m</a> <a id="43871" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="43873" href="Data.Nat.Properties.html#43860" class="Bound">o</a> <a id="43875" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="43877" href="Data.Nat.Properties.html#43858" class="Bound">n</a> <a id="43879" class="Symbol">→</a> <a id="43881" href="Data.Nat.Properties.html#43858" class="Bound">n</a> <a id="43883" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="43885" href="Data.Nat.Properties.html#43856" class="Bound">m</a>
|
||
<a id="43887" href="Data.Nat.Properties.html#43839" class="Function">∸-cancelʳ-<</a> <a id="43899" class="Symbol">{</a><a id="43900" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="43904" class="Symbol">}</a> <a id="43907" class="Symbol">{</a><a id="43908" href="Data.Nat.Properties.html#43908" class="Bound">n</a><a id="43909" class="Symbol">}</a> <a id="43915" class="Symbol">{</a><a id="43916" href="Data.Nat.Properties.html#43916" class="Bound">o</a><a id="43917" class="Symbol">}</a> <a id="43923" href="Data.Nat.Properties.html#43923" class="Bound">o<o∸n</a> <a id="43931" class="Symbol">=</a> <a id="43933" href="Relation.Nullary.Negation.Core.html#787" class="Function">contradiction</a> <a id="43947" href="Data.Nat.Properties.html#43923" class="Bound">o<o∸n</a> <a id="43953" class="Symbol">(</a><a id="43954" href="Data.Nat.Properties.html#42808" class="Function">m≮m∸n</a> <a id="43960" href="Data.Nat.Properties.html#43916" class="Bound">o</a> <a id="43962" href="Data.Nat.Properties.html#43908" class="Bound">n</a><a id="43963" class="Symbol">)</a>
|
||
<a id="43965" href="Data.Nat.Properties.html#43839" class="Function">∸-cancelʳ-<</a> <a id="43977" class="Symbol">{</a><a id="43978" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="43982" href="Data.Nat.Properties.html#43982" class="Bound">m</a><a id="43983" class="Symbol">}</a> <a id="43985" class="Symbol">{</a><a id="43986" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="43990" class="Symbol">}</a> <a id="43993" class="Symbol">{_}</a> <a id="44001" href="Data.Nat.Properties.html#44001" class="Bound">o∸n<o∸m</a> <a id="44009" class="Symbol">=</a> <a id="44011" href="Data.Nat.Properties.html#11182" class="Function">0<1+n</a>
|
||
<a id="44017" href="Data.Nat.Properties.html#43839" class="Function">∸-cancelʳ-<</a> <a id="44029" class="Symbol">{</a><a id="44030" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="44034" href="Data.Nat.Properties.html#44034" class="Bound">m</a><a id="44035" class="Symbol">}</a> <a id="44037" class="Symbol">{</a><a id="44038" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="44042" href="Data.Nat.Properties.html#44042" class="Bound">n</a><a id="44043" class="Symbol">}</a> <a id="44045" class="Symbol">{</a><a id="44046" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="44050" href="Data.Nat.Properties.html#44050" class="Bound">o</a><a id="44051" class="Symbol">}</a> <a id="44053" href="Data.Nat.Properties.html#44053" class="Bound">o∸n<o∸m</a> <a id="44061" class="Symbol">=</a> <a id="44063" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="44067" class="Symbol">(</a><a id="44068" href="Data.Nat.Properties.html#43839" class="Function">∸-cancelʳ-<</a> <a id="44080" href="Data.Nat.Properties.html#44053" class="Bound">o∸n<o∸m</a><a id="44087" class="Symbol">)</a>
|
||
|
||
<a id="∸-cancelˡ-≡"></a><a id="44090" href="Data.Nat.Properties.html#44090" class="Function">∸-cancelˡ-≡</a> <a id="44102" class="Symbol">:</a> <a id="44105" class="Symbol">∀</a> <a id="44107" class="Symbol">{</a><a id="44108" href="Data.Nat.Properties.html#44108" class="Bound">m</a> <a id="44110" href="Data.Nat.Properties.html#44110" class="Bound">n</a> <a id="44112" href="Data.Nat.Properties.html#44112" class="Bound">o</a><a id="44113" class="Symbol">}</a> <a id="44115" class="Symbol">→</a> <a id="44117" href="Data.Nat.Properties.html#44110" class="Bound">n</a> <a id="44119" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="44121" href="Data.Nat.Properties.html#44108" class="Bound">m</a> <a id="44123" class="Symbol">→</a> <a id="44125" href="Data.Nat.Properties.html#44112" class="Bound">o</a> <a id="44127" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="44129" href="Data.Nat.Properties.html#44108" class="Bound">m</a> <a id="44131" class="Symbol">→</a> <a id="44133" href="Data.Nat.Properties.html#44108" class="Bound">m</a> <a id="44135" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="44137" href="Data.Nat.Properties.html#44110" class="Bound">n</a> <a id="44139" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="44141" href="Data.Nat.Properties.html#44108" class="Bound">m</a> <a id="44143" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="44145" href="Data.Nat.Properties.html#44112" class="Bound">o</a> <a id="44147" class="Symbol">→</a> <a id="44149" href="Data.Nat.Properties.html#44110" class="Bound">n</a> <a id="44151" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="44153" href="Data.Nat.Properties.html#44112" class="Bound">o</a>
|
||
<a id="44155" href="Data.Nat.Properties.html#44090" class="Function">∸-cancelˡ-≡</a> <a id="44167" class="Symbol">{_}</a> <a id="44179" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="44189" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="44199" class="Symbol">_</a> <a id="44202" class="Symbol">=</a> <a id="44204" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="44209" href="Data.Nat.Properties.html#44090" class="Function">∸-cancelˡ-≡</a> <a id="44221" class="Symbol">{</a><a id="44222" class="Argument">o</a> <a id="44224" class="Symbol">=</a> <a id="44226" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="44230" href="Data.Nat.Properties.html#44230" class="Bound">o</a><a id="44231" class="Symbol">}</a> <a id="44233" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="44243" class="Symbol">(</a><a id="44244" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="44248" class="Symbol">_)</a> <a id="44253" href="Data.Nat.Properties.html#44253" class="Bound">eq</a> <a id="44256" class="Symbol">=</a> <a id="44258" href="Relation.Nullary.Negation.Core.html#787" class="Function">contradiction</a> <a id="44272" href="Data.Nat.Properties.html#44253" class="Bound">eq</a> <a id="44275" class="Symbol">(</a><a id="44276" href="Data.Nat.Properties.html#42925" class="Function">1+m≢m∸n</a> <a id="44284" href="Data.Nat.Properties.html#44230" class="Bound">o</a><a id="44285" class="Symbol">)</a>
|
||
<a id="44287" href="Data.Nat.Properties.html#44090" class="Function">∸-cancelˡ-≡</a> <a id="44299" class="Symbol">{</a><a id="44300" class="Argument">n</a> <a id="44302" class="Symbol">=</a> <a id="44304" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="44308" href="Data.Nat.Properties.html#44308" class="Bound">n</a><a id="44309" class="Symbol">}</a> <a id="44311" class="Symbol">(</a><a id="44312" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="44316" class="Symbol">_)</a> <a id="44321" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="44331" href="Data.Nat.Properties.html#44331" class="Bound">eq</a> <a id="44334" class="Symbol">=</a> <a id="44336" href="Relation.Nullary.Negation.Core.html#787" class="Function">contradiction</a> <a id="44350" class="Symbol">(</a><a id="44351" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="44355" href="Data.Nat.Properties.html#44331" class="Bound">eq</a><a id="44357" class="Symbol">)</a> <a id="44359" class="Symbol">(</a><a id="44360" href="Data.Nat.Properties.html#42925" class="Function">1+m≢m∸n</a> <a id="44368" href="Data.Nat.Properties.html#44308" class="Bound">n</a><a id="44369" class="Symbol">)</a>
|
||
<a id="44371" href="Data.Nat.Properties.html#44090" class="Function">∸-cancelˡ-≡</a> <a id="44383" class="Symbol">{_}</a> <a id="44395" class="Symbol">(</a><a id="44396" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="44400" href="Data.Nat.Properties.html#44400" class="Bound">n≤m</a><a id="44403" class="Symbol">)</a> <a id="44405" class="Symbol">(</a><a id="44406" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="44410" href="Data.Nat.Properties.html#44410" class="Bound">o≤m</a><a id="44413" class="Symbol">)</a> <a id="44415" href="Data.Nat.Properties.html#44415" class="Bound">eq</a> <a id="44418" class="Symbol">=</a> <a id="44420" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="44425" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="44429" class="Symbol">(</a><a id="44430" href="Data.Nat.Properties.html#44090" class="Function">∸-cancelˡ-≡</a> <a id="44442" href="Data.Nat.Properties.html#44400" class="Bound">n≤m</a> <a id="44446" href="Data.Nat.Properties.html#44410" class="Bound">o≤m</a> <a id="44450" href="Data.Nat.Properties.html#44415" class="Bound">eq</a><a id="44452" class="Symbol">)</a>
|
||
|
||
<a id="∸-cancelʳ-≡"></a><a id="44455" href="Data.Nat.Properties.html#44455" class="Function">∸-cancelʳ-≡</a> <a id="44467" class="Symbol">:</a> <a id="44470" class="Symbol">∀</a> <a id="44472" class="Symbol">{</a><a id="44473" href="Data.Nat.Properties.html#44473" class="Bound">m</a> <a id="44475" href="Data.Nat.Properties.html#44475" class="Bound">n</a> <a id="44477" href="Data.Nat.Properties.html#44477" class="Bound">o</a><a id="44478" class="Symbol">}</a> <a id="44480" class="Symbol">→</a> <a id="44482" href="Data.Nat.Properties.html#44477" class="Bound">o</a> <a id="44484" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="44486" href="Data.Nat.Properties.html#44473" class="Bound">m</a> <a id="44488" class="Symbol">→</a> <a id="44490" href="Data.Nat.Properties.html#44477" class="Bound">o</a> <a id="44492" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="44494" href="Data.Nat.Properties.html#44475" class="Bound">n</a> <a id="44496" class="Symbol">→</a> <a id="44498" href="Data.Nat.Properties.html#44473" class="Bound">m</a> <a id="44500" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="44502" href="Data.Nat.Properties.html#44477" class="Bound">o</a> <a id="44504" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="44506" href="Data.Nat.Properties.html#44475" class="Bound">n</a> <a id="44508" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="44510" href="Data.Nat.Properties.html#44477" class="Bound">o</a> <a id="44512" class="Symbol">→</a> <a id="44514" href="Data.Nat.Properties.html#44473" class="Bound">m</a> <a id="44516" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="44518" href="Data.Nat.Properties.html#44475" class="Bound">n</a>
|
||
<a id="44520" href="Data.Nat.Properties.html#44455" class="Function">∸-cancelʳ-≡</a> <a id="44533" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="44543" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="44552" href="Data.Nat.Properties.html#44552" class="Bound">eq</a> <a id="44555" class="Symbol">=</a> <a id="44557" href="Data.Nat.Properties.html#44552" class="Bound">eq</a>
|
||
<a id="44560" href="Data.Nat.Properties.html#44455" class="Function">∸-cancelʳ-≡</a> <a id="44572" class="Symbol">(</a><a id="44573" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="44577" href="Data.Nat.Properties.html#44577" class="Bound">o≤m</a><a id="44580" class="Symbol">)</a> <a id="44582" class="Symbol">(</a><a id="44583" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="44587" href="Data.Nat.Properties.html#44587" class="Bound">o≤n</a><a id="44590" class="Symbol">)</a> <a id="44592" href="Data.Nat.Properties.html#44592" class="Bound">eq</a> <a id="44595" class="Symbol">=</a> <a id="44597" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="44602" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="44606" class="Symbol">(</a><a id="44607" href="Data.Nat.Properties.html#44455" class="Function">∸-cancelʳ-≡</a> <a id="44619" href="Data.Nat.Properties.html#44577" class="Bound">o≤m</a> <a id="44623" href="Data.Nat.Properties.html#44587" class="Bound">o≤n</a> <a id="44627" href="Data.Nat.Properties.html#44592" class="Bound">eq</a><a id="44629" class="Symbol">)</a>
|
||
|
||
<a id="m∸n≡0⇒m≤n"></a><a id="44632" href="Data.Nat.Properties.html#44632" class="Function">m∸n≡0⇒m≤n</a> <a id="44642" class="Symbol">:</a> <a id="44644" class="Symbol">∀</a> <a id="44646" class="Symbol">{</a><a id="44647" href="Data.Nat.Properties.html#44647" class="Bound">m</a> <a id="44649" href="Data.Nat.Properties.html#44649" class="Bound">n</a><a id="44650" class="Symbol">}</a> <a id="44652" class="Symbol">→</a> <a id="44654" href="Data.Nat.Properties.html#44647" class="Bound">m</a> <a id="44656" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="44658" href="Data.Nat.Properties.html#44649" class="Bound">n</a> <a id="44660" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="44662" class="Number">0</a> <a id="44664" class="Symbol">→</a> <a id="44666" href="Data.Nat.Properties.html#44647" class="Bound">m</a> <a id="44668" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="44670" href="Data.Nat.Properties.html#44649" class="Bound">n</a>
|
||
<a id="44672" href="Data.Nat.Properties.html#44632" class="Function">m∸n≡0⇒m≤n</a> <a id="44682" class="Symbol">{</a><a id="44683" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="44687" class="Symbol">}</a> <a id="44690" class="Symbol">{_}</a> <a id="44697" class="Symbol">_</a> <a id="44701" class="Symbol">=</a> <a id="44703" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="44707" href="Data.Nat.Properties.html#44632" class="Function">m∸n≡0⇒m≤n</a> <a id="44717" class="Symbol">{</a><a id="44718" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="44722" href="Data.Nat.Properties.html#44722" class="Bound">m</a><a id="44723" class="Symbol">}</a> <a id="44725" class="Symbol">{</a><a id="44726" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="44730" href="Data.Nat.Properties.html#44730" class="Bound">n</a><a id="44731" class="Symbol">}</a> <a id="44733" href="Data.Nat.Properties.html#44733" class="Bound">eq</a> <a id="44736" class="Symbol">=</a> <a id="44738" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="44742" class="Symbol">(</a><a id="44743" href="Data.Nat.Properties.html#44632" class="Function">m∸n≡0⇒m≤n</a> <a id="44753" href="Data.Nat.Properties.html#44733" class="Bound">eq</a><a id="44755" class="Symbol">)</a>
|
||
|
||
<a id="m≤n⇒m∸n≡0"></a><a id="44758" href="Data.Nat.Properties.html#44758" class="Function">m≤n⇒m∸n≡0</a> <a id="44768" class="Symbol">:</a> <a id="44770" class="Symbol">∀</a> <a id="44772" class="Symbol">{</a><a id="44773" href="Data.Nat.Properties.html#44773" class="Bound">m</a> <a id="44775" href="Data.Nat.Properties.html#44775" class="Bound">n</a><a id="44776" class="Symbol">}</a> <a id="44778" class="Symbol">→</a> <a id="44780" href="Data.Nat.Properties.html#44773" class="Bound">m</a> <a id="44782" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="44784" href="Data.Nat.Properties.html#44775" class="Bound">n</a> <a id="44786" class="Symbol">→</a> <a id="44788" href="Data.Nat.Properties.html#44773" class="Bound">m</a> <a id="44790" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="44792" href="Data.Nat.Properties.html#44775" class="Bound">n</a> <a id="44794" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="44796" class="Number">0</a>
|
||
<a id="44798" href="Data.Nat.Properties.html#44758" class="Function">m≤n⇒m∸n≡0</a> <a id="44808" class="Symbol">{</a><a id="44809" class="Argument">n</a> <a id="44811" class="Symbol">=</a> <a id="44813" href="Data.Nat.Properties.html#44813" class="Bound">n</a><a id="44814" class="Symbol">}</a> <a id="44816" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="44825" class="Symbol">=</a> <a id="44827" href="Data.Nat.Properties.html#42080" class="Function">0∸n≡0</a> <a id="44833" href="Data.Nat.Properties.html#44813" class="Bound">n</a>
|
||
<a id="44835" href="Data.Nat.Properties.html#44758" class="Function">m≤n⇒m∸n≡0</a> <a id="44845" class="Symbol">{_}</a> <a id="44852" class="Symbol">(</a><a id="44853" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="44857" href="Data.Nat.Properties.html#44857" class="Bound">m≤n</a><a id="44860" class="Symbol">)</a> <a id="44862" class="Symbol">=</a> <a id="44864" href="Data.Nat.Properties.html#44758" class="Function">m≤n⇒m∸n≡0</a> <a id="44874" href="Data.Nat.Properties.html#44857" class="Bound">m≤n</a>
|
||
|
||
<a id="m<n⇒0<n∸m"></a><a id="44879" href="Data.Nat.Properties.html#44879" class="Function">m<n⇒0<n∸m</a> <a id="44889" class="Symbol">:</a> <a id="44891" class="Symbol">∀</a> <a id="44893" class="Symbol">{</a><a id="44894" href="Data.Nat.Properties.html#44894" class="Bound">m</a> <a id="44896" href="Data.Nat.Properties.html#44896" class="Bound">n</a><a id="44897" class="Symbol">}</a> <a id="44899" class="Symbol">→</a> <a id="44901" href="Data.Nat.Properties.html#44894" class="Bound">m</a> <a id="44903" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="44905" href="Data.Nat.Properties.html#44896" class="Bound">n</a> <a id="44907" class="Symbol">→</a> <a id="44909" class="Number">0</a> <a id="44911" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="44913" href="Data.Nat.Properties.html#44896" class="Bound">n</a> <a id="44915" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="44917" href="Data.Nat.Properties.html#44894" class="Bound">m</a>
|
||
<a id="44919" href="Data.Nat.Properties.html#44879" class="Function">m<n⇒0<n∸m</a> <a id="44929" class="Symbol">{</a><a id="44930" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="44934" class="Symbol">}</a> <a id="44937" class="Symbol">{</a><a id="44938" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="44942" href="Data.Nat.Properties.html#44942" class="Bound">n</a><a id="44943" class="Symbol">}</a> <a id="44945" class="Symbol">_</a> <a id="44955" class="Symbol">=</a> <a id="44957" href="Data.Nat.Properties.html#11182" class="Function">0<1+n</a>
|
||
<a id="44963" href="Data.Nat.Properties.html#44879" class="Function">m<n⇒0<n∸m</a> <a id="44973" class="Symbol">{</a><a id="44974" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="44978" href="Data.Nat.Properties.html#44978" class="Bound">m</a><a id="44979" class="Symbol">}</a> <a id="44981" class="Symbol">{</a><a id="44982" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="44986" href="Data.Nat.Properties.html#44986" class="Bound">n</a><a id="44987" class="Symbol">}</a> <a id="44989" class="Symbol">(</a><a id="44990" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="44994" href="Data.Nat.Properties.html#44994" class="Bound">m<n</a><a id="44997" class="Symbol">)</a> <a id="44999" class="Symbol">=</a> <a id="45001" href="Data.Nat.Properties.html#44879" class="Function">m<n⇒0<n∸m</a> <a id="45011" href="Data.Nat.Properties.html#44994" class="Bound">m<n</a>
|
||
|
||
<a id="m∸n≢0⇒n<m"></a><a id="45016" href="Data.Nat.Properties.html#45016" class="Function">m∸n≢0⇒n<m</a> <a id="45026" class="Symbol">:</a> <a id="45028" class="Symbol">∀</a> <a id="45030" class="Symbol">{</a><a id="45031" href="Data.Nat.Properties.html#45031" class="Bound">m</a> <a id="45033" href="Data.Nat.Properties.html#45033" class="Bound">n</a><a id="45034" class="Symbol">}</a> <a id="45036" class="Symbol">→</a> <a id="45038" href="Data.Nat.Properties.html#45031" class="Bound">m</a> <a id="45040" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="45042" href="Data.Nat.Properties.html#45033" class="Bound">n</a> <a id="45044" href="Relation.Binary.PropositionalEquality.Core.html#839" class="Function Operator">≢</a> <a id="45046" class="Number">0</a> <a id="45048" class="Symbol">→</a> <a id="45050" href="Data.Nat.Properties.html#45033" class="Bound">n</a> <a id="45052" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="45054" href="Data.Nat.Properties.html#45031" class="Bound">m</a>
|
||
<a id="45056" href="Data.Nat.Properties.html#45016" class="Function">m∸n≢0⇒n<m</a> <a id="45066" class="Symbol">{</a><a id="45067" href="Data.Nat.Properties.html#45067" class="Bound">m</a><a id="45068" class="Symbol">}</a> <a id="45070" class="Symbol">{</a><a id="45071" href="Data.Nat.Properties.html#45071" class="Bound">n</a><a id="45072" class="Symbol">}</a> <a id="45074" href="Data.Nat.Properties.html#45074" class="Bound">m∸n≢0</a> <a id="45080" class="Keyword">with</a> <a id="45085" href="Data.Nat.Properties.html#45071" class="Bound">n</a> <a id="45087" href="Data.Nat.Properties.html#10087" class="Function Operator"><?</a> <a id="45090" href="Data.Nat.Properties.html#45067" class="Bound">m</a>
|
||
<a id="45092" class="Symbol">...</a> <a id="45096" class="Symbol">|</a> <a id="45098" href="Relation.Nullary.html#1657" class="InductiveConstructor">yes</a> <a id="45102" href="Data.Nat.Properties.html#45102" class="Bound">n<m</a> <a id="45106" class="Symbol">=</a> <a id="45108" href="Data.Nat.Properties.html#45102" class="Bound">n<m</a>
|
||
<a id="45112" class="Symbol">...</a> <a id="45116" class="Symbol">|</a> <a id="45118" href="Relation.Nullary.html#1694" class="InductiveConstructor">no</a> <a id="45122" href="Data.Nat.Properties.html#45122" class="Bound">n≮m</a> <a id="45126" class="Symbol">=</a> <a id="45128" href="Relation.Nullary.Negation.Core.html#787" class="Function">contradiction</a> <a id="45142" class="Symbol">(</a><a id="45143" href="Data.Nat.Properties.html#44758" class="Function">m≤n⇒m∸n≡0</a> <a id="45153" class="Symbol">(</a><a id="45154" href="Data.Nat.Properties.html#8194" class="Function">≮⇒≥</a> <a id="45158" href="Data.Nat.Properties.html#45122" class="Bound">n≮m</a><a id="45161" class="Symbol">))</a> <a id="45164" class="Bound">m∸n≢0</a>
|
||
|
||
<a id="m>n⇒m∸n≢0"></a><a id="45171" href="Data.Nat.Properties.html#45171" class="Function">m>n⇒m∸n≢0</a> <a id="45181" class="Symbol">:</a> <a id="45183" class="Symbol">∀</a> <a id="45185" class="Symbol">{</a><a id="45186" href="Data.Nat.Properties.html#45186" class="Bound">m</a> <a id="45188" href="Data.Nat.Properties.html#45188" class="Bound">n</a><a id="45189" class="Symbol">}</a> <a id="45191" class="Symbol">→</a> <a id="45193" href="Data.Nat.Properties.html#45186" class="Bound">m</a> <a id="45195" href="Data.Nat.Base.html#1718" class="Function Operator">></a> <a id="45197" href="Data.Nat.Properties.html#45188" class="Bound">n</a> <a id="45199" class="Symbol">→</a> <a id="45201" href="Data.Nat.Properties.html#45186" class="Bound">m</a> <a id="45203" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="45205" href="Data.Nat.Properties.html#45188" class="Bound">n</a> <a id="45207" href="Relation.Binary.PropositionalEquality.Core.html#839" class="Function Operator">≢</a> <a id="45209" class="Number">0</a>
|
||
<a id="45211" href="Data.Nat.Properties.html#45171" class="Function">m>n⇒m∸n≢0</a> <a id="45221" class="Symbol">{</a><a id="45222" class="Argument">n</a> <a id="45224" class="Symbol">=</a> <a id="45226" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="45230" href="Data.Nat.Properties.html#45230" class="Bound">n</a><a id="45231" class="Symbol">}</a> <a id="45233" class="Symbol">(</a><a id="45234" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="45238" href="Data.Nat.Properties.html#45238" class="Bound">m>n</a><a id="45241" class="Symbol">)</a> <a id="45243" class="Symbol">=</a> <a id="45245" href="Data.Nat.Properties.html#45171" class="Function">m>n⇒m∸n≢0</a> <a id="45255" href="Data.Nat.Properties.html#45238" class="Bound">m>n</a>
|
||
|
||
<a id="45260" class="Comment">---------------------------------------------------------------</a>
|
||
<a id="45324" class="Comment">-- Properties of _∸_ and _+_</a>
|
||
|
||
<a id="+-∸-comm"></a><a id="45354" href="Data.Nat.Properties.html#45354" class="Function">+-∸-comm</a> <a id="45363" class="Symbol">:</a> <a id="45365" class="Symbol">∀</a> <a id="45367" class="Symbol">{</a><a id="45368" href="Data.Nat.Properties.html#45368" class="Bound">m</a><a id="45369" class="Symbol">}</a> <a id="45371" href="Data.Nat.Properties.html#45371" class="Bound">n</a> <a id="45373" class="Symbol">{</a><a id="45374" href="Data.Nat.Properties.html#45374" class="Bound">o</a><a id="45375" class="Symbol">}</a> <a id="45377" class="Symbol">→</a> <a id="45379" href="Data.Nat.Properties.html#45374" class="Bound">o</a> <a id="45381" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="45383" href="Data.Nat.Properties.html#45368" class="Bound">m</a> <a id="45385" class="Symbol">→</a> <a id="45387" class="Symbol">(</a><a id="45388" href="Data.Nat.Properties.html#45368" class="Bound">m</a> <a id="45390" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="45392" href="Data.Nat.Properties.html#45371" class="Bound">n</a><a id="45393" class="Symbol">)</a> <a id="45395" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="45397" href="Data.Nat.Properties.html#45374" class="Bound">o</a> <a id="45399" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="45401" class="Symbol">(</a><a id="45402" href="Data.Nat.Properties.html#45368" class="Bound">m</a> <a id="45404" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="45406" href="Data.Nat.Properties.html#45374" class="Bound">o</a><a id="45407" class="Symbol">)</a> <a id="45409" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="45411" href="Data.Nat.Properties.html#45371" class="Bound">n</a>
|
||
<a id="45413" href="Data.Nat.Properties.html#45354" class="Function">+-∸-comm</a> <a id="45422" class="Symbol">{</a><a id="45423" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="45427" class="Symbol">}</a> <a id="45430" class="Symbol">_</a> <a id="45432" class="Symbol">{</a><a id="45433" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="45437" class="Symbol">}</a> <a id="45440" class="Symbol">_</a> <a id="45450" class="Symbol">=</a> <a id="45452" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="45457" href="Data.Nat.Properties.html#45354" class="Function">+-∸-comm</a> <a id="45466" class="Symbol">{</a><a id="45467" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="45471" href="Data.Nat.Properties.html#45471" class="Bound">m</a><a id="45472" class="Symbol">}</a> <a id="45474" class="Symbol">_</a> <a id="45476" class="Symbol">{</a><a id="45477" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="45481" class="Symbol">}</a> <a id="45484" class="Symbol">_</a> <a id="45494" class="Symbol">=</a> <a id="45496" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="45501" href="Data.Nat.Properties.html#45354" class="Function">+-∸-comm</a> <a id="45510" class="Symbol">{</a><a id="45511" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="45515" href="Data.Nat.Properties.html#45515" class="Bound">m</a><a id="45516" class="Symbol">}</a> <a id="45518" href="Data.Nat.Properties.html#45518" class="Bound">n</a> <a id="45520" class="Symbol">{</a><a id="45521" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="45525" href="Data.Nat.Properties.html#45525" class="Bound">o</a><a id="45526" class="Symbol">}</a> <a id="45528" class="Symbol">(</a><a id="45529" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="45533" href="Data.Nat.Properties.html#45533" class="Bound">o≤m</a><a id="45536" class="Symbol">)</a> <a id="45538" class="Symbol">=</a> <a id="45540" href="Data.Nat.Properties.html#45354" class="Function">+-∸-comm</a> <a id="45549" href="Data.Nat.Properties.html#45518" class="Bound">n</a> <a id="45551" href="Data.Nat.Properties.html#45533" class="Bound">o≤m</a>
|
||
|
||
<a id="∸-+-assoc"></a><a id="45556" href="Data.Nat.Properties.html#45556" class="Function">∸-+-assoc</a> <a id="45566" class="Symbol">:</a> <a id="45568" class="Symbol">∀</a> <a id="45570" href="Data.Nat.Properties.html#45570" class="Bound">m</a> <a id="45572" href="Data.Nat.Properties.html#45572" class="Bound">n</a> <a id="45574" href="Data.Nat.Properties.html#45574" class="Bound">o</a> <a id="45576" class="Symbol">→</a> <a id="45578" class="Symbol">(</a><a id="45579" href="Data.Nat.Properties.html#45570" class="Bound">m</a> <a id="45581" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="45583" href="Data.Nat.Properties.html#45572" class="Bound">n</a><a id="45584" class="Symbol">)</a> <a id="45586" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="45588" href="Data.Nat.Properties.html#45574" class="Bound">o</a> <a id="45590" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="45592" href="Data.Nat.Properties.html#45570" class="Bound">m</a> <a id="45594" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="45596" class="Symbol">(</a><a id="45597" href="Data.Nat.Properties.html#45572" class="Bound">n</a> <a id="45599" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="45601" href="Data.Nat.Properties.html#45574" class="Bound">o</a><a id="45602" class="Symbol">)</a>
|
||
<a id="45604" href="Data.Nat.Properties.html#45556" class="Function">∸-+-assoc</a> <a id="45614" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="45619" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="45624" href="Data.Nat.Properties.html#45624" class="Bound">o</a> <a id="45626" class="Symbol">=</a> <a id="45628" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="45633" href="Data.Nat.Properties.html#45556" class="Function">∸-+-assoc</a> <a id="45643" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="45648" class="Symbol">(</a><a id="45649" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="45653" href="Data.Nat.Properties.html#45653" class="Bound">n</a><a id="45654" class="Symbol">)</a> <a id="45656" href="Data.Nat.Properties.html#45656" class="Bound">o</a> <a id="45658" class="Symbol">=</a> <a id="45660" href="Data.Nat.Properties.html#42080" class="Function">0∸n≡0</a> <a id="45666" href="Data.Nat.Properties.html#45656" class="Bound">o</a>
|
||
<a id="45668" href="Data.Nat.Properties.html#45556" class="Function">∸-+-assoc</a> <a id="45678" class="Symbol">(</a><a id="45679" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="45683" href="Data.Nat.Properties.html#45683" class="Bound">m</a><a id="45684" class="Symbol">)</a> <a id="45686" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="45691" href="Data.Nat.Properties.html#45691" class="Bound">o</a> <a id="45693" class="Symbol">=</a> <a id="45695" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="45700" href="Data.Nat.Properties.html#45556" class="Function">∸-+-assoc</a> <a id="45710" class="Symbol">(</a><a id="45711" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="45715" href="Data.Nat.Properties.html#45715" class="Bound">m</a><a id="45716" class="Symbol">)</a> <a id="45718" class="Symbol">(</a><a id="45719" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="45723" href="Data.Nat.Properties.html#45723" class="Bound">n</a><a id="45724" class="Symbol">)</a> <a id="45726" href="Data.Nat.Properties.html#45726" class="Bound">o</a> <a id="45728" class="Symbol">=</a> <a id="45730" href="Data.Nat.Properties.html#45556" class="Function">∸-+-assoc</a> <a id="45740" href="Data.Nat.Properties.html#45715" class="Bound">m</a> <a id="45742" href="Data.Nat.Properties.html#45723" class="Bound">n</a> <a id="45744" href="Data.Nat.Properties.html#45726" class="Bound">o</a>
|
||
|
||
<a id="+-∸-assoc"></a><a id="45747" href="Data.Nat.Properties.html#45747" class="Function">+-∸-assoc</a> <a id="45757" class="Symbol">:</a> <a id="45759" class="Symbol">∀</a> <a id="45761" href="Data.Nat.Properties.html#45761" class="Bound">m</a> <a id="45763" class="Symbol">{</a><a id="45764" href="Data.Nat.Properties.html#45764" class="Bound">n</a> <a id="45766" href="Data.Nat.Properties.html#45766" class="Bound">o</a><a id="45767" class="Symbol">}</a> <a id="45769" class="Symbol">→</a> <a id="45771" href="Data.Nat.Properties.html#45766" class="Bound">o</a> <a id="45773" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="45775" href="Data.Nat.Properties.html#45764" class="Bound">n</a> <a id="45777" class="Symbol">→</a> <a id="45779" class="Symbol">(</a><a id="45780" href="Data.Nat.Properties.html#45761" class="Bound">m</a> <a id="45782" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="45784" href="Data.Nat.Properties.html#45764" class="Bound">n</a><a id="45785" class="Symbol">)</a> <a id="45787" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="45789" href="Data.Nat.Properties.html#45766" class="Bound">o</a> <a id="45791" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="45793" href="Data.Nat.Properties.html#45761" class="Bound">m</a> <a id="45795" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="45797" class="Symbol">(</a><a id="45798" href="Data.Nat.Properties.html#45764" class="Bound">n</a> <a id="45800" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="45802" href="Data.Nat.Properties.html#45766" class="Bound">o</a><a id="45803" class="Symbol">)</a>
|
||
<a id="45805" href="Data.Nat.Properties.html#45747" class="Function">+-∸-assoc</a> <a id="45815" href="Data.Nat.Properties.html#45815" class="Bound">m</a> <a id="45817" class="Symbol">(</a><a id="45818" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="45822" class="Symbol">{</a><a id="45823" class="Argument">n</a> <a id="45825" class="Symbol">=</a> <a id="45827" href="Data.Nat.Properties.html#45827" class="Bound">n</a><a id="45828" class="Symbol">})</a> <a id="45843" class="Symbol">=</a> <a id="45845" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a> <a id="45860" href="Data.Nat.Properties.html#45815" class="Bound">m</a> <a id="45862" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="45864" href="Data.Nat.Properties.html#45827" class="Bound">n</a> <a id="45866" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
<a id="45868" href="Data.Nat.Properties.html#45747" class="Function">+-∸-assoc</a> <a id="45878" href="Data.Nat.Properties.html#45878" class="Bound">m</a> <a id="45880" class="Symbol">(</a><a id="45881" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="45885" class="Symbol">{</a><a id="45886" class="Argument">m</a> <a id="45888" class="Symbol">=</a> <a id="45890" href="Data.Nat.Properties.html#45890" class="Bound">o</a><a id="45891" class="Symbol">}</a> <a id="45893" class="Symbol">{</a><a id="45894" class="Argument">n</a> <a id="45896" class="Symbol">=</a> <a id="45898" href="Data.Nat.Properties.html#45898" class="Bound">n</a><a id="45899" class="Symbol">}</a> <a id="45901" href="Data.Nat.Properties.html#45901" class="Bound">o≤n</a><a id="45904" class="Symbol">)</a> <a id="45906" class="Symbol">=</a> <a id="45908" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="45925" class="Symbol">(</a><a id="45926" href="Data.Nat.Properties.html#45878" class="Bound">m</a> <a id="45928" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="45930" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="45934" href="Data.Nat.Properties.html#45898" class="Bound">n</a><a id="45935" class="Symbol">)</a> <a id="45937" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="45939" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="45943" href="Data.Nat.Properties.html#45890" class="Bound">o</a> <a id="45946" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="45949" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="45954" class="Symbol">(</a><a id="45955" href="Data.Nat.Base.html#2883" class="Primitive Operator">_∸</a> <a id="45958" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="45962" href="Data.Nat.Properties.html#45890" class="Bound">o</a><a id="45963" class="Symbol">)</a> <a id="45965" class="Symbol">(</a><a id="45966" href="Data.Nat.Properties.html#12863" class="Function">+-suc</a> <a id="45972" href="Data.Nat.Properties.html#45878" class="Bound">m</a> <a id="45974" href="Data.Nat.Properties.html#45898" class="Bound">n</a><a id="45975" class="Symbol">)</a> <a id="45977" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="45981" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="45985" class="Symbol">(</a><a id="45986" href="Data.Nat.Properties.html#45878" class="Bound">m</a> <a id="45988" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="45990" href="Data.Nat.Properties.html#45898" class="Bound">n</a><a id="45991" class="Symbol">)</a> <a id="45993" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="45995" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="45999" href="Data.Nat.Properties.html#45890" class="Bound">o</a> <a id="46002" href="Relation.Binary.Reasoning.Base.Triple.html#5032" class="Function Operator">≡⟨⟩</a>
|
||
<a id="46008" class="Symbol">(</a><a id="46009" href="Data.Nat.Properties.html#45878" class="Bound">m</a> <a id="46011" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="46013" href="Data.Nat.Properties.html#45898" class="Bound">n</a><a id="46014" class="Symbol">)</a> <a id="46016" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="46018" href="Data.Nat.Properties.html#45890" class="Bound">o</a> <a id="46029" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="46032" href="Data.Nat.Properties.html#45747" class="Function">+-∸-assoc</a> <a id="46042" href="Data.Nat.Properties.html#45878" class="Bound">m</a> <a id="46044" href="Data.Nat.Properties.html#45901" class="Bound">o≤n</a> <a id="46048" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="46052" href="Data.Nat.Properties.html#45878" class="Bound">m</a> <a id="46054" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="46056" class="Symbol">(</a><a id="46057" href="Data.Nat.Properties.html#45898" class="Bound">n</a> <a id="46059" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="46061" href="Data.Nat.Properties.html#45890" class="Bound">o</a><a id="46062" class="Symbol">)</a> <a id="46073" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
|
||
<a id="m≤n+m∸n"></a><a id="46076" href="Data.Nat.Properties.html#46076" class="Function">m≤n+m∸n</a> <a id="46084" class="Symbol">:</a> <a id="46086" class="Symbol">∀</a> <a id="46088" href="Data.Nat.Properties.html#46088" class="Bound">m</a> <a id="46090" href="Data.Nat.Properties.html#46090" class="Bound">n</a> <a id="46092" class="Symbol">→</a> <a id="46094" href="Data.Nat.Properties.html#46088" class="Bound">m</a> <a id="46096" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="46098" href="Data.Nat.Properties.html#46090" class="Bound">n</a> <a id="46100" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="46102" class="Symbol">(</a><a id="46103" href="Data.Nat.Properties.html#46088" class="Bound">m</a> <a id="46105" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="46107" href="Data.Nat.Properties.html#46090" class="Bound">n</a><a id="46108" class="Symbol">)</a>
|
||
<a id="46110" href="Data.Nat.Properties.html#46076" class="Function">m≤n+m∸n</a> <a id="46118" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="46126" href="Data.Nat.Properties.html#46126" class="Bound">n</a> <a id="46134" class="Symbol">=</a> <a id="46136" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="46140" href="Data.Nat.Properties.html#46076" class="Function">m≤n+m∸n</a> <a id="46148" class="Symbol">(</a><a id="46149" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="46153" href="Data.Nat.Properties.html#46153" class="Bound">m</a><a id="46154" class="Symbol">)</a> <a id="46156" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="46164" class="Symbol">=</a> <a id="46166" href="Data.Nat.Properties.html#4574" class="Function">≤-refl</a>
|
||
<a id="46173" href="Data.Nat.Properties.html#46076" class="Function">m≤n+m∸n</a> <a id="46181" class="Symbol">(</a><a id="46182" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="46186" href="Data.Nat.Properties.html#46186" class="Bound">m</a><a id="46187" class="Symbol">)</a> <a id="46189" class="Symbol">(</a><a id="46190" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="46194" href="Data.Nat.Properties.html#46194" class="Bound">n</a><a id="46195" class="Symbol">)</a> <a id="46197" class="Symbol">=</a> <a id="46199" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="46203" class="Symbol">(</a><a id="46204" href="Data.Nat.Properties.html#46076" class="Function">m≤n+m∸n</a> <a id="46212" href="Data.Nat.Properties.html#46186" class="Bound">m</a> <a id="46214" href="Data.Nat.Properties.html#46194" class="Bound">n</a><a id="46215" class="Symbol">)</a>
|
||
|
||
<a id="m+n∸n≡m"></a><a id="46218" href="Data.Nat.Properties.html#46218" class="Function">m+n∸n≡m</a> <a id="46226" class="Symbol">:</a> <a id="46228" class="Symbol">∀</a> <a id="46230" href="Data.Nat.Properties.html#46230" class="Bound">m</a> <a id="46232" href="Data.Nat.Properties.html#46232" class="Bound">n</a> <a id="46234" class="Symbol">→</a> <a id="46236" href="Data.Nat.Properties.html#46230" class="Bound">m</a> <a id="46238" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="46240" href="Data.Nat.Properties.html#46232" class="Bound">n</a> <a id="46242" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="46244" href="Data.Nat.Properties.html#46232" class="Bound">n</a> <a id="46246" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="46248" href="Data.Nat.Properties.html#46230" class="Bound">m</a>
|
||
<a id="46250" href="Data.Nat.Properties.html#46218" class="Function">m+n∸n≡m</a> <a id="46258" href="Data.Nat.Properties.html#46258" class="Bound">m</a> <a id="46260" href="Data.Nat.Properties.html#46260" class="Bound">n</a> <a id="46262" class="Symbol">=</a> <a id="46264" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="46281" class="Symbol">(</a><a id="46282" href="Data.Nat.Properties.html#46258" class="Bound">m</a> <a id="46284" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="46286" href="Data.Nat.Properties.html#46260" class="Bound">n</a><a id="46287" class="Symbol">)</a> <a id="46289" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="46291" href="Data.Nat.Properties.html#46260" class="Bound">n</a> <a id="46294" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="46297" href="Data.Nat.Properties.html#45747" class="Function">+-∸-assoc</a> <a id="46307" href="Data.Nat.Properties.html#46258" class="Bound">m</a> <a id="46309" class="Symbol">(</a><a id="46310" href="Data.Nat.Properties.html#4574" class="Function">≤-refl</a> <a id="46317" class="Symbol">{</a><a id="46318" class="Argument">x</a> <a id="46320" class="Symbol">=</a> <a id="46322" href="Data.Nat.Properties.html#46260" class="Bound">n</a><a id="46323" class="Symbol">})</a> <a id="46326" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="46330" href="Data.Nat.Properties.html#46258" class="Bound">m</a> <a id="46332" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="46334" class="Symbol">(</a><a id="46335" href="Data.Nat.Properties.html#46260" class="Bound">n</a> <a id="46337" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="46339" href="Data.Nat.Properties.html#46260" class="Bound">n</a><a id="46340" class="Symbol">)</a> <a id="46343" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="46346" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="46351" class="Symbol">(</a><a id="46352" href="Data.Nat.Properties.html#46258" class="Bound">m</a> <a id="46354" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+_</a><a id="46356" class="Symbol">)</a> <a id="46358" class="Symbol">(</a><a id="46359" href="Data.Nat.Properties.html#42149" class="Function">n∸n≡0</a> <a id="46365" href="Data.Nat.Properties.html#46260" class="Bound">n</a><a id="46366" class="Symbol">)</a> <a id="46368" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="46372" href="Data.Nat.Properties.html#46258" class="Bound">m</a> <a id="46374" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="46376" class="Number">0</a> <a id="46385" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="46388" href="Data.Nat.Properties.html#13227" class="Function">+-identityʳ</a> <a id="46400" href="Data.Nat.Properties.html#46258" class="Bound">m</a> <a id="46402" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="46406" href="Data.Nat.Properties.html#46258" class="Bound">m</a> <a id="46419" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
|
||
<a id="m+n∸m≡n"></a><a id="46422" href="Data.Nat.Properties.html#46422" class="Function">m+n∸m≡n</a> <a id="46430" class="Symbol">:</a> <a id="46432" class="Symbol">∀</a> <a id="46434" href="Data.Nat.Properties.html#46434" class="Bound">m</a> <a id="46436" href="Data.Nat.Properties.html#46436" class="Bound">n</a> <a id="46438" class="Symbol">→</a> <a id="46440" href="Data.Nat.Properties.html#46434" class="Bound">m</a> <a id="46442" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="46444" href="Data.Nat.Properties.html#46436" class="Bound">n</a> <a id="46446" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="46448" href="Data.Nat.Properties.html#46434" class="Bound">m</a> <a id="46450" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="46452" href="Data.Nat.Properties.html#46436" class="Bound">n</a>
|
||
<a id="46454" href="Data.Nat.Properties.html#46422" class="Function">m+n∸m≡n</a> <a id="46462" href="Data.Nat.Properties.html#46462" class="Bound">m</a> <a id="46464" href="Data.Nat.Properties.html#46464" class="Bound">n</a> <a id="46466" class="Symbol">=</a> <a id="46468" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="46474" class="Symbol">(</a><a id="46475" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="46480" class="Symbol">(</a><a id="46481" href="Data.Nat.Base.html#2883" class="Primitive Operator">_∸</a> <a id="46484" href="Data.Nat.Properties.html#46462" class="Bound">m</a><a id="46485" class="Symbol">)</a> <a id="46487" class="Symbol">(</a><a id="46488" href="Data.Nat.Properties.html#13404" class="Function">+-comm</a> <a id="46495" href="Data.Nat.Properties.html#46462" class="Bound">m</a> <a id="46497" href="Data.Nat.Properties.html#46464" class="Bound">n</a><a id="46498" class="Symbol">))</a> <a id="46501" class="Symbol">(</a><a id="46502" href="Data.Nat.Properties.html#46218" class="Function">m+n∸n≡m</a> <a id="46510" href="Data.Nat.Properties.html#46464" class="Bound">n</a> <a id="46512" href="Data.Nat.Properties.html#46462" class="Bound">m</a><a id="46513" class="Symbol">)</a>
|
||
|
||
<a id="m+[n∸m]≡n"></a><a id="46516" href="Data.Nat.Properties.html#46516" class="Function">m+[n∸m]≡n</a> <a id="46526" class="Symbol">:</a> <a id="46528" class="Symbol">∀</a> <a id="46530" class="Symbol">{</a><a id="46531" href="Data.Nat.Properties.html#46531" class="Bound">m</a> <a id="46533" href="Data.Nat.Properties.html#46533" class="Bound">n</a><a id="46534" class="Symbol">}</a> <a id="46536" class="Symbol">→</a> <a id="46538" href="Data.Nat.Properties.html#46531" class="Bound">m</a> <a id="46540" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="46542" href="Data.Nat.Properties.html#46533" class="Bound">n</a> <a id="46544" class="Symbol">→</a> <a id="46546" href="Data.Nat.Properties.html#46531" class="Bound">m</a> <a id="46548" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="46550" class="Symbol">(</a><a id="46551" href="Data.Nat.Properties.html#46533" class="Bound">n</a> <a id="46553" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="46555" href="Data.Nat.Properties.html#46531" class="Bound">m</a><a id="46556" class="Symbol">)</a> <a id="46558" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="46560" href="Data.Nat.Properties.html#46533" class="Bound">n</a>
|
||
<a id="46562" href="Data.Nat.Properties.html#46516" class="Function">m+[n∸m]≡n</a> <a id="46572" class="Symbol">{</a><a id="46573" href="Data.Nat.Properties.html#46573" class="Bound">m</a><a id="46574" class="Symbol">}</a> <a id="46576" class="Symbol">{</a><a id="46577" href="Data.Nat.Properties.html#46577" class="Bound">n</a><a id="46578" class="Symbol">}</a> <a id="46580" href="Data.Nat.Properties.html#46580" class="Bound">m≤n</a> <a id="46584" class="Symbol">=</a> <a id="46586" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="46603" href="Data.Nat.Properties.html#46573" class="Bound">m</a> <a id="46605" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="46607" class="Symbol">(</a><a id="46608" href="Data.Nat.Properties.html#46577" class="Bound">n</a> <a id="46610" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="46612" href="Data.Nat.Properties.html#46573" class="Bound">m</a><a id="46613" class="Symbol">)</a> <a id="46616" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="46619" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="46623" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="46625" href="Data.Nat.Properties.html#45747" class="Function">+-∸-assoc</a> <a id="46635" href="Data.Nat.Properties.html#46573" class="Bound">m</a> <a id="46637" href="Data.Nat.Properties.html#46580" class="Bound">m≤n</a> <a id="46641" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="46645" class="Symbol">(</a><a id="46646" href="Data.Nat.Properties.html#46573" class="Bound">m</a> <a id="46648" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="46650" href="Data.Nat.Properties.html#46577" class="Bound">n</a><a id="46651" class="Symbol">)</a> <a id="46653" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="46655" href="Data.Nat.Properties.html#46573" class="Bound">m</a> <a id="46658" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="46661" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="46666" class="Symbol">(</a><a id="46667" href="Data.Nat.Base.html#2883" class="Primitive Operator">_∸</a> <a id="46670" href="Data.Nat.Properties.html#46573" class="Bound">m</a><a id="46671" class="Symbol">)</a> <a id="46673" class="Symbol">(</a><a id="46674" href="Data.Nat.Properties.html#13404" class="Function">+-comm</a> <a id="46681" href="Data.Nat.Properties.html#46573" class="Bound">m</a> <a id="46683" href="Data.Nat.Properties.html#46577" class="Bound">n</a><a id="46684" class="Symbol">)</a> <a id="46686" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="46690" class="Symbol">(</a><a id="46691" href="Data.Nat.Properties.html#46577" class="Bound">n</a> <a id="46693" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="46695" href="Data.Nat.Properties.html#46573" class="Bound">m</a><a id="46696" class="Symbol">)</a> <a id="46698" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="46700" href="Data.Nat.Properties.html#46573" class="Bound">m</a> <a id="46703" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="46706" href="Data.Nat.Properties.html#46218" class="Function">m+n∸n≡m</a> <a id="46714" href="Data.Nat.Properties.html#46577" class="Bound">n</a> <a id="46716" href="Data.Nat.Properties.html#46573" class="Bound">m</a> <a id="46718" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="46722" href="Data.Nat.Properties.html#46577" class="Bound">n</a> <a id="46735" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
|
||
<a id="m∸n+n≡m"></a><a id="46738" href="Data.Nat.Properties.html#46738" class="Function">m∸n+n≡m</a> <a id="46746" class="Symbol">:</a> <a id="46748" class="Symbol">∀</a> <a id="46750" class="Symbol">{</a><a id="46751" href="Data.Nat.Properties.html#46751" class="Bound">m</a> <a id="46753" href="Data.Nat.Properties.html#46753" class="Bound">n</a><a id="46754" class="Symbol">}</a> <a id="46756" class="Symbol">→</a> <a id="46758" href="Data.Nat.Properties.html#46753" class="Bound">n</a> <a id="46760" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="46762" href="Data.Nat.Properties.html#46751" class="Bound">m</a> <a id="46764" class="Symbol">→</a> <a id="46766" class="Symbol">(</a><a id="46767" href="Data.Nat.Properties.html#46751" class="Bound">m</a> <a id="46769" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="46771" href="Data.Nat.Properties.html#46753" class="Bound">n</a><a id="46772" class="Symbol">)</a> <a id="46774" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="46776" href="Data.Nat.Properties.html#46753" class="Bound">n</a> <a id="46778" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="46780" href="Data.Nat.Properties.html#46751" class="Bound">m</a>
|
||
<a id="46782" href="Data.Nat.Properties.html#46738" class="Function">m∸n+n≡m</a> <a id="46790" class="Symbol">{</a><a id="46791" href="Data.Nat.Properties.html#46791" class="Bound">m</a><a id="46792" class="Symbol">}</a> <a id="46794" class="Symbol">{</a><a id="46795" href="Data.Nat.Properties.html#46795" class="Bound">n</a><a id="46796" class="Symbol">}</a> <a id="46798" href="Data.Nat.Properties.html#46798" class="Bound">n≤m</a> <a id="46802" class="Symbol">=</a> <a id="46804" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="46821" class="Symbol">(</a><a id="46822" href="Data.Nat.Properties.html#46791" class="Bound">m</a> <a id="46824" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="46826" href="Data.Nat.Properties.html#46795" class="Bound">n</a><a id="46827" class="Symbol">)</a> <a id="46829" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="46831" href="Data.Nat.Properties.html#46795" class="Bound">n</a> <a id="46833" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="46836" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="46840" class="Symbol">(</a><a id="46841" href="Data.Nat.Properties.html#45354" class="Function">+-∸-comm</a> <a id="46850" href="Data.Nat.Properties.html#46795" class="Bound">n</a> <a id="46852" href="Data.Nat.Properties.html#46798" class="Bound">n≤m</a><a id="46855" class="Symbol">)</a> <a id="46857" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="46861" class="Symbol">(</a><a id="46862" href="Data.Nat.Properties.html#46791" class="Bound">m</a> <a id="46864" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="46866" href="Data.Nat.Properties.html#46795" class="Bound">n</a><a id="46867" class="Symbol">)</a> <a id="46869" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="46871" href="Data.Nat.Properties.html#46795" class="Bound">n</a> <a id="46873" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="46876" href="Data.Nat.Properties.html#46218" class="Function">m+n∸n≡m</a> <a id="46884" href="Data.Nat.Properties.html#46791" class="Bound">m</a> <a id="46886" href="Data.Nat.Properties.html#46795" class="Bound">n</a> <a id="46888" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="46892" href="Data.Nat.Properties.html#46791" class="Bound">m</a> <a id="46904" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
|
||
<a id="m∸[m∸n]≡n"></a><a id="46907" href="Data.Nat.Properties.html#46907" class="Function">m∸[m∸n]≡n</a> <a id="46917" class="Symbol">:</a> <a id="46919" class="Symbol">∀</a> <a id="46921" class="Symbol">{</a><a id="46922" href="Data.Nat.Properties.html#46922" class="Bound">m</a> <a id="46924" href="Data.Nat.Properties.html#46924" class="Bound">n</a><a id="46925" class="Symbol">}</a> <a id="46927" class="Symbol">→</a> <a id="46929" href="Data.Nat.Properties.html#46924" class="Bound">n</a> <a id="46931" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="46933" href="Data.Nat.Properties.html#46922" class="Bound">m</a> <a id="46935" class="Symbol">→</a> <a id="46937" href="Data.Nat.Properties.html#46922" class="Bound">m</a> <a id="46939" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="46941" class="Symbol">(</a><a id="46942" href="Data.Nat.Properties.html#46922" class="Bound">m</a> <a id="46944" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="46946" href="Data.Nat.Properties.html#46924" class="Bound">n</a><a id="46947" class="Symbol">)</a> <a id="46949" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="46951" href="Data.Nat.Properties.html#46924" class="Bound">n</a>
|
||
<a id="46953" href="Data.Nat.Properties.html#46907" class="Function">m∸[m∸n]≡n</a> <a id="46963" class="Symbol">{</a><a id="46964" href="Data.Nat.Properties.html#46964" class="Bound">m</a><a id="46965" class="Symbol">}</a> <a id="46971" class="Symbol">{_}</a> <a id="46979" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="46989" class="Symbol">=</a> <a id="46991" href="Data.Nat.Properties.html#42149" class="Function">n∸n≡0</a> <a id="46997" href="Data.Nat.Properties.html#46964" class="Bound">m</a>
|
||
<a id="46999" href="Data.Nat.Properties.html#46907" class="Function">m∸[m∸n]≡n</a> <a id="47009" class="Symbol">{</a><a id="47010" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="47014" href="Data.Nat.Properties.html#47014" class="Bound">m</a><a id="47015" class="Symbol">}</a> <a id="47017" class="Symbol">{</a><a id="47018" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="47022" href="Data.Nat.Properties.html#47022" class="Bound">n</a><a id="47023" class="Symbol">}</a> <a id="47025" class="Symbol">(</a><a id="47026" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="47030" href="Data.Nat.Properties.html#47030" class="Bound">n≤m</a><a id="47033" class="Symbol">)</a> <a id="47035" class="Symbol">=</a> <a id="47037" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="47054" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="47058" href="Data.Nat.Properties.html#47014" class="Bound">m</a> <a id="47060" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="47062" class="Symbol">(</a><a id="47063" href="Data.Nat.Properties.html#47014" class="Bound">m</a> <a id="47065" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="47067" href="Data.Nat.Properties.html#47022" class="Bound">n</a><a id="47068" class="Symbol">)</a> <a id="47072" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="47075" href="Data.Nat.Properties.html#45747" class="Function">+-∸-assoc</a> <a id="47085" class="Number">1</a> <a id="47087" class="Symbol">(</a><a id="47088" href="Data.Nat.Properties.html#42665" class="Function">m∸n≤m</a> <a id="47094" href="Data.Nat.Properties.html#47014" class="Bound">m</a> <a id="47096" href="Data.Nat.Properties.html#47022" class="Bound">n</a><a id="47097" class="Symbol">)</a> <a id="47099" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="47103" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="47107" class="Symbol">(</a><a id="47108" href="Data.Nat.Properties.html#47014" class="Bound">m</a> <a id="47110" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="47112" class="Symbol">(</a><a id="47113" href="Data.Nat.Properties.html#47014" class="Bound">m</a> <a id="47115" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="47117" href="Data.Nat.Properties.html#47022" class="Bound">n</a><a id="47118" class="Symbol">))</a> <a id="47121" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="47124" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="47129" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="47133" class="Symbol">(</a><a id="47134" href="Data.Nat.Properties.html#46907" class="Function">m∸[m∸n]≡n</a> <a id="47144" href="Data.Nat.Properties.html#47030" class="Bound">n≤m</a><a id="47147" class="Symbol">)</a> <a id="47149" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="47153" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="47157" href="Data.Nat.Properties.html#47022" class="Bound">n</a> <a id="47171" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
|
||
<a id="[m+n]∸[m+o]≡n∸o"></a><a id="47174" href="Data.Nat.Properties.html#47174" class="Function">[m+n]∸[m+o]≡n∸o</a> <a id="47190" class="Symbol">:</a> <a id="47192" class="Symbol">∀</a> <a id="47194" href="Data.Nat.Properties.html#47194" class="Bound">m</a> <a id="47196" href="Data.Nat.Properties.html#47196" class="Bound">n</a> <a id="47198" href="Data.Nat.Properties.html#47198" class="Bound">o</a> <a id="47200" class="Symbol">→</a> <a id="47202" class="Symbol">(</a><a id="47203" href="Data.Nat.Properties.html#47194" class="Bound">m</a> <a id="47205" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="47207" href="Data.Nat.Properties.html#47196" class="Bound">n</a><a id="47208" class="Symbol">)</a> <a id="47210" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="47212" class="Symbol">(</a><a id="47213" href="Data.Nat.Properties.html#47194" class="Bound">m</a> <a id="47215" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="47217" href="Data.Nat.Properties.html#47198" class="Bound">o</a><a id="47218" class="Symbol">)</a> <a id="47220" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="47222" href="Data.Nat.Properties.html#47196" class="Bound">n</a> <a id="47224" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="47226" href="Data.Nat.Properties.html#47198" class="Bound">o</a>
|
||
<a id="47228" href="Data.Nat.Properties.html#47174" class="Function">[m+n]∸[m+o]≡n∸o</a> <a id="47244" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="47252" href="Data.Nat.Properties.html#47252" class="Bound">n</a> <a id="47254" href="Data.Nat.Properties.html#47254" class="Bound">o</a> <a id="47256" class="Symbol">=</a> <a id="47258" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="47263" href="Data.Nat.Properties.html#47174" class="Function">[m+n]∸[m+o]≡n∸o</a> <a id="47279" class="Symbol">(</a><a id="47280" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="47284" href="Data.Nat.Properties.html#47284" class="Bound">m</a><a id="47285" class="Symbol">)</a> <a id="47287" href="Data.Nat.Properties.html#47287" class="Bound">n</a> <a id="47289" href="Data.Nat.Properties.html#47289" class="Bound">o</a> <a id="47291" class="Symbol">=</a> <a id="47293" href="Data.Nat.Properties.html#47174" class="Function">[m+n]∸[m+o]≡n∸o</a> <a id="47309" href="Data.Nat.Properties.html#47284" class="Bound">m</a> <a id="47311" href="Data.Nat.Properties.html#47287" class="Bound">n</a> <a id="47313" href="Data.Nat.Properties.html#47289" class="Bound">o</a>
|
||
|
||
<a id="47316" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="47389" class="Comment">-- Properties of _∸_ and _*_</a>
|
||
|
||
<a id="*-distribʳ-∸"></a><a id="47419" href="Data.Nat.Properties.html#47419" class="Function">*-distribʳ-∸</a> <a id="47432" class="Symbol">:</a> <a id="47434" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a> <a id="47438" href="Algebra.Definitions.html#2355" class="Function Operator">DistributesOverʳ</a> <a id="47455" href="Data.Nat.Base.html#2883" class="Primitive Operator">_∸_</a>
|
||
<a id="47459" href="Data.Nat.Properties.html#47419" class="Function">*-distribʳ-∸</a> <a id="47472" href="Data.Nat.Properties.html#47472" class="Bound">m</a> <a id="47480" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="47488" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="47496" class="Symbol">=</a> <a id="47498" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="47503" href="Data.Nat.Properties.html#47419" class="Function">*-distribʳ-∸</a> <a id="47516" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="47524" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="47532" class="Symbol">(</a><a id="47533" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="47537" href="Data.Nat.Properties.html#47537" class="Bound">o</a><a id="47538" class="Symbol">)</a> <a id="47540" class="Symbol">=</a> <a id="47542" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="47546" class="Symbol">(</a><a id="47547" href="Data.Nat.Properties.html#42080" class="Function">0∸n≡0</a> <a id="47553" class="Symbol">(</a><a id="47554" href="Data.Nat.Properties.html#47537" class="Bound">o</a> <a id="47556" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="47558" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="47562" class="Symbol">))</a>
|
||
<a id="47565" href="Data.Nat.Properties.html#47419" class="Function">*-distribʳ-∸</a> <a id="47578" class="Symbol">(</a><a id="47579" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="47583" href="Data.Nat.Properties.html#47583" class="Bound">m</a><a id="47584" class="Symbol">)</a> <a id="47586" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="47594" class="Symbol">(</a><a id="47595" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="47599" href="Data.Nat.Properties.html#47599" class="Bound">o</a><a id="47600" class="Symbol">)</a> <a id="47602" class="Symbol">=</a> <a id="47604" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="47609" href="Data.Nat.Properties.html#47419" class="Function">*-distribʳ-∸</a> <a id="47622" href="Data.Nat.Properties.html#47622" class="Bound">m</a> <a id="47630" class="Symbol">(</a><a id="47631" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="47635" href="Data.Nat.Properties.html#47635" class="Bound">n</a><a id="47636" class="Symbol">)</a> <a id="47638" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="47646" class="Symbol">=</a> <a id="47648" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="47653" href="Data.Nat.Properties.html#47419" class="Function">*-distribʳ-∸</a> <a id="47666" href="Data.Nat.Properties.html#47666" class="Bound">m</a> <a id="47674" class="Symbol">(</a><a id="47675" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="47679" href="Data.Nat.Properties.html#47679" class="Bound">n</a><a id="47680" class="Symbol">)</a> <a id="47682" class="Symbol">(</a><a id="47683" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="47687" href="Data.Nat.Properties.html#47687" class="Bound">o</a><a id="47688" class="Symbol">)</a> <a id="47690" class="Symbol">=</a> <a id="47692" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="47709" class="Symbol">(</a><a id="47710" href="Data.Nat.Properties.html#47679" class="Bound">n</a> <a id="47712" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="47714" href="Data.Nat.Properties.html#47687" class="Bound">o</a><a id="47715" class="Symbol">)</a> <a id="47717" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="47719" href="Data.Nat.Properties.html#47666" class="Bound">m</a> <a id="47733" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="47736" href="Data.Nat.Properties.html#47419" class="Function">*-distribʳ-∸</a> <a id="47749" href="Data.Nat.Properties.html#47666" class="Bound">m</a> <a id="47751" href="Data.Nat.Properties.html#47679" class="Bound">n</a> <a id="47753" href="Data.Nat.Properties.html#47687" class="Bound">o</a> <a id="47755" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="47759" href="Data.Nat.Properties.html#47679" class="Bound">n</a> <a id="47761" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="47763" href="Data.Nat.Properties.html#47666" class="Bound">m</a> <a id="47765" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="47767" href="Data.Nat.Properties.html#47687" class="Bound">o</a> <a id="47769" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="47771" href="Data.Nat.Properties.html#47666" class="Bound">m</a> <a id="47783" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="47786" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="47790" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="47792" href="Data.Nat.Properties.html#47174" class="Function">[m+n]∸[m+o]≡n∸o</a> <a id="47808" href="Data.Nat.Properties.html#47666" class="Bound">m</a> <a id="47810" class="Symbol">_</a> <a id="47812" class="Symbol">_</a> <a id="47814" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="47818" href="Data.Nat.Properties.html#47666" class="Bound">m</a> <a id="47820" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="47822" href="Data.Nat.Properties.html#47679" class="Bound">n</a> <a id="47824" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="47826" href="Data.Nat.Properties.html#47666" class="Bound">m</a> <a id="47828" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="47830" class="Symbol">(</a><a id="47831" href="Data.Nat.Properties.html#47666" class="Bound">m</a> <a id="47833" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="47835" href="Data.Nat.Properties.html#47687" class="Bound">o</a> <a id="47837" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="47839" href="Data.Nat.Properties.html#47666" class="Bound">m</a><a id="47840" class="Symbol">)</a> <a id="47842" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
|
||
<a id="*-distribˡ-∸"></a><a id="47845" href="Data.Nat.Properties.html#47845" class="Function">*-distribˡ-∸</a> <a id="47858" class="Symbol">:</a> <a id="47860" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a> <a id="47864" href="Algebra.Definitions.html#2236" class="Function Operator">DistributesOverˡ</a> <a id="47881" href="Data.Nat.Base.html#2883" class="Primitive Operator">_∸_</a>
|
||
<a id="47885" href="Data.Nat.Properties.html#47845" class="Function">*-distribˡ-∸</a> <a id="47898" class="Symbol">=</a> <a id="47900" href="Algebra.Consequences.Propositional.html#2831" class="Function">comm+distrʳ⇒distrˡ</a> <a id="47919" href="Data.Nat.Properties.html#20365" class="Function">*-comm</a> <a id="47926" href="Data.Nat.Properties.html#47419" class="Function">*-distribʳ-∸</a>
|
||
|
||
<a id="*-distrib-∸"></a><a id="47940" href="Data.Nat.Properties.html#47940" class="Function">*-distrib-∸</a> <a id="47952" class="Symbol">:</a> <a id="47954" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a> <a id="47958" href="Algebra.Definitions.html#2474" class="Function Operator">DistributesOver</a> <a id="47974" href="Data.Nat.Base.html#2883" class="Primitive Operator">_∸_</a>
|
||
<a id="47978" href="Data.Nat.Properties.html#47940" class="Function">*-distrib-∸</a> <a id="47990" class="Symbol">=</a> <a id="47992" href="Data.Nat.Properties.html#47845" class="Function">*-distribˡ-∸</a> <a id="48005" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="48007" href="Data.Nat.Properties.html#47419" class="Function">*-distribʳ-∸</a>
|
||
|
||
<a id="even≢odd"></a><a id="48021" href="Data.Nat.Properties.html#48021" class="Function">even≢odd</a> <a id="48030" class="Symbol">:</a> <a id="48033" class="Symbol">∀</a> <a id="48035" href="Data.Nat.Properties.html#48035" class="Bound">m</a> <a id="48037" href="Data.Nat.Properties.html#48037" class="Bound">n</a> <a id="48039" class="Symbol">→</a> <a id="48041" class="Number">2</a> <a id="48043" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="48045" href="Data.Nat.Properties.html#48035" class="Bound">m</a> <a id="48047" href="Relation.Binary.PropositionalEquality.Core.html#839" class="Function Operator">≢</a> <a id="48049" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="48053" class="Symbol">(</a><a id="48054" class="Number">2</a> <a id="48056" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="48058" href="Data.Nat.Properties.html#48037" class="Bound">n</a><a id="48059" class="Symbol">)</a>
|
||
<a id="48061" href="Data.Nat.Properties.html#48021" class="Function">even≢odd</a> <a id="48070" class="Symbol">(</a><a id="48071" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="48075" href="Data.Nat.Properties.html#48075" class="Bound">m</a><a id="48076" class="Symbol">)</a> <a id="48078" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="48086" href="Data.Nat.Properties.html#48086" class="Bound">eq</a> <a id="48089" class="Symbol">=</a> <a id="48091" href="Relation.Nullary.Negation.Core.html#787" class="Function">contradiction</a> <a id="48105" class="Symbol">(</a><a id="48106" href="Data.Nat.Properties.html#1920" class="Function">suc-injective</a> <a id="48120" href="Data.Nat.Properties.html#48086" class="Bound">eq</a><a id="48122" class="Symbol">)</a> <a id="48124" class="Symbol">(</a><a id="48125" href="Data.Nat.Properties.html#15909" class="Function">m+1+n≢0</a> <a id="48133" href="Data.Nat.Properties.html#48075" class="Bound">m</a><a id="48134" class="Symbol">)</a>
|
||
<a id="48136" href="Data.Nat.Properties.html#48021" class="Function">even≢odd</a> <a id="48145" class="Symbol">(</a><a id="48146" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="48150" href="Data.Nat.Properties.html#48150" class="Bound">m</a><a id="48151" class="Symbol">)</a> <a id="48153" class="Symbol">(</a><a id="48154" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="48158" href="Data.Nat.Properties.html#48158" class="Bound">n</a><a id="48159" class="Symbol">)</a> <a id="48161" href="Data.Nat.Properties.html#48161" class="Bound">eq</a> <a id="48164" class="Symbol">=</a> <a id="48166" href="Data.Nat.Properties.html#48021" class="Function">even≢odd</a> <a id="48175" href="Data.Nat.Properties.html#48150" class="Bound">m</a> <a id="48177" href="Data.Nat.Properties.html#48158" class="Bound">n</a> <a id="48179" class="Symbol">(</a><a id="48180" href="Data.Nat.Properties.html#1920" class="Function">suc-injective</a> <a id="48194" class="Symbol">(</a><a id="48195" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="48212" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="48216" class="Symbol">(</a><a id="48217" class="Number">2</a> <a id="48219" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="48221" href="Data.Nat.Properties.html#48150" class="Bound">m</a><a id="48222" class="Symbol">)</a> <a id="48232" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="48235" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="48239" class="Symbol">(</a><a id="48240" href="Data.Nat.Properties.html#12863" class="Function">+-suc</a> <a id="48246" href="Data.Nat.Properties.html#48150" class="Bound">m</a> <a id="48248" class="Symbol">_)</a> <a id="48251" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="48255" href="Data.Nat.Properties.html#48150" class="Bound">m</a> <a id="48257" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="48259" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="48263" class="Symbol">(</a><a id="48264" href="Data.Nat.Properties.html#48150" class="Bound">m</a> <a id="48266" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="48268" class="Number">0</a><a id="48269" class="Symbol">)</a> <a id="48275" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="48278" href="Data.Nat.Properties.html#1920" class="Function">suc-injective</a> <a id="48292" href="Data.Nat.Properties.html#48161" class="Bound">eq</a> <a id="48295" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="48299" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="48303" href="Data.Nat.Properties.html#48158" class="Bound">n</a> <a id="48305" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="48307" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="48311" class="Symbol">(</a><a id="48312" href="Data.Nat.Properties.html#48158" class="Bound">n</a> <a id="48314" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="48316" class="Number">0</a><a id="48317" class="Symbol">)</a> <a id="48319" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="48322" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="48327" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="48331" class="Symbol">(</a><a id="48332" href="Data.Nat.Properties.html#12863" class="Function">+-suc</a> <a id="48338" href="Data.Nat.Properties.html#48158" class="Bound">n</a> <a id="48340" class="Symbol">_)</a> <a id="48343" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="48347" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="48351" class="Symbol">(</a><a id="48352" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="48356" class="Symbol">(</a><a id="48357" class="Number">2</a> <a id="48359" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="48361" href="Data.Nat.Properties.html#48158" class="Bound">n</a><a id="48362" class="Symbol">))</a> <a id="48367" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a><a id="48368" class="Symbol">))</a>
|
||
|
||
<a id="48372" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="48445" class="Comment">-- Properties of _∸_ and _⊓_ and _⊔_</a>
|
||
|
||
<a id="m⊓n+n∸m≡n"></a><a id="48483" href="Data.Nat.Properties.html#48483" class="Function">m⊓n+n∸m≡n</a> <a id="48493" class="Symbol">:</a> <a id="48495" class="Symbol">∀</a> <a id="48497" href="Data.Nat.Properties.html#48497" class="Bound">m</a> <a id="48499" href="Data.Nat.Properties.html#48499" class="Bound">n</a> <a id="48501" class="Symbol">→</a> <a id="48503" class="Symbol">(</a><a id="48504" href="Data.Nat.Properties.html#48497" class="Bound">m</a> <a id="48506" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="48508" href="Data.Nat.Properties.html#48499" class="Bound">n</a><a id="48509" class="Symbol">)</a> <a id="48511" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="48513" class="Symbol">(</a><a id="48514" href="Data.Nat.Properties.html#48499" class="Bound">n</a> <a id="48516" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="48518" href="Data.Nat.Properties.html#48497" class="Bound">m</a><a id="48519" class="Symbol">)</a> <a id="48521" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="48523" href="Data.Nat.Properties.html#48499" class="Bound">n</a>
|
||
<a id="48525" href="Data.Nat.Properties.html#48483" class="Function">m⊓n+n∸m≡n</a> <a id="48535" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="48543" href="Data.Nat.Properties.html#48543" class="Bound">n</a> <a id="48551" class="Symbol">=</a> <a id="48553" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="48558" href="Data.Nat.Properties.html#48483" class="Function">m⊓n+n∸m≡n</a> <a id="48568" class="Symbol">(</a><a id="48569" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="48573" href="Data.Nat.Properties.html#48573" class="Bound">m</a><a id="48574" class="Symbol">)</a> <a id="48576" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="48584" class="Symbol">=</a> <a id="48586" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="48591" href="Data.Nat.Properties.html#48483" class="Function">m⊓n+n∸m≡n</a> <a id="48601" class="Symbol">(</a><a id="48602" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="48606" href="Data.Nat.Properties.html#48606" class="Bound">m</a><a id="48607" class="Symbol">)</a> <a id="48609" class="Symbol">(</a><a id="48610" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="48614" href="Data.Nat.Properties.html#48614" class="Bound">n</a><a id="48615" class="Symbol">)</a> <a id="48617" class="Symbol">=</a> <a id="48619" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="48624" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="48628" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="48630" href="Data.Nat.Properties.html#48483" class="Function">m⊓n+n∸m≡n</a> <a id="48640" href="Data.Nat.Properties.html#48606" class="Bound">m</a> <a id="48642" href="Data.Nat.Properties.html#48614" class="Bound">n</a>
|
||
|
||
<a id="[m∸n]⊓[n∸m]≡0"></a><a id="48645" href="Data.Nat.Properties.html#48645" class="Function">[m∸n]⊓[n∸m]≡0</a> <a id="48659" class="Symbol">:</a> <a id="48661" class="Symbol">∀</a> <a id="48663" href="Data.Nat.Properties.html#48663" class="Bound">m</a> <a id="48665" href="Data.Nat.Properties.html#48665" class="Bound">n</a> <a id="48667" class="Symbol">→</a> <a id="48669" class="Symbol">(</a><a id="48670" href="Data.Nat.Properties.html#48663" class="Bound">m</a> <a id="48672" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="48674" href="Data.Nat.Properties.html#48665" class="Bound">n</a><a id="48675" class="Symbol">)</a> <a id="48677" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="48679" class="Symbol">(</a><a id="48680" href="Data.Nat.Properties.html#48665" class="Bound">n</a> <a id="48682" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="48684" href="Data.Nat.Properties.html#48663" class="Bound">m</a><a id="48685" class="Symbol">)</a> <a id="48687" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="48689" class="Number">0</a>
|
||
<a id="48691" href="Data.Nat.Properties.html#48645" class="Function">[m∸n]⊓[n∸m]≡0</a> <a id="48705" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="48710" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="48721" class="Symbol">=</a> <a id="48723" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="48728" href="Data.Nat.Properties.html#48645" class="Function">[m∸n]⊓[n∸m]≡0</a> <a id="48742" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="48747" class="Symbol">(</a><a id="48748" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="48752" href="Data.Nat.Properties.html#48752" class="Bound">n</a><a id="48753" class="Symbol">)</a> <a id="48758" class="Symbol">=</a> <a id="48760" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="48765" href="Data.Nat.Properties.html#48645" class="Function">[m∸n]⊓[n∸m]≡0</a> <a id="48779" class="Symbol">(</a><a id="48780" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="48784" href="Data.Nat.Properties.html#48784" class="Bound">m</a><a id="48785" class="Symbol">)</a> <a id="48787" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="48795" class="Symbol">=</a> <a id="48797" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="48802" href="Data.Nat.Properties.html#48645" class="Function">[m∸n]⊓[n∸m]≡0</a> <a id="48816" class="Symbol">(</a><a id="48817" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="48821" href="Data.Nat.Properties.html#48821" class="Bound">m</a><a id="48822" class="Symbol">)</a> <a id="48824" class="Symbol">(</a><a id="48825" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="48829" href="Data.Nat.Properties.html#48829" class="Bound">n</a><a id="48830" class="Symbol">)</a> <a id="48832" class="Symbol">=</a> <a id="48834" href="Data.Nat.Properties.html#48645" class="Function">[m∸n]⊓[n∸m]≡0</a> <a id="48848" href="Data.Nat.Properties.html#48821" class="Bound">m</a> <a id="48850" href="Data.Nat.Properties.html#48829" class="Bound">n</a>
|
||
|
||
<a id="∸-distribˡ-⊓-⊔"></a><a id="48853" href="Data.Nat.Properties.html#48853" class="Function">∸-distribˡ-⊓-⊔</a> <a id="48868" class="Symbol">:</a> <a id="48870" class="Symbol">∀</a> <a id="48872" href="Data.Nat.Properties.html#48872" class="Bound">m</a> <a id="48874" href="Data.Nat.Properties.html#48874" class="Bound">n</a> <a id="48876" href="Data.Nat.Properties.html#48876" class="Bound">o</a> <a id="48878" class="Symbol">→</a> <a id="48880" href="Data.Nat.Properties.html#48872" class="Bound">m</a> <a id="48882" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="48884" class="Symbol">(</a><a id="48885" href="Data.Nat.Properties.html#48874" class="Bound">n</a> <a id="48887" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="48889" href="Data.Nat.Properties.html#48876" class="Bound">o</a><a id="48890" class="Symbol">)</a> <a id="48892" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="48894" class="Symbol">(</a><a id="48895" href="Data.Nat.Properties.html#48872" class="Bound">m</a> <a id="48897" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="48899" href="Data.Nat.Properties.html#48874" class="Bound">n</a><a id="48900" class="Symbol">)</a> <a id="48902" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="48904" class="Symbol">(</a><a id="48905" href="Data.Nat.Properties.html#48872" class="Bound">m</a> <a id="48907" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="48909" href="Data.Nat.Properties.html#48876" class="Bound">o</a><a id="48910" class="Symbol">)</a>
|
||
<a id="48912" href="Data.Nat.Properties.html#48853" class="Function">∸-distribˡ-⊓-⊔</a> <a id="48927" href="Data.Nat.Properties.html#48927" class="Bound">m</a> <a id="48929" href="Data.Nat.Properties.html#48929" class="Bound">n</a> <a id="48931" href="Data.Nat.Properties.html#48931" class="Bound">o</a> <a id="48933" class="Symbol">=</a> <a id="48935" href="Data.Nat.Properties.html#35881" class="Function">antimono-≤-distrib-⊓</a> <a id="48956" class="Symbol">(</a><a id="48957" href="Data.Nat.Properties.html#43296" class="Function">∸-monoʳ-≤</a> <a id="48967" href="Data.Nat.Properties.html#48927" class="Bound">m</a><a id="48968" class="Symbol">)</a> <a id="48970" href="Data.Nat.Properties.html#48929" class="Bound">n</a> <a id="48972" href="Data.Nat.Properties.html#48931" class="Bound">o</a>
|
||
|
||
<a id="∸-distribʳ-⊓"></a><a id="48975" href="Data.Nat.Properties.html#48975" class="Function">∸-distribʳ-⊓</a> <a id="48988" class="Symbol">:</a> <a id="48990" href="Data.Nat.Base.html#2883" class="Primitive Operator">_∸_</a> <a id="48994" href="Algebra.Definitions.html#2355" class="Function Operator">DistributesOverʳ</a> <a id="49011" href="Data.Nat.Base.html#3166" class="Function Operator">_⊓_</a>
|
||
<a id="49015" href="Data.Nat.Properties.html#48975" class="Function">∸-distribʳ-⊓</a> <a id="49028" href="Data.Nat.Properties.html#49028" class="Bound">m</a> <a id="49030" href="Data.Nat.Properties.html#49030" class="Bound">n</a> <a id="49032" href="Data.Nat.Properties.html#49032" class="Bound">o</a> <a id="49034" class="Symbol">=</a> <a id="49036" href="Data.Nat.Properties.html#35716" class="Function">mono-≤-distrib-⊓</a> <a id="49053" class="Symbol">(</a><a id="49054" href="Data.Nat.Properties.html#43205" class="Function">∸-monoˡ-≤</a> <a id="49064" href="Data.Nat.Properties.html#49028" class="Bound">m</a><a id="49065" class="Symbol">)</a> <a id="49067" href="Data.Nat.Properties.html#49030" class="Bound">n</a> <a id="49069" href="Data.Nat.Properties.html#49032" class="Bound">o</a>
|
||
|
||
<a id="∸-distribˡ-⊔-⊓"></a><a id="49072" href="Data.Nat.Properties.html#49072" class="Function">∸-distribˡ-⊔-⊓</a> <a id="49087" class="Symbol">:</a> <a id="49089" class="Symbol">∀</a> <a id="49091" href="Data.Nat.Properties.html#49091" class="Bound">m</a> <a id="49093" href="Data.Nat.Properties.html#49093" class="Bound">n</a> <a id="49095" href="Data.Nat.Properties.html#49095" class="Bound">o</a> <a id="49097" class="Symbol">→</a> <a id="49099" href="Data.Nat.Properties.html#49091" class="Bound">m</a> <a id="49101" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="49103" class="Symbol">(</a><a id="49104" href="Data.Nat.Properties.html#49093" class="Bound">n</a> <a id="49106" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="49108" href="Data.Nat.Properties.html#49095" class="Bound">o</a><a id="49109" class="Symbol">)</a> <a id="49111" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="49113" class="Symbol">(</a><a id="49114" href="Data.Nat.Properties.html#49091" class="Bound">m</a> <a id="49116" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="49118" href="Data.Nat.Properties.html#49093" class="Bound">n</a><a id="49119" class="Symbol">)</a> <a id="49121" href="Data.Nat.Base.html#3166" class="Function Operator">⊓</a> <a id="49123" class="Symbol">(</a><a id="49124" href="Data.Nat.Properties.html#49091" class="Bound">m</a> <a id="49126" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="49128" href="Data.Nat.Properties.html#49095" class="Bound">o</a><a id="49129" class="Symbol">)</a>
|
||
<a id="49131" href="Data.Nat.Properties.html#49072" class="Function">∸-distribˡ-⊔-⊓</a> <a id="49146" href="Data.Nat.Properties.html#49146" class="Bound">m</a> <a id="49148" href="Data.Nat.Properties.html#49148" class="Bound">n</a> <a id="49150" href="Data.Nat.Properties.html#49150" class="Bound">o</a> <a id="49152" class="Symbol">=</a> <a id="49154" href="Data.Nat.Properties.html#36062" class="Function">antimono-≤-distrib-⊔</a> <a id="49175" class="Symbol">(</a><a id="49176" href="Data.Nat.Properties.html#43296" class="Function">∸-monoʳ-≤</a> <a id="49186" href="Data.Nat.Properties.html#49146" class="Bound">m</a><a id="49187" class="Symbol">)</a> <a id="49189" href="Data.Nat.Properties.html#49148" class="Bound">n</a> <a id="49191" href="Data.Nat.Properties.html#49150" class="Bound">o</a>
|
||
|
||
<a id="∸-distribʳ-⊔"></a><a id="49194" href="Data.Nat.Properties.html#49194" class="Function">∸-distribʳ-⊔</a> <a id="49207" class="Symbol">:</a> <a id="49209" href="Data.Nat.Base.html#2883" class="Primitive Operator">_∸_</a> <a id="49213" href="Algebra.Definitions.html#2355" class="Function Operator">DistributesOverʳ</a> <a id="49230" href="Data.Nat.Base.html#3072" class="Function Operator">_⊔_</a>
|
||
<a id="49234" href="Data.Nat.Properties.html#49194" class="Function">∸-distribʳ-⊔</a> <a id="49247" href="Data.Nat.Properties.html#49247" class="Bound">m</a> <a id="49249" href="Data.Nat.Properties.html#49249" class="Bound">n</a> <a id="49251" href="Data.Nat.Properties.html#49251" class="Bound">o</a> <a id="49253" class="Symbol">=</a> <a id="49255" href="Data.Nat.Properties.html#35551" class="Function">mono-≤-distrib-⊔</a> <a id="49272" class="Symbol">(</a><a id="49273" href="Data.Nat.Properties.html#43205" class="Function">∸-monoˡ-≤</a> <a id="49283" href="Data.Nat.Properties.html#49247" class="Bound">m</a><a id="49284" class="Symbol">)</a> <a id="49286" href="Data.Nat.Properties.html#49249" class="Bound">n</a> <a id="49288" href="Data.Nat.Properties.html#49251" class="Bound">o</a>
|
||
|
||
<a id="49291" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="49364" class="Comment">-- Properties of pred</a>
|
||
<a id="49386" class="Comment">------------------------------------------------------------------------</a>
|
||
|
||
<a id="pred-mono"></a><a id="49460" href="Data.Nat.Properties.html#49460" class="Function">pred-mono</a> <a id="49470" class="Symbol">:</a> <a id="49472" href="Data.Nat.Base.html#2889" class="Function">pred</a> <a id="49477" href="Relation.Binary.Core.html#1572" class="Function Operator">Preserves</a> <a id="49487" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="49491" href="Relation.Binary.Core.html#1572" class="Function Operator">⟶</a> <a id="49493" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="49497" href="Data.Nat.Properties.html#49460" class="Function">pred-mono</a> <a id="49507" href="Data.Nat.Properties.html#49507" class="Bound">m≤n</a> <a id="49511" class="Symbol">=</a> <a id="49513" href="Data.Nat.Properties.html#43006" class="Function">∸-mono</a> <a id="49520" href="Data.Nat.Properties.html#49507" class="Bound">m≤n</a> <a id="49524" class="Symbol">(</a><a id="49525" href="Data.Nat.Properties.html#4574" class="Function">≤-refl</a> <a id="49532" class="Symbol">{</a><a id="49533" class="Number">1</a><a id="49534" class="Symbol">})</a>
|
||
|
||
<a id="pred[n]≤n"></a><a id="49538" href="Data.Nat.Properties.html#49538" class="Function">pred[n]≤n</a> <a id="49548" class="Symbol">:</a> <a id="49550" class="Symbol">∀</a> <a id="49552" class="Symbol">{</a><a id="49553" href="Data.Nat.Properties.html#49553" class="Bound">n</a><a id="49554" class="Symbol">}</a> <a id="49556" class="Symbol">→</a> <a id="49558" href="Data.Nat.Base.html#2889" class="Function">pred</a> <a id="49563" href="Data.Nat.Properties.html#49553" class="Bound">n</a> <a id="49565" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="49567" href="Data.Nat.Properties.html#49553" class="Bound">n</a>
|
||
<a id="49569" href="Data.Nat.Properties.html#49538" class="Function">pred[n]≤n</a> <a id="49579" class="Symbol">{</a><a id="49580" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="49584" class="Symbol">}</a> <a id="49587" class="Symbol">=</a> <a id="49589" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="49593" href="Data.Nat.Properties.html#49538" class="Function">pred[n]≤n</a> <a id="49603" class="Symbol">{</a><a id="49604" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="49608" href="Data.Nat.Properties.html#49608" class="Bound">n</a><a id="49609" class="Symbol">}</a> <a id="49611" class="Symbol">=</a> <a id="49613" href="Data.Nat.Properties.html#7288" class="Function">n≤1+n</a> <a id="49619" href="Data.Nat.Properties.html#49608" class="Bound">n</a>
|
||
|
||
<a id="≤pred⇒≤"></a><a id="49622" href="Data.Nat.Properties.html#49622" class="Function">≤pred⇒≤</a> <a id="49630" class="Symbol">:</a> <a id="49632" class="Symbol">∀</a> <a id="49634" class="Symbol">{</a><a id="49635" href="Data.Nat.Properties.html#49635" class="Bound">m</a> <a id="49637" href="Data.Nat.Properties.html#49637" class="Bound">n</a><a id="49638" class="Symbol">}</a> <a id="49640" class="Symbol">→</a> <a id="49642" href="Data.Nat.Properties.html#49635" class="Bound">m</a> <a id="49644" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="49646" href="Data.Nat.Base.html#2889" class="Function">pred</a> <a id="49651" href="Data.Nat.Properties.html#49637" class="Bound">n</a> <a id="49653" class="Symbol">→</a> <a id="49655" href="Data.Nat.Properties.html#49635" class="Bound">m</a> <a id="49657" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="49659" href="Data.Nat.Properties.html#49637" class="Bound">n</a>
|
||
<a id="49661" href="Data.Nat.Properties.html#49622" class="Function">≤pred⇒≤</a> <a id="49669" class="Symbol">{</a><a id="49670" href="Data.Nat.Properties.html#49670" class="Bound">m</a><a id="49671" class="Symbol">}</a> <a id="49673" class="Symbol">{</a><a id="49674" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="49678" class="Symbol">}</a> <a id="49681" href="Data.Nat.Properties.html#49681" class="Bound">le</a> <a id="49684" class="Symbol">=</a> <a id="49686" href="Data.Nat.Properties.html#49681" class="Bound">le</a>
|
||
<a id="49689" href="Data.Nat.Properties.html#49622" class="Function">≤pred⇒≤</a> <a id="49697" class="Symbol">{</a><a id="49698" href="Data.Nat.Properties.html#49698" class="Bound">m</a><a id="49699" class="Symbol">}</a> <a id="49701" class="Symbol">{</a><a id="49702" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="49706" href="Data.Nat.Properties.html#49706" class="Bound">n</a><a id="49707" class="Symbol">}</a> <a id="49709" href="Data.Nat.Properties.html#49709" class="Bound">le</a> <a id="49712" class="Symbol">=</a> <a id="49714" href="Data.Nat.Properties.html#7191" class="Function">≤-step</a> <a id="49721" href="Data.Nat.Properties.html#49709" class="Bound">le</a>
|
||
|
||
<a id="≤⇒pred≤"></a><a id="49725" href="Data.Nat.Properties.html#49725" class="Function">≤⇒pred≤</a> <a id="49733" class="Symbol">:</a> <a id="49735" class="Symbol">∀</a> <a id="49737" class="Symbol">{</a><a id="49738" href="Data.Nat.Properties.html#49738" class="Bound">m</a> <a id="49740" href="Data.Nat.Properties.html#49740" class="Bound">n</a><a id="49741" class="Symbol">}</a> <a id="49743" class="Symbol">→</a> <a id="49745" href="Data.Nat.Properties.html#49738" class="Bound">m</a> <a id="49747" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="49749" href="Data.Nat.Properties.html#49740" class="Bound">n</a> <a id="49751" class="Symbol">→</a> <a id="49753" href="Data.Nat.Base.html#2889" class="Function">pred</a> <a id="49758" href="Data.Nat.Properties.html#49738" class="Bound">m</a> <a id="49760" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="49762" href="Data.Nat.Properties.html#49740" class="Bound">n</a>
|
||
<a id="49764" href="Data.Nat.Properties.html#49725" class="Function">≤⇒pred≤</a> <a id="49772" class="Symbol">{</a><a id="49773" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="49777" class="Symbol">}</a> <a id="49780" href="Data.Nat.Properties.html#49780" class="Bound">le</a> <a id="49783" class="Symbol">=</a> <a id="49785" href="Data.Nat.Properties.html#49780" class="Bound">le</a>
|
||
<a id="49788" href="Data.Nat.Properties.html#49725" class="Function">≤⇒pred≤</a> <a id="49796" class="Symbol">{</a><a id="49797" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="49801" href="Data.Nat.Properties.html#49801" class="Bound">m</a><a id="49802" class="Symbol">}</a> <a id="49804" href="Data.Nat.Properties.html#49804" class="Bound">le</a> <a id="49807" class="Symbol">=</a> <a id="49809" href="Data.Nat.Properties.html#4757" class="Function">≤-trans</a> <a id="49817" class="Symbol">(</a><a id="49818" href="Data.Nat.Properties.html#7288" class="Function">n≤1+n</a> <a id="49824" href="Data.Nat.Properties.html#49801" class="Bound">m</a><a id="49825" class="Symbol">)</a> <a id="49827" href="Data.Nat.Properties.html#49804" class="Bound">le</a>
|
||
|
||
<a id="<⇒≤pred"></a><a id="49831" href="Data.Nat.Properties.html#49831" class="Function"><⇒≤pred</a> <a id="49839" class="Symbol">:</a> <a id="49841" class="Symbol">∀</a> <a id="49843" class="Symbol">{</a><a id="49844" href="Data.Nat.Properties.html#49844" class="Bound">m</a> <a id="49846" href="Data.Nat.Properties.html#49846" class="Bound">n</a><a id="49847" class="Symbol">}</a> <a id="49849" class="Symbol">→</a> <a id="49851" href="Data.Nat.Properties.html#49844" class="Bound">m</a> <a id="49853" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="49855" href="Data.Nat.Properties.html#49846" class="Bound">n</a> <a id="49857" class="Symbol">→</a> <a id="49859" href="Data.Nat.Properties.html#49844" class="Bound">m</a> <a id="49861" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="49863" href="Data.Nat.Base.html#2889" class="Function">pred</a> <a id="49868" href="Data.Nat.Properties.html#49846" class="Bound">n</a>
|
||
<a id="49870" href="Data.Nat.Properties.html#49831" class="Function"><⇒≤pred</a> <a id="49878" class="Symbol">(</a><a id="49879" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="49883" href="Data.Nat.Properties.html#49883" class="Bound">le</a><a id="49885" class="Symbol">)</a> <a id="49887" class="Symbol">=</a> <a id="49889" href="Data.Nat.Properties.html#49883" class="Bound">le</a>
|
||
|
||
<a id="suc[pred[n]]≡n"></a><a id="49893" href="Data.Nat.Properties.html#49893" class="Function">suc[pred[n]]≡n</a> <a id="49908" class="Symbol">:</a> <a id="49910" class="Symbol">∀</a> <a id="49912" class="Symbol">{</a><a id="49913" href="Data.Nat.Properties.html#49913" class="Bound">n</a><a id="49914" class="Symbol">}</a> <a id="49916" class="Symbol">→</a> <a id="49918" href="Data.Nat.Properties.html#49913" class="Bound">n</a> <a id="49920" href="Relation.Binary.PropositionalEquality.Core.html#839" class="Function Operator">≢</a> <a id="49922" class="Number">0</a> <a id="49924" class="Symbol">→</a> <a id="49926" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="49930" class="Symbol">(</a><a id="49931" href="Data.Nat.Base.html#2889" class="Function">pred</a> <a id="49936" href="Data.Nat.Properties.html#49913" class="Bound">n</a><a id="49937" class="Symbol">)</a> <a id="49939" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="49941" href="Data.Nat.Properties.html#49913" class="Bound">n</a>
|
||
<a id="49943" href="Data.Nat.Properties.html#49893" class="Function">suc[pred[n]]≡n</a> <a id="49958" class="Symbol">{</a><a id="49959" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="49963" class="Symbol">}</a> <a id="49966" href="Data.Nat.Properties.html#49966" class="Bound">n≢0</a> <a id="49970" class="Symbol">=</a> <a id="49972" href="Relation.Nullary.Negation.Core.html#787" class="Function">contradiction</a> <a id="49986" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="49991" href="Data.Nat.Properties.html#49966" class="Bound">n≢0</a>
|
||
<a id="49995" href="Data.Nat.Properties.html#49893" class="Function">suc[pred[n]]≡n</a> <a id="50010" class="Symbol">{</a><a id="50011" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="50015" href="Data.Nat.Properties.html#50015" class="Bound">n</a><a id="50016" class="Symbol">}</a> <a id="50018" href="Data.Nat.Properties.html#50018" class="Bound">n≢0</a> <a id="50022" class="Symbol">=</a> <a id="50024" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
|
||
<a id="50030" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="50103" class="Comment">-- Properties of ∣_-_∣</a>
|
||
<a id="50126" class="Comment">------------------------------------------------------------------------</a>
|
||
|
||
<a id="50200" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="50273" class="Comment">-- Basic</a>
|
||
|
||
<a id="m≡n⇒∣m-n∣≡0"></a><a id="50283" href="Data.Nat.Properties.html#50283" class="Function">m≡n⇒∣m-n∣≡0</a> <a id="50295" class="Symbol">:</a> <a id="50297" class="Symbol">∀</a> <a id="50299" class="Symbol">{</a><a id="50300" href="Data.Nat.Properties.html#50300" class="Bound">m</a> <a id="50302" href="Data.Nat.Properties.html#50302" class="Bound">n</a><a id="50303" class="Symbol">}</a> <a id="50305" class="Symbol">→</a> <a id="50307" href="Data.Nat.Properties.html#50300" class="Bound">m</a> <a id="50309" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="50311" href="Data.Nat.Properties.html#50302" class="Bound">n</a> <a id="50313" class="Symbol">→</a> <a id="50315" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="50317" href="Data.Nat.Properties.html#50300" class="Bound">m</a> <a id="50319" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="50321" href="Data.Nat.Properties.html#50302" class="Bound">n</a> <a id="50323" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="50325" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="50327" class="Number">0</a>
|
||
<a id="50329" href="Data.Nat.Properties.html#50283" class="Function">m≡n⇒∣m-n∣≡0</a> <a id="50341" class="Symbol">{</a><a id="50342" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="50346" class="Symbol">}</a> <a id="50349" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="50354" class="Symbol">=</a> <a id="50356" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="50361" href="Data.Nat.Properties.html#50283" class="Function">m≡n⇒∣m-n∣≡0</a> <a id="50373" class="Symbol">{</a><a id="50374" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="50378" href="Data.Nat.Properties.html#50378" class="Bound">m</a><a id="50379" class="Symbol">}</a> <a id="50381" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="50386" class="Symbol">=</a> <a id="50388" href="Data.Nat.Properties.html#50283" class="Function">m≡n⇒∣m-n∣≡0</a> <a id="50400" class="Symbol">{</a><a id="50401" href="Data.Nat.Properties.html#50378" class="Bound">m</a><a id="50402" class="Symbol">}</a> <a id="50404" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
|
||
<a id="∣m-n∣≡0⇒m≡n"></a><a id="50410" href="Data.Nat.Properties.html#50410" class="Function">∣m-n∣≡0⇒m≡n</a> <a id="50422" class="Symbol">:</a> <a id="50424" class="Symbol">∀</a> <a id="50426" class="Symbol">{</a><a id="50427" href="Data.Nat.Properties.html#50427" class="Bound">m</a> <a id="50429" href="Data.Nat.Properties.html#50429" class="Bound">n</a><a id="50430" class="Symbol">}</a> <a id="50432" class="Symbol">→</a> <a id="50434" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="50436" href="Data.Nat.Properties.html#50427" class="Bound">m</a> <a id="50438" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="50440" href="Data.Nat.Properties.html#50429" class="Bound">n</a> <a id="50442" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="50444" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="50446" class="Number">0</a> <a id="50448" class="Symbol">→</a> <a id="50450" href="Data.Nat.Properties.html#50427" class="Bound">m</a> <a id="50452" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="50454" href="Data.Nat.Properties.html#50429" class="Bound">n</a>
|
||
<a id="50456" href="Data.Nat.Properties.html#50410" class="Function">∣m-n∣≡0⇒m≡n</a> <a id="50468" class="Symbol">{</a><a id="50469" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="50473" class="Symbol">}</a> <a id="50476" class="Symbol">{</a><a id="50477" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="50481" class="Symbol">}</a> <a id="50484" href="Data.Nat.Properties.html#50484" class="Bound">eq</a> <a id="50487" class="Symbol">=</a> <a id="50489" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="50494" href="Data.Nat.Properties.html#50410" class="Function">∣m-n∣≡0⇒m≡n</a> <a id="50506" class="Symbol">{</a><a id="50507" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="50511" href="Data.Nat.Properties.html#50511" class="Bound">m</a><a id="50512" class="Symbol">}</a> <a id="50514" class="Symbol">{</a><a id="50515" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="50519" href="Data.Nat.Properties.html#50519" class="Bound">n</a><a id="50520" class="Symbol">}</a> <a id="50522" href="Data.Nat.Properties.html#50522" class="Bound">eq</a> <a id="50525" class="Symbol">=</a> <a id="50527" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="50532" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="50536" class="Symbol">(</a><a id="50537" href="Data.Nat.Properties.html#50410" class="Function">∣m-n∣≡0⇒m≡n</a> <a id="50549" href="Data.Nat.Properties.html#50522" class="Bound">eq</a><a id="50551" class="Symbol">)</a>
|
||
|
||
<a id="m≤n⇒∣n-m∣≡n∸m"></a><a id="50554" href="Data.Nat.Properties.html#50554" class="Function">m≤n⇒∣n-m∣≡n∸m</a> <a id="50568" class="Symbol">:</a> <a id="50570" class="Symbol">∀</a> <a id="50572" class="Symbol">{</a><a id="50573" href="Data.Nat.Properties.html#50573" class="Bound">m</a> <a id="50575" href="Data.Nat.Properties.html#50575" class="Bound">n</a><a id="50576" class="Symbol">}</a> <a id="50578" class="Symbol">→</a> <a id="50580" href="Data.Nat.Properties.html#50573" class="Bound">m</a> <a id="50582" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="50584" href="Data.Nat.Properties.html#50575" class="Bound">n</a> <a id="50586" class="Symbol">→</a> <a id="50588" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="50590" href="Data.Nat.Properties.html#50575" class="Bound">n</a> <a id="50592" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="50594" href="Data.Nat.Properties.html#50573" class="Bound">m</a> <a id="50596" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="50598" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="50600" href="Data.Nat.Properties.html#50575" class="Bound">n</a> <a id="50602" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="50604" href="Data.Nat.Properties.html#50573" class="Bound">m</a>
|
||
<a id="50606" href="Data.Nat.Properties.html#50554" class="Function">m≤n⇒∣n-m∣≡n∸m</a> <a id="50620" class="Symbol">{_}</a> <a id="50624" class="Symbol">{</a><a id="50625" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="50629" class="Symbol">}</a> <a id="50632" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="50642" class="Symbol">=</a> <a id="50644" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="50649" href="Data.Nat.Properties.html#50554" class="Function">m≤n⇒∣n-m∣≡n∸m</a> <a id="50663" class="Symbol">{_}</a> <a id="50667" class="Symbol">{</a><a id="50668" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="50672" href="Data.Nat.Properties.html#50672" class="Bound">m</a><a id="50673" class="Symbol">}</a> <a id="50675" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="50685" class="Symbol">=</a> <a id="50687" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="50692" href="Data.Nat.Properties.html#50554" class="Function">m≤n⇒∣n-m∣≡n∸m</a> <a id="50706" class="Symbol">{_}</a> <a id="50710" class="Symbol">{_}</a> <a id="50718" class="Symbol">(</a><a id="50719" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="50723" href="Data.Nat.Properties.html#50723" class="Bound">m≤n</a><a id="50726" class="Symbol">)</a> <a id="50728" class="Symbol">=</a> <a id="50730" href="Data.Nat.Properties.html#50554" class="Function">m≤n⇒∣n-m∣≡n∸m</a> <a id="50744" href="Data.Nat.Properties.html#50723" class="Bound">m≤n</a>
|
||
|
||
<a id="∣m-n∣≡m∸n⇒n≤m"></a><a id="50749" href="Data.Nat.Properties.html#50749" class="Function">∣m-n∣≡m∸n⇒n≤m</a> <a id="50763" class="Symbol">:</a> <a id="50765" class="Symbol">∀</a> <a id="50767" class="Symbol">{</a><a id="50768" href="Data.Nat.Properties.html#50768" class="Bound">m</a> <a id="50770" href="Data.Nat.Properties.html#50770" class="Bound">n</a><a id="50771" class="Symbol">}</a> <a id="50773" class="Symbol">→</a> <a id="50775" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="50777" href="Data.Nat.Properties.html#50768" class="Bound">m</a> <a id="50779" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="50781" href="Data.Nat.Properties.html#50770" class="Bound">n</a> <a id="50783" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="50785" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="50787" href="Data.Nat.Properties.html#50768" class="Bound">m</a> <a id="50789" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="50791" href="Data.Nat.Properties.html#50770" class="Bound">n</a> <a id="50793" class="Symbol">→</a> <a id="50795" href="Data.Nat.Properties.html#50770" class="Bound">n</a> <a id="50797" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="50799" href="Data.Nat.Properties.html#50768" class="Bound">m</a>
|
||
<a id="50801" href="Data.Nat.Properties.html#50749" class="Function">∣m-n∣≡m∸n⇒n≤m</a> <a id="50815" class="Symbol">{</a><a id="50816" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="50820" class="Symbol">}</a> <a id="50823" class="Symbol">{</a><a id="50824" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="50828" class="Symbol">}</a> <a id="50831" href="Data.Nat.Properties.html#50831" class="Bound">eq</a> <a id="50834" class="Symbol">=</a> <a id="50836" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="50840" href="Data.Nat.Properties.html#50749" class="Function">∣m-n∣≡m∸n⇒n≤m</a> <a id="50854" class="Symbol">{</a><a id="50855" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="50859" href="Data.Nat.Properties.html#50859" class="Bound">m</a><a id="50860" class="Symbol">}</a> <a id="50862" class="Symbol">{</a><a id="50863" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="50867" class="Symbol">}</a> <a id="50870" href="Data.Nat.Properties.html#50870" class="Bound">eq</a> <a id="50873" class="Symbol">=</a> <a id="50875" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="50879" href="Data.Nat.Properties.html#50749" class="Function">∣m-n∣≡m∸n⇒n≤m</a> <a id="50893" class="Symbol">{</a><a id="50894" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="50898" href="Data.Nat.Properties.html#50898" class="Bound">m</a><a id="50899" class="Symbol">}</a> <a id="50901" class="Symbol">{</a><a id="50902" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="50906" href="Data.Nat.Properties.html#50906" class="Bound">n</a><a id="50907" class="Symbol">}</a> <a id="50909" href="Data.Nat.Properties.html#50909" class="Bound">eq</a> <a id="50912" class="Symbol">=</a> <a id="50914" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="50918" class="Symbol">(</a><a id="50919" href="Data.Nat.Properties.html#50749" class="Function">∣m-n∣≡m∸n⇒n≤m</a> <a id="50933" href="Data.Nat.Properties.html#50909" class="Bound">eq</a><a id="50935" class="Symbol">)</a>
|
||
|
||
<a id="∣n-n∣≡0"></a><a id="50938" href="Data.Nat.Properties.html#50938" class="Function">∣n-n∣≡0</a> <a id="50946" class="Symbol">:</a> <a id="50948" class="Symbol">∀</a> <a id="50950" href="Data.Nat.Properties.html#50950" class="Bound">n</a> <a id="50952" class="Symbol">→</a> <a id="50954" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="50956" href="Data.Nat.Properties.html#50950" class="Bound">n</a> <a id="50958" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="50960" href="Data.Nat.Properties.html#50950" class="Bound">n</a> <a id="50962" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="50964" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="50966" class="Number">0</a>
|
||
<a id="50968" href="Data.Nat.Properties.html#50938" class="Function">∣n-n∣≡0</a> <a id="50976" href="Data.Nat.Properties.html#50976" class="Bound">n</a> <a id="50978" class="Symbol">=</a> <a id="50980" href="Data.Nat.Properties.html#50283" class="Function">m≡n⇒∣m-n∣≡0</a> <a id="50992" class="Symbol">{</a><a id="50993" href="Data.Nat.Properties.html#50976" class="Bound">n</a><a id="50994" class="Symbol">}</a> <a id="50996" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
|
||
<a id="∣m-m+n∣≡n"></a><a id="51002" href="Data.Nat.Properties.html#51002" class="Function">∣m-m+n∣≡n</a> <a id="51012" class="Symbol">:</a> <a id="51014" class="Symbol">∀</a> <a id="51016" href="Data.Nat.Properties.html#51016" class="Bound">m</a> <a id="51018" href="Data.Nat.Properties.html#51018" class="Bound">n</a> <a id="51020" class="Symbol">→</a> <a id="51022" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="51024" href="Data.Nat.Properties.html#51016" class="Bound">m</a> <a id="51026" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="51028" href="Data.Nat.Properties.html#51016" class="Bound">m</a> <a id="51030" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="51032" href="Data.Nat.Properties.html#51018" class="Bound">n</a> <a id="51034" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="51036" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="51038" href="Data.Nat.Properties.html#51018" class="Bound">n</a>
|
||
<a id="51040" href="Data.Nat.Properties.html#51002" class="Function">∣m-m+n∣≡n</a> <a id="51050" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="51058" href="Data.Nat.Properties.html#51058" class="Bound">n</a> <a id="51060" class="Symbol">=</a> <a id="51062" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="51067" href="Data.Nat.Properties.html#51002" class="Function">∣m-m+n∣≡n</a> <a id="51077" class="Symbol">(</a><a id="51078" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="51082" href="Data.Nat.Properties.html#51082" class="Bound">m</a><a id="51083" class="Symbol">)</a> <a id="51085" href="Data.Nat.Properties.html#51085" class="Bound">n</a> <a id="51087" class="Symbol">=</a> <a id="51089" href="Data.Nat.Properties.html#51002" class="Function">∣m-m+n∣≡n</a> <a id="51099" href="Data.Nat.Properties.html#51082" class="Bound">m</a> <a id="51101" href="Data.Nat.Properties.html#51085" class="Bound">n</a>
|
||
|
||
<a id="∣m+n-m+o∣≡∣n-o∣"></a><a id="51104" href="Data.Nat.Properties.html#51104" class="Function">∣m+n-m+o∣≡∣n-o∣</a> <a id="51120" class="Symbol">:</a> <a id="51122" class="Symbol">∀</a> <a id="51124" href="Data.Nat.Properties.html#51124" class="Bound">m</a> <a id="51126" href="Data.Nat.Properties.html#51126" class="Bound">n</a> <a id="51128" href="Data.Nat.Properties.html#51128" class="Bound">o</a> <a id="51130" class="Symbol">→</a> <a id="51132" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="51134" href="Data.Nat.Properties.html#51124" class="Bound">m</a> <a id="51136" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="51138" href="Data.Nat.Properties.html#51126" class="Bound">n</a> <a id="51140" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="51142" href="Data.Nat.Properties.html#51124" class="Bound">m</a> <a id="51144" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="51146" href="Data.Nat.Properties.html#51128" class="Bound">o</a> <a id="51148" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="51150" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="51152" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="51154" href="Data.Nat.Properties.html#51126" class="Bound">n</a> <a id="51156" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="51158" href="Data.Nat.Properties.html#51128" class="Bound">o</a> <a id="51160" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a>
|
||
<a id="51162" href="Data.Nat.Properties.html#51104" class="Function">∣m+n-m+o∣≡∣n-o∣</a> <a id="51178" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="51186" href="Data.Nat.Properties.html#51186" class="Bound">n</a> <a id="51188" href="Data.Nat.Properties.html#51188" class="Bound">o</a> <a id="51190" class="Symbol">=</a> <a id="51192" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="51197" href="Data.Nat.Properties.html#51104" class="Function">∣m+n-m+o∣≡∣n-o∣</a> <a id="51213" class="Symbol">(</a><a id="51214" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="51218" href="Data.Nat.Properties.html#51218" class="Bound">m</a><a id="51219" class="Symbol">)</a> <a id="51221" href="Data.Nat.Properties.html#51221" class="Bound">n</a> <a id="51223" href="Data.Nat.Properties.html#51223" class="Bound">o</a> <a id="51225" class="Symbol">=</a> <a id="51227" href="Data.Nat.Properties.html#51104" class="Function">∣m+n-m+o∣≡∣n-o∣</a> <a id="51243" href="Data.Nat.Properties.html#51218" class="Bound">m</a> <a id="51245" href="Data.Nat.Properties.html#51221" class="Bound">n</a> <a id="51247" href="Data.Nat.Properties.html#51223" class="Bound">o</a>
|
||
|
||
<a id="m∸n≤∣m-n∣"></a><a id="51250" href="Data.Nat.Properties.html#51250" class="Function">m∸n≤∣m-n∣</a> <a id="51260" class="Symbol">:</a> <a id="51262" class="Symbol">∀</a> <a id="51264" href="Data.Nat.Properties.html#51264" class="Bound">m</a> <a id="51266" href="Data.Nat.Properties.html#51266" class="Bound">n</a> <a id="51268" class="Symbol">→</a> <a id="51270" href="Data.Nat.Properties.html#51264" class="Bound">m</a> <a id="51272" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="51274" href="Data.Nat.Properties.html#51266" class="Bound">n</a> <a id="51276" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="51278" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="51280" href="Data.Nat.Properties.html#51264" class="Bound">m</a> <a id="51282" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="51284" href="Data.Nat.Properties.html#51266" class="Bound">n</a> <a id="51286" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a>
|
||
<a id="51288" href="Data.Nat.Properties.html#51250" class="Function">m∸n≤∣m-n∣</a> <a id="51298" href="Data.Nat.Properties.html#51298" class="Bound">m</a> <a id="51300" href="Data.Nat.Properties.html#51300" class="Bound">n</a> <a id="51302" class="Keyword">with</a> <a id="51307" href="Data.Nat.Properties.html#4869" class="Function">≤-total</a> <a id="51315" href="Data.Nat.Properties.html#51298" class="Bound">m</a> <a id="51317" href="Data.Nat.Properties.html#51300" class="Bound">n</a>
|
||
<a id="51319" class="Symbol">...</a> <a id="51323" class="Symbol">|</a> <a id="51325" href="Data.Sum.Base.html#793" class="InductiveConstructor">inj₁</a> <a id="51330" href="Data.Nat.Properties.html#51330" class="Bound">m≤n</a> <a id="51334" class="Symbol">=</a> <a id="51336" href="Relation.Binary.PropositionalEquality.Core.html#1789" class="Function">subst</a> <a id="51342" class="Symbol">(</a><a id="51343" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤</a> <a id="51346" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="51348" class="Bound">m</a> <a id="51350" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="51352" class="Bound">n</a> <a id="51354" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a><a id="51355" class="Symbol">)</a> <a id="51357" class="Symbol">(</a><a id="51358" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="51362" class="Symbol">(</a><a id="51363" href="Data.Nat.Properties.html#44758" class="Function">m≤n⇒m∸n≡0</a> <a id="51373" href="Data.Nat.Properties.html#51330" class="Bound">m≤n</a><a id="51376" class="Symbol">))</a> <a id="51379" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="51383" class="Symbol">...</a> <a id="51387" class="Symbol">|</a> <a id="51389" href="Data.Sum.Base.html#818" class="InductiveConstructor">inj₂</a> <a id="51394" href="Data.Nat.Properties.html#51394" class="Bound">n≤m</a> <a id="51398" class="Symbol">=</a> <a id="51400" href="Relation.Binary.PropositionalEquality.Core.html#1789" class="Function">subst</a> <a id="51406" class="Symbol">(</a><a id="51407" class="Bound">m</a> <a id="51409" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="51411" class="Bound">n</a> <a id="51413" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤_</a><a id="51415" class="Symbol">)</a> <a id="51417" class="Symbol">(</a><a id="51418" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="51422" class="Symbol">(</a><a id="51423" href="Data.Nat.Properties.html#50554" class="Function">m≤n⇒∣n-m∣≡n∸m</a> <a id="51437" href="Data.Nat.Properties.html#51394" class="Bound">n≤m</a><a id="51440" class="Symbol">))</a> <a id="51443" href="Data.Nat.Properties.html#4574" class="Function">≤-refl</a>
|
||
|
||
<a id="∣m-n∣≤m⊔n"></a><a id="51451" href="Data.Nat.Properties.html#51451" class="Function">∣m-n∣≤m⊔n</a> <a id="51461" class="Symbol">:</a> <a id="51463" class="Symbol">∀</a> <a id="51465" href="Data.Nat.Properties.html#51465" class="Bound">m</a> <a id="51467" href="Data.Nat.Properties.html#51467" class="Bound">n</a> <a id="51469" class="Symbol">→</a> <a id="51471" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="51473" href="Data.Nat.Properties.html#51465" class="Bound">m</a> <a id="51475" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="51477" href="Data.Nat.Properties.html#51467" class="Bound">n</a> <a id="51479" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="51481" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="51483" href="Data.Nat.Properties.html#51465" class="Bound">m</a> <a id="51485" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="51487" href="Data.Nat.Properties.html#51467" class="Bound">n</a>
|
||
<a id="51489" href="Data.Nat.Properties.html#51451" class="Function">∣m-n∣≤m⊔n</a> <a id="51499" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="51507" href="Data.Nat.Properties.html#51507" class="Bound">m</a> <a id="51515" class="Symbol">=</a> <a id="51517" href="Data.Nat.Properties.html#4574" class="Function">≤-refl</a>
|
||
<a id="51524" href="Data.Nat.Properties.html#51451" class="Function">∣m-n∣≤m⊔n</a> <a id="51534" class="Symbol">(</a><a id="51535" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="51539" href="Data.Nat.Properties.html#51539" class="Bound">m</a><a id="51540" class="Symbol">)</a> <a id="51542" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="51550" class="Symbol">=</a> <a id="51552" href="Data.Nat.Properties.html#4574" class="Function">≤-refl</a>
|
||
<a id="51559" href="Data.Nat.Properties.html#51451" class="Function">∣m-n∣≤m⊔n</a> <a id="51569" class="Symbol">(</a><a id="51570" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="51574" href="Data.Nat.Properties.html#51574" class="Bound">m</a><a id="51575" class="Symbol">)</a> <a id="51577" class="Symbol">(</a><a id="51578" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="51582" href="Data.Nat.Properties.html#51582" class="Bound">n</a><a id="51583" class="Symbol">)</a> <a id="51585" class="Symbol">=</a> <a id="51587" href="Data.Nat.Properties.html#7191" class="Function">≤-step</a> <a id="51594" class="Symbol">(</a><a id="51595" href="Data.Nat.Properties.html#51451" class="Function">∣m-n∣≤m⊔n</a> <a id="51605" href="Data.Nat.Properties.html#51574" class="Bound">m</a> <a id="51607" href="Data.Nat.Properties.html#51582" class="Bound">n</a><a id="51608" class="Symbol">)</a>
|
||
|
||
<a id="∣-∣-identityˡ"></a><a id="51611" href="Data.Nat.Properties.html#51611" class="Function">∣-∣-identityˡ</a> <a id="51625" class="Symbol">:</a> <a id="51627" href="Algebra.Definitions.html#1277" class="Function">LeftIdentity</a> <a id="51640" class="Number">0</a> <a id="51642" href="Data.Nat.Base.html#3546" class="Function Operator">∣_-_∣</a>
|
||
<a id="51648" href="Data.Nat.Properties.html#51611" class="Function">∣-∣-identityˡ</a> <a id="51662" href="Data.Nat.Properties.html#51662" class="Bound">x</a> <a id="51664" class="Symbol">=</a> <a id="51666" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
|
||
<a id="∣-∣-identityʳ"></a><a id="51672" href="Data.Nat.Properties.html#51672" class="Function">∣-∣-identityʳ</a> <a id="51686" class="Symbol">:</a> <a id="51688" href="Algebra.Definitions.html#1350" class="Function">RightIdentity</a> <a id="51702" class="Number">0</a> <a id="51704" href="Data.Nat.Base.html#3546" class="Function Operator">∣_-_∣</a>
|
||
<a id="51710" href="Data.Nat.Properties.html#51672" class="Function">∣-∣-identityʳ</a> <a id="51724" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="51732" class="Symbol">=</a> <a id="51734" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="51739" href="Data.Nat.Properties.html#51672" class="Function">∣-∣-identityʳ</a> <a id="51753" class="Symbol">(</a><a id="51754" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="51758" href="Data.Nat.Properties.html#51758" class="Bound">x</a><a id="51759" class="Symbol">)</a> <a id="51761" class="Symbol">=</a> <a id="51763" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
|
||
<a id="∣-∣-identity"></a><a id="51769" href="Data.Nat.Properties.html#51769" class="Function">∣-∣-identity</a> <a id="51782" class="Symbol">:</a> <a id="51784" href="Algebra.Definitions.html#1425" class="Function">Identity</a> <a id="51793" class="Number">0</a> <a id="51795" href="Data.Nat.Base.html#3546" class="Function Operator">∣_-_∣</a>
|
||
<a id="51801" href="Data.Nat.Properties.html#51769" class="Function">∣-∣-identity</a> <a id="51814" class="Symbol">=</a> <a id="51816" href="Data.Nat.Properties.html#51611" class="Function">∣-∣-identityˡ</a> <a id="51830" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="51832" href="Data.Nat.Properties.html#51672" class="Function">∣-∣-identityʳ</a>
|
||
|
||
<a id="∣-∣-comm"></a><a id="51847" href="Data.Nat.Properties.html#51847" class="Function">∣-∣-comm</a> <a id="51856" class="Symbol">:</a> <a id="51858" href="Algebra.Definitions.html#1204" class="Function">Commutative</a> <a id="51870" href="Data.Nat.Base.html#3546" class="Function Operator">∣_-_∣</a>
|
||
<a id="51876" href="Data.Nat.Properties.html#51847" class="Function">∣-∣-comm</a> <a id="51885" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="51893" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="51901" class="Symbol">=</a> <a id="51903" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="51908" href="Data.Nat.Properties.html#51847" class="Function">∣-∣-comm</a> <a id="51917" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="51925" class="Symbol">(</a><a id="51926" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="51930" href="Data.Nat.Properties.html#51930" class="Bound">n</a><a id="51931" class="Symbol">)</a> <a id="51933" class="Symbol">=</a> <a id="51935" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="51940" href="Data.Nat.Properties.html#51847" class="Function">∣-∣-comm</a> <a id="51949" class="Symbol">(</a><a id="51950" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="51954" href="Data.Nat.Properties.html#51954" class="Bound">m</a><a id="51955" class="Symbol">)</a> <a id="51957" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="51965" class="Symbol">=</a> <a id="51967" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="51972" href="Data.Nat.Properties.html#51847" class="Function">∣-∣-comm</a> <a id="51981" class="Symbol">(</a><a id="51982" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="51986" href="Data.Nat.Properties.html#51986" class="Bound">m</a><a id="51987" class="Symbol">)</a> <a id="51989" class="Symbol">(</a><a id="51990" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="51994" href="Data.Nat.Properties.html#51994" class="Bound">n</a><a id="51995" class="Symbol">)</a> <a id="51997" class="Symbol">=</a> <a id="51999" href="Data.Nat.Properties.html#51847" class="Function">∣-∣-comm</a> <a id="52008" href="Data.Nat.Properties.html#51986" class="Bound">m</a> <a id="52010" href="Data.Nat.Properties.html#51994" class="Bound">n</a>
|
||
|
||
<a id="∣m-n∣≡[m∸n]∨[n∸m]"></a><a id="52013" href="Data.Nat.Properties.html#52013" class="Function">∣m-n∣≡[m∸n]∨[n∸m]</a> <a id="52031" class="Symbol">:</a> <a id="52033" class="Symbol">∀</a> <a id="52035" href="Data.Nat.Properties.html#52035" class="Bound">m</a> <a id="52037" href="Data.Nat.Properties.html#52037" class="Bound">n</a> <a id="52039" class="Symbol">→</a> <a id="52041" class="Symbol">(</a><a id="52042" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="52044" href="Data.Nat.Properties.html#52035" class="Bound">m</a> <a id="52046" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="52048" href="Data.Nat.Properties.html#52037" class="Bound">n</a> <a id="52050" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="52052" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="52054" href="Data.Nat.Properties.html#52035" class="Bound">m</a> <a id="52056" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="52058" href="Data.Nat.Properties.html#52037" class="Bound">n</a><a id="52059" class="Symbol">)</a> <a id="52061" href="Data.Sum.Base.html#743" class="Datatype Operator">⊎</a> <a id="52063" class="Symbol">(</a><a id="52064" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="52066" href="Data.Nat.Properties.html#52035" class="Bound">m</a> <a id="52068" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="52070" href="Data.Nat.Properties.html#52037" class="Bound">n</a> <a id="52072" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="52074" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="52076" href="Data.Nat.Properties.html#52037" class="Bound">n</a> <a id="52078" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="52080" href="Data.Nat.Properties.html#52035" class="Bound">m</a><a id="52081" class="Symbol">)</a>
|
||
<a id="52083" href="Data.Nat.Properties.html#52013" class="Function">∣m-n∣≡[m∸n]∨[n∸m]</a> <a id="52101" href="Data.Nat.Properties.html#52101" class="Bound">m</a> <a id="52103" href="Data.Nat.Properties.html#52103" class="Bound">n</a> <a id="52105" class="Keyword">with</a> <a id="52110" href="Data.Nat.Properties.html#4869" class="Function">≤-total</a> <a id="52118" href="Data.Nat.Properties.html#52101" class="Bound">m</a> <a id="52120" href="Data.Nat.Properties.html#52103" class="Bound">n</a>
|
||
<a id="52122" class="Symbol">...</a> <a id="52126" class="Symbol">|</a> <a id="52128" href="Data.Sum.Base.html#818" class="InductiveConstructor">inj₂</a> <a id="52133" href="Data.Nat.Properties.html#52133" class="Bound">n≤m</a> <a id="52137" class="Symbol">=</a> <a id="52139" href="Data.Sum.Base.html#793" class="InductiveConstructor">inj₁</a> <a id="52144" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="52146" href="Data.Nat.Properties.html#50554" class="Function">m≤n⇒∣n-m∣≡n∸m</a> <a id="52160" href="Data.Nat.Properties.html#52133" class="Bound">n≤m</a>
|
||
<a id="52164" class="Symbol">...</a> <a id="52168" class="Symbol">|</a> <a id="52170" href="Data.Sum.Base.html#793" class="InductiveConstructor">inj₁</a> <a id="52175" href="Data.Nat.Properties.html#52175" class="Bound">m≤n</a> <a id="52179" class="Symbol">=</a> <a id="52181" href="Data.Sum.Base.html#818" class="InductiveConstructor">inj₂</a> <a id="52186" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="52188" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="52205" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="52207" class="Bound">m</a> <a id="52209" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="52211" class="Bound">n</a> <a id="52213" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="52215" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="52218" href="Data.Nat.Properties.html#51847" class="Function">∣-∣-comm</a> <a id="52227" class="Bound">m</a> <a id="52229" class="Bound">n</a> <a id="52231" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="52235" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="52237" class="Bound">n</a> <a id="52239" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="52241" class="Bound">m</a> <a id="52243" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="52245" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="52248" href="Data.Nat.Properties.html#50554" class="Function">m≤n⇒∣n-m∣≡n∸m</a> <a id="52262" href="Data.Nat.Properties.html#52175" class="Bound">m≤n</a> <a id="52266" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="52270" class="Bound">n</a> <a id="52272" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="52274" class="Bound">m</a> <a id="52280" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
|
||
<a id="52283" class="Keyword">private</a>
|
||
|
||
<a id="*-distribˡ-∣-∣-aux"></a><a id="52294" href="Data.Nat.Properties.html#52294" class="Function">*-distribˡ-∣-∣-aux</a> <a id="52313" class="Symbol">:</a> <a id="52315" class="Symbol">∀</a> <a id="52317" href="Data.Nat.Properties.html#52317" class="Bound">a</a> <a id="52319" href="Data.Nat.Properties.html#52319" class="Bound">m</a> <a id="52321" href="Data.Nat.Properties.html#52321" class="Bound">n</a> <a id="52323" class="Symbol">→</a> <a id="52325" href="Data.Nat.Properties.html#52319" class="Bound">m</a> <a id="52327" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="52329" href="Data.Nat.Properties.html#52321" class="Bound">n</a> <a id="52331" class="Symbol">→</a> <a id="52333" href="Data.Nat.Properties.html#52317" class="Bound">a</a> <a id="52335" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="52337" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="52339" href="Data.Nat.Properties.html#52321" class="Bound">n</a> <a id="52341" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="52343" href="Data.Nat.Properties.html#52319" class="Bound">m</a> <a id="52345" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="52347" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="52349" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="52351" href="Data.Nat.Properties.html#52317" class="Bound">a</a> <a id="52353" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="52355" href="Data.Nat.Properties.html#52321" class="Bound">n</a> <a id="52357" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="52359" href="Data.Nat.Properties.html#52317" class="Bound">a</a> <a id="52361" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="52363" href="Data.Nat.Properties.html#52319" class="Bound">m</a> <a id="52365" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a>
|
||
<a id="52369" href="Data.Nat.Properties.html#52294" class="Function">*-distribˡ-∣-∣-aux</a> <a id="52388" href="Data.Nat.Properties.html#52388" class="Bound">a</a> <a id="52390" href="Data.Nat.Properties.html#52390" class="Bound">m</a> <a id="52392" href="Data.Nat.Properties.html#52392" class="Bound">n</a> <a id="52394" href="Data.Nat.Properties.html#52394" class="Bound">m≤n</a> <a id="52398" class="Symbol">=</a> <a id="52400" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="52419" href="Data.Nat.Properties.html#52388" class="Bound">a</a> <a id="52421" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="52423" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="52425" href="Data.Nat.Properties.html#52392" class="Bound">n</a> <a id="52427" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="52429" href="Data.Nat.Properties.html#52390" class="Bound">m</a> <a id="52431" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="52437" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="52440" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="52445" class="Symbol">(</a><a id="52446" href="Data.Nat.Properties.html#52388" class="Bound">a</a> <a id="52448" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*_</a><a id="52450" class="Symbol">)</a> <a id="52452" class="Symbol">(</a><a id="52453" href="Data.Nat.Properties.html#50554" class="Function">m≤n⇒∣n-m∣≡n∸m</a> <a id="52467" href="Data.Nat.Properties.html#52394" class="Bound">m≤n</a><a id="52470" class="Symbol">)</a> <a id="52472" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="52478" href="Data.Nat.Properties.html#52388" class="Bound">a</a> <a id="52480" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="52482" class="Symbol">(</a><a id="52483" href="Data.Nat.Properties.html#52392" class="Bound">n</a> <a id="52485" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="52487" href="Data.Nat.Properties.html#52390" class="Bound">m</a><a id="52488" class="Symbol">)</a> <a id="52496" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="52499" href="Data.Nat.Properties.html#47845" class="Function">*-distribˡ-∸</a> <a id="52512" href="Data.Nat.Properties.html#52388" class="Bound">a</a> <a id="52514" href="Data.Nat.Properties.html#52392" class="Bound">n</a> <a id="52516" href="Data.Nat.Properties.html#52390" class="Bound">m</a> <a id="52518" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="52524" href="Data.Nat.Properties.html#52388" class="Bound">a</a> <a id="52526" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="52528" href="Data.Nat.Properties.html#52392" class="Bound">n</a> <a id="52530" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="52532" href="Data.Nat.Properties.html#52388" class="Bound">a</a> <a id="52534" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="52536" href="Data.Nat.Properties.html#52390" class="Bound">m</a> <a id="52542" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="52545" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="52549" href="Function.Base.html#3848" class="Function Operator">$′</a> <a id="52552" href="Data.Nat.Properties.html#50554" class="Function">m≤n⇒∣n-m∣≡n∸m</a> <a id="52566" class="Symbol">(</a><a id="52567" href="Data.Nat.Properties.html#25420" class="Function">*-monoʳ-≤</a> <a id="52577" href="Data.Nat.Properties.html#52388" class="Bound">a</a> <a id="52579" href="Data.Nat.Properties.html#52394" class="Bound">m≤n</a><a id="52582" class="Symbol">)</a> <a id="52584" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="52590" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="52592" href="Data.Nat.Properties.html#52388" class="Bound">a</a> <a id="52594" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="52596" href="Data.Nat.Properties.html#52392" class="Bound">n</a> <a id="52598" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="52600" href="Data.Nat.Properties.html#52388" class="Bound">a</a> <a id="52602" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="52604" href="Data.Nat.Properties.html#52390" class="Bound">m</a> <a id="52606" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="52608" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
|
||
<a id="*-distribˡ-∣-∣"></a><a id="52611" href="Data.Nat.Properties.html#52611" class="Function">*-distribˡ-∣-∣</a> <a id="52626" class="Symbol">:</a> <a id="52628" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a> <a id="52632" href="Algebra.Definitions.html#2236" class="Function Operator">DistributesOverˡ</a> <a id="52649" href="Data.Nat.Base.html#3546" class="Function Operator">∣_-_∣</a>
|
||
<a id="52655" href="Data.Nat.Properties.html#52611" class="Function">*-distribˡ-∣-∣</a> <a id="52670" href="Data.Nat.Properties.html#52670" class="Bound">a</a> <a id="52672" href="Data.Nat.Properties.html#52672" class="Bound">m</a> <a id="52674" href="Data.Nat.Properties.html#52674" class="Bound">n</a> <a id="52676" class="Keyword">with</a> <a id="52681" href="Data.Nat.Properties.html#4869" class="Function">≤-total</a> <a id="52689" href="Data.Nat.Properties.html#52672" class="Bound">m</a> <a id="52691" href="Data.Nat.Properties.html#52674" class="Bound">n</a>
|
||
<a id="52693" class="Symbol">...</a> <a id="52697" class="Symbol">|</a> <a id="52699" href="Data.Sum.Base.html#818" class="InductiveConstructor">inj₂</a> <a id="52704" href="Data.Nat.Properties.html#52704" class="Bound">n≤m</a> <a id="52708" class="Symbol">=</a> <a id="52710" href="Data.Nat.Properties.html#52294" class="Function">*-distribˡ-∣-∣-aux</a> <a id="52729" class="Bound">a</a> <a id="52731" class="Bound">n</a> <a id="52733" class="Bound">m</a> <a id="52735" href="Data.Nat.Properties.html#52704" class="Bound">n≤m</a>
|
||
<a id="52739" class="Symbol">...</a> <a id="52743" class="Symbol">|</a> <a id="52745" href="Data.Sum.Base.html#793" class="InductiveConstructor">inj₁</a> <a id="52750" href="Data.Nat.Properties.html#52750" class="Bound">m≤n</a> <a id="52754" class="Symbol">=</a> <a id="52756" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="52773" class="Bound">a</a> <a id="52775" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="52777" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="52779" class="Bound">m</a> <a id="52781" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="52783" class="Bound">n</a> <a id="52785" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="52791" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="52794" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="52799" class="Symbol">(</a><a id="52800" class="Bound">a</a> <a id="52802" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*_</a><a id="52804" class="Symbol">)</a> <a id="52806" class="Symbol">(</a><a id="52807" href="Data.Nat.Properties.html#51847" class="Function">∣-∣-comm</a> <a id="52816" class="Bound">m</a> <a id="52818" class="Bound">n</a><a id="52819" class="Symbol">)</a> <a id="52821" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="52825" class="Bound">a</a> <a id="52827" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="52829" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="52831" class="Bound">n</a> <a id="52833" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="52835" class="Bound">m</a> <a id="52837" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="52843" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="52846" href="Data.Nat.Properties.html#52294" class="Function">*-distribˡ-∣-∣-aux</a> <a id="52865" class="Bound">a</a> <a id="52867" class="Bound">m</a> <a id="52869" class="Bound">n</a> <a id="52871" href="Data.Nat.Properties.html#52750" class="Bound">m≤n</a> <a id="52875" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="52879" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="52881" class="Bound">a</a> <a id="52883" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="52885" class="Bound">n</a> <a id="52887" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="52889" class="Bound">a</a> <a id="52891" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="52893" class="Bound">m</a> <a id="52895" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="52897" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="52900" href="Data.Nat.Properties.html#51847" class="Function">∣-∣-comm</a> <a id="52909" class="Symbol">(</a><a id="52910" class="Bound">a</a> <a id="52912" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="52914" class="Bound">n</a><a id="52915" class="Symbol">)</a> <a id="52917" class="Symbol">(</a><a id="52918" class="Bound">a</a> <a id="52920" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="52922" class="Bound">m</a><a id="52923" class="Symbol">)</a> <a id="52925" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="52929" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="52931" class="Bound">a</a> <a id="52933" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="52935" class="Bound">m</a> <a id="52937" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="52939" class="Bound">a</a> <a id="52941" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="52943" class="Bound">n</a> <a id="52945" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="52947" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
|
||
<a id="*-distribʳ-∣-∣"></a><a id="52950" href="Data.Nat.Properties.html#52950" class="Function">*-distribʳ-∣-∣</a> <a id="52965" class="Symbol">:</a> <a id="52967" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a> <a id="52971" href="Algebra.Definitions.html#2355" class="Function Operator">DistributesOverʳ</a> <a id="52988" href="Data.Nat.Base.html#3546" class="Function Operator">∣_-_∣</a>
|
||
<a id="52994" href="Data.Nat.Properties.html#52950" class="Function">*-distribʳ-∣-∣</a> <a id="53009" class="Symbol">=</a> <a id="53011" href="Algebra.Consequences.Propositional.html#2691" class="Function">comm+distrˡ⇒distrʳ</a> <a id="53030" href="Data.Nat.Properties.html#20365" class="Function">*-comm</a> <a id="53037" href="Data.Nat.Properties.html#52611" class="Function">*-distribˡ-∣-∣</a>
|
||
|
||
<a id="*-distrib-∣-∣"></a><a id="53053" href="Data.Nat.Properties.html#53053" class="Function">*-distrib-∣-∣</a> <a id="53067" class="Symbol">:</a> <a id="53069" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">_*_</a> <a id="53073" href="Algebra.Definitions.html#2474" class="Function Operator">DistributesOver</a> <a id="53089" href="Data.Nat.Base.html#3546" class="Function Operator">∣_-_∣</a>
|
||
<a id="53095" href="Data.Nat.Properties.html#53053" class="Function">*-distrib-∣-∣</a> <a id="53109" class="Symbol">=</a> <a id="53111" href="Data.Nat.Properties.html#52611" class="Function">*-distribˡ-∣-∣</a> <a id="53126" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="53128" href="Data.Nat.Properties.html#52950" class="Function">*-distribʳ-∣-∣</a>
|
||
|
||
<a id="m≤n+∣n-m∣"></a><a id="53144" href="Data.Nat.Properties.html#53144" class="Function">m≤n+∣n-m∣</a> <a id="53154" class="Symbol">:</a> <a id="53156" class="Symbol">∀</a> <a id="53158" href="Data.Nat.Properties.html#53158" class="Bound">m</a> <a id="53160" href="Data.Nat.Properties.html#53160" class="Bound">n</a> <a id="53162" class="Symbol">→</a> <a id="53164" href="Data.Nat.Properties.html#53158" class="Bound">m</a> <a id="53166" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="53168" href="Data.Nat.Properties.html#53160" class="Bound">n</a> <a id="53170" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="53172" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="53174" href="Data.Nat.Properties.html#53160" class="Bound">n</a> <a id="53176" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="53178" href="Data.Nat.Properties.html#53158" class="Bound">m</a> <a id="53180" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a>
|
||
<a id="53182" href="Data.Nat.Properties.html#53144" class="Function">m≤n+∣n-m∣</a> <a id="53192" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="53200" href="Data.Nat.Properties.html#53200" class="Bound">n</a> <a id="53208" class="Symbol">=</a> <a id="53210" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="53214" href="Data.Nat.Properties.html#53144" class="Function">m≤n+∣n-m∣</a> <a id="53224" class="Symbol">(</a><a id="53225" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="53229" href="Data.Nat.Properties.html#53229" class="Bound">m</a><a id="53230" class="Symbol">)</a> <a id="53232" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="53240" class="Symbol">=</a> <a id="53242" href="Data.Nat.Properties.html#4574" class="Function">≤-refl</a>
|
||
<a id="53249" href="Data.Nat.Properties.html#53144" class="Function">m≤n+∣n-m∣</a> <a id="53259" class="Symbol">(</a><a id="53260" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="53264" href="Data.Nat.Properties.html#53264" class="Bound">m</a><a id="53265" class="Symbol">)</a> <a id="53267" class="Symbol">(</a><a id="53268" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="53272" href="Data.Nat.Properties.html#53272" class="Bound">n</a><a id="53273" class="Symbol">)</a> <a id="53275" class="Symbol">=</a> <a id="53277" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="53281" class="Symbol">(</a><a id="53282" href="Data.Nat.Properties.html#53144" class="Function">m≤n+∣n-m∣</a> <a id="53292" href="Data.Nat.Properties.html#53264" class="Bound">m</a> <a id="53294" href="Data.Nat.Properties.html#53272" class="Bound">n</a><a id="53295" class="Symbol">)</a>
|
||
|
||
<a id="m≤n+∣m-n∣"></a><a id="53298" href="Data.Nat.Properties.html#53298" class="Function">m≤n+∣m-n∣</a> <a id="53308" class="Symbol">:</a> <a id="53310" class="Symbol">∀</a> <a id="53312" href="Data.Nat.Properties.html#53312" class="Bound">m</a> <a id="53314" href="Data.Nat.Properties.html#53314" class="Bound">n</a> <a id="53316" class="Symbol">→</a> <a id="53318" href="Data.Nat.Properties.html#53312" class="Bound">m</a> <a id="53320" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="53322" href="Data.Nat.Properties.html#53314" class="Bound">n</a> <a id="53324" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="53326" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="53328" href="Data.Nat.Properties.html#53312" class="Bound">m</a> <a id="53330" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="53332" href="Data.Nat.Properties.html#53314" class="Bound">n</a> <a id="53334" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a>
|
||
<a id="53336" href="Data.Nat.Properties.html#53298" class="Function">m≤n+∣m-n∣</a> <a id="53346" href="Data.Nat.Properties.html#53346" class="Bound">m</a> <a id="53348" href="Data.Nat.Properties.html#53348" class="Bound">n</a> <a id="53350" class="Symbol">=</a> <a id="53352" href="Relation.Binary.PropositionalEquality.Core.html#1789" class="Function">subst</a> <a id="53358" class="Symbol">(</a><a id="53359" href="Data.Nat.Properties.html#53346" class="Bound">m</a> <a id="53361" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤_</a><a id="53363" class="Symbol">)</a> <a id="53365" class="Symbol">(</a><a id="53366" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="53371" class="Symbol">(</a><a id="53372" href="Data.Nat.Properties.html#53348" class="Bound">n</a> <a id="53374" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+_</a><a id="53376" class="Symbol">)</a> <a id="53378" class="Symbol">(</a><a id="53379" href="Data.Nat.Properties.html#51847" class="Function">∣-∣-comm</a> <a id="53388" href="Data.Nat.Properties.html#53348" class="Bound">n</a> <a id="53390" href="Data.Nat.Properties.html#53346" class="Bound">m</a><a id="53391" class="Symbol">))</a> <a id="53394" class="Symbol">(</a><a id="53395" href="Data.Nat.Properties.html#53144" class="Function">m≤n+∣n-m∣</a> <a id="53405" href="Data.Nat.Properties.html#53346" class="Bound">m</a> <a id="53407" href="Data.Nat.Properties.html#53348" class="Bound">n</a><a id="53408" class="Symbol">)</a>
|
||
|
||
<a id="m≤∣m-n∣+n"></a><a id="53411" href="Data.Nat.Properties.html#53411" class="Function">m≤∣m-n∣+n</a> <a id="53421" class="Symbol">:</a> <a id="53423" class="Symbol">∀</a> <a id="53425" href="Data.Nat.Properties.html#53425" class="Bound">m</a> <a id="53427" href="Data.Nat.Properties.html#53427" class="Bound">n</a> <a id="53429" class="Symbol">→</a> <a id="53431" href="Data.Nat.Properties.html#53425" class="Bound">m</a> <a id="53433" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="53435" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="53437" href="Data.Nat.Properties.html#53425" class="Bound">m</a> <a id="53439" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="53441" href="Data.Nat.Properties.html#53427" class="Bound">n</a> <a id="53443" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="53445" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="53447" href="Data.Nat.Properties.html#53427" class="Bound">n</a>
|
||
<a id="53449" href="Data.Nat.Properties.html#53411" class="Function">m≤∣m-n∣+n</a> <a id="53459" href="Data.Nat.Properties.html#53459" class="Bound">m</a> <a id="53461" href="Data.Nat.Properties.html#53461" class="Bound">n</a> <a id="53463" class="Symbol">=</a> <a id="53465" href="Relation.Binary.PropositionalEquality.Core.html#1789" class="Function">subst</a> <a id="53471" class="Symbol">(</a><a id="53472" href="Data.Nat.Properties.html#53459" class="Bound">m</a> <a id="53474" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤_</a><a id="53476" class="Symbol">)</a> <a id="53478" class="Symbol">(</a><a id="53479" href="Data.Nat.Properties.html#13404" class="Function">+-comm</a> <a id="53486" href="Data.Nat.Properties.html#53461" class="Bound">n</a> <a id="53488" class="Symbol">_)</a> <a id="53491" class="Symbol">(</a><a id="53492" href="Data.Nat.Properties.html#53298" class="Function">m≤n+∣m-n∣</a> <a id="53502" href="Data.Nat.Properties.html#53459" class="Bound">m</a> <a id="53504" href="Data.Nat.Properties.html#53461" class="Bound">n</a><a id="53505" class="Symbol">)</a>
|
||
|
||
<a id="∣-∣-triangle"></a><a id="53508" href="Data.Nat.Properties.html#53508" class="Function">∣-∣-triangle</a> <a id="53521" class="Symbol">:</a> <a id="53523" href="Function.Metric.Nat.Definitions.html#1300" class="Function">TriangleInequality</a> <a id="53542" href="Data.Nat.Base.html#3546" class="Function Operator">∣_-_∣</a>
|
||
<a id="53548" href="Data.Nat.Properties.html#53508" class="Function">∣-∣-triangle</a> <a id="53561" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="53569" href="Data.Nat.Properties.html#53569" class="Bound">y</a> <a id="53577" href="Data.Nat.Properties.html#53577" class="Bound">z</a> <a id="53585" class="Symbol">=</a> <a id="53587" href="Data.Nat.Properties.html#53144" class="Function">m≤n+∣n-m∣</a> <a id="53597" href="Data.Nat.Properties.html#53577" class="Bound">z</a> <a id="53599" href="Data.Nat.Properties.html#53569" class="Bound">y</a>
|
||
<a id="53601" href="Data.Nat.Properties.html#53508" class="CatchallClause Function">∣-∣-triangle</a><a id="53613" class="CatchallClause"> </a><a id="53614" href="Data.Nat.Properties.html#53614" class="CatchallClause Bound">x</a><a id="53615" class="CatchallClause"> </a><a id="53622" href="Agda.Builtin.Nat.html#204" class="CatchallClause InductiveConstructor">zero</a><a id="53626" class="CatchallClause"> </a><a id="53630" href="Data.Nat.Properties.html#53630" class="CatchallClause Bound">z</a> <a id="53638" class="Symbol">=</a> <a id="53640" href="Relation.Binary.Reasoning.Base.Triple.html#3019" class="Function Operator">begin</a>
|
||
<a id="53648" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="53650" href="Data.Nat.Properties.html#53614" class="Bound">x</a> <a id="53652" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="53654" href="Data.Nat.Properties.html#53630" class="Bound">z</a> <a id="53656" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="53662" href="Relation.Binary.Reasoning.Base.Triple.html#3754" class="Function">≤⟨</a> <a id="53665" href="Data.Nat.Properties.html#51451" class="Function">∣m-n∣≤m⊔n</a> <a id="53675" href="Data.Nat.Properties.html#53614" class="Bound">x</a> <a id="53677" href="Data.Nat.Properties.html#53630" class="Bound">z</a> <a id="53679" href="Relation.Binary.Reasoning.Base.Triple.html#3754" class="Function">⟩</a>
|
||
<a id="53683" href="Data.Nat.Properties.html#53614" class="Bound">x</a> <a id="53685" href="Data.Nat.Base.html#3072" class="Function Operator">⊔</a> <a id="53687" href="Data.Nat.Properties.html#53630" class="Bound">z</a> <a id="53697" href="Relation.Binary.Reasoning.Base.Triple.html#3754" class="Function">≤⟨</a> <a id="53700" href="Data.Nat.Properties.html#37153" class="Function">m⊔n≤m+n</a> <a id="53708" href="Data.Nat.Properties.html#53614" class="Bound">x</a> <a id="53710" href="Data.Nat.Properties.html#53630" class="Bound">z</a> <a id="53712" href="Relation.Binary.Reasoning.Base.Triple.html#3754" class="Function">⟩</a>
|
||
<a id="53716" href="Data.Nat.Properties.html#53614" class="Bound">x</a> <a id="53718" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="53720" href="Data.Nat.Properties.html#53630" class="Bound">z</a> <a id="53730" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="53733" href="Relation.Binary.PropositionalEquality.Core.html#1376" class="Function">cong₂</a> <a id="53739" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a> <a id="53743" class="Symbol">(</a><a id="53744" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="53748" class="Symbol">(</a><a id="53749" href="Data.Nat.Properties.html#51672" class="Function">∣-∣-identityʳ</a> <a id="53763" href="Data.Nat.Properties.html#53614" class="Bound">x</a><a id="53764" class="Symbol">))</a> <a id="53767" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="53772" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="53776" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="53778" href="Data.Nat.Properties.html#53614" class="Bound">x</a> <a id="53780" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="53782" class="Number">0</a> <a id="53784" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="53786" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="53788" href="Data.Nat.Properties.html#53630" class="Bound">z</a> <a id="53790" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
<a id="53794" class="Keyword">where</a> <a id="53800" class="Keyword">open</a> <a id="53805" href="Data.Nat.Properties.html#12487" class="Module">≤-Reasoning</a>
|
||
<a id="53817" href="Data.Nat.Properties.html#53508" class="CatchallClause Function">∣-∣-triangle</a><a id="53829" class="CatchallClause"> </a><a id="53830" href="Data.Nat.Properties.html#53830" class="CatchallClause Bound">x</a><a id="53831" class="CatchallClause"> </a><a id="53838" href="Data.Nat.Properties.html#53838" class="CatchallClause Bound">y</a><a id="53839" class="CatchallClause"> </a><a id="53846" href="Agda.Builtin.Nat.html#204" class="CatchallClause InductiveConstructor">zero</a> <a id="53854" class="Symbol">=</a> <a id="53856" href="Relation.Binary.Reasoning.Base.Triple.html#3019" class="Function Operator">begin</a>
|
||
<a id="53864" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="53866" href="Data.Nat.Properties.html#53830" class="Bound">x</a> <a id="53868" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="53870" class="Number">0</a> <a id="53872" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="53886" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="53889" href="Data.Nat.Properties.html#51672" class="Function">∣-∣-identityʳ</a> <a id="53903" href="Data.Nat.Properties.html#53830" class="Bound">x</a> <a id="53905" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="53909" href="Data.Nat.Properties.html#53830" class="Bound">x</a> <a id="53931" href="Relation.Binary.Reasoning.Base.Triple.html#3754" class="Function">≤⟨</a> <a id="53934" href="Data.Nat.Properties.html#53411" class="Function">m≤∣m-n∣+n</a> <a id="53944" href="Data.Nat.Properties.html#53830" class="Bound">x</a> <a id="53946" href="Data.Nat.Properties.html#53838" class="Bound">y</a> <a id="53948" href="Relation.Binary.Reasoning.Base.Triple.html#3754" class="Function">⟩</a>
|
||
<a id="53952" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="53954" href="Data.Nat.Properties.html#53830" class="Bound">x</a> <a id="53956" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="53958" href="Data.Nat.Properties.html#53838" class="Bound">y</a> <a id="53960" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="53962" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="53964" href="Data.Nat.Properties.html#53838" class="Bound">y</a> <a id="53974" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="53977" href="Relation.Binary.PropositionalEquality.Core.html#1376" class="Function">cong₂</a> <a id="53983" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+_</a> <a id="53987" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="53992" class="Symbol">(</a><a id="53993" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="53997" class="Symbol">(</a><a id="53998" href="Data.Nat.Properties.html#51672" class="Function">∣-∣-identityʳ</a> <a id="54012" href="Data.Nat.Properties.html#53838" class="Bound">y</a><a id="54013" class="Symbol">))</a> <a id="54016" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="54020" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="54022" href="Data.Nat.Properties.html#53830" class="Bound">x</a> <a id="54024" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="54026" href="Data.Nat.Properties.html#53838" class="Bound">y</a> <a id="54028" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="54030" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="54032" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="54034" href="Data.Nat.Properties.html#53838" class="Bound">y</a> <a id="54036" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="54038" class="Number">0</a> <a id="54040" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="54042" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
<a id="54046" class="Keyword">where</a> <a id="54052" class="Keyword">open</a> <a id="54057" href="Data.Nat.Properties.html#12487" class="Module">≤-Reasoning</a>
|
||
<a id="54069" href="Data.Nat.Properties.html#53508" class="Function">∣-∣-triangle</a> <a id="54082" class="Symbol">(</a><a id="54083" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="54087" href="Data.Nat.Properties.html#54087" class="Bound">x</a><a id="54088" class="Symbol">)</a> <a id="54090" class="Symbol">(</a><a id="54091" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="54095" href="Data.Nat.Properties.html#54095" class="Bound">y</a><a id="54096" class="Symbol">)</a> <a id="54098" class="Symbol">(</a><a id="54099" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="54103" href="Data.Nat.Properties.html#54103" class="Bound">z</a><a id="54104" class="Symbol">)</a> <a id="54106" class="Symbol">=</a> <a id="54108" href="Data.Nat.Properties.html#53508" class="Function">∣-∣-triangle</a> <a id="54121" href="Data.Nat.Properties.html#54087" class="Bound">x</a> <a id="54123" href="Data.Nat.Properties.html#54095" class="Bound">y</a> <a id="54125" href="Data.Nat.Properties.html#54103" class="Bound">z</a>
|
||
|
||
<a id="54128" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="54201" class="Comment">-- Metric structures</a>
|
||
|
||
<a id="∣-∣-isProtoMetric"></a><a id="54223" href="Data.Nat.Properties.html#54223" class="Function">∣-∣-isProtoMetric</a> <a id="54241" class="Symbol">:</a> <a id="54243" href="Function.Metric.Nat.Structures.html#797" class="Function">IsProtoMetric</a> <a id="54257" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a> <a id="54261" href="Data.Nat.Base.html#3546" class="Function Operator">∣_-_∣</a>
|
||
<a id="54267" href="Data.Nat.Properties.html#54223" class="Function">∣-∣-isProtoMetric</a> <a id="54285" class="Symbol">=</a> <a id="54287" class="Keyword">record</a>
|
||
<a id="54296" class="Symbol">{</a> <a id="54298" href="Function.Metric.Structures.html#1028" class="Field">isPartialOrder</a> <a id="54314" class="Symbol">=</a> <a id="54316" href="Data.Nat.Properties.html#6006" class="Function">≤-isPartialOrder</a>
|
||
<a id="54335" class="Symbol">;</a> <a id="54337" href="Function.Metric.Structures.html#1075" class="Field">≈-isEquivalence</a> <a id="54353" class="Symbol">=</a> <a id="54355" href="Relation.Binary.PropositionalEquality.Properties.html#3436" class="Function">isEquivalence</a>
|
||
<a id="54371" class="Symbol">;</a> <a id="54373" href="Function.Metric.Structures.html#1117" class="Field">cong</a> <a id="54389" class="Symbol">=</a> <a id="54391" href="Relation.Binary.PropositionalEquality.Core.html#1376" class="Function">cong₂</a> <a id="54397" href="Data.Nat.Base.html#3546" class="Function Operator">∣_-_∣</a>
|
||
<a id="54405" class="Symbol">;</a> <a id="54407" href="Function.Metric.Structures.html#1162" class="Field">nonNegative</a> <a id="54423" class="Symbol">=</a> <a id="54425" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="54431" class="Symbol">}</a>
|
||
|
||
<a id="∣-∣-isPreMetric"></a><a id="54434" href="Data.Nat.Properties.html#54434" class="Function">∣-∣-isPreMetric</a> <a id="54450" class="Symbol">:</a> <a id="54452" href="Function.Metric.Nat.Structures.html#1040" class="Function">IsPreMetric</a> <a id="54464" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a> <a id="54468" href="Data.Nat.Base.html#3546" class="Function Operator">∣_-_∣</a>
|
||
<a id="54474" href="Data.Nat.Properties.html#54434" class="Function">∣-∣-isPreMetric</a> <a id="54490" class="Symbol">=</a> <a id="54492" class="Keyword">record</a>
|
||
<a id="54501" class="Symbol">{</a> <a id="54503" href="Function.Metric.Structures.html#1525" class="Field">isProtoMetric</a> <a id="54517" class="Symbol">=</a> <a id="54519" href="Data.Nat.Properties.html#54223" class="Function">∣-∣-isProtoMetric</a>
|
||
<a id="54539" class="Symbol">;</a> <a id="54541" href="Function.Metric.Structures.html#1561" class="Field">≈⇒0</a> <a id="54555" class="Symbol">=</a> <a id="54557" href="Data.Nat.Properties.html#50283" class="Function">m≡n⇒∣m-n∣≡0</a>
|
||
<a id="54571" class="Symbol">}</a>
|
||
|
||
<a id="∣-∣-isQuasiSemiMetric"></a><a id="54574" href="Data.Nat.Properties.html#54574" class="Function">∣-∣-isQuasiSemiMetric</a> <a id="54596" class="Symbol">:</a> <a id="54598" href="Function.Metric.Nat.Structures.html#1282" class="Function">IsQuasiSemiMetric</a> <a id="54616" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a> <a id="54620" href="Data.Nat.Base.html#3546" class="Function Operator">∣_-_∣</a>
|
||
<a id="54626" href="Data.Nat.Properties.html#54574" class="Function">∣-∣-isQuasiSemiMetric</a> <a id="54648" class="Symbol">=</a> <a id="54650" class="Keyword">record</a>
|
||
<a id="54659" class="Symbol">{</a> <a id="54661" href="Function.Metric.Structures.html#1863" class="Field">isPreMetric</a> <a id="54673" class="Symbol">=</a> <a id="54675" href="Data.Nat.Properties.html#54434" class="Function">∣-∣-isPreMetric</a>
|
||
<a id="54693" class="Symbol">;</a> <a id="54695" href="Function.Metric.Structures.html#1895" class="Field">0⇒≈</a> <a id="54707" class="Symbol">=</a> <a id="54709" href="Data.Nat.Properties.html#50410" class="Function">∣m-n∣≡0⇒m≡n</a>
|
||
<a id="54723" class="Symbol">}</a>
|
||
|
||
<a id="∣-∣-isSemiMetric"></a><a id="54726" href="Data.Nat.Properties.html#54726" class="Function">∣-∣-isSemiMetric</a> <a id="54743" class="Symbol">:</a> <a id="54745" href="Function.Metric.Nat.Structures.html#1542" class="Function">IsSemiMetric</a> <a id="54758" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a> <a id="54762" href="Data.Nat.Base.html#3546" class="Function Operator">∣_-_∣</a>
|
||
<a id="54768" href="Data.Nat.Properties.html#54726" class="Function">∣-∣-isSemiMetric</a> <a id="54785" class="Symbol">=</a> <a id="54787" class="Keyword">record</a>
|
||
<a id="54796" class="Symbol">{</a> <a id="54798" href="Function.Metric.Structures.html#2180" class="Field">isQuasiSemiMetric</a> <a id="54816" class="Symbol">=</a> <a id="54818" href="Data.Nat.Properties.html#54574" class="Function">∣-∣-isQuasiSemiMetric</a>
|
||
<a id="54842" class="Symbol">;</a> <a id="54844" href="Function.Metric.Structures.html#2224" class="Field">sym</a> <a id="54862" class="Symbol">=</a> <a id="54864" href="Data.Nat.Properties.html#51847" class="Function">∣-∣-comm</a>
|
||
<a id="54875" class="Symbol">}</a>
|
||
|
||
<a id="∣-∣-isMetric"></a><a id="54878" href="Data.Nat.Properties.html#54878" class="Function">∣-∣-isMetric</a> <a id="54891" class="Symbol">:</a> <a id="54893" href="Function.Metric.Nat.Structures.html#1777" class="Function">IsMetric</a> <a id="54902" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a> <a id="54906" href="Data.Nat.Base.html#3546" class="Function Operator">∣_-_∣</a>
|
||
<a id="54912" href="Data.Nat.Properties.html#54878" class="Function">∣-∣-isMetric</a> <a id="54925" class="Symbol">=</a> <a id="54927" class="Keyword">record</a>
|
||
<a id="54936" class="Symbol">{</a> <a id="54938" href="Function.Metric.Structures.html#3055" class="Field">isSemiMetric</a> <a id="54951" class="Symbol">=</a> <a id="54953" href="Data.Nat.Properties.html#54726" class="Function">∣-∣-isSemiMetric</a>
|
||
<a id="54972" class="Symbol">;</a> <a id="54974" href="Function.Metric.Structures.html#3089" class="Field">triangle</a> <a id="54987" class="Symbol">=</a> <a id="54989" href="Data.Nat.Properties.html#53508" class="Function">∣-∣-triangle</a>
|
||
<a id="55004" class="Symbol">}</a>
|
||
|
||
<a id="55007" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="55080" class="Comment">-- Metric bundles</a>
|
||
|
||
<a id="∣-∣-quasiSemiMetric"></a><a id="55099" href="Data.Nat.Properties.html#55099" class="Function">∣-∣-quasiSemiMetric</a> <a id="55119" class="Symbol">:</a> <a id="55121" href="Function.Metric.Nat.Bundles.html#1700" class="Record">QuasiSemiMetric</a> <a id="55137" href="Level.html#521" class="Function">0ℓ</a> <a id="55140" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="55143" href="Data.Nat.Properties.html#55099" class="Function">∣-∣-quasiSemiMetric</a> <a id="55163" class="Symbol">=</a> <a id="55165" class="Keyword">record</a>
|
||
<a id="55174" class="Symbol">{</a> <a id="55176" href="Function.Metric.Nat.Bundles.html#1875" class="Field">isQuasiSemiMetric</a> <a id="55194" class="Symbol">=</a> <a id="55196" href="Data.Nat.Properties.html#54574" class="Function">∣-∣-isQuasiSemiMetric</a>
|
||
<a id="55220" class="Symbol">}</a>
|
||
|
||
<a id="∣-∣-semiMetric"></a><a id="55223" href="Data.Nat.Properties.html#55223" class="Function">∣-∣-semiMetric</a> <a id="55238" class="Symbol">:</a> <a id="55240" href="Function.Metric.Nat.Bundles.html#2213" class="Record">SemiMetric</a> <a id="55251" href="Level.html#521" class="Function">0ℓ</a> <a id="55254" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="55257" href="Data.Nat.Properties.html#55223" class="Function">∣-∣-semiMetric</a> <a id="55272" class="Symbol">=</a> <a id="55274" class="Keyword">record</a>
|
||
<a id="55283" class="Symbol">{</a> <a id="55285" href="Function.Metric.Nat.Bundles.html#2368" class="Field">isSemiMetric</a> <a id="55298" class="Symbol">=</a> <a id="55300" href="Data.Nat.Properties.html#54726" class="Function">∣-∣-isSemiMetric</a>
|
||
<a id="55319" class="Symbol">}</a>
|
||
|
||
<a id="∣-∣-preMetric"></a><a id="55322" href="Data.Nat.Properties.html#55322" class="Function">∣-∣-preMetric</a> <a id="55336" class="Symbol">:</a> <a id="55338" href="Function.Metric.Nat.Bundles.html#1279" class="Record">PreMetric</a> <a id="55348" href="Level.html#521" class="Function">0ℓ</a> <a id="55351" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="55354" href="Data.Nat.Properties.html#55322" class="Function">∣-∣-preMetric</a> <a id="55368" class="Symbol">=</a> <a id="55370" class="Keyword">record</a>
|
||
<a id="55379" class="Symbol">{</a> <a id="55381" href="Function.Metric.Nat.Bundles.html#1430" class="Field">isPreMetric</a> <a id="55393" class="Symbol">=</a> <a id="55395" href="Data.Nat.Properties.html#54434" class="Function">∣-∣-isPreMetric</a>
|
||
<a id="55413" class="Symbol">}</a>
|
||
|
||
<a id="∣-∣-metric"></a><a id="55416" href="Data.Nat.Properties.html#55416" class="Function">∣-∣-metric</a> <a id="55427" class="Symbol">:</a> <a id="55429" href="Function.Metric.Nat.Bundles.html#2736" class="Record">Metric</a> <a id="55436" href="Level.html#521" class="Function">0ℓ</a> <a id="55439" href="Level.html#521" class="Function">0ℓ</a>
|
||
<a id="55442" href="Data.Nat.Properties.html#55416" class="Function">∣-∣-metric</a> <a id="55453" class="Symbol">=</a> <a id="55455" class="Keyword">record</a>
|
||
<a id="55464" class="Symbol">{</a> <a id="55466" href="Function.Metric.Nat.Bundles.html#2875" class="Field">isMetric</a> <a id="55475" class="Symbol">=</a> <a id="55477" href="Data.Nat.Properties.html#54878" class="Function">∣-∣-isMetric</a>
|
||
<a id="55492" class="Symbol">}</a>
|
||
|
||
<a id="55495" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="55568" class="Comment">-- Properties of ⌊_/2⌋ and ⌈_/2⌉</a>
|
||
<a id="55601" class="Comment">------------------------------------------------------------------------</a>
|
||
|
||
<a id="⌊n/2⌋-mono"></a><a id="55675" href="Data.Nat.Properties.html#55675" class="Function">⌊n/2⌋-mono</a> <a id="55686" class="Symbol">:</a> <a id="55688" href="Data.Nat.Base.html#3291" class="Function Operator">⌊_/2⌋</a> <a id="55694" href="Relation.Binary.Core.html#1572" class="Function Operator">Preserves</a> <a id="55704" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="55708" href="Relation.Binary.Core.html#1572" class="Function Operator">⟶</a> <a id="55710" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="55714" href="Data.Nat.Properties.html#55675" class="Function">⌊n/2⌋-mono</a> <a id="55725" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="55741" class="Symbol">=</a> <a id="55743" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="55747" href="Data.Nat.Properties.html#55675" class="Function">⌊n/2⌋-mono</a> <a id="55758" class="Symbol">(</a><a id="55759" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="55763" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a><a id="55766" class="Symbol">)</a> <a id="55774" class="Symbol">=</a> <a id="55776" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="55780" href="Data.Nat.Properties.html#55675" class="Function">⌊n/2⌋-mono</a> <a id="55791" class="Symbol">(</a><a id="55792" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="55796" class="Symbol">(</a><a id="55797" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="55801" href="Data.Nat.Properties.html#55801" class="Bound">m≤n</a><a id="55804" class="Symbol">))</a> <a id="55807" class="Symbol">=</a> <a id="55809" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="55813" class="Symbol">(</a><a id="55814" href="Data.Nat.Properties.html#55675" class="Function">⌊n/2⌋-mono</a> <a id="55825" href="Data.Nat.Properties.html#55801" class="Bound">m≤n</a><a id="55828" class="Symbol">)</a>
|
||
|
||
<a id="⌈n/2⌉-mono"></a><a id="55831" href="Data.Nat.Properties.html#55831" class="Function">⌈n/2⌉-mono</a> <a id="55842" class="Symbol">:</a> <a id="55844" href="Data.Nat.Base.html#3418" class="Function Operator">⌈_/2⌉</a> <a id="55850" href="Relation.Binary.Core.html#1572" class="Function Operator">Preserves</a> <a id="55860" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="55864" href="Relation.Binary.Core.html#1572" class="Function Operator">⟶</a> <a id="55866" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="55870" href="Data.Nat.Properties.html#55831" class="Function">⌈n/2⌉-mono</a> <a id="55881" href="Data.Nat.Properties.html#55881" class="Bound">m≤n</a> <a id="55885" class="Symbol">=</a> <a id="55887" href="Data.Nat.Properties.html#55675" class="Function">⌊n/2⌋-mono</a> <a id="55898" class="Symbol">(</a><a id="55899" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="55903" href="Data.Nat.Properties.html#55881" class="Bound">m≤n</a><a id="55906" class="Symbol">)</a>
|
||
|
||
<a id="⌊n/2⌋≤⌈n/2⌉"></a><a id="55909" href="Data.Nat.Properties.html#55909" class="Function">⌊n/2⌋≤⌈n/2⌉</a> <a id="55921" class="Symbol">:</a> <a id="55923" class="Symbol">∀</a> <a id="55925" href="Data.Nat.Properties.html#55925" class="Bound">n</a> <a id="55927" class="Symbol">→</a> <a id="55929" href="Data.Nat.Base.html#3291" class="Function Operator">⌊</a> <a id="55931" href="Data.Nat.Properties.html#55925" class="Bound">n</a> <a id="55933" href="Data.Nat.Base.html#3291" class="Function Operator">/2⌋</a> <a id="55937" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="55939" href="Data.Nat.Base.html#3418" class="Function Operator">⌈</a> <a id="55941" href="Data.Nat.Properties.html#55925" class="Bound">n</a> <a id="55943" href="Data.Nat.Base.html#3418" class="Function Operator">/2⌉</a>
|
||
<a id="55947" href="Data.Nat.Properties.html#55909" class="Function">⌊n/2⌋≤⌈n/2⌉</a> <a id="55959" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="55973" class="Symbol">=</a> <a id="55975" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="55979" href="Data.Nat.Properties.html#55909" class="Function">⌊n/2⌋≤⌈n/2⌉</a> <a id="55991" class="Symbol">(</a><a id="55992" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="55996" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="56000" class="Symbol">)</a> <a id="56005" class="Symbol">=</a> <a id="56007" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="56011" href="Data.Nat.Properties.html#55909" class="Function">⌊n/2⌋≤⌈n/2⌉</a> <a id="56023" class="Symbol">(</a><a id="56024" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="56028" class="Symbol">(</a><a id="56029" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="56033" href="Data.Nat.Properties.html#56033" class="Bound">n</a><a id="56034" class="Symbol">))</a> <a id="56037" class="Symbol">=</a> <a id="56039" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="56043" class="Symbol">(</a><a id="56044" href="Data.Nat.Properties.html#55909" class="Function">⌊n/2⌋≤⌈n/2⌉</a> <a id="56056" href="Data.Nat.Properties.html#56033" class="Bound">n</a><a id="56057" class="Symbol">)</a>
|
||
|
||
<a id="⌊n/2⌋+⌈n/2⌉≡n"></a><a id="56060" href="Data.Nat.Properties.html#56060" class="Function">⌊n/2⌋+⌈n/2⌉≡n</a> <a id="56074" class="Symbol">:</a> <a id="56076" class="Symbol">∀</a> <a id="56078" href="Data.Nat.Properties.html#56078" class="Bound">n</a> <a id="56080" class="Symbol">→</a> <a id="56082" href="Data.Nat.Base.html#3291" class="Function Operator">⌊</a> <a id="56084" href="Data.Nat.Properties.html#56078" class="Bound">n</a> <a id="56086" href="Data.Nat.Base.html#3291" class="Function Operator">/2⌋</a> <a id="56090" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="56092" href="Data.Nat.Base.html#3418" class="Function Operator">⌈</a> <a id="56094" href="Data.Nat.Properties.html#56078" class="Bound">n</a> <a id="56096" href="Data.Nat.Base.html#3418" class="Function Operator">/2⌉</a> <a id="56100" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="56102" href="Data.Nat.Properties.html#56078" class="Bound">n</a>
|
||
<a id="56104" href="Data.Nat.Properties.html#56060" class="Function">⌊n/2⌋+⌈n/2⌉≡n</a> <a id="56118" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="56126" class="Symbol">=</a> <a id="56128" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
<a id="56133" href="Data.Nat.Properties.html#56060" class="Function">⌊n/2⌋+⌈n/2⌉≡n</a> <a id="56147" class="Symbol">(</a><a id="56148" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="56152" href="Data.Nat.Properties.html#56152" class="Bound">n</a><a id="56153" class="Symbol">)</a> <a id="56155" class="Symbol">=</a> <a id="56157" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="56174" href="Data.Nat.Base.html#3291" class="Function Operator">⌊</a> <a id="56176" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="56180" href="Data.Nat.Properties.html#56152" class="Bound">n</a> <a id="56182" href="Data.Nat.Base.html#3291" class="Function Operator">/2⌋</a> <a id="56186" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="56188" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="56192" href="Data.Nat.Base.html#3291" class="Function Operator">⌊</a> <a id="56194" href="Data.Nat.Properties.html#56152" class="Bound">n</a> <a id="56196" href="Data.Nat.Base.html#3291" class="Function Operator">/2⌋</a> <a id="56202" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="56205" href="Data.Nat.Properties.html#13404" class="Function">+-comm</a> <a id="56212" href="Data.Nat.Base.html#3291" class="Function Operator">⌊</a> <a id="56214" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="56218" href="Data.Nat.Properties.html#56152" class="Bound">n</a> <a id="56220" href="Data.Nat.Base.html#3291" class="Function Operator">/2⌋</a> <a id="56224" class="Symbol">(</a><a id="56225" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="56229" href="Data.Nat.Base.html#3291" class="Function Operator">⌊</a> <a id="56231" href="Data.Nat.Properties.html#56152" class="Bound">n</a> <a id="56233" href="Data.Nat.Base.html#3291" class="Function Operator">/2⌋</a><a id="56236" class="Symbol">)</a> <a id="56238" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="56242" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="56246" href="Data.Nat.Base.html#3291" class="Function Operator">⌊</a> <a id="56248" href="Data.Nat.Properties.html#56152" class="Bound">n</a> <a id="56250" href="Data.Nat.Base.html#3291" class="Function Operator">/2⌋</a> <a id="56254" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="56256" href="Data.Nat.Base.html#3291" class="Function Operator">⌊</a> <a id="56258" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="56262" href="Data.Nat.Properties.html#56152" class="Bound">n</a> <a id="56264" href="Data.Nat.Base.html#3291" class="Function Operator">/2⌋</a> <a id="56270" href="Relation.Binary.Reasoning.Base.Triple.html#5032" class="Function Operator">≡⟨⟩</a>
|
||
<a id="56276" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="56280" class="Symbol">(</a><a id="56281" href="Data.Nat.Base.html#3291" class="Function Operator">⌊</a> <a id="56283" href="Data.Nat.Properties.html#56152" class="Bound">n</a> <a id="56285" href="Data.Nat.Base.html#3291" class="Function Operator">/2⌋</a> <a id="56289" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="56291" href="Data.Nat.Base.html#3291" class="Function Operator">⌊</a> <a id="56293" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="56297" href="Data.Nat.Properties.html#56152" class="Bound">n</a> <a id="56299" href="Data.Nat.Base.html#3291" class="Function Operator">/2⌋</a><a id="56302" class="Symbol">)</a> <a id="56304" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="56307" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="56312" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="56316" class="Symbol">(</a><a id="56317" href="Data.Nat.Properties.html#56060" class="Function">⌊n/2⌋+⌈n/2⌉≡n</a> <a id="56331" href="Data.Nat.Properties.html#56152" class="Bound">n</a><a id="56332" class="Symbol">)</a> <a id="56334" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="56338" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="56342" href="Data.Nat.Properties.html#56152" class="Bound">n</a> <a id="56366" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
|
||
<a id="⌊n/2⌋≤n"></a><a id="56369" href="Data.Nat.Properties.html#56369" class="Function">⌊n/2⌋≤n</a> <a id="56377" class="Symbol">:</a> <a id="56379" class="Symbol">∀</a> <a id="56381" href="Data.Nat.Properties.html#56381" class="Bound">n</a> <a id="56383" class="Symbol">→</a> <a id="56385" href="Data.Nat.Base.html#3291" class="Function Operator">⌊</a> <a id="56387" href="Data.Nat.Properties.html#56381" class="Bound">n</a> <a id="56389" href="Data.Nat.Base.html#3291" class="Function Operator">/2⌋</a> <a id="56393" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="56395" href="Data.Nat.Properties.html#56381" class="Bound">n</a>
|
||
<a id="56397" href="Data.Nat.Properties.html#56369" class="Function">⌊n/2⌋≤n</a> <a id="56405" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="56419" class="Symbol">=</a> <a id="56421" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="56425" href="Data.Nat.Properties.html#56369" class="Function">⌊n/2⌋≤n</a> <a id="56433" class="Symbol">(</a><a id="56434" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="56438" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="56442" class="Symbol">)</a> <a id="56447" class="Symbol">=</a> <a id="56449" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="56453" href="Data.Nat.Properties.html#56369" class="Function">⌊n/2⌋≤n</a> <a id="56461" class="Symbol">(</a><a id="56462" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="56466" class="Symbol">(</a><a id="56467" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="56471" href="Data.Nat.Properties.html#56471" class="Bound">n</a><a id="56472" class="Symbol">))</a> <a id="56475" class="Symbol">=</a> <a id="56477" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="56481" class="Symbol">(</a><a id="56482" href="Data.Nat.Properties.html#7191" class="Function">≤-step</a> <a id="56489" class="Symbol">(</a><a id="56490" href="Data.Nat.Properties.html#56369" class="Function">⌊n/2⌋≤n</a> <a id="56498" href="Data.Nat.Properties.html#56471" class="Bound">n</a><a id="56499" class="Symbol">))</a>
|
||
|
||
<a id="⌊n/2⌋<n"></a><a id="56503" href="Data.Nat.Properties.html#56503" class="Function">⌊n/2⌋<n</a> <a id="56511" class="Symbol">:</a> <a id="56513" class="Symbol">∀</a> <a id="56515" href="Data.Nat.Properties.html#56515" class="Bound">n</a> <a id="56517" class="Symbol">→</a> <a id="56519" href="Data.Nat.Base.html#3291" class="Function Operator">⌊</a> <a id="56521" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="56525" href="Data.Nat.Properties.html#56515" class="Bound">n</a> <a id="56527" href="Data.Nat.Base.html#3291" class="Function Operator">/2⌋</a> <a id="56531" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="56533" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="56537" href="Data.Nat.Properties.html#56515" class="Bound">n</a>
|
||
<a id="56539" href="Data.Nat.Properties.html#56503" class="Function">⌊n/2⌋<n</a> <a id="56547" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="56555" class="Symbol">=</a> <a id="56557" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="56561" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="56565" href="Data.Nat.Properties.html#56503" class="Function">⌊n/2⌋<n</a> <a id="56573" class="Symbol">(</a><a id="56574" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="56578" href="Data.Nat.Properties.html#56578" class="Bound">n</a><a id="56579" class="Symbol">)</a> <a id="56581" class="Symbol">=</a> <a id="56583" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="56587" class="Symbol">(</a><a id="56588" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="56592" class="Symbol">(</a><a id="56593" href="Data.Nat.Properties.html#56369" class="Function">⌊n/2⌋≤n</a> <a id="56601" href="Data.Nat.Properties.html#56578" class="Bound">n</a><a id="56602" class="Symbol">))</a>
|
||
|
||
<a id="⌈n/2⌉≤n"></a><a id="56606" href="Data.Nat.Properties.html#56606" class="Function">⌈n/2⌉≤n</a> <a id="56614" class="Symbol">:</a> <a id="56616" class="Symbol">∀</a> <a id="56618" href="Data.Nat.Properties.html#56618" class="Bound">n</a> <a id="56620" class="Symbol">→</a> <a id="56622" href="Data.Nat.Base.html#3418" class="Function Operator">⌈</a> <a id="56624" href="Data.Nat.Properties.html#56618" class="Bound">n</a> <a id="56626" href="Data.Nat.Base.html#3418" class="Function Operator">/2⌉</a> <a id="56630" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="56632" href="Data.Nat.Properties.html#56618" class="Bound">n</a>
|
||
<a id="56634" href="Data.Nat.Properties.html#56606" class="Function">⌈n/2⌉≤n</a> <a id="56642" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="56647" class="Symbol">=</a> <a id="56649" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="56653" href="Data.Nat.Properties.html#56606" class="Function">⌈n/2⌉≤n</a> <a id="56661" class="Symbol">(</a><a id="56662" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="56666" href="Data.Nat.Properties.html#56666" class="Bound">n</a><a id="56667" class="Symbol">)</a> <a id="56669" class="Symbol">=</a> <a id="56671" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="56675" class="Symbol">(</a><a id="56676" href="Data.Nat.Properties.html#56369" class="Function">⌊n/2⌋≤n</a> <a id="56684" href="Data.Nat.Properties.html#56666" class="Bound">n</a><a id="56685" class="Symbol">)</a>
|
||
|
||
<a id="⌈n/2⌉<n"></a><a id="56688" href="Data.Nat.Properties.html#56688" class="Function">⌈n/2⌉<n</a> <a id="56696" class="Symbol">:</a> <a id="56698" class="Symbol">∀</a> <a id="56700" href="Data.Nat.Properties.html#56700" class="Bound">n</a> <a id="56702" class="Symbol">→</a> <a id="56704" href="Data.Nat.Base.html#3418" class="Function Operator">⌈</a> <a id="56706" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="56710" class="Symbol">(</a><a id="56711" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="56715" href="Data.Nat.Properties.html#56700" class="Bound">n</a><a id="56716" class="Symbol">)</a> <a id="56718" href="Data.Nat.Base.html#3418" class="Function Operator">/2⌉</a> <a id="56722" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="56724" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="56728" class="Symbol">(</a><a id="56729" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="56733" href="Data.Nat.Properties.html#56700" class="Bound">n</a><a id="56734" class="Symbol">)</a>
|
||
<a id="56736" href="Data.Nat.Properties.html#56688" class="Function">⌈n/2⌉<n</a> <a id="56744" href="Data.Nat.Properties.html#56744" class="Bound">n</a> <a id="56746" class="Symbol">=</a> <a id="56748" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="56752" class="Symbol">(</a><a id="56753" href="Data.Nat.Properties.html#56503" class="Function">⌊n/2⌋<n</a> <a id="56761" href="Data.Nat.Properties.html#56744" class="Bound">n</a><a id="56762" class="Symbol">)</a>
|
||
|
||
<a id="56765" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="56838" class="Comment">-- Properties of _≤′_ and _<′_</a>
|
||
<a id="56869" class="Comment">------------------------------------------------------------------------</a>
|
||
|
||
<a id="≤′-trans"></a><a id="56943" href="Data.Nat.Properties.html#56943" class="Function">≤′-trans</a> <a id="56952" class="Symbol">:</a> <a id="56954" href="Relation.Binary.Definitions.html#1875" class="Function">Transitive</a> <a id="56965" href="Data.Nat.Base.html#3888" class="Datatype Operator">_≤′_</a>
|
||
<a id="56970" href="Data.Nat.Properties.html#56943" class="Function">≤′-trans</a> <a id="56979" href="Data.Nat.Properties.html#56979" class="Bound">m≤n</a> <a id="56983" href="Data.Nat.Base.html#3919" class="InductiveConstructor">≤′-refl</a> <a id="56997" class="Symbol">=</a> <a id="56999" href="Data.Nat.Properties.html#56979" class="Bound">m≤n</a>
|
||
<a id="57003" href="Data.Nat.Properties.html#56943" class="Function">≤′-trans</a> <a id="57012" href="Data.Nat.Properties.html#57012" class="Bound">m≤n</a> <a id="57016" class="Symbol">(</a><a id="57017" href="Data.Nat.Base.html#3962" class="InductiveConstructor">≤′-step</a> <a id="57025" href="Data.Nat.Properties.html#57025" class="Bound">n≤o</a><a id="57028" class="Symbol">)</a> <a id="57030" class="Symbol">=</a> <a id="57032" href="Data.Nat.Base.html#3962" class="InductiveConstructor">≤′-step</a> <a id="57040" class="Symbol">(</a><a id="57041" href="Data.Nat.Properties.html#56943" class="Function">≤′-trans</a> <a id="57050" href="Data.Nat.Properties.html#57012" class="Bound">m≤n</a> <a id="57054" href="Data.Nat.Properties.html#57025" class="Bound">n≤o</a><a id="57057" class="Symbol">)</a>
|
||
|
||
<a id="z≤′n"></a><a id="57060" href="Data.Nat.Properties.html#57060" class="Function">z≤′n</a> <a id="57065" class="Symbol">:</a> <a id="57067" class="Symbol">∀</a> <a id="57069" class="Symbol">{</a><a id="57070" href="Data.Nat.Properties.html#57070" class="Bound">n</a><a id="57071" class="Symbol">}</a> <a id="57073" class="Symbol">→</a> <a id="57075" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="57080" href="Data.Nat.Base.html#3888" class="Datatype Operator">≤′</a> <a id="57083" href="Data.Nat.Properties.html#57070" class="Bound">n</a>
|
||
<a id="57085" href="Data.Nat.Properties.html#57060" class="Function">z≤′n</a> <a id="57090" class="Symbol">{</a><a id="57091" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="57095" class="Symbol">}</a> <a id="57098" class="Symbol">=</a> <a id="57100" href="Data.Nat.Base.html#3919" class="InductiveConstructor">≤′-refl</a>
|
||
<a id="57108" href="Data.Nat.Properties.html#57060" class="Function">z≤′n</a> <a id="57113" class="Symbol">{</a><a id="57114" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="57118" href="Data.Nat.Properties.html#57118" class="Bound">n</a><a id="57119" class="Symbol">}</a> <a id="57121" class="Symbol">=</a> <a id="57123" href="Data.Nat.Base.html#3962" class="InductiveConstructor">≤′-step</a> <a id="57131" href="Data.Nat.Properties.html#57060" class="Function">z≤′n</a>
|
||
|
||
<a id="s≤′s"></a><a id="57137" href="Data.Nat.Properties.html#57137" class="Function">s≤′s</a> <a id="57142" class="Symbol">:</a> <a id="57144" class="Symbol">∀</a> <a id="57146" class="Symbol">{</a><a id="57147" href="Data.Nat.Properties.html#57147" class="Bound">m</a> <a id="57149" href="Data.Nat.Properties.html#57149" class="Bound">n</a><a id="57150" class="Symbol">}</a> <a id="57152" class="Symbol">→</a> <a id="57154" href="Data.Nat.Properties.html#57147" class="Bound">m</a> <a id="57156" href="Data.Nat.Base.html#3888" class="Datatype Operator">≤′</a> <a id="57159" href="Data.Nat.Properties.html#57149" class="Bound">n</a> <a id="57161" class="Symbol">→</a> <a id="57163" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="57167" href="Data.Nat.Properties.html#57147" class="Bound">m</a> <a id="57169" href="Data.Nat.Base.html#3888" class="Datatype Operator">≤′</a> <a id="57172" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="57176" href="Data.Nat.Properties.html#57149" class="Bound">n</a>
|
||
<a id="57178" href="Data.Nat.Properties.html#57137" class="Function">s≤′s</a> <a id="57183" href="Data.Nat.Base.html#3919" class="InductiveConstructor">≤′-refl</a> <a id="57198" class="Symbol">=</a> <a id="57200" href="Data.Nat.Base.html#3919" class="InductiveConstructor">≤′-refl</a>
|
||
<a id="57208" href="Data.Nat.Properties.html#57137" class="Function">s≤′s</a> <a id="57213" class="Symbol">(</a><a id="57214" href="Data.Nat.Base.html#3962" class="InductiveConstructor">≤′-step</a> <a id="57222" href="Data.Nat.Properties.html#57222" class="Bound">m≤′n</a><a id="57226" class="Symbol">)</a> <a id="57228" class="Symbol">=</a> <a id="57230" href="Data.Nat.Base.html#3962" class="InductiveConstructor">≤′-step</a> <a id="57238" class="Symbol">(</a><a id="57239" href="Data.Nat.Properties.html#57137" class="Function">s≤′s</a> <a id="57244" href="Data.Nat.Properties.html#57222" class="Bound">m≤′n</a><a id="57248" class="Symbol">)</a>
|
||
|
||
<a id="≤′⇒≤"></a><a id="57251" href="Data.Nat.Properties.html#57251" class="Function">≤′⇒≤</a> <a id="57256" class="Symbol">:</a> <a id="57258" href="Data.Nat.Base.html#3888" class="Datatype Operator">_≤′_</a> <a id="57263" href="Relation.Binary.Core.html#1263" class="Function Operator">⇒</a> <a id="57265" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="57269" href="Data.Nat.Properties.html#57251" class="Function">≤′⇒≤</a> <a id="57274" href="Data.Nat.Base.html#3919" class="InductiveConstructor">≤′-refl</a> <a id="57289" class="Symbol">=</a> <a id="57291" href="Data.Nat.Properties.html#4574" class="Function">≤-refl</a>
|
||
<a id="57298" href="Data.Nat.Properties.html#57251" class="Function">≤′⇒≤</a> <a id="57303" class="Symbol">(</a><a id="57304" href="Data.Nat.Base.html#3962" class="InductiveConstructor">≤′-step</a> <a id="57312" href="Data.Nat.Properties.html#57312" class="Bound">m≤′n</a><a id="57316" class="Symbol">)</a> <a id="57318" class="Symbol">=</a> <a id="57320" href="Data.Nat.Properties.html#7191" class="Function">≤-step</a> <a id="57327" class="Symbol">(</a><a id="57328" href="Data.Nat.Properties.html#57251" class="Function">≤′⇒≤</a> <a id="57333" href="Data.Nat.Properties.html#57312" class="Bound">m≤′n</a><a id="57337" class="Symbol">)</a>
|
||
|
||
<a id="≤⇒≤′"></a><a id="57340" href="Data.Nat.Properties.html#57340" class="Function">≤⇒≤′</a> <a id="57345" class="Symbol">:</a> <a id="57347" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="57351" href="Relation.Binary.Core.html#1263" class="Function Operator">⇒</a> <a id="57353" href="Data.Nat.Base.html#3888" class="Datatype Operator">_≤′_</a>
|
||
<a id="57358" href="Data.Nat.Properties.html#57340" class="Function">≤⇒≤′</a> <a id="57363" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a> <a id="57373" class="Symbol">=</a> <a id="57375" href="Data.Nat.Properties.html#57060" class="Function">z≤′n</a>
|
||
<a id="57380" href="Data.Nat.Properties.html#57340" class="Function">≤⇒≤′</a> <a id="57385" class="Symbol">(</a><a id="57386" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="57390" href="Data.Nat.Properties.html#57390" class="Bound">m≤n</a><a id="57393" class="Symbol">)</a> <a id="57395" class="Symbol">=</a> <a id="57397" href="Data.Nat.Properties.html#57137" class="Function">s≤′s</a> <a id="57402" class="Symbol">(</a><a id="57403" href="Data.Nat.Properties.html#57340" class="Function">≤⇒≤′</a> <a id="57408" href="Data.Nat.Properties.html#57390" class="Bound">m≤n</a><a id="57411" class="Symbol">)</a>
|
||
|
||
<a id="≤′-step-injective"></a><a id="57414" href="Data.Nat.Properties.html#57414" class="Function">≤′-step-injective</a> <a id="57432" class="Symbol">:</a> <a id="57434" class="Symbol">∀</a> <a id="57436" class="Symbol">{</a><a id="57437" href="Data.Nat.Properties.html#57437" class="Bound">m</a> <a id="57439" href="Data.Nat.Properties.html#57439" class="Bound">n</a><a id="57440" class="Symbol">}</a> <a id="57442" class="Symbol">{</a><a id="57443" href="Data.Nat.Properties.html#57443" class="Bound">p</a> <a id="57445" href="Data.Nat.Properties.html#57445" class="Bound">q</a> <a id="57447" class="Symbol">:</a> <a id="57449" href="Data.Nat.Properties.html#57437" class="Bound">m</a> <a id="57451" href="Data.Nat.Base.html#3888" class="Datatype Operator">≤′</a> <a id="57454" href="Data.Nat.Properties.html#57439" class="Bound">n</a><a id="57455" class="Symbol">}</a> <a id="57457" class="Symbol">→</a> <a id="57459" href="Data.Nat.Base.html#3962" class="InductiveConstructor">≤′-step</a> <a id="57467" href="Data.Nat.Properties.html#57443" class="Bound">p</a> <a id="57469" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="57471" href="Data.Nat.Base.html#3962" class="InductiveConstructor">≤′-step</a> <a id="57479" href="Data.Nat.Properties.html#57445" class="Bound">q</a> <a id="57481" class="Symbol">→</a> <a id="57483" href="Data.Nat.Properties.html#57443" class="Bound">p</a> <a id="57485" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="57487" href="Data.Nat.Properties.html#57445" class="Bound">q</a>
|
||
<a id="57489" href="Data.Nat.Properties.html#57414" class="Function">≤′-step-injective</a> <a id="57507" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="57512" class="Symbol">=</a> <a id="57514" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
|
||
<a id="57520" class="Keyword">infix</a> <a id="57526" class="Number">4</a> <a id="57528" href="Data.Nat.Properties.html#57553" class="Function Operator">_≤′?_</a> <a id="57534" href="Data.Nat.Properties.html#57611" class="Function Operator">_<′?_</a> <a id="57540" href="Data.Nat.Properties.html#57657" class="Function Operator">_≥′?_</a> <a id="57546" href="Data.Nat.Properties.html#57700" class="Function Operator">_>′?_</a>
|
||
|
||
<a id="_≤′?_"></a><a id="57553" href="Data.Nat.Properties.html#57553" class="Function Operator">_≤′?_</a> <a id="57559" class="Symbol">:</a> <a id="57561" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="57571" href="Data.Nat.Base.html#3888" class="Datatype Operator">_≤′_</a>
|
||
<a id="57576" href="Data.Nat.Properties.html#57576" class="Bound">m</a> <a id="57578" href="Data.Nat.Properties.html#57553" class="Function Operator">≤′?</a> <a id="57582" href="Data.Nat.Properties.html#57582" class="Bound">n</a> <a id="57584" class="Symbol">=</a> <a id="57586" href="Relation.Nullary.Decidable.Core.html#3645" class="Function">map′</a> <a id="57591" href="Data.Nat.Properties.html#57340" class="Function">≤⇒≤′</a> <a id="57596" href="Data.Nat.Properties.html#57251" class="Function">≤′⇒≤</a> <a id="57601" class="Symbol">(</a><a id="57602" href="Data.Nat.Properties.html#57576" class="Bound">m</a> <a id="57604" href="Data.Nat.Properties.html#5527" class="Function Operator">≤?</a> <a id="57607" href="Data.Nat.Properties.html#57582" class="Bound">n</a><a id="57608" class="Symbol">)</a>
|
||
|
||
<a id="_<′?_"></a><a id="57611" href="Data.Nat.Properties.html#57611" class="Function Operator">_<′?_</a> <a id="57617" class="Symbol">:</a> <a id="57619" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="57629" href="Data.Nat.Base.html#4008" class="Function Operator">_<′_</a>
|
||
<a id="57634" href="Data.Nat.Properties.html#57634" class="Bound">m</a> <a id="57636" href="Data.Nat.Properties.html#57611" class="Function Operator"><′?</a> <a id="57640" href="Data.Nat.Properties.html#57640" class="Bound">n</a> <a id="57642" class="Symbol">=</a> <a id="57644" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="57648" href="Data.Nat.Properties.html#57634" class="Bound">m</a> <a id="57650" href="Data.Nat.Properties.html#57553" class="Function Operator">≤′?</a> <a id="57654" href="Data.Nat.Properties.html#57640" class="Bound">n</a>
|
||
|
||
<a id="_≥′?_"></a><a id="57657" href="Data.Nat.Properties.html#57657" class="Function Operator">_≥′?_</a> <a id="57663" class="Symbol">:</a> <a id="57665" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="57675" href="Data.Nat.Base.html#4045" class="Function Operator">_≥′_</a>
|
||
<a id="57680" href="Data.Nat.Properties.html#57657" class="Function Operator">_≥′?_</a> <a id="57686" class="Symbol">=</a> <a id="57688" href="Function.Base.html#1563" class="Function">flip</a> <a id="57693" href="Data.Nat.Properties.html#57553" class="Function Operator">_≤′?_</a>
|
||
|
||
<a id="_>′?_"></a><a id="57700" href="Data.Nat.Properties.html#57700" class="Function Operator">_>′?_</a> <a id="57706" class="Symbol">:</a> <a id="57708" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="57718" href="Data.Nat.Base.html#4078" class="Function Operator">_>′_</a>
|
||
<a id="57723" href="Data.Nat.Properties.html#57700" class="Function Operator">_>′?_</a> <a id="57729" class="Symbol">=</a> <a id="57731" href="Function.Base.html#1563" class="Function">flip</a> <a id="57736" href="Data.Nat.Properties.html#57611" class="Function Operator">_<′?_</a>
|
||
|
||
<a id="m≤′m+n"></a><a id="57743" href="Data.Nat.Properties.html#57743" class="Function">m≤′m+n</a> <a id="57750" class="Symbol">:</a> <a id="57752" class="Symbol">∀</a> <a id="57754" href="Data.Nat.Properties.html#57754" class="Bound">m</a> <a id="57756" href="Data.Nat.Properties.html#57756" class="Bound">n</a> <a id="57758" class="Symbol">→</a> <a id="57760" href="Data.Nat.Properties.html#57754" class="Bound">m</a> <a id="57762" href="Data.Nat.Base.html#3888" class="Datatype Operator">≤′</a> <a id="57765" href="Data.Nat.Properties.html#57754" class="Bound">m</a> <a id="57767" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="57769" href="Data.Nat.Properties.html#57756" class="Bound">n</a>
|
||
<a id="57771" href="Data.Nat.Properties.html#57743" class="Function">m≤′m+n</a> <a id="57778" href="Data.Nat.Properties.html#57778" class="Bound">m</a> <a id="57780" href="Data.Nat.Properties.html#57780" class="Bound">n</a> <a id="57782" class="Symbol">=</a> <a id="57784" href="Data.Nat.Properties.html#57340" class="Function">≤⇒≤′</a> <a id="57789" class="Symbol">(</a><a id="57790" href="Data.Nat.Properties.html#17089" class="Function">m≤m+n</a> <a id="57796" href="Data.Nat.Properties.html#57778" class="Bound">m</a> <a id="57798" href="Data.Nat.Properties.html#57780" class="Bound">n</a><a id="57799" class="Symbol">)</a>
|
||
|
||
<a id="n≤′m+n"></a><a id="57802" href="Data.Nat.Properties.html#57802" class="Function">n≤′m+n</a> <a id="57809" class="Symbol">:</a> <a id="57811" class="Symbol">∀</a> <a id="57813" href="Data.Nat.Properties.html#57813" class="Bound">m</a> <a id="57815" href="Data.Nat.Properties.html#57815" class="Bound">n</a> <a id="57817" class="Symbol">→</a> <a id="57819" href="Data.Nat.Properties.html#57815" class="Bound">n</a> <a id="57821" href="Data.Nat.Base.html#3888" class="Datatype Operator">≤′</a> <a id="57824" href="Data.Nat.Properties.html#57813" class="Bound">m</a> <a id="57826" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="57828" href="Data.Nat.Properties.html#57815" class="Bound">n</a>
|
||
<a id="57830" href="Data.Nat.Properties.html#57802" class="Function">n≤′m+n</a> <a id="57837" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="57845" href="Data.Nat.Properties.html#57845" class="Bound">n</a> <a id="57847" class="Symbol">=</a> <a id="57849" href="Data.Nat.Base.html#3919" class="InductiveConstructor">≤′-refl</a>
|
||
<a id="57857" href="Data.Nat.Properties.html#57802" class="Function">n≤′m+n</a> <a id="57864" class="Symbol">(</a><a id="57865" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="57869" href="Data.Nat.Properties.html#57869" class="Bound">m</a><a id="57870" class="Symbol">)</a> <a id="57872" href="Data.Nat.Properties.html#57872" class="Bound">n</a> <a id="57874" class="Symbol">=</a> <a id="57876" href="Data.Nat.Base.html#3962" class="InductiveConstructor">≤′-step</a> <a id="57884" class="Symbol">(</a><a id="57885" href="Data.Nat.Properties.html#57802" class="Function">n≤′m+n</a> <a id="57892" href="Data.Nat.Properties.html#57869" class="Bound">m</a> <a id="57894" href="Data.Nat.Properties.html#57872" class="Bound">n</a><a id="57895" class="Symbol">)</a>
|
||
|
||
<a id="⌈n/2⌉≤′n"></a><a id="57898" href="Data.Nat.Properties.html#57898" class="Function">⌈n/2⌉≤′n</a> <a id="57907" class="Symbol">:</a> <a id="57909" class="Symbol">∀</a> <a id="57911" href="Data.Nat.Properties.html#57911" class="Bound">n</a> <a id="57913" class="Symbol">→</a> <a id="57915" href="Data.Nat.Base.html#3418" class="Function Operator">⌈</a> <a id="57917" href="Data.Nat.Properties.html#57911" class="Bound">n</a> <a id="57919" href="Data.Nat.Base.html#3418" class="Function Operator">/2⌉</a> <a id="57923" href="Data.Nat.Base.html#3888" class="Datatype Operator">≤′</a> <a id="57926" href="Data.Nat.Properties.html#57911" class="Bound">n</a>
|
||
<a id="57928" href="Data.Nat.Properties.html#57898" class="Function">⌈n/2⌉≤′n</a> <a id="57937" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="57951" class="Symbol">=</a> <a id="57953" href="Data.Nat.Base.html#3919" class="InductiveConstructor">≤′-refl</a>
|
||
<a id="57961" href="Data.Nat.Properties.html#57898" class="Function">⌈n/2⌉≤′n</a> <a id="57970" class="Symbol">(</a><a id="57971" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="57975" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="57979" class="Symbol">)</a> <a id="57984" class="Symbol">=</a> <a id="57986" href="Data.Nat.Base.html#3919" class="InductiveConstructor">≤′-refl</a>
|
||
<a id="57994" href="Data.Nat.Properties.html#57898" class="Function">⌈n/2⌉≤′n</a> <a id="58003" class="Symbol">(</a><a id="58004" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="58008" class="Symbol">(</a><a id="58009" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="58013" href="Data.Nat.Properties.html#58013" class="Bound">n</a><a id="58014" class="Symbol">))</a> <a id="58017" class="Symbol">=</a> <a id="58019" href="Data.Nat.Properties.html#57137" class="Function">s≤′s</a> <a id="58024" class="Symbol">(</a><a id="58025" href="Data.Nat.Base.html#3962" class="InductiveConstructor">≤′-step</a> <a id="58033" class="Symbol">(</a><a id="58034" href="Data.Nat.Properties.html#57898" class="Function">⌈n/2⌉≤′n</a> <a id="58043" href="Data.Nat.Properties.html#58013" class="Bound">n</a><a id="58044" class="Symbol">))</a>
|
||
|
||
<a id="⌊n/2⌋≤′n"></a><a id="58048" href="Data.Nat.Properties.html#58048" class="Function">⌊n/2⌋≤′n</a> <a id="58057" class="Symbol">:</a> <a id="58059" class="Symbol">∀</a> <a id="58061" href="Data.Nat.Properties.html#58061" class="Bound">n</a> <a id="58063" class="Symbol">→</a> <a id="58065" href="Data.Nat.Base.html#3291" class="Function Operator">⌊</a> <a id="58067" href="Data.Nat.Properties.html#58061" class="Bound">n</a> <a id="58069" href="Data.Nat.Base.html#3291" class="Function Operator">/2⌋</a> <a id="58073" href="Data.Nat.Base.html#3888" class="Datatype Operator">≤′</a> <a id="58076" href="Data.Nat.Properties.html#58061" class="Bound">n</a>
|
||
<a id="58078" href="Data.Nat.Properties.html#58048" class="Function">⌊n/2⌋≤′n</a> <a id="58087" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="58095" class="Symbol">=</a> <a id="58097" href="Data.Nat.Base.html#3919" class="InductiveConstructor">≤′-refl</a>
|
||
<a id="58105" href="Data.Nat.Properties.html#58048" class="Function">⌊n/2⌋≤′n</a> <a id="58114" class="Symbol">(</a><a id="58115" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="58119" href="Data.Nat.Properties.html#58119" class="Bound">n</a><a id="58120" class="Symbol">)</a> <a id="58122" class="Symbol">=</a> <a id="58124" href="Data.Nat.Base.html#3962" class="InductiveConstructor">≤′-step</a> <a id="58132" class="Symbol">(</a><a id="58133" href="Data.Nat.Properties.html#57898" class="Function">⌈n/2⌉≤′n</a> <a id="58142" href="Data.Nat.Properties.html#58119" class="Bound">n</a><a id="58143" class="Symbol">)</a>
|
||
|
||
<a id="58146" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="58219" class="Comment">-- Properties of _≤″_ and _<″_</a>
|
||
<a id="58250" class="Comment">------------------------------------------------------------------------</a>
|
||
|
||
<a id="m<ᵇn⇒1+m+[n-1+m]≡n"></a><a id="58324" href="Data.Nat.Properties.html#58324" class="Function">m<ᵇn⇒1+m+[n-1+m]≡n</a> <a id="58343" class="Symbol">:</a> <a id="58345" class="Symbol">∀</a> <a id="58347" href="Data.Nat.Properties.html#58347" class="Bound">m</a> <a id="58349" href="Data.Nat.Properties.html#58349" class="Bound">n</a> <a id="58351" class="Symbol">→</a> <a id="58353" href="Data.Bool.Base.html#1460" class="Function">T</a> <a id="58355" class="Symbol">(</a><a id="58356" href="Data.Nat.Properties.html#58347" class="Bound">m</a> <a id="58358" href="Data.Nat.Base.html#1310" class="Primitive Operator"><ᵇ</a> <a id="58361" href="Data.Nat.Properties.html#58349" class="Bound">n</a><a id="58362" class="Symbol">)</a> <a id="58364" class="Symbol">→</a> <a id="58366" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="58370" href="Data.Nat.Properties.html#58347" class="Bound">m</a> <a id="58372" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="58374" class="Symbol">(</a><a id="58375" href="Data.Nat.Properties.html#58349" class="Bound">n</a> <a id="58377" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="58379" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="58383" href="Data.Nat.Properties.html#58347" class="Bound">m</a><a id="58384" class="Symbol">)</a> <a id="58386" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="58388" href="Data.Nat.Properties.html#58349" class="Bound">n</a>
|
||
<a id="58390" href="Data.Nat.Properties.html#58324" class="Function">m<ᵇn⇒1+m+[n-1+m]≡n</a> <a id="58409" href="Data.Nat.Properties.html#58409" class="Bound">m</a> <a id="58411" href="Data.Nat.Properties.html#58411" class="Bound">n</a> <a id="58413" href="Data.Nat.Properties.html#58413" class="Bound">lt</a> <a id="58416" class="Symbol">=</a> <a id="58418" href="Data.Nat.Properties.html#46516" class="Function">m+[n∸m]≡n</a> <a id="58428" class="Symbol">(</a><a id="58429" href="Data.Nat.Properties.html#3376" class="Function"><ᵇ⇒<</a> <a id="58434" href="Data.Nat.Properties.html#58409" class="Bound">m</a> <a id="58436" href="Data.Nat.Properties.html#58411" class="Bound">n</a> <a id="58438" href="Data.Nat.Properties.html#58413" class="Bound">lt</a><a id="58440" class="Symbol">)</a>
|
||
|
||
<a id="m<ᵇ1+m+n"></a><a id="58443" href="Data.Nat.Properties.html#58443" class="Function">m<ᵇ1+m+n</a> <a id="58452" class="Symbol">:</a> <a id="58454" class="Symbol">∀</a> <a id="58456" href="Data.Nat.Properties.html#58456" class="Bound">m</a> <a id="58458" class="Symbol">{</a><a id="58459" href="Data.Nat.Properties.html#58459" class="Bound">n</a><a id="58460" class="Symbol">}</a> <a id="58462" class="Symbol">→</a> <a id="58464" href="Data.Bool.Base.html#1460" class="Function">T</a> <a id="58466" class="Symbol">(</a><a id="58467" href="Data.Nat.Properties.html#58456" class="Bound">m</a> <a id="58469" href="Data.Nat.Base.html#1310" class="Primitive Operator"><ᵇ</a> <a id="58472" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="58476" class="Symbol">(</a><a id="58477" href="Data.Nat.Properties.html#58456" class="Bound">m</a> <a id="58479" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="58481" href="Data.Nat.Properties.html#58459" class="Bound">n</a><a id="58482" class="Symbol">))</a>
|
||
<a id="58485" href="Data.Nat.Properties.html#58443" class="Function">m<ᵇ1+m+n</a> <a id="58494" href="Data.Nat.Properties.html#58494" class="Bound">m</a> <a id="58496" class="Symbol">=</a> <a id="58498" href="Data.Nat.Properties.html#3492" class="Function"><⇒<ᵇ</a> <a id="58503" class="Symbol">(</a><a id="58504" href="Data.Nat.Properties.html#17089" class="Function">m≤m+n</a> <a id="58510" class="Symbol">(</a><a id="58511" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="58515" href="Data.Nat.Properties.html#58494" class="Bound">m</a><a id="58516" class="Symbol">)</a> <a id="58518" class="Symbol">_)</a>
|
||
|
||
<a id="<ᵇ⇒<″"></a><a id="58522" href="Data.Nat.Properties.html#58522" class="Function"><ᵇ⇒<″</a> <a id="58528" class="Symbol">:</a> <a id="58530" class="Symbol">∀</a> <a id="58532" class="Symbol">{</a><a id="58533" href="Data.Nat.Properties.html#58533" class="Bound">m</a> <a id="58535" href="Data.Nat.Properties.html#58535" class="Bound">n</a><a id="58536" class="Symbol">}</a> <a id="58538" class="Symbol">→</a> <a id="58540" href="Data.Bool.Base.html#1460" class="Function">T</a> <a id="58542" class="Symbol">(</a><a id="58543" href="Data.Nat.Properties.html#58533" class="Bound">m</a> <a id="58545" href="Data.Nat.Base.html#1310" class="Primitive Operator"><ᵇ</a> <a id="58548" href="Data.Nat.Properties.html#58535" class="Bound">n</a><a id="58549" class="Symbol">)</a> <a id="58551" class="Symbol">→</a> <a id="58553" href="Data.Nat.Properties.html#58533" class="Bound">m</a> <a id="58555" href="Data.Nat.Base.html#4367" class="Function Operator"><″</a> <a id="58558" href="Data.Nat.Properties.html#58535" class="Bound">n</a>
|
||
<a id="58560" href="Data.Nat.Properties.html#58522" class="Function"><ᵇ⇒<″</a> <a id="58566" class="Symbol">{</a><a id="58567" href="Data.Nat.Properties.html#58567" class="Bound">m</a><a id="58568" class="Symbol">}</a> <a id="58570" class="Symbol">{</a><a id="58571" href="Data.Nat.Properties.html#58571" class="Bound">n</a><a id="58572" class="Symbol">}</a> <a id="58574" href="Data.Nat.Properties.html#58574" class="Bound">leq</a> <a id="58578" class="Symbol">=</a> <a id="58580" href="Data.Nat.Base.html#4274" class="InductiveConstructor">less-than-or-equal</a> <a id="58599" class="Symbol">(</a><a id="58600" href="Data.Nat.Properties.html#46516" class="Function">m+[n∸m]≡n</a> <a id="58610" class="Symbol">(</a><a id="58611" href="Data.Nat.Properties.html#3376" class="Function"><ᵇ⇒<</a> <a id="58616" href="Data.Nat.Properties.html#58567" class="Bound">m</a> <a id="58618" href="Data.Nat.Properties.html#58571" class="Bound">n</a> <a id="58620" href="Data.Nat.Properties.html#58574" class="Bound">leq</a><a id="58623" class="Symbol">))</a>
|
||
|
||
<a id="<″⇒<ᵇ"></a><a id="58627" href="Data.Nat.Properties.html#58627" class="Function"><″⇒<ᵇ</a> <a id="58633" class="Symbol">:</a> <a id="58635" class="Symbol">∀</a> <a id="58637" class="Symbol">{</a><a id="58638" href="Data.Nat.Properties.html#58638" class="Bound">m</a> <a id="58640" href="Data.Nat.Properties.html#58640" class="Bound">n</a><a id="58641" class="Symbol">}</a> <a id="58643" class="Symbol">→</a> <a id="58645" href="Data.Nat.Properties.html#58638" class="Bound">m</a> <a id="58647" href="Data.Nat.Base.html#4367" class="Function Operator"><″</a> <a id="58650" href="Data.Nat.Properties.html#58640" class="Bound">n</a> <a id="58652" class="Symbol">→</a> <a id="58654" href="Data.Bool.Base.html#1460" class="Function">T</a> <a id="58656" class="Symbol">(</a><a id="58657" href="Data.Nat.Properties.html#58638" class="Bound">m</a> <a id="58659" href="Data.Nat.Base.html#1310" class="Primitive Operator"><ᵇ</a> <a id="58662" href="Data.Nat.Properties.html#58640" class="Bound">n</a><a id="58663" class="Symbol">)</a>
|
||
<a id="58665" href="Data.Nat.Properties.html#58627" class="Function"><″⇒<ᵇ</a> <a id="58671" class="Symbol">{</a><a id="58672" href="Data.Nat.Properties.html#58672" class="Bound">m</a><a id="58673" class="Symbol">}</a> <a id="58675" class="Symbol">(</a><a id="58676" href="Data.Nat.Base.html#4274" class="InductiveConstructor">less-than-or-equal</a> <a id="58695" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a><a id="58699" class="Symbol">)</a> <a id="58701" class="Symbol">=</a> <a id="58703" href="Data.Nat.Properties.html#3492" class="Function"><⇒<ᵇ</a> <a id="58708" class="Symbol">(</a><a id="58709" href="Data.Nat.Properties.html#17089" class="Function">m≤m+n</a> <a id="58715" class="Symbol">(</a><a id="58716" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="58720" href="Data.Nat.Properties.html#58672" class="Bound">m</a><a id="58721" class="Symbol">)</a> <a id="58723" class="Symbol">_)</a>
|
||
|
||
<a id="58727" class="Comment">-- equivalence to _≤_</a>
|
||
|
||
<a id="≤″⇒≤"></a><a id="58750" href="Data.Nat.Properties.html#58750" class="Function">≤″⇒≤</a> <a id="58755" class="Symbol">:</a> <a id="58757" href="Data.Nat.Base.html#4233" class="Record Operator">_≤″_</a> <a id="58762" href="Relation.Binary.Core.html#1263" class="Function Operator">⇒</a> <a id="58764" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="58768" href="Data.Nat.Properties.html#58750" class="Function">≤″⇒≤</a> <a id="58773" class="Symbol">{</a><a id="58774" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="58778" class="Symbol">}</a> <a id="58781" class="Symbol">(</a><a id="58782" href="Data.Nat.Base.html#4274" class="InductiveConstructor">less-than-or-equal</a> <a id="58801" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a><a id="58805" class="Symbol">)</a> <a id="58807" class="Symbol">=</a> <a id="58809" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="58813" href="Data.Nat.Properties.html#58750" class="Function">≤″⇒≤</a> <a id="58818" class="Symbol">{</a><a id="58819" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="58823" href="Data.Nat.Properties.html#58823" class="Bound">m</a><a id="58824" class="Symbol">}</a> <a id="58826" class="Symbol">(</a><a id="58827" href="Data.Nat.Base.html#4274" class="InductiveConstructor">less-than-or-equal</a> <a id="58846" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a><a id="58850" class="Symbol">)</a> <a id="58852" class="Symbol">=</a>
|
||
<a id="58856" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="58860" class="Symbol">(</a><a id="58861" href="Data.Nat.Properties.html#58750" class="Function">≤″⇒≤</a> <a id="58866" class="Symbol">(</a><a id="58867" href="Data.Nat.Base.html#4274" class="InductiveConstructor">less-than-or-equal</a> <a id="58886" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a><a id="58890" class="Symbol">))</a>
|
||
|
||
<a id="≤⇒≤″"></a><a id="58894" href="Data.Nat.Properties.html#58894" class="Function">≤⇒≤″</a> <a id="58899" class="Symbol">:</a> <a id="58901" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="58905" href="Relation.Binary.Core.html#1263" class="Function Operator">⇒</a> <a id="58907" href="Data.Nat.Base.html#4233" class="Record Operator">_≤″_</a>
|
||
<a id="58912" href="Data.Nat.Properties.html#58894" class="Function">≤⇒≤″</a> <a id="58917" class="Symbol">=</a> <a id="58919" href="Data.Nat.Base.html#4274" class="InductiveConstructor">less-than-or-equal</a> <a id="58938" href="Function.Base.html#1040" class="Function Operator">∘</a> <a id="58940" href="Data.Nat.Properties.html#46516" class="Function">m+[n∸m]≡n</a>
|
||
|
||
<a id="58951" class="Comment">-- NB: we use the builtin function `_<ᵇ_ : (m n : ℕ) → Bool` here so</a>
|
||
<a id="59020" class="Comment">-- that the function quickly decides whether to return `yes` or `no`.</a>
|
||
<a id="59090" class="Comment">-- It still takes a linear amount of time to generate the proof if it</a>
|
||
<a id="59160" class="Comment">-- is inspected. We expect the main benefit to be visible for compiled</a>
|
||
<a id="59231" class="Comment">-- code: the backend erases proofs.</a>
|
||
|
||
<a id="59268" class="Keyword">infix</a> <a id="59274" class="Number">4</a> <a id="59276" href="Data.Nat.Properties.html#59301" class="Function Operator">_<″?_</a> <a id="59282" href="Data.Nat.Properties.html#59366" class="Function Operator">_≤″?_</a> <a id="59288" href="Data.Nat.Properties.html#59456" class="Function Operator">_≥″?_</a> <a id="59294" href="Data.Nat.Properties.html#59499" class="Function Operator">_>″?_</a>
|
||
|
||
<a id="_<″?_"></a><a id="59301" href="Data.Nat.Properties.html#59301" class="Function Operator">_<″?_</a> <a id="59307" class="Symbol">:</a> <a id="59309" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="59319" href="Data.Nat.Base.html#4367" class="Function Operator">_<″_</a>
|
||
<a id="59324" href="Data.Nat.Properties.html#59324" class="Bound">m</a> <a id="59326" href="Data.Nat.Properties.html#59301" class="Function Operator"><″?</a> <a id="59330" href="Data.Nat.Properties.html#59330" class="Bound">n</a> <a id="59332" class="Symbol">=</a> <a id="59334" href="Relation.Nullary.Decidable.Core.html#3645" class="Function">map′</a> <a id="59339" href="Data.Nat.Properties.html#58522" class="Function"><ᵇ⇒<″</a> <a id="59345" href="Data.Nat.Properties.html#58627" class="Function"><″⇒<ᵇ</a> <a id="59351" class="Symbol">(</a><a id="59352" href="Data.Bool.Properties.html#15479" class="Function">T?</a> <a id="59355" class="Symbol">(</a><a id="59356" href="Data.Nat.Properties.html#59324" class="Bound">m</a> <a id="59358" href="Data.Nat.Base.html#1310" class="Primitive Operator"><ᵇ</a> <a id="59361" href="Data.Nat.Properties.html#59330" class="Bound">n</a><a id="59362" class="Symbol">))</a>
|
||
|
||
<a id="_≤″?_"></a><a id="59366" href="Data.Nat.Properties.html#59366" class="Function Operator">_≤″?_</a> <a id="59372" class="Symbol">:</a> <a id="59374" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="59384" href="Data.Nat.Base.html#4233" class="Record Operator">_≤″_</a>
|
||
<a id="59389" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="59395" href="Data.Nat.Properties.html#59366" class="Function Operator">≤″?</a> <a id="59399" href="Data.Nat.Properties.html#59399" class="Bound">n</a> <a id="59401" class="Symbol">=</a> <a id="59403" href="Relation.Nullary.html#1657" class="InductiveConstructor">yes</a> <a id="59407" class="Symbol">(</a><a id="59408" href="Data.Nat.Base.html#4274" class="InductiveConstructor">less-than-or-equal</a> <a id="59427" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a><a id="59431" class="Symbol">)</a>
|
||
<a id="59433" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="59437" href="Data.Nat.Properties.html#59437" class="Bound">m</a> <a id="59439" href="Data.Nat.Properties.html#59366" class="Function Operator">≤″?</a> <a id="59443" href="Data.Nat.Properties.html#59443" class="Bound">n</a> <a id="59445" class="Symbol">=</a> <a id="59447" href="Data.Nat.Properties.html#59437" class="Bound">m</a> <a id="59449" href="Data.Nat.Properties.html#59301" class="Function Operator"><″?</a> <a id="59453" href="Data.Nat.Properties.html#59443" class="Bound">n</a>
|
||
|
||
<a id="_≥″?_"></a><a id="59456" href="Data.Nat.Properties.html#59456" class="Function Operator">_≥″?_</a> <a id="59462" class="Symbol">:</a> <a id="59464" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="59474" href="Data.Nat.Base.html#4404" class="Function Operator">_≥″_</a>
|
||
<a id="59479" href="Data.Nat.Properties.html#59456" class="Function Operator">_≥″?_</a> <a id="59485" class="Symbol">=</a> <a id="59487" href="Function.Base.html#1563" class="Function">flip</a> <a id="59492" href="Data.Nat.Properties.html#59366" class="Function Operator">_≤″?_</a>
|
||
|
||
<a id="_>″?_"></a><a id="59499" href="Data.Nat.Properties.html#59499" class="Function Operator">_>″?_</a> <a id="59505" class="Symbol">:</a> <a id="59507" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="59517" href="Data.Nat.Base.html#4437" class="Function Operator">_>″_</a>
|
||
<a id="59522" href="Data.Nat.Properties.html#59499" class="Function Operator">_>″?_</a> <a id="59528" class="Symbol">=</a> <a id="59530" href="Function.Base.html#1563" class="Function">flip</a> <a id="59535" href="Data.Nat.Properties.html#59301" class="Function Operator">_<″?_</a>
|
||
|
||
<a id="≤″-irrelevant"></a><a id="59542" href="Data.Nat.Properties.html#59542" class="Function">≤″-irrelevant</a> <a id="59556" class="Symbol">:</a> <a id="59558" href="Relation.Binary.Definitions.html#5074" class="Function">Irrelevant</a> <a id="59569" href="Data.Nat.Base.html#4233" class="Record Operator">_≤″_</a>
|
||
<a id="59574" href="Data.Nat.Properties.html#59542" class="Function">≤″-irrelevant</a> <a id="59588" class="Symbol">{</a><a id="59589" href="Data.Nat.Properties.html#59589" class="Bound">m</a><a id="59590" class="Symbol">}</a> <a id="59592" class="Symbol">(</a><a id="59593" href="Data.Nat.Base.html#4274" class="InductiveConstructor">less-than-or-equal</a> <a id="59612" href="Data.Nat.Properties.html#59612" class="Bound">eq₁</a><a id="59615" class="Symbol">)</a>
|
||
<a id="59635" class="Symbol">(</a><a id="59636" href="Data.Nat.Base.html#4274" class="InductiveConstructor">less-than-or-equal</a> <a id="59655" href="Data.Nat.Properties.html#59655" class="Bound">eq₂</a><a id="59658" class="Symbol">)</a>
|
||
<a id="59662" class="Keyword">with</a> <a id="59667" href="Data.Nat.Properties.html#13613" class="Function">+-cancelˡ-≡</a> <a id="59679" href="Data.Nat.Properties.html#59589" class="Bound">m</a> <a id="59681" class="Symbol">(</a><a id="59682" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="59688" href="Data.Nat.Properties.html#59612" class="Bound">eq₁</a> <a id="59692" class="Symbol">(</a><a id="59693" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="59697" href="Data.Nat.Properties.html#59655" class="Bound">eq₂</a><a id="59700" class="Symbol">))</a>
|
||
<a id="59703" class="Symbol">...</a> <a id="59707" class="Symbol">|</a> <a id="59709" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="59714" class="Symbol">=</a> <a id="59716" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="59721" href="Data.Nat.Base.html#4274" class="InductiveConstructor">less-than-or-equal</a> <a id="59740" class="Symbol">(</a><a id="59741" href="Data.Nat.Properties.html#2616" class="Function">≡-irrelevant</a> <a id="59754" class="Bound">eq₁</a> <a id="59758" class="Bound">eq₂</a><a id="59761" class="Symbol">)</a>
|
||
|
||
<a id="<″-irrelevant"></a><a id="59764" href="Data.Nat.Properties.html#59764" class="Function"><″-irrelevant</a> <a id="59778" class="Symbol">:</a> <a id="59780" href="Relation.Binary.Definitions.html#5074" class="Function">Irrelevant</a> <a id="59791" href="Data.Nat.Base.html#4367" class="Function Operator">_<″_</a>
|
||
<a id="59796" href="Data.Nat.Properties.html#59764" class="Function"><″-irrelevant</a> <a id="59810" class="Symbol">=</a> <a id="59812" href="Data.Nat.Properties.html#59542" class="Function">≤″-irrelevant</a>
|
||
|
||
<a id=">″-irrelevant"></a><a id="59827" href="Data.Nat.Properties.html#59827" class="Function">>″-irrelevant</a> <a id="59841" class="Symbol">:</a> <a id="59843" href="Relation.Binary.Definitions.html#5074" class="Function">Irrelevant</a> <a id="59854" href="Data.Nat.Base.html#4437" class="Function Operator">_>″_</a>
|
||
<a id="59859" href="Data.Nat.Properties.html#59827" class="Function">>″-irrelevant</a> <a id="59873" class="Symbol">=</a> <a id="59875" href="Data.Nat.Properties.html#59542" class="Function">≤″-irrelevant</a>
|
||
|
||
<a id="≥″-irrelevant"></a><a id="59890" href="Data.Nat.Properties.html#59890" class="Function">≥″-irrelevant</a> <a id="59904" class="Symbol">:</a> <a id="59906" href="Relation.Binary.Definitions.html#5074" class="Function">Irrelevant</a> <a id="59917" href="Data.Nat.Base.html#4404" class="Function Operator">_≥″_</a>
|
||
<a id="59922" href="Data.Nat.Properties.html#59890" class="Function">≥″-irrelevant</a> <a id="59936" class="Symbol">=</a> <a id="59938" href="Data.Nat.Properties.html#59542" class="Function">≤″-irrelevant</a>
|
||
|
||
<a id="59953" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="60026" class="Comment">-- Properties of _≤‴_</a>
|
||
<a id="60048" class="Comment">------------------------------------------------------------------------</a>
|
||
|
||
<a id="≤‴⇒≤″"></a><a id="60122" href="Data.Nat.Properties.html#60122" class="Function">≤‴⇒≤″</a> <a id="60128" class="Symbol">:</a> <a id="60130" class="Symbol">∀{</a><a id="60132" href="Data.Nat.Properties.html#60132" class="Bound">m</a> <a id="60134" href="Data.Nat.Properties.html#60134" class="Bound">n</a><a id="60135" class="Symbol">}</a> <a id="60137" class="Symbol">→</a> <a id="60139" href="Data.Nat.Properties.html#60132" class="Bound">m</a> <a id="60141" href="Data.Nat.Base.html#4645" class="Datatype Operator">≤‴</a> <a id="60144" href="Data.Nat.Properties.html#60134" class="Bound">n</a> <a id="60146" class="Symbol">→</a> <a id="60148" href="Data.Nat.Properties.html#60132" class="Bound">m</a> <a id="60150" href="Data.Nat.Base.html#4233" class="Record Operator">≤″</a> <a id="60153" href="Data.Nat.Properties.html#60134" class="Bound">n</a>
|
||
<a id="60155" href="Data.Nat.Properties.html#60122" class="Function">≤‴⇒≤″</a> <a id="60161" class="Symbol">{</a><a id="60162" class="Argument">m</a> <a id="60164" class="Symbol">=</a> <a id="60166" href="Data.Nat.Properties.html#60166" class="Bound">m</a><a id="60167" class="Symbol">}</a> <a id="60169" href="Data.Nat.Base.html#4672" class="InductiveConstructor">≤‴-refl</a> <a id="60181" class="Symbol">=</a> <a id="60183" href="Data.Nat.Base.html#4274" class="InductiveConstructor">less-than-or-equal</a> <a id="60202" class="Symbol">{</a><a id="60203" class="Argument">k</a> <a id="60205" class="Symbol">=</a> <a id="60207" class="Number">0</a><a id="60208" class="Symbol">}</a> <a id="60210" class="Symbol">(</a><a id="60211" href="Data.Nat.Properties.html#13227" class="Function">+-identityʳ</a> <a id="60223" href="Data.Nat.Properties.html#60166" class="Bound">m</a><a id="60224" class="Symbol">)</a>
|
||
<a id="60226" href="Data.Nat.Properties.html#60122" class="Function">≤‴⇒≤″</a> <a id="60232" class="Symbol">{</a><a id="60233" class="Argument">m</a> <a id="60235" class="Symbol">=</a> <a id="60237" href="Data.Nat.Properties.html#60237" class="Bound">m</a><a id="60238" class="Symbol">}</a> <a id="60240" class="Symbol">(</a><a id="60241" href="Data.Nat.Base.html#4698" class="InductiveConstructor">≤‴-step</a> <a id="60249" href="Data.Nat.Properties.html#60249" class="Bound">x</a><a id="60250" class="Symbol">)</a> <a id="60252" class="Symbol">=</a> <a id="60254" href="Data.Nat.Base.html#4274" class="InductiveConstructor">less-than-or-equal</a> <a id="60273" class="Symbol">(</a><a id="60274" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="60280" class="Symbol">(</a><a id="60281" href="Data.Nat.Properties.html#12863" class="Function">+-suc</a> <a id="60287" href="Data.Nat.Properties.html#60237" class="Bound">m</a> <a id="60289" class="Symbol">_)</a> <a id="60292" class="Symbol">(</a><a id="60293" href="Data.Nat.Base.html#4319" class="Field">_≤″_.proof</a> <a id="60304" href="Data.Nat.Properties.html#60318" class="Function">ind</a><a id="60307" class="Symbol">))</a> <a id="60310" class="Keyword">where</a>
|
||
<a id="60318" href="Data.Nat.Properties.html#60318" class="Function">ind</a> <a id="60322" class="Symbol">=</a> <a id="60324" href="Data.Nat.Properties.html#60122" class="Function">≤‴⇒≤″</a> <a id="60330" href="Data.Nat.Properties.html#60249" class="Bound">x</a>
|
||
|
||
<a id="m≤‴m+k"></a><a id="60333" href="Data.Nat.Properties.html#60333" class="Function">m≤‴m+k</a> <a id="60340" class="Symbol">:</a> <a id="60342" class="Symbol">∀{</a><a id="60344" href="Data.Nat.Properties.html#60344" class="Bound">m</a> <a id="60346" href="Data.Nat.Properties.html#60346" class="Bound">n</a> <a id="60348" href="Data.Nat.Properties.html#60348" class="Bound">k</a><a id="60349" class="Symbol">}</a> <a id="60351" class="Symbol">→</a> <a id="60353" href="Data.Nat.Properties.html#60344" class="Bound">m</a> <a id="60355" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="60357" href="Data.Nat.Properties.html#60348" class="Bound">k</a> <a id="60359" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="60361" href="Data.Nat.Properties.html#60346" class="Bound">n</a> <a id="60363" class="Symbol">→</a> <a id="60365" href="Data.Nat.Properties.html#60344" class="Bound">m</a> <a id="60367" href="Data.Nat.Base.html#4645" class="Datatype Operator">≤‴</a> <a id="60370" href="Data.Nat.Properties.html#60346" class="Bound">n</a>
|
||
<a id="60372" href="Data.Nat.Properties.html#60333" class="Function">m≤‴m+k</a> <a id="60379" class="Symbol">{</a><a id="60380" href="Data.Nat.Properties.html#60380" class="Bound">m</a><a id="60381" class="Symbol">}</a> <a id="60383" class="Symbol">{</a><a id="60384" class="Argument">k</a> <a id="60386" class="Symbol">=</a> <a id="60388" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a><a id="60392" class="Symbol">}</a> <a id="60394" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="60399" class="Symbol">=</a> <a id="60401" href="Relation.Binary.PropositionalEquality.Core.html#1789" class="Function">subst</a> <a id="60407" class="Symbol">(λ</a> <a id="60410" href="Data.Nat.Properties.html#60410" class="Bound">z</a> <a id="60412" class="Symbol">→</a> <a id="60414" href="Data.Nat.Properties.html#60380" class="Bound">m</a> <a id="60416" href="Data.Nat.Base.html#4645" class="Datatype Operator">≤‴</a> <a id="60419" href="Data.Nat.Properties.html#60410" class="Bound">z</a><a id="60420" class="Symbol">)</a> <a id="60422" class="Symbol">(</a><a id="60423" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="60427" class="Symbol">(</a><a id="60428" href="Data.Nat.Properties.html#13227" class="Function">+-identityʳ</a> <a id="60440" href="Data.Nat.Properties.html#60380" class="Bound">m</a><a id="60441" class="Symbol">))</a> <a id="60444" class="Symbol">(</a><a id="60445" href="Data.Nat.Base.html#4672" class="InductiveConstructor">≤‴-refl</a> <a id="60453" class="Symbol">{</a><a id="60454" href="Data.Nat.Properties.html#60380" class="Bound">m</a><a id="60455" class="Symbol">})</a>
|
||
<a id="60458" href="Data.Nat.Properties.html#60333" class="Function">m≤‴m+k</a> <a id="60465" class="Symbol">{</a><a id="60466" href="Data.Nat.Properties.html#60466" class="Bound">m</a><a id="60467" class="Symbol">}</a> <a id="60469" class="Symbol">{</a><a id="60470" class="Argument">k</a> <a id="60472" class="Symbol">=</a> <a id="60474" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="60478" href="Data.Nat.Properties.html#60478" class="Bound">k</a><a id="60479" class="Symbol">}</a> <a id="60481" href="Data.Nat.Properties.html#60481" class="Bound">proof</a>
|
||
<a id="60489" class="Symbol">=</a> <a id="60491" href="Data.Nat.Base.html#4698" class="InductiveConstructor">≤‴-step</a> <a id="60499" class="Symbol">(</a><a id="60500" href="Data.Nat.Properties.html#60333" class="Function">m≤‴m+k</a> <a id="60507" class="Symbol">{</a><a id="60508" class="Argument">k</a> <a id="60510" class="Symbol">=</a> <a id="60512" href="Data.Nat.Properties.html#60478" class="Bound">k</a><a id="60513" class="Symbol">}</a> <a id="60515" class="Symbol">(</a><a id="60516" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="60522" class="Symbol">(</a><a id="60523" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="60527" class="Symbol">(</a><a id="60528" href="Data.Nat.Properties.html#12863" class="Function">+-suc</a> <a id="60534" href="Data.Nat.Properties.html#60466" class="Bound">m</a> <a id="60536" class="Symbol">_))</a> <a id="60540" href="Data.Nat.Properties.html#60481" class="Bound">proof</a><a id="60545" class="Symbol">))</a>
|
||
|
||
<a id="≤″⇒≤‴"></a><a id="60549" href="Data.Nat.Properties.html#60549" class="Function">≤″⇒≤‴</a> <a id="60555" class="Symbol">:</a> <a id="60557" class="Symbol">∀{</a><a id="60559" href="Data.Nat.Properties.html#60559" class="Bound">m</a> <a id="60561" href="Data.Nat.Properties.html#60561" class="Bound">n</a><a id="60562" class="Symbol">}</a> <a id="60564" class="Symbol">→</a> <a id="60566" href="Data.Nat.Properties.html#60559" class="Bound">m</a> <a id="60568" href="Data.Nat.Base.html#4233" class="Record Operator">≤″</a> <a id="60571" href="Data.Nat.Properties.html#60561" class="Bound">n</a> <a id="60573" class="Symbol">→</a> <a id="60575" href="Data.Nat.Properties.html#60559" class="Bound">m</a> <a id="60577" href="Data.Nat.Base.html#4645" class="Datatype Operator">≤‴</a> <a id="60580" href="Data.Nat.Properties.html#60561" class="Bound">n</a>
|
||
<a id="60582" href="Data.Nat.Properties.html#60549" class="Function">≤″⇒≤‴</a> <a id="60588" class="Symbol">(</a><a id="60589" href="Data.Nat.Base.html#4274" class="InductiveConstructor">less-than-or-equal</a> <a id="60608" class="Symbol">{</a><a id="60609" href="Data.Nat.Properties.html#60609" class="Bound">k</a><a id="60610" class="Symbol">}</a> <a id="60612" href="Data.Nat.Properties.html#60612" class="Bound">proof</a><a id="60617" class="Symbol">)</a> <a id="60619" class="Symbol">=</a> <a id="60621" href="Data.Nat.Properties.html#60333" class="Function">m≤‴m+k</a> <a id="60628" href="Data.Nat.Properties.html#60612" class="Bound">proof</a>
|
||
|
||
<a id="0≤‴n"></a><a id="60635" href="Data.Nat.Properties.html#60635" class="Function">0≤‴n</a> <a id="60640" class="Symbol">:</a> <a id="60642" class="Symbol">∀{</a><a id="60644" href="Data.Nat.Properties.html#60644" class="Bound">n</a><a id="60645" class="Symbol">}</a> <a id="60647" class="Symbol">→</a> <a id="60649" class="Number">0</a> <a id="60651" href="Data.Nat.Base.html#4645" class="Datatype Operator">≤‴</a> <a id="60654" href="Data.Nat.Properties.html#60644" class="Bound">n</a>
|
||
<a id="60656" href="Data.Nat.Properties.html#60635" class="Function">0≤‴n</a> <a id="60661" class="Symbol">{</a><a id="60662" href="Data.Nat.Properties.html#60662" class="Bound">n</a><a id="60663" class="Symbol">}</a> <a id="60665" class="Symbol">=</a> <a id="60667" href="Data.Nat.Properties.html#60333" class="Function">m≤‴m+k</a> <a id="60674" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a>
|
||
|
||
<a id="<ᵇ⇒<‴"></a><a id="60680" href="Data.Nat.Properties.html#60680" class="Function"><ᵇ⇒<‴</a> <a id="60686" class="Symbol">:</a> <a id="60688" class="Symbol">∀</a> <a id="60690" class="Symbol">{</a><a id="60691" href="Data.Nat.Properties.html#60691" class="Bound">m</a> <a id="60693" href="Data.Nat.Properties.html#60693" class="Bound">n</a><a id="60694" class="Symbol">}</a> <a id="60696" class="Symbol">→</a> <a id="60698" href="Data.Bool.Base.html#1460" class="Function">T</a> <a id="60700" class="Symbol">(</a><a id="60701" href="Data.Nat.Properties.html#60691" class="Bound">m</a> <a id="60703" href="Data.Nat.Base.html#1310" class="Primitive Operator"><ᵇ</a> <a id="60706" href="Data.Nat.Properties.html#60693" class="Bound">n</a><a id="60707" class="Symbol">)</a> <a id="60709" class="Symbol">→</a> <a id="60711" href="Data.Nat.Properties.html#60691" class="Bound">m</a> <a id="60713" href="Data.Nat.Base.html#4767" class="Function Operator"><‴</a> <a id="60716" href="Data.Nat.Properties.html#60693" class="Bound">n</a>
|
||
<a id="60718" href="Data.Nat.Properties.html#60680" class="Function"><ᵇ⇒<‴</a> <a id="60724" class="Symbol">{</a><a id="60725" href="Data.Nat.Properties.html#60725" class="Bound">m</a><a id="60726" class="Symbol">}</a> <a id="60728" class="Symbol">{</a><a id="60729" href="Data.Nat.Properties.html#60729" class="Bound">n</a><a id="60730" class="Symbol">}</a> <a id="60732" href="Data.Nat.Properties.html#60732" class="Bound">leq</a> <a id="60736" class="Symbol">=</a> <a id="60738" href="Data.Nat.Properties.html#60549" class="Function">≤″⇒≤‴</a> <a id="60744" class="Symbol">(</a><a id="60745" href="Data.Nat.Properties.html#58522" class="Function"><ᵇ⇒<″</a> <a id="60751" href="Data.Nat.Properties.html#60732" class="Bound">leq</a><a id="60754" class="Symbol">)</a>
|
||
|
||
<a id="<‴⇒<ᵇ"></a><a id="60757" href="Data.Nat.Properties.html#60757" class="Function"><‴⇒<ᵇ</a> <a id="60763" class="Symbol">:</a> <a id="60765" class="Symbol">∀</a> <a id="60767" class="Symbol">{</a><a id="60768" href="Data.Nat.Properties.html#60768" class="Bound">m</a> <a id="60770" href="Data.Nat.Properties.html#60770" class="Bound">n</a><a id="60771" class="Symbol">}</a> <a id="60773" class="Symbol">→</a> <a id="60775" href="Data.Nat.Properties.html#60768" class="Bound">m</a> <a id="60777" href="Data.Nat.Base.html#4767" class="Function Operator"><‴</a> <a id="60780" href="Data.Nat.Properties.html#60770" class="Bound">n</a> <a id="60782" class="Symbol">→</a> <a id="60784" href="Data.Bool.Base.html#1460" class="Function">T</a> <a id="60786" class="Symbol">(</a><a id="60787" href="Data.Nat.Properties.html#60768" class="Bound">m</a> <a id="60789" href="Data.Nat.Base.html#1310" class="Primitive Operator"><ᵇ</a> <a id="60792" href="Data.Nat.Properties.html#60770" class="Bound">n</a><a id="60793" class="Symbol">)</a>
|
||
<a id="60795" href="Data.Nat.Properties.html#60757" class="Function"><‴⇒<ᵇ</a> <a id="60801" href="Data.Nat.Properties.html#60801" class="Bound">leq</a> <a id="60805" class="Symbol">=</a> <a id="60807" href="Data.Nat.Properties.html#58627" class="Function"><″⇒<ᵇ</a> <a id="60813" class="Symbol">(</a><a id="60814" href="Data.Nat.Properties.html#60122" class="Function">≤‴⇒≤″</a> <a id="60820" href="Data.Nat.Properties.html#60801" class="Bound">leq</a><a id="60823" class="Symbol">)</a>
|
||
|
||
<a id="60826" class="Keyword">infix</a> <a id="60832" class="Number">4</a> <a id="60834" href="Data.Nat.Properties.html#60859" class="Function Operator">_<‴?_</a> <a id="60840" href="Data.Nat.Properties.html#60924" class="Function Operator">_≤‴?_</a> <a id="60846" href="Data.Nat.Properties.html#60992" class="Function Operator">_≥‴?_</a> <a id="60852" href="Data.Nat.Properties.html#61035" class="Function Operator">_>‴?_</a>
|
||
|
||
<a id="_<‴?_"></a><a id="60859" href="Data.Nat.Properties.html#60859" class="Function Operator">_<‴?_</a> <a id="60865" class="Symbol">:</a> <a id="60867" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="60877" href="Data.Nat.Base.html#4767" class="Function Operator">_<‴_</a>
|
||
<a id="60882" href="Data.Nat.Properties.html#60882" class="Bound">m</a> <a id="60884" href="Data.Nat.Properties.html#60859" class="Function Operator"><‴?</a> <a id="60888" href="Data.Nat.Properties.html#60888" class="Bound">n</a> <a id="60890" class="Symbol">=</a> <a id="60892" href="Relation.Nullary.Decidable.Core.html#3645" class="Function">map′</a> <a id="60897" href="Data.Nat.Properties.html#60680" class="Function"><ᵇ⇒<‴</a> <a id="60903" href="Data.Nat.Properties.html#60757" class="Function"><‴⇒<ᵇ</a> <a id="60909" class="Symbol">(</a><a id="60910" href="Data.Bool.Properties.html#15479" class="Function">T?</a> <a id="60913" class="Symbol">(</a><a id="60914" href="Data.Nat.Properties.html#60882" class="Bound">m</a> <a id="60916" href="Data.Nat.Base.html#1310" class="Primitive Operator"><ᵇ</a> <a id="60919" href="Data.Nat.Properties.html#60888" class="Bound">n</a><a id="60920" class="Symbol">))</a>
|
||
|
||
<a id="_≤‴?_"></a><a id="60924" href="Data.Nat.Properties.html#60924" class="Function Operator">_≤‴?_</a> <a id="60930" class="Symbol">:</a> <a id="60932" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="60942" href="Data.Nat.Base.html#4645" class="Datatype Operator">_≤‴_</a>
|
||
<a id="60947" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="60952" href="Data.Nat.Properties.html#60924" class="Function Operator">≤‴?</a> <a id="60956" href="Data.Nat.Properties.html#60956" class="Bound">n</a> <a id="60958" class="Symbol">=</a> <a id="60960" href="Relation.Nullary.html#1657" class="InductiveConstructor">yes</a> <a id="60964" href="Data.Nat.Properties.html#60635" class="Function">0≤‴n</a>
|
||
<a id="60969" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="60973" href="Data.Nat.Properties.html#60973" class="Bound">m</a> <a id="60975" href="Data.Nat.Properties.html#60924" class="Function Operator">≤‴?</a> <a id="60979" href="Data.Nat.Properties.html#60979" class="Bound">n</a> <a id="60981" class="Symbol">=</a> <a id="60983" href="Data.Nat.Properties.html#60973" class="Bound">m</a> <a id="60985" href="Data.Nat.Properties.html#60859" class="Function Operator"><‴?</a> <a id="60989" href="Data.Nat.Properties.html#60979" class="Bound">n</a>
|
||
|
||
<a id="_≥‴?_"></a><a id="60992" href="Data.Nat.Properties.html#60992" class="Function Operator">_≥‴?_</a> <a id="60998" class="Symbol">:</a> <a id="61000" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="61010" href="Data.Nat.Base.html#4804" class="Function Operator">_≥‴_</a>
|
||
<a id="61015" href="Data.Nat.Properties.html#60992" class="Function Operator">_≥‴?_</a> <a id="61021" class="Symbol">=</a> <a id="61023" href="Function.Base.html#1563" class="Function">flip</a> <a id="61028" href="Data.Nat.Properties.html#60924" class="Function Operator">_≤‴?_</a>
|
||
|
||
<a id="_>‴?_"></a><a id="61035" href="Data.Nat.Properties.html#61035" class="Function Operator">_>‴?_</a> <a id="61041" class="Symbol">:</a> <a id="61043" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="61053" href="Data.Nat.Base.html#4837" class="Function Operator">_>‴_</a>
|
||
<a id="61058" href="Data.Nat.Properties.html#61035" class="Function Operator">_>‴?_</a> <a id="61064" class="Symbol">=</a> <a id="61066" href="Function.Base.html#1563" class="Function">flip</a> <a id="61071" href="Data.Nat.Properties.html#60859" class="Function Operator">_<‴?_</a>
|
||
|
||
<a id="≤⇒≤‴"></a><a id="61078" href="Data.Nat.Properties.html#61078" class="Function">≤⇒≤‴</a> <a id="61083" class="Symbol">:</a> <a id="61085" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a> <a id="61089" href="Relation.Binary.Core.html#1263" class="Function Operator">⇒</a> <a id="61091" href="Data.Nat.Base.html#4645" class="Datatype Operator">_≤‴_</a>
|
||
<a id="61096" href="Data.Nat.Properties.html#61078" class="Function">≤⇒≤‴</a> <a id="61101" class="Symbol">=</a> <a id="61103" href="Data.Nat.Properties.html#60549" class="Function">≤″⇒≤‴</a> <a id="61109" href="Function.Base.html#1040" class="Function Operator">∘</a> <a id="61111" href="Data.Nat.Properties.html#58894" class="Function">≤⇒≤″</a>
|
||
|
||
<a id="≤‴⇒≤"></a><a id="61117" href="Data.Nat.Properties.html#61117" class="Function">≤‴⇒≤</a> <a id="61122" class="Symbol">:</a> <a id="61124" href="Data.Nat.Base.html#4645" class="Datatype Operator">_≤‴_</a> <a id="61129" href="Relation.Binary.Core.html#1263" class="Function Operator">⇒</a> <a id="61131" href="Data.Nat.Base.html#1544" class="Datatype Operator">_≤_</a>
|
||
<a id="61135" href="Data.Nat.Properties.html#61117" class="Function">≤‴⇒≤</a> <a id="61140" class="Symbol">=</a> <a id="61142" href="Data.Nat.Properties.html#58750" class="Function">≤″⇒≤</a> <a id="61147" href="Function.Base.html#1040" class="Function Operator">∘</a> <a id="61149" href="Data.Nat.Properties.html#60122" class="Function">≤‴⇒≤″</a>
|
||
|
||
<a id="61156" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="61229" class="Comment">-- Other properties</a>
|
||
<a id="61249" class="Comment">------------------------------------------------------------------------</a>
|
||
|
||
<a id="61323" class="Comment">-- If there is an injection from a type to ℕ, then the type has</a>
|
||
<a id="61387" class="Comment">-- decidable equality.</a>
|
||
|
||
<a id="eq?"></a><a id="61411" href="Data.Nat.Properties.html#61411" class="Function">eq?</a> <a id="61415" class="Symbol">:</a> <a id="61417" class="Symbol">∀</a> <a id="61419" class="Symbol">{</a><a id="61420" href="Data.Nat.Properties.html#61420" class="Bound">a</a><a id="61421" class="Symbol">}</a> <a id="61423" class="Symbol">{</a><a id="61424" href="Data.Nat.Properties.html#61424" class="Bound">A</a> <a id="61426" class="Symbol">:</a> <a id="61428" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="61432" href="Data.Nat.Properties.html#61420" class="Bound">a</a><a id="61433" class="Symbol">}</a> <a id="61435" class="Symbol">→</a> <a id="61437" href="Data.Nat.Properties.html#61424" class="Bound">A</a> <a id="61439" href="Function.Injection.html#1636" class="Function Operator">↣</a> <a id="61441" href="Agda.Builtin.Nat.html#186" class="Datatype">ℕ</a> <a id="61443" class="Symbol">→</a> <a id="61445" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="61455" class="Symbol">{</a><a id="61456" class="Argument">A</a> <a id="61458" class="Symbol">=</a> <a id="61460" href="Data.Nat.Properties.html#61424" class="Bound">A</a><a id="61461" class="Symbol">}</a> <a id="61463" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a>
|
||
<a id="61467" href="Data.Nat.Properties.html#61411" class="Function">eq?</a> <a id="61471" href="Data.Nat.Properties.html#61471" class="Bound">inj</a> <a id="61475" class="Symbol">=</a> <a id="61477" href="Relation.Nullary.Decidable.html#1732" class="Function">via-injection</a> <a id="61491" href="Data.Nat.Properties.html#61471" class="Bound">inj</a> <a id="61495" href="Data.Nat.Properties.html#2538" class="Function Operator">_≟_</a>
|
||
|
||
|
||
<a id="61501" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="61574" class="Comment">-- DEPRECATED NAMES</a>
|
||
<a id="61594" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="61667" class="Comment">-- Please use the new names as continuing support for the old names is</a>
|
||
<a id="61738" class="Comment">-- not guaranteed.</a>
|
||
|
||
<a id="61758" class="Comment">-- Version 0.14</a>
|
||
|
||
<a id="_*-mono_"></a><a id="61775" href="Data.Nat.Properties.html#61775" class="Function Operator">_*-mono_</a> <a id="61784" class="Symbol">=</a> <a id="61786" href="Data.Nat.Properties.html#25201" class="Function">*-mono-≤</a>
|
||
<a id="61795" class="Symbol">{-#</a> <a id="61799" class="Keyword">WARNING_ON_USAGE</a> <a id="61816" class="Pragma">_*-mono_</a>
|
||
<a id="61825" class="String">"Warning: _*-mono_ was deprecated in v0.14.
|
||
Please use *-mono-≤ instead."</a>
|
||
<a id="61899" class="Symbol">#-}</a>
|
||
<a id="_+-mono_"></a><a id="61903" href="Data.Nat.Properties.html#61903" class="Function Operator">_+-mono_</a> <a id="61912" class="Symbol">=</a> <a id="61914" href="Data.Nat.Properties.html#17789" class="Function">+-mono-≤</a>
|
||
<a id="61923" class="Symbol">{-#</a> <a id="61927" class="Keyword">WARNING_ON_USAGE</a> <a id="61944" class="Pragma">_+-mono_</a>
|
||
<a id="61953" class="String">"Warning: _+-mono_ was deprecated in v0.14.
|
||
Please use +-mono-≤ instead."</a>
|
||
<a id="62027" class="Symbol">#-}</a>
|
||
<a id="+-right-identity"></a><a id="62031" href="Data.Nat.Properties.html#62031" class="Function">+-right-identity</a> <a id="62048" class="Symbol">=</a> <a id="62050" href="Data.Nat.Properties.html#13227" class="Function">+-identityʳ</a>
|
||
<a id="62062" class="Symbol">{-#</a> <a id="62066" class="Keyword">WARNING_ON_USAGE</a> <a id="62083" class="Pragma">+-right-identity</a>
|
||
<a id="62100" class="String">"Warning: +-right-identity was deprecated in v0.14.
|
||
Please use +-identityʳ instead."</a>
|
||
<a id="62185" class="Symbol">#-}</a>
|
||
<a id="*-right-zero"></a><a id="62189" href="Data.Nat.Properties.html#62189" class="Function">*-right-zero</a> <a id="62206" class="Symbol">=</a> <a id="62208" href="Data.Nat.Properties.html#20239" class="Function">*-zeroʳ</a>
|
||
<a id="62216" class="Symbol">{-#</a> <a id="62220" class="Keyword">WARNING_ON_USAGE</a> <a id="62237" class="Pragma">*-right-zero</a>
|
||
<a id="62250" class="String">"Warning: *-right-zero was deprecated in v0.14.
|
||
Please use *-zeroʳ instead."</a>
|
||
<a id="62327" class="Symbol">#-}</a>
|
||
<a id="distribʳ-*-+"></a><a id="62331" href="Data.Nat.Properties.html#62331" class="Function">distribʳ-*-+</a> <a id="62348" class="Symbol">=</a> <a id="62350" href="Data.Nat.Properties.html#20569" class="Function">*-distribʳ-+</a>
|
||
<a id="62363" class="Symbol">{-#</a> <a id="62367" class="Keyword">WARNING_ON_USAGE</a> <a id="62384" class="Pragma">distribʳ-*-+</a>
|
||
<a id="62397" class="String">"Warning: distribʳ-*-+ was deprecated in v0.14.
|
||
Please use *-distribʳ-+ instead."</a>
|
||
<a id="62479" class="Symbol">#-}</a>
|
||
<a id="*-distrib-∸ʳ"></a><a id="62483" href="Data.Nat.Properties.html#62483" class="Function">*-distrib-∸ʳ</a> <a id="62500" class="Symbol">=</a> <a id="62502" href="Data.Nat.Properties.html#47419" class="Function">*-distribʳ-∸</a>
|
||
<a id="62515" class="Symbol">{-#</a> <a id="62519" class="Keyword">WARNING_ON_USAGE</a> <a id="62536" class="Pragma">*-distrib-∸ʳ</a>
|
||
<a id="62549" class="String">"Warning: *-distrib-∸ʳ was deprecated in v0.14.
|
||
Please use *-distribʳ-∸ instead."</a>
|
||
<a id="62631" class="Symbol">#-}</a>
|
||
<a id="cancel-+-left"></a><a id="62635" href="Data.Nat.Properties.html#62635" class="Function">cancel-+-left</a> <a id="62652" class="Symbol">=</a> <a id="62654" href="Data.Nat.Properties.html#13613" class="Function">+-cancelˡ-≡</a>
|
||
<a id="62666" class="Symbol">{-#</a> <a id="62670" class="Keyword">WARNING_ON_USAGE</a> <a id="62687" class="Pragma">cancel-+-left</a>
|
||
<a id="62701" class="String">"Warning: cancel-+-left was deprecated in v0.14.
|
||
Please use +-cancelˡ-≡ instead."</a>
|
||
<a id="62783" class="Symbol">#-}</a>
|
||
<a id="cancel-+-left-≤"></a><a id="62787" href="Data.Nat.Properties.html#62787" class="Function">cancel-+-left-≤</a> <a id="62804" class="Symbol">=</a> <a id="62806" href="Data.Nat.Properties.html#16261" class="Function">+-cancelˡ-≤</a>
|
||
<a id="62818" class="Symbol">{-#</a> <a id="62822" class="Keyword">WARNING_ON_USAGE</a> <a id="62839" class="Pragma">cancel-+-left-≤</a>
|
||
<a id="62855" class="String">"Warning: cancel-+-left-≤ was deprecated in v0.14.
|
||
Please use +-cancelˡ-≤ instead."</a>
|
||
<a id="62939" class="Symbol">#-}</a>
|
||
<a id="cancel-*-right"></a><a id="62943" href="Data.Nat.Properties.html#62943" class="Function">cancel-*-right</a> <a id="62960" class="Symbol">=</a> <a id="62962" href="Data.Nat.Properties.html#23604" class="Function">*-cancelʳ-≡</a>
|
||
<a id="62974" class="Symbol">{-#</a> <a id="62978" class="Keyword">WARNING_ON_USAGE</a> <a id="62995" class="Pragma">cancel-*-right</a>
|
||
<a id="63010" class="String">"Warning: cancel-*-right was deprecated in v0.14.
|
||
Please use *-cancelʳ-≡ instead."</a>
|
||
<a id="63093" class="Symbol">#-}</a>
|
||
<a id="cancel-*-right-≤"></a><a id="63097" href="Data.Nat.Properties.html#63097" class="Function">cancel-*-right-≤</a> <a id="63114" class="Symbol">=</a> <a id="63116" href="Data.Nat.Properties.html#24878" class="Function">*-cancelʳ-≤</a>
|
||
<a id="63128" class="Symbol">{-#</a> <a id="63132" class="Keyword">WARNING_ON_USAGE</a> <a id="63149" class="Pragma">cancel-*-right-≤</a>
|
||
<a id="63166" class="String">"Warning: cancel-*-right-≤ was deprecated in v0.14.
|
||
Please use *-cancelʳ-≤ instead."</a>
|
||
<a id="63251" class="Symbol">#-}</a>
|
||
<a id="strictTotalOrder"></a><a id="63255" href="Data.Nat.Properties.html#63255" class="Function">strictTotalOrder</a> <a id="63293" class="Symbol">=</a> <a id="63295" href="Data.Nat.Properties.html#10904" class="Function"><-strictTotalOrder</a>
|
||
<a id="63314" class="Symbol">{-#</a> <a id="63318" class="Keyword">WARNING_ON_USAGE</a> <a id="63335" class="Pragma">strictTotalOrder</a>
|
||
<a id="63352" class="String">"Warning: strictTotalOrder was deprecated in v0.14.
|
||
Please use <-strictTotalOrder instead."</a>
|
||
<a id="63444" class="Symbol">#-}</a>
|
||
<a id="isCommutativeSemiring"></a><a id="63448" href="Data.Nat.Properties.html#63448" class="Function">isCommutativeSemiring</a> <a id="63486" class="Symbol">=</a> <a id="63488" href="Data.Nat.Properties.html#22326" class="Function">+-*-isCommutativeSemiring</a>
|
||
<a id="63514" class="Symbol">{-#</a> <a id="63518" class="Keyword">WARNING_ON_USAGE</a> <a id="63535" class="Pragma">isCommutativeSemiring</a>
|
||
<a id="63557" class="String">"Warning: isCommutativeSemiring was deprecated in v0.14.
|
||
Please use *-+-isCommutativeSemiring instead."</a>
|
||
<a id="63661" class="Symbol">#-}</a>
|
||
<a id="commutativeSemiring"></a><a id="63665" href="Data.Nat.Properties.html#63665" class="Function">commutativeSemiring</a> <a id="63703" class="Symbol">=</a> <a id="63705" href="Data.Nat.Properties.html#23351" class="Function">+-*-commutativeSemiring</a>
|
||
<a id="63729" class="Symbol">{-#</a> <a id="63733" class="Keyword">WARNING_ON_USAGE</a> <a id="63750" class="Pragma">commutativeSemiring</a>
|
||
<a id="63770" class="String">"Warning: commutativeSemiring was deprecated in v0.14.
|
||
Please use *-+-commutativeSemiring instead."</a>
|
||
<a id="63870" class="Symbol">#-}</a>
|
||
<a id="isDistributiveLattice"></a><a id="63874" href="Data.Nat.Properties.html#63874" class="Function">isDistributiveLattice</a> <a id="63912" class="Symbol">=</a> <a id="63914" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#4026" class="Function">⊓-⊔-isDistributiveLattice</a>
|
||
<a id="63940" class="Symbol">{-#</a> <a id="63944" class="Keyword">WARNING_ON_USAGE</a> <a id="63961" class="Pragma">isDistributiveLattice</a>
|
||
<a id="63983" class="String">"Warning: isDistributiveLattice was deprecated in v0.14.
|
||
Please use ⊓-⊔-isDistributiveLattice instead."</a>
|
||
<a id="64087" class="Symbol">#-}</a>
|
||
<a id="distributiveLattice"></a><a id="64091" href="Data.Nat.Properties.html#64091" class="Function">distributiveLattice</a> <a id="64129" class="Symbol">=</a> <a id="64131" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#4658" class="Function">⊓-⊔-distributiveLattice</a>
|
||
<a id="64155" class="Symbol">{-#</a> <a id="64159" class="Keyword">WARNING_ON_USAGE</a> <a id="64176" class="Pragma">distributiveLattice</a>
|
||
<a id="64196" class="String">"Warning: distributiveLattice was deprecated in v0.14.
|
||
Please use ⊓-⊔-distributiveLattice instead."</a>
|
||
<a id="64296" class="Symbol">#-}</a>
|
||
<a id="⊔-⊓-0-isSemiringWithoutOne"></a><a id="64300" href="Data.Nat.Properties.html#64300" class="Function">⊔-⊓-0-isSemiringWithoutOne</a> <a id="64338" class="Symbol">=</a> <a id="64340" href="Data.Nat.Properties.html#38799" class="Function">⊔-⊓-isSemiringWithoutOne</a>
|
||
<a id="64365" class="Symbol">{-#</a> <a id="64369" class="Keyword">WARNING_ON_USAGE</a> <a id="64386" class="Pragma">⊔-⊓-0-isSemiringWithoutOne</a>
|
||
<a id="64413" class="String">"Warning: ⊔-⊓-0-isSemiringWithoutOne was deprecated in v0.14.
|
||
Please use ⊔-⊓-isSemiringWithoutOne instead."</a>
|
||
<a id="64521" class="Symbol">#-}</a>
|
||
<a id="⊔-⊓-0-isCommutativeSemiringWithoutOne"></a><a id="64525" href="Data.Nat.Properties.html#64525" class="Function">⊔-⊓-0-isCommutativeSemiringWithoutOne</a> <a id="64563" class="Symbol">=</a> <a id="64565" href="Data.Nat.Properties.html#39065" class="Function">⊔-⊓-isCommutativeSemiringWithoutOne</a>
|
||
<a id="64601" class="Symbol">{-#</a> <a id="64605" class="Keyword">WARNING_ON_USAGE</a> <a id="64622" class="Pragma">⊔-⊓-0-isCommutativeSemiringWithoutOne</a>
|
||
<a id="64660" class="String">"Warning: ⊔-⊓-0-isCommutativeSemiringWithoutOne was deprecated in v0.14.
|
||
Please use ⊔-⊓-isCommutativeSemiringWithoutOne instead."</a>
|
||
<a id="64790" class="Symbol">#-}</a>
|
||
<a id="⊔-⊓-0-commutativeSemiringWithoutOne"></a><a id="64794" href="Data.Nat.Properties.html#64794" class="Function">⊔-⊓-0-commutativeSemiringWithoutOne</a> <a id="64832" class="Symbol">=</a> <a id="64834" href="Data.Nat.Properties.html#39368" class="Function">⊔-⊓-commutativeSemiringWithoutOne</a>
|
||
<a id="64868" class="Symbol">{-#</a> <a id="64872" class="Keyword">WARNING_ON_USAGE</a> <a id="64889" class="Pragma">⊔-⊓-0-commutativeSemiringWithoutOne</a>
|
||
<a id="64925" class="String">"Warning: ⊔-⊓-0-commutativeSemiringWithoutOne was deprecated in v0.14.
|
||
Please use ⊔-⊓-commutativeSemiringWithoutOne instead."</a>
|
||
<a id="65051" class="Symbol">#-}</a>
|
||
|
||
<a id="65056" class="Comment">-- Version 0.15</a>
|
||
|
||
<a id="¬i+1+j≤i"></a><a id="65073" href="Data.Nat.Properties.html#65073" class="Function">¬i+1+j≤i</a> <a id="65083" class="Symbol">=</a> <a id="65085" href="Data.Nat.Properties.html#18747" class="Function">m+1+n≰m</a>
|
||
<a id="65093" class="Symbol">{-#</a> <a id="65097" class="Keyword">WARNING_ON_USAGE</a> <a id="65114" class="Pragma">¬i+1+j≤i</a>
|
||
<a id="65123" class="String">"Warning: ¬i+1+j≤i was deprecated in v0.15.
|
||
Please use m+1+n≰m instead."</a>
|
||
<a id="65196" class="Symbol">#-}</a>
|
||
<a id="≤-steps"></a><a id="65200" href="Data.Nat.Properties.html#65200" class="Function">≤-steps</a> <a id="65210" class="Symbol">=</a> <a id="65212" href="Data.Nat.Properties.html#16867" class="Function">≤-stepsˡ</a>
|
||
<a id="65221" class="Symbol">{-#</a> <a id="65225" class="Keyword">WARNING_ON_USAGE</a> <a id="65242" class="Pragma">≤-steps</a>
|
||
<a id="65250" class="String">"Warning: ≤-steps was deprecated in v0.15.
|
||
Please use ≤-stepsˡ instead."</a>
|
||
<a id="65323" class="Symbol">#-}</a>
|
||
|
||
<a id="65328" class="Comment">-- Version 0.17</a>
|
||
|
||
<a id="i∸k∸j+j∸k≡i+j∸k"></a><a id="65345" href="Data.Nat.Properties.html#65345" class="Function">i∸k∸j+j∸k≡i+j∸k</a> <a id="65361" class="Symbol">:</a> <a id="65363" class="Symbol">∀</a> <a id="65365" href="Data.Nat.Properties.html#65365" class="Bound">i</a> <a id="65367" href="Data.Nat.Properties.html#65367" class="Bound">j</a> <a id="65369" href="Data.Nat.Properties.html#65369" class="Bound">k</a> <a id="65371" class="Symbol">→</a> <a id="65373" href="Data.Nat.Properties.html#65365" class="Bound">i</a> <a id="65375" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="65377" class="Symbol">(</a><a id="65378" href="Data.Nat.Properties.html#65369" class="Bound">k</a> <a id="65380" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="65382" href="Data.Nat.Properties.html#65367" class="Bound">j</a><a id="65383" class="Symbol">)</a> <a id="65385" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="65387" class="Symbol">(</a><a id="65388" href="Data.Nat.Properties.html#65367" class="Bound">j</a> <a id="65390" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="65392" href="Data.Nat.Properties.html#65369" class="Bound">k</a><a id="65393" class="Symbol">)</a> <a id="65395" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="65397" href="Data.Nat.Properties.html#65365" class="Bound">i</a> <a id="65399" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="65401" href="Data.Nat.Properties.html#65367" class="Bound">j</a> <a id="65403" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="65405" href="Data.Nat.Properties.html#65369" class="Bound">k</a>
|
||
<a id="65407" href="Data.Nat.Properties.html#65345" class="Function">i∸k∸j+j∸k≡i+j∸k</a> <a id="65423" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="65431" href="Data.Nat.Properties.html#65431" class="Bound">j</a> <a id="65433" href="Data.Nat.Properties.html#65433" class="Bound">k</a> <a id="65438" class="Symbol">=</a> <a id="65440" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="65445" class="Symbol">(</a><a id="65446" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">_+</a> <a id="65449" class="Symbol">(</a><a id="65450" href="Data.Nat.Properties.html#65431" class="Bound">j</a> <a id="65452" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="65454" href="Data.Nat.Properties.html#65433" class="Bound">k</a><a id="65455" class="Symbol">))</a> <a id="65458" class="Symbol">(</a><a id="65459" href="Data.Nat.Properties.html#42080" class="Function">0∸n≡0</a> <a id="65465" class="Symbol">(</a><a id="65466" href="Data.Nat.Properties.html#65433" class="Bound">k</a> <a id="65468" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="65470" href="Data.Nat.Properties.html#65431" class="Bound">j</a><a id="65471" class="Symbol">))</a>
|
||
<a id="65474" href="Data.Nat.Properties.html#65345" class="Function">i∸k∸j+j∸k≡i+j∸k</a> <a id="65490" class="Symbol">(</a><a id="65491" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="65495" href="Data.Nat.Properties.html#65495" class="Bound">i</a><a id="65496" class="Symbol">)</a> <a id="65498" href="Data.Nat.Properties.html#65498" class="Bound">j</a> <a id="65500" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="65505" class="Symbol">=</a> <a id="65507" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="65512" class="Symbol">(λ</a> <a id="65515" href="Data.Nat.Properties.html#65515" class="Bound">x</a> <a id="65517" class="Symbol">→</a> <a id="65519" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="65523" href="Data.Nat.Properties.html#65495" class="Bound">i</a> <a id="65525" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="65527" href="Data.Nat.Properties.html#65515" class="Bound">x</a> <a id="65529" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="65531" href="Data.Nat.Properties.html#65498" class="Bound">j</a><a id="65532" class="Symbol">)</a> <a id="65534" class="Symbol">(</a><a id="65535" href="Data.Nat.Properties.html#42080" class="Function">0∸n≡0</a> <a id="65541" href="Data.Nat.Properties.html#65498" class="Bound">j</a><a id="65542" class="Symbol">)</a>
|
||
<a id="65544" href="Data.Nat.Properties.html#65345" class="Function">i∸k∸j+j∸k≡i+j∸k</a> <a id="65560" class="Symbol">(</a><a id="65561" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="65565" href="Data.Nat.Properties.html#65565" class="Bound">i</a><a id="65566" class="Symbol">)</a> <a id="65568" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="65573" class="Symbol">(</a><a id="65574" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="65578" href="Data.Nat.Properties.html#65578" class="Bound">k</a><a id="65579" class="Symbol">)</a> <a id="65581" class="Symbol">=</a> <a id="65583" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="65600" href="Data.Nat.Properties.html#65565" class="Bound">i</a> <a id="65602" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="65604" href="Data.Nat.Properties.html#65578" class="Bound">k</a> <a id="65606" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="65608" class="Number">0</a> <a id="65611" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="65614" href="Data.Nat.Properties.html#13227" class="Function">+-identityʳ</a> <a id="65626" class="Symbol">_</a> <a id="65628" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="65632" href="Data.Nat.Properties.html#65565" class="Bound">i</a> <a id="65634" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="65636" href="Data.Nat.Properties.html#65578" class="Bound">k</a> <a id="65643" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="65646" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="65651" class="Symbol">(</a><a id="65652" href="Data.Nat.Base.html#2883" class="Primitive Operator">_∸</a> <a id="65655" href="Data.Nat.Properties.html#65578" class="Bound">k</a><a id="65656" class="Symbol">)</a> <a id="65658" class="Symbol">(</a><a id="65659" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="65663" class="Symbol">(</a><a id="65664" href="Data.Nat.Properties.html#13227" class="Function">+-identityʳ</a> <a id="65676" class="Symbol">_))</a> <a id="65680" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="65684" href="Data.Nat.Properties.html#65565" class="Bound">i</a> <a id="65686" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="65688" class="Number">0</a> <a id="65690" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="65692" href="Data.Nat.Properties.html#65578" class="Bound">k</a> <a id="65695" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
<a id="65697" href="Data.Nat.Properties.html#65345" class="Function">i∸k∸j+j∸k≡i+j∸k</a> <a id="65713" class="Symbol">(</a><a id="65714" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="65718" href="Data.Nat.Properties.html#65718" class="Bound">i</a><a id="65719" class="Symbol">)</a> <a id="65721" class="Symbol">(</a><a id="65722" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="65726" href="Data.Nat.Properties.html#65726" class="Bound">j</a><a id="65727" class="Symbol">)</a> <a id="65729" class="Symbol">(</a><a id="65730" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="65734" href="Data.Nat.Properties.html#65734" class="Bound">k</a><a id="65735" class="Symbol">)</a> <a id="65737" class="Symbol">=</a> <a id="65739" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="65756" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="65760" href="Data.Nat.Properties.html#65718" class="Bound">i</a> <a id="65762" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="65764" class="Symbol">(</a><a id="65765" href="Data.Nat.Properties.html#65734" class="Bound">k</a> <a id="65767" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="65769" href="Data.Nat.Properties.html#65726" class="Bound">j</a><a id="65770" class="Symbol">)</a> <a id="65772" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="65774" class="Symbol">(</a><a id="65775" href="Data.Nat.Properties.html#65726" class="Bound">j</a> <a id="65777" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="65779" href="Data.Nat.Properties.html#65734" class="Bound">k</a><a id="65780" class="Symbol">)</a> <a id="65782" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="65785" href="Data.Nat.Properties.html#65345" class="Function">i∸k∸j+j∸k≡i+j∸k</a> <a id="65801" class="Symbol">(</a><a id="65802" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="65806" href="Data.Nat.Properties.html#65718" class="Bound">i</a><a id="65807" class="Symbol">)</a> <a id="65809" href="Data.Nat.Properties.html#65726" class="Bound">j</a> <a id="65811" href="Data.Nat.Properties.html#65734" class="Bound">k</a> <a id="65813" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="65817" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="65821" href="Data.Nat.Properties.html#65718" class="Bound">i</a> <a id="65823" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="65825" href="Data.Nat.Properties.html#65726" class="Bound">j</a> <a id="65827" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="65829" href="Data.Nat.Properties.html#65734" class="Bound">k</a> <a id="65843" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="65846" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="65851" class="Symbol">(</a><a id="65852" href="Data.Nat.Base.html#2883" class="Primitive Operator">_∸</a> <a id="65855" href="Data.Nat.Properties.html#65734" class="Bound">k</a><a id="65856" class="Symbol">)</a> <a id="65858" class="Symbol">(</a><a id="65859" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="65863" class="Symbol">(</a><a id="65864" href="Data.Nat.Properties.html#12863" class="Function">+-suc</a> <a id="65870" href="Data.Nat.Properties.html#65718" class="Bound">i</a> <a id="65872" href="Data.Nat.Properties.html#65726" class="Bound">j</a><a id="65873" class="Symbol">))</a> <a id="65876" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="65880" href="Data.Nat.Properties.html#65718" class="Bound">i</a> <a id="65882" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="65884" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="65888" href="Data.Nat.Properties.html#65726" class="Bound">j</a> <a id="65890" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="65892" href="Data.Nat.Properties.html#65734" class="Bound">k</a> <a id="65906" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
<a id="65908" class="Symbol">{-#</a> <a id="65912" class="Keyword">WARNING_ON_USAGE</a> <a id="65929" class="Pragma">i∸k∸j+j∸k≡i+j∸k</a>
|
||
<a id="65945" class="String">"Warning: i∸k∸j+j∸k≡i+j∸k was deprecated in v0.17."</a>
|
||
<a id="65997" class="Symbol">#-}</a>
|
||
<a id="im≡jm+n⇒[i∸j]m≡n"></a><a id="66001" href="Data.Nat.Properties.html#66001" class="Function">im≡jm+n⇒[i∸j]m≡n</a> <a id="66018" class="Symbol">:</a> <a id="66020" class="Symbol">∀</a> <a id="66022" href="Data.Nat.Properties.html#66022" class="Bound">i</a> <a id="66024" href="Data.Nat.Properties.html#66024" class="Bound">j</a> <a id="66026" href="Data.Nat.Properties.html#66026" class="Bound">m</a> <a id="66028" href="Data.Nat.Properties.html#66028" class="Bound">n</a> <a id="66030" class="Symbol">→</a> <a id="66032" href="Data.Nat.Properties.html#66022" class="Bound">i</a> <a id="66034" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="66036" href="Data.Nat.Properties.html#66026" class="Bound">m</a> <a id="66038" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="66040" href="Data.Nat.Properties.html#66024" class="Bound">j</a> <a id="66042" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="66044" href="Data.Nat.Properties.html#66026" class="Bound">m</a> <a id="66046" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="66048" href="Data.Nat.Properties.html#66028" class="Bound">n</a> <a id="66050" class="Symbol">→</a> <a id="66052" class="Symbol">(</a><a id="66053" href="Data.Nat.Properties.html#66022" class="Bound">i</a> <a id="66055" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="66057" href="Data.Nat.Properties.html#66024" class="Bound">j</a><a id="66058" class="Symbol">)</a> <a id="66060" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="66062" href="Data.Nat.Properties.html#66026" class="Bound">m</a> <a id="66064" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="66066" href="Data.Nat.Properties.html#66028" class="Bound">n</a>
|
||
<a id="66068" href="Data.Nat.Properties.html#66001" class="Function">im≡jm+n⇒[i∸j]m≡n</a> <a id="66085" href="Data.Nat.Properties.html#66085" class="Bound">i</a> <a id="66087" href="Data.Nat.Properties.html#66087" class="Bound">j</a> <a id="66089" href="Data.Nat.Properties.html#66089" class="Bound">m</a> <a id="66091" href="Data.Nat.Properties.html#66091" class="Bound">n</a> <a id="66093" href="Data.Nat.Properties.html#66093" class="Bound">eq</a> <a id="66096" class="Symbol">=</a> <a id="66098" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="66115" class="Symbol">(</a><a id="66116" href="Data.Nat.Properties.html#66085" class="Bound">i</a> <a id="66118" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="66120" href="Data.Nat.Properties.html#66087" class="Bound">j</a><a id="66121" class="Symbol">)</a> <a id="66123" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="66125" href="Data.Nat.Properties.html#66089" class="Bound">m</a> <a id="66138" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="66141" href="Data.Nat.Properties.html#47419" class="Function">*-distribʳ-∸</a> <a id="66154" href="Data.Nat.Properties.html#66089" class="Bound">m</a> <a id="66156" href="Data.Nat.Properties.html#66085" class="Bound">i</a> <a id="66158" href="Data.Nat.Properties.html#66087" class="Bound">j</a> <a id="66160" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="66164" class="Symbol">(</a><a id="66165" href="Data.Nat.Properties.html#66085" class="Bound">i</a> <a id="66167" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="66169" href="Data.Nat.Properties.html#66089" class="Bound">m</a><a id="66170" class="Symbol">)</a> <a id="66172" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="66174" class="Symbol">(</a><a id="66175" href="Data.Nat.Properties.html#66087" class="Bound">j</a> <a id="66177" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="66179" href="Data.Nat.Properties.html#66089" class="Bound">m</a><a id="66180" class="Symbol">)</a> <a id="66187" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="66190" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="66195" class="Symbol">(</a><a id="66196" href="Data.Nat.Base.html#2883" class="Primitive Operator">_∸</a> <a id="66199" href="Data.Nat.Properties.html#66087" class="Bound">j</a> <a id="66201" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="66203" href="Data.Nat.Properties.html#66089" class="Bound">m</a><a id="66204" class="Symbol">)</a> <a id="66206" href="Data.Nat.Properties.html#66093" class="Bound">eq</a> <a id="66209" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="66213" class="Symbol">(</a><a id="66214" href="Data.Nat.Properties.html#66087" class="Bound">j</a> <a id="66216" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="66218" href="Data.Nat.Properties.html#66089" class="Bound">m</a> <a id="66220" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="66222" href="Data.Nat.Properties.html#66091" class="Bound">n</a><a id="66223" class="Symbol">)</a> <a id="66225" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="66227" class="Symbol">(</a><a id="66228" href="Data.Nat.Properties.html#66087" class="Bound">j</a> <a id="66230" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="66232" href="Data.Nat.Properties.html#66089" class="Bound">m</a><a id="66233" class="Symbol">)</a> <a id="66236" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="66239" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="66244" class="Symbol">(</a><a id="66245" href="Data.Nat.Base.html#2883" class="Primitive Operator">_∸</a> <a id="66248" href="Data.Nat.Properties.html#66087" class="Bound">j</a> <a id="66250" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="66252" href="Data.Nat.Properties.html#66089" class="Bound">m</a><a id="66253" class="Symbol">)</a> <a id="66255" class="Symbol">(</a><a id="66256" href="Data.Nat.Properties.html#13404" class="Function">+-comm</a> <a id="66263" class="Symbol">(</a><a id="66264" href="Data.Nat.Properties.html#66087" class="Bound">j</a> <a id="66266" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="66268" href="Data.Nat.Properties.html#66089" class="Bound">m</a><a id="66269" class="Symbol">)</a> <a id="66271" href="Data.Nat.Properties.html#66091" class="Bound">n</a><a id="66272" class="Symbol">)</a> <a id="66274" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="66278" class="Symbol">(</a><a id="66279" href="Data.Nat.Properties.html#66091" class="Bound">n</a> <a id="66281" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="66283" href="Data.Nat.Properties.html#66087" class="Bound">j</a> <a id="66285" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="66287" href="Data.Nat.Properties.html#66089" class="Bound">m</a><a id="66288" class="Symbol">)</a> <a id="66290" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="66292" class="Symbol">(</a><a id="66293" href="Data.Nat.Properties.html#66087" class="Bound">j</a> <a id="66295" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="66297" href="Data.Nat.Properties.html#66089" class="Bound">m</a><a id="66298" class="Symbol">)</a> <a id="66301" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="66304" href="Data.Nat.Properties.html#46218" class="Function">m+n∸n≡m</a> <a id="66312" href="Data.Nat.Properties.html#66091" class="Bound">n</a> <a id="66314" class="Symbol">(</a><a id="66315" href="Data.Nat.Properties.html#66087" class="Bound">j</a> <a id="66317" href="Agda.Builtin.Nat.html#522" class="Primitive Operator">*</a> <a id="66319" href="Data.Nat.Properties.html#66089" class="Bound">m</a><a id="66320" class="Symbol">)</a> <a id="66322" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="66326" href="Data.Nat.Properties.html#66091" class="Bound">n</a> <a id="66349" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
<a id="66351" class="Symbol">{-#</a> <a id="66355" class="Keyword">WARNING_ON_USAGE</a> <a id="66372" class="Pragma">im≡jm+n⇒[i∸j]m≡n</a>
|
||
<a id="66389" class="String">"Warning: im≡jm+n⇒[i∸j]m≡n was deprecated in v0.17."</a>
|
||
<a id="66442" class="Symbol">#-}</a>
|
||
<a id="≤+≢⇒<"></a><a id="66446" href="Data.Nat.Properties.html#66446" class="Function">≤+≢⇒<</a> <a id="66452" class="Symbol">=</a> <a id="66454" href="Data.Nat.Properties.html#8361" class="Function">≤∧≢⇒<</a>
|
||
<a id="66460" class="Symbol">{-#</a> <a id="66464" class="Keyword">WARNING_ON_USAGE</a> <a id="66481" class="Pragma">≤+≢⇒<</a>
|
||
<a id="66487" class="String">"Warning: ≤+≢⇒< was deprecated in v0.17.
|
||
Please use ≤∧≢⇒< instead."</a>
|
||
<a id="66555" class="Symbol">#-}</a>
|
||
|
||
<a id="66560" class="Comment">-- Version 1.0</a>
|
||
|
||
<a id="≤-irrelevance"></a><a id="66576" href="Data.Nat.Properties.html#66576" class="Function">≤-irrelevance</a> <a id="66590" class="Symbol">=</a> <a id="66592" href="Data.Nat.Properties.html#5065" class="Function">≤-irrelevant</a>
|
||
<a id="66605" class="Symbol">{-#</a> <a id="66609" class="Keyword">WARNING_ON_USAGE</a> <a id="66626" class="Pragma">≤-irrelevance</a>
|
||
<a id="66640" class="String">"Warning: ≤-irrelevance was deprecated in v1.0.
|
||
Please use ≤-irrelevant instead."</a>
|
||
<a id="66722" class="Symbol">#-}</a>
|
||
<a id="<-irrelevance"></a><a id="66726" href="Data.Nat.Properties.html#66726" class="Function"><-irrelevance</a> <a id="66740" class="Symbol">=</a> <a id="66742" href="Data.Nat.Properties.html#10168" class="Function"><-irrelevant</a>
|
||
<a id="66755" class="Symbol">{-#</a> <a id="66759" class="Keyword">WARNING_ON_USAGE</a> <a id="66776" class="Pragma"><-irrelevance</a>
|
||
<a id="66790" class="String">"Warning: <-irrelevance was deprecated in v1.0.
|
||
Please use <-irrelevant instead."</a>
|
||
<a id="66872" class="Symbol">#-}</a>
|
||
|
||
<a id="66877" class="Comment">-- Version 1.1</a>
|
||
|
||
<a id="i+1+j≢i"></a><a id="66893" href="Data.Nat.Properties.html#66893" class="Function">i+1+j≢i</a> <a id="66901" class="Symbol">=</a> <a id="66903" href="Data.Nat.Properties.html#15828" class="Function">m+1+n≢m</a>
|
||
<a id="66911" class="Symbol">{-#</a> <a id="66915" class="Keyword">WARNING_ON_USAGE</a> <a id="66932" class="Pragma">i+1+j≢i</a>
|
||
<a id="66940" class="String">"Warning: i+1+j≢i was deprecated in v1.1.
|
||
Please use m+1+n≢m instead."</a>
|
||
<a id="67011" class="Symbol">#-}</a>
|
||
<a id="i+j≡0⇒i≡0"></a><a id="67015" href="Data.Nat.Properties.html#67015" class="Function">i+j≡0⇒i≡0</a> <a id="67025" class="Symbol">=</a> <a id="67027" href="Data.Nat.Properties.html#15982" class="Function">m+n≡0⇒m≡0</a>
|
||
<a id="67037" class="Symbol">{-#</a> <a id="67041" class="Keyword">WARNING_ON_USAGE</a> <a id="67058" class="Pragma">i+j≡0⇒i≡0</a>
|
||
<a id="67068" class="String">"Warning: i+j≡0⇒i≡0 was deprecated in v1.1.
|
||
Please use m+n≡0⇒m≡0 instead."</a>
|
||
<a id="67143" class="Symbol">#-}</a>
|
||
<a id="i+j≡0⇒j≡0"></a><a id="67147" href="Data.Nat.Properties.html#67147" class="Function">i+j≡0⇒j≡0</a> <a id="67157" class="Symbol">=</a> <a id="67159" href="Data.Nat.Properties.html#16048" class="Function">m+n≡0⇒n≡0</a>
|
||
<a id="67169" class="Symbol">{-#</a> <a id="67173" class="Keyword">WARNING_ON_USAGE</a> <a id="67190" class="Pragma">i+j≡0⇒j≡0</a>
|
||
<a id="67200" class="String">"Warning: i+j≡0⇒j≡0 was deprecated in v1.1.
|
||
Please use m+n≡0⇒n≡0 instead."</a>
|
||
<a id="67275" class="Symbol">#-}</a>
|
||
<a id="i+1+j≰i"></a><a id="67279" href="Data.Nat.Properties.html#67279" class="Function">i+1+j≰i</a> <a id="67287" class="Symbol">=</a> <a id="67289" href="Data.Nat.Properties.html#18747" class="Function">m+1+n≰m</a>
|
||
<a id="67297" class="Symbol">{-#</a> <a id="67301" class="Keyword">WARNING_ON_USAGE</a> <a id="67318" class="Pragma">i+1+j≰i</a>
|
||
<a id="67326" class="String">"Warning: i+1+j≰i was deprecated in v1.1.
|
||
Please use m+1+n≰m instead."</a>
|
||
<a id="67397" class="Symbol">#-}</a>
|
||
<a id="i*j≡0⇒i≡0∨j≡0"></a><a id="67401" href="Data.Nat.Properties.html#67401" class="Function">i*j≡0⇒i≡0∨j≡0</a> <a id="67415" class="Symbol">=</a> <a id="67417" href="Data.Nat.Properties.html#23950" class="Function">m*n≡0⇒m≡0∨n≡0</a>
|
||
<a id="67431" class="Symbol">{-#</a> <a id="67435" class="Keyword">WARNING_ON_USAGE</a> <a id="67452" class="Pragma">i*j≡0⇒i≡0∨j≡0</a>
|
||
<a id="67466" class="String">"Warning: i*j≡0⇒i≡0∨j≡0 was deprecated in v1.1.
|
||
Please use m*n≡0⇒m≡0∨n≡0 instead."</a>
|
||
<a id="67549" class="Symbol">#-}</a>
|
||
<a id="i*j≡1⇒i≡1"></a><a id="67553" href="Data.Nat.Properties.html#67553" class="Function">i*j≡1⇒i≡1</a> <a id="67563" class="Symbol">=</a> <a id="67565" href="Data.Nat.Properties.html#24093" class="Function">m*n≡1⇒m≡1</a>
|
||
<a id="67575" class="Symbol">{-#</a> <a id="67579" class="Keyword">WARNING_ON_USAGE</a> <a id="67596" class="Pragma">i*j≡1⇒i≡1</a>
|
||
<a id="67606" class="String">"Warning: i*j≡1⇒i≡1 was deprecated in v1.1.
|
||
Please use m*n≡1⇒m≡1 instead."</a>
|
||
<a id="67681" class="Symbol">#-}</a>
|
||
<a id="i*j≡1⇒j≡1"></a><a id="67685" href="Data.Nat.Properties.html#67685" class="Function">i*j≡1⇒j≡1</a> <a id="67695" class="Symbol">=</a> <a id="67697" href="Data.Nat.Properties.html#24313" class="Function">m*n≡1⇒n≡1</a>
|
||
<a id="67707" class="Symbol">{-#</a> <a id="67711" class="Keyword">WARNING_ON_USAGE</a> <a id="67728" class="Pragma">i*j≡1⇒j≡1</a>
|
||
<a id="67738" class="String">"Warning: i*j≡1⇒j≡1 was deprecated in v1.1.
|
||
Please use m*n≡1⇒n≡1 instead."</a>
|
||
<a id="67813" class="Symbol">#-}</a>
|
||
<a id="i^j≡0⇒i≡0"></a><a id="67817" href="Data.Nat.Properties.html#67817" class="Function">i^j≡0⇒i≡0</a> <a id="67827" class="Symbol">=</a> <a id="67829" href="Data.Nat.Properties.html#28465" class="Function">m^n≡0⇒m≡0</a>
|
||
<a id="67839" class="Symbol">{-#</a> <a id="67843" class="Keyword">WARNING_ON_USAGE</a> <a id="67860" class="Pragma">i^j≡0⇒i≡0</a>
|
||
<a id="67870" class="String">"Warning: i^j≡0⇒i≡0 was deprecated in v1.1.
|
||
Please use m^n≡0⇒m≡0 instead."</a>
|
||
<a id="67945" class="Symbol">#-}</a>
|
||
<a id="i^j≡1⇒j≡0∨i≡1"></a><a id="67949" href="Data.Nat.Properties.html#67949" class="Function">i^j≡1⇒j≡0∨i≡1</a> <a id="67963" class="Symbol">=</a> <a id="67965" href="Data.Nat.Properties.html#28574" class="Function">m^n≡1⇒n≡0∨m≡1</a>
|
||
<a id="67979" class="Symbol">{-#</a> <a id="67983" class="Keyword">WARNING_ON_USAGE</a> <a id="68000" class="Pragma">i^j≡1⇒j≡0∨i≡1</a>
|
||
<a id="68014" class="String">"Warning: i^j≡1⇒j≡0∨i≡1 was deprecated in v1.1.
|
||
Please use m^n≡1⇒n≡0∨m≡1 instead."</a>
|
||
<a id="68097" class="Symbol">#-}</a>
|
||
<a id="[i+j]∸[i+k]≡j∸k"></a><a id="68101" href="Data.Nat.Properties.html#68101" class="Function">[i+j]∸[i+k]≡j∸k</a> <a id="68117" class="Symbol">=</a> <a id="68119" href="Data.Nat.Properties.html#47174" class="Function">[m+n]∸[m+o]≡n∸o</a>
|
||
<a id="68135" class="Symbol">{-#</a> <a id="68139" class="Keyword">WARNING_ON_USAGE</a> <a id="68156" class="Pragma">[i+j]∸[i+k]≡j∸k</a>
|
||
<a id="68172" class="String">"Warning: [i+j]∸[i+k]≡j∸k was deprecated in v1.1.
|
||
Please use [m+n]∸[m+o]≡n∸o instead."</a>
|
||
<a id="68259" class="Symbol">#-}</a>
|
||
<a id="m≢0⇒suc[pred[m]]≡m"></a><a id="68263" href="Data.Nat.Properties.html#68263" class="Function">m≢0⇒suc[pred[m]]≡m</a> <a id="68282" class="Symbol">=</a> <a id="68284" href="Data.Nat.Properties.html#49893" class="Function">suc[pred[n]]≡n</a>
|
||
<a id="68299" class="Symbol">{-#</a> <a id="68303" class="Keyword">WARNING_ON_USAGE</a> <a id="68320" class="Pragma">m≢0⇒suc[pred[m]]≡m</a>
|
||
<a id="68339" class="String">"Warning: m≢0⇒suc[pred[m]]≡m was deprecated in v1.1.
|
||
Please use suc[pred[n]]≡n instead."</a>
|
||
<a id="68428" class="Symbol">#-}</a>
|
||
<a id="n≡m⇒∣n-m∣≡0"></a><a id="68432" href="Data.Nat.Properties.html#68432" class="Function">n≡m⇒∣n-m∣≡0</a> <a id="68444" class="Symbol">=</a> <a id="68446" href="Data.Nat.Properties.html#50283" class="Function">m≡n⇒∣m-n∣≡0</a>
|
||
<a id="68458" class="Symbol">{-#</a> <a id="68462" class="Keyword">WARNING_ON_USAGE</a> <a id="68479" class="Pragma">n≡m⇒∣n-m∣≡0</a>
|
||
<a id="68491" class="String">"Warning: n≡m⇒∣n-m∣≡0 was deprecated in v1.1.
|
||
Please use m≡n⇒∣m-n∣≡0 instead."</a>
|
||
<a id="68570" class="Symbol">#-}</a>
|
||
<a id="∣n-m∣≡0⇒n≡m"></a><a id="68574" href="Data.Nat.Properties.html#68574" class="Function">∣n-m∣≡0⇒n≡m</a> <a id="68586" class="Symbol">=</a> <a id="68588" href="Data.Nat.Properties.html#50410" class="Function">∣m-n∣≡0⇒m≡n</a>
|
||
<a id="68600" class="Symbol">{-#</a> <a id="68604" class="Keyword">WARNING_ON_USAGE</a> <a id="68621" class="Pragma">∣n-m∣≡0⇒n≡m</a>
|
||
<a id="68633" class="String">"Warning: ∣n-m∣≡0⇒n≡m was deprecated in v1.1.
|
||
Please use ∣m-n∣≡0⇒m≡n instead."</a>
|
||
<a id="68712" class="Symbol">#-}</a>
|
||
<a id="∣n-m∣≡n∸m⇒m≤n"></a><a id="68716" href="Data.Nat.Properties.html#68716" class="Function">∣n-m∣≡n∸m⇒m≤n</a> <a id="68730" class="Symbol">=</a> <a id="68732" href="Data.Nat.Properties.html#50749" class="Function">∣m-n∣≡m∸n⇒n≤m</a>
|
||
<a id="68746" class="Symbol">{-#</a> <a id="68750" class="Keyword">WARNING_ON_USAGE</a> <a id="68767" class="Pragma">∣n-m∣≡n∸m⇒m≤n</a>
|
||
<a id="68781" class="String">"Warning: ∣n-m∣≡n∸m⇒m≤n was deprecated in v1.1.
|
||
Please use ∣m-n∣≡m∸n⇒n≤m instead."</a>
|
||
<a id="68864" class="Symbol">#-}</a>
|
||
<a id="∣n-n+m∣≡m"></a><a id="68868" href="Data.Nat.Properties.html#68868" class="Function">∣n-n+m∣≡m</a> <a id="68878" class="Symbol">=</a> <a id="68880" href="Data.Nat.Properties.html#51002" class="Function">∣m-m+n∣≡n</a>
|
||
<a id="68890" class="Symbol">{-#</a> <a id="68894" class="Keyword">WARNING_ON_USAGE</a> <a id="68911" class="Pragma">∣n-n+m∣≡m</a>
|
||
<a id="68921" class="String">"Warning: ∣n-n+m∣≡m was deprecated in v1.1.
|
||
Please use ∣m-m+n∣≡n instead."</a>
|
||
<a id="68996" class="Symbol">#-}</a>
|
||
<a id="∣n+m-n+o∣≡∣m-o|"></a><a id="69000" href="Data.Nat.Properties.html#69000" class="Function">∣n+m-n+o∣≡∣m-o|</a> <a id="69016" class="Symbol">=</a> <a id="69018" href="Data.Nat.Properties.html#51104" class="Function">∣m+n-m+o∣≡∣n-o∣</a>
|
||
<a id="69034" class="Symbol">{-#</a> <a id="69038" class="Keyword">WARNING_ON_USAGE</a> <a id="69055" class="Pragma">∣n+m-n+o∣≡∣m-o|</a>
|
||
<a id="69071" class="String">"Warning: ∣n+m-n+o∣≡∣m-o| was deprecated in v1.1.
|
||
Please use ∣m+n-m+o∣≡∣n-o∣ instead."</a>
|
||
<a id="69158" class="Symbol">#-}</a>
|
||
<a id="∣m+n-m+o∣≡∣n-o|"></a><a id="69162" href="Data.Nat.Properties.html#69162" class="Function">∣m+n-m+o∣≡∣n-o|</a> <a id="69178" class="Symbol">=</a> <a id="69180" href="Data.Nat.Properties.html#51104" class="Function">∣m+n-m+o∣≡∣n-o∣</a>
|
||
<a id="69196" class="Symbol">{-#</a> <a id="69200" class="Keyword">WARNING_ON_USAGE</a> <a id="69217" class="Pragma">∣m+n-m+o∣≡∣n-o|</a>
|
||
<a id="69233" class="String">"Warning: ∣m+n-m+o∣≡∣n-o| was deprecated in v1.6.
|
||
Please use ∣m+n-m+o∣≡∣n-o∣ instead. Note the final is a \\| rather than a |"</a>
|
||
<a id="69360" class="Symbol">#-}</a>
|
||
<a id="n∸m≤∣n-m∣"></a><a id="69364" href="Data.Nat.Properties.html#69364" class="Function">n∸m≤∣n-m∣</a> <a id="69374" class="Symbol">=</a> <a id="69376" href="Data.Nat.Properties.html#51250" class="Function">m∸n≤∣m-n∣</a>
|
||
<a id="69386" class="Symbol">{-#</a> <a id="69390" class="Keyword">WARNING_ON_USAGE</a> <a id="69407" class="Pragma">n∸m≤∣n-m∣</a>
|
||
<a id="69417" class="String">"Warning: n∸m≤∣n-m∣ was deprecated in v1.1.
|
||
Please use m∸n≤∣m-n∣ instead."</a>
|
||
<a id="69492" class="Symbol">#-}</a>
|
||
<a id="∣n-m∣≤n⊔m"></a><a id="69496" href="Data.Nat.Properties.html#69496" class="Function">∣n-m∣≤n⊔m</a> <a id="69506" class="Symbol">=</a> <a id="69508" href="Data.Nat.Properties.html#51451" class="Function">∣m-n∣≤m⊔n</a>
|
||
<a id="69518" class="Symbol">{-#</a> <a id="69522" class="Keyword">WARNING_ON_USAGE</a> <a id="69539" class="Pragma">∣n-m∣≤n⊔m</a>
|
||
<a id="69549" class="String">"Warning: ∣n-m∣≤n⊔m was deprecated in v1.1.
|
||
Please use ∣m-n∣≤m⊔n instead."</a>
|
||
<a id="69624" class="Symbol">#-}</a>
|
||
<a id="n≤m+n"></a><a id="69628" href="Data.Nat.Properties.html#69628" class="Function">n≤m+n</a> <a id="69634" class="Symbol">:</a> <a id="69636" class="Symbol">∀</a> <a id="69638" href="Data.Nat.Properties.html#69638" class="Bound">m</a> <a id="69640" href="Data.Nat.Properties.html#69640" class="Bound">n</a> <a id="69642" class="Symbol">→</a> <a id="69644" href="Data.Nat.Properties.html#69640" class="Bound">n</a> <a id="69646" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="69648" href="Data.Nat.Properties.html#69638" class="Bound">m</a> <a id="69650" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="69652" href="Data.Nat.Properties.html#69640" class="Bound">n</a>
|
||
<a id="69654" href="Data.Nat.Properties.html#69628" class="Function">n≤m+n</a> <a id="69660" href="Data.Nat.Properties.html#69660" class="Bound">m</a> <a id="69662" href="Data.Nat.Properties.html#69662" class="Bound">n</a> <a id="69664" class="Symbol">=</a> <a id="69666" href="Relation.Binary.PropositionalEquality.Core.html#1789" class="Function">subst</a> <a id="69672" class="Symbol">(</a><a id="69673" href="Data.Nat.Properties.html#69662" class="Bound">n</a> <a id="69675" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤_</a><a id="69677" class="Symbol">)</a> <a id="69679" class="Symbol">(</a><a id="69680" href="Data.Nat.Properties.html#13404" class="Function">+-comm</a> <a id="69687" href="Data.Nat.Properties.html#69662" class="Bound">n</a> <a id="69689" href="Data.Nat.Properties.html#69660" class="Bound">m</a><a id="69690" class="Symbol">)</a> <a id="69692" class="Symbol">(</a><a id="69693" href="Data.Nat.Properties.html#17089" class="Function">m≤m+n</a> <a id="69699" href="Data.Nat.Properties.html#69662" class="Bound">n</a> <a id="69701" href="Data.Nat.Properties.html#69660" class="Bound">m</a><a id="69702" class="Symbol">)</a>
|
||
<a id="69704" class="Symbol">{-#</a> <a id="69708" class="Keyword">WARNING_ON_USAGE</a> <a id="69725" class="Pragma">n≤m+n</a>
|
||
<a id="69731" class="String">"Warning: n≤m+n was deprecated in v1.1.
|
||
Please use m≤n+m instead (note, you will need to switch the argument order)."</a>
|
||
<a id="69849" class="Symbol">#-}</a>
|
||
<a id="n≤m+n∸m"></a><a id="69853" href="Data.Nat.Properties.html#69853" class="Function">n≤m+n∸m</a> <a id="69861" class="Symbol">:</a> <a id="69863" class="Symbol">∀</a> <a id="69865" href="Data.Nat.Properties.html#69865" class="Bound">m</a> <a id="69867" href="Data.Nat.Properties.html#69867" class="Bound">n</a> <a id="69869" class="Symbol">→</a> <a id="69871" href="Data.Nat.Properties.html#69867" class="Bound">n</a> <a id="69873" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="69875" href="Data.Nat.Properties.html#69865" class="Bound">m</a> <a id="69877" href="Agda.Builtin.Nat.html#319" class="Primitive Operator">+</a> <a id="69879" class="Symbol">(</a><a id="69880" href="Data.Nat.Properties.html#69867" class="Bound">n</a> <a id="69882" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="69884" href="Data.Nat.Properties.html#69865" class="Bound">m</a><a id="69885" class="Symbol">)</a>
|
||
<a id="69887" href="Data.Nat.Properties.html#69853" class="Function">n≤m+n∸m</a> <a id="69895" href="Data.Nat.Properties.html#69895" class="Bound">m</a> <a id="69903" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="69911" class="Symbol">=</a> <a id="69913" href="Data.Nat.Base.html#1567" class="InductiveConstructor">z≤n</a>
|
||
<a id="69917" href="Data.Nat.Properties.html#69853" class="Function">n≤m+n∸m</a> <a id="69925" href="Agda.Builtin.Nat.html#204" class="InductiveConstructor">zero</a> <a id="69933" class="Symbol">(</a><a id="69934" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="69938" href="Data.Nat.Properties.html#69938" class="Bound">n</a><a id="69939" class="Symbol">)</a> <a id="69941" class="Symbol">=</a> <a id="69943" href="Data.Nat.Properties.html#4574" class="Function">≤-refl</a>
|
||
<a id="69950" href="Data.Nat.Properties.html#69853" class="Function">n≤m+n∸m</a> <a id="69958" class="Symbol">(</a><a id="69959" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="69963" href="Data.Nat.Properties.html#69963" class="Bound">m</a><a id="69964" class="Symbol">)</a> <a id="69966" class="Symbol">(</a><a id="69967" href="Agda.Builtin.Nat.html#217" class="InductiveConstructor">suc</a> <a id="69971" href="Data.Nat.Properties.html#69971" class="Bound">n</a><a id="69972" class="Symbol">)</a> <a id="69974" class="Symbol">=</a> <a id="69976" href="Data.Nat.Base.html#1609" class="InductiveConstructor">s≤s</a> <a id="69980" class="Symbol">(</a><a id="69981" href="Data.Nat.Properties.html#69853" class="Function">n≤m+n∸m</a> <a id="69989" href="Data.Nat.Properties.html#69963" class="Bound">m</a> <a id="69991" href="Data.Nat.Properties.html#69971" class="Bound">n</a><a id="69992" class="Symbol">)</a>
|
||
<a id="69994" class="Symbol">{-#</a> <a id="69998" class="Keyword">WARNING_ON_USAGE</a> <a id="70015" class="Pragma">n≤m+n∸m</a>
|
||
<a id="70023" class="String">"Warning: n≤m+n∸m was deprecated in v1.1.
|
||
Please use m≤n+m∸n instead (note, you will need to switch the argument order)."</a>
|
||
<a id="70145" class="Symbol">#-}</a>
|
||
<a id="∣n-m∣≡[n∸m]∨[m∸n]"></a><a id="70149" href="Data.Nat.Properties.html#70149" class="Function">∣n-m∣≡[n∸m]∨[m∸n]</a> <a id="70167" class="Symbol">:</a> <a id="70169" class="Symbol">∀</a> <a id="70171" href="Data.Nat.Properties.html#70171" class="Bound">m</a> <a id="70173" href="Data.Nat.Properties.html#70173" class="Bound">n</a> <a id="70175" class="Symbol">→</a> <a id="70177" class="Symbol">(</a><a id="70178" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="70180" href="Data.Nat.Properties.html#70173" class="Bound">n</a> <a id="70182" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="70184" href="Data.Nat.Properties.html#70171" class="Bound">m</a> <a id="70186" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="70188" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="70190" href="Data.Nat.Properties.html#70173" class="Bound">n</a> <a id="70192" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="70194" href="Data.Nat.Properties.html#70171" class="Bound">m</a><a id="70195" class="Symbol">)</a> <a id="70197" href="Data.Sum.Base.html#743" class="Datatype Operator">⊎</a> <a id="70199" class="Symbol">(</a><a id="70200" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="70202" href="Data.Nat.Properties.html#70173" class="Bound">n</a> <a id="70204" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="70206" href="Data.Nat.Properties.html#70171" class="Bound">m</a> <a id="70208" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="70210" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="70212" href="Data.Nat.Properties.html#70171" class="Bound">m</a> <a id="70214" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="70216" href="Data.Nat.Properties.html#70173" class="Bound">n</a><a id="70217" class="Symbol">)</a>
|
||
<a id="70219" href="Data.Nat.Properties.html#70149" class="Function">∣n-m∣≡[n∸m]∨[m∸n]</a> <a id="70237" href="Data.Nat.Properties.html#70237" class="Bound">m</a> <a id="70239" href="Data.Nat.Properties.html#70239" class="Bound">n</a> <a id="70241" class="Keyword">with</a> <a id="70246" href="Data.Nat.Properties.html#4869" class="Function">≤-total</a> <a id="70254" href="Data.Nat.Properties.html#70237" class="Bound">m</a> <a id="70256" href="Data.Nat.Properties.html#70239" class="Bound">n</a>
|
||
<a id="70258" class="Symbol">...</a> <a id="70262" class="Symbol">|</a> <a id="70264" href="Data.Sum.Base.html#793" class="InductiveConstructor">inj₁</a> <a id="70269" href="Data.Nat.Properties.html#70269" class="Bound">m≤n</a> <a id="70273" class="Symbol">=</a> <a id="70275" href="Data.Sum.Base.html#793" class="InductiveConstructor">inj₁</a> <a id="70280" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="70282" href="Data.Nat.Properties.html#50554" class="Function">m≤n⇒∣n-m∣≡n∸m</a> <a id="70296" href="Data.Nat.Properties.html#70269" class="Bound">m≤n</a>
|
||
<a id="70300" class="Symbol">...</a> <a id="70304" class="Symbol">|</a> <a id="70306" href="Data.Sum.Base.html#818" class="InductiveConstructor">inj₂</a> <a id="70311" href="Data.Nat.Properties.html#70311" class="Bound">n≤m</a> <a id="70315" class="Symbol">=</a> <a id="70317" href="Data.Sum.Base.html#818" class="InductiveConstructor">inj₂</a> <a id="70322" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="70324" href="Relation.Binary.Reasoning.Base.Triple.html#3295" class="Function Operator">begin-equality</a>
|
||
<a id="70341" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="70343" class="Bound">n</a> <a id="70345" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="70347" class="Bound">m</a> <a id="70349" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="70351" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="70354" href="Data.Nat.Properties.html#51847" class="Function">∣-∣-comm</a> <a id="70363" class="Bound">n</a> <a id="70365" class="Bound">m</a> <a id="70367" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="70371" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="70373" class="Bound">m</a> <a id="70375" href="Data.Nat.Base.html#3546" class="Function Operator">-</a> <a id="70377" class="Bound">n</a> <a id="70379" href="Data.Nat.Base.html#3546" class="Function Operator">∣</a> <a id="70381" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">≡⟨</a> <a id="70384" href="Data.Nat.Properties.html#50554" class="Function">m≤n⇒∣n-m∣≡n∸m</a> <a id="70398" href="Data.Nat.Properties.html#70311" class="Bound">n≤m</a> <a id="70402" href="Relation.Binary.Reasoning.Base.Triple.html#4527" class="Function">⟩</a>
|
||
<a id="70406" class="Bound">m</a> <a id="70408" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="70410" class="Bound">n</a> <a id="70416" href="Relation.Binary.Reasoning.Base.Triple.html#5128" class="Function Operator">∎</a>
|
||
<a id="70418" class="Symbol">{-#</a> <a id="70422" class="Keyword">WARNING_ON_USAGE</a> <a id="70439" class="Pragma">∣n-m∣≡[n∸m]∨[m∸n]</a>
|
||
<a id="70457" class="String">"Warning: ∣n-m∣≡[n∸m]∨[m∸n] was deprecated in v1.1.
|
||
Please use ∣m-n∣≡[m∸n]∨[n∸m] instead (note, you will need to switch the argument order)."</a>
|
||
<a id="70599" class="Symbol">#-}</a>
|
||
|
||
<a id="70604" class="Comment">-- Version 1.2</a>
|
||
|
||
<a id="+-*-suc"></a><a id="70620" href="Data.Nat.Properties.html#70620" class="Function">+-*-suc</a> <a id="70628" class="Symbol">=</a> <a id="70630" href="Data.Nat.Properties.html#19391" class="Function">*-suc</a>
|
||
<a id="70636" class="Symbol">{-#</a> <a id="70640" class="Keyword">WARNING_ON_USAGE</a> <a id="70657" class="Pragma">+-*-suc</a>
|
||
<a id="70665" class="String">"Warning: +-*-suc was deprecated in v1.2.
|
||
Please use *-suc instead."</a>
|
||
<a id="70734" class="Symbol">#-}</a>
|
||
|
||
<a id="n∸m≤n"></a><a id="70739" href="Data.Nat.Properties.html#70739" class="Function">n∸m≤n</a> <a id="70745" class="Symbol">:</a> <a id="70747" class="Symbol">∀</a> <a id="70749" href="Data.Nat.Properties.html#70749" class="Bound">m</a> <a id="70751" href="Data.Nat.Properties.html#70751" class="Bound">n</a> <a id="70753" class="Symbol">→</a> <a id="70755" href="Data.Nat.Properties.html#70751" class="Bound">n</a> <a id="70757" href="Data.Nat.Base.html#2883" class="Primitive Operator">∸</a> <a id="70759" href="Data.Nat.Properties.html#70749" class="Bound">m</a> <a id="70761" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="70763" href="Data.Nat.Properties.html#70751" class="Bound">n</a>
|
||
<a id="70765" href="Data.Nat.Properties.html#70739" class="Function">n∸m≤n</a> <a id="70771" href="Data.Nat.Properties.html#70771" class="Bound">m</a> <a id="70773" href="Data.Nat.Properties.html#70773" class="Bound">n</a> <a id="70775" class="Symbol">=</a> <a id="70777" href="Data.Nat.Properties.html#42665" class="Function">m∸n≤m</a> <a id="70783" href="Data.Nat.Properties.html#70773" class="Bound">n</a> <a id="70785" href="Data.Nat.Properties.html#70771" class="Bound">m</a>
|
||
<a id="70787" class="Symbol">{-#</a> <a id="70791" class="Keyword">WARNING_ON_USAGE</a> <a id="70808" class="Pragma">n∸m≤n</a>
|
||
<a id="70814" class="String">"Warning: n∸m≤n was deprecated in v1.2.
|
||
Please use m∸n≤m instead (note, you will need to switch the argument order)."</a>
|
||
<a id="70932" class="Symbol">#-}</a>
|
||
|
||
<a id="70937" class="Comment">-- Version 1.3</a>
|
||
|
||
<a id="∀[m≤n⇒m≢o]⇒o<n"></a><a id="70953" href="Data.Nat.Properties.html#70953" class="Function">∀[m≤n⇒m≢o]⇒o<n</a> <a id="70968" class="Symbol">:</a> <a id="70970" class="Symbol">∀</a> <a id="70972" href="Data.Nat.Properties.html#70972" class="Bound">n</a> <a id="70974" href="Data.Nat.Properties.html#70974" class="Bound">o</a> <a id="70976" class="Symbol">→</a> <a id="70978" class="Symbol">(∀</a> <a id="70981" class="Symbol">{</a><a id="70982" href="Data.Nat.Properties.html#70982" class="Bound">m</a><a id="70983" class="Symbol">}</a> <a id="70985" class="Symbol">→</a> <a id="70987" href="Data.Nat.Properties.html#70982" class="Bound">m</a> <a id="70989" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="70991" href="Data.Nat.Properties.html#70972" class="Bound">n</a> <a id="70993" class="Symbol">→</a> <a id="70995" href="Data.Nat.Properties.html#70982" class="Bound">m</a> <a id="70997" href="Relation.Binary.PropositionalEquality.Core.html#839" class="Function Operator">≢</a> <a id="70999" href="Data.Nat.Properties.html#70974" class="Bound">o</a><a id="71000" class="Symbol">)</a> <a id="71002" class="Symbol">→</a> <a id="71004" href="Data.Nat.Properties.html#70972" class="Bound">n</a> <a id="71006" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="71008" href="Data.Nat.Properties.html#70974" class="Bound">o</a>
|
||
<a id="71010" href="Data.Nat.Properties.html#70953" class="Function">∀[m≤n⇒m≢o]⇒o<n</a> <a id="71025" class="Symbol">=</a> <a id="71027" href="Data.Nat.Properties.html#11621" class="Function">∀[m≤n⇒m≢o]⇒n<o</a>
|
||
<a id="71042" class="Symbol">{-#</a> <a id="71046" class="Keyword">WARNING_ON_USAGE</a> <a id="71063" class="Pragma">∀[m≤n⇒m≢o]⇒o<n</a>
|
||
<a id="71078" class="String">"Warning: ∀[m≤n⇒m≢o]⇒o<n was deprecated in v1.3.
|
||
Please use ∀[m≤n⇒m≢o]⇒n<o instead."</a>
|
||
<a id="71163" class="Symbol">#-}</a>
|
||
<a id="∀[m<n⇒m≢o]⇒o≤n"></a><a id="71167" href="Data.Nat.Properties.html#71167" class="Function">∀[m<n⇒m≢o]⇒o≤n</a> <a id="71182" class="Symbol">:</a> <a id="71184" class="Symbol">∀</a> <a id="71186" href="Data.Nat.Properties.html#71186" class="Bound">n</a> <a id="71188" href="Data.Nat.Properties.html#71188" class="Bound">o</a> <a id="71190" class="Symbol">→</a> <a id="71192" class="Symbol">(∀</a> <a id="71195" class="Symbol">{</a><a id="71196" href="Data.Nat.Properties.html#71196" class="Bound">m</a><a id="71197" class="Symbol">}</a> <a id="71199" class="Symbol">→</a> <a id="71201" href="Data.Nat.Properties.html#71196" class="Bound">m</a> <a id="71203" href="Data.Nat.Base.html#1654" class="Function Operator"><</a> <a id="71205" href="Data.Nat.Properties.html#71186" class="Bound">n</a> <a id="71207" class="Symbol">→</a> <a id="71209" href="Data.Nat.Properties.html#71196" class="Bound">m</a> <a id="71211" href="Relation.Binary.PropositionalEquality.Core.html#839" class="Function Operator">≢</a> <a id="71213" href="Data.Nat.Properties.html#71188" class="Bound">o</a><a id="71214" class="Symbol">)</a> <a id="71216" class="Symbol">→</a> <a id="71218" href="Data.Nat.Properties.html#71186" class="Bound">n</a> <a id="71220" href="Data.Nat.Base.html#1544" class="Datatype Operator">≤</a> <a id="71222" href="Data.Nat.Properties.html#71188" class="Bound">o</a>
|
||
<a id="71224" href="Data.Nat.Properties.html#71167" class="Function">∀[m<n⇒m≢o]⇒o≤n</a> <a id="71239" class="Symbol">=</a> <a id="71241" href="Data.Nat.Properties.html#11948" class="Function">∀[m<n⇒m≢o]⇒n≤o</a>
|
||
<a id="71256" class="Symbol">{-#</a> <a id="71260" class="Keyword">WARNING_ON_USAGE</a> <a id="71277" class="Pragma">∀[m<n⇒m≢o]⇒o≤n</a>
|
||
<a id="71292" class="String">"Warning: ∀[m<n⇒m≢o]⇒o≤n was deprecated in v1.3.
|
||
Please use ∀[m<n⇒m≢o]⇒n≤o instead."</a>
|
||
<a id="71377" class="Symbol">#-}</a>
|
||
|
||
<a id="71382" class="Comment">-- Version 1.4</a>
|
||
|
||
<a id="*-+-isSemiring"></a><a id="71398" href="Data.Nat.Properties.html#71398" class="Function">*-+-isSemiring</a> <a id="71413" class="Symbol">=</a> <a id="71415" href="Data.Nat.Properties.html#22047" class="Function">+-*-isSemiring</a>
|
||
<a id="71430" class="Symbol">{-#</a> <a id="71434" class="Keyword">WARNING_ON_USAGE</a> <a id="71451" class="Pragma">*-+-isSemiring</a>
|
||
<a id="71466" class="String">"Warning: *-+-isSemiring was deprecated in v1.4.
|
||
Please use +-*-isSemiring instead."</a>
|
||
<a id="71551" class="Symbol">#-}</a>
|
||
<a id="*-+-isCommutativeSemiring"></a><a id="71555" href="Data.Nat.Properties.html#71555" class="Function">*-+-isCommutativeSemiring</a> <a id="71581" class="Symbol">=</a> <a id="71583" href="Data.Nat.Properties.html#22326" class="Function">+-*-isCommutativeSemiring</a>
|
||
<a id="71609" class="Symbol">{-#</a> <a id="71613" class="Keyword">WARNING_ON_USAGE</a> <a id="71630" class="Pragma">*-+-isCommutativeSemiring</a>
|
||
<a id="71656" class="String">"Warning: *-+-isCommutativeSemiring was deprecated in v1.4.
|
||
Please use +-*-isCommutativeSemiring instead."</a>
|
||
<a id="71763" class="Symbol">#-}</a>
|
||
<a id="*-+-semiring"></a><a id="71767" href="Data.Nat.Properties.html#71767" class="Function">*-+-semiring</a> <a id="71780" class="Symbol">=</a> <a id="71782" href="Data.Nat.Properties.html#23262" class="Function">+-*-semiring</a>
|
||
<a id="71795" class="Symbol">{-#</a> <a id="71799" class="Keyword">WARNING_ON_USAGE</a> <a id="71816" class="Pragma">*-+-semiring</a>
|
||
<a id="71829" class="String">"Warning: *-+-semiring was deprecated in v1.4.
|
||
Please use +-*-semiring instead."</a>
|
||
<a id="71910" class="Symbol">#-}</a>
|
||
<a id="*-+-commutativeSemiring"></a><a id="71914" href="Data.Nat.Properties.html#71914" class="Function">*-+-commutativeSemiring</a> <a id="71938" class="Symbol">=</a> <a id="71940" href="Data.Nat.Properties.html#23351" class="Function">+-*-commutativeSemiring</a>
|
||
<a id="71964" class="Symbol">{-#</a> <a id="71968" class="Keyword">WARNING_ON_USAGE</a> <a id="71985" class="Pragma">*-+-commutativeSemiring</a>
|
||
<a id="72009" class="String">"Warning: *-+-commutativeSemiring was deprecated in v1.4.
|
||
Please use +-*-commutativeSemiring instead."</a>
|
||
<a id="72112" class="Symbol">#-}</a>
|
||
|
||
<a id="72117" class="Comment">-- Version 1.6</a>
|
||
|
||
<a id="m≤n⇒n⊔m≡n"></a><a id="72133" href="Data.Nat.Properties.html#72133" class="Function">m≤n⇒n⊔m≡n</a> <a id="72143" class="Symbol">=</a> <a id="72145" href="Data.Nat.Properties.html#29069" class="Function">m≥n⇒m⊔n≡m</a>
|
||
<a id="72155" class="Symbol">{-#</a> <a id="72159" class="Keyword">WARNING_ON_USAGE</a> <a id="72176" class="Pragma">m≤n⇒n⊔m≡n</a>
|
||
<a id="72186" class="String">"Warning: m≤n⇒n⊔m≡n was deprecated in v1.6. Please use m≥n⇒m⊔n≡m instead."</a>
|
||
<a id="72261" class="Symbol">#-}</a>
|
||
<a id="m≤n⇒n⊓m≡m"></a><a id="72265" href="Data.Nat.Properties.html#72265" class="Function">m≤n⇒n⊓m≡m</a> <a id="72275" class="Symbol">=</a> <a id="72277" href="Data.Nat.Properties.html#29390" class="Function">m≥n⇒m⊓n≡n</a>
|
||
<a id="72287" class="Symbol">{-#</a> <a id="72291" class="Keyword">WARNING_ON_USAGE</a> <a id="72308" class="Pragma">m≤n⇒n⊓m≡m</a>
|
||
<a id="72318" class="String">"Warning: m≤n⇒n⊓m≡m was deprecated in v1.6. Please use m≥n⇒m⊓n≡n instead."</a>
|
||
<a id="72393" class="Symbol">#-}</a>
|
||
<a id="n⊔m≡m⇒n≤m"></a><a id="72397" href="Data.Nat.Properties.html#72397" class="Function">n⊔m≡m⇒n≤m</a> <a id="72407" class="Symbol">=</a> <a id="72409" href="Data.Nat.Properties.html#33919" class="Function">m⊔n≡n⇒m≤n</a>
|
||
<a id="72419" class="Symbol">{-#</a> <a id="72423" class="Keyword">WARNING_ON_USAGE</a> <a id="72440" class="Pragma">n⊔m≡m⇒n≤m</a>
|
||
<a id="72450" class="String">"Warning: n⊔m≡m⇒n≤m was deprecated in v1.6. Please use m⊔n≡n⇒m≤n instead."</a>
|
||
<a id="72525" class="Symbol">#-}</a>
|
||
<a id="n⊔m≡n⇒m≤n"></a><a id="72529" href="Data.Nat.Properties.html#72529" class="Function">n⊔m≡n⇒m≤n</a> <a id="72539" class="Symbol">=</a> <a id="72541" href="Data.Nat.Properties.html#33982" class="Function">m⊔n≡m⇒n≤m</a>
|
||
<a id="72551" class="Symbol">{-#</a> <a id="72555" class="Keyword">WARNING_ON_USAGE</a> <a id="72572" class="Pragma">n⊔m≡n⇒m≤n</a>
|
||
<a id="72582" class="String">"Warning: n⊔m≡n⇒m≤n was deprecated in v1.6. Please use m⊔n≡m⇒n≤m instead."</a>
|
||
<a id="72657" class="Symbol">#-}</a>
|
||
<a id="n≤m⊔n"></a><a id="72661" href="Data.Nat.Properties.html#72661" class="Function">n≤m⊔n</a> <a id="72667" class="Symbol">=</a> <a id="72669" href="Data.Nat.Properties.html#34098" class="Function">m≤n⊔m</a>
|
||
<a id="72675" class="Symbol">{-#</a> <a id="72679" class="Keyword">WARNING_ON_USAGE</a> <a id="72696" class="Pragma">n≤m⊔n</a>
|
||
<a id="72702" class="String">"Warning: n≤m⊔n was deprecated in v1.6. Please use m≤n⊔m instead."</a>
|
||
<a id="72769" class="Symbol">#-}</a>
|
||
<a id="⊔-least"></a><a id="72773" href="Data.Nat.Properties.html#72773" class="Function">⊔-least</a> <a id="72781" class="Symbol">=</a> <a id="72783" href="Algebra.Construct.NaturalChoice.MaxOp.html#2217" class="Function">⊔-lub</a>
|
||
<a id="72789" class="Symbol">{-#</a> <a id="72793" class="Keyword">WARNING_ON_USAGE</a> <a id="72810" class="Pragma">⊔-least</a>
|
||
<a id="72818" class="String">"Warning: ⊔-least was deprecated in v1.6. Please use ⊔-lub instead."</a>
|
||
<a id="72887" class="Symbol">#-}</a>
|
||
<a id="⊓-greatest"></a><a id="72891" href="Data.Nat.Properties.html#72891" class="Function">⊓-greatest</a> <a id="72902" class="Symbol">=</a> <a id="72904" href="Algebra.Construct.NaturalChoice.MinOp.html#7088" class="Function">⊓-glb</a>
|
||
<a id="72910" class="Symbol">{-#</a> <a id="72914" class="Keyword">WARNING_ON_USAGE</a> <a id="72931" class="Pragma">⊓-greatest</a>
|
||
<a id="72942" class="String">"Warning: ⊓-greatest was deprecated in v1.6. Please use ⊓-glb instead."</a>
|
||
<a id="73014" class="Symbol">#-}</a>
|
||
<a id="⊔-pres-≤m"></a><a id="73018" href="Data.Nat.Properties.html#73018" class="Function">⊔-pres-≤m</a> <a id="73028" class="Symbol">=</a> <a id="73030" href="Algebra.Construct.NaturalChoice.MaxOp.html#2217" class="Function">⊔-lub</a>
|
||
<a id="73036" class="Symbol">{-#</a> <a id="73040" class="Keyword">WARNING_ON_USAGE</a> <a id="73057" class="Pragma">⊔-pres-≤m</a>
|
||
<a id="73067" class="String">"Warning: ⊔-pres-≤m was deprecated in v1.6. Please use ⊔-lub instead."</a>
|
||
<a id="73138" class="Symbol">#-}</a>
|
||
<a id="⊓-pres-m≤"></a><a id="73142" href="Data.Nat.Properties.html#73142" class="Function">⊓-pres-m≤</a> <a id="73152" class="Symbol">=</a> <a id="73154" href="Algebra.Construct.NaturalChoice.MinOp.html#7088" class="Function">⊓-glb</a>
|
||
<a id="73160" class="Symbol">{-#</a> <a id="73164" class="Keyword">WARNING_ON_USAGE</a> <a id="73181" class="Pragma">⊓-pres-m≤</a>
|
||
<a id="73191" class="String">"Warning: ⊓-pres-m≤ was deprecated in v1.6. Please use ⊓-glb instead."</a>
|
||
<a id="73262" class="Symbol">#-}</a>
|
||
<a id="⊔-abs-⊓"></a><a id="73266" href="Data.Nat.Properties.html#73266" class="Function">⊔-abs-⊓</a> <a id="73274" class="Symbol">=</a> <a id="73276" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#2961" class="Function">⊔-absorbs-⊓</a>
|
||
<a id="73288" class="Symbol">{-#</a> <a id="73292" class="Keyword">WARNING_ON_USAGE</a> <a id="73309" class="Pragma">⊔-abs-⊓</a>
|
||
<a id="73317" class="String">"Warning: ⊔-abs-⊓ was deprecated in v1.6. Please use ⊔-absorbs-⊓ instead."</a>
|
||
<a id="73392" class="Symbol">#-}</a>
|
||
<a id="⊓-abs-⊔"></a><a id="73396" href="Data.Nat.Properties.html#73396" class="Function">⊓-abs-⊔</a> <a id="73404" class="Symbol">=</a> <a id="73406" href="Algebra.Construct.NaturalChoice.MinMaxOp.html#2646" class="Function">⊓-absorbs-⊔</a>
|
||
<a id="73418" class="Symbol">{-#</a> <a id="73422" class="Keyword">WARNING_ON_USAGE</a> <a id="73439" class="Pragma">⊓-abs-⊔</a>
|
||
<a id="73447" class="String">"Warning: ⊓-abs-⊔ was deprecated in v1.6. Please use ⊓-absorbs-⊔ instead."</a>
|
||
<a id="73522" class="Symbol">#-}</a>
|
||
</pre></body></html> |