问题是我们如何在agda中定义双射? 定义:
我们知道
2 + 2 = 2 × 2 = 2^2 = 4
表示数字。同样,我们有
Bool + Bool ∼= Bool × Bool ∼= Bool → Bool
其中A~ = B表示A和B之间存在双射,即 每个都有
f : A → B
和g : B → A
的倒数 其他,即所有g (f x) = x
和x : A
的{{1}} 所有f (g y) = y
。在Agda中实施这些双射!
所以我首先定义y : B
及其中的一些函数:
Bool
但我坚持使用双眼,根本不确定如何解决它。
答案 0 :(得分:1)
考试的文字也说明了双射应该是什么。
f : A → B
和g : B → A
彼此相反, 也就是说,所有g (f x) = x
的{{1}}和所有x : A
的{{1}}
在Agda中,您可以定义一个记录来打包所有内容:
f (g y) = y
您应该自己实施的实际投射。