Agda korzysta z następujących operatora pokazać odwrotności między seriami:Does Idris miał odpowiednik Agda za ↔
_↔_ : ∀ {f t} → Set f → Set t → Set _
Czy istnieje odpowiednik w Idris? Próbuję zdefiniować równość torbę na listach
data Elem : a -> List a -> Type where
Here : {xs : List a} -> Elem x (x :: xs)
There : {xs : List a} -> Elem x xs -> Elem x (y :: xs)
(~~) : List a -> List a -> Type
xs ~~ ys {a} = Elem a xs <-> Elem a ys
Tak, że możemy skonstruować l1 ~~ l2
gdy l1
i l2
mają te same elementy w dowolnej kolejności.
Wydaje się, że Agda definition of ↔
jest bardzo skomplikowany i nie jestem pewien, czy istnieje odpowiednik w standardowej bibliotece Idris.
Jeśli nie planujesz korzystać z setów, możesz użyć [znacznie prostszej definicji] (https://gist.github.com/vituscze/74a9a440471f4627c6af). – Vitus