【发布时间】:2019-02-16 21:40:34
【问题描述】:
Poly 模块中有 4 个与教会数字相关的练习:
Definition cnat := forall X : Type, (X -> X) -> X -> X.
据我所知,cnat 是一个函数,它接受一个函数 f(x),它是参数 x 并返回这个参数的值:f(x)。
然后有 4 个例子,分别代表 0、1、2 和 3 用 Church 记谱法表示。
但是如何解决呢?我知道我们必须再次应用该功能。 cnat 返回的值将作为参数。但是如何编码呢?使用递归?
Definition succ (n : cnat) : cnat
(* REPLACE THIS LINE WITH ":= _your_definition_ ." *). Admitted.
更新
我试过了:
Definition succ (n : cnat) : cnat :=
match n with
| zero => one
| X f x => X f f(x) <- ?
【问题讨论】: