Interesuje mnie, dlaczego autorzy książek na temat teorii języków programowania i teorii typów tak uwielbiają liczby naturalne (np. J. Mitchell, Podstawy języków programowania i B. Pierce, Typy i języki programowania). Opis prostego rachunku różniczkowego lambda, a zwłaszcza języka programowania PCF, jest zwykle oparty na języku Nat i Bool. Dla osób używających i uczących PL przemysłowych ogólnego przeznaczenia o wiele bardziej naturalne jest traktowanie liczb całkowitych zamiast naturalnych. Czy możesz podać kilka dobrych powodów, dla których teoretyk PL preferuje nat? Poza tym jest to trochę mniej skomplikowane. Czy są jakieś fundamentalne powody, czy to tylko zaszczyt tradycji?
UPD Dla tych wszystkich komentarzy na temat „fundamentalności” naturałów: Jestem całkiem świadomy tych wszystkich fajnych rzeczy, ale wolałbym zobaczyć przykład, kiedy naprawdę istotne jest posiadanie tych właściwości w teorii typów teorii PL. Np. Szeroko wspomniana indukcja. Kiedy mamy jakąkolwiek logikę (którą po prostu wpisujemy LC), jak podstawową logikę pierwszego rzędu, naprawdę używamy indukcji - ale indukcji na drzewie pochodnym (które mamy również w lambda).
Moje pytanie w zasadzie pochodzi od ludzi z branży, którzy chcą zdobyć podstawową teorię języków programowania. Kiedyś mieli w swoich programach liczby całkowite i bez konkretnych argumentów i zastosowań do badanej teorii (teoria typów w naszym przypadku), dlaczego uczyć się języków tylko z nat, czują się dość rozczarowani.