4
我是Coq的新手,對於破壞策略有個疑問。假設我有一個count
功能纔是最重要的自然數列表的給定的自然數中出現的次數:破壞應用謂詞函數的結果
Fixpoint count (v : nat) (xs : natlist) : nat :=
match xs with
| nil => 0
| h :: t =>
match beq_nat h v with
| true => 1 + count v xs
| false => count v xs
end
end.
我想證明下面的定理:
Theorem count_cons : forall (n y : nat) (xs : natlist),
count n (y :: xs) = count n xs + count n [y].
如果我證明了n = 0的類似定理,我可以簡單地將y破壞爲0或S y'。對於一般情況,我想要做的是破壞(beq_nat n y)爲真或假,但我似乎無法讓它起作用 - 我錯過了一些Coq語法。
任何想法?
啊,很好 - 第一個錯誤是輸入堆棧溢出時輸入錯誤。我認爲關於破壞(beq_nat n y)與破壞(beq_nat y n)不一樣的第二點是我的掛斷。謝謝! – 2011-12-27 17:03:03