Setoid関数が 2 つの sを要求する方法はありますか?最初のSetoid同等性が後者の同等性を意味しますか? もちろん、これには両方Setoidの がそれらを共有する必要があり、 CarrierandCarrierはパラメーターではなく、代わりにレコード フィールドです。単純に等価性を要求しようとするとCarrier、型チェッカーによって拒否されます。
f : {S₁ S₂ : Setoid _ _} → Setoid.Carrier S₁ ≡ Setoid.Carrier S₂ →
({x y : Setoid.Carrier S₁} → Setoid._≈_ S₁ x y → Setoid._≈_ S₂ x y ) → ...
等式証明でパターン マッチを行わないため、これは機能しません。そのため、さまざまなCarrier型が統一されません。を使用してこれを表現する方法が見つかりませんでしたsubst。