Qual é a intuição por trás da lógica linear?


11

Estou tentando entender a lógica linear para entender melhor os sistemas de tipos lineares. No entanto, quando li as regras, eu não conseguem obter uma intuição por trás dele como eu fiz na lógica modal - significa um é exigido como em Kripke quadros Um é necessário para cada mundo acessível [ A é A é possível mutatis mutandis]. Mas não consigo encontrar nenhuma explicação intuitiva para a dualidade e qual dos pares de conjunção / disjunção (se houver) corresponde a e .AAAAA


O artigo original de Girard é onde você deve procurar se quiser entender a intuição por trás deles. A questão como está é muito geral e a resposta seria procurar na página da Wikipedia lógica lógica.
Kaveh

5
Concordo que este é um pouco demais e definitivamente não é um nível de pesquisa; talvez você deva fazer a pergunta no CS Stack Exchange. No entanto, eu o desencorajaria a usar o artigo original de Girard como ponto de entrada para a lógica linear. Talvez a Wikipedia seja um lugar melhor para começar.
Damiano Mazza

Isso é bem amplo. Uma sugestão, talvez, poderia estar começando a considerar as fórmulas como uma "moeda" que pode ser gasta, em vez de declarações de verdade. Então, conjunto poderia ser que significa que podemos passar tanto um uma moeda e uma b moeda. Outro tipo de conjunção pode ser a & b , o que significa que podemos escolher entre gastar a e gastar b (mas não os dois!). Você pode encontrar alguns exemplos na Wikipedia, como Damiano sugeriu. ababa&bab
chi

@chi Não sei se a "interpretação de recursos" é a melhor maneira de entender a dualidade no LL. A interpretação do processo é muito mais compreensível.
Martin Berger

Respostas:


11

Não tenho certeza se essa pergunta é ideal para o CSTheory, mas, como já está recebendo votos, aqui está uma resposta que alguém poderia ter dado se a pergunta fosse publicada em cs.stackexchange .

A fim de compreender a noção de lógica linear da dualidade , que as forças de conjunção e disjunção além muito mais longe do que estamos acostumados na lógica convencional, eu recomendo não pensar em lógica linear em termos de recursos (embora esta é uma leitura importante ) Em vez disso, pense nas fórmulas lógicas lineares A como processos que se comunicam em uma porta / nome / canal. Essa interpretação foi desenvolvida primeiro em (1) com o melhor de meu conhecimento, mas já foi mencionada no trabalho original de Girard. Como uma imagem:()A

                    Processo

(Não sei ao certo como centralizar as imagens aqui.) A conjunção linear é interpretada como executando os processos A e B em paralelo . O processo A B comunica pares ( a , b ) em sua porta, onde a vem de A e b é a comunicação de B.ABABAB (a,b)aAbB

                   insira a descrição da imagem aqui

A dualização (que é a negação da lógica linear) alterna entrada e saída. Portanto, o dual de A B é(.)AB

(AB)=AB

Nesta leitura é o processo que comunica com . Um BABAB

O equivalente da lógica linear à disjunção pode receber uma leitura teórica do processo semelhante. A fórmula

A & B

também devem ser vistos como dois processos e em paralelo, mas, em vez de enviar mensagens ativamente, eles esperam que o ambiente decida qual executar. Então fica lá, esperando em seu canal para um pouco de informação que decide se deve ser executado como ou como . Esta é uma versão 'paralela' do em linguagens seqüenciais de programação. O duplo de éB A e B A e B A b i f / t h e n / e l s e ( A e B ) A e BABA&BA&BABif/then/else(A&B)A&B

(A&B)=AB

pode ser visto como um processo que envia 1 bit de informação para , a saber: "continue como " ou "continue como ". Isso é semelhante ao estiver avaliando para enquanto estiver avaliando como , exceto que a escolha entre e agora é feita pelo ambiente.A B i f t r u e t h e n P e L s e Q P i f f um l s e t h e n P e L s e Q Q A BA&BABif true then P else QPif false then P else QQAB

O operador! Também possui uma interpretação teórica do processo: se é lido como um processo, então pode ser lido como executando infinitamente muitos processos em paralelo.! A AA!AA

Neste ler o axiomas das lógicas tornam-se simples 'fios' lineares que encaminhar mensagens de processos para os processos . Essa interpretação dos axiomas já está nas redes de prova de Girard (3).A AAAAA

Essa interpretação teórica do processo foi influente e deu origem a muitos trabalhos de acompanhamento, como por exemplo (2) para tipos de sessão. No entanto, existem alguns casos extremos que o tornam um pouco estranho e, pelo que sei, não foi feito para funcionar perfeitamente para a lógica linear completa , mesmo em 2017.


1. S. Abramsky, Interpretações Computacionais de Lógica Linear .
2. P. Wadler, Proposições como sessões .
3. Wikipedia, Rede de prova .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.