在Agda中定义双射

时间:2016-10-18 13:06:52

标签: boolean agda bijection

问题是我们如何在agda中定义双射? 定义:

  

我们知道

2 + 2 = 2 × 2 = 2^2 = 4
     

表示数字。同样,我们有

Bool + Bool ∼= Bool × Bool ∼= Bool → Bool
     

其中A~ = B表示A和B之间存在双射,即   每个都有f : A → Bg : B → A的倒数   其他,即所有g (f x) = xx : A的{​​{1}}   所有f (g y) = y

     

在Agda中实施这些双射!

所以我首先定义y : B及其中的一些函数:

Bool

但我坚持使用双眼,根本不确定如何解决它。

1 个答案:

答案 0 :(得分:1)

考试的文字也说明了双射应该是什么。

  

f : A → Bg : B → A彼此相反,   也就是说,所有g (f x) = x的{​​{1}}和所有x : A的{​​{1}}

在Agda中,您可以定义一个记录来打包所有内容:

f (g y) = y

您应该自己实施的实际投射。

相关问题