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
(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.A⊗BABA⊗B (a,b)aAbB
A dualização (que é a negação da lógica linear) alterna entrada e saída. Portanto, o dual de A ⊗ B
é(.)⊥A⊗B
(A⊗B)⊥=A⊥⅋B⊥
Nesta leitura é o processo que comunica com . Um ⊗ BA⊥⅋B⊥A⊗B
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)⊥=A⊥⊕B⊥
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 ⊥ AA⊢AA⊥A
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 .