O que significa o operador líder de torniquete?

12

Eu sei que autores diferentes usam notação diferente para representar a semântica da linguagem de programação. De fato, Guy Steele aborda esse problema em um vídeo interessante .

Gostaria de saber se alguém sabe se o operador líder de torniquete tem um significado bem reconhecido. Por exemplo, eu não entendo o operador principal no início do denominador do seguinte:

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

Alguém pode me ajudar a entender? Obrigado.

Jim Newton
fonte
Relacionados
leftaroundabout
Uau, essa pergunta tem mais de "1k" visualizações, que é mais do que a soma das visualizações de todas as outras 29 novas perguntas! Como verifiquei, nem a tag "teoria dos tipos" nem a tag "semântica denotacional" estão entre as 50 primeiras tags populares. Estou curioso sobre a causa por trás desse fenômeno. Eu não faço ideia. @DW? Eu tenho uma meta pergunta?
John L.
Se não me engano, você deve mover o operador do torniquete ( ), na conclusão da regra, entre e . Eu também adicionaria a tagλ x : T 1 t 2λx:T1t2type-checking
mchar 18/09/18
3
@ Apass.Jack Acabou no Hot Network Questions, então está recebendo mais atenção por causa disso.
JAB

Respostas:

20

À esquerda da catraca, você encontra o contexto local, uma lista finita de suposições sobre os tipos de variáveis ​​em questão.

x1:T1,,xn:Tne:T

Acima, pode ser zero, resultando em . Isso significa que nenhuma suposição sobre variáveis ​​é feita. Geralmente, isto significa que é um termo fechada (sem quaisquer variáveis livres) tendo tipo .E : T e Tne:TeT

Freqüentemente, a regra mencionada é escrita de uma forma mais geral, onde pode haver mais hipóteses do que a mencionada na pergunta.

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

Aqui, representa qualquer contexto e representa sua extensão obtida anexando a hipótese adicional à lista . É comum exigir que não apareça em , para que a extensão não "entre em conflito" com uma suposição anterior.Γ , x : T 1 x : T 1 Γ x ΓΓΓ,x:T1x:T1ΓxΓ

chi
fonte
7

Como complemento para as outras respostas, observe que existem três níveis de "implicação" na digitação de derivações. E a mesma observação vale para derivações lógicas, uma vez que existe realmente uma correspondência entre as duas (denominada correspondência de Curry-Howard).

A primeira implicação é a seta que aparece nas fórmulas e corresponde à implicação lógica em uma fórmula (ou um tipo de função para o cálcio).λ

A segunda implicação é materializada pelo símbolo da catraca, e significa "assumindo todas as fórmulas à esquerda, a fórmula à direita vale". Em particular, a regra que você indica diz como se deve provar uma implicação: para provar , é preciso provar B sob a suposição de que A é válido. Em termos do λ- cálculo, para provar que λ x . t possui o tipo A B , deve-se mostrar que t possui o tipo B , assumindo que x é uma variável do tipo A (consulte a correspondência?).ABBAλλx.tABtBxA

O terceiro nível de implicação é materializado pela barra horizontal e significa "se todas as premissas (elementos no topo) se mantêm, então a conclusão (o elemento na parte inferior) se mantém". Você pode vincular isso à interpretação da regra de digitação para a atração que você deu (consulte a explicação no parágrafo anterior).λ

Rodolphe Lepigre
fonte
3

Nos sistemas de verificação de tipos, ( ) representa a relação ternária sobre ambientes, expressões e tipos de tipos: E n v × E x p × T y p .Env×Exp×Typ

No seu exemplo, a expressão é digitado no tipo T 2 wrt. para um ambiente de tipo com uma suposição de tipo mapeando T 1 para alguma variável de tipo xt2T2 T1x

Neste contexto, um ambiente de tipo é uma função parcial que atribui tipos de variáveis, geralmente denotada com onde Γ E N v : V uma r T y pΓΓEnv:VarTyp

Observe que, o operador reserva sua funcionalidade independentemente de onde ela aparece, na premissa ou na conclusão da regra.

mchar
fonte
-1

Em todas as situações que eu vi, significa que há uma prova de  Y assumindo que X  é válido. Se X  estiver vazio, isso significa que Y  é uma tautologia: possui uma prova sem precisar de nenhuma suposição.XYYXXY

David Richerby
fonte
1
mas se o que você diz é verdade, isso é estranho, porque é também o que a barra horizontal significa, certo? Que se o topo é verdadeiro, então o fundo é verdadeiro. Assim, com efeito, o significaria se oXé verdadeiro, entãoYé incondicionalmente verdadeiro. XYXY
Jim Newton
1
A barra horizontal significa que a coisa na parte inferior é uma dedução imediata da coisa na parte superior. Embora concorde que parece muito estranho no seu exemplo que uma verdade incondicional é derivado de uma condicional ...
David Richerby
A teoria dos tipos não é lógica. É claro que está relacionado de várias maneiras e (até certo ponto intencionalmente) usa notação semelhante, mas certamente não há conexão a priori com a relação de provabilidade, e muitas vezes também sem conexão a posteriori (pelo menos não com uma lógica remotamente razoável). Como escrito a resposta é, na melhor das hipóteses, enganador porque sugere que " " é uma fórmula que praticamente não é, em teoria, tipo, por exemplo uma linguagem contendo fórmulas como ( x : o t 1 ) ( Y : T 2 ) geralmente não é descrito e geralmente é impossível em uma meta-lógica padrão, por exemplo, para o cálculo linear lambda.x:T1(x:T1)(y:T2)
Derek Elkins saiu de SE
@DerekElkins É um sistema de provas e sistemas de provas são lógicas. é precisamente uma proposição, e Γ x : T é nada, mas a afirmação de que a proposição vale quando Γ detém. O fato de que disjunções de proposições não são fórmulas é simplesmente uma restrição da sintaxe da lógica. x:TΓx:TΓ
David Richerby
Não é apenas disjunção. Nenhum de , ( x : A ) ( y : B ) ou ( x : A ) ( y : B ) também é uma fórmula. Ou você está dizendo que é uma lógica que só tem proposições atômicas? Mencionei a lógica linear como um exemplo. Na lógica linear ordenado, ele pode muito facilmente ser o caso que x : A , y : B t : C detém enquanto¬(x:UMA)(x:UMA)(y:B)(x:UMA)(y:B)x:UMA,y:Bt:C não. O que conectivos fazer a vírgula e correspondem aos que levam os "valores de verdade" de x : A , y : B e t : C e produzir o comportamento acima? Existe uma opção se a meta-lógica também for uma lógica linear ordenada, mas não explicaremos nada. y:B,x:UMAt:Cx:UMAy:Bt:C
Derek Elkins saiu de SE