Чому неможливо оголосити принцип індукції для церковних цифр


17

Уявіть, ми визначали натуральні числа в залежно набраному лямбдальному обчисленні як церковні цифри. Вони можуть бути визначені наступним чином:

SimpleNat = (R : Set) → R → (R → R) → R

zero : SimpleNat
zero = λ R z _ → z

suc : SimpleNat → SimpleNat
suc sn = λ R z s → s (sn R z s)

SimpleNatRec : (R : Set) → R → (R → R) → SimpleNat → R
SimpleNatRec R z s sn = sn R z s

Однак, схоже, що ми не можемо визначити церковні цифри за таким типом принципу індукції:

NatInd : (C : Nat -> Set) -> (C zero) -> ((n : Nat) -> C n -> C (suc n)) -> (n : Nat) -> (C n)

Чому так? Як я можу це довести? Здається, проблема полягає у визначенні типу для Nat, який стає рекурсивним. Чи можна змінити обчислення лямбда, щоб дозволити це?

Відповіді:


20

Питання, яке ви задаєте, цікаве і відоме. Ви використовуєте так зване непередбачуване кодування натуральних чисел. Дозвольте мені пояснити трохи тло.

Враховуючи конструктор типу , нас може зацікавити "мінімальний" тип A, що задовольняє A T ( A ) . З точки зору теорії категорій Т є функтором, а А - початковою Т -алгеброю. Наприклад, якщо T ( X ) = 1 + X, то A відповідає натуральним числам. Якщо T ( X ) = 1 +Т:ТуpеТуpеААТ(А)ТАТТ(Х)=1+ХА то A - тип кінцевих бінарних дерев.Т(Х)=1+Х×ХА

Ідея з тривалою історією є те , що початкова - алгебра є тип : = Π Х : Т у р е ( Т ( Х ) Х ) Х . (Ви використовуєте позначення Agda для залежних продуктів, але я використовую більш традиційні математичні позначення.) Чому це має бути? Ну, A по суті кодує принцип рекурсії для початкової Т- алгебри: дається будь-яка Т -алгебра Y зі структурним морфізмом f : T ( YТ

А:=Х:Туpе(Т(Х)Х)Х.
АТТY , отримаємо гомоморфізм алгебри ϕ : A Y від ϕ ( a ) = af:Т(Y)Yϕ:АY Таким чиномми бачимощоєслабопочатковим точно. Щоб це було початковим, ми повинні знати, що ϕ також унікальний. Це неправда без подальших припущень, але деталі технічні та неприємні та вимагають ознайомлення з деяким довідковим матеріалом. Наприклад, якщо ми можемо показати задовільнутеорему параметричності, то ми виграємо, але є й інші методи (наприклад, масаж визначення А та припущення K -аксіоми та розширення функції).
ϕ(а)=аYf.
АϕАК

Застосуємо сказане до : N a t = X : T y p e ( ( 1 + X ) X ) X = X : T y p e ( X × ( X X ) ) X = X : T y p eТ(Х)=1+Х У нас є церковні цифри! І тепер ми також розуміємо, що отримаємо принцип рекурсії безкоштовно, тому що церковні цифриєпринципом рекурсії для чисел, але ми не отримаємо індукцію без параметричності чи подібного пристрою.

Nат=Х:Туpе((1+Х)Х)Х=Х:Туpе(Х×(ХХ))Х=Х:ТуpеХ(ХХ)Х.

Технічна відповідь на ваше запитання така: існують моделі теорії типів, в яких тип SimpleNatмістить екзотичні елементи, які не відповідають цифрам, і, крім того, ці елементи порушують принцип індукції. Тип SimpleNatу цих моделей занадто великий і є лише слабкою початковою алгеброю.


8
Я погоджуюсь, що відповідь чудова, але тут можуть бути корисні декілька посилань: стаття Джиуверса про нерозбірливість індукції та праця Ніла К і Дерека Дрейєра про отримання (деякої) індукції від параметричності . Мені невідомий документ, який повністю досліджує відносини.
коді

Я не надто сильний у посиланнях у цій галузі, дякую @cody!
Андрій Бауер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.