Agda si avvale dei seguenti all'operatore di mostrare inverse tra le serie:fa Idris ha un equivalente di Agda ↔
_↔_ : ∀ {f t} → Set f → Set t → Set _
Esiste un equivalente in Idris? Sto cercando di definire l'uguaglianza borsa sulle liste
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
In modo che possiamo costruire l1 ~~ l2
quando l1
e l2
hanno gli stessi elementi in qualsiasi ordine.
Il Agda definition of ↔
sembra essere molto complicato e non sono sicuro se c'è qualcosa di equivalente nella libreria standard di Idris.
Se non si intende utilizzare setoid, è possibile utilizzare effettivamente [definizione molto più semplice] (https://gist.github.com/vituscze/74a9a440471f4627c6af). – Vitus