【发布时间】:2015-07-23 16:45:54
【问题描述】:
我是 Coq 的新用户。我已经定义了一些函数:
Definition p (a : nat) := (a + 1, a + 2, a + 3).
Definition q :=
let (s, r, t) := p 1 in
s + r + t.
Definition q' :=
match p 1 with
| (s, r, t) => s + r + t
end.
我正在尝试将 p 的结果破坏为元组表示。然而coqc抱怨q:
Error: Destructing let on this type expects 2 variables.
while q' 可以通过编译。如果我将 p 更改为返回一对 (a + 1, a + 2),则相应的 q 和 q' 都可以正常工作。
为什么 let-destruct 只允许对?还是我在语法上有任何错误?我检查了 Coq 手册,但没有发现任何线索。
谢谢!
【问题讨论】:
标签: coq