4
(x, y)
のタイプをx /= y
に設定したいと考えています。(x/y)のペア(x/y)のタイプ
私の考えはNEqPa : Type -> Type
は、このようなNEqPa a
はx : a
、y : a
とp : (x = y) -> Void
を持つすべての要素を((x,y), p)
含めるべきであると定義することです。私は次の2つのバージョンを試しました:
NEqPa a = ((x, y) : (a, a) ** (x = y) -> Void)
NEqPa a = ((x : a, y : a) ** (x = y) -> Void)
どちらも文法的に間違っているようですが、私はそれらを修正する方法がありません。
[EDIT]私は解決策を見つけた:
NEqPa a = (p : (a, a) ** (fst p = snd p) -> Void)
は、合理的なこのアプローチですか?
ありがとう。 Idrisの構文について詳細に学びたいと思ったら、あなたがお勧めできるソースはありますか?言語レポートはまだありません。 – fweth