File tree Expand file tree Collapse file tree 2 files changed +10
-9
lines changed Expand file tree Collapse file tree 2 files changed +10
-9
lines changed Original file line number Diff line number Diff line change @@ -369,7 +369,7 @@ lookup∘update′ {i = i} {j} i≢j xs y = lookup∘updateAt′ i j i≢j xs
369
369
-- cast
370
370
371
371
open VecCast public
372
- using (cast-is-id; cast-trans)
372
+ using (cast-is-id; cast-trans; ≈-cong′ )
373
373
374
374
subst-is-cast : (eq : m ≡ n) (xs : Vec A m) → subst (Vec A) eq xs ≡ cast eq xs
375
375
subst-is-cast refl xs = sym (cast-is-id refl xs)
@@ -381,12 +381,6 @@ cast-sym eq {xs = x ∷ xs} {ys = y ∷ ys} xxs[eq]≡yys =
381
381
let x≡y , xs[eq]≡ys = ∷-injective xxs[eq]≡yys
382
382
in cong₂ _∷_ (sym x≡y) (cast-sym (suc-injective eq) xs[eq]≡ys)
383
383
384
- ≈-cong′ : ∀ {f-len : ℕ → ℕ} (f : ∀ {n} → Vec A n → Vec B (f-len n))
385
- {m n} {xs : Vec A m} {ys : Vec A n} .{eq} → xs ≈[ eq ] ys →
386
- f xs ≈[ cong f-len eq ] f ys
387
- ≈-cong′ f {m = zero} {n = zero} {xs = []} {ys = []} refl = cast-is-id refl (f [])
388
- ≈-cong′ f {m = suc m} {n = suc n} {xs = x ∷ xs} {ys = y ∷ ys} refl = ≈-cong′ (f ∘ (x ∷_)) refl
389
-
390
384
------------------------------------------------------------------------
391
385
-- map
392
386
Original file line number Diff line number Diff line change 13
13
module Data.Vec.Relation.Binary.Equality.Cast where
14
14
15
15
open import Level using (Level)
16
+ open import Function using (_∘_)
16
17
open import Data.Nat.Base using (ℕ; zero; suc)
17
18
open import Data.Nat.Properties using (suc-injective)
18
19
open import Data.Vec.Base
@@ -25,8 +26,8 @@ open import Relation.Binary.PropositionalEquality.Properties
25
26
26
27
private
27
28
variable
28
- a : Level
29
- A : Set a
29
+ a b : Level
30
+ A B : Set a
30
31
l m n o : ℕ
31
32
xs ys zs : Vec A n
32
33
@@ -70,6 +71,12 @@ xs ≈[ eq ] ys = cast eq xs ≡ ys
70
71
zs ∎
71
72
where open ≡-Reasoning
72
73
74
+ ≈-cong′ : ∀ {f-len : ℕ → ℕ} (f : ∀ {n} → Vec A n → Vec B (f-len n))
75
+ {m n} {xs : Vec A m} {ys : Vec A n} .{eq} → xs ≈[ eq ] ys →
76
+ f xs ≈[ cong f-len eq ] f ys
77
+ ≈-cong′ f {m = zero} {n = zero} {xs = []} {ys = []} refl = cast-is-id refl (f [])
78
+ ≈-cong′ f {m = suc m} {n = suc n} {xs = x ∷ xs} {ys = y ∷ ys} refl = ≈-cong′ (f ∘ (x ∷_)) refl
79
+
73
80
------------------------------------------------------------------------
74
81
-- Reasoning combinators
75
82
You can’t perform that action at this time.
0 commit comments