Skip to content

Commit c942aaa

Browse files
2 parents 3b79d9c + a988eaf commit c942aaa

File tree

3 files changed

+30
-3
lines changed

3 files changed

+30
-3
lines changed

CHANGELOG.md

+11-1
Original file line numberDiff line numberDiff line change
@@ -389,9 +389,19 @@ Other major additions
389389
Other minor additions
390390
---------------------
391391

392+
* Added new proof to `Data.Fin.Properties`:
393+
```agda
394+
inject+-raise-splitAt : [ inject+ n , raise {n} m ] (splitAt m i) ≡ i
395+
```
396+
397+
* Added new proof to `Data.Sum.Properties`:
398+
```agda
399+
[,]-∘-distr : f ∘ [ g , h ] ≗ [ f ∘ g , f ∘ h ]
400+
```
401+
392402
* Added new proofs to `Data.Sum.Properties`:
393403
```agda
394-
[,]-map-commute : [ f′ , g′ ] ∘ (map f g) ≗ [ f′ ∘ f , g′ ∘ g ]
404+
[,]-map-commute : [ f′ , g′ ] ∘ (map f g) ≗ [ f′ ∘ f , g′ ∘ g ]
395405
map-commute : ((map f′ g′) ∘ (map f g)) ≗ map (f′ ∘ f) (g′ ∘ g)
396406
```
397407

src/Data/Fin/Properties.agda

+12-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import Data.Nat.Properties as ℕₚ
2020
open import Data.Unit using (tt)
2121
open import Data.Product using (∃; ∃₂; ∄; _×_; _,_; map; proj₁; uncurry; <_,_>)
2222
open import Data.Sum.Base using (_⊎_; inj₁; inj₂; [_,_])
23+
open import Data.Sum.Properties using ([,]-map-commute; [,]-∘-distr)
2324
open import Function.Base using (_∘_; id; _$_)
2425
open import Function.Equivalence using (_⇔_; equivalence)
2526
open import Function.Injection using (_↣_)
@@ -422,9 +423,19 @@ splitAt-inject+ (suc m) n zero = refl
422423
splitAt-inject+ (suc m) n (suc i) rewrite splitAt-inject+ m n i = refl
423424

424425
splitAt-raise : m n i splitAt m (raise {n} m i) ≡ inj₂ i
425-
splitAt-raise zero n i = refl
426+
splitAt-raise zero n i = refl
426427
splitAt-raise (suc m) n i rewrite splitAt-raise m n i = refl
427428

429+
inject+-raise-splitAt : m n i [ inject+ n , raise {n} m ] (splitAt m i) ≡ i
430+
inject+-raise-splitAt zero n i = refl
431+
inject+-raise-splitAt (suc m) n zero = refl
432+
inject+-raise-splitAt (suc m) n (suc i) = begin
433+
[ inject+ n , raise {n} (suc m) ] (splitAt (suc m) (suc i)) ≡⟨ [,]-map-commute (splitAt m i) ⟩
434+
[ suc ∘ (inject+ n) , suc ∘ (raise {n} m) ] (splitAt m i) ≡˘⟨ [,]-∘-distr {f = suc} (splitAt m i) ⟩
435+
suc ([ inject+ n , raise {n} m ] (splitAt m i)) ≡⟨ cong suc (inject+-raise-splitAt m n i) ⟩
436+
suc i ∎
437+
where open ≡-Reasoning
438+
428439

429440
------------------------------------------------------------------------
430441
-- lift

src/Data/Sum/Properties.agda

+7-1
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,15 @@ module _ (dec₁ : Decidable {A = A} {B = A} _≡_)
4444
swap-involutive : swap {A = A} {B = B} ∘ swap ≗ id
4545
swap-involutive = [ (λ _ refl) , (λ _ refl) ]
4646

47+
[,]-∘-distr : {f : A B}
48+
{g : C A} {h : D A}
49+
f ∘ [ g , h ] ≗ [ f ∘ g , f ∘ h ]
50+
[,]-∘-distr (inj₁ _) = refl
51+
[,]-∘-distr (inj₂ _) = refl
52+
4753
[,]-map-commute : {f : A B} {g : C D}
4854
{f′ : B E} {g′ : D E}
49-
[ f′ , g′ ] ∘ (map f g) ≗ [ f′ ∘ f , g′ ∘ g ]
55+
[ f′ , g′ ] ∘ (map f g) ≗ [ f′ ∘ f , g′ ∘ g ]
5056
[,]-map-commute (inj₁ _) = refl
5157
[,]-map-commute (inj₂ _) = refl
5258

0 commit comments

Comments
 (0)