Меня интересует, почему натуральные числа так любимы авторами книг по теории языков программирования и теории типов (например, Дж. Митчелл, Основы языков программирования и Б. Пирс, Типы и языки программирования). Описание простейшего лямбда-исчисления и, в частности, языка программирования PCF обычно основано на принципах Ната и Була. Для людей, использующих и обучающих промышленным PL общего назначения, гораздо более естественно рассматривать целые числа, а не натуральные. Можете ли вы назвать несколько веских причин, почему теоретик ЛП предпочитает нац? Кроме того, это немного менее сложно. Есть ли фундаментальные причины или это просто честь традиции?
UPD Для всех этих комментариев об «фундаментальности» натуралов: я хорошо осведомлен обо всех этих классных вещах, но я бы предпочел увидеть пример, когда действительно важно иметь эти свойства в теории типов теории PL. Например, широко упоминается индукция. Когда у нас есть какая-либо логика (которая просто типизирована как LC), как и базовая логика первого порядка, мы действительно используем индукцию - но индукцию по дереву деривации (которое мы также имеем в лямбде)
Мой вопрос в основном исходит от людей из промышленности, которые хотят получить фундаментальную теорию языков программирования. Раньше у них были целые числа в своих программах, и без конкретных аргументов и приложений к изучаемой теории (в нашем случае, к теории типов), почему для изучения языков только с натами они чувствуют себя довольно разочарованными.