@@ -21,7 +21,7 @@ open import Data.Product.Base as Prod
21
21
open import Data.Sum.Base using ([_,_]′)
22
22
open import Data.Sum.Properties using ([,]-map)
23
23
open import Data.Vec.Base
24
- open import Data.Vec.Relation.Binary.Equality.Cast as CastReasoning renaming (begin_ to begin′_; _∎ to _∎′)
24
+ import Data.Vec.Relation.Binary.Equality.Cast as CastReasoning
25
25
open import Function.Base
26
26
-- open import Function.Inverse using (_↔_; inverse)
27
27
open import Function.Bundles using (_↔_; mk↔′)
@@ -1022,14 +1022,15 @@ map-reverse f (x ∷ xs) = begin
1022
1022
1023
1023
reverse-++ : ∀ .(eq : m + n ≡ n + m) (xs : Vec A m) (ys : Vec A n) →
1024
1024
cast eq (reverse (xs ++ ys)) ≡ reverse ys ++ reverse xs
1025
- reverse-++ {m = zero} {n = n} eq [] ys = ≈-sym (++-identityʳ (sym eq) (reverse ys))
1025
+ reverse-++ {m = zero} {n = n} eq [] ys = CastReasoning. ≈-sym (++-identityʳ (sym eq) (reverse ys))
1026
1026
reverse-++ {m = suc m} {n = n} eq (x ∷ xs) ys = begin′
1027
1027
reverse (x ∷ xs ++ ys) ≂⟨ reverse-∷ x (xs ++ ys) ⟩
1028
1028
reverse (xs ++ ys) ∷ʳ x ≈⟨ cast-∷ʳ (cong suc (+-comm m n)) x (reverse (xs ++ ys))
1029
1029
≈cong[ (_∷ʳ x) ] reverse-++ _ xs ys ⟩
1030
1030
(reverse ys ++ reverse xs) ∷ʳ x ≈⟨ ++-∷ʳ (sym (+-suc n m)) x (reverse ys) (reverse xs) ⟩
1031
1031
reverse ys ++ (reverse xs ∷ʳ x) ≂˘⟨ cong (reverse ys ++_) (reverse-∷ x xs) ⟩
1032
1032
reverse ys ++ (reverse (x ∷ xs)) ∎′
1033
+ where open CastReasoning renaming (begin_ to begin′_; _∎ to _∎′)
1033
1034
1034
1035
cast-reverse : ∀ .(eq : m ≡ n) → cast eq ∘ reverse {A = A} {n = m} ≗ reverse ∘ cast eq
1035
1036
cast-reverse {n = zero} eq [] = refl
@@ -1040,6 +1041,7 @@ cast-reverse {n = suc n} eq (x ∷ xs) = begin′
1040
1041
reverse (cast _ xs) ∷ʳ x ≂˘⟨ reverse-∷ x (cast (cong pred eq) xs) ⟩
1041
1042
reverse (x ∷ cast _ xs) ≈⟨⟩
1042
1043
reverse (cast eq (x ∷ xs)) ∎′
1044
+ where open CastReasoning renaming (begin_ to begin′_; _∎ to _∎′)
1043
1045
1044
1046
------------------------------------------------------------------------
1045
1047
-- _ʳ++_
@@ -1076,6 +1078,7 @@ map-ʳ++ {ys = ys} f xs = begin
1076
1078
(reverse xs ∷ʳ a) ++ ys ≈⟨ ∷ʳ-++ eq a (reverse xs) ⟩
1077
1079
reverse xs ++ (a ∷ ys) ≂˘⟨ unfold-ʳ++ xs (a ∷ ys) ⟩
1078
1080
xs ʳ++ (a ∷ ys) ∎′
1081
+ where open CastReasoning renaming (begin_ to begin′_; _∎ to _∎′)
1079
1082
1080
1083
++-ʳ++ : ∀ .(eq : m + n + o ≡ n + (m + o)) (xs : Vec A m) {ys : Vec A n} {zs : Vec A o} →
1081
1084
cast eq ((xs ++ ys) ʳ++ zs) ≡ ys ʳ++ (xs ʳ++ zs)
@@ -1087,6 +1090,7 @@ map-ʳ++ {ys = ys} f xs = begin
1087
1090
reverse ys ++ (reverse xs ++ zs) ≂˘⟨ cong (reverse ys ++_) (unfold-ʳ++ xs zs) ⟩
1088
1091
reverse ys ++ (xs ʳ++ zs) ≂˘⟨ unfold-ʳ++ ys (xs ʳ++ zs) ⟩
1089
1092
ys ʳ++ (xs ʳ++ zs) ∎′
1093
+ where open CastReasoning renaming (begin_ to begin′_; _∎ to _∎′)
1090
1094
1091
1095
ʳ++-ʳ++ : ∀ .(eq : (m + n) + o ≡ n + (m + o)) (xs : Vec A m) {ys : Vec A n} {zs} →
1092
1096
cast eq ((xs ʳ++ ys) ʳ++ zs) ≡ ys ʳ++ (xs ++ zs)
@@ -1099,6 +1103,7 @@ map-ʳ++ {ys = ys} f xs = begin
1099
1103
(reverse ys ++ xs) ++ zs ≈⟨ ++-assoc (+-assoc n m o) (reverse ys) xs zs ⟩
1100
1104
reverse ys ++ (xs ++ zs) ≂˘⟨ unfold-ʳ++ ys (xs ++ zs) ⟩
1101
1105
ys ʳ++ (xs ++ zs) ∎′
1106
+ where open CastReasoning renaming (begin_ to begin′_; _∎ to _∎′)
1102
1107
1103
1108
------------------------------------------------------------------------
1104
1109
-- sum
@@ -1286,6 +1291,7 @@ fromList-reverse (x List.∷ xs) = begin′
1286
1291
reverse (fromList xs) ∷ʳ x ≂˘⟨ reverse-∷ x (fromList xs) ⟩
1287
1292
reverse (x ∷ fromList xs) ≈⟨⟩
1288
1293
reverse (fromList (x List.∷ xs)) ∎′
1294
+ where open CastReasoning renaming (begin_ to begin′_; _∎ to _∎′)
1289
1295
1290
1296
------------------------------------------------------------------------
1291
1297
-- DEPRECATED NAMES
0 commit comments