Anda di halaman 1dari 57

# UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA CURSO DE CINCIA DA COMPUTAO

por

## Felipe de Lima Athayde

Trabalho de Graduao apresentado ao Curso de Cincia da Computao da Universidade Federal de Santa Maria (UFSM, RS), como requisito parcial para a obteno do grau de Bacharel em Cincia da Computao

## Universidade Federal de Santa Maria Centro de Tecnologia Curso de Cincia da Computao

UM ESTUDO DA LGICA LINEAR COM APLICAO EM CINCIA DA COMPUTAO elaborado por Felipe de Lima Athayde como requisito parcial para obteno do grau de Bacharel em Cincia da Computao

## Santa Maria, 15 de dezembro de 2010.

Somente a conscincia individual do agente d testemunho dos atos sem testemunha, e no h ato mais desprovido de testemunha externa do que o ato de conhecer. O LAVO DE C ARVALHO

RESUMO

## Palavras-chave: Lgica linear, cincia da computao, aplicao.

ABSTRACT

Undergraduate Final Work Undergraduate Program in Computer Science Universidade Federal de Santa Maria A LINEAR LOGIC STUDY WITH APPLICATION IN COMPUTER SCIENCE Author: Felipe de Lima Athayde Advisor: Profa Dra Juliana Kaizer Vizzotto Computing science deals with automation of reasoning for solving problems and assisting in certain activities. In this area, both logic and intuitionistic logic plays a fundamental role. They are widely used for developing algorithms to meet the needs of real world. However, there are constraints that classical logic systems can not overcome, considering our world deals with scarcity of resources. The ordinary logical systems deal with general and immutable truths. The linear logic, on the other hand, was developed to capture the realist and resource-based reasoning, so common in the constructivist world we live in. These concepts have great acceptance in computing science areas such as articial intelligence, type systems, abstract interpretation and parallel computing. This paper presents a study of linear logic with application in computing science with some contrast with other logical systems. First we discuss linear logic as formal language and its natural deduction system. Then a computing application, based on concurrent systems, one of the major focus of linear logic, was developed to demonstrate how one can represent reasoning in a linear fashion.

## Keywords: linear logic, computer science, application.

LISTA DE FIGURAS

Figura 3.1 Figura 3.2 Figura 3.3 Figura 3.4 Figura 3.5 Figura 3.6 Figura 3.7 Figura 3.8

Tela do monitor do sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tela do gerenciador de mquinas virtuais. . . . . . . . . . . . . . . . . . . . . . . . . . . . Estado inicial do sistema, todos recursos disponveis. . . . . . . . . . . . . . . . . Duas mquinas criadas, nenhuma em execuo. . . . . . . . . . . . . . . . . . . . . . . Uma mquina disponvel e uma em execuo. . . . . . . . . . . . . . . . . . . . . . . . Estado do monitor do sistema aps inicializar a mquina de ID 1. . . . . . Uma mquina disponvel e duas em execuo (IDs 1 e 2). . . . . . . . . . . . . Estado do monitor do sistema enquanto h duas mquinas em execuo (IDs 1 e 2). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Figura 3.9 Duas mquinas disponveis e uma em execuo. . . . . . . . . . . . . . . . . . . . . . Figura 3.10 Estado do monitor do sistema aps nalizar uma das duas mquinas que estavam em execuo, restando somente a ID 2. . . . . . . . . . . . . . . . . .

42 43 47 47 48 49 49 50 50 51

LISTA DE TABELAS

Tabela 2.1 Curry-Howard: Correspondncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Tabela 2.2 Operadores da lgica linear. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Tabela 2.3 Regras da lgica linear. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

SUMRIO

1 INTRODUO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 Justicativas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.1 Objetivo geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.2 Objetivos especcos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4 Estrutura do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 FUNDAMENTAO TERICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1 Raciocnio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Lgica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 Auto-evidncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Cincia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Cincia da Computao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4 Sentenas e proposies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.1 Argumentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.2 Deduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.3 Induo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.4 Falcias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5 Lgica formal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.1 Lgica proposicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.2 Lgica intuicionista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.3 Lgica de predicados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.4 Isomorsmo de Curry-Howard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6 Lgica Linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.1 Surgimento e conceituao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.2 Operaes em lgica linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.3 Lgica clssica e lgica intuicionista x lgica linear . . . . . . . . . . . . . . . . . . . . . . 2.6.4 As regras da lgica linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.7 Uma aplicao da lgica linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.7.1 COQ - Um sistema de Gerenciamento de Provas Formais . . . . . . . . . . . . . . . . . 2.7.2 Cenrio dos blocos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.7.3 Da importncia desta implementao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12 13 15 15 15 16 16 18 18 19 19 20 20 22 22 22 23 23 24 25 26 26 27 29 29 29 30 33 37 37 38 40

3 A APLICAO - UM SIMULADOR DE MQUINAS VIRTUAIS . . . . . . . . 3.1 Descrio da aplicao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 Os recursos do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.2 O gerenciador das mquinas virtuais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Uma interpretao linear do sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 As operaes da aplicao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Utilizando a aplicao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1 Anlise dos resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

41 41 41 42 44 45 47 51

## CONCLUSO E TRABALHOS FUTUROS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

REFERNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

12

1 INTRODUO

13

1.1 Justicativas
A Cincia da Computao pode ser vista como a automatizao do processamento da informao atravs da utilizao de modelos numricos. De forma semelhante, utiliza-se do raciocnio para processar as informaes absorvidas ou produzidas atravs da atividade intelectual e a lgica que permite aproximar tais movimentos intelectuais de sua aplicao computacional. Sendo assim, evidente a importncia da lgica para esta rea

14

15

1.2 Objetivos
1.2.1 Objetivo geral O propsito deste trabalho estudar lgica linear e sua aplicao prtica com base em um referencial terico. Ser utilizada uma aplicao desenvolvida para demonstrar como pode ser encarado o foco em recursos deste sistema lgico. Desta forma, almeja-se analisar de que forma podem ser formuladas resolues algortmicas lineares para problemas computacionais. A partir da, pode-se analisar se o uso da lgica linear poderia representar alguma vantagem pela aproximao maior com a rea em questo. Assim, busca-se aperfeioar a rea da qual esta cincia derivou e, desta forma, tornar mais acessvel a produo cientca. 1.2.2 Objetivos especcos Nessa seo encontram-se os objetivos especcos que sero abordados no decorrer do desenvolvimento deste estudo: Conceituao dos elementos fundamentais: razo, lgica e cincia; Estudo de Lgica Formal, suas relaes fundamentais e dos seus usos na cincias da computao; Comparao do sistema linear com os sistemas clssico e intuicionista; Exposio dos conceitos referentes lgica linear, seus operadores e seu sistema de deduo natural; Estudo da bibliograa referente lgica linear na cincia da computao; Estudo das aplicaes da Lgica Linear na cincia da computao Desenvolvimento de uma aplicao focada em recursos para exemplicar a aplicabilidade da lgica linear; Explicao linear da aplicao desenvolvida e de como expressar as operaes computacionais empregadas.

16

1.3 Metodologia

## 1.4 Estrutura do trabalho

Referente estrutura deste trabalho, no comeo do captulo 2 se tratar das conceituaes dos elementos fundamentais do trabalho, desde os mais fundamentais, a saber: a razo, lgica e sistemas lgicos, cincia e cincia da computao, at os sistemas lgicos formais. Neste instante, se abordar: sentenas, proposies, argumentos, mtodos (dedutivos e indutivos) e falcias. Neste ponto ser aprofundado o estudo em cima da lgica proposicional, lgica de predicados e lgica intuicionista. Neste captulo sero tratadas

17

questes referentes origem dos termos, motivaes aos seus estudos e breves citaes de trabalhos anteriores a respeito deles. No m do captulo 2 ser tratada a lgica linear, suas operaes, seu sistema de deduo linear, semelhanas e diferenas com as lgicas clssica e intuicionista. Tambm ser descrito brevemente a implementao da lgica linear contida em (POWER; WEBSTER, 2001), uma vez que esta motivou a criao da aplicao desenvolvida para este trabalho. O captulo 3 se ocupar da descrio da aplicao desenvolvida para exemplicar a utilizao da lgica linear e da descrio das operaes lineares empregadas. Por m, no captulo 4, se dar a concluso do trabalho e projees de possveis trabalhos relacionados.

18

2 FUNDAMENTAO TERICA

Este captulo se destina a denio dos conceitos relevantes abordados neste trabalho. Atravs da apresentao dessas denies, ser possvel ter a devida compreenso dos fundamentos utilizados na concepo da lgica, da sua importncia para o raciocnio, da relao de ambos para com a Cincia da Computao, do isomorsmo de Curry-Howard, da lgica linear e de algumas aplicaes desenvolvidas em cima desta.

2.1 Raciocnio
A palavra raciocnio vem do latim rationem, que signica clculo, medida, regra, conta, que, por sua vez, deriva de ratio, que signica determinar, estabelecer, julgar, estimar. O professor Olavo de Carvalho, notvel intelectual brasileiro, dene que a razo em primeiro lugar, a capacidade de se abrir imaginativamente ao campo inteiro da experincia real e virtual como uma totalidade e de contrastar essa totalidade com a dimenso de innitude que a transcende imensuravelmente (CARVALHO, 2009). Tem-se como raciocnio a atividade mental ou o produto desta enquanto dentro da esfera onde reside a razo. A produo intelectual com base na experincia obtida atravs da observao, experimentao e na capacidade de generalizar com base em critrios probabilsticos e evidncias resulta em proposies, as quais unidas capacidade de estabelecer relaes lgico-formais entre si constituem o raciocnio. Olavo de Carvalho vai mais alm ao denir como objeto da razo a experincia humana na sua totalidade indistinta, apenas limitada pelo senso da innitude (CARVALHO, 2009). Sendo a razo dependente da experincia e do que se conhece, evidente que a produo de conhecimento atravs do raciocnio um processo que pode ser construtivo ou destrutivo, realizado no decorrer do tempo e no uma fonte de verdades universalmente imutveis.

19

2.2 Lgica

20

per se. A este estado se da o nome de auto-evidente. o ponto a partir de onde a regresso provavelmente implicaria uma regresso ao innito (REIS, 2006). No momento que se dene os pontos auto-evidentes em uma rea, tem-se as ferramentas slidas necessrias para produzir nela. Naturalmente, a prova de que um determinado ponto fundamental no correto resultar na prova de que todas construes que se utilizaram deste so invlidas, non sequiturs.

2.3 Cincia
A palavra cincia vem do latim scientia, que signica conhecimento. Chama-se de cincia a produo de conhecimento sistemtica fundada em princpios evidentes e demonstraes. Ainda em Aristteles possvel encontrar referncia aos rigorosos mtodos utilizados na produo de conhecimento (ora Aristteles designava o livro dos Tpicos pelo ttulo de Metdica), onde a dialtica seria a primeira formulao do mtodo cientco e a lgica o prximo passo da investigao em busca da verdade (CARVALHO, 1997). A cincia se constitui atravs dos seguintes passos: Primeiramente formula-se uma hiptese sobre determinados fenmenos Verica-se o que era suposto se conrma verdadeiro, atravs de observaes, experimentaes e medies Articulam-se os dados, obtidos enquanto tentava-se vericar se a hiptese era correta, em um discurso lgico-dedutivo atravs de mtodos de demonstrao lgica, evidenciando, ao menos idealmente, a racionalidade do real (CARVALHO, 2009). Como se pode observar, h uma direta relao de dependncia entre razo, lgica e cincia, sendo a segunda dependente da primeira e a ltima dependente das outras duas. 2.3.1 Cincia da Computao O objetivo do estudo da lgica em cincia da computao desenvolver linguagens para modelar situaes que se encontra enquanto prossional de computao, de modo que se possa, analis-las formalmente. Analisar situao signica construir argumentos sobre elas; quer-se fazer isso formalmente, de modo que os argumentos sejam vlidos e

21

22

## 2.4 Sentenas e proposies

No escopo da lgica neste trabalho, uma sentena uma sequncia de palavras cuja ordem regida pelas regras de uma determinada gramtica. Ainda neste escopo, as sentenas devem ser declarativas, onde se pode negar ou armar algo (MORTARI, 2001). Neste trabalho, as proposies e sentenas declarativas sero tratadas como sendo conceitos iguais. Exemplos de sentenas: Scrates um homem; todo homem mortal; alguns gregos so lgicos; o cobre condutor de eletricidade. Exemplos de sentenas negativas: Scrates no um homem; o cobre no condutor de eletricidade. Fica evidente, assim, que no h a preocupao com a verossimilhana na estrutura de uma sentena. 2.4.1 Argumentos Justicar uma armao e dar razes para uma certa concluso so fundamentais para garantir que se est raciocinando corretamente. Um argumento pode ser visto como um conjunto no-vazio e nito de sentenas relacionadas entre si, onde a concluso se segue das premissas (MORTARI, 2001). 2.4.2 Deduo Dado seguinte argumento: Scrates um homem; todo homem mortal; portanto, Scrates mortal.

23

As duas primeiras sentenas so as premissas e a ltima a concluso. Este um caso de argumento dedutivo, tambm chamado de silogismo, onde a concluso se segue das premissas. 2.4.3 Induo Outra possibilidade de argumentao atravs da induo, quando se tenta atingir um gnero a partir do conhecimento das espcies que o constituem. Um exemplo de induo: O cobre condutor de eletricidade, assim como a prata, o ouro, o ferro, o zinco e outros metais, Logo, todo metal condutor de eletricidade. Fica evidente a falta de solidez de argumentos indutivos, uma vez que no h a garantia da concluso, que para ser provada equivocada, basta haver um exemplo de metal que no seja condutor de eletricidade. importante ressaltar que, de forma diferente, a induo matemtica consegue atingir o gnero a partir de rigorosos mtodos e no se fundamenta da mesma forma que a argumentao indutiva. 2.4.4 Falcias Falcia um argumento invlido ou incapaz de provar o que almeja. Nesta seo sero expostos alguns exemplos de erros lgicos que podem incorrer em falcias. Um primeiro exemplo de falcia: alguns gregos so lgicos; alguns lgicos so chatos; por isso, alguns gregos so chatos. Este um clssico exemplo de non sequitur, onde a concluso no se d a partir das premissas, logo, o argumento invlido. Chama-se esses argumentos de falcias. Outra possibilidade quando se tenta atingir uma espcie no pertencente ao gnero devido. Chama-se esta falcia de Dicto Simpliciter. Se voc matou algum, deve ir para a cadeia.

24

Ora, nem todos os casos onde h um assassinato, necessariamente, a lei condena o indivduo desta forma. Quando se tenta induzir algo a partir de uma amostragem insuciente se incorre em uma falsa induo: O cobre condutor de eletricidade. Logo, todos metais so condutores de eletricidade. Outra falcia tentar compreender o todo a partir de propriedades das partes constituintes deste, como se segue: Todas as peas deste caminho so leves; logo, o caminho leve. O oposto tambm invlido: O caminho pesado; Logo, todas as peas deste caminho so pesadas. Outro equivoco julgar que por dois ou mais eventos haverem ocorrido concomitantemente, a concorrncia o razo da concluso. Chama-se esta falcia de Cum hoc ergo propter hoc (junto disto, logo, por causa disso). Como exemplo: Quanto menos bombeiros enfrentarem o fogo, mais forte o fogo ser; Logo, os poucos bombeiros causam o aumento do fogo. De forma anloga, pode-se tentar obter uma concluso pela sequncia de alguns fatos, o que invlido. Chama-se essa falcia de Post hoc ergo propter hoc Exemplo: O Japo se rendeu logo aps a utilizao das bombas atmicas por parte dos EUA. Portanto, a paz foi alcanada devido utilizao das armas nucleares.

## 2.5 Lgica formal

Nesta seo sero expostos breves comentrios essenciais sobre lgica proposicional, lgica intuicionista e lgica de predicado. Excelentes e mais aprofundadas leituras podem ser encontradas em (AL., 2008) e (REEVES; CLARKE, 2003).

25

2.5.1 Lgica proposicional A lgica proposicional se baseia em proposies que se pode argumentar a respeito de sua veracidade ou falsidade. Esse assunto receber um tratamento conciso e curto, podese conferir (HUTH; RYAN, 2004) e (LAGO PEREIRA, 2010) para mais informaes sobre lgica proposicional. Primeiramente, na lgica proposicional, precisa-se organizar as declaraes de forma atmica e indecomponveis, da seguinte forma: p: ganhei na loteria; q: comprei um bilhete de loteria; r: ganhei o bolo de apostas; Pode-se utilizar as seguintes regras em conjunto com as proposies, dado as proposies supracitadas: : expressa a negao de uma proposio, exemplo: p signica no ganhei na loteria. Intuitivamente, no h uma diferena entre uma proposio e a dupla negao desta. Logo, !(!p) = p; : expressa uma disjuno entre proposies, exemplo: p r signicam ganhei na loteria ou ganhei o bolo de apostas; : expressa uma conjuno entre proposies, exemplo: q p signicam comprei um bilhete de loteria e ganhei na loteria; : expressa uma inferncia lgica, exemplo: p q signica se ganhei na loteria, ento comprei um bilhete de loteria; A partir dessas regras possvel construir proposies mais complexas, da seguinte forma. Dadas as seguintes premissas: p: a umidade est elevada; q: a temperatura est elevada; w: a presso atmosfrica est elevada;

26

27

Os tipos habitados do -clculo simplesmente tipados so aqueles que, quando considerados como proposies so tautologias do fragmento positivo da lgica proposicional intuicionista.

28

Tabela 2.1: Curry-Howard: Correspondncias Frmulas Tipos Provas Termos -Reduo Normalizao de provas Provabilidade Inhabitation1 Teoremas Tipos habitados

29

## 2.6 Lgica Linear

os aditivos (, &) que so verses lineares do ou e do e; os exponenciais (!, ?) que permitem preservar a fora lgica. Das conjunes: o operador representa uma conjuno multiplicativa onde se

30

pode utilizar ambas premissas e o operador & representa uma conjuno aditiva onde se deve escolher qual premissa utilizar, porm no as duas; & Das disjunes: o operador representa uma disjuno multiplicativa onde se tem

a segunda premissa somente se no se tiver a primeira e o operador representa uma disjuno aditiva onde se tem qualquer uma das premissas, porm no as duas e no h a possibilidade de escolha. A tabela 2.2 resume os operadores da lgica linear. Tabela 2.2: Operadores da lgica linear. & e aditivo ou aditivo e multiplicativo ou multiplicativo top1 bottom2 implicao linear &

## E a gramtica de proposies lineares : A,B,C ::= X A B AB A&B AB !A

2.6.3 Lgica clssica e lgica intuicionista x lgica linear Nesta seo ser realizada uma breve comparao entre os sistemas lgicos convencionais, clssico e intuicionista, e a lgica linear. No decorrer do texto sero apresentadas dedues e operaes lgicas, porm abstraindo passos, em alguns casos. Para uma descrio extensiva e de grande qualidade, consultar (MELLIS, 2010). Para a descrio do prprio criador da lgica linear sobre sua semntica e sintaxe, consultar (GIRARD, 1995). A lgica clssica trata com verdades universais e, por isso, amplamente utilizada em ramos onde a matemtica exerce maior inuncia. Na lgica clssica, se um fato usado para concluir outro fato, o primeiro ainda estar disponvel (WADLER, 1993). Neste sistema, uma premissa verdadeira ou falsa e h construes que permitem a duplicao ou eliminao de premissas. A regra de enfraquecimento diz que se pode acrescentar
1 2

O operador top sinaliza uma premissa que tautologia. O operador bottom sinaliza uma premissa que falsa.

31

32

ainda, permite o uso das regras de contrao e enfraquecimento somente na hiptese, nunca na concluso (MELLIS, 2010). Por exemplo, dadas as proposies, como recursos:

D M C

## E dado o funcionamento da seguinte mquina de vendas:

D implica M ; D implica C. Na lgica clssica, pode-se descrever o funcionamento da mquina como Com um dlar, eu posso comprar uma pizza e uma torta. Ora tal operao pode ser considerada vlida no sistema clssico, uma vez que onde se pode duplicar operadores. Tal concepo incorreta, porm, na lgica linear, onde se pode reconhecer os recursos escassos deste cenrio. Tal confuso acontece em ambos sistemas lgicos, clssico e intuicionista, em virtude da confuso entre dois tipos de conjuno: uma signicando intuitivamente Eu tenho ambos e outra signicando Eu tenho uma escolha (LINCOLN, 1992). Na lgica linear pode-se ver esta situao de forma diferente, onde, com um dlar, deve-se escolher entre uma torta e uma pizza. Para possibilitar tais construes, a lgica linear se utiliza de duas operaes de conjuno, duas operaes de disjuno e um exponencial que permite marcar as proposies que podem ser utilizadas muitas vezes (LINCOLN, 1992). A conjuno multiplicativa signica que se tem ambos elementos, semelhante forma de interpretao atribuda lgica clssica: D M C como Com

um dlar, eu posso comprar uma pizza e uma torta. A conjuno aditiva & signica que se tem o direito de escolher entra um ou outro elemento, porm no ambos, como em: D M &C como Com um dlar, eu posso escolher comprar uma pizza ou uma torta. & signica que se no houver o primeiro elemento, haver o B como

A disjuno multiplicativa

segundo. Pode-se ver essa operao de forma mais didtica expressando A &

33

## M C como Com um dlar posso comprar

uma pizza ou uma torta (LINCOLN, 1992). Para completar o sistema lgico, tem-se ainda dois exponenciais: ! e ?. A frmula !A pode ser vista como a impresso na tela de letras A enquanto se pressiona o boto, gerando qualquer nmero de As (LINCOLN, 1992). Ao possuir !X de um elemento X, no h necessidade de gerenciar tal recurso pois ele inesgotvel, porm, se no h !X deste elemento, tem-se que gerenciar a sua utilizao. Girard descobriu que a implicao intuicionista A B poderia ser decomposta em dois conetivos separados !A B e mostrou que com a adio dos exponenciais expostos

acima seria possvel traduzir as lgicas intuicionista e clssica em lgica linear. Para impedir o uso arbitrrio de regras de contrao e enfraquecimento, somente se pode utilizar tais regras em sentenas marcadas com os exponenciais ! e ?. Dessa forma se preserva o carter construtivo deste sistema lgico. 2.6.4 As regras da lgica linear O sistema de lgica clssico incentiva a utilizao de hipteses. O carter construtivo da lgica intuicionista no permite tal recurso, uma vez que as premissas devem ser provadas antes que se possa utiliz-las. Deve-se vericar a tabela 2.3 para apreciar as regras. O sistema de provas utilizado neste trabalho o de deduo natural. Este sistema serve para vericar a derivabilidade de uma expresso, mostrando-nos uma das possveis derivaes. Na deduo natural, os julgamentos cam acima da linha e a implicao linear ca abaixo. Utiliza-se julgamentos, pois a lgica linear herdou o carter construtivista da lgica intuicionista, portanto a prova de suas declaraes deve poder ser obtida ou construda. As premissas so representadas por e , cada um contendo premissas diferentes. Escreve-se , para denotar a concatenao destas premissas. representa

um julgamento e a linha que separa a parte de cima e a de baixo representa uma regra (WADLER, 1993). Se uma concatenao do tipo , aparecer em uma regra, ambas devem conter variveis diferentes. De forma anloga, no caso de ,x, a varivel x no dever estar contida em . Na regra da contrao, a notao t[x/y,x/z] representa um termo t onde x substitui todas ocorrncias de y e de z (WADLER, 1993). Deve-se observar que h duas formas

34

de premissas, A e [A]. Uma premissa da forma A signica uma representao linear, onde se tem apenas uma unidade do recurso A. A segunda forma, [A], oferece uma representao intuicionista, onde se pode utilizar as regras de contrao e enfraquecimento, podendo-se gerar tantos recursos quanto desejado. Tabela 2.3: Regras da lgica linear. A A Id [A] A [Id] , , A Exchange A

!A , [A] [], B

A B , C

-E C -E

## A B -I , A B A -I1 AB A B &-I A&B

A B , A , B , C A&B &-E1 A

A&B &-E2 B C -E

B -I2 AB

A B , A C , B , C

Pode-se encontrar em (WADLER, 1993) um exemplo baseado em premissas relativas a dinheiros e pizzas no seu trabalho, tal exemplo ilustra muito bem o cenrio sensvel a recursos ao qual a lgica linear se destina e, portanto, ser utilizado neste texto tambm. Pode-se considerar os termos como recursos, de forma que se pode ler A C como

consumindo A se produz B. Considerando que A a proposio Eu tenho uma nota de 10 reais, B Eu tenho uma pizza e C Eu tenho um bolo. Pode-se ler A consumindo uma nota de 10 reais eu terei uma pizza e A nota de 10 reais eu terei um bolo. Considerando que no mundo real os recursos so limitados, dinheiro, portanto, no innito. Gastar uma nota de 10 reais faz com que no se tenha mais esta. No caso, ao se ter uma nota de 10 reais, pode-se comprar ou uma pizza ou um bolo. Isso pode ser expressado atravs do operador &. A regra segue: B como

## C como consumindo uma

35

A A

B&C A &-E1 B A

B&C &-E2 C

Na lgica clssica, a utilizao de uma proposio pode ser feita de forma ilimitada, equivalentemente, na lgica linear, o operador se encarrega de expressar tal situao. A regra segue: A B A, A A C -I BC

A suposio A pode ser vista como uma unidade de recurso A que se tem disposio e a suposio [A] pode ser vista como uma fonte ilimitada de recursos A. Utilizando a regra de enfraquecimento se pode gerar recursos ad libitum e dessa forma se pode capturar o carter intuicionista de determinados problemas. Considerando a premissa A como eu tenho 10 reais, a interpretao linear da sentena A seria eu tenho uma nota de 10 reais, enquanto a interpretao intuicionista linear de [A] seria eu tenho um estoque ilimitado de notas de 10 reais. A A Id [A] A [Id]

O axioma A signica que, se eu tiver uma nota de 10 reais no meu bolso, posso retirar dele esta nota, enquanto o axioma [A] signica que, se eu tenho ilimitadas notas de 10 reais no meu bolso, posso retirar dele uma nota. Assim como , A segue: , A A B I B [A] , [A] B [Id] E B pode ser provado, ,[A] B tambm pode. A prova como se

importante notar que [A] uma suposio intuicionista, enquanto !A uma suposio linear de mesmo sentido. Ora se possvel retirar um A de [A], possvel retirar um A de !A tambm. A regra como se segue: A B !-I [A] !B Adicionando o axioma: [B] D

36

onde D signica felicidade, pode-se concluir que B leva a felicidade. Utilizando !-E se tem: [A] !B [B] [A] D D !-E

Dado um estoque ilimitado de notas de 10 reais, pode-se comprar ilimitados pedaos de pizza, os quais levam felicidade. H uma equivalncia entre a suposio !A e [A], como a seguinte prova expressa: , A A [Id] [A] A B !-I I B [A] !A E , [A] B

## Ou no sentido inverso: !A Id !A , !A , [A] B B !-E

Com todas essas caractersticas, a lgica linear possibilita: Novas formas de analisar os problemas, como me de A uma vez e eu lhe concederei B, com aplicaes em inteligncia articial, lgicas de programao renadas, focadas em estados, anlise da lgica clssica, tratamento de excees, interpretao abstrata, etc; Novas formas de representar demonstraes; Novas regras para expressar constantes no uso de cpias resultando em um fragmento da lgica linear de computao polytime; Reduzir o hiato entre o raciocnio computacional e os recursos e estados do mundo real.

37

## 2.7 Uma aplicao da lgica linear

38

implementar uma lgica construtiva de alta ordem, facilitando a descrio de objetos lgicos; Contrastar aplicaes desenvolvidas usando lgica clssica e aplicaes em outras lgicas - o Coq tem duas hierarquias de tipo: Set de tipos construtivos e Prop para a lgica clssica; o suporte a denies indutivas, possibilitando em construes diferentes das padres da lgica clssica. Um dos mais notveis recursos, para o escopo deste trabalho, reside na possibilidade de se poder ensinar, algoritmicamente, como resolver problemas lgicos ao programa. Uma vez que o programa aprenda a realizar uma deduo, ele pode repeti-la em outras ocasies e at tentar desenvolver provas automaticamente(PINTO; FRADE, 1998). Muitos trabalhos foram desenvolvidos em conjunto com as regras que acompanham o programa. James Power desenvolveu uma codicao da lgica linear utilizando Coq (POWER; WEBSTER, 2001) e justamente considerando o trabalho dele que esta seo se orientar. Atravs do contato com James Power, um dos autores das codicao da lgica linear para Coq, pode-se obter os cdigos fontes para a implementao da lgica linear usando Coq. Em seguida, ser explicado brevemente o experimento realizado. A prova dos experimentos no ser descrita neste trabalho por fugir do escopo e somente ser descrito o primeiro experimento, para tal se deve conferir (POWER; WEBSTER, 2001). James Power teve sucesso em sua tentativa de codicar a lgica linear utilizando Coq e suas operaes nativas. Esta codicao permitiu expressar problemas baseados em recursos linearmente. Tal abordagem bastante didtica e inspirou a programao da aplicao desenvolvida neste trabalho para explicar a forma linear de raciocnio computacional. 2.7.2 Cenrio dos blocos Este um cenrio clssico da rea de planejamento da inteligncia articial. Neste cenrio, tem-se um conjunto de blocos sobre uma mesa e o objetivo construir um ou mais conjuntos de blocos vertical. S se pode mover um bloco por vez e ele deve ser colocado em cima da mesa ou acima de outro bloco. Portanto, nenhum bloco que possua blocos no topo pode ser movido.

39

40

Ao Botar: diz que se o brao estiver em um estado segurando, segurando um bloco x, pode-se lev-lo a um estado vazio. Com nada sobre x, ou x estar sobre a mesa ou sobre outro bloco. Para a codicao dessas aes na semntica do Coq, o operador representado por **, o operador & representado por && e a inferncia linear representada por

-o. As aes Pegar e Botar tem a seguinte forma - a sintaxe utilizada da aplicao Coq: Axiom Pegar : (x,y:Bloco) ((vazio ** (limpar x)) |- (segura x) ** (((mesa x) -o um) && ((emcima x y) -o (limpar x y)))). Axiom Botar : (x,y:Bloco) ((vazio ** (limpar x)) |- (segura x) ** (((mesa x) -o um1 ) && ((emcima x y) -o (limpar x y)))). 2.7.3 Da importncia desta implementao Esta implementao trouxe uma abordagem fortemente focada em estados e recursos (POWER; WEBSTER, 2001), alm de ser bastante didtica. A praticidade e agilidade no desenvolvimento da aplicao motivaram o presente trabalho. Com base nesta implementao optou-se por desenvolver uma aplicao tambm baseada em estados e recursos. A seo seguinte se ocupar da aplicao desenvolvida para este trabalho e da sua experimentao.

41

## A APLICAO - UM SIMULADOR DE MQUINAS VIRTUAIS

Tendo os conceitos da lgica linear expostos, foi desenvolvida uma aplicao para melhor exemplicar a aplicao da lgica linear e suas implicaes. Baseado no trabalho de James Power (POWER; WEBSTER, 2001), desenvolveu-se trabalho uma codicao do sistema da lgica linear para este. Decidiu-se pela criao de uma aplicao tambm baseada em estados e preservao de recursos. A aplicao desenvolvida um simulador de um gerenciador de mquinas virtuais em um sistema de recursos limitados.

## 3.1 Descrio da aplicao

42

At 100 % do processador; 2000 Gb de espao em disco; 5 impressoras; 5 Gravadores; ilimitadas conexes. Seja A um recurso qualquer. Enquanto houver recurso A disponvel, as seguinte regras permitem que este seja utilizado: A A Id [A] A [Id]

Atravs do monitor do sistema, (Figura 3.1) na interface do programa, pode-se vericar tais recursos.

Figura 3.1: Tela do monitor do sistema. Note que o recurso conexes est marcado com o um recurso intuicionista, da forma [Conexo] e, portanto, no h uma quantidade de recursos delimitada. Pode-se utilizar a regra da introduo do exponencial ! da seguinte forma: Conexo !-I [] !Conexo 3.1.2 O gerenciador das mquinas virtuais atravs do gerenciador de mquinas virtuais que se pode denir novas mquinas virtuais, inicializ-las de acordo com os recursos disponveis no sistema ou interromplas para gerar novos recursos para o sistema. A interface de gerenciamento de mquinas virtuais do programa ilustrada na gura (3.2).

43

Figura 3.2: Tela do gerenciador de mquinas virtuais. esquerda possvel denir as caractersticas de uma mquina virtual. Neste momento, no h limite para a denio de uma mquina. Aps denir os dados da mquina, basta clicar em Adicionar mquina para adicion-la tabela superior, onde se acomodam as mquinas disponveis. Dentre as mquinas disponveis, o usurio pode escolher quais deseja inicializar utilizando o boto Executar. Enquanto uma mquina est rodando, possvel suspender o seu uso atravs do boto Parar. No momento em que uma mquina solicita permisso para rodar, ocorre a vericao dos recursos. Se todos os recursos demandados pela mquina estiverem disponveis, a mquina os consumir e o sistema ter sua disposio uma nova mquina virtual como recurso. Os recursos do sistema sero automaticamente atualizados e podem ser conferidos no monitor do sistema. No momento que uma mquina tem sua execuo interrompida, esta consumida e os recursos que ela possua passam a integrar o sistema novamente. Seja o conjunto dos recursos necessrios para um conjunto de mquinas rodar. Se houver disponvel, pode-se consumi-los para produzir as mquinas de . A insero do operador linear representada da seguinte forma: I

De forma anloga, pode-se interromper as mquinas , consumindo-nas, para produzir . A representao, tambm pela insero da inferncia linear, a seguinte: I

44

## 3.2 Uma interpretao linear do sistema

45

46

F: Conexes: innitas u., cada uma representando 1 conexo. A escolha destes recursos foi feita de forma arbitrria e pode ser alterada na aplicao, de modo a respeitar outras conguraes desejadas. Para os ns deste trabalho, tais valores so sucientes, uma vez que no se deseja realizar uma comparao de desempenho. Atravs desses recursos, pode-se montar mquinas com diversas especicaes, cada uma com uma quantidade de recursos diferentes. Por exemplo, uma mquina M com 1024 Megabytes, que ter sua disposio 30 % da CPU, 100 Gigabytes de espao em disco, 1 impressora e permisso para estabelecer 5 conexes resultaria na seguinte inferncia linear: AABBBC C DF F F F F

Neste caso o sistema volta para um estado igual ao inicial, algo que poderia ser diferente em um caso diverso.

47

## 3.3 Utilizando a aplicao

Nesta seo sero descritos experimentos realizados com a aplicao e sero explicadas possveis interpretaes lineares. O sistema parte do estado inicial, onde todos os recursos ainda esto disponveis, como se pode constatar analisando o monitor do sistema na gura 3.3.

Figura 3.3: Estado inicial do sistema, todos recursos disponveis. Para este primeiro teste, duas mquinas foram criadas, conforme ilustrado na gura 3.4.

Figura 3.4: Duas mquinas criadas, nenhuma em execuo. Para este primeiro passo, nenhum recurso utilizado. O que consta na tabela superior apenas a descrio do tipo, introduzindo neste momento a sintaxe que ser utilizada at o m deste captulo:

## (A&(A(A)p )) (B&(B(B)p )) (C&(C(C)p )) (!F (D&E))

M quinaX

48

Onde as variveis p podem assumir qualquer valor independentemente. Ou seja, o processo para descrever a produo de uma mquina X pode envolver o consumo de 1 ou mais unidades de memria, 1 ou mais unidades de processador, 1 ou mais unidades de espao em disco, tantas conexes quanto desejado com ou uma impressora ou gravador, tudo escolha do usurio. Esta frmula, alm de outras que no sero expostas neste texto, representa parte do comportamento da aplicao e essencialmente o raciocnio linear aplicado, desenvolvido para este trabalho. Aps inicializar a mquina ID 1, tem-se os dados contidos na gura 3.5.

Figura 3.5: Uma mquina disponvel e uma em execuo. Alterao local que pode ser expressa atravs da implicao linear: (A(A)3 ) (B(B)5 ) (C(C)10 ) E)

M quina ID 1

Outro modo de representar esta frmula, desta vez na forma de uma deduo natural: A1 6, B 1 0, C 4 0, D5 , E 5 , [F ] A4 B 6 C 1 1 E 1 M quina ID 1 A inicializao da mquina de ID 1 signica que recursos foram consumidos para ger-la. O monitor do sistema neste instante conrma os recursos gastos, conforme a gura 3.6.

49

Figura 3.6: Estado do monitor do sistema aps inicializar a mquina de ID 1. Para utilizar mais recursos, criou-se e se inicializou uma terceira mquina. Aps criar uma terceira mquina e inicializ-la, obtm-se o estado mostrado na gura 3.7.

Figura 3.7: Uma mquina disponvel e duas em execuo (IDs 1 e 2). De forma anloga, h uma alterao local que pode ser expressa atravs da implicao linear: (A(A)3 ) (B(B)2 ) (C(C)10 ) E)

M quina ID 2

Pode-se conrmar, atravs da anlise do monitor do sistema neste instante, que os recursos esto praticamente esgotados, no h uma fatia de tempo de processador suciente para o processo ID 0 rodar. A nica mquina restante na tabela de mquinas disponveis no pode ser executada, uma vez que depende do consumo de recursos no disponveis no sistema. O monitor do sistema neste instante tem seus dados expostos na gura 3.8.

50

Figura 3.8: Estado do monitor do sistema enquanto h duas mquinas em execuo (IDs 1 e 2). Aps fechar a mquina de ID 1, consume-se esta e se produzem os recursos consumidos para inicializ-la. O estado atual pode ser conferido na captura da tela neste instante na gura 3.9.

Figura 3.9: Duas mquinas disponveis e uma em execuo. Operao que pode ser representada linearmente na forma: (A(A)3 ) (B(B)5 ) (C(C)10 ) E)

M quina ID 1

E na forma de uma deduo natural: A8 , B 1 , C 1 8, D5 , E 3 , [F ], M quina ID 1, M quina ID 2 M quina ID 1 A4 B 6 C 1 1 E 1 A conrmao dos recursos do sistema pode ser obtida da anlise do monitor do sistema neste instante, exposto na Figura 3.10.

51

Figura 3.10: Estado do monitor do sistema aps nalizar uma das duas mquinas que estavam em execuo, restando somente a ID 2. 3.3.1 Anlise dos resultados Enquanto se utiliza os sistemas convencionais no desenvolvimento de uma aplicao, deve-se denir as regras que determinaram o seu comportamento e delimitar o seu funcionamento. Na lgica linear este procedimento mais adequado ao mundo real. Basta denir as regras de inferncia linear e todo o comportamento da aplicao estar atuando de forma consciente dos recursos e os atualizando automaticamente. Ao inicializar uma mquina virtual, os recursos necessrios so utilizados na sua produo, no h uma referncia para o que eles eram antes da produo, portanto no h necessidade de realizar procedimentos a m de sanear a aplicao. Tudo isto resulta em uma maior segurana e praticidade. O fragmento multiplicativo da logica linear no permite que decises sejam feitas por algum, tornando desnecessrias sincronizaes. Sem a necessidade de sincronizao, o desenvolvimento de aplicaes concorrentes se torna mais fcil. Com base em todas estas vantagens, percebe-se que, atravs da utilizao da lgica linear, foi possvel desenvolver uma aplicao concorrente de forma simples, sustentvel e prxima ao mundo real. Este sistema lgico oferece uma boa alternativa aos convencionais sem perder o poder de expressividade. Compreend-lo corretamente pode tornar o processo de desenvolvimento mais simples e a aplicao mais segura.

52

## CONCLUSO E TRABALHOS FUTUROS

Neste trabalho discutiu-se a lgica linear, suas caractersticas, operadores, seu sistema de deduo natural, algumas comparaes com outros sistemas lgicos e como se pode modelar uma aplicao de forma linear. A criao deste sistema lgico trouxe grande entusiasmo para a rea da cincia da computao e a partir deste trabalho pode-se conhecer alguns dos motivos para tal. Ilustrou-se brevemente como que estes elementos podem ser unidos, formando uma aplicao de modo linear. Desta abordagem, pde-se obter diversas vantagens, como a possibilidade de focar no desenvolvimento da aplicao sem se preocupar com sincronizao, uma vez que ao consumir recursos na produo de algo, no restam referncias aos recursos iniciais e, portanto, no h como serem utilizados novamente de forma indevida. Isto pode representar uma aplicao mais segura e agilizar o processo de desenvolvimento, por no depender de um sistema de garbage collector. Outra vantagem a proximidade do raciocnio ao processo de desenvolvimento da aplicao. Dene-se o que se quer feito e no o contrrio. Desta forma, reduz-se o esforo despendido em delimitar o comportamento que no se deseja da aplicao e se ocupa com o que a aplicao deve fazer. Espera-se que o presente trabalho possa servir de base para trabalhos vindouros, que visem focar num ou noutro aspecto que no pde ser abordado em detalhes, uma vez que neste trabalho teve-se que partir de pontos bastante elementares. Pode-se dizer que a lgica serve como um ltro para o raciocnio, permitindo que se garanta o bom raciocinar. A lgica linear lida com recursos, os quais tem um carter limitado quantitativamente. Uma vez consumido, um recurso no mais existe. O prossional da computao est to acostumados a utilizar a lgica clssica que nem se d conta das barreiras que ela lhe impe. Para expressar algoritmicamente situaes onde h utilizao de recursos, primeiro se estabelece as proposies e depois se passa a delimit-las, lapid-las de forma a torn-las da forma que se deseja. Capturando somente o que se quer

53

54

REFERNCIAS

AL., E. G. P. et. Lgica Matemtica, teoria da prova e teoria de funes. Disponvel em: http://www.mat.ufmg.br/ elaine/papers/projeto pesquisa.pdf. Acesso em: outubro de 2010. AL., P. L. et. Monadic concurrent linear logic programming. PPDP05, Lisboa, 2005. ALAGI, G.; CSRNYEI, Z.; VARGA, K. P. Parallel programming techniques and linear type systems. 8th Joint Conference on Mathematic and Computer Science, Komrno, 2010. ANDREOLI, J.-M.; CASTAGNETTI, T.; PARESCHI, R. Abstract Interpretation of Linear Logic Programming. ILPS93, Vancouver, 1993. BAILLOT, P. From Proof-Nets to Linear Logic Type Systems for Polynomial Time Computing. TLCA07, Paris, 2007. BAILLOT, P.; HOFMANN, M. Type Inference in Intuitionistic Linear Logic. PPDP10, Munique, 2010. BEFFARA, E. A Concurrent Model for Linear Logic. Eletronic Notes in Theoretical Computer Science, Paris, 2004. CARVALHO, O. de. Arthur Schopenhauer - Como Vencer um Debate sem Precisar Ter Razo. 1.ed. Rio de Janeiro: TOPBOOKS, 1997. CARVALHO, O. de. A cincia contra a razo. Dirio do Comrcio, So Paulo, 2009. CERVESATO, I.; SCEDROV, A. Relating State-Based and Process-Based Concurrency through Linear Logic. OSD/ONR CIP/SW URI, Annandale, 2009.

55

FERNANDES, F. L. O Isomorsmo de Curry-Howard via Teoria de Categorias. Disponvel em: http://www.mat.ufmg.br/ pgmat/teses/Diss166.pdf. Acesso em: outubro de 2010. FREIRE, C. M. Lgicas modais e complexidade descritiva. SBC, Casadinho, 2008. GENSLER, H. J. Introduction to Logic. 1.ed. London: Routledge, 2002. GIRARD, J.-Y. Linear Logic. Theoretical Computer Science volume 50, S.l., 1986. GIRARD, J.-Y. Linear Logic, its syntax and semantics. Cambridge University Press, S.l., 1995. GNU Lesser General Public License. Disponvel em:

http://www.gnu.org/licenses/lgpl.html. Acesso em: outubro de 2010. GROHE, M. Finite Variable Logics In Descriptive Complexity Theory. Bulletin of Symbolic Logic, S.l., 1998. HALPERN, Y. Y.; HARPER, R. On the Unusual Effectiveness of Logic in Computer Science. Workshop on the Unusual Effectiveness of Logic, Anaheim, CA, 2001. HODAS, J. S. Lolli: an extension of prolog with linear logic context management. Workshop on the Prolog Programming Language, Filadla, 1992. HODAS, J. S.; WATKINS, K.; TAMURA, N.; KANG, K.-S. Efcient Implementation of a Linear Logic Programming Language. International Conference and Symposium on Logic Programming 1998, Claremont, 1998. HUTH, M.; RYAN, M. Lgica em Cincia da Computao - Modelagem e Argumentao sobre Sistemas. 2.ed. Rio de Janeiro: LTC Editora S.A., 2004. KAHRAMANOGULLAR, O. On Linear Logic Planning and Concurrency. Information and Computation, London, 2009. LAGO PEREIRA, S. do. Lgica Proposicional. Disponvel em:

http://www.ime.usp.br/ slago/ia-2.pdf. Acesso em: outubro de 2010. LINCOLN, P. Linear Logic. SIGACT, S.l., 1992.

56

MANNA, Z.; WALDINGER, R. The Logical Basis for Computer Programming. 1.ed. Massachusetts: Addison-Wesley Professional, 1985. MARTINS, L. R. Deduo Natural e Normalizao Fraca para Lgica Linear Completa. Mestrado em Cincia da Computao - UFC, Fortaleza, 2003. MELLIS, P.-A. Categorical Semantics of Linear Logic. Disponvel em: http://www.pps.jussieu.fr/ mellies/papers/panorama.pdf. Acesso em: 2010. MORTARI, C. A. Introduo lgica. 1.ed. So Paulo: Editora UNESP, 2001. NETO, A. G. S. S. Using Logic for Concurrency: a critical study. Dissertao de Mestrado - UFPE, Pernambuco, 1996. PINTO, J. S.; FRADE, M. J. Introduo ao Sistema Coq de Assitncia Prova. DI/CCTC - Publicaes Pedaggicas, [S.l.], 1998. POWER, J.; WEBSTER, C. Working with Linear Logic in Coq. 12th International Conference on Theorem Proving in Higher Order Logics, Nice, 2001. PRATT, V. Linear Logic complements Classical Logic. Linear Logic 96, Tokyo, 2005. PUC-RIO. Disponvel em: http://www.inf.puc-rio.br/. Acesso em: outubro de 2010. REDDY, U. S. A Linear Logic Model of State. Disponvel em: novembro de

## http://www.cs.bham.ac.uk/ udr/papers/state.full.ps.gz. Acesso em: 2010.

novembro de

REEVES, S.; CLARKE, M. Logic for Computer Science. 1.ed. London: AddisonWesley Publishers Ltd., 2003. REIS, M. C. G. dos. Aristteles - De Anima. 1.ed. So Paulo: Editora 34, 2006. SHI, R.; XI, H. A Linear Type System for Multicore Programming. SBLP09, Gramado, Brasil, 2009. THE Coq Proof Assistant. Disponvel em: http://coq.inria.fr/. Acesso em: outubro de 2010.

57

UFPE. Disponvel em: http://www2.cin.ufpe.br/site/index.php. Acesso em: outubro de 2010. UFPEL. Disponvel em: http://inf.ufpel.edu.br/. Acesso em: outubro de 2010. UFRGS. Disponvel em: http://www.inf.ufrgs.br/. Acesso em: outubro de 2010. UFRJ. Disponvel em: http://www.dcc.ufrj.br/quadro-curricular.html. Acesso em: outubro de 2010. UFSM. Disponvel em: http://www.inf.ufsm.br/. Acesso em: outubro de 2010. UNICAMP. Disponvel em: http://www.ic.unicamp.br/. Acesso em: outubro de 2010. USP. Disponvel em: http://www.icmc.usp.br/ scc/. Acesso em: outubro de 2010. WADLER, P. Linear types can change the world! IFIP TC2, Israel, 1990. WADLER, P. A taste of linear logic. Mathematical Foundations of Computer Science, Glasgou, 1993. XAVIER, F. A.; OLIVEIRA, M. O. M. de Menezes e. Lgica Linear e Aplicaes em Cincia da Computao. Disponvel em: aquilesburlamaqui.wdles.com/local les/logica-aplicada-a-computacao/texto linear.pdf. Acesso em: outubro de 2010. XI, H.; ZHU, D.; LI, Y. Applied Type System with Stateful Views. BUCS-2005-03, Boston, 2004.