Co oznacza wiodący operator kołowrotu?

12

Wiem, że różni autorzy używają różnych notacji do reprezentacji semantyki języka programowania. W rzeczywistości Guy Steele rozwiązuje ten problem w ciekawym filmie .

Chciałbym wiedzieć, czy ktoś wie, czy wiodący operator bramki obrotowej ma dobrze rozpoznane znaczenie. Na przykład nie rozumiem wiodącego operatora na początku mianownika:

x:T.1t2):T.2)λx:T.1.t2) : T.1T.2)

Czy ktoś może mi pomóc zrozumieć? Dzięki.

Jim Newton
źródło
Powiązane
leftaroundabout
Wow, to pytanie ma ponad „1k” wyświetleń, co jest więcej niż sumą wyświetleń wszystkich pozostałych 29 nowych pytań! Jak sprawdziłem, ani znacznik „teoria typów”, ani znacznik „semantyka denotacyjna” nie należą do pierwszych 50 popularnych znaczników. Jestem ciekawy przyczyny tego zjawiska. Nie mam pojęcia. @DW? Czy mam pytanie meta?
John L.
Jeśli się nie mylę, musisz przesunąć operator bramki ( ), zgodnie z regułą, między λ x : T 1 i t 2 . Dodałbym również tagλx:T.1t2)type-checking
mchar
3
@ Apass.Jack Skończyło się na gorących pytaniach sieciowych, dlatego coraz więcej uwagi z tego powodu.
JAB

Odpowiedzi:

20

Po lewej stronie bramki znajduje się kontekst lokalny, skończona lista założeń dotyczących typów zmiennych.

x1:T.1,,xn:T.nmi:T.

Wyżej, może mieć wartość zero, co skutkuje E : T . Oznacza to, że nie przyjęto żadnych założeń dotyczących zmiennych. Zwykle oznacza to, że E stanowi zamkniętą określenie (bez zmiennych wolnych) o typ T .nmi:T.miT.

Często wspomniana reguła jest napisana w bardziej ogólnej formie, w której może być więcej hipotez niż wspomniana w pytaniu.

Γ,x:T.1t:T.2)Γ(λx:T.1.t):T.1T.2)

Tutaj reprezentuje dowolny kontekst, a Γ , x : T 1 reprezentuje jego rozszerzenie uzyskane przez dołączenie dodatkowej hipotezy x : T 1 do listy Γ . Często wymagane jest, aby xΓΓ,x:T.1x:T.1Γx nie pojawiał się w , aby rozszerzenie nie „kolidowało” z poprzednim założeniem.Γ

chi
źródło
7

Jako uzupełnienie innych odpowiedzi należy zauważyć, że istnieją trzy poziomy „implikacji” w pisaniu pochodnych. Ta sama uwaga dotyczy logicznych pochodnych, ponieważ w rzeczywistości istnieje między nimi zgodność (zwana korespondencją Curry-Howarda).

Pierwszą implikacją jest strzałka pojawiająca się w formułach, która odpowiada logicznej implikacji w formule (lub typie funkcji dla kalkulatora).λ

Druga implikacja została zmaterializowana przez symbol bramki obrotowej i oznacza „przy założeniu, że każda formuła po lewej stronie ma formułę po prawej”. W szczególności reguła, którą podajesz, mówi, w jaki sposób należy udowodnić implikację: aby udowodnić , wówczas należy udowodnić B przy założeniu, że A ma. Pod względem λ- rachunek, aby udowodnić, że λ x . t ma typ A B , należy wykazać, że t ma typ B , zakładając, że x jest zmienną typuZAbbZAλλx.tZAbtbxZA (patrz korespondencja?).

Trzeci poziom implikacji jest urzeczywistniany przez poziomy pasek i oznacza „jeśli każda przesłanka (elementy u góry) ma miejsce, wówczas wniosek (element u dołu) ma miejsce”. Możesz to powiązać z interpretacją reguły pisania dla podanego przez ciebie abstrakcji (zobacz wyjaśnienie w poprzednim akapicie).λ

Rodolphe Lepigre
źródło
3

W systemach kontroli typu ( ) reprezentuje trójskładnikową relację w środowiskach typów, wyrażeniach i typach: E n v × E x p × T y pminv×mixp×T.yp .

W twoim przykładzie wyrażenie jest wpisane jako typ T 2 wrt. w środowisku typu mającego odwzorowanie typu założeniu, T 1 do pewnego typu zmiennej xt2)T.2) T.1x

W tym kontekście środowisko typów jest funkcją częściową, która przypisuje typy do zmiennych, zwykle oznaczonych gdzie Γ E n v : V a r T y pΓΓminv:V.zarT.yp

Należy pamiętać, że operator zastrzega swoją funkcjonalność niezależnie od tego, gdzie się pojawi, zarówno w założeniu, jak i po zawarciu reguły.

Mchar
źródło
-1

W każdej sytuacji, które widziałem, oznacza, że istnieje dowód  Y zakładając, że X  trzyma. Jeśli X  jest pusty, oznacza to, że Y  jest tautologią: ma dowód bez potrzeby żadnych założeń.XYYXXY

David Richerby
źródło
1
ale jeśli to, co mówisz, jest prawdą, jest to dziwne, ponieważ to również oznacza poziomy pasek, prawda? Że jeśli szczyt jest prawdziwy, to dół jest prawdziwy. W efekcie oznaczałoby, że jeśliXjest prawdziwe, toYjest bezwarunkowo prawdziwe. XYXY
Jim Newton,
1
Poziomy pasek oznacza, że ​​rzecz na dole jest natychmiastową dedukcją od rzeczy na górze. Chociaż zgadzam się, że w twoim przykładzie wygląda to bardzo dziwnie, że bezwarunkowa prawda wywodzi się z warunkowej ...
David Richerby
Teoria typów nie jest logiką. Jest to oczywiście powiązane na wiele sposobów i (do pewnego stopnia celowo) używa podobnej notacji, ale z pewnością nie ma związku a priori ze stosowalnością dowodową, a często też nie ma związku a posteriori (przynajmniej nie z rozsądnie logiczną logiką). Jak napisano, odpowiedź jest co najmniej myląca, ponieważ sugeruje, że „ ” jest formułą, której praktycznie nigdy nie ma w teorii typów, np. Język zawierający formuły takie jak ( x : T 1 ) ( y : T 2 ) na ogół nie jest opisany i często jest niemożliwy w standardowej meta-logice, np. w przypadku liniowego rachunku lambda.x:T.1(x:T1)(y:T2)
Derek Elkins opuścił SE
@DerekElkins To system dowodowy, a systemy dowodowe to logika. jest właśnie twierdzeniem, a Γ x : T jest niczym innym jak stwierdzeniem, które twierdzenie zawiera, gdy Γ ma. Fakt, że rozróżnienia zdań nie są formułami, jest po prostu ograniczeniem składni logiki. x:TΓx:TΓ
David Richerby,
To nie tylko rozłączenie. Żadne z , ( x : A ) ( y : B ) lub ( x : A ) ( y : B ) również nie jest formułami. A może mówisz, że to logika, która ma tylko twierdzenia atomowe? Jako przykład podałem logikę liniową. W uporządkowanej logice liniowej bardzo łatwo może się zdarzyć, że x : A , y : B t : C utrzyma się podczas¬(x:ZA)(x:ZA)(y:b)(x:ZA)(y:b)x:ZA,y:bt:do nie. Co spójniki zrobić przecinek i odpowiadać podjąć „wartości Prawda” X : A , Y : B i T : C i produkują powyższy zachowanie? Istnieje opcja, jeśli meta-logika jest również uporządkowaną logiką liniową, ale wtedy niczego nie wyjaśniamy. y:b,x:ZAt:dox:ZAy:bt:do
Derek Elkins opuścił SE