@@ -391,6 +391,68 @@ Additions to existing modules
391
391
```
392
392
393
393
* In ` Data.Fin.Properties ` :
394
+ the proof that an injection from a type ` A ` into ` Fin n ` induces a
395
+ decision procedure for ` _≡_ ` on ` A ` has been generalized to other
396
+ equivalences over ` A ` (i.e. to arbitrary setoids), and renamed from
397
+ ` eq? ` to the more descriptive ` inj⇒≟ ` and ` inj⇒decSetoid ` .
398
+
399
+ * Added new proofs in ` Data.Fin.Properties ` :
400
+ ```
401
+ 1↔⊤ : Fin 1 ↔ ⊤
402
+
403
+ 0≢1+n : zero ≢ suc i
404
+
405
+ ↑ˡ-injective : i ↑ˡ n ≡ j ↑ˡ n → i ≡ j
406
+ ↑ʳ-injective : n ↑ʳ i ≡ n ↑ʳ j → i ≡ j
407
+ finTofun-funToFin : funToFin ∘ finToFun ≗ id
408
+ funTofin-funToFun : finToFun (funToFin f) ≗ f
409
+ ^↔→ : Extensionality _ _ → Fin (m ^ n) ↔ (Fin n → Fin m)
410
+
411
+ toℕ-mono-< : i < j → toℕ i ℕ.< toℕ j
412
+ toℕ-mono-≤ : i ≤ j → toℕ i ℕ.≤ toℕ j
413
+ toℕ-cancel-≤ : toℕ i ℕ.≤ toℕ j → i ≤ j
414
+ toℕ-cancel-< : toℕ i ℕ.< toℕ j → i < j
415
+
416
+ toℕ-combine : toℕ (combine i j) ≡ k ℕ.* toℕ i ℕ.+ toℕ j
417
+ combine-injectiveˡ : combine i j ≡ combine k l → i ≡ k
418
+ combine-injectiveʳ : combine i j ≡ combine k l → j ≡ l
419
+ combine-injective : combine i j ≡ combine k l → i ≡ k × j ≡ l
420
+ combine-surjective : ∀ i → ∃₂ λ j k → combine j k ≡ i
421
+ combine-monoˡ-< : i < j → combine i k < combine j l
422
+
423
+ ℕ-ℕ≡toℕ‿ℕ- : n ℕ-ℕ i ≡ toℕ (n ℕ- i)
424
+
425
+ punchIn-mono-≤ : ∀ i (j k : Fin n) → j ≤ k → punchIn i j ≤ punchIn i k
426
+ punchIn-cancel-≤ : ∀ i (j k : Fin n) → punchIn i j ≤ punchIn i k → j ≤ k
427
+ punchOut-mono-≤ : (i≢j : i ≢ j) (i≢k : i ≢ k) → j ≤ k → punchOut i≢j ≤ punchOut i≢k
428
+ punchOut-cancel-≤ : (i≢j : i ≢ j) (i≢k : i ≢ k) → punchOut i≢j ≤ punchOut i≢k → j ≤ k
429
+
430
+ lower₁-injective : lower₁ i n≢i ≡ lower₁ j n≢j → i ≡ j
431
+ pinch-injective : suc i ≢ j → suc i ≢ k → pinch i j ≡ pinch i k → j ≡ k
432
+
433
+ i<1+i : i < suc i
434
+
435
+ injective⇒≤ : ∀ {f : Fin m → Fin n} → Injective f → m ℕ.≤ n
436
+ <⇒notInjective : ∀ {f : Fin m → Fin n} → n ℕ.< m → ¬ (Injective f)
437
+ ℕ→Fin-notInjective : ∀ (f : ℕ → Fin n) → ¬ (Injective f)
438
+ cantor-schröder-bernstein : ∀ {f : Fin m → Fin n} {g : Fin n → Fin m} → Injective f → Injective g → m ≡ n
439
+
440
+ cast-is-id : cast eq k ≡ k
441
+ subst-is-cast : subst Fin eq k ≡ cast eq k
442
+ cast-trans : cast eq₂ (cast eq₁ k) ≡ cast (trans eq₁ eq₂) k
443
+ ```
444
+
445
+ * Added new functions in ` Data.Integer.Base ` :
446
+ ```
447
+ _^_ : ℤ → ℕ → ℤ
448
+
449
+ +-0-rawGroup : Rawgroup 0ℓ 0ℓ
450
+
451
+ *-rawMagma : RawMagma 0ℓ 0ℓ
452
+ *-1-rawMonoid : RawMonoid 0ℓ 0ℓ
453
+ ```
454
+
455
+ * Added new proofs in ` Data.Integer.Properties ` :
394
456
``` agda
395
457
cast-involutive : .(eq₁ : m ≡ n) .(eq₂ : n ≡ m) → ∀ k → cast eq₁ (cast eq₂ k) ≡ k
396
458
inject!-injective : Injective _≡_ _≡_ inject!
0 commit comments