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 @@ -373,7 +373,7 @@ lookup∘update′ {i = i} {j} i≢j xs y = lookup∘updateAt′ i j i≢j xs
373
373
-- cast
374
374
375
375
open VecCast public
376
- using (cast-is-id; cast-trans)
376
+ using (cast-is-id; cast-trans; ≈-cong′ )
377
377
378
378
subst-is-cast : (eq : m ≡ n) (xs : Vec A m) → subst (Vec A) eq xs ≡ cast eq xs
379
379
subst-is-cast refl xs = sym (cast-is-id refl xs)
@@ -385,12 +385,6 @@ cast-sym eq {xs = x ∷ xs} {ys = y ∷ ys} xxs[eq]≡yys =
385
385
let x≡y , xs[eq]≡ys = ∷-injective xxs[eq]≡yys
386
386
in cong₂ _∷_ (sym x≡y) (cast-sym (suc-injective eq) xs[eq]≡ys)
387
387
388
- ≈-cong′ : ∀ {f-len : ℕ → ℕ} (f : ∀ {n} → Vec A n → Vec B (f-len n))
389
- {m n} {xs : Vec A m} {ys : Vec A n} .{eq} → xs ≈[ eq ] ys →
390
- f xs ≈[ cong f-len eq ] f ys
391
- ≈-cong′ f {m = zero} {n = zero} {xs = []} {ys = []} refl = cast-is-id refl (f [])
392
- ≈-cong′ f {m = suc m} {n = suc n} {xs = x ∷ xs} {ys = y ∷ ys} refl = ≈-cong′ (f ∘ (x ∷_)) refl
393
-
394
388
------------------------------------------------------------------------
395
389
-- map
396
390
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