Estou interessado em saber por que os números naturais são tão amados pelos autores de livros sobre teoria das linguagens de programação e teoria dos tipos (por exemplo, J. Mitchell, Fundações para linguagens de programação e B. Pierce, Tipos e linguagens de programação). A descrição do cálculo lambda de tipo simples e, em particular, a linguagem de programação PCF são geralmente baseadas em Nat e Bool. Para as pessoas que usam e ensinam PL industriais de uso geral, é muito mais natural tratar números inteiros do que naturais. Você pode mencionar algumas boas razões pelas quais o teórico de PL prefere os nat? Além disso, é um pouco menos complicado. Existem razões fundamentais ou é apenas uma honra a tradição?
UPD Por todos esses comentários sobre a “fundamentalidade” dos naturais: conheço bem todas essas coisas legais, mas prefiro ver um exemplo quando é realmente vital ter essas propriedades na teoria de tipos da teoria de PL. Por exemplo, indução amplamente mencionada. Quando temos qualquer tipo de lógica (que simplesmente digita LC é), como lógica básica de primeira ordem, usamos realmente a indução - mas a indução na árvore de derivação (que também temos no lambda).
Minha pergunta vem basicamente de pessoas da indústria, que querem ganhar alguma teoria fundamental das linguagens de programação. Eles costumavam ter números inteiros em seus programas e sem argumentos e aplicações concretas à teoria que está sendo estudada (teoria dos tipos no nosso caso). Por que estudar linguagens apenas com nat, elas se sentem bastante decepcionadas.