10
10
11
11
{-# OPTIONS --cubical-compatible --safe #-}
12
12
13
- module Data.Vec.Relation.Binary.Equality.Cast {a} {A : Set a} where
13
+ module Data.Vec.Relation.Binary.Equality.Cast where
14
14
15
+ open import Level using (Level)
15
16
open import Data.Nat.Base using (ℕ; zero; suc)
16
17
open import Data.Nat.Properties using (suc-injective)
17
18
open import Data.Vec.Base
@@ -24,6 +25,8 @@ open import Relation.Binary.PropositionalEquality.Properties
24
25
25
26
private
26
27
variable
28
+ a : Level
29
+ A : Set a
27
30
l m n o : ℕ
28
31
xs ys zs : Vec A n
29
32
@@ -41,24 +44,25 @@ cast-trans {m = suc _} {n = suc _} {o = suc _} eq₁ eq₂ (x ∷ xs) =
41
44
42
45
infix 3 _≈[_]_
43
46
44
- _≈[_]_ : ∀ {n m} → Vec A n → .(eq : n ≡ m) → Vec A m → Set a
47
+ _≈[_]_ : ∀ {n m} → Vec A n → .(eq : n ≡ m) → Vec A m → Set _
45
48
xs ≈[ eq ] ys = cast eq xs ≡ ys
46
49
47
50
------------------------------------------------------------------------
48
51
-- _≈[_]_ is ‘reflexive’, ‘symmetric’ and ‘transitive’
49
52
50
- ≈-reflexive : ∀ {n} → _≡_ ⇒ (λ xs ys → _≈[_]_ {n} xs refl ys)
53
+ ≈-reflexive : ∀ {n} → _≡_ ⇒ (λ xs ys → _≈[_]_ {A = A} { n} xs refl ys)
51
54
≈-reflexive {x = x} eq = trans (cast-is-id refl x) eq
52
55
53
- ≈-sym : .{m≡n : m ≡ n} → Sym _≈[ m≡n ]_ _≈[ sym m≡n ]_
56
+ ≈-sym : .{m≡n : m ≡ n} → Sym {A = Vec A m} _≈[ m≡n ]_ _≈[ sym m≡n ]_
54
57
≈-sym {m≡n = m≡n} {xs} {ys} xs≈ys = begin
55
58
cast (sym m≡n) ys ≡⟨ cong (cast (sym m≡n)) xs≈ys ⟨
56
59
cast (sym m≡n) (cast m≡n xs) ≡⟨ cast-trans m≡n (sym m≡n) xs ⟩
57
60
cast (trans m≡n (sym m≡n)) xs ≡⟨ cast-is-id (trans m≡n (sym m≡n)) xs ⟩
58
61
xs ∎
59
62
where open ≡-Reasoning
60
63
61
- ≈-trans : ∀ .{m≡n : m ≡ n} .{n≡o : n ≡ o} → Trans _≈[ m≡n ]_ _≈[ n≡o ]_ _≈[ trans m≡n n≡o ]_
64
+ ≈-trans : ∀ .{m≡n : m ≡ n} .{n≡o : n ≡ o} →
65
+ Trans {A = Vec A m} _≈[ m≡n ]_ _≈[ n≡o ]_ _≈[ trans m≡n n≡o ]_
62
66
≈-trans {m≡n = m≡n} {n≡o} {xs} {ys} {zs} xs≈ys ys≈zs = begin
63
67
cast (trans m≡n n≡o) xs ≡⟨ cast-trans m≡n n≡o xs ⟨
64
68
cast n≡o (cast m≡n xs) ≡⟨ cong (cast n≡o) xs≈ys ⟩
0 commit comments