Skip to content

Commit fc26114

Browse files
authored
Add properties relating upTo/downFrom and map (#2590)
1 parent c562cd8 commit fc26114

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

CHANGELOG.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ Deprecated names
3232
_∤∤_ ↦ _∦_
3333
```
3434

35-
* In `Algebra.Module.Consequences
35+
* In `Algebra.Module.Consequences`
3636
```agda
3737
*ₗ-assoc+comm⇒*ᵣ-assoc ↦ *ₗ-assoc∧comm⇒*ᵣ-assoc
3838
*ₗ-assoc+comm⇒*ₗ-*ᵣ-assoc ↦ *ₗ-assoc∧comm⇒*ₗ-*ᵣ-assoc
@@ -126,3 +126,10 @@ Additions to existing modules
126126
quasiring : Quasiring c ℓ → Quasiring (a ⊔ c) (a ⊔ ℓ)
127127
commutativeRing : CommutativeRing c ℓ → CommutativeRing (a ⊔ c) (a ⊔ ℓ)
128128
```
129+
* In `Data.List.Properties`:
130+
```agda
131+
map-applyUpTo : ∀ (f : ℕ → A) (g : A → B) n → map g (applyUpTo f n) ≡ applyUpTo (g ∘ f) n
132+
map-applyDownFrom : ∀ (f : ℕ → A) (g : A → B) n → map g (applyDownFrom f n) ≡ applyDownFrom (g ∘ f) n
133+
map-upTo : ∀ (f : ℕ → A) n → map f (upTo n) ≡ applyUpTo f n
134+
map-downFrom : ∀ (f : ℕ → A) n → map f (downFrom n) ≡ applyDownFrom f n
135+
```

src/Data/List/Properties.agda

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -842,6 +842,10 @@ applyUpTo-∷ʳ : ∀ (f : ℕ → A) n → applyUpTo f n ∷ʳ f n ≡ applyUpT
842842
applyUpTo-∷ʳ f zero = refl
843843
applyUpTo-∷ʳ f (suc n) = cong (f 0 ∷_) (applyUpTo-∷ʳ (f ∘ suc) n)
844844

845+
map-applyUpTo : (f : A) (g : A B) n map g (applyUpTo f n) ≡ applyUpTo (g ∘ f) n
846+
map-applyUpTo f g zero = refl
847+
map-applyUpTo f g (suc n) = cong (g (f 0) ∷_) (map-applyUpTo (f ∘ suc) g n)
848+
845849
------------------------------------------------------------------------
846850
-- applyDownFrom
847851

@@ -859,6 +863,10 @@ module _ (f : ℕ → A) where
859863
applyDownFrom-∷ʳ zero = refl
860864
applyDownFrom-∷ʳ (suc n) = cong (f (suc n) ∷_) (applyDownFrom-∷ʳ n)
861865

866+
map-applyDownFrom : (g : A B) n map g (applyDownFrom f n) ≡ applyDownFrom (g ∘ f) n
867+
map-applyDownFrom g zero = refl
868+
map-applyDownFrom g (suc n) = cong (g (f n) ∷_) (map-applyDownFrom g n)
869+
862870
------------------------------------------------------------------------
863871
-- upTo
864872

@@ -871,6 +879,9 @@ lookup-upTo = lookup-applyUpTo id
871879
upTo-∷ʳ : n upTo n ∷ʳ n ≡ upTo (suc n)
872880
upTo-∷ʳ = applyUpTo-∷ʳ id
873881

882+
map-upTo : (f : A) n map f (upTo n) ≡ applyUpTo f n
883+
map-upTo = map-applyUpTo id
884+
874885
------------------------------------------------------------------------
875886
-- downFrom
876887

@@ -883,6 +894,9 @@ lookup-downFrom = lookup-applyDownFrom id
883894
downFrom-∷ʳ : n applyDownFrom suc n ∷ʳ 0 ≡ downFrom (suc n)
884895
downFrom-∷ʳ = applyDownFrom-∷ʳ id
885896

897+
map-downFrom : (f : A) n map f (downFrom n) ≡ applyDownFrom f n
898+
map-downFrom = map-applyDownFrom id
899+
886900
------------------------------------------------------------------------
887901
-- tabulate
888902

0 commit comments

Comments
 (0)