AbstractDataType - Nat

时间:2014-02-23 19:56:55

标签: abstract-data-type

我在这里得到了这个抽象模型,并尝试理解它是如何工作的,但无法弄明白。

type: NAT

构造

null: → NAT 
succ: NAT → NAT 

运算符

add: NAT×NAT→ NAT

公理 x,y:NAT

add(X, null) = X
add(X, succ(Y)) = succ(add(X, Y))

问题在于添加。我试着把一些数字放进去但......它是如何工作的? -

add(2,succ(3))= succ(add(2,3))...现在?我只想要2 + 3 = 5

1 个答案:

答案 0 :(得分:1)

NAT是一组自然数和'+',而succ是successor function(通常与Peano公理有关)

2 + 3的示例计算如下:

add(2,3) = succ(add(2,2))
         = succ(succ(add(2,1))) 
         = succ(succ(succ(add(2,0))))
         = succ(succ(succ(2)))
         = succ(succ(3))
         = succ(4)
         = 5