@@ -72,11 +72,11 @@ Bug-fixes
72
72
Non-backwards compatible changes
73
73
--------------------------------
74
74
75
- * The function ` gcd ` in ` Data.Nat.GCD ` has been reimplemented so it is much
76
- faster when compiled. The function ` gcd ` now has type ` ℕ → ℕ → ℕ ` . The old
77
- function of type ` (m n : ℕ) → ∃ λ d → GCD m n d ` has been renamed ` mkGCD ` ,
78
- and ` gcd′ ` in ` Data.Nat.Coprimality ` has been renamed ` mkGCD′ ` . All other
79
- functionality is untouched.
75
+ * The functions ` gcd ` and ` lcm ` in ` Data.Nat.GCD/LCM ` have been reimplemented
76
+ so that they run much faster when compiled. The functions now have type ` ℕ → ℕ → ℕ ` .
77
+ The old functions of type ` (m n : ℕ) → ∃ λ d → GCD/LCM m n d ` has been renamed
78
+ ` mkGCD ` / ` mkLCM ` , and ` gcd′ ` in ` Data.Nat.Coprimality ` has been deprecated . All
79
+ other functionality is untouched.
80
80
81
81
* The module ` IsDistributiveLattice ` in ` Algebra.Structures ` has had its field
82
82
renamed from ` ∨-∧-distribʳ ` to ` ∨-distribʳ-∧ ` in order to match the conventions
@@ -285,6 +285,17 @@ been attached to all deprecated names.
285
285
/-cong ↦ *-cancelˡ-∣
286
286
```
287
287
288
+ * In ` Data.Nat.DivMod ` :
289
+ ``` agda
290
+ a≡a%n+[a/n]*n ↦ m≡m%n+[m/n]*n
291
+ a%1≡0 ↦ n%1≡0
292
+ a%n%n≡a%n ↦ m%n%n≡m%n
293
+ [a+n]%n≡a%n ↦ [m+n]%n≡m%n
294
+ [a+kn]%n≡a%n ↦ [m+kn]%n≡m%n
295
+ kn%n≡0 ↦ m*n%n≡0
296
+ a%n<n ↦ m%n<n
297
+ ```
298
+
288
299
* In ` Data.Nat.Properties ` :
289
300
``` agda
290
301
m≢0⇒suc[pred[m]]≡m ↦ suc[pred[n]]≡n
@@ -617,20 +628,19 @@ Other minor additions
617
628
_>>=_ : Maybe A → (A → Maybe B) → Maybe B
618
629
```
619
630
620
- * Added new proofs to ` Data.Nat.GCD ` :
621
- ``` agda
622
- gcd-comm : gcd m n ≡ gcd n m
623
- gcd[m,n]∣m : gcd m n ∣ m
624
- gcd[m,n]∣n : gcd m n ∣ n
625
- gcd-greatest : c ∣ m → c ∣ n → c ∣ gcd m n
626
- gcd≢0 : m ≢ 0 ⊎ n ≢ 0 → gcd m n ≢ 0
627
- ```
628
-
629
631
* Added new proofs to ` Data.Nat.Divisibility ` :
630
632
``` agda
631
- ∣m∸n∣n⇒∣m : n ≤ m → i ∣ m ∸ n → i ∣ n → i ∣ m
632
- ∣n∣m%n⇒∣m : d ∣ n → d ∣ (m % n) → d ∣ m
633
- %-presˡ-∣ : d ∣ m → d ∣ n → d ∣ (m % n)
633
+ ∣m∸n∣n⇒∣m : n ≤ m → i ∣ m ∸ n → i ∣ n → i ∣ m
634
+ ∣n∣m%n⇒∣m : d ∣ n → d ∣ (m % n) → d ∣ m
635
+ *-monoˡ-∣ : i ∣ j → i * k ∣ j * k
636
+ %-presˡ-∣ : d ∣ m → d ∣ n → d ∣ (m % n)
637
+ m/n∣m : n ∣ m → m / n ∣ m
638
+ m*n∣o⇒m∣o/n : m * n ∣ o → m ∣ o / n
639
+ m*n∣o⇒n∣o/m : m * n ∣ o → n ∣ o / m
640
+ m∣n/o⇒m*o∣n : o ∣ n → m ∣ n / o → m * o ∣ n
641
+ m∣n/o⇒o*m∣n : o ∣ n → m ∣ n / o → o * m ∣ n
642
+ m/n∣o⇒m∣o*n : n ∣ m → m / n ∣ o → m ∣ o * n
643
+ m∣n*o⇒m/n∣o : n ∣ m → m ∣ o * n → m / n ∣ o
634
644
```
635
645
636
646
* Added new operator and proofs to ` Data.Nat.DivMod ` :
@@ -643,13 +653,14 @@ Other minor additions
643
653
%-remove-+ʳ : d ∣ n → (m + n) % d ≡ m % d
644
654
%-pred-≡0 : suc m % n ≡ 0 → m % n ≡ n ∸ 1
645
655
m<[1+n%d]⇒m≤[n%d] : m < suc n % d → m ≤ n % d
646
- [1+a%n ]≤1+m⇒[a%n]≤m : 0 < suc n % d → suc n % d ≤ suc m → n % d ≤ m
656
+ [1+m%d ]≤1+n⇒[m%d]≤n : 0 < suc m % d → suc m % d ≤ suc n → m % d ≤ n
647
657
648
658
0/n≡0 : 0 / n ≡ 0
649
- n/1≡a : n / 1 ≡ n
659
+ n/1≡n : n / 1 ≡ n
650
660
n/n≡1 : n / n ≡ 1
651
661
m*n/n≡m : m * n / n ≡ m
652
662
m/n*n≡m : n ∣ m → m / n * n ≡ m
663
+ m*[n/m]≡n : m ∣ n → m * (n / m) ≡ n
653
664
m/n*n≤m : m / n * n ≤ m
654
665
m/n<m : m ≥ 1 → n ≥ 2 → m / n < m
655
666
*-/-assoc : d ∣ n → (m * n) / d ≡ m * (n / d)
@@ -661,6 +672,30 @@ Other minor additions
661
672
division and modulus functions has been marked irrelevant. This means
662
673
that the operations ` _%_ ` , ` _/_ ` etc. can now be used with ` cong ` .
663
674
675
+ * Added new proofs to ` Data.Nat.GCD ` :
676
+ ``` agda
677
+ gcd[m,n]∣m : gcd m n ∣ m
678
+ gcd[m,n]∣n : gcd m n ∣ n
679
+ gcd-greatest : c ∣ m → c ∣ n → c ∣ gcd m n
680
+ gcd[0,0]≡0 : gcd 0 0 ≡ 0
681
+ gcd[m,n]≢0 : m ≢ 0 ⊎ n ≢ 0 → gcd m n ≢ 0
682
+ gcd-comm : gcd m n ≡ gcd n m
683
+ gcd-universality : (∀ {d} → d ∣ m × d ∣ n → d ∣ g) → (∀ {d} → d ∣ g → d ∣ m × d ∣ n) → g ≡ gcd m n
684
+ gcd[cm,cn]/c≡gcd[m,n] : gcd (c * m) (c * n) / c ≡ gcd m n
685
+ c*gcd[m,n]≡gcd[cm,cn] : c * gcd m n ≡ gcd (c * m) (c * n)
686
+ ```
687
+
688
+ * Added new proofs to ` Data.Nat.LCM ` :
689
+ ``` agda
690
+ m∣lcm[m,n] : m ∣ lcm m n
691
+ n∣lcm[m,n] : n ∣ lcm m n
692
+ lcm-least : m ∣ c → n ∣ c → lcm m n ∣ c
693
+ lcm[0,n]≡0 : lcm 0 n ≡ 0
694
+ lcm[n,0]≡0 : lcm n 0 ≡ 0
695
+ lcm-comm : lcm m n ≡ lcm n m
696
+ gcd*lcm : gcd m n * lcm m n ≡ m * n
697
+ ```
698
+
664
699
* Added new proofs to ` Data.Nat.Properties ` :
665
700
``` agda
666
701
≤-<-connex : Connex _≤_ _<_
0 commit comments