【发布时间】:2021-08-12 08:53:52
【问题描述】:
我已经编写了这个归纳谓词及其(强)规范的部分证明:
Inductive SumPairs : (nat*nat) -> list (nat*nat) -> Prop :=
| sp_base : SumPairs (0,0) nil
| sp_step : forall (l0:list (nat*nat)) (n0 n1: nat) (y:(nat*nat)), SumPairs (n0,n1) l0 -> SumPairs ((n0+(fst y)),(n1+(snd y))) (cons y l0).
Theorem sumPairs_correct : forall (l:list (nat*nat)), { n: nat | SumPairs (n,n) l }.
Proof.
...
问题是我不认为这个定理是正确的,因为 Coq 不接受像 {n0 n1: nat | ...} 这样的东西。有没有办法解决这个问题还是我想错了?
我认为谓词SumPairs 是正确的,但由于我不确定,下面是它应该如何工作的示例:输入[(1,2),(3,4)],预期输出[3,7]
【问题讨论】:
-
嗨,克里斯。你不希望,作为“输出”,[(4,6)]?