Це ілюзія, що правила обчислення "визначають" або "конструюють" об'єкти, про які вони говорять. Ви правильно зауважили, що рівняння для не "визначає" це, але не помічає, що те саме є і в інших випадках. Розглянемо принцип індукції для блоку типу , який видається особливо очевидно «визначеним». Згідно з розділом 1.5 книги HoTT у нас є
з рівняння
Це "визначає" чи "конструює" у тому сенсі, що це не залишає сумнівів щодо того, що "робить"? Наприклад, встановити 1 i n d 1 : ∏ C : 1 → T y p e C(⋆)→ ∏ x : 1 P(x) i n d 1 (C,c,⋆)=c. i n d 1 i n d 1 C(x)= Nind=A1
ind1:∏C:1→TypeC(⋆)→∏x:1P(x)
ind1(C,c,⋆)=c.
ind1ind1C(x)=N і , і розглянемо, що можна сказати про
для заданого виразу типу . Вашою першою думкою може бути те, що ми можемо зменшити це до оскільки " є єдиним елементом ". Але якщо бути досить точним, рівняння для застосовується лише в тому випадку, якщо ми покажемо , що неможливо, наприклад, коли є змінною. Ми можемо спробувати вийти з цього і сказати, що нас цікавлять тільки обчислення із закритими термінами, тому слід закрити.
i n d 1 ( C , 42 , e ) e 1 42 ⋆ 1 i n d 1 e ≡ ⋆ e ea=42ind1(C,42,e)
e142⋆1ind1e≡⋆ee
Чи не так, що кожен закритий член типу судження є рівним ? Це насправді залежить від неприємних деталей і складних доказів нормалізації. У разі HOTT відповідь «ні» , тому що не може містити екземпляри унівалентностью Axiom, і це не ясно , що робити , щоб про це (це відкрита проблема в HOTT).1 ⋆ ee1⋆e
Ми можемо обійти проблеми з univalance, розглядаючи варіант теорії типу , яка робить добрі властивості , так що кожні замкнуті терми типу є суб'єктивно рівні . У цьому випадку було б справедливо сказати , що ми дійсно знаємо , як обчислити з , але:⋆ i n d 11⋆ind1
Ж матиме місце для типу ідентичності, тому що кожен замкнутий член типу ідентичності буде суб'єктивно одно деякими , і так , то рівняння для буде сказати , нам, як обчислити.i n d = Arefl(a)ind=A
Просто тому, що ми знаємо, як обчислити закриті терміни типу, це не означає, що ми насправді щось визначили, тому що тип має більше, ніж його закриті терміни , як я намагався пояснити одного разу.
Наприклад, теорію типів Мартіна-Лефа (без типів ідентичності) можна інтерпретувати теоретично домену таким чином, що містить два елементи і , де відповідає і не припиняючи. На жаль, оскільки немає можливості записати незакінчуваний вираз у теорії типів, не можна назвати. Отже, рівняння для зовсім НЕ говорить нам , як обчислити на (два очевидних варіанту є «жадібністю» і «ледачим»).⊥ ⊤ ⊤ ⋆ ⊥ ⊥ i n d 1 ⊥1⊥⊤⊤⋆⊥⊥ind1⊥
У плані інженерії програмного забезпечення, я б сказав, що ми маємо плутанину між специфікацією та реалізацією . Аксіоми HoTT для типів ідентичності є специфікацією . Рівняння не говорить нам, як обчислити, чи як побудувати , але, однак, однак "реалізований", нам потрібно, щоб він задовольнив рівняння. Окреме питання, чи можна таке отримати конструктивно.ind=C(C,c,x,x,refl(x))≡c(x)ind=Cind=Cind=C
Нарешті, я трохи втомився, як ви вживаєте слово "конструктивний". Схоже, ви думаєте, що "конструктивне" те саме, що "визначене". Згідно з цією інтерпретацією оракул Halting є конструктивним, оскільки його поведінка визначається вимогою, яку ми накладаємо на нього (а саме тим, що він виводить 1 або 0 відповідно до того, чи зупиняється дана машина). Переважно можна описати об'єкти, які існують лише в неконструктивних умовах. І навпаки, цілком можна конструктивно говорити про властивості та інші речі, які насправді неможливо обчислити. Ось одне: відношення визначене
H⊆N×{0,1}
H(n,d)⟺(d=1⇒n-th machine halts)∧(d=0⇒n-th machine diverges)
є конструктивним, тобто немає нічого поганого в цьому визначенні з конструктивної точки зору. Так буває, що конструктивно не можна показати, що - це сумарне відношення, і його характеристична карта не через , тому ми не можемо "обчислити" його значення.
HχH:N×{0,1}→Propbool
Додаток: Назва вашого питання "Чи індукція контуру конструктивна?" Очистивши різницю між "конструктивним" та "визначеним", ми можемо відповісти на питання. Так, індукція шляху, як відомо, є конструктивною у певних випадках:
Якщо ми обмежимося теорією типів без однозначності, щоб ми могли проявити сильну нормалізацію, то індукція тракту та все інше є конструктивним, оскільки існують алгоритми, які виконують процедуру нормалізації.
Існують моделі реалізації теорії типів, які пояснюють, як кожному закритому терміну в теорії типів відповідає машина Тьюрінга. Однак ці моделі задовольняють Аксіому К Стрейхера, яка виключає Універсальність.
Існує переклад теорії типів (знову ж таки без однозначності) на конструктивну теорію множин CZF. Це ще раз підтверджує аксіому К. Стрейхера.
Всередині моделі реалізаційності є групоподібна модель, яка дозволяє інтерпретувати теорію типів без К. Стрейчера. Це попередня робота Стіва Уоді і я.
Нам дійсно потрібно розібратися в конструктивному стані Універсальності.