Ниже приведено определение функциональных добавок, которое определяет добавление натурального числа в целое число. Что вызывает недоумение, так это то, что здесь, когда n совпадает с 0, добавление x2 0 дает succZ x2. Почему это не просто x2? Пожалуйста, объясни.Почему функция addops определена таким образом?
Fixpoint addpos (x2 : Z) (n : nat) {struct n} : Z :=
match n with
| O ⇒ succZ x2
| S n0 ⇒ succZ (addpos x2 n0)
end.