Чи є в теорії типів хороше поняття про припинення та припинення доказів?


10

Теорія конструктивного типу з її базовою інтерпретацією під кореспонденцією каррі-хауар складається лише із загальних обчислюваних функцій. У літературі деякі говорили про використання "теорії обчислювального типу", щоб представити неприпинення у функціональних програмах, але в роботах, які я натрапив, це, здається, не є основною мотивацією теорії (наприклад, Бентон згадує недетермінізм, продовження та винятки, не вдаючись до детальної інформації про неприпинення), тому мені ще належить знайти документ, що дає надійну інтерпретацію неприпинення з використанням теорії обчислювального типу.

Зокрема, те, що я шукаю, - це те, що для даного типу, що представляє можливі незакінчені обчислення типу , T ( A ) , повинно бути якесь поняття доказів того, що x : T ( A ) закінчується типу H ( x ) , таким чином, що дані х : Т ( ) і р : Н ( х ) , ми можемо побудувати термін ~ х : а .AT(A)x:T(A)H(x)x:T(A)p:H(x)x~:A

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


3
fAB dom(f)xAdom(f)(x)fx


AB

Відповіді:


11

Оскільки одним із головних застосувань Теорії типів у формалізаціях було вивчення мов програмування та обчислення в цілому, багато думок розглядалися як способи представлення можливо не закінчуваних програм.

Я не буду робити тут повного опитування, але спробую дати покажчики на основні напрямки різних напрямків.

  • F x yfxf(x)=yx(y,F x y)(¬y,F x y)

    Більш складний спосіб зробити це метод "Bove-Capretta" (див. Моделювання рекурсії в теорії типів , який для кожної рекурсивної функції визначає "доступний предикат", який кодує факт, що дане обчислення є кінцевим. Визначення функції приймає додатковий аргумент, який є доказом того, що дані входи доступні. Щоб визначити функцію без цього додаткового предиката, потрібно довести, що доступна кожна можлива комбінація входів.

  • A

    codata Delay A =
    | Now : A -> Delay A
    | Later (Delay A)
    

    Це кодує можливий нескінченний потік Laterжетонів ("тиків" обчислення), можливо закінчуючи результатом Now a. Неприпинення еквівалентно подібності до програми

    цикл = Пізніший цикл і закінчення можна визначити за допомогою індуктивного предиката над Delay A:

    data Terminates : Data A -> Prop =
    | Term_now : forall x, Terminates (Now x)
    | Term_later : forall d, Terminates d -> Terminates (Later d)
    

    Я думаю, що у agda-istas багато що можна сказати про це, яке вони називають монадою приналежності (див., Наприклад, Даніельссон ).

  • Підхід "теорії часткового типу" : це трохи експериментальніше (ця теорія ще розробляється), але є деякі теорії типів, які розробляються, щоб впоратися з тим, що є, по суті, два типи функцій, які ми хочемо написати в теорії типів: умови доказування та програми. Виявляти розумну теорію цих речей (і зберігати послідовність теорії) виявляється важко, але тут робиться серйозна спроба Касінгіно та ін. , І подібні зусилля Кіммел та ін .

Я впевнений, що існують інші підходи, про які я не знаю, і буду радий, якщо хтось захоче заповнити цей список.

Π10

Існують і інші, досить плідні взаємодії між теорією типів і теорією складності, як правило, під егідою неявної обчислювальної складності .


Цікаво, дякую за інформацію! Я вважаю, що теоретичний підхід часткового типу, мабуть, найбільш близький за духом до того, що я шукаю - і, принаймні, документ Кіммеля, здається, надає на якомусь рівні конкретно те, що я шукаю (див. Правила введення тексту для "tcast" ).
Nathan BeDell
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.