1
平等鉴于两个功能:为了证明功能
sumOne 0 = 0 -- I.a
sumOne m | m > 0 = sumOne (m-1) + m -- II.a
endSum m = helpSum 0 m -- I.b
where helpSum x 0 = x -- II.b
helpSum x m | m > 0 = helpSum (x+m) (m-1) -- III.b
我们必须用归纳法证明sumOne = endSum。
所以,我想:
对于n=0
sumOne 0=0 == endSum 0 = helpSum 0 0 = 0 True
假设:
sumOne m + k = helpSumm k m
诱导步骤:
-> m=m+1
helpSum k (m+1)
III.b = helpSum (k+m+1) m
,通过使用假设
= sumOne m + (m+k+1)
II.a = sumOne (m+1) + k -> True
这样好吗?或完全错误?
这可能是更适合数学网站,如果你能翻译的代码到适当的符号。 – Carcigenicate