如何在定点定义Coq中创建条件
我正在阅读《软件基础》一书,并且正在研究第二章中的最后一个问题。该问题要求将自然数转换为二进制数,其中二进制数的定义方式如下:如何在定点定义Coq中创建条件,coq,coq-tactic,Coq,Coq Tactic,我正在阅读《软件基础》一书,并且正在研究第二章中的最后一个问题。该问题要求将自然数转换为二进制数,其中二进制数的定义方式如下: - [is] zero, - [is] twice a binary number, or - [is] one more than twice a binary number. 我的思考过程是,如果一个自然数是偶数,那么它可以表示为 double(nat_to_bin n) 然而,在我的定点定义中,当我试图写作时 (evenb n' = true) =
- [is] zero,
- [is] twice a binary number, or
- [is] one more than twice a binary number.
我的思考过程是,如果一个自然数是偶数,那么它可以表示为
double(nat_to_bin n)
然而,在我的定点定义中,当我试图写作时
(evenb n' = true) => double(nat_to_bin)
我得到一个错误,因为evenb n'不是nat的构造函数。有没有什么方法可以让我创建一个条件,使上面的一行成为有效的函数定义,而不改变nat的定义?不管怎样,我想出了一个解决方案。我只会写这个词
match (evenb n') with
| true => ....
不过我花了一段时间。不过,我想出了一个解决办法。我只会写这个词
match (evenb n') with
| true => ....
不过,我花了一段时间。或
如果是那样的话。。。否则…
或如果是,则。。。否则…