Що означає провідний турнікет?


12

Я знаю, що різні автори використовують різні позначення для представлення семантики мови програмування. Власне кажучи, Гай Стіл вирішує цю проблему у цікавому відео .

Мені хотілося б знати, чи хтось знає, чи має провідний оператор турнікет добре розпізнане значення. Наприклад, я не розумію провідного оператора на початку знаменника наступного:

x:T1t2:T2λx:T1.t2 : T1T2

Може хтось допоможе мені зрозуміти? Дякую.



Нічого собі, це питання має більше 1-х переглядів, що більше, ніж сума переглядів усіх 29 нових питань! Як я перевірив, ні тег "теорія типів", ні тег "денотаційно-семантика" не входять до числа перших 50 популярних тегів. Мені цікаво причина цього явища. У мене немає підказки. @DW? У мене є мета питання?
Джон Л.

Якщо я не помиляюся, вам слід перемістити оператор турнікетів ( ), у висновку правила, між і . Я також додав би тегλ x : T 1 t 2λx:T1t2type-checking
mchar

3
@ Apass.Jack Це закінчилося в гарячих мережевих питаннях, тому через це стає все більше уваги.
JAB

Відповіді:


20

Ліворуч від турнікета можна знайти локальний контекст, кінцевий список припущень щодо типів змінних.

x1:T1,,хн:Тне:Т

Вище, може дорівнювати нулю, що призводить до е : Т . Це означає, що припущення щодо змінних не робляться. Як правило, це означає , що адреса є закритим терміном (без будь - яких вільних змінних) , що має тип T .ne:TeТ

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

Γ,x:T1t:T2Γ(λx:T1.t):T1T2

Тут являє собою будь-який контекст, а Γ , x : T 1 являє собою його розширення, отримане додаванням додаткової гіпотези x : T 1 до списку Γ . Зазвичай потрібно вимагати, щоб x не з’явився у Γ , щоб розширення не «суперечило» попередньому припущенню.ΓΓ,х:Т1х:Т1ΓхΓ


7

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

Перший підтекст - це стрілка, яка відображається у формулах, і відповідає логічному імплікації у формулі (або типу функції для -рахунку).λ

Другий сенс матеріалізується символом турнікета і означає "припускаючи кожну формулу зліва, формула праворуч". Зокрема, правило, яке ви подаєте, говорить про те, як слід довести імплікацію: щоб довести , тоді треба довести B під припущенням, що A дотримується. З точки зору λ -рахунку довести, що λ x . t має тип A B , треба показати, що t має тип B , припускаючи, що x є змінною типу A (див. відповідність?).АББАλλх.тАБтБхА

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


3

У системах перевірки типу ( ) являє собою потрійне відношення щодо типів середовища, виразів і типів: E n v × E x p × T y p .Env×Exp×Typ

У вашому прикладі вираз вводиться на типі T 2 wrt. до середовища типу, що має припущення про тип, відображаючи T 1 до деякої змінної типу xt2T2 T1x

У цьому контексті середовище типу - це часткова функція, яка присвоює типи змінним, зазвичай позначається де Γ E n v : V a r T y pΓΓЕнv:VаrТуp

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


-1

У кожній ситуації, яку я бачив, означає, що існує доказ  Y, припускаючи, що X  дотримується. Якщо X  порожній, це означає, що Y  є тавтологією: він має доказ, не потребуючи жодних припущень.ХYYХХY


1
але якщо те, що ви говорите, є правдою, це дивно, тому що це також означає горизонтальну смугу, правда? Що якщо верхня правда, то нижня правда. Таким чином, означатиме, що якщоXістинне, тоYбезумовно істинно. ХYХY
Джим Ньютон

1
Горизонтальна смуга означає, що річ на дні - це негайне відрахування від речі на верхній частині. Хоча я згоден, що у вашому прикладі виглядає дуже дивно, що безумовна істина походить від умовної ...
Девід Річербі,

Теорія типів - це не логіка. Це, звичайно, пов'язано багатьма способами і (певною мірою навмисно) використовує подібні позначення, але, безумовно, немає апріорного зв'язку з відношенням доказності, а часто немає і післястеріозного зв'язку (принаймні, не з віддаленою розумною логікою). Як було написано, відповідь, в кращому випадку, вводить в оману, оскільки це говорить про те, що " " - це формула, якої вона практично ніколи не є в теорії типів, наприклад, мова, що містить формули типу ( x : T 1 ) ( y : T 2 ) зазвичай не описано і часто неможливо в стандартній мета-логіці, наприклад, для лінійного обчислення лямбда.х:Т1(х:Т1)(у:Т2)
Дерек Елкінс вийшов SE

@DerekElkins Це система доказів, а системи доказів - це логіка. - це суто пропозиція, а Γ x : T - це не що інше, як твердження, яке має пропозиція, коли Γ виконується. Те, що диз'юнкції пропозицій не є формулами, є просто обмеженням синтаксису логіки. х:ТΓх:ТΓ
Девід Річербі

Це не просто диз'юнкція. Жодна з , ( x : A ) ( y : B ) або ( x : A ) ( y : B ) також не є формулами. Або ви кажете, що це логіка, яка має лише атомні пропозиції? Я згадав лінійну логіку як приклад. У впорядкованій лінійній логіці дуже легко може бути випадок, коли x : A , y : B t : C утримується час¬(х:А)(х:А)(у:Б)(х:А)(у:Б)х:А,у:Бт:С - ні. Яким сполучникам кома і відповідають, що приймають "значення істини" x : A , y : B , і t : C і призводять до вищезазначеної поведінки? Існує варіант, якщо мета-логіка є також упорядкованою лінійною логікою, але тоді ми нічого не пояснюємо. у:Б,х:Ат:Сх:Ау:Бt:С
Дерек Елкінс покинув SE
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.