@@ -377,18 +377,18 @@ m<n⇒m≤1+n : ∀ {m n} → m < n → m ≤ suc n
377
377
m<n⇒m≤1+n (s≤s z≤n) = z≤n
378
378
m<n⇒m≤1+n (s≤s (s≤s m<n)) = s≤s (m<n⇒m≤1+n (s≤s m<n))
379
379
380
- ∀[m≤n⇒m≢o]⇒o<n : ∀ n o → (∀ {m} → m ≤ n → m ≢ o) → n < o
381
- ∀[m≤n⇒m≢o]⇒o<n _ zero m≤n⇒n≢0 = contradiction refl (m≤n⇒n≢0 z≤n)
382
- ∀[m≤n⇒m≢o]⇒o<n zero (suc o) _ = 0<1+n
383
- ∀[m≤n⇒m≢o]⇒o<n (suc n) (suc o) m≤n⇒n≢o = s≤s (∀[m≤n⇒m≢o]⇒o<n n o rec)
380
+ ∀[m≤n⇒m≢o]⇒n<o : ∀ n o → (∀ {m} → m ≤ n → m ≢ o) → n < o
381
+ ∀[m≤n⇒m≢o]⇒n<o _ zero m≤n⇒n≢0 = contradiction refl (m≤n⇒n≢0 z≤n)
382
+ ∀[m≤n⇒m≢o]⇒n<o zero (suc o) _ = 0<1+n
383
+ ∀[m≤n⇒m≢o]⇒n<o (suc n) (suc o) m≤n⇒n≢o = s≤s (∀[m≤n⇒m≢o]⇒n<o n o rec)
384
384
where
385
385
rec : ∀ {m} → m ≤ n → m ≢ o
386
386
rec m≤n refl = m≤n⇒n≢o (s≤s m≤n) refl
387
387
388
- ∀[m<n⇒m≢o]⇒o≤n : ∀ n o → (∀ {m} → m < n → m ≢ o) → n ≤ o
389
- ∀[m<n⇒m≢o]⇒o≤n zero n _ = z≤n
390
- ∀[m<n⇒m≢o]⇒o≤n (suc n) zero m<n⇒m≢0 = contradiction refl (m<n⇒m≢0 0<1+n)
391
- ∀[m<n⇒m≢o]⇒o≤n (suc n) (suc o) m<n⇒m≢o = s≤s (∀[m<n⇒m≢o]⇒o≤n n o rec)
388
+ ∀[m<n⇒m≢o]⇒n≤o : ∀ n o → (∀ {m} → m < n → m ≢ o) → n ≤ o
389
+ ∀[m<n⇒m≢o]⇒n≤o zero n _ = z≤n
390
+ ∀[m<n⇒m≢o]⇒n≤o (suc n) zero m<n⇒m≢0 = contradiction refl (m<n⇒m≢0 0<1+n)
391
+ ∀[m<n⇒m≢o]⇒n≤o (suc n) (suc o) m<n⇒m≢o = s≤s (∀[m<n⇒m≢o]⇒n≤o n o rec)
392
392
where
393
393
rec : ∀ {m} → m < n → m ≢ o
394
394
rec x<m refl = m<n⇒m≢o (s≤s x<m) refl
@@ -1520,6 +1520,10 @@ m≮m∸n (suc m) (suc n) = m≮m∸n m n ∘ ≤-trans (n≤1+n (suc m))
1520
1520
∸-cancelˡ-≡ {n = suc n} (s≤s _) z≤n eq = contradiction (sym eq) (1+m≢m∸n n)
1521
1521
∸-cancelˡ-≡ {_} (s≤s n≤m) (s≤s o≤m) eq = cong suc (∸-cancelˡ-≡ n≤m o≤m eq)
1522
1522
1523
+ ∸-cancelʳ-≡ : ∀ {m n o} → o ≤ m → o ≤ n → m ∸ o ≡ n ∸ o → m ≡ n
1524
+ ∸-cancelʳ-≡ z≤n z≤n eq = eq
1525
+ ∸-cancelʳ-≡ (s≤s o≤m) (s≤s o≤n) eq = cong suc (∸-cancelʳ-≡ o≤m o≤n eq)
1526
+
1523
1527
m∸n≡0⇒m≤n : ∀ {m n} → m ∸ n ≡ 0 → m ≤ n
1524
1528
m∸n≡0⇒m≤n {zero} {_} _ = z≤n
1525
1529
m∸n≡0⇒m≤n {suc m} {suc n} eq = s≤s (m∸n≡0⇒m≤n eq)
@@ -1798,6 +1802,22 @@ m≤∣m-n∣+n m n = subst (m ≤_) (+-comm n _) (m≤n+∣m-n∣ m n)
1798
1802
suc (⌊ n /2⌋ + ⌊ suc n /2⌋) ≡⟨ cong suc (⌊n/2⌋+⌈n/2⌉≡n n) ⟩
1799
1803
suc n ∎
1800
1804
1805
+ ⌊n/2⌋≤n : ∀ n → ⌊ n /2⌋ ≤ n
1806
+ ⌊n/2⌋≤n zero = z≤n
1807
+ ⌊n/2⌋≤n (suc zero) = z≤n
1808
+ ⌊n/2⌋≤n (suc (suc n)) = s≤s (≤-step (⌊n/2⌋≤n n))
1809
+
1810
+ ⌊n/2⌋<n : ∀ n → ⌊ suc n /2⌋ < suc n
1811
+ ⌊n/2⌋<n zero = s≤s z≤n
1812
+ ⌊n/2⌋<n (suc n) = s≤s (s≤s (⌊n/2⌋≤n n))
1813
+
1814
+ ⌈n/2⌉≤n : ∀ n → ⌈ n /2⌉ ≤ n
1815
+ ⌈n/2⌉≤n zero = z≤n
1816
+ ⌈n/2⌉≤n (suc n) = s≤s (⌊n/2⌋≤n n)
1817
+
1818
+ ⌈n/2⌉<n : ∀ n → ⌈ suc (suc n) /2⌉ < suc (suc n)
1819
+ ⌈n/2⌉<n n = s≤s (⌊n/2⌋<n n)
1820
+
1801
1821
------------------------------------------------------------------------
1802
1822
-- Properties of _≤′_ and _<′_
1803
1823
------------------------------------------------------------------------
@@ -2234,3 +2254,18 @@ n∸m≤n m n = m∸n≤m n m
2234
2254
"Warning: n∸m≤n was deprecated in v1.2.
2235
2255
Please use m∸n≤m instead (note, you will need to switch the argument order)."
2236
2256
#-}
2257
+
2258
+ -- Version 1.3
2259
+
2260
+ ∀[m≤n⇒m≢o]⇒o<n : ∀ n o → (∀ {m} → m ≤ n → m ≢ o) → n < o
2261
+ ∀[m≤n⇒m≢o]⇒o<n = ∀[m≤n⇒m≢o]⇒n<o
2262
+ {-# WARNING_ON_USAGE n∸m≤∣n-m∣
2263
+ "Warning: ∀[m≤n⇒m≢o]⇒o<n was deprecated in v1.3.
2264
+ Please use ∀[m≤n⇒m≢o]⇒n<o instead."
2265
+ #-}
2266
+ ∀[m<n⇒m≢o]⇒o≤n : ∀ n o → (∀ {m} → m < n → m ≢ o) → n ≤ o
2267
+ ∀[m<n⇒m≢o]⇒o≤n = ∀[m<n⇒m≢o]⇒n≤o
2268
+ {-# WARNING_ON_USAGE n∸m≤∣n-m∣
2269
+ "Warning: ∀[m<n⇒m≢o]⇒o≤n was deprecated in v1.3.
2270
+ Please use ∀[m<n⇒m≢o]⇒n≤o instead."
2271
+ #-}
0 commit comments