Skip to content

Commit 4fe9439

Browse files
authored
Added cong and map to vec ≋ equality (#1956)
1 parent 585946a commit 4fe9439

File tree

3 files changed

+27
-0
lines changed

3 files changed

+27
-0
lines changed

CHANGELOG.md

+10
Original file line numberDiff line numberDiff line change
@@ -3080,6 +3080,16 @@ This is a full list of proofs that have changed form to use irrelevant instance
30803080
<-weakInduction-startingFrom : P i → (∀ j → P (inject₁ j) → P (suc j)) → ∀ {j} → j ≥ i → P j
30813081
```
30823082

3083+
* Added new function to `Data.Vec.Relation.Binary.Pointwise.Inductive`
3084+
```agda
3085+
cong-[_]≔ : Pointwise _∼_ xs ys → Pointwise _∼_ (xs [ i ]≔ p) (ys [ i ]≔ p)
3086+
```
3087+
3088+
* Added new function to `Data.Vec.Relation.Binary.Equality.Setoid`
3089+
```agda
3090+
map-[]≔ : map f (xs [ i ]≔ p) ≋ map f xs [ i ]≔ f p
3091+
```
3092+
30833093
* Added new function to `Data.List.Relation.Binary.Permutation.Propositional.Properties`
30843094
```agda
30853095
↭-reverse : (xs : List A) → reverse xs ↭ xs

src/Data/Vec/Relation/Binary/Equality/Setoid.agda

+7
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ module Data.Vec.Relation.Binary.Equality.Setoid
1212
{a ℓ} (S : Setoid a ℓ) where
1313

1414
open import Data.Nat.Base using (ℕ; zero; suc; _+_)
15+
open import Data.Fin using (zero; suc)
1516
open import Data.Vec.Base
1617
open import Data.Vec.Relation.Binary.Pointwise.Inductive as PW
1718
using (Pointwise)
@@ -79,6 +80,12 @@ map-++ : ∀ {b m n} {B : Set b}
7980
map-++ f [] = ≋-refl
8081
map-++ f (x ∷ xs) = refl ∷ map-++ f xs
8182

83+
map-[]≔ : {b n} {B : Set b}
84+
(f : B A) (xs : Vec B n) i p
85+
map f (xs [ i ]≔ p) ≋ map f xs [ i ]≔ f p
86+
map-[]≔ f (x ∷ xs) zero p = refl ∷ ≋-refl
87+
map-[]≔ f (x ∷ xs) (suc i) p = refl ∷ map-[]≔ f xs i p
88+
8289
------------------------------------------------------------------------
8390
-- concat
8491

src/Data/Vec/Relation/Binary/Pointwise/Inductive.agda

+10
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,16 @@ module _ {_∼_ : REL A B ℓ} where
217217
tabulate⁻ (f₀∼g₀ ∷ _) zero = f₀∼g₀
218218
tabulate⁻ (_ ∷ f∼g) (suc i) = tabulate⁻ f∼g i
219219

220+
------------------------------------------------------------------------
221+
-- cong
222+
223+
module _ {_∼_ : Rel A ℓ} (refl : Reflexive _∼_) where
224+
cong-[_]≔ : {n} i p {xs} {ys}
225+
Pointwise _∼_ {n} xs ys
226+
Pointwise _∼_ (xs [ i ]≔ p) (ys [ i ]≔ p)
227+
cong-[ zero ]≔ p (_ ∷ eqn) = refl ∷ eqn
228+
cong-[ suc i ]≔ p (x∼y ∷ eqn) = x∼y ∷ cong-[ i ]≔ p eqn
229+
220230
------------------------------------------------------------------------
221231
-- Degenerate pointwise relations
222232

0 commit comments

Comments
 (0)