@@ -1,8 +1,8 @@
11module Control.Isomorphism.Vect
22
3−import Interfaces.Verified
43import Control.Isomorphism
54import Data.Vect
5+import Interfaces.Verified
66
77%default total
88%access public export
@@ -31,15 +31,6 @@ splitPair {n} {m} = MkIso (splitAt n) (uncurry (++)) toFrom fromTo
3131 toFrom (ns, ms) = trans (splitAtTakeDrop n (ns ++ ms)) $ pairify (takePrefix ns ms) (dropPrefix ns ms)
3232 fromTo xs = rewrite splitAtTakeDrop {m=m} n xs in takeDropConcat n xs
3333
34−vectLiftIso : Iso l r -> Iso (Vect n l) (Vect n r)
35−vectLiftIso (MkIso to from toFrom fromTo) = MkIso (map to) (map from) toFrom' fromTo'
36− where toFrom' : {n : Nat} -> (rs : Vect n r) -> map to (map from rs) = rs
37− toFrom' [] = Refl
38− toFrom' (x :: xs) = rewrite toFrom x in rewrite toFrom' xs in Refl
39− fromTo' : {n : Nat} -> (ls : Vect n l) -> map from (map to ls) = ls
40− fromTo' [] = Refl
41− fromTo' (x :: xs) = rewrite fromTo x in rewrite fromTo' xs in Refl
42−
4334zipped : Iso (Vect n a, Vect n b) (Vect n (a, b))
4435zipped = MkIso (uncurry zip) unzip toFrom (\(as, bs) => fromTo as bs)
4536 where toFrom : {n : Nat} -> (xs : Vect n (a, b)) -> uncurry Vect.zip (unzip xs) = xs